{"version":3,"file":"Tooltip-DqC0wWBp.cjs","names":[],"sources":["../src/hooks/useElementSize.ts","../src/Components/Elements/Tooltip.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\r\n\r\nexport function useElementSize<T extends HTMLElement = HTMLDivElement>(\r\n  defaultWidth = 620,\r\n  defaultHeight = 480,\r\n) {\r\n  const graphDiv = useRef<T>(null);\r\n  const [size, setSize] = useState({\r\n    width: defaultWidth,\r\n    height: defaultHeight,\r\n    radius: Math.min(defaultWidth, defaultHeight) / 2,\r\n  });\r\n\r\n  useEffect(() => {\r\n    if (!graphDiv.current) return;\r\n    const resizeObserver = new ResizeObserver((entries) => {\r\n      const el = entries[0].target;\r\n      setSize({\r\n        width: el.clientWidth || defaultWidth,\r\n        height: el.clientHeight || defaultHeight,\r\n        radius: Math.min(el.clientWidth || defaultWidth, el.clientHeight || defaultHeight) / 2,\r\n      });\r\n    });\r\n    resizeObserver.observe(graphDiv.current);\r\n    return () => resizeObserver.disconnect();\r\n  }, [defaultWidth, defaultHeight]);\r\n\r\n  return { graphDiv, svgWidth: size.width, svgHeight: size.height, graphRadius: size.radius };\r\n}\r\n","import { cn } from '@undp/design-system-react/cn';\r\nimport { createPortal } from 'react-dom';\r\n\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\ninterface Props {\r\n  // biome-ignore lint/suspicious/noExplicitAny: undefined data type\r\n  body: string | ((_d: any) => React.ReactNode);\r\n  xPos: number;\r\n  yPos: number;\r\n  // biome-ignore lint/suspicious/noExplicitAny: undefined data type\r\n  data: any;\r\n  backgroundStyle?: React.CSSProperties;\r\n  className?: string;\r\n}\r\n\r\nexport function Tooltip(props: Props) {\r\n  const {\r\n    body,\r\n    xPos,\r\n    yPos,\r\n    data,\r\n    backgroundStyle = {\r\n      maxWidth: '24rem',\r\n      wordWrap: 'break-word',\r\n    },\r\n    className,\r\n  } = props;\r\n  if (\r\n    (typeof body === 'function' && (body(data) === null || body(data) === undefined)) ||\r\n    body === ''\r\n  ) {\r\n    return null;\r\n  }\r\n  return createPortal(\r\n    <div className='undp-container'>\r\n      <div\r\n        className={cn('graph-tooltip block p-2 fixed z-1000 bg-surface', className)}\r\n        style={{\r\n          ...backgroundStyle,\r\n          top: `${yPos < window.innerHeight / 2 ? yPos - 10 : yPos + 10}px`,\r\n          left: `${xPos > window.innerWidth / 2 ? xPos - 10 : xPos + 10}px`,\r\n          transform: `translate(${\r\n            xPos > window.innerWidth / 2 ? '-100%' : '0%'\r\n          },${yPos > window.innerHeight / 2 ? '-100%' : '0%'})`,\r\n        }}\r\n      >\r\n        <div\r\n          className='text-sm leading-normal text-content-primary m-0'\r\n          // biome-ignore lint/security/noDangerouslySetInnerHtmlWithChildren: Allow setInnerHTML here\r\n          // biome-ignore lint/security/noDangerouslySetInnerHtml: Allow setInnerHTML here\r\n          dangerouslySetInnerHTML={\r\n            typeof body === 'string' ? { __html: string2HTML(body, data) } : undefined\r\n          }\r\n        >\r\n          {typeof body === 'function' ? body(data) : null}\r\n        </div>\r\n      </div>\r\n    </div>,\r\n    document.body,\r\n  );\r\n}\r\n"],"mappings":"qKAEA,SAAgB,EACd,EAAe,IACf,EAAgB,IAChB,CACA,IAAM,GAAA,EAAA,EAAA,QAAqB,IAAI,EACzB,CAAC,EAAM,IAAA,EAAA,EAAA,UAAoB,CAC/B,MAAO,EACP,OAAQ,EACR,OAAQ,KAAK,IAAI,EAAc,CAAa,EAAI,CAClD,CAAC,EAgBD,OAdA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,EAAS,QAAS,OACvB,IAAM,EAAiB,IAAI,eAAgB,GAAY,CACrD,IAAM,EAAK,EAAQ,GAAG,OACtB,EAAQ,CACN,MAAO,EAAG,aAAe,EACzB,OAAQ,EAAG,cAAgB,EAC3B,OAAQ,KAAK,IAAI,EAAG,aAAe,EAAc,EAAG,cAAgB,CAAa,EAAI,CACvF,CAAC,CACH,CAAC,EAED,OADA,EAAe,QAAQ,EAAS,OAAO,MAC1B,EAAe,WAAW,CACzC,EAAG,CAAC,EAAc,CAAa,CAAC,EAEzB,CAAE,WAAU,SAAU,EAAK,MAAO,UAAW,EAAK,OAAQ,YAAa,EAAK,MAAO,CAC5F,CCZA,SAAgB,EAAQ,EAAc,CACpC,GAAM,CACJ,OACA,OACA,OACA,OACA,kBAAkB,CAChB,SAAU,QACV,SAAU,YACZ,EACA,aACE,EAOJ,OALG,OAAO,GAAS,aAAe,EAAK,CAAI,IAAM,MAAQ,EAAK,CAAI,IAAM,IAAA,KACtE,IAAS,GAEF,MAET,EAAA,EAAA,eACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2BACb,EAAA,EAAA,KAAC,MAAD,CACE,WAAA,EAAA,EAAA,IAAc,kDAAmD,CAAS,EAC1E,MAAO,CACL,GAAG,EACH,IAAK,GAAG,EAAO,OAAO,YAAc,EAAI,EAAO,GAAK,EAAO,GAAG,IAC9D,KAAM,GAAG,EAAO,OAAO,WAAa,EAAI,EAAO,GAAK,EAAO,GAAG,IAC9D,UAAW,aACT,EAAO,OAAO,WAAa,EAAI,QAAU,KAC1C,GAAG,EAAO,OAAO,YAAc,EAAI,QAAU,KAAK,EACrD,YAEA,EAAA,EAAA,KAAC,MAAD,CACE,UAAU,kDAGV,wBACE,OAAO,GAAS,SAAW,CAAE,OAAQ,EAAA,EAAY,EAAM,CAAI,CAAE,EAAI,IAAA,YAGlE,OAAO,GAAS,WAAa,EAAK,CAAI,EAAI,IACxC,CAAA,CACF,CAAA,CACF,CAAA,EACL,SAAS,IACX,CACF"}