(el, expectedType)
| 6293 | var transformRE = /\b(transform|all)(,|$)/; |
| 6294 | |
| 6295 | function getTransitionInfo (el, expectedType) { |
| 6296 | var styles = window.getComputedStyle(el); |
| 6297 | var transitionDelays = styles[transitionProp + 'Delay'].split(', '); |
| 6298 | var transitionDurations = styles[transitionProp + 'Duration'].split(', '); |
| 6299 | var transitionTimeout = getTimeout(transitionDelays, transitionDurations); |
| 6300 | var animationDelays = styles[animationProp + 'Delay'].split(', '); |
| 6301 | var animationDurations = styles[animationProp + 'Duration'].split(', '); |
| 6302 | var animationTimeout = getTimeout(animationDelays, animationDurations); |
| 6303 | |
| 6304 | var type; |
| 6305 | var timeout = 0; |
| 6306 | var propCount = 0; |
| 6307 | /* istanbul ignore if */ |
| 6308 | if (expectedType === TRANSITION) { |
| 6309 | if (transitionTimeout > 0) { |
| 6310 | type = TRANSITION; |
| 6311 | timeout = transitionTimeout; |
| 6312 | propCount = transitionDurations.length; |
| 6313 | } |
| 6314 | } else if (expectedType === ANIMATION) { |
| 6315 | if (animationTimeout > 0) { |
| 6316 | type = ANIMATION; |
| 6317 | timeout = animationTimeout; |
| 6318 | propCount = animationDurations.length; |
| 6319 | } |
| 6320 | } else { |
| 6321 | timeout = Math.max(transitionTimeout, animationTimeout); |
| 6322 | type = timeout > 0 |
| 6323 | ? transitionTimeout > animationTimeout |
| 6324 | ? TRANSITION |
| 6325 | : ANIMATION |
| 6326 | : null; |
| 6327 | propCount = type |
| 6328 | ? type === TRANSITION |
| 6329 | ? transitionDurations.length |
| 6330 | : animationDurations.length |
| 6331 | : 0; |
| 6332 | } |
| 6333 | var hasTransform = |
| 6334 | type === TRANSITION && |
| 6335 | transformRE.test(styles[transitionProp + 'Property']); |
| 6336 | return { |
| 6337 | type: type, |
| 6338 | timeout: timeout, |
| 6339 | propCount: propCount, |
| 6340 | hasTransform: hasTransform |
| 6341 | } |
| 6342 | } |
| 6343 | |
| 6344 | function getTimeout (delays, durations) { |
| 6345 | /* istanbul ignore next */ |
no test coverage detected