{"version":3,"file":"useTimeout2.mjs","sources":["../../../../../../packages/hooks/core/useTimeout.ts"],"sourcesContent":["import { ref, watch } from 'vue'\nimport { tryOnUnmounted } from '@vueuse/core'\nimport { isFunction } from '@tav-ui/utils/is'\n\ndeclare interface Fn<T = any, R = T> {\n  (...arg: T[]): R\n}\n\ndeclare type TimeoutHandle = ReturnType<typeof setTimeout>\n\nexport function useTimeoutFn(handle: Fn<any>, wait: number, native = false) {\n  if (!isFunction(handle)) throw new Error('handle is not Function!')\n\n  const { readyRef, stop, start } = useTimeoutRef(wait)\n  if (native) {\n    handle()\n  } else {\n    watch(\n      readyRef,\n      (maturity) => {\n        maturity && handle()\n      },\n      { immediate: false }\n    )\n  }\n  return { readyRef, stop, start }\n}\n\nexport function useTimeoutRef(wait: number) {\n  const readyRef = ref(false)\n\n  let timer: TimeoutHandle\n  function stop(): void {\n    readyRef.value = false\n    timer && window.clearTimeout(timer)\n  }\n  function start(): void {\n    stop()\n    timer = setTimeout(() => {\n      readyRef.value = true\n    }, wait)\n  }\n\n  start()\n\n  tryOnUnmounted(stop)\n\n  return { readyRef, stop, start }\n}\n"],"names":[],"mappings":";;;;AAGO,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE;AAC3D,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACzB,IAAI,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC/C,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACxD,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,MAAM,EAAE,CAAC;AACb,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,KAAK;AAClC,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;AAC3B,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AACM,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9B,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,SAAS,IAAI,GAAG;AAClB,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,IAAI,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,SAAS,KAAK,GAAG;AACnB,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM;AAC7B,MAAM,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;AAC5B,KAAK,EAAE,IAAI,CAAC,CAAC;AACb,GAAG;AACH,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACnC;;;;"}