@visactor/vchart 2.1.0-alpha.3 → 2.1.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +1 -1
- package/build/index.es.js +105 -8
- package/build/index.js +105 -8
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart.d.ts +7 -0
- package/cjs/chart/base/base-chart.js +65 -8
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/component/axis/base-axis.js +3 -5
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/constant/funnel.js +1 -2
- package/cjs/constant/scatter.js +2 -1
- package/cjs/constant/scroll-bar.js +1 -1
- package/cjs/constant/sunburst.js +1 -1
- package/cjs/constant/waterfall.js +1 -1
- package/cjs/constant/word-cloud.js +1 -1
- package/cjs/core/instance-manager.js +1 -1
- package/cjs/core/interface.js +1 -1
- package/cjs/core/util.js +1 -1
- package/cjs/core/vchart.js +1 -1
- package/esm/chart/base/base-chart.d.ts +7 -0
- package/esm/chart/base/base-chart.js +63 -7
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/component/axis/base-axis.js +3 -5
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/constant/funnel.js +1 -2
- package/esm/constant/scatter.js +2 -1
- package/esm/constant/scroll-bar.js +1 -1
- package/esm/constant/sunburst.js +1 -1
- package/esm/constant/waterfall.js +1 -1
- package/esm/constant/word-cloud.js +1 -1
- package/esm/core/instance-manager.js +1 -1
- package/esm/core/interface.js +1 -1
- package/esm/core/util.js +1 -1
- package/esm/core/vchart.js +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/base-axis.ts"],"names":[],"mappings":"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","file":"base-axis.js","sourcesContent":["import type { IGroup } from '@visactor/vrender-core';\n// 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} 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';\nimport { transformFunctionAttribute } from '../../util/spec/transform';\n\nconst AXIS_COMPONENT_ONLY_CHANGE_KEYS: Record<string, true> = {\n grid: true,\n subGrid: true,\n tick: true,\n subTick: true,\n label: true,\n domainLine: true,\n title: true,\n maxWidth: true,\n minWidth: true,\n maxHeight: true,\n minHeight: true\n};\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 getVisible() {\n return this._visible;\n }\n get visible() {\n return this._visible;\n }\n\n protected _specVisible: boolean = true;\n protected _hideWhenEmpty: boolean = false;\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 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._specVisible = spec.visible ?? true;\n this._hideWhenEmpty = spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n this._coordinateType = 'none';\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._specVisible = this._spec.visible ?? true;\n this._hideWhenEmpty = this._spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n\n if (this._scale) {\n this._refreshVisibilityByData();\n }\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 this._refreshVisibilityByData();\n // data\n this._shouldComputeTickData() && this._initData();\n\n if (this._specVisible) {\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 this._syncComponentVisibility();\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._specVisible && (this.getVisible() || this._spec.forceInitTick || this._hideWhenEmpty);\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 this._regions &&\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(\n s.getRawDataStatisticsByField(f, !!isContinuous(this._scale.type)) as {\n min: number;\n max: number;\n values: any[];\n }\n );\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 _hasCollectedSeriesData() {\n return this.collectData(0).length > 0;\n }\n\n protected _refreshVisibilityByData() {\n const nextVisible = this._specVisible && (!this._hideWhenEmpty || this._hasCollectedSeriesData());\n const changed = this._visible !== nextVisible;\n this._visible = nextVisible;\n\n if (this._axisMark || this._gridMark) {\n this._syncComponentVisibility();\n }\n\n if (changed) {\n this._forceLayout();\n }\n\n return changed;\n }\n\n protected _syncComponentVisibility() {\n this._axisMark?.setVisible(this._visible);\n this._gridMark?.setVisible(this._visible && this._spec.grid?.visible !== false);\n\n (this._axisMark?.getComponent?.() as IGroup)?.setAttributes?.({ visibleAll: this._visible });\n (this._gridMark?.getComponent?.() as IGroup)?.setAttributes?.({\n visibleAll: this._visible && this._spec.grid?.visible !== false\n });\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 const specChanged = !isEqual(prevSpec, spec);\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 if (specChanged && !result.reMake && this._isComponentOnlySpecChange(spec, prevSpec)) {\n result.effects = {\n ...result.effects,\n component: true,\n layout: true,\n render: true\n };\n }\n\n return result;\n }\n\n private _isComponentOnlySpecChange(spec: T, prevSpec: T) {\n const keys = Object.keys({\n ...prevSpec,\n ...spec\n });\n\n return keys.every(key => {\n return isEqual(prevSpec?.[key], spec?.[key]) || AXIS_COMPONENT_ONLY_CHANGE_KEYS[key];\n });\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: transformFunctionAttribute(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: transformFunctionAttribute(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":";;;;;;;;;;;;;;AAKA,6CAAgD;AAWhD,2DAAuD;AACvD,6CAAoD;AACpD,2CAA+F;AAC/F,4CAAwE;AACxE,4CAAyD;AAEzD,iEAAuD;AAEvD,gDAAkD;AAClD,kDAAqD;AACrD,iDAAwD;AAExD,6CAW0B;AAC1B,iCAAqE;AACrE,4CAAyG;AAGzG,iDAA8C;AAE9C,oDAA6D;AAC7D,gDAA6C;AAE7C,qEAAkF;AAGlF,mDAAsD;AACtD,kDAAoE;AACpE,kCAA4C;AAI5C,yDAAuE;AAEvE,MAAM,+BAA+B,GAAyB;IAC5D,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAsB,aACpB,SAAQ,8BAAgB;IAOxB,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAGD,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAGD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAGD,WAAW,CAAC,KAAK,GAAG,CAAC;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAcD,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAOD,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAmBD,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,YAAY,IAAO,EAAE,OAAyB;;QAC5C,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAxEvB,YAAO,GAAG,MAAM,CAAC;QAYP,YAAO,GAAiB,EAAE,CAAC;QAK3B,cAAS,GAAqB,EAAE,CAAC;QAgBjC,aAAQ,GAAY,IAAI,CAAC;QAQzB,iBAAY,GAAY,IAAI,CAAC;QAC7B,mBAAc,GAAY,KAAK,CAAC;QAQhC,UAAK,GAAsB,SAAS,CAAC;QAiJrC,sBAAiB,GAAG,CAAC,QAA0B,EAAE,EAAE;YAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,EAAE,CAAC;QACzB,CAAC,CAAC;QA7HA,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,MAAA,IAAI,CAAC,aAAa,mCAAI,KAAK,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,mCAAI,IAAI,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,mCAAI,KAAK,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAElC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;IACH,CAAC;IAED,oBAAoB;;QAClB,OAAO,CAAC,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,EAAE,EAAE,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAO,CAAC,CAAC;IACtF,CAAC;IAED,OAAO;;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAElD,IAAI,IAAI,CAAC,YAAY,EAAE;YAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EACvD;gBACE,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAQ,CAAC,QAAQ;gBACrF,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;aACtB,EACD;gBACE,SAAS,EAAE,IAAI;aAChB,CACF,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,GAAG,QAA0B,CAAC;YAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YACtD,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBAC1B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACnC;YACD,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE9B,IAAI,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,OAAO,EAAE;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,EAC5D;oBACE,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAQ,CAAC,YAAY;oBAC7F,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;iBACtB,EACD;oBACE,SAAS,EAAE,IAAI;iBAChB,CACF,CAAC;gBAEF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBACpC,QAAQ,CAAC,aAAa,CAAC;oBACrB,MAAM,EAAE,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,KAAK,0CAAE,MAAM,mCAAI,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,MAAM,mCAAI,qBAAY,CAAC,SAAS;oBAC3F,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC9B,IAAI,CAAC,SAAS,GAAG,QAA0B,CAAC;aAC7C;YAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAGhC,IACE,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,cAAc,0CAAE,iBAAiB,EAAE;gBAChD,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,KAAK,KAAK;gBAC7D,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAC7B;gBACA,MAAM,iBAAiB,GAAG,IAAA,uBAAe,EAAC,MAAA,iBAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,2CAAI,EAAE;oBAC/E,MAAM,EACJ,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,eAAe,mCAC1B,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,mCAC9D,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC;oBAC3D,SAAS,EACP,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,kBAAkB,mCAC7B,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,yBAAyB,CAAC,mCACjE,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC;oBAC9D,KAAK,EACH,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,cAAc,mCACzB,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,mCAC7D,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC;oBAC1D,IAAI,EACF,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,mCACxB,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,mCAC5D,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC;oBACzD,MAAM,EACJ,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,eAAe,mCAC1B,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,mCAC9D,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC;iBAC5D,CAAC,CAAC;gBAEH,IAAI,iBAAiB,CAAC,KAAK,EAAE;oBAC3B,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG;wBAC7C,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;qBAClC,CAAC;iBACH;gBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACnE;SACF;IACH,CAAC;IAES,sBAAsB;QAE9B,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;IACrG,CAAC;IAQS,SAAS;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,IAAI,qBAAc,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,CAAC,eAAe,CAAC,CAAC;QACnC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;YACzC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAES,WAAW,CAAC,KAAa,EAAE,OAAiB;QACpD,MAAM,IAAI,GAAkD,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ;YACX,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;;gBACF,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9C,KAAK,GAAG,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAa,CAAC;gBACvG,IAAI,CAAC,KAAK,EAAE;oBACV,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjD;gBAED,IAAI,KAAK,EAAE;oBACT,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;oBACjC,IAAI,OAAO,EAAE;wBACX,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAChB,IAAI,CAAC,IAAI,CACP,CAAC,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,IAAA,qBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAIhE,CACF,CAAC;wBACJ,CAAC,CAAC,CAAC;qBACJ;yBAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;wBACxE,MAAM,UAAU,GAAG,MAAA,CAAC,CAAC,qBAAqB,iDAAI,CAAC;wBAC/C,MAAM,aAAa,GACjB,IAAI,CAAC,IAAI,KAAK,6BAAiB,CAAC,mBAAmB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;wBAEvG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;4BAChB,IAAI,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,0CAAG,CAAC,CAAC,EAAE;gCAC/B,IAAI,aAAa,EAAE;oCACjB,IAAI,CAAC,IAAI,iCACJ,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAC3B,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IACvD,CAAC;iCACJ;qCAAM;oCACL,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;iCACrC;6BACF;wBACH,CAAC,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC,EACD;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;aAC7B,CACF,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAES,kBAAkB;QAC1B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;;YACF,IAAI,IAAA,gBAAO,EAAC,MAAA,CAAC,CAAC,qBAAqB,EAAE,0CAAE,UAAU,CAAC,EAAE;gBAClD,MAAM,GAAG,KAAK,CAAC;aAChB;QACH,CAAC,EACD;YACE,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CACF,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,2BAA2B;QACnC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpE,IAAA,gBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,IAAA,gBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,IAAA,gBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAA,cAAK,EAAC,WAAW,CAAC,CAAC,CAAC;QACjE,IAAA,gBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAA,cAAK,EAAC,WAAW,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAyB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1G,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,mBAAmB;QACjB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CAAC;IACJ,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,CACX,kBAAU,CAAC,WAAW,EACtB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,IAAI,CAAC,EAAE,EAAE,EAChD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CACnC,CAAC;QACF,MAAM,cAAc,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,QAAQ,EAAE;YAC9C,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CAAC;aACC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE;gBAC9E,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAClD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;SACJ;QAED,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;YACF,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAU,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE;gBAEvF,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,EACD;YACE,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CACF,CAAC;IACJ,CAAC;IAES,iBAAiB;IAE3B,CAAC;IAES,uBAAuB;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,CAAC;IAES,wBAAwB;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAClG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAE5B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;QAED,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,wBAAwB;;QAChC,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,OAAO,MAAK,KAAK,CAAC,CAAC;QAEhF,MAAA,MAAC,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,YAAY,kDAAe,0CAAE,aAAa,mDAAG,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7F,MAAA,MAAC,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,YAAY,kDAAe,0CAAE,aAAa,mDAAG;YAC5D,UAAU,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,OAAO,MAAK,KAAK;SAChE,CAAC,CAAC;IACL,CAAC;IAES,eAAe;IAEzB,CAAC;IAED,WAAW;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzE,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAES,WAAW,CAAC,UAAyC;QAM7D,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzE,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;;gBACF,MAAA,CAAC,CAAC,WAAW,EAAE,0CAAE,iBAAiB,EAAE,CAAC;YACvC,CAAC,EACD;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;aAC7B,CACF,CAAC;SACH;aAAM,IACL,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,SAAS,CAAC,MAAM;YACrB,CAAC,UAAU,KAAK,OAAO,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACjE;YACA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAChC,QAAQ,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC;oBACvC,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,oBAAoB,CAAC,CAAkB;QAC/C,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;YACF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YACxB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,EACD;YACE,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CACF,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;IAEH,CAAC;IAGD,YAAY,CAAC,IAAO,EAAE,QAAW;;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,OAAO,MAAM,CAAC;SACf;QACD,MAAM,WAAW,GAAG,CAAC,IAAA,gBAAO,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QAIvB,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,OAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,OAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA,EAAE;YACxE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,OAAO,MAAM,CAAC;SACf;QAED,IAAI,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,OAAO,MAAK,IAAI,IAAI,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,OAAO,MAAK,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACvF,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,OAAO,MAAM,CAAC;SACf;QAED,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YACpF,MAAM,CAAC,OAAO,mCACT,MAAM,CAAC,OAAO,KACjB,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,IAAI,GACb,CAAC;SACH;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,0BAA0B,CAAC,IAAO,EAAE,QAAW;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,iCACnB,QAAQ,GACR,IAAI,EACP,CAAC;QAEH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,IAAA,gBAAO,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,CAAC,IAAI,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;IACL,CAAC;IAES,kBAAkB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,SAAS,GAAQ;YACrB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;YACvE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;SACtE,CAAC;QAGF,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC9C,SAAS,CAAC,IAAI,GAAG,IAAA,6BAAsB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1D;aAAM;YACL,SAAS,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACpC,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9E,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACpB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAClD,CAAC,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,IAAa,EAAE,KAAc,EAAE,EAAE;;wBAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBAC1E,OAAO,IAAA,0BAAkB,EAAC,IAAA,4BAAS,EAAC,EAAE,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC5E,CAAC;oBACH,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1C;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACnD,SAAS,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC7D;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACpB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,oCAA4B,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACxE;YACD,IAAI,IAAA,mBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBACrC,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAgB,EAAE,KAAa,EAAE,EAAE,CAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;aAC/E;SACF;aAAM;YACL,SAAS,CAAC,KAAK,GAAG;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAClC,SAAS,CAAC,IAAI,GAAG;gBACf,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;gBAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;gBACxC,UAAU,EAAE,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC1C,CAAC,CAAC,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;oBAC3F,CAAC,CAAC,SAAS;aACd,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBAChD,CAAC,CAAC,CAAC,KAAa,EAAE,KAAa,EAAE,KAAY,EAAE,IAAa,EAAE,EAAE;;wBAC5D,MAAM,KAAK,GAAI,IAAI,CAAC,IAAI,CAAC,KAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBAClE,OAAO,IAAA,0BAAkB,EAAC,IAAA,4BAAS,EAAC,EAAE,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC3E,CAAC;oBACH,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC7D;SACF;aAAM;YACL,SAAS,CAAC,IAAI,GAAG;gBACf,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACxC,SAAS,CAAC,OAAO,GAAG;gBAClB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;aAC9B,CAAC;YACF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;oBACtD,CAAC,CAAC,CAAC,KAAa,EAAE,KAAa,EAAE,KAAY,EAAE,IAAa,EAAE,EAAE;;wBAC5D,MAAM,KAAK,GAAI,IAAI,CAAC,OAAO,CAAC,KAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBACrE,OAAO,IAAA,0BAAkB,EAAC,IAAA,4BAAS,EAAC,EAAE,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC9E,CAAC;oBACH,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC5C;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACnE;SACF;aAAM;YACL,SAAS,CAAC,OAAO,GAAG;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACpC,MAAM,KAQF,IAAI,CAAC,KAAK,EARR,EACJ,UAAU,EACV,KAAK,EACL,KAAK,EAAE,UAAU,GAAG,EAAE,EACtB,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,cAAc,OAET,EADT,cAAc,cAPb,gEAQL,CAAa,CAAC;YACf,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,cAAc,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;gBAErD,IAAI,UAAU,IAAI,IAAA,cAAK,EAAC,UAAU,CAAC,EAAE;oBACnC,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,cAAc,GAAI,0BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC5D;aACF;YAED,SAAS,CAAC,KAAK,mCACV,cAAc,KACjB,UAAU,EAAE,KAAK,EACjB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,uBAAc,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EACrD,SAAS,EAAE,IAAA,4BAAS,EAAC,EAAE,EAAE,cAAc,EAAE,IAAA,0BAAkB,EAAC,UAAU,CAAC,CAAC,EACxE,QAAQ,EAAE,UAAU,CAAC,QAAQ,KAAK,KAAK,EACvC,gBAAgB,EAAE,UAAU,CAAC,QAAQ,KAAK,KAAK,EAC/C,KAAK,EAAE,EAAE,GACV,CAAC;YAEF,IAAI,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;gBAC5C,SAAS,CAAC,KAAK,CAAC,KAAK,mCAChB,cAAc,KACjB,KAAK,EAAE,IAAA,0BAAkB,EAAC,cAAc,CAAC,KAAK,CAAC,GAChD,CAAC;gBACF,IAAI,cAAc,CAAC,KAAK,EAAE;oBACxB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,2BAAmB,EAAC,cAAc,CAAC,KAAK,CAAC,CAAC;iBACzE;aACF;iBAAM;gBACL,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC5C;YAED,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,OAAO,EAAE;gBACtD,SAAS,CAAC,KAAK,CAAC,UAAU,mCACrB,mBAAmB,KACtB,KAAK,EAAE,IAAA,0BAAkB,EAAC,mBAAmB,CAAC,KAAK,CAAC,GACrD,CAAC;gBACF,IAAI,mBAAmB,CAAC,KAAK,EAAE;oBAC7B,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAA,2BAAmB,EAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;iBACnF;aACF;iBAAM;gBACL,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aACjD;YAED,IAAI,UAAU,EAAE;gBACd,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC;aAC9D;SACF;aAAM;YACL,SAAS,CAAC,KAAK,GAAG;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC9C,SAAS,CAAC,KAAK,GAAG;gBAChB,OAAO,EAAE,IAAI;aACd,CAAC;YACF,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACzB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,0BAAkB,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACnE;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACzB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACpE;SACF;aAAM;YACL,SAAS,CAAC,KAAK,GAAG;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,kBAAkB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,OAAO;YACL,cAAc,EAAE,IAAA,sCAA0B,EAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YACpE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,KAAK,EAAE,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAChC,CAAC,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE;;oBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAA,KAAK,CAAC,KAAK,0CAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBACzE,OAAO,IAAA,0BAAkB,EAAC,IAAA,4BAAS,EAAC,EAAE,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACH,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,OAAO,EACL,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK;gBAC5B,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;gBACpB,CAAC,CAAC;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,cAAc,EAAE,IAAA,sCAA0B,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;oBACvE,KAAK,EAAE,IAAA,0BAAkB,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;iBAC9C;SACR,CAAC;IACJ,CAAC;IAES,qBAAqB;QAC7B,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACrD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,wBAAiB,EAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,KAAU,EAAE,KAAU,EAAE,KAAa,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrH,CAAC;IAIS,gBAAgB,CAAyB,OAAU,EAAE,QAAgB,CAAC;QAC9E,IAAA,wCAA6B,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAW,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;aACpG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,EAAE,OAAO;SACd,CAAC;aACD,SAAS,CACR;YACE,IAAI,EAAE,IAAI;YACV,OAAO;SACR,EACD,KAAK,CACN,CAAC;QACJ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,oBAAoB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC/D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;QACpF,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK;YACvC,SAAS;YACT,cAAc;YACd,QAAQ;YACR,QAAQ;YACR,cAAc,EAAE,IAAI,CAAC,OAAO;YAC5B,cAAc,EAAE,IAAI,CAAC,eAAe;YAEpC,UAAU;YACV,cAAc;YACd,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,sBAAsB,CAAC,OAA0B,EAAE,OAAiB;QAClE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;;YAChC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAE,0CAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,MAAa;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,YAAuB;;QAC9B,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,sCAAiB,CAAC,KAAK,EAAE;YACjE,OAAO,YAAY,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,MAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAU,0CAAE,SAAS,CAAC,KAAK,CAAC;SAChE;IACH,CAAC;IAED,gBAAgB,CAAC,CAAoB,EAAE,OAAiB,EAAE,KAAe;QACvE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3C,OAAQ,IAAI,CAAC,QAAQ,EAAwC,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/F,CAAC;IAED,mBAAmB,CAAC,CAAU,EAAE,OAAiB,EAAE,KAAe;QAChE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3C,OAAQ,IAAI,CAAC,QAAQ,EAAwC,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAED,qBAAqB,CAAC,CAAU,EAAE,OAAiB,EAAE,KAAe;QAClE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3C,OAAQ,IAAI,CAAC,QAAQ,EAAwC,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;;AAjwBH,sCAkwBC;AA9vBQ,qBAAO,GAAG,MAAM,CAAC;AAgwBnB,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,IAAA,iCAAqB,GAAE,CAAC;IACxB,iBAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;SACf;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;SACf;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;SAEhB;KACF,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAjBW,QAAA,YAAY,gBAiBvB","file":"base-axis.js","sourcesContent":["import type { IGroup } from '@visactor/vrender-core';\n// 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} 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';\nimport { transformFunctionAttribute } from '../../util/spec/transform';\n\nconst AXIS_COMPONENT_ONLY_CHANGE_KEYS: Record<string, true> = {\n grid: true,\n subGrid: true,\n tick: true,\n subTick: true,\n label: true,\n domainLine: true,\n title: true,\n maxWidth: true,\n minWidth: true,\n maxHeight: true,\n minHeight: true\n};\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 getVisible() {\n return this._visible;\n }\n get visible() {\n return this._visible;\n }\n\n protected _specVisible: boolean = true;\n protected _hideWhenEmpty: boolean = false;\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 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._specVisible = spec.visible ?? true;\n this._hideWhenEmpty = spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n this._coordinateType = 'none';\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._specVisible = this._spec.visible ?? true;\n this._hideWhenEmpty = this._spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n\n if (this._scale) {\n this._refreshVisibilityByData();\n }\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 this._refreshVisibilityByData();\n // data\n this._shouldComputeTickData() && this._initData();\n\n if (this._specVisible) {\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 this._syncComponentVisibility();\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._specVisible && (this.getVisible() || this._spec.forceInitTick || this._hideWhenEmpty);\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 this._regions &&\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(\n s.getRawDataStatisticsByField(f, !!isContinuous(this._scale.type)) as {\n min: number;\n max: number;\n values: any[];\n }\n );\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 _hasCollectedSeriesData() {\n return this.collectData(0).length > 0;\n }\n\n protected _refreshVisibilityByData() {\n const nextVisible = this._specVisible && (!this._hideWhenEmpty || this._hasCollectedSeriesData());\n const changed = this._visible !== nextVisible;\n this._visible = nextVisible;\n\n if (this._axisMark || this._gridMark) {\n this._syncComponentVisibility();\n }\n\n if (changed) {\n this._forceLayout();\n }\n\n return changed;\n }\n\n protected _syncComponentVisibility() {\n this._axisMark?.setVisible(this._visible);\n this._gridMark?.setVisible(this._visible && this._spec.grid?.visible !== false);\n\n (this._axisMark?.getComponent?.() as IGroup)?.setAttributes?.({ visibleAll: this._visible });\n (this._gridMark?.getComponent?.() as IGroup)?.setAttributes?.({\n visibleAll: this._visible && this._spec.grid?.visible !== false\n });\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 const specChanged = !isEqual(prevSpec, spec);\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 if (spec?.grid?.visible === true && prevSpec?.grid?.visible !== true && !this._gridMark) {\n result.reMake = true;\n return result;\n }\n\n if (specChanged && !result.reMake && this._isComponentOnlySpecChange(spec, prevSpec)) {\n result.effects = {\n ...result.effects,\n component: true,\n layout: true,\n render: true\n };\n }\n\n return result;\n }\n\n private _isComponentOnlySpecChange(spec: T, prevSpec: T) {\n const keys = Object.keys({\n ...prevSpec,\n ...spec\n });\n\n return keys.every(key => {\n return isEqual(prevSpec?.[key], spec?.[key]) || AXIS_COMPONENT_ONLY_CHANGE_KEYS[key];\n });\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: transformFunctionAttribute(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: transformFunctionAttribute(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"]}
|
package/cjs/constant/funnel.js
CHANGED
|
@@ -12,5 +12,4 @@ exports.FUNNEL_LAST_VALUE_RATIO = `${base_1.PREFIX}_FUNNEL_LAST_VALUE_RATIO`, ex
|
|
|
12
12
|
exports.FUNNEL_LAST_VALUE = `${base_1.PREFIX}_FUNNEL_LAST_VALUE`, exports.FUNNEL_CURRENT_VALUE = `${base_1.PREFIX}_FUNNEL_CURRENT_VALUE`,
|
|
13
13
|
exports.FUNNEL_NEXT_VALUE = `${base_1.PREFIX}_FUNNEL_NEXT_VALUE`, exports.FUNNEL_TRANSFORM_LEVEL = `${base_1.PREFIX}_FUNNEL_TRANSFORM_LEVEL`,
|
|
14
14
|
exports.FUNNEL_LABEL_LINE_LENGTH = 20, exports.FUNNEL_LABEL_SPACE_WIDTH = 5, exports.FUNNEL_MAX_SIZE = "80%",
|
|
15
|
-
exports.FUNNEL_MIN_SIZE = 0;
|
|
16
|
-
//# sourceMappingURL=funnel.js.map
|
|
15
|
+
exports.FUNNEL_MIN_SIZE = 0;
|
package/cjs/constant/scatter.js
CHANGED
|
@@ -8,4 +8,5 @@ const vscale_1 = require("@visactor/vscale");
|
|
|
8
8
|
|
|
9
9
|
exports.SCATTER_DEFAULT_SIZE = 10, exports.SCATTER_DEFAULT_RANGE_SIZE = [ 10, 20 ],
|
|
10
10
|
exports.SCATTER_DEFAULT_SIZE_SCALE_TYPE = vscale_1.ScaleEnum.Linear, exports.SCATTER_DEFAULT_SHAPE = "circle",
|
|
11
|
-
exports.SCATTER_DEFAULT_SHAPE_SCALE_TYPE = vscale_1.ScaleEnum.Ordinal, exports.SCATTER_DEFAULT_RANGE_SHAPE = [ "circle", "square", "triangle", "diamond", "star" ];
|
|
11
|
+
exports.SCATTER_DEFAULT_SHAPE_SCALE_TYPE = vscale_1.ScaleEnum.Ordinal, exports.SCATTER_DEFAULT_RANGE_SHAPE = [ "circle", "square", "triangle", "diamond", "star" ];
|
|
12
|
+
//# sourceMappingURL=scatter.js.map
|
package/cjs/constant/sunburst.js
CHANGED
|
@@ -10,4 +10,4 @@ exports.WORD_CLOUD_ANGLE = `${base_1.PREFIX}_WORD_CLOUD_ANGLE`, exports.WORD_CLO
|
|
|
10
10
|
exports.WORD_CLOUD_WEIGHT = `${base_1.PREFIX}_WORD_CLOUD_WEIGHT`, exports.WORDCLOUD_COLOR = `${base_1.PREFIX}_WORDCLOUD_COLOR`,
|
|
11
11
|
exports.WORDCLOUD_DATA_TOTAL = `${base_1.PREFIX}_WORDCLOUD_DATA_TOTAL`, exports.WORD_CLOUD_TEXT = `${base_1.PREFIX}_WORD_CLOUD_TEXT`,
|
|
12
12
|
exports.WORDCLOUD_SHAPE_DATA_TOTAL = `${base_1.PREFIX}_WORDCLOUD_SHAPE_DATA_TOTAL`;
|
|
13
|
-
//# sourceMappingURL=word-cloud.js.map
|
|
13
|
+
//# sourceMappingURL=word-cloud.js.map
|
package/cjs/core/interface.js
CHANGED
package/cjs/core/util.js
CHANGED
package/cjs/core/vchart.js
CHANGED
|
@@ -127,6 +127,9 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
|
|
|
127
127
|
componentOnlyUpdatedComponents: IComponent[];
|
|
128
128
|
hasNonComponentOnlyUpdate: boolean;
|
|
129
129
|
};
|
|
130
|
+
private _canChangeMarkerComponentsWithoutRemake;
|
|
131
|
+
private _canAddMarkerComponentsWithoutRemake;
|
|
132
|
+
private _isMarkerAdditionSpecSafeWithoutRemake;
|
|
130
133
|
private _canRemoveMarkerComponentsWithoutRemake;
|
|
131
134
|
private _isOnlyMarkerComponentsRemoved;
|
|
132
135
|
private _isComponentSpecKey;
|
|
@@ -134,6 +137,10 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
|
|
|
134
137
|
private _isOnlySeriesSpecsChanged;
|
|
135
138
|
private _canSkipChartDataStages;
|
|
136
139
|
private _isComponentScaleDomainOnlyUpdate;
|
|
140
|
+
private _reRunStackDataFlow;
|
|
141
|
+
private _getModelSpecIndex;
|
|
142
|
+
private _hasComponentForSpecInfo;
|
|
143
|
+
private _createMissingMarkerComponentsForSpecs;
|
|
137
144
|
private _removeMarkerComponentsForEmptySpecs;
|
|
138
145
|
private _removeComponent;
|
|
139
146
|
updateSeriesSpec(result: IUpdateSpecResult): void;
|
|
@@ -54,6 +54,20 @@ const MARKER_COMPONENT_SPEC_KEYS = {
|
|
|
54
54
|
[ComponentTypeEnum.markPoint]: !0,
|
|
55
55
|
[ComponentTypeEnum.markLine]: !0,
|
|
56
56
|
[ComponentTypeEnum.markArea]: !0
|
|
57
|
+
}, MARKER_ADDITION_REMAKE_SPEC_KEYS = {
|
|
58
|
+
autoRange: !0,
|
|
59
|
+
regionId: !0,
|
|
60
|
+
regionIndex: !0,
|
|
61
|
+
seriesId: !0,
|
|
62
|
+
seriesIndex: !0,
|
|
63
|
+
relativeSeriesId: !0,
|
|
64
|
+
relativeSeriesIndex: !0,
|
|
65
|
+
startRelativeSeriesId: !0,
|
|
66
|
+
startRelativeSeriesIndex: !0,
|
|
67
|
+
endRelativeSeriesId: !0,
|
|
68
|
+
endRelativeSeriesIndex: !0,
|
|
69
|
+
specifiedDataSeriesId: !0,
|
|
70
|
+
specifiedDataSeriesIndex: !0
|
|
57
71
|
};
|
|
58
72
|
|
|
59
73
|
export class BaseChart extends CompilableBase {
|
|
@@ -142,6 +156,7 @@ export class BaseChart extends CompilableBase {
|
|
|
142
156
|
const component = this._components.find((s => s.userId === userId));
|
|
143
157
|
if (component) return component;
|
|
144
158
|
}, this.getComponentsByType = type => this._components.filter((c => c.type === type)),
|
|
159
|
+
this._isMarkerAdditionSpecSafeWithoutRemake = spec => !(!spec || "object" != typeof spec || !1 === spec.visible) && !Object.keys(MARKER_ADDITION_REMAKE_SPEC_KEYS).some((key => !isNil(spec[key]))),
|
|
145
160
|
this._paddingSpec = normalizeLayoutPaddingSpec(null !== (_a = spec.padding) && void 0 !== _a ? _a : option.getTheme("padding")),
|
|
146
161
|
this._event = new Event(option.eventDispatcher, option.mode), this._dataSet = option.dataSet,
|
|
147
162
|
this._chartData = new ChartData(this._dataSet), this._modelOption = Object.assign(Object.assign({}, option), {
|
|
@@ -459,7 +474,7 @@ export class BaseChart extends CompilableBase {
|
|
|
459
474
|
return Object.keys(spec).filter((key => !ignoreKeys[key])).sort();
|
|
460
475
|
}
|
|
461
476
|
updateSpec(spec) {
|
|
462
|
-
var _a;
|
|
477
|
+
var _a, _b;
|
|
463
478
|
const result = {
|
|
464
479
|
change: !1,
|
|
465
480
|
reMake: !1,
|
|
@@ -474,7 +489,7 @@ export class BaseChart extends CompilableBase {
|
|
|
474
489
|
result;
|
|
475
490
|
for (let i = 0; i < currentKeys.length; i++) {
|
|
476
491
|
const key = currentKeys[i], currentSpec = this._spec[key], nextSpec = spec[key];
|
|
477
|
-
if (isArray(currentSpec) && currentSpec.length !== array(nextSpec).length && !this.
|
|
492
|
+
if (isArray(currentSpec) && currentSpec.length !== array(nextSpec).length && !this._canChangeMarkerComponentsWithoutRemake(key, currentSpec, nextSpec)) return result.reMake = !0,
|
|
478
493
|
this.setLayoutTag(!0, null, !1), result;
|
|
479
494
|
}
|
|
480
495
|
const oldSpec = this._spec, onlyMarkerComponentsRemoved = this._isOnlyMarkerComponentsRemoved(this._spec, spec, currentKeys), onlyComponentSpecsChanged = this._isOnlyComponentSpecsChanged(this._spec, spec, currentKeys), onlySeriesSpecsChanged = this._isOnlySeriesSpecsChanged(this._spec, spec, currentKeys);
|
|
@@ -487,12 +502,14 @@ export class BaseChart extends CompilableBase {
|
|
|
487
502
|
if (this.updateRegionSpec(result), result.reMake) return this.setLayoutTag(!0, null, !1),
|
|
488
503
|
result;
|
|
489
504
|
const componentUpdateResult = this.updateComponentSpec(result);
|
|
490
|
-
return result.reMake ? (this.setLayoutTag(!0, null, !1), result) :
|
|
505
|
+
return result.reMake ? (this.setLayoutTag(!0, null, !1), result) : (!onlyComponentSpecsChanged && (null === (_a = result.effects) || void 0 === _a ? void 0 : _a.localOnly) && delete result.effects.localOnly,
|
|
506
|
+
isUpdateSpecResultLocalOnly(result) ? result : onlyComponentSpecsChanged && !componentUpdateResult.hasNonComponentOnlyUpdate && (isUpdateSpecResultComponentOnly(result) || this._isComponentScaleDomainOnlyUpdate(result)) ? (componentUpdateResult.componentOnlyUpdatedComponents.forEach((component => {
|
|
491
507
|
component.reInit(component.getSpec());
|
|
492
|
-
})), (null === (
|
|
508
|
+
})), (null === (_b = result.effects) || void 0 === _b ? void 0 : _b.layout) && this.setLayoutTag(!0, null, !1),
|
|
493
509
|
result) : (this.setLayoutTag(!0, null, !1), this.updateSeriesSpec(result), result.reMake || (this.reInit(),
|
|
494
510
|
onlySeriesSpecsChanged && this._canSkipChartDataStages(result) || (this.updateDataSpec(),
|
|
495
|
-
this.
|
|
511
|
+
this.reDataFlow(), this._reRunStackDataFlow(), this.getAllModels().forEach((model => model.onDataUpdate())))),
|
|
512
|
+
result));
|
|
496
513
|
}
|
|
497
514
|
updateChartConfig(result, oldSpec) {
|
|
498
515
|
var _a, _b;
|
|
@@ -535,7 +552,7 @@ export class BaseChart extends CompilableBase {
|
|
|
535
552
|
isUpdateSpecResultComponentOnly(componentResult) || this._isComponentScaleDomainOnlyUpdate(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, cmpSpec) || (hasNonComponentOnlyUpdate = !0),
|
|
536
553
|
mergeUpdateResult(result, componentResult);
|
|
537
554
|
}
|
|
538
|
-
}));
|
|
555
|
+
})), result.reMake || this._createMissingMarkerComponentsForSpecs(result, componentCache);
|
|
539
556
|
for (const key in componentCache) if (Object.prototype.hasOwnProperty.call(componentCache, key)) {
|
|
540
557
|
const element = componentCache[key];
|
|
541
558
|
element.componentCount !== element.specCount && (result.reMake = !0);
|
|
@@ -557,6 +574,12 @@ export class BaseChart extends CompilableBase {
|
|
|
557
574
|
hasNonComponentOnlyUpdate: hasNonComponentOnlyUpdate
|
|
558
575
|
};
|
|
559
576
|
}
|
|
577
|
+
_canChangeMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
|
|
578
|
+
return this._canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) || this._canAddMarkerComponentsWithoutRemake(key, currentSpec, nextSpec);
|
|
579
|
+
}
|
|
580
|
+
_canAddMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
|
|
581
|
+
return !!(MARKER_COMPONENT_SPEC_KEYS[key] && isArray(currentSpec) && isArray(nextSpec)) && (!(nextSpec.length <= currentSpec.length) && nextSpec.slice(currentSpec.length).every(this._isMarkerAdditionSpecSafeWithoutRemake));
|
|
582
|
+
}
|
|
560
583
|
_canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
|
|
561
584
|
return MARKER_COMPONENT_SPEC_KEYS[key] && isArray(currentSpec) && currentSpec.length > 0 && isArray(nextSpec) && 0 === nextSpec.length;
|
|
562
585
|
}
|
|
@@ -567,7 +590,7 @@ export class BaseChart extends CompilableBase {
|
|
|
567
590
|
return hasMarkerRemoval && onlyMarkerRemoval;
|
|
568
591
|
}
|
|
569
592
|
_isComponentSpecKey(key) {
|
|
570
|
-
return this._components.some((component => (component.specKey || component.type) === key));
|
|
593
|
+
return !!MARKER_COMPONENT_SPEC_KEYS[key] || this._components.some((component => (component.specKey || component.type) === key));
|
|
571
594
|
}
|
|
572
595
|
_isOnlyComponentSpecsChanged(currentSpec, nextSpec, specKeys) {
|
|
573
596
|
let hasComponentSpecChange = !1;
|
|
@@ -590,6 +613,39 @@ export class BaseChart extends CompilableBase {
|
|
|
590
613
|
const effects = result.effects;
|
|
591
614
|
return !(!(null == effects ? void 0 : effects.component) || !effects.scaleDomain || result.reMake || result.reCompile || result.reSize || effects.remake || effects.compile || effects.data || effects.series || effects.animation || result.reTransformSpec || result.reAnimate || result.changeTheme || result.changeBackground);
|
|
592
615
|
}
|
|
616
|
+
_reRunStackDataFlow() {
|
|
617
|
+
var _a, _b;
|
|
618
|
+
this._series.some((series => {
|
|
619
|
+
var _a;
|
|
620
|
+
return null === (_a = series.getStack) || void 0 === _a ? void 0 : _a.call(series);
|
|
621
|
+
})) && (null === (_b = null === (_a = this._stack) || void 0 === _a ? void 0 : _a.stackAll) || void 0 === _b || _b.call(_a),
|
|
622
|
+
this._series.forEach((series => {
|
|
623
|
+
series.getViewDataFilter() && series.reTransformViewData();
|
|
624
|
+
})));
|
|
625
|
+
}
|
|
626
|
+
_getModelSpecIndex(specInfo) {
|
|
627
|
+
var _a;
|
|
628
|
+
const specPath = null !== (_a = specInfo.specPath) && void 0 !== _a ? _a : [], specIndex = specPath[specPath.length - 1];
|
|
629
|
+
return "number" == typeof specIndex ? specIndex : 0;
|
|
630
|
+
}
|
|
631
|
+
_hasComponentForSpecInfo(key, specInfo) {
|
|
632
|
+
const specIndex = this._getModelSpecIndex(specInfo);
|
|
633
|
+
return this._components.some((component => (component.specKey || component.type) === key && component.getSpecIndex() === specIndex));
|
|
634
|
+
}
|
|
635
|
+
_createMissingMarkerComponentsForSpecs(result, componentCache) {
|
|
636
|
+
var _a;
|
|
637
|
+
let createdCount = 0;
|
|
638
|
+
null === (_a = this._specTransformer) || void 0 === _a || _a.forEachComponentInSpec(this._spec, ((constructor, specInfo) => {
|
|
639
|
+
if (result.reMake) return;
|
|
640
|
+
const compSpecKey = constructor.specKey || constructor.type;
|
|
641
|
+
MARKER_COMPONENT_SPEC_KEYS[compSpecKey] && !this._hasComponentForSpecInfo(compSpecKey, specInfo) && (this._isMarkerAdditionSpecSafeWithoutRemake(specInfo.spec) ? (this._createComponent(constructor, specInfo),
|
|
642
|
+
componentCache[compSpecKey] && componentCache[compSpecKey].componentCount++, createdCount++) : result.reMake = !0);
|
|
643
|
+
}), this._option.getSpecInfo()), createdCount && (result.change = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
|
|
644
|
+
component: !0,
|
|
645
|
+
layout: !0,
|
|
646
|
+
render: !0
|
|
647
|
+
}));
|
|
648
|
+
}
|
|
593
649
|
_removeMarkerComponentsForEmptySpecs(result) {
|
|
594
650
|
const removedComponents = this._components.filter((component => {
|
|
595
651
|
var _a;
|