@visactor/vchart 1.11.2-alpha.3 → 1.11.2-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +68 -37
  3. package/build/index.js +68 -37
  4. package/build/index.min.js +1 -1
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/bar/bar-transformer.js +5 -7
  7. package/cjs/chart/bar/bar-transformer.js.map +1 -1
  8. package/cjs/chart/base/base-chart-transformer.d.ts +7 -0
  9. package/cjs/chart/base/base-chart-transformer.js +11 -0
  10. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  11. package/cjs/chart/common/common-transformer.d.ts +1 -0
  12. package/cjs/chart/common/common-transformer.js +26 -1
  13. package/cjs/chart/common/common-transformer.js.map +1 -1
  14. package/cjs/chart/common/interface.d.ts +3 -0
  15. package/cjs/chart/common/interface.js.map +1 -1
  16. package/cjs/compile/grammar-item.js +1 -2
  17. package/cjs/component/marker/mark-line/cartesian-mark-line.js +5 -8
  18. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  19. package/cjs/component/util.js +2 -1
  20. package/cjs/core/index.d.ts +1 -1
  21. package/cjs/core/index.js +1 -1
  22. package/cjs/core/index.js.map +1 -1
  23. package/esm/chart/bar/bar-transformer.js +6 -7
  24. package/esm/chart/bar/bar-transformer.js.map +1 -1
  25. package/esm/chart/base/base-chart-transformer.d.ts +7 -0
  26. package/esm/chart/base/base-chart-transformer.js +11 -1
  27. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  28. package/esm/chart/common/common-transformer.d.ts +1 -0
  29. package/esm/chart/common/common-transformer.js +27 -2
  30. package/esm/chart/common/common-transformer.js.map +1 -1
  31. package/esm/chart/common/interface.d.ts +3 -0
  32. package/esm/chart/common/interface.js.map +1 -1
  33. package/esm/compile/grammar-item.js +1 -2
  34. package/esm/component/marker/mark-line/cartesian-mark-line.js +6 -9
  35. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  36. package/esm/component/util.js +2 -1
  37. package/esm/core/index.d.ts +1 -1
  38. package/esm/core/index.js +1 -1
  39. package/esm/core/index.js.map +1 -1
  40. package/package.json +4 -4
@@ -29,13 +29,11 @@ class BarChartSpecTransformer extends cartesian_1.CartesianChartSpecTransformer
29
29
  const isHorizontal = spec.series.some((series => "horizontal" === series.direction)), bandAxis = null !== (_a = spec.axes.find((axis => "band" === axis.type))) && void 0 !== _a ? _a : spec.axes.find((axis => (isHorizontal ? [ "left", "right" ] : [ "top", "bottom" ]).includes(axis.orient)));
30
30
  if (bandAxis && !bandAxis.bandSize && !bandAxis.maxBandSize && !bandAxis.minBandSize && spec.autoBandSize) {
31
31
  const extend = (0, vutils_1.isObject)(spec.autoBandSize) && null !== (_b = spec.autoBandSize.extend) && void 0 !== _b ? _b : 0, {barMaxWidth: barMaxWidth, barMinWidth: barMinWidth, barWidth: barWidth, barGapInGroup: barGapInGroup} = spec.series.find((series => "bar" === series.type));
32
- let hasBarWidth = !1;
33
- (0, vutils_1.isNumber)(barMinWidth) ? (bandAxis.minBandSize = barMinWidth, hasBarWidth = !0) : (0,
34
- vutils_1.isNumber)(barWidth) ? (bandAxis.minBandSize = barWidth, hasBarWidth = !0) : (0,
35
- vutils_1.isNumber)(barMaxWidth) && (bandAxis.minBandSize = barMaxWidth, hasBarWidth = !0),
36
- hasBarWidth && (bandAxis.bandSizeLevel = Number.MAX_VALUE, bandAxis.bandSizeExtend = {
37
- extend: extend,
38
- gap: (0, vutils_1.isArray)(barGapInGroup) ? barGapInGroup[barGapInGroup.length - 1] : barGapInGroup
32
+ this._applyAxisBandSize(bandAxis, extend, {
33
+ barMaxWidth: barMaxWidth,
34
+ barMinWidth: barMinWidth,
35
+ barWidth: barWidth,
36
+ barGapInGroup: barGapInGroup
39
37
  });
40
38
  }
41
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/bar/bar-transformer.ts"],"names":[],"mappings":"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","file":"bar-transformer.js","sourcesContent":["import { isArray, isNumber, isObject } from '@visactor/vutils';\nimport type { IBarSeriesSpec } from '../../series';\nimport { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IBarChartSpec } from './interface';\nimport type { ICartesianBandAxisSpec } from '../../component';\n\nexport class BarChartSpecTransformer<T extends IBarChartSpec = IBarChartSpec> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n return {\n ...super._getDefaultSeriesSpec(spec),\n barWidth: spec.barWidth,\n barMaxWidth: spec.barMaxWidth,\n barMinWidth: spec.barMinWidth,\n barGapInGroup: spec.barGapInGroup,\n barMinHeight: spec.barMinHeight,\n sampling: spec.sampling,\n samplingFactor: spec.samplingFactor,\n barBackground: spec.barBackground,\n stackCornerRadius: spec.stackCornerRadius\n } as IBarSeriesSpec;\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n\n protected _transformAxisSpec(spec: T) {\n super._transformAxisSpec(spec);\n if (!spec.axes) {\n return;\n }\n const isHorizontal = spec.series.some(series => series.direction === 'horizontal');\n const bandAxis: ICartesianBandAxisSpec =\n spec.axes.find(axis => axis.type === 'band') ??\n spec.axes.find(axis => (isHorizontal ? ['left', 'right'] : ['top', 'bottom']).includes(axis.orient));\n if (bandAxis && !bandAxis.bandSize && !bandAxis.maxBandSize && !bandAxis.minBandSize) {\n // 将 autoBandSize 应用在轴上\n if (!!spec.autoBandSize) {\n const extend = isObject(spec.autoBandSize) ? spec.autoBandSize.extend ?? 0 : 0;\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = spec.series.find(\n series => series.type === 'bar'\n ) as IBarSeriesSpec;\n\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n bandAxis.minBandSize = barMinWidth;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n bandAxis.minBandSize = barWidth;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n bandAxis.minBandSize = barMaxWidth;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n bandAxis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n bandAxis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[barGapInGroup.length - 1] : barGapInGroup\n };\n }\n }\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/bar/bar-transformer.ts"],"names":[],"mappings":";;;AAAA,6CAA+D;AAE/D,4CAA6D;AAC7D,kCAA+D;AAI/D,MAAa,uBAAiE,SAAQ,yCAAgC;IAC1G,qBAAqB,CAAC,IAAO;QACrC,OAAO,gCACF,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GACxB,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,IAAO;QACnB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAA,2CAAoC,EAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAES,kBAAkB,CAAC,IAAO;;QAClC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;QACnF,MAAM,QAAQ,GACZ,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,mCAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACvG,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAEpF,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;gBACvB,MAAM,MAAM,GAAG,IAAA,iBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,YAAY,CAAC,MAAM,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/E,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAC5E,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CACd,CAAC;gBACpB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;aAClG;SACF;IACH,CAAC;CACF;AAzCD,0DAyCC","file":"bar-transformer.js","sourcesContent":["import { isArray, isNumber, isObject } from '@visactor/vutils';\nimport type { IBarSeriesSpec } from '../../series';\nimport { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IBarChartSpec } from './interface';\nimport type { ICartesianBandAxisSpec } from '../../component';\n\nexport class BarChartSpecTransformer<T extends IBarChartSpec = IBarChartSpec> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n return {\n ...super._getDefaultSeriesSpec(spec),\n barWidth: spec.barWidth,\n barMaxWidth: spec.barMaxWidth,\n barMinWidth: spec.barMinWidth,\n barGapInGroup: spec.barGapInGroup,\n barMinHeight: spec.barMinHeight,\n sampling: spec.sampling,\n samplingFactor: spec.samplingFactor,\n barBackground: spec.barBackground,\n stackCornerRadius: spec.stackCornerRadius\n } as IBarSeriesSpec;\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n\n protected _transformAxisSpec(spec: T) {\n super._transformAxisSpec(spec);\n if (!spec.axes) {\n return;\n }\n const isHorizontal = spec.series.some(series => series.direction === 'horizontal');\n const bandAxis: ICartesianBandAxisSpec =\n spec.axes.find(axis => axis.type === 'band') ??\n spec.axes.find(axis => (isHorizontal ? ['left', 'right'] : ['top', 'bottom']).includes(axis.orient));\n if (bandAxis && !bandAxis.bandSize && !bandAxis.maxBandSize && !bandAxis.minBandSize) {\n // 将 autoBandSize 应用在轴上\n if (!!spec.autoBandSize) {\n const extend = isObject(spec.autoBandSize) ? spec.autoBandSize.extend ?? 0 : 0;\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = spec.series.find(\n series => series.type === 'bar'\n ) as IBarSeriesSpec;\n this._applyAxisBandSize(bandAxis, extend, { barMaxWidth, barMinWidth, barWidth, barGapInGroup });\n }\n }\n }\n}\n"]}
@@ -4,6 +4,7 @@ import type { IModelConstructor, IModelSpecInfo } from '../../model/interface';
4
4
  import type { IRegionConstructor } from '../../region/interface';
5
5
  import type { ISeriesConstructor } from '../../series';
6
6
  import type { IComponentConstructor } from '../../component/interface/common';
7
+ import type { ICartesianBandAxisSpec } from '../..//component/axis/cartesian/interface';
7
8
  export declare class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {
8
9
  readonly type: string;
9
10
  readonly seriesType: string;
@@ -19,4 +20,10 @@ export declare class BaseChartSpecTransformer<T extends IChartSpec> implements I
19
20
  forEachSeriesInSpec<K>(chartSpec: T, callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K, chartSpecInfo?: IChartSpecInfo): K[];
20
21
  forEachComponentInSpec<K>(chartSpec: T, callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K, chartSpecInfo?: IChartSpecInfo): K[];
21
22
  transformSeriesSpec(spec: T): void;
23
+ protected _applyAxisBandSize(axis: ICartesianBandAxisSpec, extend: number, barWidthSpec: {
24
+ barMaxWidth: number | string;
25
+ barMinWidth: number | string;
26
+ barWidth: number | string;
27
+ barGapInGroup: number | string | (number | string)[];
28
+ }): void;
22
29
  }
@@ -160,6 +160,17 @@ class BaseChartSpecTransformer {
160
160
  }));
161
161
  })) : spec.series = [ defaultSeriesSpec ];
