@visactor/vchart 1.6.2 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +1169 -821
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/config.js +1 -0
  6. package/cjs/animation/config.js.map +1 -1
  7. package/cjs/animation/utils.js +13 -13
  8. package/cjs/animation/utils.js.map +1 -1
  9. package/cjs/compile/compilable-base.js +2 -1
  10. package/cjs/compile/compiler.js +1 -1
  11. package/cjs/compile/compiler.js.map +1 -1
  12. package/cjs/compile/mark/compilable-mark.d.ts +1 -2
  13. package/cjs/compile/mark/compilable-mark.js +4 -7
  14. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  15. package/cjs/component/axis/cartesian/axis.d.ts +3 -0
  16. package/cjs/component/axis/cartesian/axis.js +12 -5
  17. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  18. package/cjs/component/data-zoom/data-filter-base-component.js +4 -3
  19. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  20. package/cjs/component/data-zoom/data-zoom/data-zoom.js +9 -5
  21. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  22. package/cjs/component/tooltip/handler/dom/model/content-column-model.js +12 -10
  23. package/cjs/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  24. package/cjs/component/tooltip/handler/dom/model/shape-model.d.ts +1 -0
  25. package/cjs/component/tooltip/handler/dom/model/shape-model.js +4 -4
  26. package/cjs/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  27. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  28. package/cjs/constant/polar.js +1 -2
  29. package/cjs/constant/scroll-bar.js +2 -1
  30. package/cjs/core/factory.js +1 -2
  31. package/cjs/core/index.d.ts +1 -1
  32. package/cjs/core/index.js +1 -1
  33. package/cjs/core/index.js.map +1 -1
  34. package/cjs/core/vchart.d.ts +1 -0
  35. package/cjs/core/vchart.js +9 -6
  36. package/cjs/core/vchart.js.map +1 -1
  37. package/cjs/data/transforms/sankey.d.ts +3 -6
  38. package/cjs/data/transforms/sankey.js +40 -23
  39. package/cjs/data/transforms/sankey.js.map +1 -1
  40. package/cjs/event/event.js +2 -1
  41. package/cjs/interaction/interaction.js +1 -2
  42. package/cjs/mark/arc.js +2 -2
  43. package/cjs/mark/arc.js.map +1 -1
  44. package/cjs/mark/base/base-mark.d.ts +3 -3
  45. package/cjs/mark/base/base-mark.js +32 -72
  46. package/cjs/mark/base/base-mark.js.map +1 -1
  47. package/cjs/series/cartesian/cartesian.js +6 -3
  48. package/cjs/series/cartesian/cartesian.js.map +1 -1
  49. package/cjs/series/sankey/sankey.d.ts +8 -2
  50. package/cjs/series/sankey/sankey.js +67 -66
  51. package/cjs/series/sankey/sankey.js.map +1 -1
  52. package/cjs/util/type.js +1 -1
  53. package/cjs/util/type.js.map +1 -1
  54. package/esm/animation/config.js +1 -0
  55. package/esm/animation/config.js.map +1 -1
  56. package/esm/animation/utils.js +13 -13
  57. package/esm/animation/utils.js.map +1 -1
  58. package/esm/compile/compilable-base.js +2 -1
  59. package/esm/compile/compiler.js +1 -1
  60. package/esm/compile/compiler.js.map +1 -1
  61. package/esm/compile/mark/compilable-mark.d.ts +1 -2
  62. package/esm/compile/mark/compilable-mark.js +3 -7
  63. package/esm/compile/mark/compilable-mark.js.map +1 -1
  64. package/esm/component/axis/cartesian/axis.d.ts +3 -0
  65. package/esm/component/axis/cartesian/axis.js +12 -5
  66. package/esm/component/axis/cartesian/axis.js.map +1 -1
  67. package/esm/component/data-zoom/data-filter-base-component.js +4 -3
  68. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  69. package/esm/component/data-zoom/data-zoom/data-zoom.js +9 -5
  70. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  71. package/esm/component/tooltip/handler/dom/model/content-column-model.js +13 -9
  72. package/esm/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  73. package/esm/component/tooltip/handler/dom/model/shape-model.d.ts +1 -0
  74. package/esm/component/tooltip/handler/dom/model/shape-model.js +4 -4
  75. package/esm/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  76. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  77. package/esm/constant/polar.js +1 -2
  78. package/esm/constant/scroll-bar.js +2 -1
  79. package/esm/core/factory.js +1 -2
  80. package/esm/core/index.d.ts +1 -1
  81. package/esm/core/index.js +1 -1
  82. package/esm/core/index.js.map +1 -1
  83. package/esm/core/vchart.d.ts +1 -0
  84. package/esm/core/vchart.js +9 -6
  85. package/esm/core/vchart.js.map +1 -1
  86. package/esm/data/transforms/sankey.d.ts +3 -6
  87. package/esm/data/transforms/sankey.js +36 -22
  88. package/esm/data/transforms/sankey.js.map +1 -1
  89. package/esm/event/event.js +2 -1
  90. package/esm/interaction/interaction.js +1 -2
  91. package/esm/mark/arc.js +2 -2
  92. package/esm/mark/arc.js.map +1 -1
  93. package/esm/mark/base/base-mark.d.ts +3 -3
  94. package/esm/mark/base/base-mark.js +30 -69
  95. package/esm/mark/base/base-mark.js.map +1 -1
  96. package/esm/series/cartesian/cartesian.js +4 -1
  97. package/esm/series/cartesian/cartesian.js.map +1 -1
  98. package/esm/series/sankey/sankey.d.ts +8 -2
  99. package/esm/series/sankey/sankey.js +68 -69
  100. package/esm/series/sankey/sankey.js.map +1 -1
  101. package/esm/util/type.js +1 -1
  102. package/esm/util/type.js.map +1 -1
  103. package/package.json +18 -18
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/cartesian/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import type { IBounds, IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IEffect, IModelInitOption, ILayoutRect } from '../../../model/interface';\nimport type { ICartesianSeries } from '../../../series/interface';\nimport type { IRegion } from '../../../region/interface';\nimport type { ICartesianAxisCommonSpec, IAxisHelper, ICartesianAxisCommonTheme } from './interface';\nimport { isArray, isValid, isValidNumber, mergeSpec, eachSeries, isNil, isUndefined } from '../../../util';\nimport type { IOrientType } from '../../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../typings/space';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { LayoutItem } from '../../../model/layout-item';\nimport { Factory } from '../../../core/factory';\nimport { autoAxisType, isXAxis, getOrient, isZAxis, isYAxis, transformInverse } from './util/common';\nimport { ChartEvent, DEFAULT_LAYOUT_RECT_LEVEL, LayoutZIndex, USER_LAYOUT_RECT_LEVEL } from '../../../constant';\nimport { LayoutLevel } from '../../../constant/index';\nimport pluginMap from '../../../plugin/components';\nimport type { IPoint, StringOrNumber } from '../../../typings';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\nimport type { LineAxisAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValidCartesianAxis } from '../util';\nimport type { IAxis, ITick } from '../interface';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../../data/register';\nimport { scaleParser } from '../../../data/parser/scale';\nimport type { ICartesianTickDataOpt } from '@visactor/vutils-extension';\n// eslint-disable-next-line no-duplicate-imports\nimport { ticks } from '@visactor/vutils-extension';\nimport type { DataSet } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\nimport { CompilableData } from '../../../compile/data/compilable-data';\nimport { AxisComponent } from '../base-axis';\nimport type { IGraphic, IText } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { createText } from '@visactor/vrender-core';\n\nconst CartesianAxisPlugin = [pluginMap.AxisSyncPlugin];\n\nexport abstract class CartesianAxis<T extends ICartesianAxisCommonSpec = ICartesianAxisCommonSpec>\n extends AxisComponent<T>\n implements IAxis\n{\n static type = ComponentTypeEnum.cartesianAxis;\n type = ComponentTypeEnum.cartesianAxis;\n name: string = ComponentTypeEnum.cartesianAxis;\n\n protected readonly _defaultBandPosition = 0.5;\n protected readonly _defaultBandInnerPadding = 0.1;\n protected readonly _defaultBandOuterPadding = 0.3;\n\n // 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n declare directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n\n layoutType: LayoutItem['layoutType'] = 'region-relative';\n layoutZIndex: number = LayoutZIndex.Axis;\n layoutLevel: number = LayoutLevel.Axis;\n\n protected _dataSet: DataSet;\n\n layout3dBox?: { width: number; height: number; length: number };\n\n protected _orient: IOrientType = 'left';\n getOrient() {\n return this._orient;\n }\n\n get layoutOrient() {\n return this._layoutOrient;\n }\n set layoutOrient(v: IOrientType) {\n this._orient = v;\n this._layoutOrient = v;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected declare _theme: ICartesianAxisCommonTheme;\n\n protected _statisticsDomain: {\n domain: any[];\n index: { [key in StringOrNumber]: number };\n } = { domain: [], index: {} };\n getStatisticsDomain() {\n return this._statisticsDomain;\n }\n\n protected _tick: ITick | undefined = undefined;\n\n private _axisStyle: Partial<LineAxisAttributes>;\n private _latestBounds: IBounds;\n private _verticalLimitSize: number;\n private _unitText: IText;\n\n protected _layoutCache: {\n width: number;\n height: number;\n _lastComputeOutBounds: IBoundsLike;\n } = { width: 0, height: 0, _lastComputeOutBounds: { x1: 0, x2: 0, y1: 0, y2: 0 } };\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this._orient = getOrient(spec, ['z']);\n if (isZAxis(this._orient)) {\n this.layoutType = 'absolute';\n }\n isValid(spec.autoIndent) && (this._autoIndent = spec.autoIndent);\n this._layoutOrient = this._orient;\n this._dataSet = options.dataSet;\n }\n\n static createAxis(spec: any, options: IComponentOption, isHorizontal: boolean = false): IAxis {\n const axisType = spec.type ?? autoAxisType(spec.orient, isHorizontal);\n const componentName = `${CartesianAxis.type}-${axisType}`;\n const C = Factory.getComponentInKey(componentName);\n if (C) {\n return new C(\n {\n ...spec,\n type: axisType\n },\n options\n ) as IAxis;\n }\n options.onError(`Component ${componentName} not found`);\n return null;\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n if (!this.type.startsWith(CartesianAxis.type)) {\n return null;\n }\n const regions = options.getRegionsInIndex();\n if (regions.find(r => r.coordinate !== 'cartesian')) {\n return null;\n }\n let axesSpec = spec[CartesianAxis.specKey] || options.defaultSpec;\n if (!axesSpec) {\n return null;\n }\n const isHorizontal = spec.direction === Direction.horizontal;\n if (!isArray(axesSpec)) {\n // 如果非法,或者只有一个z轴就不创建\n if (!isValidCartesianAxis(axesSpec)) {\n return null;\n }\n return CartesianAxis.createAxis(axesSpec, options, isHorizontal);\n }\n // 处理spec\n const zAxis = axesSpec.filter(s => s.orient === 'z')[0];\n let valid = true;\n if (zAxis) {\n const xAxis = axesSpec.filter(s => s.orient === 'bottom')[0];\n const yAxis = axesSpec.filter(s => isYAxis(s.orient))[0];\n // 必须有x和y,且x必须是bottom\n valid = axesSpec.length === 3 && xAxis && yAxis;\n }\n if (!valid) {\n axesSpec = axesSpec.filter(s => s.orient !== 'z');\n }\n const axes: IAxis[] = [];\n axesSpec.forEach((s: any, i: any) => {\n if (!isValidCartesianAxis(s)) {\n return;\n }\n axes.push(\n CartesianAxis.createAxis(\n s,\n {\n ...options,\n specIndex: i,\n specKey: CartesianAxis.specKey\n },\n isHorizontal\n ) as IAxis\n );\n });\n return axes;\n }\n\n setLayout3dBox(box3d: { width: number; height: number; length: number }) {\n this.layout3dBox = box3d;\n }\n\n effect: IEffect = {\n scaleUpdate: params => {\n this.computeData(params?.value);\n eachSeries(\n this._regions,\n s => {\n if (isXAxis(this.getOrient())) {\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(this.getOrient())) {\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(this.getOrient())) {\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n\n protected updateScaleRange() {\n let isScaleChange = false;\n const { width, height } = this.getLayoutRect();\n const inverse = this._spec.inverse;\n let newRange: number[] = [];\n if (isXAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = inverse ? [width, 0] : [0, width];\n }\n } else if (isZAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = inverse ? [width, 0] : [0, width];\n this._scale.range(newRange);\n }\n } else {\n if (isValidNumber(height)) {\n newRange = inverse ? [0, height] : [height, 0];\n }\n }\n\n const [start, end] = this._scale.range();\n if (newRange[0] !== start || newRange[1] !== end) {\n isScaleChange = true;\n this._scale.range(newRange);\n }\n\n return isScaleChange;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.pluginService?.load(CartesianAxisPlugin.map(P => new P()));\n this.callPlugin(plugin => {\n this.pluginService && plugin.onInit && plugin.onInit(this.pluginService, this);\n });\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this.visible) {\n const isX = isXAxis(this.getOrient());\n if (isX) {\n if (isUndefined(this._spec.maxHeight)) {\n this._spec.maxHeight = '30%';\n }\n } else if (isUndefined(this._spec.maxWidth)) {\n this._spec.maxWidth = '30%';\n }\n\n const axisStyle: any = this._getAxisAttributes();\n axisStyle.label.formatMethod = this.getLabelFormatMethod();\n axisStyle.verticalFactor = this.getOrient() === 'top' || this.getOrient() === 'right' ? -1 : 1;\n this._axisStyle = axisStyle;\n }\n this._tick = this._spec.tick;\n }\n\n protected getSeriesStatisticsField(s: ICartesianSeries) {\n let f: string[];\n if (isXAxis(this.getOrient())) {\n f = s.fieldX;\n } else if (isZAxis(this.getOrient())) {\n f = s.fieldZ;\n } else {\n f = s.fieldY;\n }\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected _initTickData(sampling: boolean) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n registerDataSetInstanceTransform(this._option.dataSet, 'ticks', ticks);\n\n const label = this._spec.label || {};\n const tick = this._tick || {};\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks` })\n .parse(this._scale, {\n type: 'scale'\n })\n .transform(\n {\n type: 'ticks',\n options: {\n sampling,\n tickCount: tick.tickCount,\n forceTickCount: tick.forceTickCount,\n tickStep: tick.tickStep,\n tickMode: tick.tickMode,\n noDecimals: tick.noDecimals,\n\n axisOrientType: this._orient,\n coordinateType: 'cartesian',\n\n labelStyle: label.style,\n labelFormatter: label.formatMethod,\n labelGap: label.minGap,\n\n labelLastVisible: label.lastVisible,\n labelFlush: label.flush\n } as ICartesianTickDataOpt\n },\n false\n );\n tickData.target.addListener('change', this._forceLayout.bind(this));\n\n this._tickData = new CompilableData(this._option, tickData);\n }\n\n protected _initData() {\n this._initTickData(this._spec.sampling !== false); // default do sampling\n }\n\n protected axisHelper(): IAxisHelper {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n return {\n isContinuous: isContinuous(this._scale.type),\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getStatisticsDomain: () => this.getStatisticsDomain(),\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._spec.inverse === true\n };\n }\n\n /** LifeCycle API**/\n afterCompile() {\n const product = this._axisMark?.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n // 布局结束之后再进行插件的调用\n // 插件在布局后\n if (isXAxis(this.getOrient())) {\n this.callPlugin(plugin => {\n this.pluginService &&\n plugin.onDidLayoutHorizontal &&\n plugin.onDidLayoutHorizontal(this.pluginService, this);\n });\n } else {\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidLayoutVertical && plugin.onDidLayoutVertical(this.pluginService, this);\n });\n }\n this._delegateAxisContainerEvent(product.getGroupGraphicItem());\n\n // 更新单位的显示位置\n if (this._unitText) {\n const bounds = product.graphicItem.AABBBounds;\n const pos = isXAxis(this._orient)\n ? {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n }\n : {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n\n this._unitText.setAttributes(pos);\n }\n }\n });\n }\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidCompile && plugin.onDidCompile(this.pluginService, this);\n });\n }\n\n onLayoutEnd(ctx: any): void {\n const isRangeChange = this.updateScaleRange();\n if (isRangeChange) {\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n // 这里会执行 computeData ,会执行系列scale更新\n } else {\n this.updateSeriesScale();\n }\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n update(ctx: IComponentOption) {\n // TODO\n }\n\n resize(ctx: IComponentOption) {\n // TODO\n }\n\n protected collectScale() {\n const scales: IBaseScale[] = [];\n eachSeries(\n this._regions,\n s => {\n scales.push(\n this.getOrient() === 'left' || this.getOrient() === 'right'\n ? (s as ICartesianSeries).scaleY\n : (s as ICartesianSeries).scaleX\n );\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return scales;\n }\n\n protected collectData(depth?: number) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n if (isXAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldX2\n ? [...(s as ICartesianSeries).fieldX, (s as ICartesianSeries).fieldX2]\n : (s as ICartesianSeries).fieldX;\n } else if (isZAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldZ;\n } else {\n field = (s as ICartesianSeries).fieldY;\n }\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected updateSeriesScale() {\n eachSeries(\n this._regions,\n s => {\n if (isXAxis(this.getOrient())) {\n (s as ICartesianSeries).setScaleX(this._scale);\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(this.getOrient())) {\n (s as ICartesianSeries).setScaleY(this._scale);\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(this.getOrient())) {\n (s as ICartesianSeries).setScaleZ(this._scale);\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n setLayoutStartPosition(pos: Partial<IPoint>): void {\n let { x, y } = pos;\n\n if (isValidNumber(x)) {\n x += Number(this._orient === 'left') * this.getLayoutRect().width;\n }\n if (isValidNumber(y)) {\n y += Number(this._orient === 'top') * this.getLayoutRect().height;\n }\n super.setLayoutStartPosition({ x, y });\n }\n\n computeBoundsInRect(rect: ILayoutRect) {\n const result = super.computeBoundsInRect(rect);\n if (!this._visible) {\n return result;\n }\n const bounds = this._latestBounds.clone().translate(-this.getLayoutStartPoint().x, -this.getLayoutStartPoint().y);\n switch (this._layoutOrient) {\n case 'left':\n if (this._layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x1 < 0 ? -bounds.x1 : 0;\n }\n break;\n case 'right':\n if (this._layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x2 > 0 ? bounds.x2 : 0;\n }\n break;\n case 'top':\n if (this._layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y1 < 0 ? -bounds.y1 : 0;\n }\n break;\n case 'bottom':\n if (this._layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y2 > 0 ? bounds.y2 : 0;\n }\n break;\n default:\n break;\n }\n result.width = Math.ceil(result.width);\n result.height = Math.ceil(result.height);\n // because of changed width\\height, reset result in spec configuration.\n return this._setRectInSpec(this._layoutCacheProcessing(result));\n }\n /**\n * bounds 预计算\n * @param rect\n * @returns\n */\n _boundsInRect(rect: ILayoutRect): IBoundsLike {\n let result: IBoundsLike = { x1: 0, y1: 0, x2: 0, y2: 0 };\n if (!this._visible) {\n return result;\n }\n this._verticalLimitSize = isXAxis(this.getOrient()) ? rect.height : rect.width;\n\n this.setLayoutRect(rect);\n const isChanged = this.updateScaleRange();\n if (isChanged) {\n this.computeData('range');\n }\n const context = { skipLayout: false };\n const isX = isXAxis(this.getOrient());\n if (this.pluginService) {\n isX\n ? this.callPlugin(plugin => {\n plugin.onWillLayoutHorizontal && plugin.onWillLayoutHorizontal(this.pluginService, context, this);\n })\n : this.callPlugin(plugin => {\n plugin.onWillLayoutVertical && plugin.onWillLayoutVertical(this.pluginService, context, this);\n });\n }\n const product = this._axisMark.getProduct();\n let hasBounds = false;\n\n if (!context.skipLayout) {\n const attrs = this._getUpdateAttribute(true);\n const axisComponent = product.getGroupGraphicItem();\n\n const spec = mergeSpec({ ...this.getLayoutStartPoint() }, this._axisStyle, attrs, { line: { visible: false } });\n const updateBounds = axisComponent.getBoundsWithoutRender(spec);\n\n if (isFinite(updateBounds.width())) {\n // 因为轴单位在某些区域显示的时候,是不参与轴某个方向的包围盒计算的,\n // 所以不太合适放在轴组件内支持,所以就在 VChart 层的轴组件上通过添加 text 图元支持\n result = this._appendAxisUnit(updateBounds, isX);\n\n hasBounds = true;\n this._latestBounds = updateBounds;\n }\n }\n\n if (!hasBounds) {\n this._latestBounds = product.getBounds();\n }\n return result;\n }\n\n updateLayoutAttribute(): void {\n if (!this.visible) {\n return;\n }\n const startPoint = this.getLayoutStartPoint();\n // 正式的更新布局属性\n const { grid: updateGridAttrs, ...updateAxisAttrs } = this._getUpdateAttribute(false);\n const axisProduct = this._axisMark.getProduct(); // 获取语法元素\n const axisAttrs = mergeSpec({ x: startPoint.x, y: startPoint.y }, this._axisStyle, updateAxisAttrs);\n axisProduct.encode(axisAttrs);\n\n if (this._gridMark) {\n const gridProduct = this._gridMark.getProduct(); // 获取语法元素\n gridProduct.encode(mergeSpec({ x: startPoint.x, y: startPoint.y }, this._getGridAttributes(), updateGridAttrs));\n }\n\n super.updateLayoutAttribute();\n }\n\n private _getTitleLimit(isX: boolean) {\n if (this._spec.title.visible && isNil(this._spec.title.style?.maxLineWidth)) {\n const angle = this._axisStyle.title?.angle ?? this._spec.title.style?.angle ?? 0;\n if (isX) {\n const width = this.getLayoutRect().width;\n const cosValue = Math.abs(Math.cos(angle));\n // VRender 接收到的limit是考虑角度计算后的宽度\n // TODO:还需要考虑angle后,高度是否太高,综合计算一个limit,比如高度不能超过图表整体高度的1/4\n return cosValue < 1e-6 ? Infinity : width / cosValue;\n }\n const height = this.getLayoutRect().height;\n const sinValue = Math.abs(Math.sin(angle));\n\n // TODO:还需要考虑angle后,宽度是否太宽,综合计算一个limit,比如宽度度不能超过图表整体宽度的1/4\n return sinValue < 1e-6 ? Infinity : height / sinValue;\n }\n\n return null;\n }\n\n private _getUpdateAttribute(ignoreGrid: boolean) {\n // 获取更新的坐标轴属性\n let regionHeight = 0;\n let regionWidth = 0;\n\n if (!ignoreGrid) {\n const regions = this.getRegions();\n let { x: minX, y: minY } = regions[0].getLayoutStartPoint();\n let maxX = minX + regions[0].getLayoutRect().width;\n let maxY = minY + regions[0].getLayoutRect().height;\n\n for (let index = 1; index < regions.length; index++) {\n const region = regions[index];\n const { x, y } = region.getLayoutStartPoint();\n const { width, height } = region.getLayoutRect();\n\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, width + x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, height + y);\n }\n regionHeight = Math.abs(maxY - minY);\n regionWidth = Math.abs(maxX - minX);\n }\n\n const { width, height } = this.getLayoutRect();\n const isX = isXAxis(this._orient);\n const isY = isYAxis(this._orient);\n const isZ = isZAxis(this._orient);\n let end = { x: 0, y: 0 };\n let gridLength = 0;\n let axisLength = 0;\n const depth = this.layout3dBox ? this.layout3dBox.length : 0;\n if (isX) {\n end = { x: width, y: 0 };\n gridLength = regionHeight;\n axisLength = width;\n } else if (isY) {\n end = { x: 0, y: height };\n gridLength = regionWidth;\n axisLength = height;\n }\n if (isZ) {\n const directionStr = this.directionStr ?? 'r2l';\n const depthZ = this.layout3dBox ? this.layout3dBox.width : 0;\n let anchor3d = [0, 0];\n let alpha = -Math.PI / 2;\n let z = 0;\n if (directionStr === 'l2r') {\n z = this.layout3dBox.length;\n anchor3d = [0, 0, 0];\n alpha = Math.PI / 2;\n }\n const items = this.getLabelItems(width);\n const axisAttrs: any = {\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n z: z,\n alpha,\n anchor3d,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items\n };\n if (!ignoreGrid) {\n axisAttrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth: depthZ,\n length: regionHeight,\n z: z,\n alpha,\n anchor3d\n };\n }\n return axisAttrs;\n }\n let verticalMinSize = isX ? this._minHeight : this._minWidth;\n if (\n (isX && this._layoutRectLevelMap.height === USER_LAYOUT_RECT_LEVEL) ||\n (isY && this._layoutRectLevelMap.width === USER_LAYOUT_RECT_LEVEL)\n ) {\n verticalMinSize = this._verticalLimitSize;\n }\n const items = this.getLabelItems(axisLength);\n const attrs: any = {\n start: { x: 0, y: 0 },\n end,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items,\n verticalLimitSize: this._verticalLimitSize,\n verticalMinSize\n };\n if (!ignoreGrid) {\n attrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end,\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth,\n length: gridLength\n };\n }\n\n return attrs;\n }\n\n protected initEvent() {\n super.initEvent();\n\n if (this.visible) {\n // 布局结束之后处理 0 基线问题\n this.event.on(ChartEvent.layoutEnd, this._fixAxisOnZero);\n // 图表resize后,需要正常布局,清除布局缓存\n this.event.on(ChartEvent.layoutRectUpdate, () => {\n this._clearLayoutCache();\n });\n }\n }\n\n private _fixAxisOnZero = () => {\n // 在布局结束之后调整坐标轴零基线\n const { onZero, visible } = this._spec.domainLine;\n if (this.visible && onZero && visible !== false) {\n const { onZeroAxisId, onZeroAxisIndex } = this._spec.domainLine;\n const axesComponents = this._option.getComponentsByKey('axes') as IAxis[];\n const isX = isXAxis(this.getOrient());\n\n // 判断坐标轴是否可用\n const isValidAxis = (item: any) => {\n return (\n (isX ? !isXAxis(item.orient) : isXAxis(item.orient)) &&\n isContinuous(item.getScale().type) &&\n item\n .getTickData()\n .getLatestData()\n ?.find((d: any) => d.value === 0)\n );\n };\n const relativeAxes = axesComponents.filter(item => isValidAxis(item));\n if (relativeAxes.length) {\n let bindAxis;\n if (isValid(onZeroAxisId)) {\n bindAxis = relativeAxes.find(axis => axis.id === onZeroAxisId);\n } else if (isValid(onZeroAxisIndex)) {\n const indexAxis = axesComponents[onZeroAxisIndex];\n if (isValidAxis(indexAxis)) {\n bindAxis = indexAxis;\n }\n } else {\n // 默认绑定第一条的相对坐标轴\n bindAxis = relativeAxes[0];\n }\n if (bindAxis) {\n const axisMark = this._axisMark.getProduct();\n // 找到了绑定的 axis,获取基线的位置\n const position = bindAxis.valueToPosition(0);\n // 获取偏移量\n if (isX) {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dy: this._orient === 'bottom' ? -(bindAxis.getScale().range()[0] - position) : position\n }\n });\n } else {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dx: this._orient === 'left' ? position : -(bindAxis.getScale().range()[1] - position)\n }\n });\n }\n }\n }\n }\n };\n\n protected _layoutCacheProcessing(rect: ILayoutRect) {\n ['width', 'height'].forEach(key => {\n if (rect[key] < this._layoutCache[key]) {\n rect[key] = this._layoutCache[key];\n } else {\n this._layoutCache[key] = rect[key];\n }\n });\n\n // outBounds\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n if (this._lastComputeOutBounds[key] < this._layoutCache._lastComputeOutBounds[key]) {\n this._lastComputeOutBounds[key] = this._layoutCache._lastComputeOutBounds[key];\n } else {\n this._layoutCache._lastComputeOutBounds[key] = this._lastComputeOutBounds[key];\n }\n });\n\n return rect;\n }\n\n _clearLayoutCache() {\n this._layoutCache.width = 0;\n this._layoutCache.height = 0;\n this._layoutCache._lastComputeOutBounds = { x1: 0, x2: 0, y1: 0, y2: 0 };\n }\n\n onDataUpdate(): void {\n // clear layout cache\n this._clearLayoutCache();\n }\n\n protected _transformSpec() {\n // change spec by default logic\n const chartSpec = this._option.getChart().getSpec();\n this._spec.inverse = transformInverse(this._spec, chartSpec.direction === Direction.horizontal);\n }\n\n private _appendAxisUnit(bounds: IBounds, isX: boolean) {\n if (this._spec.unit && this._spec.unit.visible) {\n const { text, style } = this._spec.unit;\n let pos;\n let unitTextStyle: any;\n if (isX) {\n pos = {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n };\n unitTextStyle = {\n textAlign: 'left',\n textBaseline: 'middle'\n };\n } else {\n pos = {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n unitTextStyle = {\n textAlign: this._orient === 'left' ? 'left' : 'right',\n textBaseline: 'bottom'\n };\n }\n\n unitTextStyle = {\n ...unitTextStyle,\n ...style,\n x: pos.x,\n y: pos.y,\n text\n };\n if (this._unitText) {\n this._unitText.setAttributes(unitTextStyle);\n } else {\n this._unitText = createText(unitTextStyle);\n this._unitText.name = 'axis-unit';\n this.getContainer()?.add(this._unitText);\n }\n\n // 左轴\n const textBounds = this._unitText.AABBBounds;\n if (!isX) {\n bounds.x1 += textBounds.x1 < bounds.x1 ? textBounds.x1 - bounds.x1 : 0;\n bounds.y1 += textBounds.y1 < bounds.y1 ? textBounds.y1 - bounds.y1 : 0;\n } else {\n bounds.x2 += textBounds.x2 > bounds.x2 ? textBounds.x2 - bounds.x2 : 0;\n bounds.y2 += textBounds.y2 > bounds.y2 ? textBounds.y2 - bounds.y2 : 0;\n }\n }\n\n return bounds;\n }\n\n getVRenderComponents(): IGraphic[] {\n return this._unitText ? [this._unitText] : [];\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/cartesian/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import type { IBounds, IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IEffect, IModelInitOption, ILayoutRect } from '../../../model/interface';\nimport type { ICartesianSeries } from '../../../series/interface';\nimport type { IRegion } from '../../../region/interface';\nimport type { ICartesianAxisCommonSpec, IAxisHelper, ICartesianAxisCommonTheme } from './interface';\nimport { isArray, isValid, isValidNumber, mergeSpec, eachSeries, isNil, isUndefined } from '../../../util';\nimport type { IOrientType } from '../../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../typings/space';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { LayoutItem } from '../../../model/layout-item';\nimport { Factory } from '../../../core/factory';\nimport { autoAxisType, isXAxis, getOrient, isZAxis, isYAxis, transformInverse } from './util/common';\nimport { ChartEvent, DEFAULT_LAYOUT_RECT_LEVEL, LayoutZIndex, USER_LAYOUT_RECT_LEVEL } from '../../../constant';\nimport { LayoutLevel } from '../../../constant/index';\nimport pluginMap from '../../../plugin/components';\nimport type { IPoint, StringOrNumber } from '../../../typings';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\nimport type { LineAxisAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValidCartesianAxis } from '../util';\nimport type { IAxis, ITick } from '../interface';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../../data/register';\nimport { scaleParser } from '../../../data/parser/scale';\nimport type { ICartesianTickDataOpt } from '@visactor/vutils-extension';\n// eslint-disable-next-line no-duplicate-imports\nimport { ticks } from '@visactor/vutils-extension';\nimport type { DataSet } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\nimport { CompilableData } from '../../../compile/data/compilable-data';\nimport { AxisComponent } from '../base-axis';\nimport type { IGraphic, IText } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { createText } from '@visactor/vrender-core';\n\nconst CartesianAxisPlugin = [pluginMap.AxisSyncPlugin];\n\nexport abstract class CartesianAxis<T extends ICartesianAxisCommonSpec = ICartesianAxisCommonSpec>\n extends AxisComponent<T>\n implements IAxis\n{\n static type = ComponentTypeEnum.cartesianAxis;\n type = ComponentTypeEnum.cartesianAxis;\n name: string = ComponentTypeEnum.cartesianAxis;\n\n protected readonly _defaultBandPosition = 0.5;\n protected readonly _defaultBandInnerPadding = 0.1;\n protected readonly _defaultBandOuterPadding = 0.3;\n\n // 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n declare directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n\n layoutType: LayoutItem['layoutType'] = 'region-relative';\n layoutZIndex: number = LayoutZIndex.Axis;\n layoutLevel: number = LayoutLevel.Axis;\n\n protected _dataSet: DataSet;\n\n layout3dBox?: { width: number; height: number; length: number };\n\n protected _orient: IOrientType = 'left';\n getOrient() {\n return this._orient;\n }\n\n get layoutOrient() {\n return this._layoutOrient;\n }\n set layoutOrient(v: IOrientType) {\n this._orient = v;\n this._layoutOrient = v;\n }\n\n protected _autoIndentOnce: boolean = false;\n protected _hasAutoIndent: boolean = false;\n set autoIndentOnce(v: boolean) {\n this._autoIndentOnce = v;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected declare _theme: ICartesianAxisCommonTheme;\n\n protected _statisticsDomain: {\n domain: any[];\n index: { [key in StringOrNumber]: number };\n } = { domain: [], index: {} };\n getStatisticsDomain() {\n return this._statisticsDomain;\n }\n\n protected _tick: ITick | undefined = undefined;\n\n private _axisStyle: Partial<LineAxisAttributes>;\n private _latestBounds: IBounds;\n private _verticalLimitSize: number;\n private _unitText: IText;\n\n protected _layoutCache: {\n width: number;\n height: number;\n _lastComputeOutBounds: IBoundsLike;\n } = { width: 0, height: 0, _lastComputeOutBounds: { x1: 0, x2: 0, y1: 0, y2: 0 } };\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this._orient = getOrient(spec, ['z']);\n if (isZAxis(this._orient)) {\n this.layoutType = 'absolute';\n }\n isValid(spec.autoIndent) && (this._autoIndent = spec.autoIndent);\n this._layoutOrient = this._orient;\n this._dataSet = options.dataSet;\n }\n\n static createAxis(spec: any, options: IComponentOption, isHorizontal: boolean = false): IAxis {\n const axisType = spec.type ?? autoAxisType(spec.orient, isHorizontal);\n const componentName = `${CartesianAxis.type}-${axisType}`;\n const C = Factory.getComponentInKey(componentName);\n if (C) {\n return new C(\n {\n ...spec,\n type: axisType\n },\n options\n ) as IAxis;\n }\n options.onError(`Component ${componentName} not found`);\n return null;\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n if (!this.type.startsWith(CartesianAxis.type)) {\n return null;\n }\n const regions = options.getRegionsInIndex();\n if (regions.find(r => r.coordinate !== 'cartesian')) {\n return null;\n }\n let axesSpec = spec[CartesianAxis.specKey] || options.defaultSpec;\n if (!axesSpec) {\n return null;\n }\n const isHorizontal = spec.direction === Direction.horizontal;\n if (!isArray(axesSpec)) {\n // 如果非法,或者只有一个z轴就不创建\n if (!isValidCartesianAxis(axesSpec)) {\n return null;\n }\n return CartesianAxis.createAxis(axesSpec, options, isHorizontal);\n }\n // 处理spec\n const zAxis = axesSpec.filter(s => s.orient === 'z')[0];\n let valid = true;\n if (zAxis) {\n const xAxis = axesSpec.filter(s => s.orient === 'bottom')[0];\n const yAxis = axesSpec.filter(s => isYAxis(s.orient))[0];\n // 必须有x和y,且x必须是bottom\n valid = axesSpec.length === 3 && xAxis && yAxis;\n }\n if (!valid) {\n axesSpec = axesSpec.filter(s => s.orient !== 'z');\n }\n const axes: IAxis[] = [];\n axesSpec.forEach((s: any, i: any) => {\n if (!isValidCartesianAxis(s)) {\n return;\n }\n axes.push(\n CartesianAxis.createAxis(\n s,\n {\n ...options,\n specIndex: i,\n specKey: CartesianAxis.specKey\n },\n isHorizontal\n ) as IAxis\n );\n });\n return axes;\n }\n\n setLayout3dBox(box3d: { width: number; height: number; length: number }) {\n this.layout3dBox = box3d;\n }\n\n effect: IEffect = {\n scaleUpdate: params => {\n this.computeData(params?.value);\n eachSeries(\n this._regions,\n s => {\n if (isXAxis(this.getOrient())) {\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(this.getOrient())) {\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(this.getOrient())) {\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n\n protected updateScaleRange() {\n let isScaleChange = false;\n const { width, height } = this.getLayoutRect();\n const inverse = this._spec.inverse;\n let newRange: number[] = [];\n if (isXAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = inverse ? [width, 0] : [0, width];\n }\n } else if (isZAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = inverse ? [width, 0] : [0, width];\n this._scale.range(newRange);\n }\n } else {\n if (isValidNumber(height)) {\n newRange = inverse ? [0, height] : [height, 0];\n }\n }\n\n const [start, end] = this._scale.range();\n if (newRange[0] !== start || newRange[1] !== end) {\n isScaleChange = true;\n this._scale.range(newRange);\n }\n\n return isScaleChange;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.pluginService?.load(CartesianAxisPlugin.map(P => new P()));\n this.callPlugin(plugin => {\n this.pluginService && plugin.onInit && plugin.onInit(this.pluginService, this);\n });\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this.visible) {\n const isX = isXAxis(this.getOrient());\n if (isX) {\n if (isUndefined(this._spec.maxHeight)) {\n this._spec.maxHeight = '30%';\n }\n } else if (isUndefined(this._spec.maxWidth)) {\n this._spec.maxWidth = '30%';\n }\n\n const axisStyle: any = this._getAxisAttributes();\n axisStyle.label.formatMethod = this.getLabelFormatMethod();\n axisStyle.verticalFactor = this.getOrient() === 'top' || this.getOrient() === 'right' ? -1 : 1;\n this._axisStyle = axisStyle;\n }\n this._tick = this._spec.tick;\n }\n\n protected getSeriesStatisticsField(s: ICartesianSeries) {\n let f: string[];\n if (isXAxis(this.getOrient())) {\n f = s.fieldX;\n } else if (isZAxis(this.getOrient())) {\n f = s.fieldZ;\n } else {\n f = s.fieldY;\n }\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected _initTickData(sampling: boolean) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n registerDataSetInstanceTransform(this._option.dataSet, 'ticks', ticks);\n\n const label = this._spec.label || {};\n const tick = this._tick || {};\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks` })\n .parse(this._scale, {\n type: 'scale'\n })\n .transform(\n {\n type: 'ticks',\n options: {\n sampling,\n tickCount: tick.tickCount,\n forceTickCount: tick.forceTickCount,\n tickStep: tick.tickStep,\n tickMode: tick.tickMode,\n noDecimals: tick.noDecimals,\n\n axisOrientType: this._orient,\n coordinateType: 'cartesian',\n\n labelStyle: label.style,\n labelFormatter: label.formatMethod,\n labelGap: label.minGap,\n\n labelLastVisible: label.lastVisible,\n labelFlush: label.flush\n } as ICartesianTickDataOpt\n },\n false\n );\n tickData.target.addListener('change', this._forceLayout.bind(this));\n\n this._tickData = new CompilableData(this._option, tickData);\n }\n\n protected _initData() {\n this._initTickData(this._spec.sampling !== false); // default do sampling\n }\n\n protected axisHelper(): IAxisHelper {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n return {\n isContinuous: isContinuous(this._scale.type),\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getStatisticsDomain: () => this.getStatisticsDomain(),\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._spec.inverse === true\n };\n }\n\n /** LifeCycle API**/\n afterCompile() {\n const product = this._axisMark?.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n // 布局结束之后再进行插件的调用\n // 插件在布局后\n if (isXAxis(this.getOrient())) {\n this.callPlugin(plugin => {\n this.pluginService &&\n plugin.onDidLayoutHorizontal &&\n plugin.onDidLayoutHorizontal(this.pluginService, this);\n });\n } else {\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidLayoutVertical && plugin.onDidLayoutVertical(this.pluginService, this);\n });\n }\n this._delegateAxisContainerEvent(product.getGroupGraphicItem());\n\n // 更新单位的显示位置\n if (this._unitText) {\n const bounds = product.graphicItem.AABBBounds;\n const pos = isXAxis(this._orient)\n ? {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n }\n : {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n\n this._unitText.setAttributes(pos);\n }\n }\n });\n }\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidCompile && plugin.onDidCompile(this.pluginService, this);\n });\n }\n\n onLayoutEnd(ctx: any): void {\n const isRangeChange = this.updateScaleRange();\n if (isRangeChange) {\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n // 这里会执行 computeData ,会执行系列scale更新\n } else {\n this.updateSeriesScale();\n }\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n update(ctx: IComponentOption) {\n // TODO\n }\n\n resize(ctx: IComponentOption) {\n // TODO\n }\n\n protected collectScale() {\n const scales: IBaseScale[] = [];\n eachSeries(\n this._regions,\n s => {\n scales.push(\n this.getOrient() === 'left' || this.getOrient() === 'right'\n ? (s as ICartesianSeries).scaleY\n : (s as ICartesianSeries).scaleX\n );\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return scales;\n }\n\n protected collectData(depth?: number) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n if (isXAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldX2\n ? [...(s as ICartesianSeries).fieldX, (s as ICartesianSeries).fieldX2]\n : (s as ICartesianSeries).fieldX;\n } else if (isZAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldZ;\n } else {\n field = (s as ICartesianSeries).fieldY;\n }\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected updateSeriesScale() {\n eachSeries(\n this._regions,\n s => {\n if (isXAxis(this.getOrient())) {\n (s as ICartesianSeries).setScaleX(this._scale);\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(this.getOrient())) {\n (s as ICartesianSeries).setScaleY(this._scale);\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(this.getOrient())) {\n (s as ICartesianSeries).setScaleZ(this._scale);\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n setLayoutStartPosition(pos: Partial<IPoint>): void {\n let { x, y } = pos;\n\n if (isValidNumber(x)) {\n x += Number(this._orient === 'left') * this.getLayoutRect().width;\n }\n if (isValidNumber(y)) {\n y += Number(this._orient === 'top') * this.getLayoutRect().height;\n }\n super.setLayoutStartPosition({ x, y });\n }\n\n computeBoundsInRect(rect: ILayoutRect) {\n const result = super.computeBoundsInRect(rect);\n if (!this._visible) {\n return result;\n }\n const bounds = this._latestBounds.clone().translate(-this.getLayoutStartPoint().x, -this.getLayoutStartPoint().y);\n switch (this._layoutOrient) {\n case 'left':\n if (this._layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x1 < 0 ? -bounds.x1 : 0;\n }\n break;\n case 'right':\n if (this._layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x2 > 0 ? bounds.x2 : 0;\n }\n break;\n case 'top':\n if (this._layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y1 < 0 ? -bounds.y1 : 0;\n }\n break;\n case 'bottom':\n if (this._layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y2 > 0 ? bounds.y2 : 0;\n }\n break;\n default:\n break;\n }\n result.width = Math.ceil(result.width);\n result.height = Math.ceil(result.height);\n // because of changed width\\height, reset result in spec configuration.\n return this._setRectInSpec(this._layoutCacheProcessing(result));\n }\n /**\n * bounds 预计算\n * @param rect\n * @returns\n */\n _boundsInRect(rect: ILayoutRect): IBoundsLike {\n let result: IBoundsLike = { x1: 0, y1: 0, x2: 0, y2: 0 };\n if (!this._visible) {\n return result;\n }\n this._verticalLimitSize = isXAxis(this.getOrient()) ? rect.height : rect.width;\n\n this.setLayoutRect(rect);\n const isChanged = this.updateScaleRange();\n if (isChanged) {\n this.computeData('range');\n }\n const context = { skipLayout: false };\n const isX = isXAxis(this.getOrient());\n if (this.pluginService) {\n isX\n ? this.callPlugin(plugin => {\n plugin.onWillLayoutHorizontal && plugin.onWillLayoutHorizontal(this.pluginService, context, this);\n })\n : this.callPlugin(plugin => {\n plugin.onWillLayoutVertical && plugin.onWillLayoutVertical(this.pluginService, context, this);\n });\n }\n const product = this._axisMark.getProduct();\n let hasBounds = false;\n\n if (!context.skipLayout) {\n const attrs = this._getUpdateAttribute(true);\n const axisComponent = product.getGroupGraphicItem();\n\n const spec = mergeSpec({ ...this.getLayoutStartPoint() }, this._axisStyle, attrs, { line: { visible: false } });\n const updateBounds = axisComponent.getBoundsWithoutRender(spec);\n\n if (isFinite(updateBounds.width())) {\n // 因为轴单位在某些区域显示的时候,是不参与轴某个方向的包围盒计算的,\n // 所以不太合适放在轴组件内支持,所以就在 VChart 层的轴组件上通过添加 text 图元支持\n result = this._appendAxisUnit(updateBounds, isX);\n\n hasBounds = true;\n this._latestBounds = updateBounds;\n }\n }\n\n if (!hasBounds) {\n this._latestBounds = product.getBounds();\n }\n return result;\n }\n\n updateLayoutAttribute(): void {\n if (!this.visible) {\n return;\n }\n const startPoint = this.getLayoutStartPoint();\n // 正式的更新布局属性\n const { grid: updateGridAttrs, ...updateAxisAttrs } = this._getUpdateAttribute(false);\n const axisProduct = this._axisMark.getProduct(); // 获取语法元素\n const axisAttrs = mergeSpec({ x: startPoint.x, y: startPoint.y }, this._axisStyle, updateAxisAttrs);\n axisProduct.encode(axisAttrs);\n\n if (this._gridMark) {\n const gridProduct = this._gridMark.getProduct(); // 获取语法元素\n gridProduct.encode(mergeSpec({ x: startPoint.x, y: startPoint.y }, this._getGridAttributes(), updateGridAttrs));\n }\n\n super.updateLayoutAttribute();\n }\n\n private _getTitleLimit(isX: boolean) {\n if (this._spec.title.visible && isNil(this._spec.title.style?.maxLineWidth)) {\n const angle = this._axisStyle.title?.angle ?? this._spec.title.style?.angle ?? 0;\n if (isX) {\n const width = this.getLayoutRect().width;\n const cosValue = Math.abs(Math.cos(angle));\n // VRender 接收到的limit是考虑角度计算后的宽度\n // TODO:还需要考虑angle后,高度是否太高,综合计算一个limit,比如高度不能超过图表整体高度的1/4\n return cosValue < 1e-6 ? Infinity : width / cosValue;\n }\n const height = this.getLayoutRect().height;\n const sinValue = Math.abs(Math.sin(angle));\n\n // TODO:还需要考虑angle后,宽度是否太宽,综合计算一个limit,比如宽度度不能超过图表整体宽度的1/4\n return sinValue < 1e-6 ? Infinity : height / sinValue;\n }\n\n return null;\n }\n\n private _getUpdateAttribute(ignoreGrid: boolean) {\n // 获取更新的坐标轴属性\n let regionHeight = 0;\n let regionWidth = 0;\n\n if (!ignoreGrid) {\n const regions = this.getRegions();\n let { x: minX, y: minY } = regions[0].getLayoutStartPoint();\n let maxX = minX + regions[0].getLayoutRect().width;\n let maxY = minY + regions[0].getLayoutRect().height;\n\n for (let index = 1; index < regions.length; index++) {\n const region = regions[index];\n const { x, y } = region.getLayoutStartPoint();\n const { width, height } = region.getLayoutRect();\n\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, width + x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, height + y);\n }\n regionHeight = Math.abs(maxY - minY);\n regionWidth = Math.abs(maxX - minX);\n }\n\n const { width, height } = this.getLayoutRect();\n const isX = isXAxis(this._orient);\n const isY = isYAxis(this._orient);\n const isZ = isZAxis(this._orient);\n let end = { x: 0, y: 0 };\n let gridLength = 0;\n let axisLength = 0;\n const depth = this.layout3dBox ? this.layout3dBox.length : 0;\n if (isX) {\n end = { x: width, y: 0 };\n gridLength = regionHeight;\n axisLength = width;\n } else if (isY) {\n end = { x: 0, y: height };\n gridLength = regionWidth;\n axisLength = height;\n }\n if (isZ) {\n const directionStr = this.directionStr ?? 'r2l';\n const depthZ = this.layout3dBox ? this.layout3dBox.width : 0;\n let anchor3d = [0, 0];\n let alpha = -Math.PI / 2;\n let z = 0;\n if (directionStr === 'l2r') {\n z = this.layout3dBox.length;\n anchor3d = [0, 0, 0];\n alpha = Math.PI / 2;\n }\n const items = this.getLabelItems(width);\n const axisAttrs: any = {\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n z: z,\n alpha,\n anchor3d,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items\n };\n if (!ignoreGrid) {\n axisAttrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth: depthZ,\n length: regionHeight,\n z: z,\n alpha,\n anchor3d\n };\n }\n return axisAttrs;\n }\n let verticalMinSize = isX ? this._minHeight : this._minWidth;\n if (\n (isX && this._layoutRectLevelMap.height === USER_LAYOUT_RECT_LEVEL) ||\n (isY && this._layoutRectLevelMap.width === USER_LAYOUT_RECT_LEVEL)\n ) {\n verticalMinSize = this._verticalLimitSize;\n }\n const items = this.getLabelItems(axisLength);\n const attrs: any = {\n start: { x: 0, y: 0 },\n end,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items,\n verticalLimitSize: this._verticalLimitSize,\n verticalMinSize\n };\n if (!ignoreGrid) {\n attrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end,\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth,\n length: gridLength\n };\n }\n\n return attrs;\n }\n\n protected initEvent() {\n super.initEvent();\n\n if (this.visible) {\n // 布局结束之后处理 0 基线问题\n this.event.on(ChartEvent.layoutEnd, this._fixAxisOnZero);\n // 图表resize后,需要正常布局,清除布局缓存\n this.event.on(ChartEvent.layoutRectUpdate, () => {\n this._clearLayoutCache();\n });\n }\n }\n\n private _fixAxisOnZero = () => {\n // 在布局结束之后调整坐标轴零基线\n const { onZero, visible } = this._spec.domainLine;\n if (this.visible && onZero && visible !== false) {\n const { onZeroAxisId, onZeroAxisIndex } = this._spec.domainLine;\n const axesComponents = this._option.getComponentsByKey('axes') as IAxis[];\n const isX = isXAxis(this.getOrient());\n\n // 判断坐标轴是否可用\n const isValidAxis = (item: any) => {\n return (\n (isX ? !isXAxis(item.orient) : isXAxis(item.orient)) &&\n isContinuous(item.getScale().type) &&\n item\n .getTickData()\n .getLatestData()\n ?.find((d: any) => d.value === 0)\n );\n };\n const relativeAxes = axesComponents.filter(item => isValidAxis(item));\n if (relativeAxes.length) {\n let bindAxis;\n if (isValid(onZeroAxisId)) {\n bindAxis = relativeAxes.find(axis => axis.id === onZeroAxisId);\n } else if (isValid(onZeroAxisIndex)) {\n const indexAxis = axesComponents[onZeroAxisIndex];\n if (isValidAxis(indexAxis)) {\n bindAxis = indexAxis;\n }\n } else {\n // 默认绑定第一条的相对坐标轴\n bindAxis = relativeAxes[0];\n }\n if (bindAxis) {\n const axisMark = this._axisMark.getProduct();\n // 找到了绑定的 axis,获取基线的位置\n const position = bindAxis.valueToPosition(0);\n // 获取偏移量\n if (isX) {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dy: this._orient === 'bottom' ? -(bindAxis.getScale().range()[0] - position) : position\n }\n });\n } else {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dx: this._orient === 'left' ? position : -(bindAxis.getScale().range()[1] - position)\n }\n });\n }\n }\n }\n }\n };\n\n protected _layoutCacheProcessing(rect: ILayoutRect) {\n ['width', 'height'].forEach(key => {\n if (rect[key] < this._layoutCache[key]) {\n rect[key] = this._layoutCache[key];\n } else {\n this._layoutCache[key] = rect[key];\n }\n });\n\n // outBounds\n if (this._autoIndentOnce && this._hasAutoIndent) {\n // use cache\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n this.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n });\n } else {\n this._hasAutoIndent = true;\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n if (this.getLastComputeOutBounds()[key] < this._layoutCache._lastComputeOutBounds[key]) {\n this.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n } else {\n this._layoutCache._lastComputeOutBounds[key] = this.getLastComputeOutBounds()[key];\n }\n });\n }\n\n return rect;\n }\n\n _clearLayoutCache() {\n this._hasAutoIndent = false;\n this._layoutCache.width = 0;\n this._layoutCache.height = 0;\n this._layoutCache._lastComputeOutBounds = { x1: 0, x2: 0, y1: 0, y2: 0 };\n }\n\n onDataUpdate(): void {\n // clear layout cache\n this._clearLayoutCache();\n }\n\n protected _transformSpec() {\n // change spec by default logic\n const chartSpec = this._option.getChart().getSpec();\n this._spec.inverse = transformInverse(this._spec, chartSpec.direction === Direction.horizontal);\n }\n\n private _appendAxisUnit(bounds: IBounds, isX: boolean) {\n if (this._spec.unit && this._spec.unit.visible) {\n const { text, style } = this._spec.unit;\n let pos;\n let unitTextStyle: any;\n if (isX) {\n pos = {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n };\n unitTextStyle = {\n textAlign: 'left',\n textBaseline: 'middle'\n };\n } else {\n pos = {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n unitTextStyle = {\n textAlign: this._orient === 'left' ? 'left' : 'right',\n textBaseline: 'bottom'\n };\n }\n\n unitTextStyle = {\n ...unitTextStyle,\n ...style,\n x: pos.x,\n y: pos.y,\n text\n };\n if (this._unitText) {\n this._unitText.setAttributes(unitTextStyle);\n } else {\n this._unitText = createText(unitTextStyle);\n this._unitText.name = 'axis-unit';\n this.getContainer()?.add(this._unitText);\n }\n\n // 左轴\n const textBounds = this._unitText.AABBBounds;\n if (!isX) {\n bounds.x1 += textBounds.x1 < bounds.x1 ? textBounds.x1 - bounds.x1 : 0;\n bounds.y1 += textBounds.y1 < bounds.y1 ? textBounds.y1 - bounds.y1 : 0;\n } else {\n bounds.x2 += textBounds.x2 > bounds.x2 ? textBounds.x2 - bounds.x2 : 0;\n bounds.y2 += textBounds.y2 > bounds.y2 ? textBounds.y2 - bounds.y2 : 0;\n }\n }\n\n return bounds;\n }\n\n getVRenderComponents(): IGraphic[] {\n return this._unitText ? [this._unitText] : [];\n }\n}\n"]}
@@ -40,8 +40,8 @@ class DataFilterBaseComponent extends base_component_1.BaseComponent {
40
40
  });
