(el, expectedType)
| 5851 | var transformRE = /\b(transform|all)(,|$)/; |
| 5852 | |
| 5853 | function getTransitionInfo (el, expectedType) { |
| 5854 | var styles = window.getComputedStyle(el); |
| 5855 | var transitionDelays = styles[transitionProp + 'Delay'].split(', '); |
| 5856 | var transitionDurations = styles[transitionProp + 'Duration'].split(', '); |
| 5857 | var transitionTimeout = getTimeout(transitionDelays, transitionDurations); |
| 5858 | var animationDelays = styles[animationProp + 'Delay'].split(', '); |
| 5859 | var animationDurations = styles[animationProp + 'Duration'].split(', '); |
| 5860 | var animationTimeout = getTimeout(animationDelays, animationDurations); |
| 5861 | |
| 5862 | var type; |
| 5863 | var timeout = 0; |
| 5864 | var propCount = 0; |
| 5865 | /* istanbul ignore if */ |
| 5866 | if (expectedType === TRANSITION) { |
| 5867 | if (transitionTimeout > 0) { |
| 5868 | type = TRANSITION; |
| 5869 | timeout = transitionTimeout; |
| 5870 | propCount = transitionDurations.length; |
| 5871 | } |
| 5872 | } else if (expectedType === ANIMATION) { |
| 5873 | if (animationTimeout > 0) { |
| 5874 | type = ANIMATION; |
| 5875 | timeout = animationTimeout; |
| 5876 | propCount = animationDurations.length; |
| 5877 | } |
| 5878 | } else { |
| 5879 | timeout = Math.max(transitionTimeout, animationTimeout); |
| 5880 | type = timeout > 0 |
| 5881 | ? transitionTimeout > animationTimeout |
| 5882 | ? TRANSITION |
| 5883 | : ANIMATION |
| 5884 | : null; |
| 5885 | propCount = type |
| 5886 | ? type === TRANSITION |
| 5887 | ? transitionDurations.length |
| 5888 | : animationDurations.length |
| 5889 | : 0; |
| 5890 | } |
| 5891 | var hasTransform = |
| 5892 | type === TRANSITION && |
| 5893 | transformRE.test(styles[transitionProp + 'Property']); |
| 5894 | return { |
| 5895 | type: type, |
| 5896 | timeout: timeout, |
| 5897 | propCount: propCount, |
| 5898 | hasTransform: hasTransform |
| 5899 | } |
| 5900 | } |
| 5901 | |
| 5902 | function getTimeout (delays, durations) { |
| 5903 | /* istanbul ignore next */ |
no test coverage detected