162
162
  }
163
+ _applyAxisBandSize(axis, extend, barWidthSpec) {
164
+ const {barMaxWidth: barMaxWidth, barMinWidth: barMinWidth, barWidth: barWidth, barGapInGroup: barGapInGroup} = barWidthSpec;
165
+ let hasBarWidth = !1;
166
+ (0, vutils_1.isNumber)(barMinWidth) ? (axis.minBandSize = barMinWidth, hasBarWidth = !0) : (0,
167
+ vutils_1.isNumber)(barWidth) ? (axis.minBandSize = barWidth, hasBarWidth = !0) : (0,
168
+ vutils_1.isNumber)(barMaxWidth) && (axis.minBandSize = barMaxWidth, hasBarWidth = !0),
169
+ hasBarWidth && (axis.bandSizeLevel = Number.MAX_VALUE, axis.bandSizeExtend = {
170
+ extend: extend,
171
+ gap: (0, vutils_1.isArray)(barGapInGroup) ? barGapInGroup[barGapInGroup.length - 1] : barGapInGroup
172
+ });
173
+ }
163
174
  }
164
175
 
165
176
  exports.BaseChartSpecTransformer = BaseChartSpecTransformer;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { has, isValid } from '@visactor/vutils';\nimport type { IChartSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor, RegionSpec } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (chartSpec.tooltip === undefined) {\n chartSpec.tooltip = {};\n }\n // 堆积逆序\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse);\n });\n }\n // 堆积排序\n if (isValid(chartSpec.stackSort)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackSort) && (r.stackSort = chartSpec.stackSort);\n });\n }\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n const transform = (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n setProperty(chartSpec, specPath, transformResult.spec);\n setProperty(chartSpecInfo, specInfoPath ?? specPath, {\n ...specInfo,\n ...transformResult\n });\n };\n return this.createSpecInfo(chartSpec, transform);\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n setProperty(chartSpecInfo, specInfoPath ?? specPath, {\n ...specInfo,\n theme: transformer.getTheme(spec, chartSpec)\n });\n };\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n /* 预处理 region */\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n\n /* 预处理 series */\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const relatedRegion =\n getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n const region = relatedRegion[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n\n /* 预处理 component */\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const relatedRegion =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n componentSpecInfo.regionIndexes = relatedRegion.map(region => region.regionIndexes[0]);\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any) {\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.animation,\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.().animationThreshold,\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as RegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let tooltip: IComponentConstructor;\n const otherComponents = [];\n\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || chartSpec[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.tooltip) {\n tooltip = cmp;\n } else {\n otherComponents.push(cmp);\n }\n }\n }\n\n // NOTE: 坐标轴组件需要在其他组件之前创建\n let hasInitAxis = false;\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n otherComponents.forEach(C => {\n C.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n });\n });\n\n // NOTE: tooltip 组件需要在 crosshair 组件之后创建\n tooltip?.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(tooltip, info, chartSpecInfo));\n });\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n s[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { isArray, isNumber, isValid } from '@visactor/vutils';\nimport type { IChartSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor, RegionSpec } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\nimport type { ICartesianBandAxisSpec } from '../..//component/axis/cartesian/interface';\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (chartSpec.tooltip === undefined) {\n chartSpec.tooltip = {};\n }\n // 堆积逆序\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse);\n });\n }\n // 堆积排序\n if (isValid(chartSpec.stackSort)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackSort) && (r.stackSort = chartSpec.stackSort);\n });\n }\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n const transform = (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n setProperty(chartSpec, specPath, transformResult.spec);\n setProperty(chartSpecInfo, specInfoPath ?? specPath, {\n ...specInfo,\n ...transformResult\n });\n };\n return this.createSpecInfo(chartSpec, transform);\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n setProperty(chartSpecInfo, specInfoPath ?? specPath, {\n ...specInfo,\n theme: transformer.getTheme(spec, chartSpec)\n });\n };\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n /* 预处理 region */\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n\n /* 预处理 series */\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const relatedRegion =\n getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n const region = relatedRegion[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n\n /* 预处理 component */\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const relatedRegion =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n componentSpecInfo.regionIndexes = relatedRegion.map(region => region.regionIndexes[0]);\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any) {\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.animation,\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.().animationThreshold,\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as RegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let tooltip: IComponentConstructor;\n const otherComponents = [];\n\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || chartSpec[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.tooltip) {\n tooltip = cmp;\n } else {\n otherComponents.push(cmp);\n }\n }\n }\n\n // NOTE: 坐标轴组件需要在其他组件之前创建\n let hasInitAxis = false;\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n otherComponents.forEach(C => {\n C.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n });\n });\n\n // NOTE: tooltip 组件需要在 crosshair 组件之后创建\n tooltip?.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(tooltip, info, chartSpecInfo));\n });\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n s[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n\n /**\n * @description bar chart 和 common chart支持autoBandsize, 此方法用于识别barWidth配置后应用到轴上\n * */\n protected _applyAxisBandSize(\n axis: ICartesianBandAxisSpec,\n extend: number,\n barWidthSpec: {\n barMaxWidth: number | string;\n barMinWidth: number | string;\n barWidth: number | string;\n barGapInGroup: number | string | (number | string)[];\n }\n ) {\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = barWidthSpec;\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n axis.minBandSize = barMinWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n axis.minBandSize = barWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n axis.minBandSize = barMaxWidth as number;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n axis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n axis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[(barGapInGroup as any[]).length - 1] : barGapInGroup\n };\n }\n }\n}\n"]}
@@ -3,5 +3,6 @@ import { BaseChartSpecTransformer } from '../base';
3
3
  import type { ICommonChartSpec } from './interface';
