@visactor/openinula-vchart
Version:
The openinula version of VChart 4.x
41 lines (36 loc) • 2.01 kB
JavaScript
import React from "openinula";
import { isObject } from "@visactor/vutils";
import { REACT_TOOLTIP_ClASS_NAME } from "./constant";
import { createPortal } from "openinula";
export const initCustomTooltip = (setTooltipNode, props, spec) => {
let render;
if ((null == spec ? void 0 : spec.tooltipRender) ? (render = spec.tooltipRender,
delete spec.tooltipRender) : (null == spec ? void 0 : spec.children) ? render = (tooltipElement, actualTooltip, params) => React.Children.map(spec.children, (child => isObject(child) ? React.cloneElement(child, {
tooltipElement: tooltipElement,
actualTooltip: actualTooltip,
params: params
}) : child)) : 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