requestAnimationTimeout.js 2.1 KB

12345678910111213141516171819202122232425262728293031
  1. "use strict";
  2. var _typeof = require("@babel/runtime/helpers/typeof");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.requestAnimationTimeout = exports.cancelAnimationTimeout = void 0;
  7. var _getRequestAnimationFrame = _interopRequireWildcard(require("./getRequestAnimationFrame"));
  8. function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
  9. function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
  10. var raf = (0, _getRequestAnimationFrame.default)();
  11. var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {
  12. return (0, _getRequestAnimationFrame.cancelRequestAnimationFrame)(frame.id);
  13. };
  14. exports.cancelAnimationTimeout = cancelAnimationTimeout;
  15. var requestAnimationTimeout = function requestAnimationTimeout(callback) {
  16. var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  17. var start = Date.now();
  18. function timeout() {
  19. if (Date.now() - start >= delay) {
  20. callback.call();
  21. } else {
  22. frame.id = raf(timeout);
  23. }
  24. }
  25. var frame = {
  26. id: raf(timeout)
  27. };
  28. return frame;
  29. };
  30. exports.requestAnimationTimeout = requestAnimationTimeout;