ng-reorder
Version:
Sort elements within a list by using drag-n-drop interface without any restrictions by direction
35 lines • 4.75 kB
JavaScript
/**
* Returns time of a transition of a speciphic property in miliseconds.
* @param element DOM element to check
* @param property required CSS property
* @param includeAll include or not the "all" property. By default true
*/
export function transitionTimeOf(element, property, includeAll = true) {
const style = getComputedStyle(element);
const properties = style.transitionProperty.split(',');
// filter for the 'all' property
const target = ($) => {
if (includeAll) {
return $ === property || $ === 'all';
}
else {
return $ === property;
}
};
const foundProperty = properties.find(target);
// If no fouded property returns zero
if (!foundProperty) {
return 0;
}
const index = properties.indexOf(foundProperty);
let delay = style.transitionDelay.split(',')[index];
let duration = style.transitionDuration.split(',')[index];
// Destructuring assignment.
// Next lines check whether the values in ms and return parsed time in ms
[delay, duration] = [delay, duration].map($ => {
const k = $.toLowerCase().indexOf('ms') !== -1 ? 1 : 1000;
return parseFloat($) * k;
});
return delay + duration;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXJlb3JkZXIvc3JjL2xpYi90cmFuc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQW9CLEVBQUUsUUFBZ0IsRUFBRSxhQUFzQixJQUFJO0lBRWxHLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXhDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFdkQsZ0NBQWdDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDcEIsSUFBSSxVQUFVLEVBQUU7WUFBRSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQztTQUFFO2FBQU07WUFBRSxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7U0FBRTtJQUMxRixDQUFDLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLHFDQUFxQztJQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ25CLE9BQU8sQ0FBQyxDQUFDO0tBQ1Q7SUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hELElBQUksS0FBSyxHQUFvQixLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRSxJQUFJLFFBQVEsR0FBb0IsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUUzRSw0QkFBNEI7SUFDNUIseUVBQXlFO0lBQ3pFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUM3QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEtBQUssR0FBRyxRQUFRLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBSZXR1cm5zIHRpbWUgb2YgYSB0cmFuc2l0aW9uIG9mIGEgc3BlY2lwaGljIHByb3BlcnR5IGluIG1pbGlzZWNvbmRzLlxyXG4gKiBAcGFyYW0gZWxlbWVudCBET00gZWxlbWVudCB0byBjaGVja1xyXG4gKiBAcGFyYW0gcHJvcGVydHkgcmVxdWlyZWQgQ1NTIHByb3BlcnR5XHJcbiAqIEBwYXJhbSBpbmNsdWRlQWxsIGluY2x1ZGUgb3Igbm90IHRoZSBcImFsbFwiIHByb3BlcnR5LiBCeSBkZWZhdWx0IHRydWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2l0aW9uVGltZU9mKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcm9wZXJ0eTogc3RyaW5nLCBpbmNsdWRlQWxsOiBib29sZWFuID0gdHJ1ZSkge1xyXG5cclxuXHRjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcblxyXG5cdGNvbnN0IHByb3BlcnRpZXMgPSBzdHlsZS50cmFuc2l0aW9uUHJvcGVydHkuc3BsaXQoJywnKTtcclxuXHJcblx0Ly8gZmlsdGVyIGZvciB0aGUgJ2FsbCcgcHJvcGVydHlcclxuXHRjb25zdCB0YXJnZXQgPSAoJCkgPT4ge1xyXG5cdFx0aWYgKGluY2x1ZGVBbGwpIHsgcmV0dXJuICQgPT09IHByb3BlcnR5IHx8ICQgPT09ICdhbGwnOyB9IGVsc2UgeyByZXR1cm4gJCA9PT0gcHJvcGVydHk7IH1cclxuXHR9O1xyXG5cclxuXHRjb25zdCBmb3VuZFByb3BlcnR5ID0gcHJvcGVydGllcy5maW5kKHRhcmdldCk7XHJcblx0Ly8gSWYgbm8gZm91ZGVkIHByb3BlcnR5IHJldHVybnMgemVyb1xyXG5cdGlmICghZm91bmRQcm9wZXJ0eSkge1xyXG5cdFx0cmV0dXJuIDA7XHJcblx0fVxyXG5cclxuXHRjb25zdCBpbmRleCA9IHByb3BlcnRpZXMuaW5kZXhPZihmb3VuZFByb3BlcnR5KTtcclxuXHRsZXQgZGVsYXk6IG51bWJlciB8IHN0cmluZyA9IHN0eWxlLnRyYW5zaXRpb25EZWxheS5zcGxpdCgnLCcpW2luZGV4XTtcclxuXHRsZXQgZHVyYXRpb246IG51bWJlciB8IHN0cmluZyA9IHN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbi5zcGxpdCgnLCcpW2luZGV4XTtcclxuXHJcblx0Ly8gRGVzdHJ1Y3R1cmluZyBhc3NpZ25tZW50LlxyXG5cdC8vIE5leHQgbGluZXMgY2hlY2sgd2hldGhlciB0aGUgdmFsdWVzIGluIG1zIGFuZCByZXR1cm4gcGFyc2VkIHRpbWUgaW4gbXNcclxuXHRbZGVsYXksIGR1cmF0aW9uXSA9IFtkZWxheSwgZHVyYXRpb25dLm1hcCgkID0+IHtcclxuXHRcdGNvbnN0IGsgPSAkLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignbXMnKSAhPT0gLTEgPyAxIDogMTAwMDtcclxuXHRcdHJldHVybiBwYXJzZUZsb2F0KCQpICogaztcclxuXHR9KTtcclxuXHRyZXR1cm4gZGVsYXkgKyBkdXJhdGlvbjtcclxufVxyXG4iXX0=