import * as React from "react"; import * as ReactDOM from "react-dom"; export interface RectangleTooltipProps { text: string, link?: string, referenceNode: HTMLElement, prependElement?: HTMLElement, // Element to append before bottomOffset?: string, leftOffset?: string, timeout?: number, htmlId?: string, maxHeight?: string, maxWidth?: string, backgroundColor?: string, fontSize?: string, buttonFunction?: () => void; } export class RectangleTooltip { text: string; container: HTMLDivElement; timer: NodeJS.Timeout; constructor(props: RectangleTooltipProps) { props.bottomOffset ??= "0px"; props.leftOffset ??= "0px"; props.maxHeight ??= "100px"; props.maxWidth ??= "300px"; props.backgroundColor ??= "rgba(28, 28, 28, 0.7)"; this.text = props.text; props.fontSize ??= "10px"; this.container = document.createElement('div'); props.htmlId ??= props.text; this.container.id = "sponsorRectangleTooltip" + props.htmlId; this.container.style.display = "relative"; if (props.prependElement) { props.referenceNode.insertBefore(this.container, props.prependElement); } else { props.referenceNode.appendChild(this.container); } if (props.timeout) { this.timer = setTimeout(() => this.close(), props.timeout * 1000); } ReactDOM.render(