@egjs/imready
Version:
This module is used to wait for the image or video to be ready.
141 lines (140 loc) • 3.61 kB
TypeScript
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;
}