{"version":3,"file":"use-delayed-hover.mjs","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,cAAc,OAAO,EAAE;CAC7B,MAAM,eAAe,OAAO,EAAE;CAE9B,MAAM,sBAAsB;EAC1B,OAAO,aAAa,YAAY,OAAO;EACvC,OAAO,aAAa,aAAa,OAAO;CAC1C;CAEA,MAAM,qBAAqB;EACzB,cAAc;EAEd,IAAI,cAAc,KAAK,cAAc,KAAA,GACnC,KAAK;OAEL,YAAY,UAAU,OAAO,WAAW,MAAM,SAAS;CAE3D;CAEA,MAAM,sBAAsB;EAC1B,cAAc;EAEd,IAAI,eAAe,KAAK,eAAe,KAAA,GACrC,MAAM;OAEN,aAAa,UAAU,OAAO,WAAW,OAAO,UAAU;CAE9D;CAEA,gBAAgB,eAAe,CAAC,CAAC;CAEjC,OAAO;EAAE;EAAc;CAAc;AACvC"}