{"version":3,"file":"index.mjs","sources":["../../../src/shared/useInterval/index.ts"],"sourcesContent":["import { ref } from 'vue';\nimport { NOOP } from '../functions';\n\nexport function useInterval(callback = NOOP, interval = 1000) {\n  let timer: any = null;\n  const isRunning = ref(false);\n\n  const _clean = () => {\n    if (timer) {\n      clearInterval(timer);\n      timer = null;\n    }\n  };\n\n  const stop = () => {\n    isRunning.value = false;\n    _clean();\n  };\n\n  const resume = () => {\n    if (interval <= 0) return;\n    isRunning.value = true;\n    _clean();\n    timer = setInterval(function () {\n      if (interval <= 0) {\n        stop();\n      }\n      callback();\n    }, interval);\n  };\n\n  const start = () => {\n    resume();\n  };\n\n  return {\n    isRunning,\n    start,\n    stop,\n    resume,\n  };\n}\n"],"names":["useInterval","callback","arguments","length","undefined","NOOP","interval","timer","isRunning","ref","_clean","clearInterval","stop","value","resume","setInterval","start"],"mappings":";;;;;;;;;AAGO,SAASA,WAAYA,GAAkC;AAAA,EAAA,IAAlCC,QAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAWG,IAAM,CAAA;AAAA,EAAA,IAAAC,QAAA,GAAAJ,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAW,GAAM,CAAA;EAC5D,IAAIK,KAAa,GAAA,IAAA,CAAA;AACX,EAAA,IAAAC,SAAA,GAAYC,IAAI,KAAK,CAAA,CAAA;AAE3B,EAAA,IAAMC,SAAS,SAATA,SAAe;AACnB,IAAA,IAAIH,KAAO,EAAA;MACTI,aAAA,CAAcJ,KAAK,CAAA,CAAA;AACXA,MAAAA,KAAA,GAAA,IAAA,CAAA;AACV,KAAA;GACF,CAAA;AAEA,EAAA,IAAMK,OAAO,SAAPA,OAAa;IACjBJ,SAAA,CAAUK,KAAQ,GAAA,KAAA,CAAA;AACXH,IAAAA,MAAA,EAAA,CAAA;GACT,CAAA;AAEA,EAAA,IAAMI,SAAS,SAATA,SAAe;IACnB,IAAIR,QAAY,IAAA,CAAA,EAAG,OAAA;IACnBE,SAAA,CAAUK,KAAQ,GAAA,IAAA,CAAA;AACXH,IAAAA,MAAA,EAAA,CAAA;IACPH,KAAA,GAAQQ,YAAY,YAAY;MAC9B,IAAIT,YAAY,CAAG,EAAA;AACZM,QAAAA,IAAA,EAAA,CAAA;AACP,OAAA;AACSX,MAAAA,QAAA,EAAA,CAAA;OACRK,QAAQ,CAAA,CAAA;GACb,CAAA;AAEA,EAAA,IAAMU,QAAQ,SAARA,QAAc;AACXF,IAAAA,MAAA,EAAA,CAAA;GACT,CAAA;EAEO,OAAA;AACLN,IAAAA,SAAA,EAAAA,SAAA;AACAQ,IAAAA,KAAA,EAAAA,KAAA;AACAJ,IAAAA,IAAA,EAAAA,IAAA;AACAE,IAAAA,MAAA,EAAAA,MAAAA;GACF,CAAA;AACF;;;;"}