@exadel/esl
Version:
Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components
17 lines (16 loc) • 664 B
JavaScript
/** Utility to promisify transition observation */
export function promisifyTransition($el, props) {
return new Promise((resolve) => {
function transitionCallback(e) {
if (e.target !== $el)
return;
if (typeof props === 'string' && props !== e.propertyName)
return;
$el.removeEventListener('transitionend', transitionCallback);
$el.removeEventListener('transitioncancel', transitionCallback);
resolve();
}
$el.addEventListener('transitionend', transitionCallback);
$el.addEventListener('transitioncancel', transitionCallback);
});
}