Files
Adam Bradley e6068785f6 refactor(transitions): created Transition class
Created interfaces for NavOptions, AnimationOptions and
TransitionOptions Created Transition class and move transition ts files
to their own folder.
2016-02-10 01:57:54 -06:00

42 lines
1016 B
TypeScript

import {Animation} from '../animations/animation';
import {ViewController} from '../components/nav/view-controller';
/**
* @private
**/
export class Transition extends Animation {
constructor(opts: TransitionOptions) {
super(null, {
renderDelay: opts.renderDelay
});
}
static createTransition(enteringView: ViewController, leavingView: ViewController, opts: TransitionOptions): Transition {
let TransitionClass = TransitionRegistry[opts.animation];
if (!TransitionClass) {
// didn't find a transition animation, default to ios-transition
TransitionClass = TransitionRegistry['ios-transition'];
}
return new TransitionClass(enteringView, leavingView, opts);
}
static register(name: string, TransitionClass) {
TransitionRegistry[name] = TransitionClass;
}
}
export interface TransitionOptions {
animation: string;
duration: number;
easing: string;
direction: string;
renderDelay?: number;
isRTL?: boolean;
}
let TransitionRegistry = {};