123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var raf = function raf(callback) {
- return +setTimeout(callback, 16);
- };
- var caf = function caf(num) {
- return clearTimeout(num);
- };
- if (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {
- raf = function raf(callback) {
- return window.requestAnimationFrame(callback);
- };
- caf = function caf(handle) {
- return window.cancelAnimationFrame(handle);
- };
- }
- var rafUUID = 0;
- var rafIds = new Map();
- function cleanup(id) {
- rafIds.delete(id);
- }
- var wrapperRaf = function wrapperRaf(callback) {
- var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- rafUUID += 1;
- var id = rafUUID;
- function callRef(leftTimes) {
- if (leftTimes === 0) {
- // Clean up
- cleanup(id);
- // Trigger
- callback();
- } else {
- // Next raf
- var realId = raf(function () {
- callRef(leftTimes - 1);
- });
- // Bind real raf id
- rafIds.set(id, realId);
- }
- }
- callRef(times);
- return id;
- };
- wrapperRaf.cancel = function (id) {
- var realId = rafIds.get(id);
- cleanup(id);
- return caf(realId);
- };
- if (process.env.NODE_ENV !== 'production') {
- wrapperRaf.ids = function () {
- return rafIds;
- };
- }
- var _default = exports.default = wrapperRaf;
|