{"version":3,"file":"use-delayed-hover.cjs","names":[],"sources":["../../../src/utils/Floating/use-delayed-hover.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\ninterface UseDelayedHoverInput {\n  open: () => void;\n  close: () => void;\n  openDelay: number | undefined;\n  closeDelay: number | undefined;\n}\n\nexport function useDelayedHover({ open, close, openDelay, closeDelay }: UseDelayedHoverInput) {\n  const openTimeout = useRef(-1);\n  const closeTimeout = useRef(-1);\n\n  const clearTimeouts = () => {\n    window.clearTimeout(openTimeout.current);\n    window.clearTimeout(closeTimeout.current);\n  };\n\n  const openDropdown = () => {\n    clearTimeouts();\n\n    if (openDelay === 0 || openDelay === undefined) {\n      open();\n    } else {\n      openTimeout.current = window.setTimeout(open, openDelay);\n    }\n  };\n\n  const closeDropdown = () => {\n    clearTimeouts();\n\n    if (closeDelay === 0 || closeDelay === undefined) {\n      close();\n    } else {\n      closeTimeout.current = window.setTimeout(close, closeDelay);\n    }\n  };\n\n  useEffect(() => clearTimeouts, []);\n\n  return { openDropdown, closeDropdown };\n}\n"],"mappings":";;;;AASA,SAAgB,gBAAgB,EAAE,MAAM,OAAO,WAAW,cAAoC;CAC5F,MAAM,eAAA,GAAA,MAAA,QAAqB,GAAG;CAC9B,MAAM,gBAAA,GAAA,MAAA,QAAsB,GAAG;CAE/B,MAAM,sBAAsB;AAC1B,SAAO,aAAa,YAAY,QAAQ;AACxC,SAAO,aAAa,aAAa,QAAQ;;CAG3C,MAAM,qBAAqB;AACzB,iBAAe;AAEf,MAAI,cAAc,KAAK,cAAc,KAAA,EACnC,OAAM;MAEN,aAAY,UAAU,OAAO,WAAW,MAAM,UAAU;;CAI5D,MAAM,sBAAsB;AAC1B,iBAAe;AAEf,MAAI,eAAe,KAAK,eAAe,KAAA,EACrC,QAAO;MAEP,cAAa,UAAU,OAAO,WAAW,OAAO,WAAW;;AAI/D,EAAA,GAAA,MAAA,iBAAgB,eAAe,EAAE,CAAC;AAElC,QAAO;EAAE;EAAc;EAAe"}