{"version":3,"file":"index-BloSgfPz.js","sources":["../../Client/shared/Hooks/Resize.tsx","../../Client/shared/Hooks/Scroll.tsx","../../Client/legacy/Components/Tooltip/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\r\n\r\nexport const useResize = (callback: (width: number, height: number) => void) => {\r\n    useEffect(() => {\r\n        const handler = () => {\r\n            callback(\r\n                Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),\r\n                Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0),\r\n            );\r\n        };\r\n\r\n        window.addEventListener('resize', handler);\r\n        return () => window.removeEventListener('resize', handler);\r\n    }, []);\r\n};\r\n","import { useEffect } from 'react';\r\n\r\nexport const useScroll = (callback: (scrollY: number) => void, options?: boolean | AddEventListenerOptions) => {\r\n    useEffect(() => {\r\n        const handler = () => callback(window.scrollY);\r\n        window.addEventListener('scroll', handler, options);\r\n\r\n        return () => {\r\n            window.removeEventListener('scroll', handler);\r\n        };\r\n    }, []);\r\n};\r\n","import { useResize } from '@shared/Hooks/Resize';\r\nimport { useScroll } from '@shared/Hooks/Scroll';\r\nimport Portal from '@webkit/components/portal';\r\nimport { PropsWithChildren, createRef, forwardRef, useImperativeHandle, useMemo, useState } from 'react';\r\nimport './style.scss';\r\n\r\nexport enum TooltipPlacement {\r\n    Bottom = 'bottom',\r\n    BottomLeft = 'bottom-left',\r\n    BottomRight = 'bottom-right',\r\n    Right = 'right',\r\n    Top = 'top',\r\n}\r\n\r\nexport enum TooltipEvent {\r\n    Focus = 'onFocus',\r\n    Blur = 'onBlur',\r\n    MouseEnter = 'onMouseEnter',\r\n    MouseLeave = 'onMouseLeave',\r\n}\r\n\r\nexport enum TooltipSize {\r\n    Small = 'small',\r\n    Large = 'large',\r\n    Fill = 'fill',\r\n}\r\n\r\nexport type TooltipProps = PropsWithChildren<{\r\n    title?: string;\r\n    message: string | JSX.Element;\r\n    className?: string;\r\n    wrapperClassName?: string;\r\n    childrenClassName?: string;\r\n    placement?: TooltipPlacement;\r\n    offset?: number;\r\n    delayShow?: number;\r\n    delayHide?: number;\r\n    disabled?: boolean;\r\n    onEvent?: TooltipEvent;\r\n    offEvent?: TooltipEvent;\r\n    size?: TooltipSize;\r\n    /** Optional, pass in some text to display in a highlight box for emphasis. */\r\n    highlightBox?: string | null | undefined;\r\n    persistent?: boolean;\r\n}>;\r\n\r\ninterface TooltipPosition {\r\n    width: number;\r\n    top: number;\r\n    left: number;\r\n}\r\n\r\nexport type TooltipActions = {\r\n    show: () => void;\r\n    hide: () => void;\r\n    persist: (delay?: number) => void;\r\n};\r\n\r\n/**\r\n * @deprecated This component is deprecated. Use the `Tooltip` component from @webkit/index` instead.\r\n */\r\nexport const Tooltip = forwardRef<TooltipActions, TooltipProps>((props, ref) => {\r\n    const [position, setPosition] = useState<TooltipPosition>({ width: 0, top: 0, left: 0 }),\r\n        [visible, setVisible] = useState<boolean>(false),\r\n        childrenRef = useMemo(() => createRef<HTMLDivElement>(), []);\r\n\r\n    useImperativeHandle(ref, () => ({\r\n        show,\r\n        hide,\r\n        persist,\r\n    }));\r\n\r\n    useScroll(setTooltipPosition);\r\n    useResize(setTooltipPosition);\r\n\r\n    const placement: TooltipPlacement = props.placement || TooltipPlacement.Bottom;\r\n    return (\r\n        <div className={`tooltip-wrapper ${props.wrapperClassName || ''}`}>\r\n            <div\r\n                className={`tooltip-children ${props.childrenClassName ? props.childrenClassName : ''}`}\r\n                {...buildEventProps()}\r\n                ref={childrenRef}\r\n            >\r\n                {props.children}\r\n            </div>\r\n            <Portal>\r\n                <div\r\n                    className={`tooltip-content-wrapper ${placement} ${\r\n                        visible ? 'tooltip-content-wrapper-visible' : ''\r\n                    }`}\r\n                    style={{ left: `${position.left}px`, top: `${position.top}px` }}\r\n                >\r\n                    <div className='tooltip-arrow-wrapper' style={{ width: `${position.width}px` }}>\r\n                        <div className='tooltip-arrow'></div>\r\n                    </div>\r\n                    <div className={`tooltip-content ${props.size || TooltipSize.Small} ${props.className || ''}`}>\r\n                        <div className={`tooltip-title ${props.title ? 'tooltip-title-visible' : ''}`}>\r\n                            {props.title}\r\n                        </div>\r\n                        <div className='tooltip-message'>{props.message}</div>\r\n                        {props.highlightBox && <div className='tooltip-highlight-box'>{props.highlightBox}</div>}\r\n                    </div>\r\n                </div>\r\n            </Portal>\r\n        </div>\r\n    );\r\n\r\n    function buildEventProps() {\r\n        if (props.persistent) return;\r\n\r\n        let p = {},\r\n            onEvent: TooltipEvent = props.onEvent || TooltipEvent.MouseEnter,\r\n            offEvent: TooltipEvent = props.offEvent || TooltipEvent.MouseLeave;\r\n\r\n        p[onEvent] = () => show();\r\n        p[offEvent] = () => hide();\r\n        return p;\r\n    }\r\n\r\n    function show() {\r\n        if (!childrenRef.current) return;\r\n\r\n        setTooltipPosition();\r\n        setVisible(!props.disabled);\r\n    }\r\n\r\n    function hide() {\r\n        setVisible(false);\r\n    }\r\n\r\n    function persist() {\r\n        if (!childrenRef.current) return;\r\n\r\n        setTooltipPosition();\r\n        setVisible(true);\r\n    }\r\n\r\n    function setTooltipPosition() {\r\n        if (!childrenRef.current?.firstChild) return;\r\n\r\n        const rect = childrenRef.current.getBoundingClientRect();\r\n        setPosition({\r\n            width: rect.width,\r\n            top: rect.top + rect.height + window.scrollY + (props.offset || 0),\r\n            left: rect.left + window.scrollX,\r\n        });\r\n    }\r\n});\r\n"],"names":["useResize","callback","useEffect","handler","useScroll","options","TooltipPlacement","TooltipSize","Tooltip","forwardRef","props","ref","position","setPosition","useState","visible","setVisible","childrenRef","useMemo","createRef","useImperativeHandle","show","hide","persist","setTooltipPosition","placement","jsx","buildEventProps","Portal","jsxs","p","onEvent","offEvent","_a","rect"],"mappings":"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"}