UNPKG

@player-ui/player

Version:

37 lines 1.62 kB
import { SyncHook, SyncWaterfallHook } from "tapable-ts"; import type { View, NavigationFlowViewState } from "@player-ui/types"; import type { Resolve } from "../../view"; import { ViewInstance } from "../../view"; import type { Logger } from "../../logger"; import type { FlowController } from "../flow"; import type { DataController } from "../data/controller"; import type { TransformRegistry } from "./types"; export interface ViewControllerOptions { /** Where to get data from */ model: DataController; /** Where to log data */ logger?: Logger; /** A flow-controller instance to listen for view changes */ flowController: FlowController; } /** A controller to manage updating/switching views */ export declare class ViewController { readonly hooks: { /** Do any processing before the `View` instance is created */ resolveView: SyncWaterfallHook<[(import("@player-ui/types").Asset<string> & { validation?: Array<import("@player-ui/types").Validation.CrossfieldReference>; }) | undefined, string, NavigationFlowViewState], Record<string, any>>; view: SyncHook<[ViewInstance], Record<string, any>>; }; private readonly viewMap; private readonly viewOptions; private pendingUpdate?; currentView?: ViewInstance; transformRegistry: TransformRegistry; optimizeUpdates: boolean; constructor(initialViews: View[], options: Resolve.ResolverOptions & ViewControllerOptions); private queueUpdate; private getViewForRef; onView(state: NavigationFlowViewState): void; } //# sourceMappingURL=controller.d.ts.map