@visactor/vchart
Version:
charts lib based @visactor/VGrammar
50 lines (44 loc) • 1.63 kB
JavaScript
import { isFunction, isNumber, isObject, isValid } from "@visactor/vutils";
export const getActualTooltipPositionValue = (position, event) => {
let result;
if (isValid(position)) if (isNumber(position)) result = position; else if (isFunction(position)) {
const tooltipPosition = position(event);
isNumber(tooltipPosition) && (result = tooltipPosition);
}
return result;
};
export const positionType = {
left: [ -2, 0 ],
right: [ 2, 0 ],
top: [ 0, -2 ],
bottom: [ 0, 2 ],
insideTop: [ 0, -1.5 ],
insideBottom: [ 0, 1.5 ],
insideLeft: [ -1.5, 0 ],
insideRight: [ 1.5, 0 ],
insideTopLeft: [ -1.5, -1.5 ],
insideTopRight: [ 1.5, -1.5 ],
insideBottomLeft: [ -1.5, 1.5 ],
insideBottomRight: [ 1.5, 1.5 ],
lt: [ -2, -2 ],
tl: [ -2, -2 ],
rt: [ 2, -2 ],
tr: [ 2, -2 ],
bl: [ -2, 2 ],
lb: [ -2, 2 ],
br: [ 2, 2 ],
rb: [ 2, 2 ],
inside: [ 0, 0 ],
center: [ 0, 0 ],
centerBottom: [ 0, 1 ],
centerTop: [ 0, -1 ],
centerLeft: [ -1, 0 ],
centerRight: [ 1, 0 ]
};
export const getPositionType = (position, dim, defaultCase = 2) => {
var _a, _b;
return null !== (_b = null === (_a = positionType[position]) || void 0 === _a ? void 0 : _a["x" === dim ? 0 : 1]) && void 0 !== _b ? _b : defaultCase;
};
export const isGlobalTooltipPositionPattern = obj => isObject(obj) && (isValid(obj.left) || isValid(obj.right) || isValid(obj.top) || isValid(obj.bottom));
export const isFixedTooltipPositionPattern = obj => isObject(obj) && (isValid(obj.x) || isValid(obj.y));
//# sourceMappingURL=position.js.map