@visactor/vchart 2.0.3-alpha.0 → 2.0.3-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +1 -1
- package/build/index.es.js +980 -897
- package/build/index.js +981 -896
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/index.js +2 -1
- package/cjs/animation/interface.js +1 -2
- package/cjs/animation/utils.js +1 -1
- package/cjs/animation/utils.js.map +1 -1
- package/cjs/chart/base/base-chart-transformer.js +3 -3
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +1 -0
- package/cjs/chart/base/base-chart.js +5 -8
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/index.d.ts +2 -2
- package/cjs/chart/index.js +7 -2
- package/cjs/chart/index.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +1 -0
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/interface/common.d.ts +1 -1
- package/cjs/chart/interface/common.js.map +1 -1
- package/cjs/chart/util.js +2 -1
- package/cjs/compile/compiler.d.ts +1 -0
- package/cjs/compile/compiler.js +13 -5
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/interface/compilable-item.d.ts +1 -0
- package/cjs/compile/interface/compilable-item.js.map +1 -1
- package/cjs/compile/interface/compiler.d.ts +5 -0
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/component/axis/base-axis.js +14 -13
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +8 -0
- package/cjs/component/axis/cartesian/band-axis.js +9 -0
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/mixin/band-axis-mixin.d.ts +2 -0
- package/cjs/component/axis/mixin/band-axis-mixin.js +15 -1
- package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/cjs/component/brush/brush.js +6 -6
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/brush/interface.d.ts +1 -0
- package/cjs/component/brush/interface.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +1 -1
- package/cjs/component/crosshair/base.js +1 -1
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/utils/cartesian.js +2 -2
- package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.js +6 -9
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +0 -1
- package/cjs/component/data-zoom/data-filter-base-component.js +13 -19
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/interface.d.ts +0 -3
- package/cjs/component/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/util.d.ts +0 -1
- package/cjs/component/data-zoom/util.js +3 -4
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/component/player/player.js +2 -1
- package/cjs/component/player/player.js.map +1 -1
- package/cjs/component/tooltip/tooltip.js +8 -3
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/constant/attribute.js +1 -2
- package/cjs/constant/sunburst.js +2 -1
- package/cjs/constant/waterfall.js +1 -2
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.d.ts +1 -0
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/util.js +1 -1
- package/cjs/core/vchart.d.ts +2 -0
- package/cjs/core/vchart.js +42 -22
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/obj-flat.js +1 -4
- package/cjs/data/transforms/obj-flat.js.map +1 -1
- package/cjs/mark/base/base-line.d.ts +1 -1
- package/cjs/mark/base/base-line.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +6 -2
- package/cjs/mark/base/base-mark.js +69 -51
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/group.d.ts +3 -2
- package/cjs/mark/group.js +15 -13
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/common.d.ts +5 -2
- package/cjs/mark/interface/common.js.map +1 -1
- package/cjs/model/base-model.d.ts +5 -1
- package/cjs/model/base-model.js +7 -0
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +5 -2
- package/cjs/model/interface.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/style.js +4 -4
- package/cjs/plugin/components/tooltip-handler/utils/style.js.map +1 -1
- package/cjs/region/region.js.map +1 -1
- package/cjs/series/base/base-series-transformer.js +1 -1
- package/cjs/series/base/base-series-transformer.js.map +1 -1
- package/cjs/series/base/base-series.js +2 -3
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/dot/dot.d.ts +0 -1
- package/cjs/series/dot/dot.js +6 -29
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/dot/interface.d.ts +0 -1
- package/cjs/series/dot/interface.js.map +1 -1
- package/cjs/series/dot/tooltip-helper.js +2 -3
- package/cjs/series/dot/tooltip-helper.js.map +1 -1
- package/cjs/series/funnel/funnel.js +0 -2
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/interface/type.d.ts +0 -3
- package/cjs/series/interface/type.js +3 -5
- package/cjs/series/interface/type.js.map +1 -1
- package/cjs/series/link/constant.js +0 -8
- package/cjs/series/link/constant.js.map +1 -1
- package/cjs/series/link/interface.d.ts +1 -10
- package/cjs/series/link/interface.js +1 -5
- package/cjs/series/link/interface.js.map +1 -1
- package/cjs/series/link/link.d.ts +1 -3
- package/cjs/series/link/link.js +16 -46
- package/cjs/series/link/link.js.map +1 -1
- package/cjs/series/map/map.js +1 -2
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/pie/pie.js +0 -1
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/sankey/sankey.d.ts +10 -10
- package/cjs/series/sankey/sankey.js +199 -194
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/util/mark.d.ts +1 -0
- package/cjs/util/mark.js +10 -1
- package/cjs/util/mark.js.map +1 -1
- package/cjs/util/object.d.ts +1 -0
- package/cjs/util/object.js +13 -2
- package/cjs/util/object.js.map +1 -1
- package/esm/animation/index.js +2 -1
- package/esm/animation/interface.js +1 -2
- package/esm/animation/utils.js +1 -1
- package/esm/animation/utils.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.js +3 -3
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +1 -0
- package/esm/chart/base/base-chart.js +5 -8
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/index.d.ts +2 -2
- package/esm/chart/index.js +2 -2
- package/esm/chart/index.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +1 -0
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/interface/common.d.ts +1 -1
- package/esm/chart/interface/common.js.map +1 -1
- package/esm/chart/util.js +2 -1
- package/esm/compile/compiler.d.ts +1 -0
- package/esm/compile/compiler.js +13 -6
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/interface/compilable-item.d.ts +1 -0
- package/esm/compile/interface/compilable-item.js.map +1 -1
- package/esm/compile/interface/compiler.d.ts +5 -0
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/component/axis/base-axis.js +8 -8
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +8 -0
- package/esm/component/axis/cartesian/band-axis.js +9 -1
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/mixin/band-axis-mixin.d.ts +2 -0
- package/esm/component/axis/mixin/band-axis-mixin.js +15 -1
- package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/esm/component/brush/brush.js +6 -6
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/brush/interface.d.ts +1 -0
- package/esm/component/brush/interface.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +1 -1
- package/esm/component/crosshair/base.js +1 -1
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/utils/cartesian.js +2 -2
- package/esm/component/crosshair/utils/cartesian.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.js +6 -9
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +0 -1
- package/esm/component/data-zoom/data-filter-base-component.js +13 -18
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/interface.d.ts +0 -3
- package/esm/component/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/util.d.ts +0 -1
- package/esm/component/data-zoom/util.js +2 -5
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/component/player/player.js +2 -1
- package/esm/component/player/player.js.map +1 -1
- package/esm/component/tooltip/tooltip.js +8 -3
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/constant/attribute.js +1 -2
- package/esm/constant/sunburst.js +2 -1
- package/esm/constant/waterfall.js +1 -2
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.d.ts +1 -0
- package/esm/core/interface.js.map +1 -1
- package/esm/core/util.js +1 -1
- package/esm/core/vchart.d.ts +2 -0
- package/esm/core/vchart.js +42 -22
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/obj-flat.js +1 -4
- package/esm/data/transforms/obj-flat.js.map +1 -1
- package/esm/mark/base/base-line.d.ts +1 -1
- package/esm/mark/base/base-line.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +6 -2
- package/esm/mark/base/base-mark.js +69 -50
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/group.d.ts +3 -2
- package/esm/mark/group.js +18 -12
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/common.d.ts +5 -2
- package/esm/mark/interface/common.js.map +1 -1
- package/esm/model/base-model.d.ts +5 -1
- package/esm/model/base-model.js +7 -0
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +5 -2
- package/esm/model/interface.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/style.js +5 -4
- package/esm/plugin/components/tooltip-handler/utils/style.js.map +1 -1
- package/esm/region/region.js.map +1 -1
- package/esm/series/base/base-series-transformer.js +1 -1
- package/esm/series/base/base-series-transformer.js.map +1 -1
- package/esm/series/base/base-series.js +2 -3
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/dot/dot.d.ts +0 -1
- package/esm/series/dot/dot.js +6 -29
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/dot/interface.d.ts +0 -1
- package/esm/series/dot/interface.js.map +1 -1
- package/esm/series/dot/tooltip-helper.js +2 -3
- package/esm/series/dot/tooltip-helper.js.map +1 -1
- package/esm/series/funnel/funnel.js +0 -2
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/interface/type.d.ts +0 -3
- package/esm/series/interface/type.js +3 -5
- package/esm/series/interface/type.js.map +1 -1
- package/esm/series/link/constant.js +0 -8
- package/esm/series/link/constant.js.map +1 -1
- package/esm/series/link/interface.d.ts +1 -10
- package/esm/series/link/interface.js +1 -5
- package/esm/series/link/interface.js.map +1 -1
- package/esm/series/link/link.d.ts +1 -3
- package/esm/series/link/link.js +16 -48
- package/esm/series/link/link.js.map +1 -1
- package/esm/series/map/map.js +1 -2
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/pie/pie.js +0 -1
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/sankey/sankey.d.ts +10 -10
- package/esm/series/sankey/sankey.js +192 -187
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/util/mark.d.ts +1 -0
- package/esm/util/mark.js +7 -0
- package/esm/util/mark.js.map +1 -1
- package/esm/util/object.d.ts +1 -0
- package/esm/util/object.js +11 -0
- package/esm/util/object.js.map +1 -1
- package/package.json +12 -12
- package/cjs/animation/animate-manager.d.ts +0 -1
- package/cjs/animation/animate-manager.js +0 -2
- package/cjs/animation/animate-manager.js.map +0 -1
- package/esm/animation/animate-manager.d.ts +0 -1
- package/esm/animation/animate-manager.js +0 -2
- package/esm/animation/animate-manager.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/base-axis.ts"],"names":[],"mappings":"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","file":"base-axis.js","sourcesContent":["// eslint-disable-next-line no-duplicate-imports\nimport type { ITickDataOpt, AxisItem } from '@visactor/vrender-components';\nimport type { IBandLikeScale, IBaseScale, IContinuousScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { IGraphic } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type {\n IOrientType,\n IPolarOrientType,\n Datum,\n StringOrNumber,\n IGroup as ISeriesGroup,\n CoordinateType,\n IRect,\n ILayoutRect\n} from '../../typings';\nimport { BaseComponent } from '../base/base-component';\nimport { CompilableData } from '../../compile/data';\nimport { AxisEnum, GridEnum, type IAxis, type ICommonAxisSpec, type ITick } from './interface';\nimport { ComponentTypeEnum, type IComponentOption } from '../interface';\nimport { eachSeries, getSeries } from '../../util/model';\n// eslint-disable-next-line no-duplicate-imports\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeries } from '../../series/interface';\nimport { ChartEvent } from '../../constant/event';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { animationConfig } from '../../animation/utils';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n degreeToRadian,\n pickWithout,\n isEqual,\n array,\n get,\n isArray,\n isFunction,\n isNil,\n isValid,\n maxInArray\n} from '@visactor/vutils';\nimport { DEFAULT_TITLE_STYLE, transformAxisLineStyle } from './util';\nimport { transformAxisLabelStateStyle, transformStateStyle, transformToGraphic } from '../../util/style';\nimport type { ITransformOptions } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport { AXIS_ELEMENT_NAME, GroupTransition } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { GroupFadeOut, GroupFadeIn } from '@visactor/vrender-animate';\nimport { scaleParser } from '../../data/parser/scale';\nimport { registerDataSetInstanceParser } from '../../data/register';\nimport { getFormatFunction } from '../util';\nimport type { IComponentMark } from '../../mark/interface/mark';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { ICompilableData } from './../../compile/data/interface';\n\nexport abstract class AxisComponent<T extends ICommonAxisSpec & Record<string, any> = any> // FIXME: 补充公共类型,去掉 Record<string, any>\n extends BaseComponent<T>\n implements IAxis\n{\n static specKey = 'axes';\n specKey = 'axes';\n\n protected _orient: IPolarOrientType | IOrientType;\n getOrient() {\n return this._orient;\n }\n\n protected _scale!: IBaseScale;\n getScale() {\n return this._scale;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected _tickData: CompilableData[] = [];\n getTickData(index = 0) {\n return this._tickData[index];\n }\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionIndex?: number[];\n\n /**\n * if axis will be shown\n */\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n /** 轴是否产生反转的真实值,在横向图表的竖轴上可能和用户在 spec 上配的值相反 */\n protected _inverse: boolean;\n getInverse() {\n return this._inverse;\n }\n\n protected _tick: ITick | undefined = undefined;\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n protected abstract axisHelper(): any;\n protected abstract getSeriesStatisticsField(s: ISeries): string[];\n protected abstract updateSeriesScale(): void;\n protected abstract collectSeriesField(depth: number, series: ISeries): string | string[];\n abstract transformScaleDomain(): void;\n protected abstract updateScaleRange(): boolean;\n protected abstract getDefaultInteractive(): boolean;\n\n protected _dataFieldText: string;\n protected _axisMark: IComponentMark;\n protected _gridMark: IComponentMark;\n\n protected _coordinateType: CoordinateType;\n getCoordinateType() {\n return this._coordinateType;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._visible = spec.visible ?? true;\n this._coordinateType = 'none';\n }\n\n getVRenderComponents() {\n return [this._axisMark?.getProduct(), this._gridMark?.getProduct()].filter(isValid);\n }\n\n created() {\n super.created();\n //series and regions\n this.setSeriesAndRegionsFromSpec();\n // event\n this.initEvent();\n // scales\n this.initScales();\n this.updateSeriesScale();\n // data\n this._shouldComputeTickData() && this._initData();\n\n if (this._visible) {\n // 创建语法元素\n const axisMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}` },\n {\n componentType: this.getOrient() === 'angle' ? AxisEnum.circleAxis : AxisEnum.lineAxis,\n mode: this._spec.mode\n },\n {\n skipTheme: true // skip theme of vgrammar to avoid merge\n }\n );\n this._updateTickDataMarks(axisMark);\n this._axisMark = axisMark as IComponentMark;\n axisMark.setMarkConfig({ zIndex: this.layoutZIndex });\n if (isValid(this._spec.id)) {\n axisMark.setUserId(this._spec.id);\n }\n axisMark.setMarkConfig({ interactive: this._spec.interactive ?? this.getDefaultInteractive() });\n this._marks.addMark(axisMark);\n\n if (this._spec.grid?.visible) {\n const gridMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}-grid` },\n {\n componentType: this.getOrient() === 'angle' ? GridEnum.circleAxisGrid : GridEnum.lineAxisGrid,\n mode: this._spec.mode\n },\n {\n skipTheme: true\n }\n );\n\n this._updateTickDataMarks(gridMark);\n gridMark.setMarkConfig({\n zIndex: this._spec.grid?.style?.zIndex ?? this._spec.grid?.zIndex ?? LayoutZIndex.Axis_Grid,\n interactive: false // 轴网格线关闭交互\n });\n this._marks.addMark(gridMark);\n this._gridMark = gridMark as IComponentMark;\n }\n\n // Tip: 支持 spec.animationAppear.axis,并且坐标轴默认关闭动画\n if (\n this._option.animation !== false &&\n get(this._option.getChart().getSpec(), 'animation') !== false &&\n this._spec.animation === true\n ) {\n const axisAnimateConfig = animationConfig(Factory.getAnimationInKey('axis')?.(), {\n appear:\n this._spec.animationAppear ??\n get(this._option.getChart().getSpec(), 'animationAppear.axis') ??\n get(this._option.getChart().getSpec(), 'animationAppear'),\n disappear:\n this._spec.animationDisappear ??\n get(this._option.getChart().getSpec(), 'animationDisappear.axis') ??\n get(this._option.getChart().getSpec(), 'animationDisappear'),\n enter:\n this._spec.animationEnter ??\n get(this._option.getChart().getSpec(), 'animationEnter.axis') ??\n get(this._option.getChart().getSpec(), 'animationEnter'),\n exit:\n this._spec.animationExit ??\n get(this._option.getChart().getSpec(), 'animationExit.axis') ??\n get(this._option.getChart().getSpec(), 'animationExit'),\n update:\n this._spec.animationUpdate ??\n get(this._option.getChart().getSpec(), 'animationUpdate.axis') ??\n get(this._option.getChart().getSpec(), 'animationUpdate')\n });\n // 因为坐标轴的更新动画中处理了 enter,所以需要将 enter 的参数传入\n if (axisAnimateConfig.enter) {\n axisAnimateConfig.update[0].customParameters = {\n enter: axisAnimateConfig.enter[0]\n };\n }\n this._marks.forEach(m => m.setAnimationConfig(axisAnimateConfig));\n }\n }\n }\n\n protected _shouldComputeTickData() {\n // 当轴被展示、或者强制要求计算 data 时再计算 data\n return this.getVisible() || this._spec.forceInitTick;\n }\n\n protected _onTickDataChange = (tickData?: ICompilableData) => {\n this._forceLayout();\n tickData?.updateData();\n };\n\n // data\n protected _initData() {\n const tickData = this._initTickDataSet(this._tickTransformOption());\n const tickDataCompile = new CompilableData(this._option, tickData);\n this._tickData = [tickDataCompile];\n tickData.target.addListener('change', () => {\n this._onTickDataChange(tickDataCompile);\n });\n }\n\n protected collectData(depth: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field = this.collectSeriesField(depth, s);\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\n if (field) {\n const viewData = s.getViewData();\n if (rawData) {\n field.forEach(f => {\n data.push(s.getRawDataStatisticsByField(f, false) as { min: number; max: number; values: any[] });\n });\n } else if (viewData && viewData.latestData && viewData.latestData.length) {\n const seriesData = s.getViewDataStatistics?.();\n const userSetBreaks =\n this.type === ComponentTypeEnum.cartesianLinearAxis && this._spec.breaks && this._spec.breaks.length;\n\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n if (userSetBreaks) {\n data.push({\n ...seriesData.latestData[f],\n values: viewData.latestData.map((obj: Datum) => obj[f])\n });\n } else {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected isSeriesDataEnable() {\n let enable = true;\n eachSeries(\n this._regions,\n s => {\n if (isArray(s.getViewDataStatistics()?.latestData)) {\n enable = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return enable;\n }\n\n protected setSeriesAndRegionsFromSpec() {\n const { seriesId, seriesIndex, regionId, regionIndex } = this._spec;\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId as string[], this._regionIndex);\n // _regions 被更新了,layoutBindRegionID 也要更新\n this.layout.layoutBindRegionID = this._regions.map(x => x.id);\n }\n\n getBindSeriesFilter() {\n return {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n };\n }\n\n protected initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n const viewStatistics = getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n })\n .map(s => s.getViewDataStatistics())\n .filter(v => !!v);\n\n if (viewStatistics.length > 1) {\n this._option.dataSet.multipleDataViewAddListener(viewStatistics, 'change', () => {\n this.updateScaleDomain();\n });\n } else if (viewStatistics.length === 1) {\n viewStatistics[0].target.addListener('change', () => {\n this.updateScaleDomain();\n });\n }\n\n eachSeries(\n this._regions,\n s => {\n s.event.on(ChartEvent.rawDataUpdate, { filter: ({ model }) => model?.id === s.id }, () => {\n // 只清除,不更新,在需要时,更新一次。避免多系列下多次更新\n this._clearRawDomain();\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected updateScaleDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n protected _clearRawDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n onLayoutEnd(): void {\n const changed = this.updateScaleRange();\n\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n\n super.onLayoutEnd();\n }\n\n protected computeData(updateType?: 'domain' | 'range' | 'force'): void {\n // 对应问题#3287: 轴隐藏(tickData为[])时, dataZoom/scrollBar无法触发视图更新\n // 解决方式: dataZoom/scrollBar更新时, 使用force, 此时即使没有tickData也要触发视图更新\n // ps:\n // 1. 其他逻辑没有使用force更新, 所以不会带来额外影响\n // 2. force更新时, 如果有tickData仍然走老逻辑, 这里只考虑force && 无tickData的情况\n if (updateType === 'force' && (!this._tickData || !this._tickData.length)) {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.reRunAllTransform();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n } else if (\n this._tickData &&\n this._tickData.length &&\n (updateType === 'force' || !isEqual(this._scale.range(), [0, 1]))\n ) {\n this._tickData.forEach(tickData => {\n tickData.getDataView().reRunAllTransform({\n skipEqual: true\n });\n });\n }\n }\n\n protected _updateTickDataMarks(m: ICompilableMark) {\n if (this._tickData) {\n this._tickData.forEach(d => {\n d.addRelatedMark(m);\n });\n }\n }\n\n protected initScales() {\n this._scales = [this._scale];\n const groups: ISeriesGroup[] = [];\n eachSeries(\n this._regions,\n s => {\n const g = s.getGroups();\n g && groups.push(g);\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n if (groups.length !== 0) {\n const depth = maxInArray(groups.map(g => g.fields.length));\n for (let i = 1; i < depth; i++) {\n const scale = this._scale.clone();\n this._scales.push(scale);\n }\n }\n // this.updateScaleDomain();\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (result.reMake) {\n return result;\n }\n\n result.reRender = true;\n /**\n * 存在轴同步相关配置的时候,暂时通过`reMake`触发更新\n */\n if (prevSpec?.type !== spec?.type || prevSpec?.visible !== spec?.visible) {\n result.reMake = true;\n return result;\n }\n\n result.reMake = ['grid', 'subGrid', 'tick', 'subTick', 'label', 'domainLine', 'title'].some(k => {\n return prevSpec?.[k]?.visible !== spec?.[k]?.visible;\n });\n\n return result;\n }\n\n protected _getAxisAttributes() {\n const spec = this._spec;\n const axisAttrs: any = {\n orient: this.getOrient(),\n select: this._option.disableTriggerEvent === true ? false : spec.select,\n hover: this._option.disableTriggerEvent === true ? false : spec.hover\n };\n\n // 属性均需要显示开启\n if (spec.domainLine && spec.domainLine.visible) {\n axisAttrs.line = transformAxisLineStyle(spec.domainLine);\n } else {\n axisAttrs.line = { visible: false };\n }\n\n if (spec.label && spec.label.visible) {\n const labelSpec = pickWithout(spec.label, ['style', 'formatMethod', 'state']);\n axisAttrs.label = labelSpec;\n if (spec.label.style) {\n axisAttrs.label.style = isFunction(spec.label.style)\n ? (datum: Datum, index: number, data: Datum[], layer?: number) => {\n const style = spec.label.style(datum.rawValue, index, datum, data, layer);\n return transformToGraphic(mergeSpec({}, this._theme.label?.style, style));\n }\n : transformToGraphic(spec.label.style);\n }\n if (spec.label.formatMethod || spec.label.formatter) {\n axisAttrs.label.formatMethod = this._getLabelFormatMethod();\n }\n if (spec.label.state) {\n axisAttrs.label.state = transformAxisLabelStateStyle(spec.label.state);\n }\n if (isFunction(spec.label.dataFilter)) {\n axisAttrs.label.dataFilter = (data: AxisItem[], layer: number) =>\n spec.label.dataFilter(data, layer, { vchart: this._option.globalInstance });\n }\n } else {\n axisAttrs.label = {\n visible: false\n };\n }\n\n if (spec.tick && spec.tick.visible) {\n axisAttrs.tick = {\n visible: spec.tick.visible,\n length: spec.tick.tickSize,\n inside: spec.tick.inside,\n alignWithLabel: spec.tick.alignWithLabel,\n dataFilter: isFunction(spec.tick.dataFilter)\n ? (data: AxisItem[]) => spec.tick.dataFilter(data, { vchart: this._option.globalInstance })\n : undefined\n };\n if (spec.tick.style) {\n axisAttrs.tick.style = isFunction(spec.tick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.tick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.tick?.style, style));\n }\n : transformToGraphic(spec.tick.style);\n }\n if (spec.tick.state) {\n axisAttrs.tick.state = transformStateStyle(spec.tick.state);\n }\n } else {\n axisAttrs.tick = {\n visible: false\n };\n }\n\n if (spec.subTick && spec.subTick.visible) {\n axisAttrs.subTick = {\n visible: spec.subTick.visible,\n length: spec.subTick.tickSize,\n inside: spec.subTick.inside,\n count: spec.subTick.tickCount\n };\n if (spec.subTick.style) {\n axisAttrs.subTick.style = isFunction(spec.subTick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.subTick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.subTick?.style, style));\n }\n : transformToGraphic(spec.subTick.style);\n }\n if (spec.subTick.state) {\n axisAttrs.subTick.state = transformStateStyle(spec.subTick.state);\n }\n } else {\n axisAttrs.subTick = {\n visible: false\n };\n }\n\n if (spec.title && spec.title.visible) {\n const {\n autoRotate,\n angle,\n style: titleStyle = {},\n background: titleBackgroundSpec,\n state: titleState,\n shape: titleShapeSpec,\n ...restTitleAttrs\n } = spec.title;\n let titleAngle = angle;\n let titleTextStyle;\n if (spec.orient === 'left' || spec.orient === 'right') {\n // 处理纵轴的标题样式\n if (autoRotate && isNil(titleAngle)) {\n titleAngle = spec.orient === 'left' ? -90 : 90;\n titleTextStyle = (DEFAULT_TITLE_STYLE as any)[spec.orient];\n }\n }\n\n axisAttrs.title = {\n ...restTitleAttrs,\n autoRotate: false, // 默认不对外提供该配置\n angle: titleAngle ? degreeToRadian(titleAngle) : null,\n textStyle: mergeSpec({}, titleTextStyle, transformToGraphic(titleStyle)),\n pickable: titleStyle.pickable !== false,\n childrenPickable: titleStyle.pickable !== false,\n state: {}\n };\n\n if (titleShapeSpec && titleShapeSpec.visible) {\n axisAttrs.title.shape = {\n ...titleShapeSpec,\n style: transformToGraphic(titleShapeSpec.style)\n };\n if (titleShapeSpec.state) {\n axisAttrs.title.state.shape = transformStateStyle(titleShapeSpec.state);\n }\n } else {\n axisAttrs.title.shape = { visible: false };\n }\n\n if (titleBackgroundSpec && titleBackgroundSpec.visible) {\n axisAttrs.title.background = {\n ...titleBackgroundSpec,\n style: transformToGraphic(titleBackgroundSpec.style)\n };\n if (titleBackgroundSpec.state) {\n axisAttrs.title.state.background = transformStateStyle(titleBackgroundSpec.state);\n }\n } else {\n axisAttrs.title.background = { visible: false };\n }\n\n if (titleState) {\n axisAttrs.title.state.text = transformStateStyle(titleState);\n }\n } else {\n axisAttrs.title = {\n visible: false\n };\n }\n\n if (spec.background && spec.background.visible) {\n axisAttrs.panel = {\n visible: true\n };\n if (spec.background.style) {\n axisAttrs.panel.style = transformToGraphic(spec.background.style);\n }\n if (spec.background.state) {\n axisAttrs.panel.state = transformStateStyle(spec.background.state);\n }\n } else {\n axisAttrs.panel = {\n visible: false\n };\n }\n\n return axisAttrs;\n }\n\n protected _getGridAttributes() {\n const spec = this._spec;\n return {\n alternateColor: spec.grid.alternateColor,\n alignWithLabel: spec.grid.alignWithLabel,\n style: isFunction(spec.grid.style)\n ? (datum: Datum, index: number) => {\n const style = spec.grid.style(datum.datum?.rawValue, index, datum.datum);\n return transformToGraphic(mergeSpec({}, this._theme.grid?.style, style));\n }\n : transformToGraphic(spec.grid.style),\n subGrid:\n spec.subGrid.visible === false\n ? { visible: false }\n : {\n type: 'line',\n visible: spec.subGrid.visible,\n alternateColor: spec.subGrid.alternateColor,\n style: transformToGraphic(spec.subGrid.style)\n }\n };\n }\n\n protected _getLabelFormatMethod() {\n const { formatMethod, formatter } = this._spec.label;\n const { formatFunc } = getFormatFunction(formatMethod, formatter);\n return formatFunc ? (value: any, datum: any, index: number) => formatFunc(datum.rawValue, datum, formatter) : null;\n }\n\n protected abstract registerTicksTransform(): string;\n\n protected _initTickDataSet<T extends ITickDataOpt>(options: T, index: number = 0) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n const name = this.registerTicksTransform();\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks_${index}` })\n .parse(this._scales[index], {\n type: 'scale'\n })\n .transform(\n {\n type: name,\n options\n },\n false\n );\n return tickData;\n }\n\n protected _tickTransformOption(): ITickDataOpt {\n const tick = this._tick || {};\n const label = this._spec.label || {};\n const { tickCount, forceTickCount, tickStep, tickMode } = tick;\n const { style: labelStyle, formatMethod: labelFormatter, minGap: labelGap } = label;\n return {\n sampling: this._spec.sampling !== false,\n tickCount,\n forceTickCount,\n tickStep,\n tickMode,\n axisOrientType: this._orient,\n coordinateType: this._coordinateType,\n\n labelStyle,\n labelFormatter,\n labelGap\n };\n }\n\n addTransformToTickData(options: ITransformOptions, execute?: boolean) {\n this._tickData.forEach(tickData => {\n tickData?.getDataView()?.transform(options, execute);\n });\n }\n\n dataToPosition(values: any[]): number {\n return this._scale.scale(values);\n }\n\n getDatum(childGraphic?: IGraphic) {\n if (childGraphic && childGraphic.name === AXIS_ELEMENT_NAME.label) {\n return childGraphic.data;\n }\n\n if (this._axisMark) {\n return (this._axisMark.getComponent() as any)?.attribute.items;\n }\n }\n\n scaleRangeFactor(_?: [number, number], slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactor(_, slience, clear);\n }\n\n scaleRangeFactorEnd(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorEnd(_, slience);\n }\n\n scaleRangeFactorStart(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorStart(_, slience);\n }\n}\n\nexport const registerAxis = () => {\n registerComponentMark();\n Factory.registerAnimation('axis', () => ({\n appear: {\n type: 'fadeIn'\n },\n enter: {\n type: 'fadeIn'\n },\n update: {\n type: 'update'\n },\n exit: {\n type: 'fadeOut'\n // custom: GroupFadeOut\n }\n }));\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/base-axis.ts"],"names":[],"mappings":"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","file":"base-axis.js","sourcesContent":["// eslint-disable-next-line no-duplicate-imports\nimport type { ITickDataOpt, AxisItem } from '@visactor/vrender-components';\nimport type { IBandLikeScale, IBaseScale, IContinuousScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { IGraphic } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type {\n IOrientType,\n IPolarOrientType,\n Datum,\n StringOrNumber,\n IGroup as ISeriesGroup,\n CoordinateType,\n IRect,\n ILayoutRect\n} from '../../typings';\nimport { BaseComponent } from '../base/base-component';\nimport { CompilableData } from '../../compile/data';\nimport { AxisEnum, GridEnum, type IAxis, type ICommonAxisSpec, type ITick } from './interface';\nimport { ComponentTypeEnum, type IComponentOption } from '../interface';\nimport { eachSeries, getSeries } from '../../util/model';\n// eslint-disable-next-line no-duplicate-imports\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeries } from '../../series/interface';\nimport { ChartEvent } from '../../constant/event';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { animationConfig } from '../../animation/utils';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n degreeToRadian,\n pickWithout,\n isEqual,\n array,\n get,\n isArray,\n isFunction,\n isNil,\n isValid,\n maxInArray\n} from '@visactor/vutils';\nimport { DEFAULT_TITLE_STYLE, transformAxisLineStyle } from './util';\nimport { transformAxisLabelStateStyle, transformStateStyle, transformToGraphic } from '../../util/style';\nimport type { ITransformOptions } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport { AXIS_ELEMENT_NAME, GroupTransition } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { GroupFadeOut, GroupFadeIn } from '@visactor/vrender-animate';\nimport { scaleParser } from '../../data/parser/scale';\nimport { registerDataSetInstanceParser } from '../../data/register';\nimport { getFormatFunction } from '../util';\nimport type { IComponentMark } from '../../mark/interface/mark';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { ICompilableData } from './../../compile/data/interface';\n\nexport abstract class AxisComponent<T extends ICommonAxisSpec & Record<string, any> = any> // FIXME: 补充公共类型,去掉 Record<string, any>\n extends BaseComponent<T>\n implements IAxis\n{\n static specKey = 'axes';\n specKey = 'axes';\n\n protected _orient: IPolarOrientType | IOrientType;\n getOrient() {\n return this._orient;\n }\n\n protected _scale!: IBaseScale;\n getScale() {\n return this._scale;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected _tickData: CompilableData[] = [];\n getTickData(index = 0) {\n return this._tickData[index];\n }\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionIndex?: number[];\n\n /**\n * if axis will be shown\n */\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n /** 轴是否产生反转的真实值,在横向图表的竖轴上可能和用户在 spec 上配的值相反 */\n protected _inverse: boolean;\n getInverse() {\n return this._inverse;\n }\n\n protected _tick: ITick | undefined = undefined;\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n protected abstract axisHelper(): any;\n protected abstract getSeriesStatisticsField(s: ISeries): string[];\n protected abstract updateSeriesScale(): void;\n protected abstract collectSeriesField(depth: number, series: ISeries): string | string[];\n abstract transformScaleDomain(): void;\n protected abstract updateScaleRange(): boolean;\n protected abstract getDefaultInteractive(): boolean;\n\n protected _dataFieldText: string;\n protected _axisMark: IComponentMark;\n\n protected _gridMark: IComponentMark;\n\n protected _coordinateType: CoordinateType;\n getCoordinateType() {\n return this._coordinateType;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._visible = spec.visible ?? true;\n this._coordinateType = 'none';\n }\n\n getVRenderComponents() {\n return [this._axisMark?.getProduct(), this._gridMark?.getProduct()].filter(isValid);\n }\n\n created() {\n super.created();\n //series and regions\n this.setSeriesAndRegionsFromSpec();\n // event\n this.initEvent();\n // scales\n this.initScales();\n this.updateSeriesScale();\n // data\n this._shouldComputeTickData() && this._initData();\n\n if (this._visible) {\n // 创建语法元素\n const axisMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}` },\n {\n componentType: this.getOrient() === 'angle' ? AxisEnum.circleAxis : AxisEnum.lineAxis,\n mode: this._spec.mode\n },\n {\n skipTheme: true // skip theme of vgrammar to avoid merge\n }\n );\n this._updateTickDataMarks(axisMark);\n this._axisMark = axisMark as IComponentMark;\n axisMark.setMarkConfig({ zIndex: this.layoutZIndex });\n if (isValid(this._spec.id)) {\n axisMark.setUserId(this._spec.id);\n }\n axisMark.setMarkConfig({ interactive: this._spec.interactive ?? this.getDefaultInteractive() });\n this._marks.addMark(axisMark);\n\n if (this._spec.grid?.visible) {\n const gridMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}-grid` },\n {\n componentType: this.getOrient() === 'angle' ? GridEnum.circleAxisGrid : GridEnum.lineAxisGrid,\n mode: this._spec.mode\n },\n {\n skipTheme: true\n }\n );\n\n this._updateTickDataMarks(gridMark);\n gridMark.setMarkConfig({\n zIndex: this._spec.grid?.style?.zIndex ?? this._spec.grid?.zIndex ?? LayoutZIndex.Axis_Grid,\n interactive: false // 轴网格线关闭交互\n });\n this._marks.addMark(gridMark);\n this._gridMark = gridMark as IComponentMark;\n }\n\n // Tip: 支持 spec.animationAppear.axis,并且坐标轴默认关闭动画\n if (\n this._option.globalInstance?.isAnimationEnable() &&\n get(this._option.getChart().getSpec(), 'animation') !== false &&\n this._spec.animation === true\n ) {\n const axisAnimateConfig = animationConfig(Factory.getAnimationInKey('axis')?.(), {\n appear:\n this._spec.animationAppear ??\n get(this._option.getChart().getSpec(), 'animationAppear.axis') ??\n get(this._option.getChart().getSpec(), 'animationAppear'),\n disappear:\n this._spec.animationDisappear ??\n get(this._option.getChart().getSpec(), 'animationDisappear.axis') ??\n get(this._option.getChart().getSpec(), 'animationDisappear'),\n enter:\n this._spec.animationEnter ??\n get(this._option.getChart().getSpec(), 'animationEnter.axis') ??\n get(this._option.getChart().getSpec(), 'animationEnter'),\n exit:\n this._spec.animationExit ??\n get(this._option.getChart().getSpec(), 'animationExit.axis') ??\n get(this._option.getChart().getSpec(), 'animationExit'),\n update:\n this._spec.animationUpdate ??\n get(this._option.getChart().getSpec(), 'animationUpdate.axis') ??\n get(this._option.getChart().getSpec(), 'animationUpdate')\n });\n // 因为坐标轴的更新动画中处理了 enter,所以需要将 enter 的参数传入\n if (axisAnimateConfig.enter) {\n axisAnimateConfig.update[0].customParameters = {\n enter: axisAnimateConfig.enter[0]\n };\n }\n this._marks.forEach(m => m.setAnimationConfig(axisAnimateConfig));\n }\n }\n }\n\n protected _shouldComputeTickData() {\n // 当轴被展示、或者强制要求计算 data 时再计算 data\n return this.getVisible() || this._spec.forceInitTick;\n }\n\n protected _onTickDataChange = (tickData?: ICompilableData) => {\n this._forceLayout();\n tickData?.updateData();\n };\n\n // data\n protected _initData() {\n const tickData = this._initTickDataSet(this._tickTransformOption());\n const tickDataCompile = new CompilableData(this._option, tickData);\n this._tickData = [tickDataCompile];\n tickData.target.addListener('change', () => {\n this._onTickDataChange(tickDataCompile);\n });\n }\n\n protected collectData(depth: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field = this.collectSeriesField(depth, s);\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\n if (field) {\n const viewData = s.getViewData();\n if (rawData) {\n field.forEach(f => {\n data.push(s.getRawDataStatisticsByField(f, false) as { min: number; max: number; values: any[] });\n });\n } else if (viewData && viewData.latestData && viewData.latestData.length) {\n const seriesData = s.getViewDataStatistics?.();\n const userSetBreaks =\n this.type === ComponentTypeEnum.cartesianLinearAxis && this._spec.breaks && this._spec.breaks.length;\n\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n if (userSetBreaks) {\n data.push({\n ...seriesData.latestData[f],\n values: viewData.latestData.map((obj: Datum) => obj[f])\n });\n } else {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected isSeriesDataEnable() {\n let enable = true;\n eachSeries(\n this._regions,\n s => {\n if (isArray(s.getViewDataStatistics()?.latestData)) {\n enable = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return enable;\n }\n\n protected setSeriesAndRegionsFromSpec() {\n const { seriesId, seriesIndex, regionId, regionIndex } = this._spec;\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId as string[], this._regionIndex);\n // _regions 被更新了,layoutBindRegionID 也要更新\n this.layout.layoutBindRegionID = this._regions.map(x => x.id);\n }\n\n getBindSeriesFilter() {\n return {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n };\n }\n\n protected initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n const viewStatistics = getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n })\n .map(s => s.getViewDataStatistics())\n .filter(v => !!v);\n\n if (viewStatistics.length > 1) {\n this._option.dataSet.multipleDataViewAddListener(viewStatistics, 'change', () => {\n this.updateScaleDomain();\n });\n } else if (viewStatistics.length === 1) {\n viewStatistics[0].target.addListener('change', () => {\n this.updateScaleDomain();\n });\n }\n\n eachSeries(\n this._regions,\n s => {\n s.event.on(ChartEvent.rawDataUpdate, { filter: ({ model }) => model?.id === s.id }, () => {\n // 只清除,不更新,在需要时,更新一次。避免多系列下多次更新\n this._clearRawDomain();\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected updateScaleDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n protected _clearRawDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n onLayoutEnd(): void {\n const changed = this.updateScaleRange();\n\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n\n super.onLayoutEnd();\n }\n\n protected computeData(updateType?: 'domain' | 'range' | 'force'): void {\n // 对应问题#3287: 轴隐藏(tickData为[])时, dataZoom/scrollBar无法触发视图更新\n // 解决方式: dataZoom/scrollBar更新时, 使用force, 此时即使没有tickData也要触发视图更新\n // ps:\n // 1. 其他逻辑没有使用force更新, 所以不会带来额外影响\n // 2. force更新时, 如果有tickData仍然走老逻辑, 这里只考虑force && 无tickData的情况\n if (updateType === 'force' && (!this._tickData || !this._tickData.length)) {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.reRunAllTransform();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n } else if (\n this._tickData &&\n this._tickData.length &&\n (updateType === 'force' || !isEqual(this._scale.range(), [0, 1]))\n ) {\n this._tickData.forEach(tickData => {\n tickData.getDataView().reRunAllTransform({\n skipEqual: true\n });\n });\n }\n }\n\n protected _updateTickDataMarks(m: ICompilableMark) {\n if (this._tickData) {\n this._tickData.forEach(d => {\n d.addRelatedMark(m);\n });\n }\n }\n\n protected initScales() {\n this._scales = [this._scale];\n const groups: ISeriesGroup[] = [];\n eachSeries(\n this._regions,\n s => {\n const g = s.getGroups();\n g && groups.push(g);\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n if (groups.length !== 0) {\n const depth = maxInArray(groups.map(g => g.fields.length));\n for (let i = 1; i < depth; i++) {\n const scale = this._scale.clone();\n this._scales.push(scale);\n }\n }\n // this.updateScaleDomain();\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (result.reMake) {\n return result;\n }\n\n result.reRender = true;\n /**\n * 存在轴同步相关配置的时候,暂时通过`reMake`触发更新\n */\n if (prevSpec?.type !== spec?.type || prevSpec?.visible !== spec?.visible) {\n result.reMake = true;\n return result;\n }\n\n result.reMake = ['grid', 'subGrid', 'tick', 'subTick', 'label', 'domainLine', 'title'].some(k => {\n return prevSpec?.[k]?.visible !== spec?.[k]?.visible;\n });\n\n return result;\n }\n\n protected _getAxisAttributes() {\n const spec = this._spec;\n const axisAttrs: any = {\n orient: this.getOrient(),\n select: this._option.disableTriggerEvent === true ? false : spec.select,\n hover: this._option.disableTriggerEvent === true ? false : spec.hover\n };\n\n // 属性均需要显示开启\n if (spec.domainLine && spec.domainLine.visible) {\n axisAttrs.line = transformAxisLineStyle(spec.domainLine);\n } else {\n axisAttrs.line = { visible: false };\n }\n\n if (spec.label && spec.label.visible) {\n const labelSpec = pickWithout(spec.label, ['style', 'formatMethod', 'state']);\n axisAttrs.label = labelSpec;\n if (spec.label.style) {\n axisAttrs.label.style = isFunction(spec.label.style)\n ? (datum: Datum, index: number, data: Datum[], layer?: number) => {\n const style = spec.label.style(datum.rawValue, index, datum, data, layer);\n return transformToGraphic(mergeSpec({}, this._theme.label?.style, style));\n }\n : transformToGraphic(spec.label.style);\n }\n if (spec.label.formatMethod || spec.label.formatter) {\n axisAttrs.label.formatMethod = this._getLabelFormatMethod();\n }\n if (spec.label.state) {\n axisAttrs.label.state = transformAxisLabelStateStyle(spec.label.state);\n }\n if (isFunction(spec.label.dataFilter)) {\n axisAttrs.label.dataFilter = (data: AxisItem[], layer: number) =>\n spec.label.dataFilter(data, layer, { vchart: this._option.globalInstance });\n }\n } else {\n axisAttrs.label = {\n visible: false\n };\n }\n\n if (spec.tick && spec.tick.visible) {\n axisAttrs.tick = {\n visible: spec.tick.visible,\n length: spec.tick.tickSize,\n inside: spec.tick.inside,\n alignWithLabel: spec.tick.alignWithLabel,\n dataFilter: isFunction(spec.tick.dataFilter)\n ? (data: AxisItem[]) => spec.tick.dataFilter(data, { vchart: this._option.globalInstance })\n : undefined\n };\n if (spec.tick.style) {\n axisAttrs.tick.style = isFunction(spec.tick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.tick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.tick?.style, style));\n }\n : transformToGraphic(spec.tick.style);\n }\n if (spec.tick.state) {\n axisAttrs.tick.state = transformStateStyle(spec.tick.state);\n }\n } else {\n axisAttrs.tick = {\n visible: false\n };\n }\n\n if (spec.subTick && spec.subTick.visible) {\n axisAttrs.subTick = {\n visible: spec.subTick.visible,\n length: spec.subTick.tickSize,\n inside: spec.subTick.inside,\n count: spec.subTick.tickCount\n };\n if (spec.subTick.style) {\n axisAttrs.subTick.style = isFunction(spec.subTick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.subTick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.subTick?.style, style));\n }\n : transformToGraphic(spec.subTick.style);\n }\n if (spec.subTick.state) {\n axisAttrs.subTick.state = transformStateStyle(spec.subTick.state);\n }\n } else {\n axisAttrs.subTick = {\n visible: false\n };\n }\n\n if (spec.title && spec.title.visible) {\n const {\n autoRotate,\n angle,\n style: titleStyle = {},\n background: titleBackgroundSpec,\n state: titleState,\n shape: titleShapeSpec,\n ...restTitleAttrs\n } = spec.title;\n let titleAngle = angle;\n let titleTextStyle;\n if (spec.orient === 'left' || spec.orient === 'right') {\n // 处理纵轴的标题样式\n if (autoRotate && isNil(titleAngle)) {\n titleAngle = spec.orient === 'left' ? -90 : 90;\n titleTextStyle = (DEFAULT_TITLE_STYLE as any)[spec.orient];\n }\n }\n\n axisAttrs.title = {\n ...restTitleAttrs,\n autoRotate: false, // 默认不对外提供该配置\n angle: titleAngle ? degreeToRadian(titleAngle) : null,\n textStyle: mergeSpec({}, titleTextStyle, transformToGraphic(titleStyle)),\n pickable: titleStyle.pickable !== false,\n childrenPickable: titleStyle.pickable !== false,\n state: {}\n };\n\n if (titleShapeSpec && titleShapeSpec.visible) {\n axisAttrs.title.shape = {\n ...titleShapeSpec,\n style: transformToGraphic(titleShapeSpec.style)\n };\n if (titleShapeSpec.state) {\n axisAttrs.title.state.shape = transformStateStyle(titleShapeSpec.state);\n }\n } else {\n axisAttrs.title.shape = { visible: false };\n }\n\n if (titleBackgroundSpec && titleBackgroundSpec.visible) {\n axisAttrs.title.background = {\n ...titleBackgroundSpec,\n style: transformToGraphic(titleBackgroundSpec.style)\n };\n if (titleBackgroundSpec.state) {\n axisAttrs.title.state.background = transformStateStyle(titleBackgroundSpec.state);\n }\n } else {\n axisAttrs.title.background = { visible: false };\n }\n\n if (titleState) {\n axisAttrs.title.state.text = transformStateStyle(titleState);\n }\n } else {\n axisAttrs.title = {\n visible: false\n };\n }\n\n if (spec.background && spec.background.visible) {\n axisAttrs.panel = {\n visible: true\n };\n if (spec.background.style) {\n axisAttrs.panel.style = transformToGraphic(spec.background.style);\n }\n if (spec.background.state) {\n axisAttrs.panel.state = transformStateStyle(spec.background.state);\n }\n } else {\n axisAttrs.panel = {\n visible: false\n };\n }\n\n return axisAttrs;\n }\n\n protected _getGridAttributes() {\n const spec = this._spec;\n return {\n alternateColor: spec.grid.alternateColor,\n alignWithLabel: spec.grid.alignWithLabel,\n style: isFunction(spec.grid.style)\n ? (datum: Datum, index: number) => {\n const style = spec.grid.style(datum.datum?.rawValue, index, datum.datum);\n return transformToGraphic(mergeSpec({}, this._theme.grid?.style, style));\n }\n : transformToGraphic(spec.grid.style),\n subGrid:\n spec.subGrid.visible === false\n ? { visible: false }\n : {\n type: 'line',\n visible: spec.subGrid.visible,\n alternateColor: spec.subGrid.alternateColor,\n style: transformToGraphic(spec.subGrid.style)\n }\n };\n }\n\n protected _getLabelFormatMethod() {\n const { formatMethod, formatter } = this._spec.label;\n const { formatFunc } = getFormatFunction(formatMethod, formatter);\n return formatFunc ? (value: any, datum: any, index: number) => formatFunc(datum.rawValue, datum, formatter) : null;\n }\n\n protected abstract registerTicksTransform(): string;\n\n protected _initTickDataSet<T extends ITickDataOpt>(options: T, index: number = 0) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n const name = this.registerTicksTransform();\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks_${index}` })\n .parse(this._scales[index], {\n type: 'scale'\n })\n .transform(\n {\n type: name,\n options\n },\n false\n );\n return tickData;\n }\n\n protected _tickTransformOption(): ITickDataOpt {\n const tick = this._tick || {};\n const label = this._spec.label || {};\n const { tickCount, forceTickCount, tickStep, tickMode } = tick;\n const { style: labelStyle, formatMethod: labelFormatter, minGap: labelGap } = label;\n return {\n sampling: this._spec.sampling !== false,\n tickCount,\n forceTickCount,\n tickStep,\n tickMode,\n axisOrientType: this._orient,\n coordinateType: this._coordinateType,\n\n labelStyle,\n labelFormatter,\n labelGap\n };\n }\n\n addTransformToTickData(options: ITransformOptions, execute?: boolean) {\n this._tickData.forEach(tickData => {\n tickData?.getDataView()?.transform(options, execute);\n });\n }\n\n dataToPosition(values: any[]): number {\n return this._scale.scale(values);\n }\n\n getDatum(childGraphic?: IGraphic) {\n if (childGraphic && childGraphic.name === AXIS_ELEMENT_NAME.label) {\n return childGraphic.data;\n }\n\n if (this._axisMark) {\n return (this._axisMark.getComponent() as any)?.attribute.items;\n }\n }\n\n scaleRangeFactor(_?: [number, number], slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactor(_, slience, clear);\n }\n\n scaleRangeFactorEnd(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorEnd(_, slience);\n }\n\n scaleRangeFactorStart(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorStart(_, slience);\n }\n}\n\nexport const registerAxis = () => {\n registerComponentMark();\n Factory.registerAnimation('axis', () => ({\n appear: {\n type: 'fadeIn'\n },\n enter: {\n type: 'fadeIn'\n },\n update: {\n type: 'update'\n },\n exit: {\n type: 'fadeOut'\n // custom: GroupFadeOut\n }\n }));\n};\n"]}
|
|
@@ -43,5 +43,13 @@ export declare class CartesianBandAxis<T extends ICartesianBandAxisSpec = ICarte
|
|
|
43
43
|
maxBandSize: number;
|
|
44
44
|
minBandSize: number;
|
|
45
45
|
};
|
|
46
|
+
_compareSpec(spec: T, prevSpec: T): {
|
|
47
|
+
change: boolean;
|
|
48
|
+
reMake: boolean;
|
|
49
|
+
reRender: boolean;
|
|
50
|
+
reSize: boolean;
|
|
51
|
+
reCompile: boolean;
|
|
52
|
+
};
|
|
53
|
+
reInit(spec?: T): void;
|
|
46
54
|
}
|
|
47
55
|
export declare const registerCartesianBandAxis: () => void;
|
|
@@ -73,6 +73,15 @@ class CartesianBandAxis extends axis_1.CartesianAxis {
|
|
|
73
73
|
minBandSize: minBandSize
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
|
+
_compareSpec(spec, prevSpec) {
|
|
77
|
+
const result = super._compareSpec(spec, prevSpec);
|
|
78
|
+
return result.reMake || (null == prevSpec ? void 0 : prevSpec.showAllGroupLayers) === (null == spec ? void 0 : spec.showAllGroupLayers) && (0,
|
|
79
|
+
vutils_1.isEqual)(null == prevSpec ? void 0 : prevSpec.layers, null == spec ? void 0 : spec.layers) || (result.reMake = !0),
|
|
80
|
+
result;
|
|
81
|
+
}
|
|
82
|
+
reInit(spec) {
|
|
83
|
+
super.reInit(), null == this || this._updateData();
|
|
84
|
+
}
|
|
76
85
|
}
|
|
77
86
|
|
|
78
87
|
exports.CartesianBandAxis = CartesianBandAxis, CartesianBandAxis.type = interface_1.ComponentTypeEnum.cartesianBandAxis,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/cartesian/band-axis.ts"],"names":[],"mappings":"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","file":"band-axis.js","sourcesContent":["import { BandScale, scaleWholeRangeSize } from '@visactor/vscale';\nimport { CartesianAxis } from './axis';\nimport type { ICartesianBandAxisSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface';\nimport { isNil, isString, isValid, mixin } from '@visactor/vutils';\nimport { BandAxisMixin } from '../mixin/band-axis-mixin';\nimport type { StringOrNumber } from '../../../typings';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\nimport { linearDiscreteTicks, LineAxisGrid } from '@visactor/vrender-components';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { VRenderComponentOptions } from '../../../core/interface';\nimport { LineAxis } from '@visactor/vrender-components';\nimport type { IGroup } from '@visactor/vrender-core';\nimport { AxisEnum, GridEnum } from '../interface';\nimport { axisBand } from '../../../theme/builtin/common/component/axis/band-axis';\nimport { commonAxis } from '../../../theme/builtin/common/component/axis/common-axis';\nimport { axisX, axisY } from '../../../theme/builtin/common/component/axis/cartesian-axis';\n\nexport interface CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec>\n extends Pick<\n BandAxisMixin,\n 'valueToPosition' | 'updateGroupScaleRange' | 'getPosition' | 'calcScales' | 'computeBandDomain'\n >,\n CartesianAxis<T> {}\n\nexport class CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec> extends CartesianAxis<T> {\n static type = ComponentTypeEnum.cartesianBandAxis;\n type = ComponentTypeEnum.cartesianBandAxis;\n\n static specKey = 'axes';\n static readonly builtInTheme = {\n axis: commonAxis,\n axisBand,\n axisX,\n axisY\n };\n\n protected _scale: BandScale = new BandScale();\n\n protected declare _scales: BandScale[];\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n return this.computeBandDomain(data);\n }\n\n protected updateScaleRange() {\n const isChanged = super.updateScaleRange();\n this.updateGroupScaleRange();\n\n return isChanged;\n }\n\n protected initScales() {\n super.initScales();\n this.calcScales(this._defaultBandInnerPadding, this._defaultBandOuterPadding);\n }\n\n protected axisHelper() {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n const getBandwidth = (depth: number = 0) => {\n return getScale(depth).bandwidth();\n };\n\n return {\n isContinuous: false,\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getBandwidth,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._inverse,\n getSpec: () => this._spec\n };\n }\n\n protected registerTicksTransform() {\n const name = `${this.type}-ticks`;\n registerDataSetInstanceTransform(this._option.dataSet, name, linearDiscreteTicks);\n\n return name;\n }\n transformScaleDomain() {\n this.updateFixedWholeLength();\n }\n\n updateFixedWholeLength() {\n if (this._scale) {\n const { bandSize, maxBandSize, minBandSize } = this._getOuterBandSizeFromSpec();\n if (bandSize) {\n this._scale.bandwidth(bandSize);\n }\n if (maxBandSize) {\n this._scale.maxBandwidth(maxBandSize);\n }\n if (minBandSize) {\n this._scale.minBandwidth(minBandSize);\n }\n // 更改 region 最大大小\n if (this._scale.isBandwidthFixed() && this._spec.autoRegionSize && (bandSize || maxBandSize)) {\n const rangeSize = scaleWholeRangeSize(\n this._scale.domain().length,\n bandSize ?? maxBandSize,\n this._scale.paddingInner(),\n this._scale.paddingOuter()\n );\n if (['bottom', 'top'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxWidth(rangeSize));\n } else if (['left', 'right'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxHeight(rangeSize));\n }\n }\n }\n }\n\n /** 获取最外层 scale 的实际 bandSize 配置 */\n protected _getOuterBandSizeFromSpec() {\n let { bandSize, maxBandSize, minBandSize, bandSizeLevel = 0 } = this._spec;\n const { gap, extend = 0 } = this._spec.bandSizeExtend ?? {};\n bandSizeLevel = Math.min(bandSizeLevel, this._scales.length - 1);\n\n // 由内而外计算最外层 scale 的 bandSize\n for (let i = bandSizeLevel; i > 0; i--) {\n const scale = this._scales[i];\n const domain = scale.domain();\n const paddingInner = scale.paddingInner();\n const paddingOuter = scale.paddingOuter();\n\n const getOuterBandSize = (b: number) => {\n const extendValue = i === bandSizeLevel ? extend : 0;\n if (isNil(gap) || i < bandSizeLevel) {\n return scaleWholeRangeSize(domain.length, b, paddingInner, paddingOuter) + extendValue;\n }\n const gapValue = isString(gap) ? b * (Number(gap.substring(0, gap.length - 1)) / 100) : gap;\n // 这里使组间距恰好等于柱间距\n return ((b + gapValue) * domain.length) / (this._scales[i - 1].paddingInner() + 1) + extendValue;\n };\n\n if (isValid(bandSize)) {\n bandSize = getOuterBandSize(bandSize);\n }\n if (isValid(maxBandSize)) {\n maxBandSize = getOuterBandSize(maxBandSize);\n }\n if (isValid(minBandSize)) {\n minBandSize = getOuterBandSize(minBandSize);\n }\n }\n\n return {\n bandSize,\n maxBandSize,\n minBandSize\n };\n }\n}\n\nmixin(CartesianBandAxis, BandAxisMixin);\n\nexport const registerCartesianBandAxis = () => {\n Factory.registerGraphicComponent(AxisEnum.lineAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.lineAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxisGrid(attrs, options) as unknown as IGroup;\n });\n registerAxis();\n Factory.registerComponent(CartesianBandAxis.type, CartesianBandAxis, false);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/cartesian/band-axis.ts"],"names":[],"mappings":"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","file":"band-axis.js","sourcesContent":["import { BandScale, scaleWholeRangeSize } from '@visactor/vscale';\nimport { CartesianAxis } from './axis';\nimport type { ICartesianBandAxisSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface';\nimport { isEqual, isNil, isString, isValid, mixin } from '@visactor/vutils';\nimport { BandAxisMixin } from '../mixin/band-axis-mixin';\nimport type { StringOrNumber } from '../../../typings';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\nimport { linearDiscreteTicks, LineAxisGrid } from '@visactor/vrender-components';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { VRenderComponentOptions } from '../../../core/interface';\nimport { LineAxis } from '@visactor/vrender-components';\nimport type { IGroup } from '@visactor/vrender-core';\nimport { AxisEnum, GridEnum } from '../interface';\nimport { axisBand } from '../../../theme/builtin/common/component/axis/band-axis';\nimport { commonAxis } from '../../../theme/builtin/common/component/axis/common-axis';\nimport { axisX, axisY } from '../../../theme/builtin/common/component/axis/cartesian-axis';\n\nexport interface CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec>\n extends Pick<\n BandAxisMixin,\n 'valueToPosition' | 'updateGroupScaleRange' | 'getPosition' | 'calcScales' | 'computeBandDomain'\n >,\n CartesianAxis<T> {}\n\nexport class CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec> extends CartesianAxis<T> {\n static type = ComponentTypeEnum.cartesianBandAxis;\n type = ComponentTypeEnum.cartesianBandAxis;\n\n static specKey = 'axes';\n static readonly builtInTheme = {\n axis: commonAxis,\n axisBand,\n axisX,\n axisY\n };\n\n protected _scale: BandScale = new BandScale();\n\n protected declare _scales: BandScale[];\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n return this.computeBandDomain(data);\n }\n\n protected updateScaleRange() {\n const isChanged = super.updateScaleRange();\n this.updateGroupScaleRange();\n\n return isChanged;\n }\n\n protected initScales() {\n super.initScales();\n this.calcScales(this._defaultBandInnerPadding, this._defaultBandOuterPadding);\n }\n\n protected axisHelper() {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n const getBandwidth = (depth: number = 0) => {\n return getScale(depth).bandwidth();\n };\n\n return {\n isContinuous: false,\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getBandwidth,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._inverse,\n getSpec: () => this._spec\n };\n }\n\n protected registerTicksTransform() {\n const name = `${this.type}-ticks`;\n registerDataSetInstanceTransform(this._option.dataSet, name, linearDiscreteTicks);\n\n return name;\n }\n transformScaleDomain() {\n this.updateFixedWholeLength();\n }\n\n updateFixedWholeLength() {\n if (this._scale) {\n const { bandSize, maxBandSize, minBandSize } = this._getOuterBandSizeFromSpec();\n if (bandSize) {\n this._scale.bandwidth(bandSize);\n }\n if (maxBandSize) {\n this._scale.maxBandwidth(maxBandSize);\n }\n if (minBandSize) {\n this._scale.minBandwidth(minBandSize);\n }\n // 更改 region 最大大小\n if (this._scale.isBandwidthFixed() && this._spec.autoRegionSize && (bandSize || maxBandSize)) {\n const rangeSize = scaleWholeRangeSize(\n this._scale.domain().length,\n bandSize ?? maxBandSize,\n this._scale.paddingInner(),\n this._scale.paddingOuter()\n );\n if (['bottom', 'top'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxWidth(rangeSize));\n } else if (['left', 'right'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxHeight(rangeSize));\n }\n }\n }\n }\n\n /** 获取最外层 scale 的实际 bandSize 配置 */\n protected _getOuterBandSizeFromSpec() {\n let { bandSize, maxBandSize, minBandSize, bandSizeLevel = 0 } = this._spec;\n const { gap, extend = 0 } = this._spec.bandSizeExtend ?? {};\n bandSizeLevel = Math.min(bandSizeLevel, this._scales.length - 1);\n\n // 由内而外计算最外层 scale 的 bandSize\n for (let i = bandSizeLevel; i > 0; i--) {\n const scale = this._scales[i];\n const domain = scale.domain();\n const paddingInner = scale.paddingInner();\n const paddingOuter = scale.paddingOuter();\n\n const getOuterBandSize = (b: number) => {\n const extendValue = i === bandSizeLevel ? extend : 0;\n if (isNil(gap) || i < bandSizeLevel) {\n return scaleWholeRangeSize(domain.length, b, paddingInner, paddingOuter) + extendValue;\n }\n const gapValue = isString(gap) ? b * (Number(gap.substring(0, gap.length - 1)) / 100) : gap;\n // 这里使组间距恰好等于柱间距\n return ((b + gapValue) * domain.length) / (this._scales[i - 1].paddingInner() + 1) + extendValue;\n };\n\n if (isValid(bandSize)) {\n bandSize = getOuterBandSize(bandSize);\n }\n if (isValid(maxBandSize)) {\n maxBandSize = getOuterBandSize(maxBandSize);\n }\n if (isValid(minBandSize)) {\n minBandSize = getOuterBandSize(minBandSize);\n }\n }\n\n return {\n bandSize,\n maxBandSize,\n minBandSize\n };\n }\n\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (result.reMake) {\n return result;\n }\n\n if (prevSpec?.showAllGroupLayers !== spec?.showAllGroupLayers || !isEqual(prevSpec?.layers, spec?.layers)) {\n result.reMake = true;\n }\n\n return result;\n }\n\n reInit(spec?: T): void {\n super.reInit();\n\n (this as any)?._updateData();\n }\n}\n\nmixin(CartesianBandAxis, BandAxisMixin);\n\nexport const registerCartesianBandAxis = () => {\n Factory.registerGraphicComponent(AxisEnum.lineAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.lineAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxisGrid(attrs, options) as unknown as IGroup;\n });\n registerAxis();\n Factory.registerComponent(CartesianBandAxis.type, CartesianBandAxis, false);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/interface/common.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/interface/common.ts"],"names":[],"mappings":";;;AAsHA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,qCAAyB,CAAA;AAC3B,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yCAA6B,CAAA;IAC7B,6CAAiC,CAAA;AACnC,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB","file":"common.js","sourcesContent":["import type { IContinuousScale, IBaseScale, CustomTicksFunc } from '@visactor/vscale';\nimport type { CoordinateType, Datum, IPolarOrientType, StringOrNumber } from '../../../typings';\nimport type { IComponent } from '../../interface/common';\nimport type { ICartesianAxisSpec } from '../cartesian/interface';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\nimport type { IComponentMark } from '../../../mark/interface';\n\nexport interface StatisticsDomain {\n domain: any[];\n index: { [key in StringOrNumber]: number };\n}\n\nexport interface IAxis extends IComponent {\n valueToPosition: (value: any) => number;\n getScale: () => IBaseScale;\n getScales: () => IBaseScale[];\n getOrient: () => ICartesianAxisSpec['orient'] | IPolarOrientType;\n getInverse: () => boolean;\n getCoordinateType: () => CoordinateType;\n visible: boolean;\n // 标记轴的方向,左到右,右到左,上到下,下到上\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n}\n\nexport interface IAxisItem<T> {\n /**\n * 是否显示\n */\n visible?: boolean;\n /**\n * 样式配置\n */\n style?: Omit<T, 'visible'>;\n}\n\nexport interface IAxisItemTheme<T> {\n /**\n * 是否显示\n */\n visible?: boolean;\n /**\n * 主题样式配置\n */\n style?: Omit<T, 'visible'>;\n}\nexport type AxisAnimationPreset = 'groupFadeIn' | 'fadeIn' | 'grow';\n\nexport type ITickCallbackOption = {\n axisLength?: number;\n labelStyle?: ITextGraphicAttribute;\n};\n\nexport type StyleCallback<T> = (value: any, index: number, datum: Datum, data: Datum[]) => T;\nexport type AxisType = 'linear' | 'ordinal' | 'band' | 'point' | 'time' | 'log' | 'symlog';\n\nexport interface IAxisLocationCfg {\n bandPosition?: number;\n datum?: Datum;\n}\n\nexport interface ITickCalculationCfg {\n /** tick步长 */\n tickStep?: number;\n /**\n * 期望的连续轴tick数量\n * The desired number of ticks draw on linear axis.\n * @default 5\n * @description 建议的tick数量,并不保证结果一定是配置值\n * @since 1.4.0 后支持函数回调。\n */\n tickCount?: number | ((option: ITickCallbackOption) => number);\n /**\n * 强制设置tick数量\n * The exact number of ticks draw on linear axis. Might lead to decimal step.\n * @default 5\n * @description 强制设置的tick数量,可能由于数据范围导致tick值为小数\n */\n forceTickCount?: number;\n /**\n * 连续轴 tick 生成算法:\n * 'average': 尽可能均分;\n * 'd3':与 d3 默认逻辑一致,以 [1, 2, 5] 为基数生成;\n * CustomTicksFunc: 自定义tick生成算法\n * @default 'average'\n * @since 1.3.0\n *\n * @typedef {function} CustomTicksFunc\n * @param {IContinuousScale} scale - 连续轴的比例尺对象\n * @param {number} tickCount - 生成tick的数量\n * @returns {number[]} - 生成的 tick 数组\n * @since 1.12.0\n *\n * @example\n * // 自定义 tick 生成函数示例\n * const customTickFunc: CustomTicksFunc = (scale, tickCount=5) => {\n * const domain = scale.domain();\n * const step = (domain[domain.length - 1] - domain[0]) / (tickCount - 1);\n * return Array.from({ length: tickCount }, (_, i) => domain[0] + i * step);\n * };\n */\n tickMode?: 'average' | 'd3' | CustomTicksFunc<IContinuousScale>;\n /**\n * 连续轴,是否避免小数 tick。\n * @default false\n * @description 当配置了 tickStep 或 forceTickCount 时不生效。\n * @since 1.3.0\n */\n noDecimals?: boolean;\n}\n\nexport interface IBandAxisLayer extends Omit<ITickCalculationCfg, 'noDecimals' | 'tickMode'> {\n /**\n * 是否显示\n * @default true\n */\n visible?: boolean;\n}\n\nexport enum AxisEnum {\n lineAxis = 'lineAxis',\n circleAxis = 'circleAxis'\n}\n\nexport enum GridEnum {\n lineAxisGrid = 'lineAxisGrid',\n circleAxisGrid = 'circleAxisGrid'\n}\n"]}
|
|
@@ -33,10 +33,12 @@ export interface BandAxisMixin {
|
|
|
33
33
|
_forceLayout: () => void;
|
|
34
34
|
_getNormalizedValue: (values: any[], length: number) => number;
|
|
35
35
|
_onTickDataChange: (compilableData: CompilableData) => void;
|
|
36
|
+
registerTicksTransform: () => string;
|
|
36
37
|
}
|
|
37
38
|
export declare class BandAxisMixin {
|
|
38
39
|
private _tickDataMap;
|
|
39
40
|
protected _initData(): void;
|
|
41
|
+
protected _updateData(): void;
|
|
40
42
|
protected _rawDomainIndex: {
|
|
41
43
|
[key: string | number | symbol]: number;
|
|
42
44
|
}[];
|
|
@@ -29,6 +29,20 @@ class BandAxisMixin {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
+
_updateData() {
|
|
33
|
+
var _a, _b, _c;
|
|
34
|
+
const tickTransformType = this.registerTicksTransform();
|
|
35
|
+
if (this._spec.showAllGroupLayers && this._scales.length > 1) {
|
|
36
|
+
const layers = null !== (_a = this._spec.layers) && void 0 !== _a ? _a : [];
|
|
37
|
+
Object.keys(this._tickDataMap).forEach((layer => {
|
|
38
|
+
const layerConfig = layers[this._scales.length - 1 - +layer] || {}, tickData = this._tickDataMap[layer], tickTransform = null == tickData ? void 0 : tickData.getDataView().transformsArr.find((t => t.type === tickTransformType));
|
|
39
|
+
tickTransform && (tickTransform.options = Object.assign(Object.assign({}, this._tickTransformOption()), layerConfig));
|
|
40
|
+
}));
|
|
41
|
+
} else {
|
|
42
|
+
const tickTransform = null === (_c = null === (_b = this._tickData) || void 0 === _b ? void 0 : _b[0]) || void 0 === _c ? void 0 : _c.getDataView().transformsArr.find((t => t.type === tickTransformType));
|
|
43
|
+
tickTransform && (tickTransform.options = this._tickTransformOption());
|
|
44
|
+
}
|
|
45
|
+
}
|
|
32
46
|
dataToPosition(values, cfg = {}) {
|
|
33
47
|
var _a, _b;
|
|
34
48
|
if (0 === values.length || 0 === this._scales.length) return 0;
|
|
@@ -92,7 +106,7 @@ class BandAxisMixin {
|
|
|
92
106
|
getLabelItems(length) {
|
|
93
107
|
const labelItems = [];
|
|
94
108
|
let preData = [];
|
|
95
|
-
return this._scales.forEach(((scale, index) => {
|
|
109
|
+
return (this._spec.showAllGroupLayers ? this._scales : [ this._scales[0] ]).forEach(((scale, index) => {
|
|
96
110
|
var _a;
|
|
97
111
|
const tickData = this._tickDataMap[index], isTickDataHaveData = null === (_a = null == tickData ? void 0 : tickData.getLatestData()) || void 0 === _a ? void 0 : _a.length, ticks = isTickDataHaveData ? tickData.getLatestData().map((obj => obj.value)) : scale.domain();
|
|
98
112
|
if (ticks && ticks.length) if (preData && preData.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/mixin/band-axis-mixin.ts"],"names":[],"mappings":"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","file":"band-axis-mixin.js","sourcesContent":["import type { BandScale } from '@visactor/vscale';\nimport type { Dict } from '@visactor/vutils';\nimport { array, isArray } from '@visactor/vutils';\nimport type { Datum, IOrientType, IPolarOrientType, StringOrNumber } from '../../../typings';\nimport type { IEvent } from '../../../event/interface';\nimport { ChartEvent } from '../../../constant/event';\nimport type { IModel } from '../../../model/interface';\nimport type { IAxisLocationCfg } from '../interface';\nimport { CompilableData } from '../../../compile/data/compilable-data';\nimport type { AxisItem } from '@visactor/vrender-components';\nimport { getAxisItem } from '../util';\n\nexport interface BandAxisMixin {\n _orient: IOrientType | IPolarOrientType;\n _option: any;\n _scale: BandScale;\n _scales: BandScale[];\n _spec: any;\n _tick: any;\n _tickData: CompilableData[];\n _defaultBandPosition: number;\n _defaultBandInnerPadding: number;\n _defaultBandOuterPadding: number;\n event: IEvent;\n isSeriesDataEnable: () => boolean;\n collectData: (depth: number, rawData?: boolean) => { min: number; max: number; values: any[] }[];\n computeDomain: (data: { min: number; max: number; values: any[] }[]) => StringOrNumber[];\n transformScaleDomain: () => void;\n _initTickDataSet: (options: any, index?: number) => any;\n _tickTransformOption: () => any;\n _forceLayout: () => void;\n _getNormalizedValue: (values: any[], length: number) => number;\n _onTickDataChange: (compilableData: CompilableData) => void;\n}\n\nexport class BandAxisMixin {\n private _tickDataMap: Dict<any>;\n protected _initData() {\n if (this._spec.showAllGroupLayers && this._scales.length > 1) {\n // 显示所有分组层级\n for (let layer = 0; layer < this._scales.length; layer++) {\n const layers = this._spec.layers ?? [];\n const layerConfig = layers[this._scales.length - 1 - layer] || {};\n if (layerConfig.visible !== false && layerConfig.tickCount !== 0 && layerConfig.forceTickCount !== 0) {\n const tickData = this._initTickDataSet(\n {\n ...this._tickTransformOption(),\n ...layerConfig\n },\n layer\n );\n const compilableData = new CompilableData(this._option, tickData);\n this._tickData.push(compilableData);\n tickData.target.addListener('change', () => {\n this._onTickDataChange(compilableData);\n });\n\n if (!this._tickDataMap) {\n this._tickDataMap = {};\n }\n this._tickDataMap[layer] = compilableData;\n }\n }\n } else {\n const tickData = this._initTickDataSet(this._tickTransformOption());\n const compilableData = new CompilableData(this._option, tickData);\n tickData.target.addListener('change', () => {\n this._onTickDataChange(compilableData);\n });\n this._tickData = [compilableData];\n this._tickDataMap = {\n 0: compilableData\n };\n }\n }\n protected _rawDomainIndex: { [key: string | number | symbol]: number }[] = [];\n\n dataToPosition(values: any[], cfg: IAxisLocationCfg = {}): number {\n if (values.length === 0 || this._scales.length === 0) {\n return 0;\n }\n const { position, bandScale } = this.getPosition(values);\n return (\n position + bandScale.bandwidth() * (cfg.bandPosition ?? this._spec.bandPosition ?? this._defaultBandPosition)\n );\n }\n\n valueToPosition(value: any): number {\n const bandStart = this._scale.scale(value);\n return bandStart;\n }\n\n updateGroupScaleRange() {\n let parentScale = this._scale;\n this._scales.forEach((scale, i) => {\n if (i > 0) {\n scale.range([0, parentScale.bandwidth()]);\n parentScale = scale;\n }\n });\n }\n\n getPosition(values: any[]) {\n let position = 0;\n let bandScale = this._scale;\n // 要不要性能优化?\n // 优化有没有用?\n if (this._scales.length === 1 || values.length === 1) {\n position = this.valueToPosition(values[0]);\n } else {\n const max = Math.min(values.length, this._scales.length);\n for (let i = 0; i < max; i++) {\n position += this._scales[i].scale(values[i]);\n }\n bandScale = this._scales[max - 1];\n }\n return { position, bandScale };\n }\n\n calcScales(DEFAULT_BAND_INNER_PADDING: number, DEFAULT_BAND_OUTER_PADDING: number) {\n const { bandPadding, paddingInner, paddingOuter } = this._spec;\n const isBandPaddingArray = isArray(bandPadding);\n const isPaddingInnerArray = isArray(paddingInner);\n const isPaddingOuterArray = isArray(paddingOuter);\n\n for (let i = 0; i < this._scales.length; i++) {\n const _padding = isBandPaddingArray ? bandPadding[i] : bandPadding;\n const _paddingInner = isPaddingInnerArray ? paddingInner[i] : paddingInner;\n const _paddingOuter = isPaddingOuterArray ? paddingOuter[i] : paddingOuter;\n\n this._scales[i]\n .paddingInner(_paddingInner ?? _padding ?? DEFAULT_BAND_INNER_PADDING, true)\n .paddingOuter(_paddingOuter ?? _padding ?? DEFAULT_BAND_OUTER_PADDING, true);\n }\n }\n computeBandDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n if (!data.length) {\n return [];\n }\n\n // 性能优化 9.13\n if (data.length === 1) {\n return data[0].values;\n }\n const tempSet = new Set();\n for (let i = 0; i < data.length; i++) {\n for (let j = 0; j < data[i].values.length; j++) {\n tempSet.add(data[i].values[j]);\n }\n }\n return Array.from(tempSet) as StringOrNumber[];\n }\n\n protected updateScaleDomain() {\n if (!this.isSeriesDataEnable()) {\n return;\n }\n if (!this._rawDomainIndex?.length && this._scales.length) {\n this._updateRawDomain();\n }\n const userDomain = this._spec.domain;\n for (let i = 0; i < this._scales.length; i++) {\n if (userDomain && userDomain.length && i === 0) {\n // 当数字映射字段存在分组时,只作用于第一个分组的domain,如 xField: ['x', 'type']\n this._scales[i].domain(userDomain);\n } else {\n const data = this.collectData(i);\n const domain = this.computeBandDomain(data);\n this._scales[i].domain(domain.sort((a, b) => this._rawDomainIndex[i][a] - this._rawDomainIndex[i][b]));\n }\n }\n this.transformScaleDomain();\n this.event.emit(ChartEvent.scaleDomainUpdate, { model: this as unknown as IModel });\n this.event.emit(ChartEvent.scaleUpdate, { model: this as unknown as IModel, value: 'domain' });\n }\n\n protected getLabelItems(length: number) {\n const labelItems: Dict<any>[][] = [];\n let preData: any[] = [];\n\n this._scales.forEach((scale, index) => {\n const tickData = this._tickDataMap[index];\n\n // 因为多层级标签会依赖上一层标签的分组值定位,所以如果上一层标签没有内容,那么就直接获取 bandScale 的 domain()\n const isTickDataHaveData = tickData?.getLatestData()?.length;\n const ticks: string[] = isTickDataHaveData\n ? tickData.getLatestData().map((obj: Datum) => obj.value)\n : scale.domain();\n if (ticks && ticks.length) {\n if (preData && preData.length) {\n const currentLabelItems: any[] = [];\n const curData: any[] = [];\n preData.forEach(value => {\n ticks.forEach(tick => {\n const values = array(value).concat(tick);\n curData.push(values);\n\n if (isTickDataHaveData) {\n const axisItem = getAxisItem(tick, this._getNormalizedValue(values, length));\n currentLabelItems.push(axisItem);\n }\n });\n });\n if (isTickDataHaveData) {\n labelItems.push(currentLabelItems.filter((entry: AxisItem) => entry.value >= 0 && entry.value <= 1));\n }\n preData = curData;\n } else {\n ticks.forEach(tick => {\n preData.push(tick);\n });\n if (isTickDataHaveData) {\n labelItems.push(\n tickData\n .getLatestData()\n .map((obj: Datum) => {\n return getAxisItem(obj.value, this._getNormalizedValue([obj.value], length));\n })\n .filter((entry: AxisItem) => entry.value >= 0 && entry.value <= 1)\n );\n }\n }\n }\n });\n\n return labelItems.reverse();\n }\n\n protected _updateRawDomain() {\n // 默认值设置了无效?\n this._rawDomainIndex = [];\n\n const userDomain = this._spec.domain;\n for (let i = 0; i < this._scales.length; i++) {\n if (userDomain && userDomain.length && i === 0) {\n // 当数字映射字段存在分组时,只作用于第一个分组的domain,如 xField: ['x', 'type']\n this._scales[i].domain(userDomain);\n } else {\n const data = this.collectData(i, true);\n const domain = this.computeBandDomain(data);\n this._rawDomainIndex[i] = {};\n domain.forEach((d, _i) => (this._rawDomainIndex[i][d] = _i));\n }\n }\n }\n\n protected _clearRawDomain() {\n this._rawDomainIndex = [];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/mixin/band-axis-mixin.ts"],"names":[],"mappings":"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","file":"band-axis-mixin.js","sourcesContent":["import type { BandScale } from '@visactor/vscale';\nimport type { Dict } from '@visactor/vutils';\nimport { array, isArray } from '@visactor/vutils';\nimport type { Datum, IOrientType, IPolarOrientType, StringOrNumber } from '../../../typings';\nimport type { IEvent } from '../../../event/interface';\nimport { ChartEvent } from '../../../constant/event';\nimport type { IModel } from '../../../model/interface';\nimport type { IAxisLocationCfg } from '../interface';\nimport { CompilableData } from '../../../compile/data/compilable-data';\nimport type { AxisItem } from '@visactor/vrender-components';\nimport { getAxisItem } from '../util';\n\nexport interface BandAxisMixin {\n _orient: IOrientType | IPolarOrientType;\n _option: any;\n _scale: BandScale;\n _scales: BandScale[];\n _spec: any;\n _tick: any;\n _tickData: CompilableData[];\n _defaultBandPosition: number;\n _defaultBandInnerPadding: number;\n _defaultBandOuterPadding: number;\n event: IEvent;\n isSeriesDataEnable: () => boolean;\n collectData: (depth: number, rawData?: boolean) => { min: number; max: number; values: any[] }[];\n computeDomain: (data: { min: number; max: number; values: any[] }[]) => StringOrNumber[];\n transformScaleDomain: () => void;\n _initTickDataSet: (options: any, index?: number) => any;\n _tickTransformOption: () => any;\n _forceLayout: () => void;\n _getNormalizedValue: (values: any[], length: number) => number;\n _onTickDataChange: (compilableData: CompilableData) => void;\n registerTicksTransform: () => string;\n}\n\nexport class BandAxisMixin {\n private _tickDataMap: Dict<any>;\n protected _initData() {\n if (this._spec.showAllGroupLayers && this._scales.length > 1) {\n // 显示所有分组层级\n for (let layer = 0; layer < this._scales.length; layer++) {\n const layers = this._spec.layers ?? [];\n const layerConfig = layers[this._scales.length - 1 - layer] || {};\n if (layerConfig.visible !== false && layerConfig.tickCount !== 0 && layerConfig.forceTickCount !== 0) {\n const tickData = this._initTickDataSet(\n {\n ...this._tickTransformOption(),\n ...layerConfig\n },\n layer\n );\n const compilableData = new CompilableData(this._option, tickData);\n this._tickData.push(compilableData);\n tickData.target.addListener('change', () => {\n this._onTickDataChange(compilableData);\n });\n\n if (!this._tickDataMap) {\n this._tickDataMap = {};\n }\n this._tickDataMap[layer] = compilableData;\n }\n }\n } else {\n const tickData = this._initTickDataSet(this._tickTransformOption());\n const compilableData = new CompilableData(this._option, tickData);\n tickData.target.addListener('change', () => {\n this._onTickDataChange(compilableData);\n });\n this._tickData = [compilableData];\n this._tickDataMap = {\n 0: compilableData\n };\n }\n }\n\n protected _updateData() {\n const tickTransformType = this.registerTicksTransform();\n\n if (this._spec.showAllGroupLayers && this._scales.length > 1) {\n const layers = this._spec.layers ?? [];\n Object.keys(this._tickDataMap).forEach(layer => {\n const layerConfig = layers[this._scales.length - 1 - +layer] || {};\n const tickData = this._tickDataMap[layer];\n const tickTransform = tickData?.getDataView().transformsArr.find((t: any) => t.type === tickTransformType);\n\n tickTransform &&\n (tickTransform.options = {\n ...this._tickTransformOption(),\n ...layerConfig\n });\n });\n } else {\n const tickTransform = this._tickData?.[0]?.getDataView().transformsArr.find(t => t.type === tickTransformType);\n\n tickTransform && (tickTransform.options = this._tickTransformOption());\n }\n }\n\n protected _rawDomainIndex: { [key: string | number | symbol]: number }[] = [];\n\n dataToPosition(values: any[], cfg: IAxisLocationCfg = {}): number {\n if (values.length === 0 || this._scales.length === 0) {\n return 0;\n }\n const { position, bandScale } = this.getPosition(values);\n return (\n position + bandScale.bandwidth() * (cfg.bandPosition ?? this._spec.bandPosition ?? this._defaultBandPosition)\n );\n }\n\n valueToPosition(value: any): number {\n const bandStart = this._scale.scale(value);\n return bandStart;\n }\n\n updateGroupScaleRange() {\n let parentScale = this._scale;\n this._scales.forEach((scale, i) => {\n if (i > 0) {\n scale.range([0, parentScale.bandwidth()]);\n parentScale = scale;\n }\n });\n }\n\n getPosition(values: any[]) {\n let position = 0;\n let bandScale = this._scale;\n // 要不要性能优化?\n // 优化有没有用?\n if (this._scales.length === 1 || values.length === 1) {\n position = this.valueToPosition(values[0]);\n } else {\n const max = Math.min(values.length, this._scales.length);\n for (let i = 0; i < max; i++) {\n position += this._scales[i].scale(values[i]);\n }\n bandScale = this._scales[max - 1];\n }\n return { position, bandScale };\n }\n\n calcScales(DEFAULT_BAND_INNER_PADDING: number, DEFAULT_BAND_OUTER_PADDING: number) {\n const { bandPadding, paddingInner, paddingOuter } = this._spec;\n const isBandPaddingArray = isArray(bandPadding);\n const isPaddingInnerArray = isArray(paddingInner);\n const isPaddingOuterArray = isArray(paddingOuter);\n\n for (let i = 0; i < this._scales.length; i++) {\n const _padding = isBandPaddingArray ? bandPadding[i] : bandPadding;\n const _paddingInner = isPaddingInnerArray ? paddingInner[i] : paddingInner;\n const _paddingOuter = isPaddingOuterArray ? paddingOuter[i] : paddingOuter;\n\n this._scales[i]\n .paddingInner(_paddingInner ?? _padding ?? DEFAULT_BAND_INNER_PADDING, true)\n .paddingOuter(_paddingOuter ?? _padding ?? DEFAULT_BAND_OUTER_PADDING, true);\n }\n }\n computeBandDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n if (!data.length) {\n return [];\n }\n\n // 性能优化 9.13\n if (data.length === 1) {\n return data[0].values;\n }\n const tempSet = new Set();\n for (let i = 0; i < data.length; i++) {\n for (let j = 0; j < data[i].values.length; j++) {\n tempSet.add(data[i].values[j]);\n }\n }\n return Array.from(tempSet) as StringOrNumber[];\n }\n\n protected updateScaleDomain() {\n if (!this.isSeriesDataEnable()) {\n return;\n }\n if (!this._rawDomainIndex?.length && this._scales.length) {\n this._updateRawDomain();\n }\n const userDomain = this._spec.domain;\n for (let i = 0; i < this._scales.length; i++) {\n if (userDomain && userDomain.length && i === 0) {\n // 当数字映射字段存在分组时,只作用于第一个分组的domain,如 xField: ['x', 'type']\n this._scales[i].domain(userDomain);\n } else {\n const data = this.collectData(i);\n const domain = this.computeBandDomain(data);\n this._scales[i].domain(domain.sort((a, b) => this._rawDomainIndex[i][a] - this._rawDomainIndex[i][b]));\n }\n }\n this.transformScaleDomain();\n this.event.emit(ChartEvent.scaleDomainUpdate, { model: this as unknown as IModel });\n this.event.emit(ChartEvent.scaleUpdate, { model: this as unknown as IModel, value: 'domain' });\n }\n\n protected getLabelItems(length: number) {\n const labelItems: Dict<any>[][] = [];\n let preData: any[] = [];\n\n // 只有需要展示多层标签的时候,才需要计算,否则不需要计算\n (this._spec.showAllGroupLayers ? this._scales : [this._scales[0]]).forEach((scale, index) => {\n const tickData = this._tickDataMap[index];\n\n // 因为多层级标签会依赖上一层标签的分组值定位,所以如果上一层标签没有内容,那么就直接获取 bandScale 的 domain()\n const isTickDataHaveData = tickData?.getLatestData()?.length;\n const ticks: string[] = isTickDataHaveData\n ? tickData.getLatestData().map((obj: Datum) => obj.value)\n : scale.domain();\n if (ticks && ticks.length) {\n if (preData && preData.length) {\n const currentLabelItems: any[] = [];\n const curData: any[] = [];\n preData.forEach(value => {\n ticks.forEach(tick => {\n const values = array(value).concat(tick);\n curData.push(values);\n\n if (isTickDataHaveData) {\n const axisItem = getAxisItem(tick, this._getNormalizedValue(values, length));\n currentLabelItems.push(axisItem);\n }\n });\n });\n if (isTickDataHaveData) {\n labelItems.push(currentLabelItems.filter((entry: AxisItem) => entry.value >= 0 && entry.value <= 1));\n }\n preData = curData;\n } else {\n ticks.forEach(tick => {\n preData.push(tick);\n });\n if (isTickDataHaveData) {\n labelItems.push(\n tickData\n .getLatestData()\n .map((obj: Datum) => {\n return getAxisItem(obj.value, this._getNormalizedValue([obj.value], length));\n })\n .filter((entry: AxisItem) => entry.value >= 0 && entry.value <= 1)\n );\n }\n }\n }\n });\n\n return labelItems.reverse();\n }\n\n protected _updateRawDomain() {\n // 默认值设置了无效?\n this._rawDomainIndex = [];\n\n const userDomain = this._spec.domain;\n for (let i = 0; i < this._scales.length; i++) {\n if (userDomain && userDomain.length && i === 0) {\n // 当数字映射字段存在分组时,只作用于第一个分组的domain,如 xField: ['x', 'type']\n this._scales[i].domain(userDomain);\n } else {\n const data = this.collectData(i, true);\n const domain = this.computeBandDomain(data);\n this._rawDomainIndex[i] = {};\n domain.forEach((d, _i) => (this._rawDomainIndex[i][d] = _i));\n }\n }\n }\n\n protected _clearRawDomain() {\n this._rawDomainIndex = [];\n }\n}\n"]}
|
|
@@ -117,18 +117,18 @@ class Brush extends base_component_1.BaseComponent {
|
|
|
117
117
|
})), brush.addEventListener(vrender_components_1.IOperateType.drawEnd, (e => {
|
|
118
118
|
var _a;
|
|
119
119
|
this._setRegionMarkPickable(region, !0);
|
|
120
|
-
const {operateMask: operateMask} = e.detail;
|
|
120
|
+
const {operateMask: operateMask} = e.detail, {updateElementsState: updateElementsState = !0} = this._spec;
|
|
121
121
|
if (null === (_a = this._spec) || void 0 === _a ? void 0 : _a.onBrushEnd) !0 === this._spec.onBrushEnd(e) ? (this.clearGraphic(),
|
|
122
122
|
this._initMarkBrushState(componentIndex, ""), this._emitEvent(event_1.ChartEvent.brushClear, region)) : (this._spec.onBrushEnd(e),
|
|
123
123
|
this._emitEvent(event_1.ChartEvent.brushEnd, region)); else {
|
|
124
124
|
const inBrushData = this._extendDataInBrush(this._inBrushElementsMap);
|
|
125
|
-
!this._spec.zoomWhenEmpty && inBrushData.length > 0 && this._setAxisAndDataZoom(operateMask, region),
|
|
125
|
+
(!this._spec.zoomWhenEmpty && inBrushData.length > 0 || !updateElementsState) && this._setAxisAndDataZoom(operateMask, region),
|
|
126
126
|
this._emitEvent(event_1.ChartEvent.brushEnd, region);
|
|
127
127
|
}
|
|
128
128
|
})), brush.addEventListener(vrender_components_1.IOperateType.moveEnd, (e => {
|
|
129
129
|
this._setRegionMarkPickable(region, !0);
|
|
130
|
-
const {operateMask: operateMask} = e.detail, inBrushData = this._extendDataInBrush(this._inBrushElementsMap);
|
|
131
|
-
!this._spec.zoomWhenEmpty && inBrushData.length > 0 && this._setAxisAndDataZoom(operateMask, region),
|
|
130
|
+
const {operateMask: operateMask} = e.detail, {updateElementsState: updateElementsState = !0} = this._spec, inBrushData = this._extendDataInBrush(this._inBrushElementsMap);
|
|
131
|
+
(!this._spec.zoomWhenEmpty && inBrushData.length > 0 || updateElementsState) && this._setAxisAndDataZoom(operateMask, region),
|
|
132
132
|
this._emitEvent(event_1.ChartEvent.brushEnd, region);
|
|
133
133
|
}));
|
|
134
134
|
}
|
|
@@ -154,8 +154,8 @@ class Brush extends base_component_1.BaseComponent {
|
|
|
154
154
|
Object.assign(Object.assign({}, (0, style_1.transformToGraphic)(brushedStyle)), styleResult);
|
|
155
155
|
}
|
|
156
156
|
_handleBrushChange(region, e) {
|
|
157
|
-
const {operateMask: operateMask} = e.detail;
|
|
158
|
-
this._reconfigItem(operateMask, region), this._reconfigLinkedItem(operateMask, region);
|
|
157
|
+
const {operateMask: operateMask} = e.detail, {updateElementsState: updateElementsState = !0} = this._spec;
|
|
158
|
+
updateElementsState && (this._reconfigItem(operateMask, region), this._reconfigLinkedItem(operateMask, region));
|
|
159
159
|
}
|
|
160
160
|
_extendDataInBrush(elementsMap) {
|
|
161
161
|
var _a, _b;
|