4
4
  export declare class CommonChartSpecTransformer<T extends ICommonChartSpec = ICommonChartSpec> extends BaseChartSpecTransformer<AdaptiveSpec<T, 'series'>> {
5
5
  protected _getDefaultSeriesSpec(spec: AdaptiveSpec<T, 'series'>): any;
6
+ protected _transformAxisSpec(spec: AdaptiveSpec<T, 'series'>): void;
6
7
  transformSpec(spec: AdaptiveSpec<T, 'series'>): void;
7
8
  }
@@ -11,6 +11,31 @@ class CommonChartSpecTransformer extends base_1.BaseChartSpecTransformer {
11
11
  const defaultSpec = super._getDefaultSeriesSpec(spec);
12
12
  return delete defaultSpec.data, defaultSpec;
13
13
  }
14
+ _transformAxisSpec(spec) {
15
+ spec.axes && spec.autoBandSize && spec.series.forEach(((series, seriesIndex) => {
16
+ var _a;
17
+ if ("bar" === series.type) {
18
+ const matchOrient = "horizontal" === series.direction ? [ "left", "right" ] : [ "top", "bottom" ], relatedAxis = spec.axes.find((axis => {
19
+ if (!matchOrient.includes(axis.orient)) return !1;
20
+ if ((0, util_1.isValid)(axis.seriesId)) {
21
+ if ((0, util_1.array)(axis.seriesId).includes(null == series ? void 0 : series.id)) return !0;
22
+ } else if ((0, util_1.isValid)(axis.seriesIndex)) {
23
+ if ((0, util_1.array)(axis.seriesIndex).includes(seriesIndex)) return !0;
24
+ } else if ("band" === axis.type) return !0;
25
+ return !0;
26
+ }));
27
+ if (relatedAxis && !relatedAxis.bandSize && !relatedAxis.maxBandSize && !relatedAxis.minBandSize) {
28
+ const extend = (0, util_1.isObject)(series.autoBandSize) && null !== (_a = series.autoBandSize.extend) && void 0 !== _a ? _a : 0, {barMaxWidth: barMaxWidth, barMinWidth: barMinWidth, barWidth: barWidth, barGapInGroup: barGapInGroup} = series;
29
+ this._applyAxisBandSize(relatedAxis, extend, {
30
+ barMaxWidth: barMaxWidth,
31
+ barMinWidth: barMinWidth,
32
+ barWidth: barWidth,
33
+ barGapInGroup: barGapInGroup
34
+ });
35
+ }
36
+ }
37
+ }));
38
+ }
14
39
  transformSpec(spec) {
15
40
  if (super.transformSpec(spec), spec.series && spec.series.length) {
16
41
  const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);
@@ -23,7 +48,7 @@ class CommonChartSpecTransformer extends base_1.BaseChartSpecTransformer {
23
48
  spec.axes && spec.axes.length && spec.axes.forEach((axis => {
24
49
  (0, util_1.get)(axis, "trimPadding") && (0, vutils_extension_1.mergeSpec)(axis, (0,
25
50
  util_2.getTrimPaddingConfig)(this.type, spec));
26
- }));
51
+ })), this._transformAxisSpec(spec);
27
52
  }
28
53
  }
