@visactor/react-vchart
Version:
The react version of VChart 4.x
36 lines (32 loc) • 1.66 kB
JavaScript
import React from "react";
import { REACT_TOOLTIP_ClASS_NAME } from "./constant";
import { createPortal } from "react-dom";
export const initCustomTooltip = (setTooltipNode, props, spec) => {
let render;
if ((null == spec ? void 0 : spec.tooltipRender) ? (render = spec.tooltipRender,
delete spec.tooltipRender) : props.tooltipRender && (render = props.tooltipRender),
render) {
let reserve;
return (null == spec ? void 0 : spec.reserveDefaultTooltip) ? (reserve = spec.reserveDefaultTooltip,
delete spec.reserveDefaultTooltip) : reserve = props.reserveDefaultTooltip, Object.assign(Object.assign({}, spec), {
updateElement: (el, actualTooltip, params) => {
const {changePositionOnly: changePositionOnly} = params;
if (!changePositionOnly) {
if (!reserve) {
el.style.width = "auto", el.style.height = "auto", el.style.minHeight = "auto",
el.style.padding = "0px";
for (let i = 0; i < el.children.length; i++) {
const childNode = el.children[i];
childNode.className !== REACT_TOOLTIP_ClASS_NAME && "none" !== childNode.style.display && (childNode.style.display = "none");
}
}
setTooltipNode(createPortal(React.createElement("div", {
className: REACT_TOOLTIP_ClASS_NAME
}, render(el, actualTooltip, params)), el));
}
}
});
}
return spec;
};
//# sourceMappingURL=util.js.map