react-film
Version:
React component for showing carousel just like a film strip
39 lines (30 loc) • 2.35 kB
JavaScript
;
require("core-js/modules/es.object.define-property.js");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = _default;
require("core-js/modules/web.timers.js");
require("core-js/modules/es.date.now.js");
require("core-js/modules/es.date.to-string.js");
function later(fn, interval) {
if (interval > 0) {
return setTimeout(fn, interval);
}
fn();
}
function _default(fn, interval) {
var last = 0;
var timeout;
return function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
timeout || (timeout = later(function () {
timeout = null;
last = Date.now();
fn.apply(void 0, args);
}, interval + last - Date.now()));
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2RlYm91bmNlLmpzIl0sIm5hbWVzIjpbImxhdGVyIiwiZm4iLCJpbnRlcnZhbCIsInNldFRpbWVvdXQiLCJsYXN0IiwidGltZW91dCIsImFyZ3MiLCJEYXRlIiwibm93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTQSxLQUFULENBQWVDLEVBQWYsRUFBbUJDLFFBQW5CLEVBQTZCO0FBQzNCLE1BQUlBLFFBQVEsR0FBRyxDQUFmLEVBQWtCO0FBQ2hCLFdBQU9DLFVBQVUsQ0FBQ0YsRUFBRCxFQUFLQyxRQUFMLENBQWpCO0FBQ0Q7O0FBRURELEVBQUFBLEVBQUU7QUFDSDs7QUFFYyxrQkFBVUEsRUFBVixFQUFjQyxRQUFkLEVBQXdCO0FBQ3JDLE1BQUlFLElBQUksR0FBRyxDQUFYO0FBQ0EsTUFBSUMsT0FBSjtBQUVBLFNBQU8sWUFBbUI7QUFBQSxzQ0FBTkMsSUFBTTtBQUFOQSxNQUFBQSxJQUFNO0FBQUE7O0FBQ3hCRCxJQUFBQSxPQUFPLEtBQ0pBLE9BQU8sR0FBR0wsS0FBSyxDQUFDLFlBQU07QUFDckJLLE1BQUFBLE9BQU8sR0FBRyxJQUFWO0FBQ0FELE1BQUFBLElBQUksR0FBR0csSUFBSSxDQUFDQyxHQUFMLEVBQVA7QUFDQVAsTUFBQUEsRUFBRSxNQUFGLFNBQU1LLElBQU47QUFDRCxLQUplLEVBSWJKLFFBQVEsR0FBR0UsSUFBWCxHQUFrQkcsSUFBSSxDQUFDQyxHQUFMLEVBSkwsQ0FEWCxDQUFQO0FBTUQsR0FQRDtBQVFEIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gbGF0ZXIoZm4sIGludGVydmFsKSB7XG4gIGlmIChpbnRlcnZhbCA+IDApIHtcbiAgICByZXR1cm4gc2V0VGltZW91dChmbiwgaW50ZXJ2YWwpO1xuICB9XG5cbiAgZm4oKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGZuLCBpbnRlcnZhbCkge1xuICBsZXQgbGFzdCA9IDA7XG4gIGxldCB0aW1lb3V0O1xuXG4gIHJldHVybiBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgIHRpbWVvdXQgfHxcbiAgICAgICh0aW1lb3V0ID0gbGF0ZXIoKCkgPT4ge1xuICAgICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgbGFzdCA9IERhdGUubm93KCk7XG4gICAgICAgIGZuKC4uLmFyZ3MpO1xuICAgICAgfSwgaW50ZXJ2YWwgKyBsYXN0IC0gRGF0ZS5ub3coKSkpO1xuICB9O1xufVxuIl19