41
41
  }
42
42
  _handleChange(start, end, updateComponent) {
43
- var _a;
44
- null !== (_a = this._spec.zoomLock) && void 0 !== _a && _a || end - start < this._minSpan || this._maxSpan;
43
+ var _a, _b;
44
+ null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.zoomLock) && void 0 !== _b && _b || end - start < this._minSpan || this._maxSpan;
45
45
  }
46
46
  get visible() {
47
47
  return this._visible;
@@ -140,6 +140,7 @@ class DataFilterBaseComponent extends base_component_1.BaseComponent {
140
140
  this._relatedAxisComponent = bandAxis;
141
141
  }
142
142
  }
143
+ this._relatedAxisComponent && this._filterMode === constant_1.IFilterMode.axis && (this._relatedAxisComponent.autoIndentOnce = !0);
143
144
  }
144
145
  _setRegionsFromSpec() {
145
146
  var _a, _b;
@@ -328,7 +329,7 @@ class DataFilterBaseComponent extends base_component_1.BaseComponent {
328
329
  const option = {
329
330
  delayType: null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.delayType) && void 0 !== _b ? _b : "throttle",
330
331
  delayTime: (0, vutils_1.isValid)(null === (_c = this._spec) || void 0 === _c ? void 0 : _c.delayType) ? null !== (_e = null === (_d = this._spec) || void 0 === _d ? void 0 : _d.delayTime) && void 0 !== _e ? _e : 30 : 0,
331
- realTime: null !== (_g = null === (_f = this._spec) || void 0 === _f ? void 0 : _f.realTime) && void 0 !== _g && _g
332
+ realTime: null === (_g = null === (_f = this._spec) || void 0 === _f ? void 0 : _f.realTime) || void 0 === _g || _g
332
333
  };
333
334
  this._zoomAttr.enable && this.initZoomEventOfRegions(this._regions, null, this._handleChartZoom, option),
334
335
  this._scrollAttr.enable && this.initScrollEventOfRegions(this._regions, null, this._handleChartScroll, option),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/data-zoom/data-filter-base-component.ts"],"names":[],"mappings":"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","file":"data-filter-base-component.js","sourcesContent":["import type { ICartesianSeries, IPolarSeries, ISeries } from '../../series/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { eachSeries } from '../../util/model';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseComponent } from '../base/base-component';\nimport type { IEffect, IModelInitOption, ILayoutRect } from '../../model/interface';\nimport type { LayoutItem } from '../../model/layout-item';\nimport type { IComponent, IComponentOption } from '../interface';\nimport type { IGroupMark } from '../../mark/group';\nimport { dataFilterComputeDomain, dataFilterWithNewDomain } from './util';\nimport type { AdaptiveSpec, IOrientType, StringOrNumber } from '../../typings';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../data/register';\nimport { BandScale, isContinuous, isDiscrete } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IBandLikeScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../typings/space';\nimport type { CartesianAxis, ICartesianBandAxisSpec } from '../axis/cartesian';\nimport { getDirectionByOrient, getOrient } from '../axis/cartesian/util/common';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { mixin, clamp, isNil, merge, isEqual, isValid, array } from '@visactor/vutils';\nimport { IFilterMode } from './constant';\nimport type {\n IDataFilterComponent,\n IDataFilterComponentSpec,\n IRoamDragSpec,\n IRoamScrollSpec,\n IRoamZoomSpec\n} from './interface';\nimport { dataViewParser, DataView } from '@visactor/vdataset';\nimport { CompilableData } from '../../compile/data/compilable-data';\nimport type { BaseEventParams } from '../../event/interface';\nimport type { IZoomable } from '../../interaction/zoom/zoomable';\n// eslint-disable-next-line no-duplicate-imports\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport type { AbstractComponent } from '@visactor/vrender-components';\nimport type { IDelayType } from '../../typings/event';\nimport { TransformLevel } from '../../data/initialize';\n\nexport abstract class DataFilterBaseComponent<T extends IDataFilterComponentSpec = IDataFilterComponentSpec>\n extends BaseComponent<AdaptiveSpec<T, 'width' | 'height'>>\n implements IDataFilterComponent\n{\n layoutType: LayoutItem['layoutType'] = 'region-relative';\n\n protected _component: AbstractComponent;\n\n protected _orient: IOrientType = 'left';\n protected _isHorizontal: boolean;\n\n // 是否为自动模式\n protected _auto?: boolean;\n protected _fixedBandSize?: number;\n protected _cacheRect?: ILayoutRect;\n protected _cacheVisibility?: boolean;\n\n get orient() {\n return this._orient;\n }\n\n get layoutOrient() {\n return this._orient;\n }\n set layoutOrient(v: IOrientType) {\n this._orient = v;\n }\n\n // 数据\n protected _stateScale: IBaseScale;\n protected _relatedAxisComponent!: IComponent;\n protected _originalStateFields: Record<number, string | number>;\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId!: string[];\n protected _regionIndex!: number[];\n protected _newDomain: any[];\n\n // 起点数据\n protected _startValue!: number | string;\n // 终点数据\n protected _endValue!: number | string;\n // 开始值,百分比值,0 - 1\n protected _start!: number;\n // 结束值,百分比值,0 - 1\n protected _end!: number;\n // 最小窗口范围\n protected _minSpan!: number;\n // 最大窗口范围\n protected _maxSpan!: number;\n\n protected _field!: string | undefined;\n protected _stateField: string = 'x';\n protected _valueField?: string;\n\n protected _width!: number;\n protected _height!: number;\n\n protected _filterMode!: IFilterMode;\n\n protected _activeRoam: boolean = true;\n protected _zoomAttr: IRoamZoomSpec = {\n enable: true,\n rate: 1,\n focus: true\n };\n protected _dragAttr: IRoamDragSpec = {\n enable: true,\n rate: 1,\n reverse: true\n };\n protected _scrollAttr: IRoamScrollSpec = {\n enable: true,\n rate: 1,\n reverse: true\n };\n\n /**\n * 外部可以通过此方法强制改变datazoom的start和end,达到聚焦定位的效果\n * @param start datazoom起点所在的相对位置\n * @param end datazoom终点所在的相对位置\n * @returns\n */\n setStartAndEnd(start: number, end: number) {\n this._handleChange(start, end, true);\n }\n enableInteraction() {\n this._activeRoam = true;\n }\n disableInteraction() {\n this._activeRoam = false;\n }\n zoomIn(location?: { x: number; y: number }) {\n this._handleChartZoom({\n zoomDelta: 1.2, // 经验值\n zoomX: location?.x,\n zoomY: location?.y\n });\n }\n\n zoomOut(location?: { x: number; y: number }) {\n this._handleChartZoom({\n zoomDelta: 0.8, // 经验值\n zoomX: location?.x,\n zoomY: location?.y\n });\n }\n\n protected abstract _getComponentAttrs(): any;\n protected abstract _createOrUpdateComponent(): void;\n protected abstract _computeWidth(): number;\n protected abstract _computeHeight(): number;\n protected abstract _handleDataCollectionChange(): void;\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n const zoomLock = this._spec.zoomLock ?? false;\n if (zoomLock || end - start < this._minSpan || end - start > this._maxSpan) {\n return;\n }\n }\n\n effect: IEffect = {\n onZoomChange: () => {\n if (this._relatedAxisComponent && this._filterMode === IFilterMode.axis) {\n const axisScale = (this._relatedAxisComponent as CartesianAxis<any>).getScale() as IBandLikeScale;\n const axisSpec = (this._relatedAxisComponent as CartesianAxis<any>).getSpec() as ICartesianBandAxisSpec;\n if (this._auto && this._getAxisBandSize(axisSpec)) {\n // 提前更改 scale\n axisScale.range(this._stateScale?.range(), true);\n }\n\n // 轴的range有时是相反的\n // 比如相同的region范围, 有的场景range为[0, 500], 有的场景range为[500, 0]\n // 而datazoom/scrollbar的range是根据布局强制转化为[0, 500]\n // 所以这里在转换时进行判断并做转置, 有待优化\n // 轴在inverse时,也要做转置处理\n\n const newRangeFactor: [number, number] =\n axisScale.range()[0] < axisScale.range()[1] || axisSpec.inverse\n ? [this._start, this._end]\n : [1 - this._end, 1 - this._start];\n axisScale.rangeFactor(newRangeFactor);\n this._relatedAxisComponent.effect.scaleUpdate();\n } else {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.markRunning();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n eachSeries(\n this._regions,\n s => {\n s.reFilterViewData();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n }\n };\n\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec as any, {\n ...options\n });\n this._orient = getOrient(spec as any);\n this._layoutOrient = this._orient;\n this._isHorizontal = getDirectionByOrient(this._layoutOrient) === Direction.horizontal;\n isValid(spec.autoIndent) && (this._autoIndent = spec.autoIndent);\n }\n\n /**\n * the hook after this component is created\n */\n created() {\n super.created();\n // related axis\n this._setAxisFromSpec();\n // related regions\n this._setRegionsFromSpec();\n this._initEvent();\n // data for background\n this._initData();\n // init the state scale\n this._initStateScale();\n // set state: _start, _end, _startValue, _endValue, _newDomain from spec\n this._setStateFromSpec();\n }\n\n protected _setAxisFromSpec() {\n if (isValid(this._spec.axisId)) {\n this._relatedAxisComponent = this._option.getComponentByUserId(this._spec.axisId);\n } else if (isValid(this._spec.axisIndex)) {\n this._relatedAxisComponent = this._option.getComponentByIndex('axes', this._spec.axisIndex);\n }\n\n // 如果用户没有配置关联轴 或 用户配置的关联轴和datazoom方向不一致\n // 则 使用与datazoom的orient相同的第一个axis作为关联轴\n if (isNil(this._spec.field) && !this._relatedAxisComponent) {\n const axes = this._option.getComponentsByKey('axes');\n const sameOrientAxis = axes.find((cm: any) => (cm as any)._orient === this._orient);\n\n if (sameOrientAxis) {\n this._relatedAxisComponent = sameOrientAxis;\n } else {\n const bandAxis = axes.find((cm: any) => !isContinuous((cm as any).getScale().type));\n\n this._relatedAxisComponent = bandAxis;\n }\n }\n }\n\n protected _setRegionsFromSpec() {\n // 从axis中获取关联的regions\n this._regions = this._relatedAxisComponent ? this._relatedAxisComponent.getRegions() : this._option.getAllRegions();\n // 默认使用关联轴的系列绑定关系\n const bindSeriesFilter = this._relatedAxisComponent ? this._relatedAxisComponent.getBindSeriesFilter?.() : null;\n if (isValid(bindSeriesFilter)) {\n isValid(bindSeriesFilter.userId) && (this._seriesUserId = array(bindSeriesFilter.userId));\n isValid(bindSeriesFilter.specIndex) && (this._seriesIndex = array(bindSeriesFilter.specIndex));\n }\n // spec中的系列绑定关系 取交集\n if (isValid(this._spec.seriesId)) {\n const specSeriesId = array(this._spec.seriesId);\n if (this._seriesUserId) {\n this._seriesUserId = this._seriesUserId.filter(s => specSeriesId.includes(s));\n } else {\n this._seriesUserId = specSeriesId;\n }\n }\n if (isValid(this._spec.seriesIndex)) {\n const specSeriesIndex = array(this._spec.seriesIndex);\n if (this._seriesIndex) {\n this._seriesIndex = this._seriesIndex.filter(s => specSeriesIndex.includes(s));\n } else {\n this._seriesIndex = specSeriesIndex;\n }\n }\n if (isValid(this._spec.regionIndex)) {\n const regionsFromSpec = this._option.getRegionsInIndex(array(this._spec.regionIndex));\n // 如果用户配置了region就取 axis关联 和 用户配置 的交集\n this._regions = this._regions.filter(r => regionsFromSpec.includes(r));\n return;\n }\n if (isValid(this._spec.regionId)) {\n const ids = array(this._spec.regionId);\n // 如果用户配置了region就取 axis关联 和 用户配置 的交集\n this._regions = ids.length ? this._regions.filter(r => ids.includes(r.id)) : [];\n return;\n }\n return;\n }\n\n onDataUpdate(): void {\n const domain = this._computeDomainOfStateScale(isContinuous(this._stateScale.type));\n\n this._stateScale.domain(domain, true);\n this._handleChange(this._start, this._end, true);\n }\n\n protected _computeDomainOfStateScale(isContinuous?: boolean) {\n const domain = this._data.getLatestData().map((d: any) => d[this._stateField]);\n\n if (isContinuous) {\n return domain.length ? [Math.min.apply(null, domain), Math.max.apply(null, domain)] : [-Infinity, Infinity];\n }\n\n return domain;\n }\n\n protected _initEvent() {\n this._initCommonEvent();\n }\n\n protected _initData() {\n const dataCollection: any[] = [];\n const stateFields: string[] = [];\n const valueFields: string[] = [];\n let hasValidateValueField = false;\n\n if (this._relatedAxisComponent) {\n const originalStateFields = {};\n eachSeries(\n this._regions,\n s => {\n // 如果副轴的类型是time或band,则无法进行数据统计\n const xAxisHelper =\n s.coordinate === 'cartesian'\n ? (s as ICartesianSeries).getXAxisHelper()\n : s.coordinate === 'polar'\n ? (s as IPolarSeries).angleAxisHelper\n : null;\n const yAxisHelper =\n s.coordinate === 'cartesian'\n ? (s as ICartesianSeries).getYAxisHelper()\n : s.coordinate === 'polar'\n ? (s as IPolarSeries).radiusAxisHelper\n : null;\n if (!xAxisHelper || !yAxisHelper) {\n return;\n }\n const stateAxisHelper =\n xAxisHelper.getAxisId() === this._relatedAxisComponent.id\n ? xAxisHelper\n : yAxisHelper.getAxisId() === this._relatedAxisComponent.id\n ? yAxisHelper\n : this._isHorizontal\n ? xAxisHelper\n : yAxisHelper;\n const valueAxisHelper = stateAxisHelper === xAxisHelper ? yAxisHelper : xAxisHelper;\n const isValidateValueAxis = isContinuous(valueAxisHelper.getScale(0).type);\n\n if (isValidateValueAxis) {\n hasValidateValueField = true;\n }\n\n dataCollection.push(s.getRawData());\n // 这里获取原始的spec中的xField和yField,而非经过stack处理后的fieldX和fieldY,原因如下:\n // 1. dataFilterComputeDomain处理时拿到的viewData中没有__VCHART_STACK_START等属性,也就是还没处理\n // 2. datazoom计算的是原始的value值,如果要根据stack后的数据来算,则需要__VCHART_STACK_END - __VCHART_STACK_START\n const seriesSpec = s.getSpec();\n\n const xFields = array(seriesSpec.xField);\n const yFields = array(seriesSpec.yField);\n const xField = s.coordinate === 'cartesian' ? xFields[0] : seriesSpec.angleField ?? seriesSpec.categoryField;\n const yField = s.coordinate === 'cartesian' ? yFields[0] : seriesSpec.radiusField ?? seriesSpec.valueField;\n\n originalStateFields[s.id] =\n s.type === 'link' ? 'from_xField' : stateAxisHelper === xAxisHelper ? xField : yField;\n\n stateFields.push(originalStateFields[s.id]);\n if (this._valueField) {\n const valueField = s.type === 'link' ? 'from_yField' : valueAxisHelper === xAxisHelper ? xField : yField;\n valueFields.push(isValidateValueAxis ? valueField : null);\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n\n this._originalStateFields = originalStateFields;\n } else {\n hasValidateValueField = isNil(this._spec.valueField);\n eachSeries(\n this._regions,\n s => {\n dataCollection.push(s.getRawData());\n\n stateFields.push(this._field);\n if (this._valueField) {\n valueFields.push(this._spec.valueField);\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n const { dataSet } = this._option;\n registerDataSetInstanceParser(dataSet, 'dataview', dataViewParser);\n registerDataSetInstanceTransform(dataSet, 'dataFilterComputeDomain', dataFilterComputeDomain);\n const data = new DataView(dataSet, { name: `${this.type}_${this.id}_data` });\n data.transform(\n {\n type: 'dataFilterComputeDomain',\n options: {\n input: {\n dataCollection: dataCollection,\n stateFields,\n valueFields\n },\n output: {\n stateField: this._stateField,\n valueField: this._valueField\n }\n }\n },\n false\n );\n\n this._data = new CompilableData(this._option, data);\n data.reRunAllTransform();\n dataSet.multipleDataViewAddListener(dataCollection, 'change', this._handleDataCollectionChange.bind(this));\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n // interaction相关\n if (this._spec.roamZoom === true || this._spec.roamZoom) {\n this._zoomAttr = merge({}, this._zoomAttr, this._spec.roamZoom);\n } else {\n this._zoomAttr.enable = false;\n }\n\n if (this._spec.roamDrag === true || this._spec.roamDrag) {\n this._dragAttr = merge({}, this._dragAttr, this._spec.roamDrag);\n } else {\n this._dragAttr.enable = false;\n }\n\n if (this._spec.roamScroll === true || this._spec.roamScroll) {\n this._scrollAttr = merge({}, this._scrollAttr, this._spec.roamScroll);\n } else {\n this._scrollAttr.enable = false;\n }\n\n // style相关\n this._field = this._spec.field;\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n this._visible = this._spec.visible ?? true;\n }\n\n protected _statePointToData(state: number) {\n const scale = this._stateScale;\n let range = scale.range();\n\n if (!this._isHorizontal && isContinuous(scale.type)) {\n range = range.slice().reverse();\n }\n const posInRange: number = range[0] + (range[1] - range[0]) * state;\n\n return scale.invert(posInRange);\n }\n\n protected _dataToStatePoint(data: number | string) {\n const scale = this._stateScale;\n const pos = scale.scale(data);\n let range = scale.range();\n\n if (!this._isHorizontal && isContinuous(scale.type)) {\n range = range.slice().reverse();\n }\n\n return (pos - range[0]) / (range[1] - range[0]);\n }\n\n protected _modeCheck(statePoint: 'start' | 'end', mode: string): any {\n if (statePoint === 'start') {\n return (mode === 'percent' && this._spec.start) || (mode === 'value' && this._spec.startValue);\n }\n return (mode === 'percent' && this._spec.end) || (mode === 'value' && this._spec.endValue);\n }\n\n protected _setStateFromSpec() {\n this._auto = !!this._spec.auto;\n let start;\n let end;\n if (this._spec.rangeMode) {\n const [startMode, endMode] = this._spec.rangeMode;\n // 只有mode与配置相符时,才会生效\n // 比如rangeMode为['value', 'percent'],那么start为dataValue, end为[0, 1]\n if (this._modeCheck('start', startMode) && this._modeCheck('end', endMode)) {\n start = startMode === 'percent' ? this._spec.start : this._dataToStatePoint(this._spec.startValue);\n end = endMode === 'percent' ? this._spec.end : this._dataToStatePoint(this._spec.endValue);\n }\n } else {\n start = this._spec.start\n ? this._spec.start\n : this._spec.startValue\n ? this._dataToStatePoint(this._spec.startValue)\n : 0;\n end = this._spec.end ? this._spec.end : this._spec.endValue ? this._dataToStatePoint(this._spec.endValue) : 1;\n }\n this._startValue = this._statePointToData(start);\n this._endValue = this._statePointToData(end);\n this._start = start;\n this._end = end;\n this._minSpan = this._spec.minSpan ?? 0;\n this._maxSpan = this._spec.maxSpan ?? 1;\n if (isContinuous(this._stateScale.type) && this._stateScale.domain[0] !== this._stateScale.domain[1]) {\n if (this._spec.minValueSpan) {\n this._minSpan = this._spec.minValueSpan / (this._stateScale.domain()[1] - this._stateScale.domain()[0]);\n }\n if (this._spec.maxValueSpan) {\n this._maxSpan = this._spec.maxValueSpan / (this._stateScale.domain()[1] - this._stateScale.domain()[0]);\n }\n }\n this._minSpan = Math.max(0, this._minSpan);\n this._maxSpan = Math.min(this._maxSpan, 1);\n\n // eslint-disable-next-line max-len\n if (\n (!this._relatedAxisComponent || this._filterMode !== IFilterMode.axis) &&\n (this._start !== 0 || this._end !== 1)\n ) {\n this._newDomain = this._parseDomainFromState(this._startValue, this._endValue);\n }\n }\n\n private _parseFieldOfSeries(s: ISeries) {\n return this._originalStateFields?.[s.id];\n }\n\n protected _initStateScale() {\n const defaultRange = [0, 1];\n\n if (this._relatedAxisComponent) {\n const scale = (this._relatedAxisComponent as CartesianAxis<any>).getScale();\n const isContinuousScale = isContinuous(scale.type);\n const domain = this._computeDomainOfStateScale(isContinuousScale);\n\n this._stateScale = scale.clone();\n if (isContinuousScale) {\n this._stateScale\n .domain(domain.length ? [Math.min.apply(null, domain), Math.max.apply(null, domain)] : [0, 1], true)\n .range(defaultRange);\n } else {\n this._stateScale.domain(domain, true).range(defaultRange);\n }\n } else {\n this._stateScale = new BandScale();\n this._stateScale.domain(this._computeDomainOfStateScale(), true).range(defaultRange);\n }\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n // 添加 transform\n this._addTransformToSeries();\n // 增加datazoom 数据统计\n // 只有在轴没有被设置数据时才有用\n // this.addZoomStatistics();\n\n if (this._start !== 0 || this._end !== 1) {\n this.effect.onZoomChange();\n }\n }\n\n protected _addTransformToSeries() {\n if (!this._relatedAxisComponent || this._filterMode !== IFilterMode.axis) {\n registerDataSetInstanceTransform(this._option.dataSet, 'dataFilterWithNewDomain', dataFilterWithNewDomain);\n\n eachSeries(\n this._regions,\n s => {\n s.addViewDataFilter({\n type: 'dataFilterWithNewDomain',\n options: {\n getNewDomain: () => this._newDomain,\n field: () => {\n return this._field ?? this._parseFieldOfSeries(s);\n },\n isContinuous: () => isContinuous(this._stateScale.type)\n },\n level: TransformLevel.dataZoomFilter\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n }\n\n /** LifeCycle API**/\n onRender(ctx: any): void {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!result.reMake && !isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n\n return result;\n }\n\n reInit(theme?: any) {\n super.reInit(theme);\n\n this._marks.forEach(g => {\n (<IGroupMark>g).getMarks().forEach(m => {\n this.initMarkStyleWithSpec(m, this._spec[m.name]);\n });\n });\n }\n\n changeRegions() {\n // do nothing\n }\n protected update(ctx: IComponentOption) {\n // do nothing\n }\n protected resize(ctx: IComponentOption) {\n // do nothing\n }\n\n protected _parseDomainFromState(startValue: number | string, endValue: number | string) {\n if (isContinuous(this._stateScale.type)) {\n return [Math.min(endValue as number, startValue as number), Math.max(endValue as number, startValue as number)];\n }\n const allDomain = this._stateScale.domain();\n const startIndex = allDomain.indexOf(startValue);\n const endIndex = allDomain.indexOf(endValue);\n return allDomain.slice(Math.min(startIndex, endIndex), Math.max(startIndex, endIndex) + 1);\n }\n\n protected _handleStateChange = (startValue: number, endValue: number) => {\n this._startValue = startValue;\n this._endValue = endValue;\n\n this._newDomain = this._parseDomainFromState(this._startValue, this._endValue);\n\n this.effect.onZoomChange?.();\n return true;\n };\n\n protected _handleChartZoom = (params: { zoomDelta: number; zoomX?: number; zoomY?: number }) => {\n if (!this._activeRoam) {\n return;\n }\n\n const { zoomDelta, zoomX, zoomY } = params;\n const { x, y } = this._regions[0].getLayoutStartPoint();\n const { width, height } = this._regions[0].getLayoutRect();\n\n const delta = Math.abs(this._start - this._end);\n const zoomRate = (this._spec.roamZoom as IRoamZoomSpec)?.rate ?? 1;\n // zoomDelta > 1表示放大, zoomDelta < 1表示缩小\n if (delta >= 1 && zoomDelta < 1) {\n return;\n }\n if (delta <= 0.01 && zoomDelta > 1) {\n return;\n }\n const focusLoc = this._isHorizontal ? zoomX : zoomY;\n const totalValue = delta * (zoomDelta - 1) * zoomRate;\n let startValue = totalValue / 2;\n let endValue = totalValue / 2;\n if (focusLoc) {\n const startLoc = this._isHorizontal ? x : y;\n const endLoc = this._isHorizontal ? width : height;\n startValue = (Math.abs(startLoc - focusLoc) / Math.abs(endLoc - startLoc)) * totalValue;\n endValue = (Math.abs(endLoc - focusLoc) / Math.abs(endLoc - startLoc)) * totalValue;\n }\n const start = clamp(this._start + startValue, 0, 1);\n const end = clamp(this._end - endValue, 0, 1);\n\n this._handleChange(Math.min(start, end), Math.max(start, end), true);\n };\n\n protected _handleChartScroll = (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => {\n if (!this._activeRoam) {\n return;\n }\n const { scrollX, scrollY } = params;\n let value = this._isHorizontal ? scrollX : scrollY;\n if (!this._scrollAttr.reverse) {\n value = -value;\n }\n\n this._handleChartMove(value, this._scrollAttr.rate ?? 1);\n };\n\n protected _handleChartDrag = (delta: [number, number], e: BaseEventParams['event']) => {\n if (!this._activeRoam) {\n return;\n }\n const [dx, dy] = delta;\n let value = this._isHorizontal ? dx : dy;\n if (this._dragAttr.reverse) {\n value = -value;\n }\n\n this._handleChartMove(value, this._dragAttr.rate ?? 1);\n };\n\n protected _handleChartMove = (value: number, rate: number) => {\n const totalValue = this._isHorizontal ? this.getLayoutRect().width : this.getLayoutRect().height;\n if (Math.abs(value) >= 1e-6) {\n if (value > 0 && this._end < 1) {\n const moveDelta = Math.min(1 - this._end, value / totalValue) * rate;\n this._handleChange(this._start + moveDelta, this._end + moveDelta, true);\n } else if (value < 0 && this._start > 0) {\n const moveDelta = Math.max(-this._start, value / totalValue) * rate;\n this._handleChange(this._start + moveDelta, this._end + moveDelta, true);\n }\n }\n };\n\n protected _initCommonEvent() {\n const delayType: IDelayType = this._spec?.delayType ?? 'throttle';\n const delayTime = isValid(this._spec?.delayType) ? this._spec?.delayTime ?? 30 : 0;\n const realTime = this._spec?.realTime ?? false;\n const option = { delayType, delayTime, realTime };\n if (this._zoomAttr.enable) {\n (this as unknown as IZoomable).initZoomEventOfRegions(this._regions, null, this._handleChartZoom, option);\n }\n if (this._scrollAttr.enable) {\n (this as unknown as IZoomable).initScrollEventOfRegions(this._regions, null, this._handleChartScroll, option);\n }\n if (this._dragAttr.enable) {\n (this as unknown as IZoomable).initDragEventOfRegions(this._regions, null, this._handleChartDrag, option);\n }\n }\n\n updateLayoutAttribute(): void {\n // create or update component\n if (this._visible) {\n this._createOrUpdateComponent();\n }\n super.updateLayoutAttribute();\n }\n /**\n * bounds预计算\n * @param rect\n * @returns\n */\n _boundsInRect(rect: ILayoutRect): IBoundsLike {\n const isShown = this._autoUpdate(rect);\n if (!isShown) {\n return { x1: 0, y1: 0, x2: 0, y2: 0 };\n }\n\n const result: IBoundsLike = { x1: this.getLayoutStartPoint().x, y1: this.getLayoutStartPoint().y, x2: 0, y2: 0 };\n\n if (this._isHorizontal) {\n result.y2 = result.y1 + this._height;\n result.x2 = result.x1 + rect.width;\n } else {\n result.x2 = result.x1 + this._width;\n result.y2 = result.y1 + rect.height;\n }\n return result;\n }\n\n hide() {\n this._component?.hideAll();\n }\n\n show() {\n this._component?.showAll();\n }\n\n protected _getAxisBandSize(axisSpec?: ICartesianBandAxisSpec) {\n const bandSize = axisSpec?.bandSize;\n const maxBandSize = axisSpec?.maxBandSize;\n const minBandSize = axisSpec?.minBandSize;\n if (bandSize || minBandSize || maxBandSize) {\n return { bandSize, maxBandSize, minBandSize };\n }\n return undefined;\n }\n\n protected _autoUpdate(rect?: ILayoutRect): boolean {\n if (!this._auto) {\n return true;\n }\n\n const axisSpec = this._relatedAxisComponent?.getSpec() as ICartesianBandAxisSpec | undefined;\n const bandSizeResult = this._getAxisBandSize(axisSpec);\n const { bandSize, maxBandSize, minBandSize } = bandSizeResult ?? {};\n let isShown = true;\n const scale = this._stateScale as BandScale;\n scale.range(this._isHorizontal ? [0, rect.width] : axisSpec.inverse ? [0, rect.height] : [rect.height, 0]);\n if (isDiscrete(scale.type)) {\n if (\n rect?.height === this._cacheRect?.height &&\n rect?.width === this._cacheRect?.width &&\n this._fixedBandSize === bandSize\n ) {\n return this._cacheVisibility;\n }\n this._cacheRect = rect;\n if (bandSizeResult) {\n if (this._start || this._end) {\n scale.rangeFactor([this._start, this._end], true);\n }\n if (bandSize) {\n scale.bandwidth(bandSize, true);\n }\n if (maxBandSize) {\n scale.maxBandwidth(maxBandSize, true);\n }\n if (minBandSize) {\n scale.minBandwidth(minBandSize, true);\n }\n scale.rescale();\n }\n let [start, end] = scale.rangeFactor() ?? [];\n if ((!start && !end) || !scale.isBandwidthFixed()) {\n start = 0;\n end = 1;\n this.hide();\n isShown = false;\n } else {\n if (start === 0 && end === 1) {\n this.hide();\n isShown = false;\n } else {\n this.show();\n }\n }\n this._start = start;\n this._end = end;\n } else {\n const [start, end] = scale.rangeFactor() ?? [this._start, this._end];\n if (start === 0 && end === 1) {\n this.hide();\n isShown = false;\n } else {\n this.show();\n isShown = true;\n }\n }\n this.setStartAndEnd(this._start, this._end);\n this._cacheVisibility = isShown;\n return isShown;\n }\n}\n\nmixin(DataFilterBaseComponent, Zoomable);\n"]}
1
+ {"version":3,"sources":["../src/component/data-zoom/data-filter-base-component.ts"],"names":[],"mappings":"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","file":"data-filter-base-component.js","sourcesContent":["import type { ICartesianSeries, IPolarSeries, ISeries } from '../../series/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { eachSeries } from '../../util/model';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseComponent } from '../base/base-component';\nimport type { IEffect, IModelInitOption, ILayoutRect } from '../../model/interface';\nimport type { LayoutItem } from '../../model/layout-item';\nimport type { IComponent, IComponentOption } from '../interface';\nimport type { IGroupMark } from '../../mark/group';\nimport { dataFilterComputeDomain, dataFilterWithNewDomain } from './util';\nimport type { AdaptiveSpec, IOrientType, StringOrNumber } from '../../typings';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../data/register';\nimport { BandScale, isContinuous, isDiscrete } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IBandLikeScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../typings/space';\nimport type { CartesianAxis, ICartesianBandAxisSpec } from '../axis/cartesian';\nimport { getDirectionByOrient, getOrient } from '../axis/cartesian/util/common';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { mixin, clamp, isNil, merge, isEqual, isValid, array } from '@visactor/vutils';\nimport { IFilterMode } from './constant';\nimport type {\n IDataFilterComponent,\n IDataFilterComponentSpec,\n IRoamDragSpec,\n IRoamScrollSpec,\n IRoamZoomSpec\n} from './interface';\nimport { dataViewParser, DataView } from '@visactor/vdataset';\nimport { CompilableData } from '../../compile/data/compilable-data';\nimport type { BaseEventParams } from '../../event/interface';\nimport type { IZoomable } from '../../interaction/zoom/zoomable';\n// eslint-disable-next-line no-duplicate-imports\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport type { AbstractComponent } from '@visactor/vrender-components';\nimport type { IDelayType } from '../../typings/event';\nimport { TransformLevel } from '../../data/initialize';\n\nexport abstract class DataFilterBaseComponent<T extends IDataFilterComponentSpec = IDataFilterComponentSpec>\n extends BaseComponent<AdaptiveSpec<T, 'width' | 'height'>>\n implements IDataFilterComponent\n{\n layoutType: LayoutItem['layoutType'] = 'region-relative';\n\n protected _component: AbstractComponent;\n\n protected _orient: IOrientType = 'left';\n protected _isHorizontal: boolean;\n\n // 是否为自动模式\n protected _auto?: boolean;\n protected _fixedBandSize?: number;\n protected _cacheRect?: ILayoutRect;\n protected _cacheVisibility?: boolean;\n\n get orient() {\n return this._orient;\n }\n\n get layoutOrient() {\n return this._orient;\n }\n set layoutOrient(v: IOrientType) {\n this._orient = v;\n }\n\n // 数据\n protected _stateScale: IBaseScale;\n protected _relatedAxisComponent!: IComponent;\n protected _originalStateFields: Record<number, string | number>;\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId!: string[];\n protected _regionIndex!: number[];\n protected _newDomain: any[];\n\n // 起点数据\n protected _startValue!: number | string;\n // 终点数据\n protected _endValue!: number | string;\n // 开始值,百分比值,0 - 1\n protected _start!: number;\n // 结束值,百分比值,0 - 1\n protected _end!: number;\n // 最小窗口范围\n protected _minSpan!: number;\n // 最大窗口范围\n protected _maxSpan!: number;\n\n protected _field!: string | undefined;\n protected _stateField: string = 'x';\n protected _valueField?: string;\n\n protected _width!: number;\n protected _height!: number;\n\n protected _filterMode!: IFilterMode;\n\n protected _activeRoam: boolean = true;\n protected _zoomAttr: IRoamZoomSpec = {\n enable: true,\n rate: 1,\n focus: true\n };\n protected _dragAttr: IRoamDragSpec = {\n enable: true,\n rate: 1,\n reverse: true\n };\n protected _scrollAttr: IRoamScrollSpec = {\n enable: true,\n rate: 1,\n reverse: true\n };\n\n /**\n * 外部可以通过此方法强制改变datazoom的start和end,达到聚焦定位的效果\n * @param start datazoom起点所在的相对位置\n * @param end datazoom终点所在的相对位置\n * @returns\n */\n setStartAndEnd(start: number, end: number) {\n this._handleChange(start, end, true);\n }\n enableInteraction() {\n this._activeRoam = true;\n }\n disableInteraction() {\n this._activeRoam = false;\n }\n zoomIn(location?: { x: number; y: number }) {\n this._handleChartZoom({\n zoomDelta: 1.2, // 经验值\n zoomX: location?.x,\n zoomY: location?.y\n });\n }\n\n zoomOut(location?: { x: number; y: number }) {\n this._handleChartZoom({\n zoomDelta: 0.8, // 经验值\n zoomX: location?.x,\n zoomY: location?.y\n });\n }\n\n protected abstract _getComponentAttrs(): any;\n protected abstract _createOrUpdateComponent(): void;\n protected abstract _computeWidth(): number;\n protected abstract _computeHeight(): number;\n protected abstract _handleDataCollectionChange(): void;\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n const zoomLock = this._spec?.zoomLock ?? false;\n if (zoomLock || end - start < this._minSpan || end - start > this._maxSpan) {\n return;\n }\n }\n\n effect: IEffect = {\n onZoomChange: () => {\n if (this._relatedAxisComponent && this._filterMode === IFilterMode.axis) {\n const axisScale = (this._relatedAxisComponent as CartesianAxis<any>).getScale() as IBandLikeScale;\n const axisSpec = (this._relatedAxisComponent as CartesianAxis<any>).getSpec() as ICartesianBandAxisSpec;\n if (this._auto && this._getAxisBandSize(axisSpec)) {\n // 提前更改 scale\n axisScale.range(this._stateScale?.range(), true);\n }\n\n // 轴的range有时是相反的\n // 比如相同的region范围, 有的场景range为[0, 500], 有的场景range为[500, 0]\n // 而datazoom/scrollbar的range是根据布局强制转化为[0, 500]\n // 所以这里在转换时进行判断并做转置, 有待优化\n // 轴在inverse时,也要做转置处理\n\n const newRangeFactor: [number, number] =\n axisScale.range()[0] < axisScale.range()[1] || axisSpec.inverse\n ? [this._start, this._end]\n : [1 - this._end, 1 - this._start];\n axisScale.rangeFactor(newRangeFactor);\n this._relatedAxisComponent.effect.scaleUpdate();\n } else {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.markRunning();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n eachSeries(\n this._regions,\n s => {\n s.reFilterViewData();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n }\n };\n\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec as any, {\n ...options\n });\n this._orient = getOrient(spec as any);\n this._layoutOrient = this._orient;\n this._isHorizontal = getDirectionByOrient(this._layoutOrient) === Direction.horizontal;\n isValid(spec.autoIndent) && (this._autoIndent = spec.autoIndent);\n }\n\n /**\n * the hook after this component is created\n */\n created() {\n super.created();\n // related axis\n this._setAxisFromSpec();\n // related regions\n this._setRegionsFromSpec();\n this._initEvent();\n // data for background\n this._initData();\n // init the state scale\n this._initStateScale();\n // set state: _start, _end, _startValue, _endValue, _newDomain from spec\n this._setStateFromSpec();\n }\n\n protected _setAxisFromSpec() {\n if (isValid(this._spec.axisId)) {\n this._relatedAxisComponent = this._option.getComponentByUserId(this._spec.axisId);\n } else if (isValid(this._spec.axisIndex)) {\n this._relatedAxisComponent = this._option.getComponentByIndex('axes', this._spec.axisIndex);\n }\n\n // 如果用户没有配置关联轴 或 用户配置的关联轴和datazoom方向不一致\n // 则 使用与datazoom的orient相同的第一个axis作为关联轴\n if (isNil(this._spec.field) && !this._relatedAxisComponent) {\n const axes = this._option.getComponentsByKey('axes');\n const sameOrientAxis = axes.find((cm: any) => (cm as any)._orient === this._orient);\n\n if (sameOrientAxis) {\n this._relatedAxisComponent = sameOrientAxis;\n } else {\n const bandAxis = axes.find((cm: any) => !isContinuous((cm as any).getScale().type));\n\n this._relatedAxisComponent = bandAxis;\n }\n }\n\n if (this._relatedAxisComponent && this._filterMode === IFilterMode.axis) {\n (this._relatedAxisComponent as CartesianAxis<any>).autoIndentOnce = true;\n }\n }\n\n protected _setRegionsFromSpec() {\n // 从axis中获取关联的regions\n this._regions = this._relatedAxisComponent ? this._relatedAxisComponent.getRegions() : this._option.getAllRegions();\n // 默认使用关联轴的系列绑定关系\n const bindSeriesFilter = this._relatedAxisComponent ? this._relatedAxisComponent.getBindSeriesFilter?.() : null;\n if (isValid(bindSeriesFilter)) {\n isValid(bindSeriesFilter.userId) && (this._seriesUserId = array(bindSeriesFilter.userId));\n isValid(bindSeriesFilter.specIndex) && (this._seriesIndex = array(bindSeriesFilter.specIndex));\n }\n // spec中的系列绑定关系 取交集\n if (isValid(this._spec.seriesId)) {\n const specSeriesId = array(this._spec.seriesId);\n if (this._seriesUserId) {\n this._seriesUserId = this._seriesUserId.filter(s => specSeriesId.includes(s));\n } else {\n this._seriesUserId = specSeriesId;\n }\n }\n if (isValid(this._spec.seriesIndex)) {\n const specSeriesIndex = array(this._spec.seriesIndex);\n if (this._seriesIndex) {\n this._seriesIndex = this._seriesIndex.filter(s => specSeriesIndex.includes(s));\n } else {\n this._seriesIndex = specSeriesIndex;\n }\n }\n if (isValid(this._spec.regionIndex)) {\n const regionsFromSpec = this._option.getRegionsInIndex(array(this._spec.regionIndex));\n // 如果用户配置了region就取 axis关联 和 用户配置 的交集\n this._regions = this._regions.filter(r => regionsFromSpec.includes(r));\n return;\n }\n if (isValid(this._spec.regionId)) {\n const ids = array(this._spec.regionId);\n // 如果用户配置了region就取 axis关联 和 用户配置 的交集\n this._regions = ids.length ? this._regions.filter(r => ids.includes(r.id)) : [];\n return;\n }\n return;\n }\n\n onDataUpdate(): void {\n const domain = this._computeDomainOfStateScale(isContinuous(this._stateScale.type));\n\n this._stateScale.domain(domain, true);\n this._handleChange(this._start, this._end, true);\n }\n\n protected _computeDomainOfStateScale(isContinuous?: boolean) {\n const domain = this._data.getLatestData().map((d: any) => d[this._stateField]);\n\n if (isContinuous) {\n return domain.length ? [Math.min.apply(null, domain), Math.max.apply(null, domain)] : [-Infinity, Infinity];\n }\n\n return domain;\n }\n\n protected _initEvent() {\n this._initCommonEvent();\n }\n\n protected _initData() {\n const dataCollection: any[] = [];\n const stateFields: string[] = [];\n const valueFields: string[] = [];\n let hasValidateValueField = false;\n\n if (this._relatedAxisComponent) {\n const originalStateFields = {};\n eachSeries(\n this._regions,\n s => {\n // 如果副轴的类型是time或band,则无法进行数据统计\n const xAxisHelper =\n s.coordinate === 'cartesian'\n ? (s as ICartesianSeries).getXAxisHelper()\n : s.coordinate === 'polar'\n ? (s as IPolarSeries).angleAxisHelper\n : null;\n const yAxisHelper =\n s.coordinate === 'cartesian'\n ? (s as ICartesianSeries).getYAxisHelper()\n : s.coordinate === 'polar'\n ? (s as IPolarSeries).radiusAxisHelper\n : null;\n if (!xAxisHelper || !yAxisHelper) {\n return;\n }\n const stateAxisHelper =\n xAxisHelper.getAxisId() === this._relatedAxisComponent.id\n ? xAxisHelper\n : yAxisHelper.getAxisId() === this._relatedAxisComponent.id\n ? yAxisHelper\n : this._isHorizontal\n ? xAxisHelper\n : yAxisHelper;\n const valueAxisHelper = stateAxisHelper === xAxisHelper ? yAxisHelper : xAxisHelper;\n const isValidateValueAxis = isContinuous(valueAxisHelper.getScale(0).type);\n\n if (isValidateValueAxis) {\n hasValidateValueField = true;\n }\n\n dataCollection.push(s.getRawData());\n // 这里获取原始的spec中的xField和yField,而非经过stack处理后的fieldX和fieldY,原因如下:\n // 1. dataFilterComputeDomain处理时拿到的viewData中没有__VCHART_STACK_START等属性,也就是还没处理\n // 2. datazoom计算的是原始的value值,如果要根据stack后的数据来算,则需要__VCHART_STACK_END - __VCHART_STACK_START\n const seriesSpec = s.getSpec();\n\n const xFields = array(seriesSpec.xField);\n const yFields = array(seriesSpec.yField);\n const xField = s.coordinate === 'cartesian' ? xFields[0] : seriesSpec.angleField ?? seriesSpec.categoryField;\n const yField = s.coordinate === 'cartesian' ? yFields[0] : seriesSpec.radiusField ?? seriesSpec.valueField;\n\n originalStateFields[s.id] =\n s.type === 'link' ? 'from_xField' : stateAxisHelper === xAxisHelper ? xField : yField;\n\n stateFields.push(originalStateFields[s.id]);\n if (this._valueField) {\n const valueField = s.type === 'link' ? 'from_yField' : valueAxisHelper === xAxisHelper ? xField : yField;\n valueFields.push(isValidateValueAxis ? valueField : null);\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n\n this._originalStateFields = originalStateFields;\n } else {\n hasValidateValueField = isNil(this._spec.valueField);\n eachSeries(\n this._regions,\n s => {\n dataCollection.push(s.getRawData());\n\n stateFields.push(this._field);\n if (this._valueField) {\n valueFields.push(this._spec.valueField);\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n const { dataSet } = this._option;\n registerDataSetInstanceParser(dataSet, 'dataview', dataViewParser);\n registerDataSetInstanceTransform(dataSet, 'dataFilterComputeDomain', dataFilterComputeDomain);\n const data = new DataView(dataSet, { name: `${this.type}_${this.id}_data` });\n data.transform(\n {\n type: 'dataFilterComputeDomain',\n options: {\n input: {\n dataCollection: dataCollection,\n stateFields,\n valueFields\n },\n output: {\n stateField: this._stateField,\n valueField: this._valueField\n }\n }\n },\n false\n );\n\n this._data = new CompilableData(this._option, data);\n data.reRunAllTransform();\n dataSet.multipleDataViewAddListener(dataCollection, 'change', this._handleDataCollectionChange.bind(this));\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n // interaction相关\n if (this._spec.roamZoom === true || this._spec.roamZoom) {\n this._zoomAttr = merge({}, this._zoomAttr, this._spec.roamZoom);\n } else {\n this._zoomAttr.enable = false;\n }\n\n if (this._spec.roamDrag === true || this._spec.roamDrag) {\n this._dragAttr = merge({}, this._dragAttr, this._spec.roamDrag);\n } else {\n this._dragAttr.enable = false;\n }\n\n if (this._spec.roamScroll === true || this._spec.roamScroll) {\n this._scrollAttr = merge({}, this._scrollAttr, this._spec.roamScroll);\n } else {\n this._scrollAttr.enable = false;\n }\n\n // style相关\n this._field = this._spec.field;\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n this._visible = this._spec.visible ?? true;\n }\n\n protected _statePointToData(state: number) {\n const scale = this._stateScale;\n let range = scale.range();\n\n if (!this._isHorizontal && isContinuous(scale.type)) {\n range = range.slice().reverse();\n }\n const posInRange: number = range[0] + (range[1] - range[0]) * state;\n\n return scale.invert(posInRange);\n }\n\n protected _dataToStatePoint(data: number | string) {\n const scale = this._stateScale;\n const pos = scale.scale(data);\n let range = scale.range();\n\n if (!this._isHorizontal && isContinuous(scale.type)) {\n range = range.slice().reverse();\n }\n\n return (pos - range[0]) / (range[1] - range[0]);\n }\n\n protected _modeCheck(statePoint: 'start' | 'end', mode: string): any {\n if (statePoint === 'start') {\n return (mode === 'percent' && this._spec.start) || (mode === 'value' && this._spec.startValue);\n }\n return (mode === 'percent' && this._spec.end) || (mode === 'value' && this._spec.endValue);\n }\n\n protected _setStateFromSpec() {\n this._auto = !!this._spec.auto;\n let start;\n let end;\n if (this._spec.rangeMode) {\n const [startMode, endMode] = this._spec.rangeMode;\n // 只有mode与配置相符时,才会生效\n // 比如rangeMode为['value', 'percent'],那么start为dataValue, end为[0, 1]\n if (this._modeCheck('start', startMode) && this._modeCheck('end', endMode)) {\n start = startMode === 'percent' ? this._spec.start : this._dataToStatePoint(this._spec.startValue);\n end = endMode === 'percent' ? this._spec.end : this._dataToStatePoint(this._spec.endValue);\n }\n } else {\n start = this._spec.start\n ? this._spec.start\n : this._spec.startValue\n ? this._dataToStatePoint(this._spec.startValue)\n : 0;\n end = this._spec.end ? this._spec.end : this._spec.endValue ? this._dataToStatePoint(this._spec.endValue) : 1;\n }\n this._startValue = this._statePointToData(start);\n this._endValue = this._statePointToData(end);\n this._start = start;\n this._end = end;\n this._minSpan = this._spec.minSpan ?? 0;\n this._maxSpan = this._spec.maxSpan ?? 1;\n if (isContinuous(this._stateScale.type) && this._stateScale.domain[0] !== this._stateScale.domain[1]) {\n if (this._spec.minValueSpan) {\n this._minSpan = this._spec.minValueSpan / (this._stateScale.domain()[1] - this._stateScale.domain()[0]);\n }\n if (this._spec.maxValueSpan) {\n this._maxSpan = this._spec.maxValueSpan / (this._stateScale.domain()[1] - this._stateScale.domain()[0]);\n }\n }\n this._minSpan = Math.max(0, this._minSpan);\n this._maxSpan = Math.min(this._maxSpan, 1);\n\n // eslint-disable-next-line max-len\n if (\n (!this._relatedAxisComponent || this._filterMode !== IFilterMode.axis) &&\n (this._start !== 0 || this._end !== 1)\n ) {\n this._newDomain = this._parseDomainFromState(this._startValue, this._endValue);\n }\n }\n\n private _parseFieldOfSeries(s: ISeries) {\n return this._originalStateFields?.[s.id];\n }\n\n protected _initStateScale() {\n const defaultRange = [0, 1];\n\n if (this._relatedAxisComponent) {\n const scale = (this._relatedAxisComponent as CartesianAxis<any>).getScale();\n const isContinuousScale = isContinuous(scale.type);\n const domain = this._computeDomainOfStateScale(isContinuousScale);\n\n this._stateScale = scale.clone();\n if (isContinuousScale) {\n this._stateScale\n .domain(domain.length ? [Math.min.apply(null, domain), Math.max.apply(null, domain)] : [0, 1], true)\n .range(defaultRange);\n } else {\n this._stateScale.domain(domain, true).range(defaultRange);\n }\n } else {\n this._stateScale = new BandScale();\n this._stateScale.domain(this._computeDomainOfStateScale(), true).range(defaultRange);\n }\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n // 添加 transform\n this._addTransformToSeries();\n // 增加datazoom 数据统计\n // 只有在轴没有被设置数据时才有用\n // this.addZoomStatistics();\n\n if (this._start !== 0 || this._end !== 1) {\n this.effect.onZoomChange();\n }\n }\n\n protected _addTransformToSeries() {\n if (!this._relatedAxisComponent || this._filterMode !== IFilterMode.axis) {\n registerDataSetInstanceTransform(this._option.dataSet, 'dataFilterWithNewDomain', dataFilterWithNewDomain);\n\n eachSeries(\n this._regions,\n s => {\n s.addViewDataFilter({\n type: 'dataFilterWithNewDomain',\n options: {\n getNewDomain: () => this._newDomain,\n field: () => {\n return this._field ?? this._parseFieldOfSeries(s);\n },\n isContinuous: () => isContinuous(this._stateScale.type)\n },\n level: TransformLevel.dataZoomFilter\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n }\n\n /** LifeCycle API**/\n onRender(ctx: any): void {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!result.reMake && !isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n\n return result;\n }\n\n reInit(theme?: any) {\n super.reInit(theme);\n\n this._marks.forEach(g => {\n (<IGroupMark>g).getMarks().forEach(m => {\n this.initMarkStyleWithSpec(m, this._spec[m.name]);\n });\n });\n }\n\n changeRegions() {\n // do nothing\n }\n protected update(ctx: IComponentOption) {\n // do nothing\n }\n protected resize(ctx: IComponentOption) {\n // do nothing\n }\n\n protected _parseDomainFromState(startValue: number | string, endValue: number | string) {\n if (isContinuous(this._stateScale.type)) {\n return [Math.min(endValue as number, startValue as number), Math.max(endValue as number, startValue as number)];\n }\n const allDomain = this._stateScale.domain();\n const startIndex = allDomain.indexOf(startValue);\n const endIndex = allDomain.indexOf(endValue);\n return allDomain.slice(Math.min(startIndex, endIndex), Math.max(startIndex, endIndex) + 1);\n }\n\n protected _handleStateChange = (startValue: number, endValue: number) => {\n this._startValue = startValue;\n this._endValue = endValue;\n\n this._newDomain = this._parseDomainFromState(this._startValue, this._endValue);\n\n this.effect.onZoomChange?.();\n return true;\n };\n\n protected _handleChartZoom = (params: { zoomDelta: number; zoomX?: number; zoomY?: number }) => {\n if (!this._activeRoam) {\n return;\n }\n\n const { zoomDelta, zoomX, zoomY } = params;\n const { x, y } = this._regions[0].getLayoutStartPoint();\n const { width, height } = this._regions[0].getLayoutRect();\n\n const delta = Math.abs(this._start - this._end);\n const zoomRate = (this._spec.roamZoom as IRoamZoomSpec)?.rate ?? 1;\n // zoomDelta > 1表示放大, zoomDelta < 1表示缩小\n if (delta >= 1 && zoomDelta < 1) {\n return;\n }\n if (delta <= 0.01 && zoomDelta > 1) {\n return;\n }\n const focusLoc = this._isHorizontal ? zoomX : zoomY;\n const totalValue = delta * (zoomDelta - 1) * zoomRate;\n let startValue = totalValue / 2;\n let endValue = totalValue / 2;\n if (focusLoc) {\n const startLoc = this._isHorizontal ? x : y;\n const endLoc = this._isHorizontal ? width : height;\n startValue = (Math.abs(startLoc - focusLoc) / Math.abs(endLoc - startLoc)) * totalValue;\n endValue = (Math.abs(endLoc - focusLoc) / Math.abs(endLoc - startLoc)) * totalValue;\n }\n const start = clamp(this._start + startValue, 0, 1);\n const end = clamp(this._end - endValue, 0, 1);\n\n this._handleChange(Math.min(start, end), Math.max(start, end), true);\n };\n\n protected _handleChartScroll = (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => {\n if (!this._activeRoam) {\n return;\n }\n const { scrollX, scrollY } = params;\n let value = this._isHorizontal ? scrollX : scrollY;\n if (!this._scrollAttr.reverse) {\n value = -value;\n }\n\n this._handleChartMove(value, this._scrollAttr.rate ?? 1);\n };\n\n protected _handleChartDrag = (delta: [number, number], e: BaseEventParams['event']) => {\n if (!this._activeRoam) {\n return;\n }\n const [dx, dy] = delta;\n let value = this._isHorizontal ? dx : dy;\n if (this._dragAttr.reverse) {\n value = -value;\n }\n\n this._handleChartMove(value, this._dragAttr.rate ?? 1);\n };\n\n protected _handleChartMove = (value: number, rate: number) => {\n const totalValue = this._isHorizontal ? this.getLayoutRect().width : this.getLayoutRect().height;\n if (Math.abs(value) >= 1e-6) {\n if (value > 0 && this._end < 1) {\n const moveDelta = Math.min(1 - this._end, value / totalValue) * rate;\n this._handleChange(this._start + moveDelta, this._end + moveDelta, true);\n } else if (value < 0 && this._start > 0) {\n const moveDelta = Math.max(-this._start, value / totalValue) * rate;\n this._handleChange(this._start + moveDelta, this._end + moveDelta, true);\n }\n }\n };\n\n protected _initCommonEvent() {\n const delayType: IDelayType = this._spec?.delayType ?? 'throttle';\n const delayTime = isValid(this._spec?.delayType) ? this._spec?.delayTime ?? 30 : 0;\n const realTime = this._spec?.realTime ?? true;\n const option = { delayType, delayTime, realTime };\n if (this._zoomAttr.enable) {\n (this as unknown as IZoomable).initZoomEventOfRegions(this._regions, null, this._handleChartZoom, option);\n }\n if (this._scrollAttr.enable) {\n (this as unknown as IZoomable).initScrollEventOfRegions(this._regions, null, this._handleChartScroll, option);\n }\n if (this._dragAttr.enable) {\n (this as unknown as IZoomable).initDragEventOfRegions(this._regions, null, this._handleChartDrag, option);\n }\n }\n\n updateLayoutAttribute(): void {\n // create or update component\n if (this._visible) {\n this._createOrUpdateComponent();\n }\n super.updateLayoutAttribute();\n }\n /**\n * bounds预计算\n * @param rect\n * @returns\n */\n _boundsInRect(rect: ILayoutRect): IBoundsLike {\n const isShown = this._autoUpdate(rect);\n if (!isShown) {\n return { x1: 0, y1: 0, x2: 0, y2: 0 };\n }\n\n const result: IBoundsLike = { x1: this.getLayoutStartPoint().x, y1: this.getLayoutStartPoint().y, x2: 0, y2: 0 };\n\n if (this._isHorizontal) {\n result.y2 = result.y1 + this._height;\n result.x2 = result.x1 + rect.width;\n } else {\n result.x2 = result.x1 + this._width;\n result.y2 = result.y1 + rect.height;\n }\n return result;\n }\n\n hide() {\n this._component?.hideAll();\n }\n\n show() {\n this._component?.showAll();\n }\n\n protected _getAxisBandSize(axisSpec?: ICartesianBandAxisSpec) {\n const bandSize = axisSpec?.bandSize;\n const maxBandSize = axisSpec?.maxBandSize;\n const minBandSize = axisSpec?.minBandSize;\n if (bandSize || minBandSize || maxBandSize) {\n return { bandSize, maxBandSize, minBandSize };\n }\n return undefined;\n }\n\n protected _autoUpdate(rect?: ILayoutRect): boolean {\n if (!this._auto) {\n return true;\n }\n\n const axisSpec = this._relatedAxisComponent?.getSpec() as ICartesianBandAxisSpec | undefined;\n const bandSizeResult = this._getAxisBandSize(axisSpec);\n const { bandSize, maxBandSize, minBandSize } = bandSizeResult ?? {};\n let isShown = true;\n const scale = this._stateScale as BandScale;\n scale.range(this._isHorizontal ? [0, rect.width] : axisSpec.inverse ? [0, rect.height] : [rect.height, 0]);\n if (isDiscrete(scale.type)) {\n if (\n rect?.height === this._cacheRect?.height &&\n rect?.width === this._cacheRect?.width &&\n this._fixedBandSize === bandSize\n ) {\n return this._cacheVisibility;\n }\n this._cacheRect = rect;\n if (bandSizeResult) {\n if (this._start || this._end) {\n scale.rangeFactor([this._start, this._end], true);\n }\n if (bandSize) {\n scale.bandwidth(bandSize, true);\n }\n if (maxBandSize) {\n scale.maxBandwidth(maxBandSize, true);\n }\n if (minBandSize) {\n scale.minBandwidth(minBandSize, true);\n }\n scale.rescale();\n }\n let [start, end] = scale.rangeFactor() ?? [];\n if ((!start && !end) || !scale.isBandwidthFixed()) {\n start = 0;\n end = 1;\n this.hide();\n isShown = false;\n } else {\n if (start === 0 && end === 1) {\n this.hide();\n isShown = false;\n } else {\n this.show();\n }\n }\n this._start = start;\n this._end = end;\n } else {\n const [start, end] = scale.rangeFactor() ?? [this._start, this._end];\n if (start === 0 && end === 1) {\n this.hide();\n isShown = false;\n } else {\n this.show();\n isShown = true;\n }\n }\n this.setStartAndEnd(this._start, this._end);\n this._cacheVisibility = isShown;\n return isShown;\n }\n}\n\nmixin(DataFilterBaseComponent, Zoomable);\n"]}