{"version":3,"file":"pie.js","sourceRoot":"","sources":["../../../src/geometry/label/pie.ts"],"names":[],"mappings":"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","sourcesContent":["import { deepMix, get, isArray } from '@antv/util';\nimport { getAngleByPoint } from '../../util/coordinate';\nimport { polarToCartesian } from '../../util/graphics';\nimport { LabelItem } from './interface';\nimport PolarLabel from './polar';\n\n/**\n * 饼图 label\n */\nexport default class PieLabel extends PolarLabel {\n public defaultLayout = 'distribute';\n\n protected getDefaultLabelCfg(offset?: number, position?: string) {\n const cfg = super.getDefaultLabelCfg(offset, position);\n return deepMix({}, cfg, get(this.geometry.theme, 'pieLabels', {}));\n }\n\n /** @override */\n protected getLabelOffset(offset: string | number): number {\n return super.getLabelOffset(offset) || 0;\n }\n\n protected getLabelRotate(angle: number, offset: number, isLabelLimit: boolean) {\n let rotate;\n if (offset < 0) {\n rotate = angle;\n if (rotate > Math.PI / 2) {\n rotate = rotate - Math.PI;\n }\n if (rotate < -Math.PI / 2) {\n rotate = rotate + Math.PI;\n }\n }\n return rotate;\n }\n\n protected getLabelAlign(point: LabelItem) {\n const coordinate = this.getCoordinate();\n const center = coordinate.getCenter();\n\n let align;\n if (point.angle <= Math.PI / 2 && point.x >= center.x) {\n align = 'left';\n } else {\n align = 'right';\n }\n if (point.offset <= 0) {\n if (align === 'right') {\n align = 'left';\n } else {\n align = 'right';\n }\n }\n return align;\n }\n\n protected getArcPoint(point) {\n return point;\n }\n\n protected getPointAngle(point) {\n const coordinate = this.getCoordinate();\n const startPoint = {\n x: isArray(point.x) ? point.x[0] : point.x,\n y: point.y[0],\n };\n const endPoint = {\n x: isArray(point.x) ? point.x[1] : point.x,\n y: point.y[1],\n };\n let angle;\n const startAngle = getAngleByPoint(coordinate, startPoint);\n if (point.points && point.points[0].y === point.points[1].y) {\n angle = startAngle;\n } else {\n let endAngle = getAngleByPoint(coordinate, endPoint);\n if (startAngle >= endAngle) {\n // 100% pie slice\n endAngle = endAngle + Math.PI * 2;\n }\n angle = startAngle + (endAngle - startAngle) / 2;\n }\n return angle;\n }\n\n /** @override */\n protected getCirclePoint(angle: number, offset: number) {\n const coordinate = this.getCoordinate();\n const center = coordinate.getCenter();\n const r = coordinate.getRadius() + offset;\n return {\n ...polarToCartesian(center.x, center.y, r, angle),\n angle,\n r,\n };\n }\n}\n"]}