{ "version": 3, "sources": [ "raf.ts" ], "names": [ "lastTime", "request", "cancel", "init", "window", "requestAnimationFrame", "cancelAnimationFrame", "vendors", "vendor", "bind", "callback", "currTime", "Date", "now", "timeToCall", "Math", "max", "token", "setTimeout", "clearTimeout" ], "mappings": "AAAA,IAAIA,QAAQ,GAAG,CAAf;AACA,IAAIC,OAAJ;AACA,IAAIC,MAAJ;;AAEA,SAASC,IAAT,CAAeC,MAAf,EAA+B;AAC7BH,EAAAA,OAAO,GAAGG,MAAM,CAACC,qBAAjB;AACAH,EAAAA,MAAM,GAAGE,MAAM,CAACE,oBAAhB;;AAEA,MAAI,CAACL,OAAL,EAAc;AACZ,UAAMM,OAAO,GAAG,CAAC,IAAD,EAAO,KAAP,EAAc,QAAd,EAAwB,GAAxB,CAAhB;;AAEA,SAAK,MAAMC,MAAX,IAAqBD,OAArB,EAA8B;AAC5BN,MAAAA,OAAO,GAAGG,MAAM,CAAE,GAAEI,MAAO,uBAAX,CAAhB;AACAN,MAAAA,MAAM,GAAGE,MAAM,CAAE,GAAEI,MAAO,sBAAX,CAAN,IACPJ,MAAM,CAAE,GAAEI,MAAO,6BAAX,CADR;AAED;AACF;;AAEDP,EAAAA,OAAO,GAAGA,OAAO,IAAIA,OAAO,CAACQ,IAAR,CAAaL,MAAb,CAArB;AACAF,EAAAA,MAAM,GAAGA,MAAM,IAAIA,MAAM,CAACO,IAAP,CAAYL,MAAZ,CAAnB;;AAEA,MAAI,CAACH,OAAL,EAAc;AACZA,IAAAA,OAAO,GAAGS,QAAQ,IAAI;AACpB,YAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAL,EAAjB;AACA,YAAMC,UAAU,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAY,MAAML,QAAQ,GAAGX,QAAjB,CAAZ,CAAnB,CAFoB,CAGpB;;AACA,YAAMiB,KAAK,GAAGb,MAAM,CAACc,UAAP,CAAkB,MAAM;AAAER,QAAAA,QAAQ,CAACC,QAAQ,GAAGG,UAAZ,CAAR;AAAiC,OAA3D,EACZA,UADY,CAAd;AAGAd,MAAAA,QAAQ,GAAGW,QAAQ,GAAGG,UAAtB;AACA,aAAOG,KAAP;AACD,KATD;;AAWAf,IAAAA,MAAM,GAAGe,KAAK,IAAIE,YAAY,CAACF,KAAD,CAA9B;AACD;AACF;;AAED,eAAe;AACbhB,EAAAA,OAAO,EAAGS,QAAD,IAAoCT,OAAO,CAACS,QAAD,CADvC;AAEbR,EAAAA,MAAM,EAAGe,KAAD,IAAmBf,MAAM,CAACe,KAAD,CAFpB;AAGbd,EAAAA;AAHa,CAAf", "sourcesContent": [ "let lastTime = 0\nlet request: typeof requestAnimationFrame\nlet cancel: typeof cancelAnimationFrame\n\nfunction init (window: Window) {\n request = window.requestAnimationFrame\n cancel = window.cancelAnimationFrame\n\n if (!request) {\n const vendors = ['ms', 'moz', 'webkit', 'o']\n\n for (const vendor of vendors) {\n request = window[`${vendor}RequestAnimationFrame` as 'requestAnimationFrame']\n cancel = window[`${vendor}CancelAnimationFrame` as 'cancelAnimationFrame'] ||\n window[`${vendor}CancelRequestAnimationFrame` as 'cancelAnimationFrame']\n }\n }\n\n request = request && request.bind(window)\n cancel = cancel && cancel.bind(window)\n\n if (!request) {\n request = callback => {\n const currTime = Date.now()\n const timeToCall = Math.max(0, 16 - (currTime - lastTime))\n // eslint-disable-next-line node/no-callback-literal\n const token = window.setTimeout(() => { callback(currTime + timeToCall) },\n timeToCall)\n\n lastTime = currTime + timeToCall\n return token\n }\n\n cancel = token => clearTimeout(token)\n }\n}\n\nexport default {\n request: (callback: FrameRequestCallback) => request(callback),\n cancel: (token: number) => cancel(token),\n init,\n}\n" ] }