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