Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

end.js 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _properties = _interopRequireDefault(require("./properties"));
  6. var _style = _interopRequireDefault(require("../style"));
  7. function onEnd(node, handler, duration) {
  8. var fakeEvent = {
  9. target: node,
  10. currentTarget: node
  11. },
  12. backup;
  13. if (!_properties.default.end) duration = 0;else if (duration == null) duration = parseDuration(node) || 0;
  14. if (_properties.default.end) {
  15. node.addEventListener(_properties.default.end, done, false);
  16. backup = setTimeout(function () {
  17. return done(fakeEvent);
  18. }, (duration || 100) * 1.5);
  19. } else setTimeout(done.bind(null, fakeEvent), 0);
  20. function done(event) {
  21. if (event.target !== event.currentTarget) return;
  22. clearTimeout(backup);
  23. event.target.removeEventListener(_properties.default.end, done);
  24. handler.call(this);
  25. }
  26. }
  27. onEnd._parseDuration = parseDuration;
  28. var _default = onEnd;
  29. exports.default = _default;
  30. function parseDuration(node) {
  31. var str = (0, _style.default)(node, _properties.default.duration),
  32. mult = str.indexOf('ms') === -1 ? 1000 : 1;
  33. return parseFloat(str) * mult;
  34. }
  35. module.exports = exports["default"];