UNPKG

@egjs/imready

Version:

This module is used to wait for the image or video to be ready.

141 lines (140 loc) 3.61 kB
import Component, { ComponentEvent } from "@egjs/component"; import Loader from "./loaders/Loader"; export interface ImReadyOptions { prefix: string; loaders: Record<string, new (target: HTMLElement, options: ImReadyLoaderOptions) => Loader>; } export interface ImReadyLoaderInterface extends Component<{ [key: string]: any; }> { check(): boolean; } export interface ImReadyLoaderOptions { prefix: string; } export interface ElementInfo { element: HTMLElement; loader: Loader | null; hasError: boolean; isPreReady: boolean; hasLoading: boolean; isReady: boolean; isSkip: boolean; } export interface AutoSizerElement extends HTMLElement { __PREFIX__?: string; } export interface ArrayFormat<T> { [index: number]: T; length: number; } export interface ImReadyHooksProps extends ImReadyOptions { selector: string; useReadyElement: boolean; useReady: boolean; usePreReadyElement: boolean; usePreReady: boolean; useError: boolean; } export interface ImReadyReactiveProps extends ImReadyOptions { selector: string; useReadyElement: boolean; useReady: boolean; usePreReadyElement: boolean; usePreReady: boolean; useError: boolean; } export interface ImReadyHooksValue { hasError: boolean; errorCount: number; totalErrorCount: number; preReadyCount: number; readyCount: number; totalCount: number; isPreReady: boolean; isReady: boolean; isPreReadyOver: boolean; } export interface OnError extends ComponentEvent { element: HTMLElement; index: number; target: HTMLElement; errorCount: number; totalErrorCount: number; } export interface OnPreReadyElement extends ComponentEvent { element: HTMLElement; index: number; preReadyCount: number; readyCount: number; totalCount: number; hasLoading: boolean; isPreReady: boolean; isReady: boolean; isSkip: boolean; } export interface OnReadyElement extends ComponentEvent { element: HTMLElement; index: number; preReadyCount: number; readyCount: number; errorCount: number; totalErrorCount: number; totalCount: number; hasLoading: boolean; isPreReady: boolean; isReady: boolean; hasError: boolean; isPreReadyOver: boolean; isSkip: boolean; } export interface OnPreReady extends ComponentEvent { readyCount: number; totalCount: number; isReady: boolean; hasLoading: boolean; } export interface OnReady extends ComponentEvent { errorCount: number; totalErrorCount: number; totalCount: number; } export interface ImReadyEvents { preReadyElement: OnPreReadyElement; readyElement: OnReadyElement; error: OnError; preReady: OnPreReady; ready: OnReady; } export interface ImReadyReactiveState { readonly preReadyCount: number; readonly readyCount: number; readonly errorCount: number; readonly totalErrorCount: number; readonly totalCount: number; readonly isPreReady: boolean; readonly isReady: boolean; readonly hasError: boolean; readonly isPreReadyOver: boolean; } export interface OnLoaderError { element: HTMLElement; target: HTMLElement; } export interface OnLoaderPreReady { element: HTMLElement; hasLoading: boolean; isSkip: boolean; } export interface OnLoaderReady { element: HTMLElement; withPreReady: boolean; hasLoading: boolean; isSkip: boolean; } export interface ImReadyLoaderEvents { error: OnLoaderError; ready: OnLoaderReady; preReady: OnLoaderPreReady; [key: string]: any; }