UNPKG

@visactor/openinula-vchart

Version:

The openinula version of VChart 4.x

41 lines (36 loc) 2.01 kB
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