29
54
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/common/common-transformer.ts"],"names":[],"mappings":";;;AACA,qCAAiC;AACjC,kCAAmD;AACnD,kCAA+C;AAE/C,iEAAuD;AAEvD,MAAa,0BAA0E,SAAQ,+BAE9F;IACW,qBAAqB,CAAC,IAA+B;QAC7D,MAAM,WAAW,GAAG,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEtD,OAAO,WAAW,CAAC,IAAI,CAAC;QACxB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,IAA+B;QAC3C,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAc,EAAE,EAAE;gBACrC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAChC,OAAO;iBACR;gBACD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;wBACb,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;qBAC7B;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;gBAC9B,IAAI,IAAA,UAAG,EAAC,IAAI,EAAE,aAAa,CAAC,EAAE;oBAC5B,IAAA,4BAAS,EAAC,IAAI,EAAE,IAAA,2BAAoB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;iBACxD;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AAjCD,gEAiCC","file":"common-transformer.js","sourcesContent":["import type { AdaptiveSpec, ISeriesSpec } from '../../typings';\nimport { get } from '../../util';\nimport { BaseChartSpecTransformer } from '../base';\nimport { getTrimPaddingConfig } from '../util';\nimport type { ICommonChartSpec } from './interface';\nimport { mergeSpec } from '@visactor/vutils-extension';\n\nexport class CommonChartSpecTransformer<T extends ICommonChartSpec = ICommonChartSpec> extends BaseChartSpecTransformer<\n AdaptiveSpec<T, 'series'>\n> {\n protected _getDefaultSeriesSpec(spec: AdaptiveSpec<T, 'series'>) {\n const defaultSpec = super._getDefaultSeriesSpec(spec);\n // 组合图系列的默认配置由系列自身配置 data/dataIndex/dataId 决定,无需默认配置\n delete defaultSpec.data;\n return defaultSpec;\n }\n\n transformSpec(spec: AdaptiveSpec<T, 'series'>): void {\n super.transformSpec(spec);\n if (spec.series && spec.series.length) {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n spec.series.forEach((s: ISeriesSpec) => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n s[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n if (spec.axes && spec.axes.length) {\n spec.axes.forEach((axis: any) => {\n if (get(axis, 'trimPadding')) {\n mergeSpec(axis, getTrimPaddingConfig(this.type, spec));\n }\n });\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/common/common-transformer.ts"],"names":[],"mappings":"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","file":"common-transformer.js","sourcesContent":["import type { AdaptiveSpec, ISeriesSpec } from '../../typings';\nimport { array, get, isObject, isValid } from '../../util';\nimport { BaseChartSpecTransformer } from '../base';\nimport { getTrimPaddingConfig } from '../util';\nimport type { ICommonChartSpec } from './interface';\nimport { mergeSpec } from '@visactor/vutils-extension';\n\nexport class CommonChartSpecTransformer<T extends ICommonChartSpec = ICommonChartSpec> extends BaseChartSpecTransformer<\n AdaptiveSpec<T, 'series'>\n> {\n protected _getDefaultSeriesSpec(spec: AdaptiveSpec<T, 'series'>) {\n const defaultSpec = super._getDefaultSeriesSpec(spec);\n // 组合图系列的默认配置由系列自身配置 data/dataIndex/dataId 决定,无需默认配置\n delete defaultSpec.data;\n return defaultSpec;\n }\n\n // common chart 支持 autoBandSize 配置\n protected _transformAxisSpec(spec: AdaptiveSpec<T, 'series'>) {\n if (!spec.axes) {\n return;\n }\n if (!!spec.autoBandSize) {\n // 遍历series\n // 1. 找到bar系列\n // 2. 如果bar系列配置了autoBandSize\n // 3. 找到bar系列对应的axis\n // 4. 为该axis配置bandSize\n spec.series.forEach((series: any, seriesIndex: number) => {\n if (series.type === 'bar') {\n const isHorizontal = series.direction === 'horizontal';\n const matchOrient = isHorizontal ? ['left', 'right'] : ['top', 'bottom'];\n const relatedAxis: any = (spec.axes as any).find((axis: any) => {\n if (!matchOrient.includes(axis.orient)) {\n // orient必须匹配\n return false;\n }\n if (isValid(axis.seriesId)) {\n // 1. 通过seriesId绑定\n if (array(axis.seriesId).includes(series?.id)) {\n return true;\n }\n } else if (isValid(axis.seriesIndex)) {\n // 2. 通过seriesIndex绑定\n if (array(axis.seriesIndex).includes(seriesIndex)) {\n return true;\n }\n } else if (axis.type === 'band') {\n // 3. 通过axis type识别\n return true;\n }\n // 4. 剩下的情况满足axis orient要求\n return true;\n });\n if (relatedAxis && !relatedAxis.bandSize && !relatedAxis.maxBandSize && !relatedAxis.minBandSize) {\n const extend = isObject(series.autoBandSize) ? series.autoBandSize.extend ?? 0 : 0;\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = series;\n this._applyAxisBandSize(relatedAxis, extend, { barMaxWidth, barMinWidth, barWidth, barGapInGroup });\n }\n }\n });\n }\n }\n\n transformSpec(spec: AdaptiveSpec<T, 'series'>): void {\n super.transformSpec(spec);\n if (spec.series && spec.series.length) {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n spec.series.forEach((s: ISeriesSpec) => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n s[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n if (spec.axes && spec.axes.length) {\n spec.axes.forEach((axis: any) => {\n if (get(axis, 'trimPadding')) {\n mergeSpec(axis, getTrimPaddingConfig(this.type, spec));\n }\n });\n }\n this._transformAxisSpec(spec);\n }\n}\n"]}
@@ -38,4 +38,7 @@ export interface ICommonChartSpec extends Omit<IChartSpec, 'series'> {
38
38
  markLine?: IMarkLineSpec | IMarkLineSpec[];
39
39
  markArea?: IMarkAreaSpec | IMarkAreaSpec[];
40
40
  markPoint?: IMarkPointSpec | IMarkPointSpec[];
41
+ autoBandSize?: boolean | {
42
+ extend: number;
43
+ };
41
44
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/common/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ILineSeriesSpec } from '../../series/line/interface';\nimport type { IAreaSeriesSpec } from '../../series/area/interface';\nimport type { IChartSpec } from '../../typings/spec/common';\nimport type { IBar3dSeriesSpec, IBarSeriesSpec } from '../../series/bar/interface';\nimport type { IRangeColumnChartSpec } from '../range-column';\nimport type { IRangeAreaChartSpec } from '../range-area';\nimport type { IDotSeriesSpec } from '../../series/dot/interface';\nimport type { IMapSeriesSpec } from '../../series/map/interface';\nimport type { IPie3dSeriesSpec, IPieSeriesSpec } from '../../series/pie/interface';\nimport type { ILinkSeriesSpec } from '../../series/link/interface';\nimport type { IRadarSeriesSpec } from '../../series/radar/interface';\nimport type { IRoseSeriesSpec } from '../../series/rose/interface';\nimport type { IScatterSeriesSpec } from '../../series/scatter/interface';\nimport type { IWordCloud3dSeriesSpec, IWordCloudSeriesSpec } from '../../series/word-cloud/interface';\nimport type { IGaugePointerSeriesSpec, IGaugeSeriesSpec } from '../../series/gauge';\nimport type { IBoxPlotSeriesSpec } from '../../series/box-plot/interface';\nimport type { ICirclePackingSeriesSpec } from '../../series/circle-packing/interface';\nimport type { IFunnelSeriesSpec, IFunnel3dSeriesSpec } from '../../series/funnel/interface';\nimport type { IHeatmapSeriesSpec } from '../../series/heatmap/interface';\nimport type { ICircularProgressSeriesSpec } from '../../series/progress/circular/interface';\nimport type { ILinearProgressSeriesSpec } from '../../series/progress/linear/interface';\nimport type { ISankeySeriesSpec } from '../../series/sankey/interface';\nimport type { ISunburstSeriesSpec } from '../../series/sunburst/interface';\nimport type { ITreemapSeriesSpec } from '../../series/treemap/interface';\nimport type { IWaterfallSeriesSpec } from '../../series/waterfall/interface';\nimport type { ICorrelationSeriesSpec } from '../../series/correlation/interface';\nimport type { ICartesianAxisSpec, IPolarAxisSpec } from '../../component';\nimport type { ICartesianCrosshairSpec, IPolarCrosshairSpec } from '../../component/crosshair/interface';\nimport type { IMarkLineSpec } from '../../component/marker/mark-line/interface';\nimport type { IMarkAreaSpec } from '../../component/marker/mark-area/interface';\nimport type { IMarkPointSpec } from '../../component/marker/mark-point/interface';\n\nexport interface ICommonChartSpec extends Omit<IChartSpec, 'series'> {\n type: 'common';\n /**\n * 分组字段\n */\n seriesField?: string;\n series?: (\n | IAreaSeriesSpec\n | ILineSeriesSpec\n | IBar3dSeriesSpec\n | IBarSeriesSpec\n | IRangeColumnChartSpec\n | IRangeAreaChartSpec\n | IDotSeriesSpec\n | IMapSeriesSpec\n | IPie3dSeriesSpec\n | IPieSeriesSpec\n | ILinkSeriesSpec\n | IRadarSeriesSpec\n | IRoseSeriesSpec\n | IScatterSeriesSpec\n | ICircularProgressSeriesSpec\n | ILinearProgressSeriesSpec\n | IWordCloudSeriesSpec\n | IWordCloud3dSeriesSpec\n | IFunnelSeriesSpec\n | IFunnel3dSeriesSpec\n | IBoxPlotSeriesSpec\n | IGaugeSeriesSpec\n | ISankeySeriesSpec\n | ITreemapSeriesSpec\n | ISunburstSeriesSpec\n | ICirclePackingSeriesSpec\n | IWaterfallSeriesSpec\n | IHeatmapSeriesSpec\n | IGaugePointerSeriesSpec\n | ICorrelationSeriesSpec\n )[];\n /**\n * 坐标轴配置\n */\n axes?: ICartesianAxisSpec[] | IPolarAxisSpec[];\n /**\n * 十字辅助线配置\n */\n crosshair?: ICartesianCrosshairSpec | ICartesianCrosshairSpec[] | IPolarCrosshairSpec | IPolarCrosshairSpec[];\n /**\n * **仅适用于笛卡尔坐标系**,参考线配置\n */\n markLine?: IMarkLineSpec | IMarkLineSpec[];\n /**\n * **仅适用于笛卡尔坐标系**,参考区域配置\n */\n markArea?: IMarkAreaSpec | IMarkAreaSpec[];\n /**\n * **仅适用于笛卡尔坐标系**,参考点配置\n */\n markPoint?: IMarkPointSpec | IMarkPointSpec[];\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/common/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ILineSeriesSpec } from '../../series/line/interface';\nimport type { IAreaSeriesSpec } from '../../series/area/interface';\nimport type { IChartSpec } from '../../typings/spec/common';\nimport type { IBar3dSeriesSpec, IBarSeriesSpec } from '../../series/bar/interface';\nimport type { IRangeColumnChartSpec } from '../range-column';\nimport type { IRangeAreaChartSpec } from '../range-area';\nimport type { IDotSeriesSpec } from '../../series/dot/interface';\nimport type { IMapSeriesSpec } from '../../series/map/interface';\nimport type { IPie3dSeriesSpec, IPieSeriesSpec } from '../../series/pie/interface';\nimport type { ILinkSeriesSpec } from '../../series/link/interface';\nimport type { IRadarSeriesSpec } from '../../series/radar/interface';\nimport type { IRoseSeriesSpec } from '../../series/rose/interface';\nimport type { IScatterSeriesSpec } from '../../series/scatter/interface';\nimport type { IWordCloud3dSeriesSpec, IWordCloudSeriesSpec } from '../../series/word-cloud/interface';\nimport type { IGaugePointerSeriesSpec, IGaugeSeriesSpec } from '../../series/gauge';\nimport type { IBoxPlotSeriesSpec } from '../../series/box-plot/interface';\nimport type { ICirclePackingSeriesSpec } from '../../series/circle-packing/interface';\nimport type { IFunnelSeriesSpec, IFunnel3dSeriesSpec } from '../../series/funnel/interface';\nimport type { IHeatmapSeriesSpec } from '../../series/heatmap/interface';\nimport type { ICircularProgressSeriesSpec } from '../../series/progress/circular/interface';\nimport type { ILinearProgressSeriesSpec } from '../../series/progress/linear/interface';\nimport type { ISankeySeriesSpec } from '../../series/sankey/interface';\nimport type { ISunburstSeriesSpec } from '../../series/sunburst/interface';\nimport type { ITreemapSeriesSpec } from '../../series/treemap/interface';\nimport type { IWaterfallSeriesSpec } from '../../series/waterfall/interface';\nimport type { ICorrelationSeriesSpec } from '../../series/correlation/interface';\nimport type { ICartesianAxisSpec, IPolarAxisSpec } from '../../component';\nimport type { ICartesianCrosshairSpec, IPolarCrosshairSpec } from '../../component/crosshair/interface';\nimport type { IMarkLineSpec } from '../../component/marker/mark-line/interface';\nimport type { IMarkAreaSpec } from '../../component/marker/mark-area/interface';\nimport type { IMarkPointSpec } from '../../component/marker/mark-point/interface';\n\nexport interface ICommonChartSpec extends Omit<IChartSpec, 'series'> {\n type: 'common';\n /**\n * 分组字段\n */\n seriesField?: string;\n series?: (\n | IAreaSeriesSpec\n | ILineSeriesSpec\n | IBar3dSeriesSpec\n | IBarSeriesSpec\n | IRangeColumnChartSpec\n | IRangeAreaChartSpec\n | IDotSeriesSpec\n | IMapSeriesSpec\n | IPie3dSeriesSpec\n | IPieSeriesSpec\n | ILinkSeriesSpec\n | IRadarSeriesSpec\n | IRoseSeriesSpec\n | IScatterSeriesSpec\n | ICircularProgressSeriesSpec\n | ILinearProgressSeriesSpec\n | IWordCloudSeriesSpec\n | IWordCloud3dSeriesSpec\n | IFunnelSeriesSpec\n | IFunnel3dSeriesSpec\n | IBoxPlotSeriesSpec\n | IGaugeSeriesSpec\n | ISankeySeriesSpec\n | ITreemapSeriesSpec\n | ISunburstSeriesSpec\n | ICirclePackingSeriesSpec\n | IWaterfallSeriesSpec\n | IHeatmapSeriesSpec\n | IGaugePointerSeriesSpec\n | ICorrelationSeriesSpec\n )[];\n /**\n * 坐标轴配置\n */\n axes?: ICartesianAxisSpec[] | IPolarAxisSpec[];\n /**\n * 十字辅助线配置\n */\n crosshair?: ICartesianCrosshairSpec | ICartesianCrosshairSpec[] | IPolarCrosshairSpec | IPolarCrosshairSpec[];\n /**\n * **仅适用于笛卡尔坐标系**,参考线配置\n */\n markLine?: IMarkLineSpec | IMarkLineSpec[];\n /**\n * **仅适用于笛卡尔坐标系**,参考区域配置\n */\n markArea?: IMarkAreaSpec | IMarkAreaSpec[];\n /**\n * **仅适用于笛卡尔坐标系**,参考点配置\n */\n markPoint?: IMarkPointSpec | IMarkPointSpec[];\n\n /**\n * 是否开启自动 bandSize。如果开启,会根据传入的 barWidth 等配置自动计算 bandSize,从而影响轴实际长度\n * @since 1.11.2\n */\n autoBandSize?:\n | boolean\n | {\n /** 设置 bandSize 的在自动计算结果基础上的扩增值,单位为 px */\n extend: number;\n };\n}\n"]}
@@ -50,5 +50,4 @@ class GrammarItem extends compilable_base_1.CompilableBase {
50
50
  }
51
51
  }
52
52
 
53
- exports.GrammarItem = GrammarItem;
54
- //# sourceMappingURL=grammar-item.js.map
53
+ exports.GrammarItem = GrammarItem;
@@ -32,7 +32,7 @@ class CartesianMarkLine extends base_mark_line_1.BaseMarkLine {
32
32
  };
33
33
  }
