UNPKG

web-portals

Version:

web-portals

137 lines (127 loc) 3.37 kB
import { Module } from './module' import { Application } from './Application' declare interface Animate { el: Element duration: Function origin: Function } declare interface ModuleStatus { init: boolean preload: boolean prefetch: boolean prerender: boolean } declare interface ModuleElements { container: HTMLElement } declare interface ModuleResources { script?: Array<string> image?: Array<string> worker?: Array<string> video?: Array<string> audio?: Array<string> font?: Array<string> style?: Array<string> } declare interface ModuleManifest { config: ModuleConfig resources?: ModuleResources events?: ModuleEvents } declare interface ModuleTouchBorder { topHolder: HTMLElement rightHolder: HTMLElement bottomHolder: HTMLElement leftHolder: HTMLElement mainHolder: HTMLElement } declare interface ModuleConfig { title: string rel?: 'module' | 'frameworks' | 'system' level: number source: { src?: string html?: string } timeout?: number render?: (target: HTMLElement) => void prerender?: Array<string> free: boolean animation?: string | boolean | Array<string> | Array<Function> | Function background?: boolean | 'auto' singleFlow?: boolean index?: string limit?: number notFind?: string color?: string portal?: boolean events?: ModuleEvents capture?: string | ((resolve: { path: string; origin: string; host: string; search: string; }, url: string) => boolean) transient?: boolean allowHosts?: Array<string> touchBorder?: (borders: ModuleTouchBorder, module: Module, application: Application) => void apply?: Array<'smart-setTimeout' | 'smart-setInterval' | 'link-in-new-window' | 'tap-highlight' | ['tap-highlight', string]> inject?: (w: Window, m: Module) => void sandbox?: 'allow-same-origin' | 'allow-scripts' | 'allow-forms' | 'allow-modals' | 'allow-orientation-lock' | 'allow-popups' | 'allow-pointer-lock' | 'allow-popups-to-escape-sandbox' | 'allow-presentation' | 'allow-top-navigation' | 'allow-top-navigation-by-user-activation' | 'allow-downloads-without-user-activation' | 'allow-storage-access-by-user-activation' | 'allow-top-navigation-by-user-activation' | string } declare interface ModuleEvents { transformStart: () => void | boolean transformEnd: () => void start: () => void load: () => void loadError: () => void preload: () => void destroy: () => void } declare interface InjectBridgeData { config: ModuleConfig application: Application container: HTMLElement } declare interface TransformAnimateEvent { x: number y: number in: Animate out: Animate view: Array<HTMLElement> width: number height: number viewport: Array<HTMLElement> modules: Array<Module> reverse: boolean direction: number backset: number origin: string | Array<number> attach: string | Array<number> touches: TouchEvent | undefined callback: Function } declare interface TransformOptions { index: string defaultIndex: string singleFlow?: boolean singleLock?: boolean notFound?: string limit?: number exists?: boolean defaultAnimation?: ModuleConfig['animation'] } export { InjectBridgeData, TransformOptions, TransformAnimateEvent, Animate, ModuleStatus, ModuleElements, ModuleResources, ModuleManifest, ModuleEvents, ModuleConfig, Module, Application }