{"version":3,"file":"raf.mjs","sources":["../../../../../packages/utils/vue/raf.ts"],"sourcesContent":["let rafFn = (callback: FrameRequestCallback) => setTimeout(callback, 16) as any;\nlet caf = (num: number) => clearTimeout(num);\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n  rafFn = (callback: FrameRequestCallback) => window.requestAnimationFrame(callback);\n  caf = (handle: number) => window.cancelAnimationFrame(handle);\n}\n\nlet rafUUID = 0;\nconst rafIds = new Map<number, number>();\n\nfunction cleanup(id: number) {\n  rafIds.delete(id);\n}\n\nexport function raf(callback: () => void, times = 1): number {\n  rafUUID += 1;\n  const id = rafUUID;\n\n  function callRef(leftTimes: number) {\n    if (leftTimes === 0) {\n      // Clean up\n      cleanup(id);\n\n      // Trigger\n      callback();\n    } else {\n      // Next raf\n      const realId = rafFn(() => {\n        callRef(leftTimes - 1);\n      });\n\n      // Bind real raf id\n      rafIds.set(id, realId);\n    }\n  }\n\n  callRef(times);\n\n  return id;\n}\n\nraf.cancel = (id: number) => {\n  const realId = rafIds.get(id);\n  cleanup(realId);\n  return caf(realId);\n};\n"],"names":[],"mappings":"AAAA,IAAI,KAAQ,GAAA,CAAC,QAAmC,KAAA,UAAA,CAAW,UAAU,EAAE,CAAA,CAAA;AACvE,IAAI,GAAM,GAAA,CAAC,GAAgB,KAAA,YAAA,CAAa,GAAG,CAAA,CAAA;AAE3C,IAAI,OAAO,MAAA,KAAW,WAAe,IAAA,uBAAA,IAA2B,MAAQ,EAAA;AACtE,EAAA,KAAA,GAAQ,CAAC,QAAA,KAAmC,MAAO,CAAA,qBAAA,CAAsB,QAAQ,CAAA,CAAA;AACjF,EAAA,GAAA,GAAM,CAAC,MAAA,KAAmB,MAAO,CAAA,oBAAA,CAAqB,MAAM,CAAA,CAAA;AAC9D,CAAA;AAEA,IAAI,OAAU,GAAA,CAAA,CAAA;AACd,MAAM,MAAA,uBAAa,GAAoB,EAAA,CAAA;AAEvC,SAAS,QAAQ,EAAY,EAAA;AAC3B,EAAA,MAAA,CAAO,OAAO,EAAE,CAAA,CAAA;AAClB,CAAA;AAEgB,SAAA,GAAA,CAAI,QAAsB,EAAA,KAAA,GAAQ,CAAW,EAAA;AAC3D,EAAW,OAAA,IAAA,CAAA,CAAA;AACX,EAAA,MAAM,EAAK,GAAA,OAAA,CAAA;AAEX,EAAA,SAAS,QAAQ,SAAmB,EAAA;AAClC,IAAA,IAAI,cAAc,CAAG,EAAA;AAEnB,MAAA,OAAA,CAAQ,EAAE,CAAA,CAAA;AAGV,MAAS,QAAA,EAAA,CAAA;AAAA,KACJ,MAAA;AAEL,MAAM,MAAA,MAAA,GAAS,MAAM,MAAM;AACzB,QAAA,OAAA,CAAQ,YAAY,CAAC,CAAA,CAAA;AAAA,OACtB,CAAA,CAAA;AAGD,MAAO,MAAA,CAAA,GAAA,CAAI,IAAI,MAAM,CAAA,CAAA;AAAA,KACvB;AAAA,GACF;AAEA,EAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAEb,EAAO,OAAA,EAAA,CAAA;AACT,CAAA;AAEA,GAAI,CAAA,MAAA,GAAS,CAAC,EAAe,KAAA;AAC3B,EAAM,MAAA,MAAA,GAAS,MAAO,CAAA,GAAA,CAAI,EAAE,CAAA,CAAA;AAC5B,EAAA,OAAA,CAAQ,MAAM,CAAA,CAAA;AACd,EAAA,OAAO,IAAI,MAAM,CAAA,CAAA;AACnB,CAAA;;;;"}