34
34
  _markerLayout() {
35
- var _a, _b, _c, _d, _e, _f, _g, _h;
35
+ var _a, _b, _c, _d;
36
36
  const updateAttrs = this._getUpdateMarkerAttrs();
37
37
  if ("type-step" === this._spec.type) {
38
38
  const startRelativeSeries = this._startRelativeSeries, endRelativeSeries = this._endRelativeSeries, {multiSegment: multiSegment, mainSegmentIndex: mainSegmentIndex} = this._spec.line || {}, {connectDirection: connectDirection, expandDistance: expandDistance = 0} = this._spec;
@@ -61,12 +61,9 @@ class CartesianMarkLine extends base_mark_line_1.BaseMarkLine {
61
61
  }, (0, util_1.getTextOffset)(points[0], points[1], connectDirection, expandDistanceValue)), {
62
62
  refX: 0,
63
63
  refY: 0
64
- }), (0, vutils_1.isValidNumber)(null === (_a = this._spec.label) || void 0 === _a ? void 0 : _a.refX) && (labelPositionAttrs.refX += this._spec.label.refX),
65
- (0, vutils_1.isValidNumber)(null === (_b = this._spec.label) || void 0 === _b ? void 0 : _b.refY) && (labelPositionAttrs.refY += this._spec.label.refY),
66
- (0, vutils_1.isValidNumber)(null === (_c = this._spec.label) || void 0 === _c ? void 0 : _c.dx) && (labelPositionAttrs.dx = (labelPositionAttrs.dx || 0) + this._spec.label.dx),
67
- (0, vutils_1.isValidNumber)(null === (_d = this._spec.label) || void 0 === _d ? void 0 : _d.dy) && (labelPositionAttrs.dy = (labelPositionAttrs.dy || 0) + this._spec.label.dy);
68
- const markerComponentAttr = null !== (_f = null === (_e = this._markerComponent) || void 0 === _e ? void 0 : _e.attribute) && void 0 !== _f ? _f : {};
69
- null === (_g = this._markerComponent) || void 0 === _g || _g.setAttributes({
64
+ });
65
+ const markerComponentAttr = null !== (_b = null === (_a = this._markerComponent) || void 0 === _a ? void 0 : _a.attribute) && void 0 !== _b ? _b : {};
66
+ null === (_c = this._markerComponent) || void 0 === _c || _c.setAttributes({
70
67
  points: multiSegment ? [ [ joinPoints[0], joinPoints[1] ], [ joinPoints[1], joinPoints[2] ], [ joinPoints[2], joinPoints[3] ] ] : joinPoints,
71
68
  label: Object.assign(Object.assign(Object.assign({}, label), labelPositionAttrs), {
72
69
  textStyle: Object.assign(Object.assign({}, markerComponentAttr.label.textStyle), {
@@ -80,7 +77,7 @@ class CartesianMarkLine extends base_mark_line_1.BaseMarkLine {
80
77
  dx: this._layoutOffsetX,
81
78
  dy: this._layoutOffsetY
82
79
  });
83
- } else null === (_h = this._markerComponent) || void 0 === _h || _h.setAttributes(updateAttrs);
80
+ } else null === (_d = this._markerComponent) || void 0 === _d || _d.setAttributes(updateAttrs);
84
81
  }
85
82
  _computeOptions() {
86
83
  let options, processData = this._getRelativeDataView(), needAggr = !0, needRegr = !1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-line/cartesian-mark-line.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,+CAAyD;AAEzD,oCAMkB;AAClB,qEAIsC;AACtC,6CAA0D;AAG1D,iCAAwD;AACxD,mDAAgD;AAChD,wCAA0C;AAE1C,qDAAgD;AAEhD,MAAa,iBAAkB,SAAQ,6BAAY;IAAnD;;QAEE,SAAI,GAAG,wBAAiB,CAAC,QAAQ,CAAC;QAClC,SAAI,GAAW,wBAAiB,CAAC,QAAQ,CAAC;QAE1C,mBAAc,GAAG,WAAW,CAAC;IAyO/B,CAAC;IArOW,qBAAqB,CAAC,IAAmB;QACjD,OAAO,IAAI,6BAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACS,kBAAkB;;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAY,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAE5C,MAAM,kBAAkB,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,eAAe,GAAG,cAAc,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,cAAc,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,KAAK,CAAC;QAE1C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAC/F,IAAA,8BAAsB,EAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,IACE,UAAU;YACV,aAAa;YACb,UAAU;YACV,aAAa;YACb,WAAW;YACX,CAAC,kBAAkB,IAAI,eAAe,CAAC;YACvC,CAAC,kBAAkB,IAAI,eAAe,CAAC,EACvC;YACA,MAAM,QAAQ,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;YAEnG,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAa,CAAC;SAC9F;aAAM,IAAI,oBAAoB,EAAE;YAC/B,MAAM,GAAG,IAAA,iCAAyB,EAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC7F;aAAM,IAAI,gBAAgB,EAAE;YAC3B,MAAM,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC9E;QACD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAES,aAAa;;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEjD,IAAK,IAAI,CAAC,KAA2B,CAAC,IAAI,KAAK,WAAW,EAAE;YAC1D,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAElD,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAI,IAAI,CAAC,KAA2B,CAAC,IAAI,IAAI,EAAE,CAAC;YACxF,MAAM,EAAE,gBAAgB,EAAE,cAAc,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAA0B,CAAC;YAEjF,IAAI,mBAA2B,CAAC;YAChC,IAAI,IAAA,gBAAS,EAAC,cAAc,CAAC,EAAE;gBAC7B,MAAM,WAAW,GAAG,mBAAmB,CAAC,SAAS,EAAE,CAAC;gBACpD,MAAM,2BAA2B,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;gBACtE,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC;gBAChD,MAAM,yBAAyB,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC;gBAElE,IAAI,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,KAAK,KAAK,EAAE;oBAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC;wBAClE,IAAI,CAAC,GAAG,CACN,2BAA2B,CAAC,CAAC,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,MAAM,EAClE,yBAAyB,CAAC,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,MAAM,CAC/D,CACJ,CAAC;oBACF,mBAAmB,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC;iBAC7G;qBAAM;oBACL,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC;wBAClE,IAAI,CAAC,GAAG,CACN,2BAA2B,CAAC,CAAC,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,EACjE,yBAAyB,CAAC,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,CAC9D,CACJ,CAAC;oBACF,mBAAmB,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;iBAC5G;aACF;iBAAM;gBACL,mBAAmB,GAAG,cAAwB,CAAC;aAChD;YACD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;YAEjD,MAAM,UAAU,GAAG,IAAA,sBAAe,EAC/B,MAAmB,CAAC,CAAC,CAAC,EACtB,MAAmB,CAAC,CAAC,CAAC,EACvB,gBAAgB,EAChB,mBAAmB,CACpB,CAAC;YAEF,IAAI,kBAAuB,CAAC;YAC5B,IAAI,YAAY,IAAI,IAAA,gBAAO,EAAC,gBAAgB,CAAC,EAAE;gBAE7C,kBAAkB,GAAG;oBACnB,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,KAAK;oBACjB,IAAI,EAAE,CAAC;oBACP,IAAI,EAAE,CAAC;iBACR,CAAC;aACH;iBAAM;gBACL,kBAAkB,iCAChB,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,KAAK,IACd,IAAA,oBAAa,EAAE,MAAmB,CAAC,CAAC,CAAC,EAAG,MAAmB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,KACzG,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,CAAC,GACR,CAAC;aACH;YAED,IAAI,IAAA,sBAAa,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,CAAC,EAAE;gBACzC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;aAClD;YACD,IAAI,IAAA,sBAAa,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,CAAC,EAAE;gBACzC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;aAClD;YACD,IAAI,IAAA,sBAAa,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,EAAE,CAAC,EAAE;gBACvC,kBAAkB,CAAC,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;aAC5E;YACD,IAAI,IAAA,sBAAa,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,EAAE,CAAC,EAAE;gBACvC,kBAAkB,CAAC,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;aAC5E;YACD,MAAM,mBAAmB,GAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,SAAS,mCAAI,EAAE,CAAC;YACnE,MAAA,IAAI,CAAC,gBAAgB,0CAAE,aAAa,CAAC;gBACnC,MAAM,EAAE,YAAY;oBAClB,CAAC,CAAC;wBACE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;qBAC/B;oBACH,CAAC,CAAC,UAAU;gBACd,KAAK,gDACA,KAAK,GACL,kBAAkB,KACrB,SAAS,kCACJ,mBAAmB,CAAC,KAAK,CAAC,SAAS,KACtC,SAAS,EAAE,QAAQ,EACnB,YAAY,EAAE,QAAQ,MAEzB;gBACD,SAAS;gBACT,YAAY;gBACZ,gBAAgB;gBAChB,EAAE,EAAE,IAAI,CAAC,cAAc;gBACvB,EAAE,EAAE,IAAI,CAAC,cAAc;aACjB,CAAC,CAAC;SACX;aAAM;YACL,MAAA,IAAI,CAAC,gBAAgB,0CAAE,aAAa,CAAC,WAAW,CAAC,CAAC;SACnD;IACH,CAAC;IAES,eAAe;QACvB,IAAI,OAAoC,CAAC;QACzC,IAAI,WAAW,GAAa,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACxD,IAAI,QAAQ,GAAY,IAAI,CAAC;QAC7B,IAAI,QAAQ,GAAY,KAAK,CAAC;QAC9B,MAAM,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAE5C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAC/F,IAAA,8BAAsB,EAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,WAAW,EAAE;YACf,OAAO,GAAG;gBACR,IAAI,CAAC,kBAAkB,CAAC;oBACtB,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE;oBAC/B,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE;iBAChC,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC;oBACtB,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;oBAChC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;iBACjC,CAAC;aACH,CAAC;SACH;aAAM,IAAI,UAAU,EAAE;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACxE;aAAM,IAAI,UAAU,EAAE;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACxE;aAAM,IAAI,aAAa,EAAE;YACxB,OAAO,GAAG;gBACR,IAAI,CAAC,kBAAkB,CAAC;oBACtB,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE;oBAC/B,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE;iBAChC,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC;oBACtB,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE;oBAC/B,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;iBACjC,CAAC;aACH,CAAC;SACH;aAAM,IAAI,aAAa,EAAE;YACxB,OAAO,GAAG;gBACR,IAAI,CAAC,kBAAkB,CAAC;oBACtB,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE;oBAC/B,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE;iBAChC,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC;oBACtB,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;oBAChC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE;iBAChC,CAAC;aACH,CAAC;SACH;aAAM,IAAI,oBAAoB,EAAE;YAC/B,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,QAAQ,GAAG,KAAK,CAAC;YACjB,WAAW,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;iBACvF,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,EAAE;gBACrC,IAAI,EAAE,UAAU;aACjB,CAAC;iBACD,SAAS,CAAC;gBACT,IAAI,EAAE,mBAAmB;gBACzB,OAAO;aACR,CAAC,CAAC;YACL,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;gBACvC,OAAO,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAwB,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtG,QAAQ,GAAG,IAAI,CAAC;aACjB;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;gBACvC,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAwB,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChH,QAAQ,GAAG,IAAI,CAAC;aACjB;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;gBACxC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;gBACpD,OAAO,GAAG;oBACR,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,MAAM;iBACf,CAAC;gBACF,QAAQ,GAAG,IAAI,CAAC;aACjB;SACF;aAAM;YACL,QAAQ,GAAG,KAAK,CAAC;SAClB;QACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACtD,CAAC;;AA7OH,8CA8OC;AA7OQ,sBAAI,GAAG,wBAAiB,CAAC,QAAQ,CAAC;AAGlC,gCAAc,GAAG,WAAW,CAAC;AA4O/B,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,iBAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACrE,IAAA,4CAAuB,GAAE,CAAC;AAC5B,CAAC,CAAC;AAHW,QAAA,gBAAgB,oBAG3B","file":"cartesian-mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IStepMarkLineSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\nimport {\n computeClipRange,\n cartesianCoordinateLayout,\n positionLayout,\n xyLayout,\n getMarkLineProcessInfo\n} from '../utils';\nimport {\n type MarkLineAttrs,\n MarkLine as MarkLineComponent,\n registerMarkLineAnimate\n} from '@visactor/vrender-components';\nimport { isValid, isValidNumber } from '@visactor/vutils';\nimport type { IDataPos, IMarkProcessOptions } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { IPoint } from '../../../typings';\nimport { BaseMarkLine } from './base-mark-line';\n\nexport class CartesianMarkLine extends BaseMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n static coordinateType = 'cartesian';\n coordinateType = 'cartesian';\n\n protected declare _markerComponent: MarkLineComponent;\n\n protected _newMarkLineComponent(attr: MarkLineAttrs): MarkLineComponent {\n return new MarkLineComponent(attr);\n }\n protected _computePointsAttr() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n let points: IPoint[] = [];\n if (\n doXProcess ||\n doXYY1Process ||\n doYProcess ||\n doYXX1Process ||\n doXYProcess ||\n (isValidCoordinates && isValidProcessX) ||\n (isValidCoordinates && isValidProcessY)\n ) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (doCoordinatesProcess) {\n points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n return { points };\n }\n\n protected _markerLayout() {\n const updateAttrs = this._getUpdateMarkerAttrs();\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n const { points, label, limitRect } = updateAttrs;\n\n const joinPoints = getInsertPoints(\n (points as IPoint[])[0],\n (points as IPoint[])[1],\n connectDirection,\n expandDistanceValue\n );\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false,\n refX: 0,\n refY: 0\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset((points as IPoint[])[0], (points as IPoint[])[1], connectDirection, expandDistanceValue),\n refX: 0,\n refY: 0\n };\n }\n\n if (isValidNumber(this._spec.label?.refX)) {\n labelPositionAttrs.refX += this._spec.label.refX;\n }\n if (isValidNumber(this._spec.label?.refY)) {\n labelPositionAttrs.refY += this._spec.label.refY;\n }\n if (isValidNumber(this._spec.label?.dx)) {\n labelPositionAttrs.dx = (labelPositionAttrs.dx || 0) + this._spec.label.dx;\n }\n if (isValidNumber(this._spec.label?.dy)) {\n labelPositionAttrs.dy = (labelPositionAttrs.dy || 0) + this._spec.label.dy;\n }\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: {\n ...label,\n ...labelPositionAttrs,\n textStyle: {\n ...markerComponentAttr.label.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n } as any);\n } else {\n this._markerComponent?.setAttributes(updateAttrs);\n }\n }\n\n protected _computeOptions(): IMarkProcessOptions {\n let options: IOptionAggr[] | IOptionRegr;\n let processData: DataView = this._getRelativeDataView();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n const spec: any = this._spec;\n const relativeSeries = this._relativeSeries;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n if (doXYProcess) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doXProcess) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.x }])];\n } else if (doYProcess) {\n options = [this._processSpecByDims([{ dim: 'y', specValue: spec.y }])];\n } else if (doXYY1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doYXX1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y }\n ])\n ];\n } else if (doCoordinatesProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.process.x as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = options = [this._processSpecByDims([{ dim: 'y', specValue: spec.process.y as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n return { options, needAggr, needRegr, processData };\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(CartesianMarkLine.type, CartesianMarkLine);\n registerMarkLineAnimate();\n};\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-line/cartesian-mark-line.ts"],"names":[],"mappings":"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","file":"cartesian-mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IStepMarkLineSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\nimport {\n computeClipRange,\n cartesianCoordinateLayout,\n positionLayout,\n xyLayout,\n getMarkLineProcessInfo\n} from '../utils';\nimport {\n type MarkLineAttrs,\n MarkLine as MarkLineComponent,\n registerMarkLineAnimate\n} from '@visactor/vrender-components';\nimport { isValid } from '@visactor/vutils';\nimport type { IDataPos, IMarkProcessOptions } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { IPoint } from '../../../typings';\nimport { BaseMarkLine } from './base-mark-line';\n\nexport class CartesianMarkLine extends BaseMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n static coordinateType = 'cartesian';\n coordinateType = 'cartesian';\n\n protected declare _markerComponent: MarkLineComponent;\n\n protected _newMarkLineComponent(attr: MarkLineAttrs): MarkLineComponent {\n return new MarkLineComponent(attr);\n }\n protected _computePointsAttr() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n let points: IPoint[] = [];\n if (\n doXProcess ||\n doXYY1Process ||\n doYProcess ||\n doYXX1Process ||\n doXYProcess ||\n (isValidCoordinates && isValidProcessX) ||\n (isValidCoordinates && isValidProcessY)\n ) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (doCoordinatesProcess) {\n points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n return { points };\n }\n\n protected _markerLayout() {\n const updateAttrs = this._getUpdateMarkerAttrs();\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n const { points, label, limitRect } = updateAttrs;\n\n const joinPoints = getInsertPoints(\n (points as IPoint[])[0],\n (points as IPoint[])[1],\n connectDirection,\n expandDistanceValue\n );\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false,\n refX: 0,\n refY: 0\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset((points as IPoint[])[0], (points as IPoint[])[1], connectDirection, expandDistanceValue),\n refX: 0,\n refY: 0\n };\n }\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: {\n ...label,\n ...labelPositionAttrs,\n textStyle: {\n ...markerComponentAttr.label.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n } as any);\n } else {\n this._markerComponent?.setAttributes(updateAttrs);\n }\n }\n\n protected _computeOptions(): IMarkProcessOptions {\n let options: IOptionAggr[] | IOptionRegr;\n let processData: DataView = this._getRelativeDataView();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n const spec: any = this._spec;\n const relativeSeries = this._relativeSeries;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n if (doXYProcess) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doXProcess) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.x }])];\n } else if (doYProcess) {\n options = [this._processSpecByDims([{ dim: 'y', specValue: spec.y }])];\n } else if (doXYY1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doYXX1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y }\n ])\n ];\n } else if (doCoordinatesProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.process.x as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = options = [this._processSpecByDims([{ dim: 'y', specValue: spec.process.y as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n return { options, needAggr, needRegr, processData };\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(CartesianMarkLine.type, CartesianMarkLine);\n registerMarkLineAnimate();\n};\n"]}
@@ -22,4 +22,5 @@ function getFormatFunction(formatMethod, formatter, text, datum) {
22
22
  } : {};
23
23
  }
24
24
 
25
- exports.getComponentThemeFromOption = getComponentThemeFromOption, exports.getFormatFunction = getFormatFunction;
25
+ exports.getComponentThemeFromOption = getComponentThemeFromOption, exports.getFormatFunction = getFormatFunction;
26
+ //# sourceMappingURL=util.js.map
@@ -1,7 +1,7 @@
1
1
  import { VChart } from './vchart';
2
2
  import { Factory } from './factory';
3
3
  export { VChart, Factory };
4
- export declare const version = "1.11.2-alpha.3";
4
+ export declare const version = "1.11.2-alpha.5";
5
5
  export type { IVChart } from './interface';
6
6
  export type { IStateSpec, StateValueType } from '../compile/mark';
7
7
  export * from '../typings/spec/common';
package/cjs/core/index.js CHANGED
@@ -35,7 +35,7 @@ Object.defineProperty(exports, "Factory", {
35
35
  get: function() {
36
36
  return factory_1.Factory;
37
37
  }
38
- }), exports.version = "1.11.2-alpha.3", __exportStar(require("../typings/spec/common"), exports),
38
+ }), exports.version = "1.11.2-alpha.5", __exportStar(require("../typings/spec/common"), exports),
39
39
  __exportStar(require("../event/interface"), exports), __exportStar(require("../theme/interface"), exports),
40
40
  __exportStar(require("../constant"), exports), __exportStar(require("./interface"), exports),
41
41
  __exportStar(require("../typings/spec/index"), exports), __exportStar(require("../typings/tooltip"), exports),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAMxC,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAK5B,wDAAsC;AAGtC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAGhB,4CAA0B","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.11.2-alpha.3\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAMxC,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAK5B,wDAAsC;AAGtC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAGhB,4CAA0B","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.11.2-alpha.5\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
@@ -1,4 +1,4 @@
1
- import { isArray, isNumber, isObject } from "@visactor/vutils";
1
+ import { isObject } from "@visactor/vutils";
2
2
 
3
3
  import { CartesianChartSpecTransformer } from "../cartesian";
4
4
 
@@ -27,12 +27,11 @@ export class BarChartSpecTransformer extends CartesianChartSpecTransformer {
27
27
  const isHorizontal = spec.series.some((series => "horizontal" === series.direction)), bandAxis = null !== (_a = spec.axes.find((axis => "band" === axis.type))) && void 0 !== _a ? _a : spec.axes.find((axis => (isHorizontal ? [ "left", "right" ] : [ "top", "bottom" ]).includes(axis.orient)));
28
28
  if (bandAxis && !bandAxis.bandSize && !bandAxis.maxBandSize && !bandAxis.minBandSize && spec.autoBandSize) {
29
29
  const extend = isObject(spec.autoBandSize) && null !== (_b = spec.autoBandSize.extend) && void 0 !== _b ? _b : 0, {barMaxWidth: barMaxWidth, barMinWidth: barMinWidth, barWidth: barWidth, barGapInGroup: barGapInGroup} = spec.series.find((series => "bar" === series.type));
30
- let hasBarWidth = !1;
31
- isNumber(barMinWidth) ? (bandAxis.minBandSize = barMinWidth, hasBarWidth = !0) : isNumber(barWidth) ? (bandAxis.minBandSize = barWidth,
32
- hasBarWidth = !0) : isNumber(barMaxWidth) && (bandAxis.minBandSize = barMaxWidth,
33
- hasBarWidth = !0), hasBarWidth && (bandAxis.bandSizeLevel = Number.MAX_VALUE, bandAxis.bandSizeExtend = {
34
- extend: extend,
35
- gap: isArray(barGapInGroup) ? barGapInGroup[barGapInGroup.length - 1] : barGapInGroup
30
+ this._applyAxisBandSize(bandAxis, extend, {
31
+ barMaxWidth: barMaxWidth,
32
+ barMinWidth: barMinWidth,
33
+ barWidth: barWidth,
34
+ barGapInGroup: barGapInGroup
36
35
  });
37
36
  }
38
37
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/bar/bar-transformer.ts"],"names":[],"mappings":"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","file":"bar-transformer.js","sourcesContent":["import { isArray, isNumber, isObject } from '@visactor/vutils';\nimport type { IBarSeriesSpec } from '../../series';\nimport { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IBarChartSpec } from './interface';\nimport type { ICartesianBandAxisSpec } from '../../component';\n\nexport class BarChartSpecTransformer<T extends IBarChartSpec = IBarChartSpec> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n return {\n ...super._getDefaultSeriesSpec(spec),\n barWidth: spec.barWidth,\n barMaxWidth: spec.barMaxWidth,\n barMinWidth: spec.barMinWidth,\n barGapInGroup: spec.barGapInGroup,\n barMinHeight: spec.barMinHeight,\n sampling: spec.sampling,\n samplingFactor: spec.samplingFactor,\n barBackground: spec.barBackground,\n stackCornerRadius: spec.stackCornerRadius\n } as IBarSeriesSpec;\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n\n protected _transformAxisSpec(spec: T) {\n super._transformAxisSpec(spec);\n if (!spec.axes) {\n return;\n }\n const isHorizontal = spec.series.some(series => series.direction === 'horizontal');\n const bandAxis: ICartesianBandAxisSpec =\n spec.axes.find(axis => axis.type === 'band') ??\n spec.axes.find(axis => (isHorizontal ? ['left', 'right'] : ['top', 'bottom']).includes(axis.orient));\n if (bandAxis && !bandAxis.bandSize && !bandAxis.maxBandSize && !bandAxis.minBandSize) {\n // 将 autoBandSize 应用在轴上\n if (!!spec.autoBandSize) {\n const extend = isObject(spec.autoBandSize) ? spec.autoBandSize.extend ?? 0 : 0;\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = spec.series.find(\n series => series.type === 'bar'\n ) as IBarSeriesSpec;\n\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n bandAxis.minBandSize = barMinWidth;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n bandAxis.minBandSize = barWidth;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n bandAxis.minBandSize = barMaxWidth;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n bandAxis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n bandAxis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[barGapInGroup.length - 1] : barGapInGroup\n };\n }\n }\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/bar/bar-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,oCAAoC,EAAE,MAAM,SAAS,CAAC;AAI/D,MAAM,OAAO,uBAAiE,SAAQ,6BAAgC;IAC1G,qBAAqB,CAAC,IAAO;QACrC,OAAO,gCACF,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GACxB,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,IAAO;QACnB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,oCAAoC,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAES,kBAAkB,CAAC,IAAO;;QAClC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;QACnF,MAAM,QAAQ,GACZ,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,mCAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACvG,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAEpF,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;gBACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,YAAY,CAAC,MAAM,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/E,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAC5E,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CACd,CAAC;gBACpB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;aAClG;SACF;IACH,CAAC;CACF","file":"bar-transformer.js","sourcesContent":["import { isArray, isNumber, isObject } from '@visactor/vutils';\nimport type { IBarSeriesSpec } from '../../series';\nimport { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IBarChartSpec } from './interface';\nimport type { ICartesianBandAxisSpec } from '../../component';\n\nexport class BarChartSpecTransformer<T extends IBarChartSpec = IBarChartSpec> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n return {\n ...super._getDefaultSeriesSpec(spec),\n barWidth: spec.barWidth,\n barMaxWidth: spec.barMaxWidth,\n barMinWidth: spec.barMinWidth,\n barGapInGroup: spec.barGapInGroup,\n barMinHeight: spec.barMinHeight,\n sampling: spec.sampling,\n samplingFactor: spec.samplingFactor,\n barBackground: spec.barBackground,\n stackCornerRadius: spec.stackCornerRadius\n } as IBarSeriesSpec;\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n\n protected _transformAxisSpec(spec: T) {\n super._transformAxisSpec(spec);\n if (!spec.axes) {\n return;\n }\n const isHorizontal = spec.series.some(series => series.direction === 'horizontal');\n const bandAxis: ICartesianBandAxisSpec =\n spec.axes.find(axis => axis.type === 'band') ??\n spec.axes.find(axis => (isHorizontal ? ['left', 'right'] : ['top', 'bottom']).includes(axis.orient));\n if (bandAxis && !bandAxis.bandSize && !bandAxis.maxBandSize && !bandAxis.minBandSize) {\n // 将 autoBandSize 应用在轴上\n if (!!spec.autoBandSize) {\n const extend = isObject(spec.autoBandSize) ? spec.autoBandSize.extend ?? 0 : 0;\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = spec.series.find(\n series => series.type === 'bar'\n ) as IBarSeriesSpec;\n this._applyAxisBandSize(bandAxis, extend, { barMaxWidth, barMinWidth, barWidth, barGapInGroup });\n }\n }\n }\n}\n"]}
@@ -4,6 +4,7 @@ import type { IModelConstructor, IModelSpecInfo } from '../../model/interface';
4
4
  import type { IRegionConstructor } from '../../region/interface';
5
5
  import type { ISeriesConstructor } from '../../series';
6
6
  import type { IComponentConstructor } from '../../component/interface/common';
7
+ import type { ICartesianBandAxisSpec } from '../..//component/axis/cartesian/interface';
7
8
  export declare class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {
8
9
  readonly type: string;
9
10
  readonly seriesType: string;
@@ -19,4 +20,10 @@ export declare class BaseChartSpecTransformer<T extends IChartSpec> implements I
19
20
  forEachSeriesInSpec<K>(chartSpec: T, callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K, chartSpecInfo?: IChartSpecInfo): K[];
20
21
  forEachComponentInSpec<K>(chartSpec: T, callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K, chartSpecInfo?: IChartSpecInfo): K[];
21
22
  transformSeriesSpec(spec: T): void;
23
+ protected _applyAxisBandSize(axis: ICartesianBandAxisSpec, extend: number, barWidthSpec: {
24
+ barMaxWidth: number | string;
25
+ barMinWidth: number | string;
26
+ barWidth: number | string;
27
+ barGapInGroup: number | string | (number | string)[];
28
+ }): void;
22
29
  }
@@ -1,4 +1,4 @@
1
- import { isValid } from "@visactor/vutils";
1
+ import { isArray, isNumber, isValid } from "@visactor/vutils";
2
2
 
3
3
  import { Factory } from "../../core";
4
4
 
@@ -161,5 +161,15 @@ export class BaseChartSpecTransformer {
161
161
  }));
162
162
  })) : spec.series = [ defaultSeriesSpec ];
163
163
  }
164
+ _applyAxisBandSize(axis, extend, barWidthSpec) {
165
+ const {barMaxWidth: barMaxWidth, barMinWidth: barMinWidth, barWidth: barWidth, barGapInGroup: barGapInGroup} = barWidthSpec;
166
+ let hasBarWidth = !1;
167
+ isNumber(barMinWidth) ? (axis.minBandSize = barMinWidth, hasBarWidth = !0) : isNumber(barWidth) ? (axis.minBandSize = barWidth,
168
+ hasBarWidth = !0) : isNumber(barMaxWidth) && (axis.minBandSize = barMaxWidth, hasBarWidth = !0),
169
+ hasBarWidth && (axis.bandSizeLevel = Number.MAX_VALUE, axis.bandSizeExtend = {
170
+ extend: extend,
171
+ gap: isArray(barGapInGroup) ? barGapInGroup[barGapInGroup.length - 1] : barGapInGroup
172
+ });
173
+ }
164
174
  }
165
175
  //# sourceMappingURL=base-chart-transformer.js.map