57 lines
1.7 KiB
TypeScript
Raw Normal View History

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
/**
* A shared interface which contains an animation player
*/
export interface Player {
parent?: Player|null;
state: PlayState;
play(): void;
pause(): void;
finish(): void;
destroy(): void;
addEventListener(state: PlayState|string, cb: (data?: any) => any): void;
}
/**
* The state of a given player
*
* Do not change the increasing nature of the numbers since the player
* code may compare state by checking if a number is higher or lower than
* a certain numeric value.
*/
export const enum PlayState {Pending = 0, Running = 1, Paused = 2, Finished = 100, Destroyed = 200}
/**
* The context that stores all active animation players present on an element.
*/
export declare type PlayerContext = Player[];
export declare type ComponentInstance = {};
export declare type DirectiveInstance = {};
/**
* Designed to be used as an injection service to capture all animation players.
*
* When present all animation players will be passed into the flush method below.
* This feature is designed to service application-wide animation testing, live
* debugging as well as custom animation choreographing tools.
*/
export interface PlayerHandler {
/**
* Designed to kick off the player at the end of change detection
*/
flushPlayers(): void;
/**
* @param player The player that has been scheduled to run within the application.
* @param context The context as to where the player was bound to
*/
queuePlayer(player: Player, context: ComponentInstance|DirectiveInstance|HTMLElement): void;
}