(defaults, transition, isLastClip)
| 25 | } |
| 26 | |
| 27 | export function calcTransition(defaults, transition, isLastClip) { |
| 28 | if (transition === null || isLastClip) return { duration: 0 }; |
| 29 | |
| 30 | const getTransitionDefault = (key) => (defaults.transition ? defaults.transition[key] : undefined); |
| 31 | |
| 32 | let transitionOrDefault = { |
| 33 | name: (transition && transition.name) || getTransitionDefault('name'), |
| 34 | duration: (transition && transition.duration != null) ? transition.duration : getTransitionDefault('duration'), |
| 35 | params: (transition && transition.params) || getTransitionDefault('params'), |
| 36 | easing: (transition && transition.easing !== undefined) ? transition.easing : getTransitionDefault('easing'), |
| 37 | audioOutCurve: (transition && transition.audioOutCurve) || getTransitionDefault('audioOutCurve'), |
| 38 | audioInCurve: (transition && transition.audioInCurve) || getTransitionDefault('audioInCurve'), |
| 39 | }; |
| 40 | |
| 41 | assert(!transitionOrDefault.duration || transitionOrDefault.name, 'Please specify transition name or set duration to 0'); |
| 42 | |
| 43 | if (transitionOrDefault.name === 'random' && transitionOrDefault.duration) { |
| 44 | transitionOrDefault = { ...transitionOrDefault, name: getRandomTransition() }; |
| 45 | } |
| 46 | |
| 47 | const aliasedTransition = { |
| 48 | 'directional-left': { name: 'directional', params: { direction: [1, 0] } }, |
| 49 | 'directional-right': { name: 'directional', params: { direction: [-1, 0] } }, |
| 50 | 'directional-down': { name: 'directional', params: { direction: [0, 1] } }, |
| 51 | 'directional-up': { name: 'directional', params: { direction: [0, -1] } }, |
| 52 | }[transitionOrDefault.name]; |
| 53 | if (aliasedTransition) { |
| 54 | transitionOrDefault = { ...transitionOrDefault, ...aliasedTransition }; |
| 55 | } |
| 56 | |
| 57 | return { |
| 58 | ...transitionOrDefault, |
| 59 | duration: transitionOrDefault.duration || 0, |
| 60 | easingFunction: getTransitionEasingFunction(transitionOrDefault.easing, transitionOrDefault.name), |
| 61 | }; |
| 62 | } |
no test coverage detected