UNPKG

6.17 kBSource Map (JSON)View Raw
1{"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/geometry/path.ts"],"names":[],"mappings":"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","sourcesContent":["import { FIELD_ORIGIN } from '../constant';\nimport { MappingDatum, ShapeInfo } from '../interface';\nimport Geometry, { GeometryCfg } from './base';\nimport Element from './element';\n/** 引入对应的 ShapeFactory */\nimport './shape/line';\nimport { isModelChange } from './util/is-model-change';\n\n/** Path 构造函数参数类型 */\nexport interface PathCfg extends GeometryCfg {\n /** 是否连接空值 */\n connectNulls?: boolean;\n /** 单个孤立数据点是否展示 */\n showSinglePoint?: boolean;\n}\n\n/**\n * Path 几何标记。\n * 用于绘制路径图等。\n */\nexport default class Path extends Geometry {\n public readonly type: string = 'path';\n public readonly shapeType: string = 'line';\n /** 是否连接空值 */\n public connectNulls: boolean;\n /** 单个孤立数据点是否展示 */\n public showSinglePoint: boolean;\n\n constructor(cfg: PathCfg) {\n super(cfg);\n\n const { connectNulls = false, showSinglePoint = true } = cfg;\n this.connectNulls = connectNulls;\n this.showSinglePoint = showSinglePoint;\n }\n\n /**\n * 创建所有的 Element 实例,对于 Path、Line、Area,一组数据对应一个 Element。\n * @param mappingData\n * @param [isUpdate]\n * @returns elements\n */\n protected createElements(mappingData: MappingDatum[], index: number, isUpdate: boolean = false): Element[] {\n // Path 的每个 element 对应一组数据\n const { lastElementsMap, elementsMap, elements, container } = this;\n const elementId = this.getElementId(mappingData);\n const shapeCfg = this.getShapeInfo(mappingData);\n\n let result = lastElementsMap[elementId];\n if (!result) {\n const shapeFactory = this.getShapeFactory();\n\n result = new Element({\n shapeFactory,\n container,\n offscreenGroup: this.getOffscreenGroup(),\n });\n result.geometry = this;\n result.animate = this.animateOption;\n result.draw(shapeCfg, isUpdate); // 绘制 shape\n } else {\n // element 已经创建\n const preShapeCfg = result.getModel();\n if (this.isCoordinateChanged || isModelChange(preShapeCfg, shapeCfg)) {\n result.animate = this.animateOption;\n // 通过绘制数据的变更来判断是否需要更新,因为用户有可能会修改图形属性映射\n result.update(shapeCfg); // 更新对应的 element\n }\n delete lastElementsMap[elementId];\n }\n\n elements.push(result);\n elementsMap[elementId] = result;\n\n return elements;\n }\n\n /**\n * 获取组成一条线(一组数据)的所有点以及数据\n * @param mappingData 映射后的数组\n */\n protected getPointsAndData(mappingData: MappingDatum[]) {\n const points = [];\n const data = [];\n\n for (let i = 0, len = mappingData.length; i < len; i++) {\n const obj = mappingData[i];\n points.push({\n x: obj.x,\n y: obj.y,\n });\n data.push(obj[FIELD_ORIGIN]);\n }\n\n return {\n points,\n data,\n };\n }\n\n private getShapeInfo(mappingData: MappingDatum[]): ShapeInfo {\n const shapeCfg = this.getDrawCfg(mappingData[0]);\n const { points, data } = this.getPointsAndData(mappingData);\n shapeCfg.mappingData = mappingData;\n shapeCfg.data = data;\n shapeCfg.isStack = !!this.getAdjust('stack');\n shapeCfg.points = points;\n shapeCfg.connectNulls = this.connectNulls;\n shapeCfg.showSinglePoint = this.showSinglePoint;\n\n return shapeCfg;\n }\n}\n"]}
\No newline at end of file