UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

69 lines (67 loc) 3.01 kB
import { AttributeLevel } from "../../constant/attribute"; export function setRectLabelPos(component, labelMark, position, offset, x, x1, y, y1, direction) { component.setMarkStyle(labelMark, { textAlign: datum => { if ("vertical" === direction()) return "center"; const _x = x(datum), _x1 = x1(datum); if ("middle" === position) return "center"; if (_x >= _x1) { if ("start" === position) return "left"; if ("end" === position) return "right"; if ("outside" === position) return "left"; } else { if ("start" === position) return "right"; if ("end" === position) return "left"; if ("outside" === position) return "right"; } return "center"; }, textBaseline: datum => { if ("horizontal" === direction()) return "middle"; const _y = y(datum), _y1 = y1(datum); if ("middle" === position) return "middle"; if (_y1 >= _y) { if ("start" === position) return "bottom"; if ("end" === position) return "top"; if ("outside" === position) return "bottom"; } else { if ("start" === position) return "top"; if ("end" === position) return "bottom"; if ("outside" === position) return "top"; } return "middle"; } }), component.setMarkStyle(labelMark, { x: datum => { const d = direction(), _x = x(datum), _x1 = x1(datum); if ("vertical" === d) return (_x + _x1) / 2; if ("middle" === position) return (_x + _x1) / 2; if (_x >= _x1) { if ("start" === position) return _x1 + offset; if ("end" === position) return _x - offset; if ("outside" === position) return _x + offset; } else { if ("start" === position) return _x1 - offset; if ("end" === position) return _x + offset; if ("outside" === position) return _x - offset; } return (_x + _x1) / 2; }, y: datum => { const d = direction(), _y = y(datum), _y1 = y1(datum); if ("horizontal" === d) return (_y + _y1) / 2; if ("middle" === position) return (_y + _y1) / 2; if (_y >= _y1) { if ("start" === position) return _y1 + offset; if ("end" === position) return _y - offset; if ("outside" === position) return _y + offset; } else { if ("start" === position) return _y1 - offset; if ("end" === position) return _y + offset; if ("outside" === position) return _y - offset; } return (_y + _y1) / 2; } }, "normal", AttributeLevel.Series); } //# sourceMappingURL=label-mark.js.map