UNPKG

bloom-layout

Version:
53 lines (37 loc) 1.35 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _properties = require('./properties'); var _properties2 = _interopRequireDefault(_properties); var _style = require('../style'); var _style2 = _interopRequireDefault(_style); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function onEnd(node, handler, duration) { var fakeEvent = { target: node, currentTarget: node }, backup; if (!_properties2.default.end) duration = 0;else if (duration == null) duration = parseDuration(node) || 0; if (_properties2.default.end) { node.addEventListener(_properties2.default.end, done, false); backup = setTimeout(function () { return done(fakeEvent); }, (duration || 100) * 1.5); } else setTimeout(done.bind(null, fakeEvent), 0); function done(event) { if (event.target !== event.currentTarget) return; clearTimeout(backup); event.target.removeEventListener(_properties2.default.end, done); handler.call(this); } } onEnd._parseDuration = parseDuration; exports.default = onEnd; function parseDuration(node) { var str = (0, _style2.default)(node, _properties2.default.duration), mult = str.indexOf('ms') === -1 ? 1000 : 1; return parseFloat(str) * mult; } module.exports = exports['default'];