packages/odo-helpers/src/events.js
function getTransitionEndEvent() {
  const div = document.createElement('div');
  div.style.transitionProperty = 'width';

  // Test the value which was just set. If it wasn't able to be set,
  // then it shouldn't use unprefixed transitions.
  /* istanbul ignore next */
  if (div.style.transitionProperty !== 'width' && 'webkitTransition' in div.style) {
    return 'webkitTransitionEnd';
  }

  return {
    // Saf < 7, Android Browser < 4.4
    WebkitTransition: 'webkitTransitionEnd',
    transition: 'transitionend',
  }[OdoDevice.Dom.TRANSITION];
}
function getTransitionEndEvent() {
  const div = document.createElement('div');
  div.style.transitionProperty = 'width';

  // Test the value which was just set. If it wasn't able to be set,
  // then it shouldn't use unprefixed transitions.
  /* istanbul ignore next */
  if (div.style.transitionProperty !== 'width' && 'webkitTransition' in div.style) {
    return 'webkitTransitionEnd';
  }

  return {
    // Saf < 7, Android Browser < 4.4
    WebkitTransition: 'webkitTransitionEnd',
    transition: 'transitionend',
  }[OdoDevice.Dom.TRANSITION];
}
function getTransitionEndEvent ( ) { const div = document . createElement ( 'div' ) ; div . style . transitionProperty = 'width' ; // Test the value which was just set. If it wasn't able to be set, // then it shouldn't use unprefixed transitions. /* istanbul ignore next */ if ( div . style . transitionProperty !== 'width' && 'webkitTransition' in div . style ) { return 'webkitTransitionEnd' ; } return { // Saf < 7, Android Browser < 4.4 WebkitTransition : 'webkitTransitionEnd' , transition : 'transitionend' , } [ OdoDevice . Dom . TRANSITION ] ; }
Returns a normalized transition end event name.

Issue with Modernizr prefixing related to stock Android 4.1.2
That version of Android has both unprefixed and prefixed transitions
built in, but will only listen to the prefixed on in certain cases
https://github.com/Modernizr/Modernizr/issues/897

@return {string} A patched transition end event name.
Returns a normalized transition end event name .