UNPKG

@barba/core

Version:

Create badass, fluid and smooth transition between your website's pages

43 lines (42 loc) 1.39 kB
/** * @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>; }