{"version":3,"file":"candle.js","sourceRoot":"","sources":["../../../../src/geometry/shape/schema/candle.ts"],"names":[],"mappings":"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","sourcesContent":["import { isArray } from '@antv/util';\nimport { IGroup, PathCommand } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { padEnd } from '../../../util/helper';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getCandleYValues(value: number | number[]) {\n const array = !isArray(value) ? [value] : value;\n // 从大到小排序\n const sorted = array.sort((a, b) => b - a);\n return padEnd(sorted, 4, sorted[sorted.length - 1]);\n}\n\n// get candle shape's key points\nfunction getCandlePoints(x: number, y: number[], size: number): Point[] {\n const yValues = getCandleYValues(y);\n return [\n { x, y: yValues[0] },\n { x, y: yValues[1] },\n { x: x - size / 2, y: yValues[2] },\n { x: x - size / 2, y: yValues[1] },\n { x: x + size / 2, y: yValues[1] },\n { x: x + size / 2, y: yValues[2] },\n { x, y: yValues[2] },\n { x, y: yValues[3] },\n ];\n}\n\nfunction getCandlePath(points): PathCommand[] {\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['L', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['Z'],\n ['M', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ];\n}\n\n// k line shape\nregisterShape('schema', 'candle', {\n getPoints(shapePoint: ShapePoint) {\n const { x, y, size } = shapePoint;\n return getCandlePoints(x as number, y as number[], size);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, true);\n const path = this.parsePath(getCandlePath(cfg.points));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n name: 'schema',\n },\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol(x: number, y: number, r: number) {\n const yValues = [y + 7.5, y + 3, y - 3, y - 7.5];\n const points = getCandlePoints(x, yValues, r);\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['L', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['Z'],\n ['M', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ];\n },\n style: {\n lineWidth: 1,\n stroke: color,\n fill: color,\n r: 6,\n },\n };\n },\n});\n"]}