first commit
This commit is contained in:
60
frontend/node_modules/rc-util/lib/raf.js
generated
vendored
Normal file
60
frontend/node_modules/rc-util/lib/raf.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
"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;
|
||||
Reference in New Issue
Block a user