UNPKG

5.71 kBSource Map (JSON)View Raw
1{"version":3,"file":"interval.js","sourceRoot":"","sources":["../../src/geometry/interval.ts"],"names":[],"mappings":"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","sourcesContent":["import { get } from '@antv/util';\nimport { Datum, MappingDatum, ShapeInfo, LooseObject } from '../interface';\nimport { ShapeAttrs } from '../dependents';\nimport { getXDimensionLength } from '../util/coordinate';\nimport Geometry, { GeometryCfg } from './base';\n/** 引入对应的 ShapeFactory */\nimport './shape/interval';\nimport { getDefaultSize } from './util/shape-size';\nimport { getMaxScale } from '../util/scale';\n\n/** Path 构造函数参数类型 */\nexport interface IntervalCfg extends GeometryCfg {\n /** shape 背景,只对 Interval Geometry 生效,目前只对 interval-rect shape 生效。 */\n background?: { style?: ShapeAttrs };\n}\n\n/**\n * Interval 几何标记。\n * 用于绘制柱状图、饼图、条形图、玫瑰图等。\n */\nexport default class Interval extends Geometry {\n public readonly type: string = 'interval';\n public readonly shapeType: string = 'interval';\n /** shape 背景。目前只对 interval-rect shape 生效。 */\n protected background?: { style?: ShapeAttrs };\n protected generatePoints: boolean = true;\n\n constructor(cfg: IntervalCfg) {\n super(cfg);\n\n const { background } = cfg;\n this.background = background;\n }\n\n /**\n * 获取每条数据的 Shape 绘制信息\n * @param obj 经过分组 -> 数字化 -> adjust 调整后的数据记录\n * @returns\n */\n protected createShapePointsCfg(obj: Datum) {\n const cfg = super.createShapePointsCfg(obj);\n\n // 计算每个 shape 的 size\n let size;\n const sizeAttr = this.getAttribute('size');\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, obj)[0];\n // 归一化\n const coordinate = this.coordinate;\n const coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n size = this.defaultSize;\n }\n cfg.size = size;\n\n return cfg;\n }\n\n /**\n * 调整 y 轴的 scale 范围。\n * 对于 Y 轴为数值轴柱状图,默认从 0 开始 生长。\n */\n protected adjustScale() {\n super.adjustScale();\n const yScale = this.getYScale();\n // 特殊逻辑:饼图需要填充满整个空间\n if (this.coordinate.type === 'theta') {\n yScale.change({\n nice: false,\n min: 0,\n // 发生过 stack 调整,yScale 的 max 被调整过,this.updateStackRange()\n max: getMaxScale(yScale),\n });\n } else {\n // 柱状图数值轴默认从 0 开始\n const scaleDefs = this.scaleDefs;\n const { field, min, max, type } = yScale;\n if (type !== 'time') {\n // time 类型不做调整\n // 柱状图的 Y 轴要从 0 开始生长,但是如果用户设置了则以用户的为准\n if (min > 0 && !get(scaleDefs, [field, 'min'])) {\n yScale.change({\n min: 0,\n });\n }\n // 柱当柱状图全为负值时也需要从 0 开始生长,但是如果用户设置了则以用户的为准\n if (max <= 0 && !get(scaleDefs, [field, 'max'])) {\n yScale.change({\n max: 0,\n });\n }\n }\n }\n }\n\n /**\n * @override\n */\n protected getDrawCfg(mappingData: MappingDatum): ShapeInfo {\n const shapeCfg = super.getDrawCfg(mappingData);\n shapeCfg.background = this.background;\n\n return shapeCfg;\n }\n}\n"]}
\No newline at end of file