Build 542549stable
Module 720879
2,642 characters · in 59fa9b11727079ae.jsDependencies
Source Raw
function(e,t,n){n.d(t,{L:()=>d,A:()=>u});var l=n(627968),r=n(64700),i=n(844222),a=n(350535),s=n(642481),o=n(650583);function d(e){let{children:t,targetElementRef:n,estimatedTooltipHeight:d,delay:u=300,onShow:c,title:m,body:g,graphic:p,size:_="md",actions:f,gradientColor:E}=e,h=r.useContext(i.C),[v,R]=r.useState("closed"),x=r.useRef(null),b=r.useRef(!1),C="opening-mouse"===v||"open-mouse"===v,j="opening-keyboard"===v||"open-keyboard"===v,A="open-mouse"===v||"open-keyboard"===v,I=(h.keyboardModeEnabled||j)&&null!=f,[O,y]=r.useState(0),T=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,n=arguments.length>2?arguments[2]:void 0,[l,i]=r.useState("top");return r.useEffect(()=>{if(null==e.current)return void i("top");let n=e.current.getBoundingClientRect(),l=window.innerWidth,r=window.innerHeight,a={top:n.top,bottom:r-n.bottom,left:n.left,right:l-n.right},s=["top","bottom","right","left"];for(let e of s)if(a[e]>=t)return void i(e);i(s.reduce((e,t)=>a[t]>a[e]?t:e,"top"))},[e,t,n]),l}(n,d,v),S=r.useCallback(()=>{null!=x.current&&(clearTimeout(x.current),x.current=null)},[]),U=r.useCallback(e=>{e&&(b.current=!0),S(),R("closing")},[S]);r.useEffect(()=>S,[S]);let N=r.useCallback(()=>{("closed"===v||"closing"===v)&&(S(),R("opening-mouse"))},[S,v]),D=r.useCallback(()=>{C&&U(!1)},[U,C]),k=r.useCallback(()=>{if(b.current||"closed"!==v&&"closing"!==v){b.current=!1;return}S(),R("opening-keyboard")},[S,v]),B=r.useCallback(()=>{I&&"opening-keyboard"!==v||U(!1)},[U,v,I]);r.useEffect(()=>{if("opening-mouse"===v)return x.current=window.setTimeout(()=>{x.current=null,R("open-mouse"),c?.()},u),S},[v,u,c,S]),r.useEffect(()=>{if("opening-keyboard"===v)return x.current=window.setTimeout(()=>{x.current=null,R("open-keyboard"),c?.()},u),S},[v,u,c,S]),r.useEffect(()=>{if("closing"===v)return x.current=window.setTimeout(()=>{x.current=null,R("closed")},200),S},[v,S]),r.useEffect(()=>{if(!A)return;let e=e=>{e.key===o.dh.ESCAPE&&(e.preventDefault(),e.stopPropagation(),U(!0))};return document.addEventListener("keydown",e,!0),()=>{document.removeEventListener("keydown",e,!0)}},[A,U]);let L=r.useMemo(()=>null==f?f:f.map(e=>({...e,onClick:t=>{e.onClick?.(t),U(!1)}})),[f,U]),P=r.useCallback(e=>{y(e)},[]);return(0,l.jsxs)("div",{onMouseEnter:N,onMouseLeave:D,onFocus:k,onBlur:B,children:[t,(0,l.jsx)(s.j,{targetElementRef:n,shouldShow:A,position:T,align:"center",title:m,body:g,graphic:p,size:_,actions:L,gradientColor:E,showCloseButton:I,shouldTrapFocus:I,returnRef:I?n:void 0,isCaretHoverable:!0,caretConfig:{align:"custom",customOffset:O},onNudgeChange:P,onRequestClose:e=>{U(null!=e&&(0,a.sg)(e))}})]})}let u=d}