@barba/core
Version:
Create badass, fluid and smooth transition between your website's pages
43 lines (42 loc) • 1.39 kB
TypeScript
/**
* @module typings/core
*/
import { LinkEvent } from '../defs';
import { ISchemaPage, Trigger } from './index';
export interface ITransitionData {
current: ISchemaPage;
next: ISchemaPage;
trigger: Trigger;
event?: LinkEvent | PopStateEvent;
}
export interface ITransitionFilters {
once?: boolean;
self?: boolean;
}
export interface ITransitionRules {
namespace?: string | string[];
route?: string | string[];
custom?(data: ITransitionData): boolean;
}
export interface ITransitionPage extends ITransitionRules {
name?: string;
from?: ITransitionRules;
to?: ITransitionRules;
sync?: boolean;
priority?: number;
async?: () => (data?: any) => void;
beforeOnce?(data: ITransitionData): void;
once?(data: ITransitionData): Promise<void> | void;
afterOnce?(data: ITransitionData): void;
before?(data: ITransitionData): void;
beforeLeave?(data: ITransitionData): void;
leave?(data: ITransitionData): Promise<any> | void;
afterLeave?(data: ITransitionData): void;
beforeEnter?(data: ITransitionData): void;
enter?(data: ITransitionData): Promise<void> | void;
afterEnter?(data: ITransitionData): void;
after?(data: ITransitionData): void;
}
export interface ITransitionOnce extends ITransitionPage {
once?(data: ITransitionData): Promise<void>;
}