jb-image-input
Version:
image input web component
36 lines (33 loc) • 1.22 kB
text/typescript
import type {EventTypeWithTarget} from 'jb-core';
import type { JBImageInputWebComponent } from './jb-image-input';
export type JBImagesImageInputElements = {
webComponent:HTMLDivElement;
placeHolderWrapper:HTMLDivElement;
placeHolderTitle:HTMLDivElement;
placeHolderMessageBox: HTMLDivElement;
image:HTMLImageElement;
overlay:{
container:HTMLDivElement,
deleteButton:HTMLDivElement,
downloadButton:HTMLDivElement
}
errorOverlay:{
container:HTMLDivElement,
message:HTMLDivElement
}
}
export type ViewStatus = "downloaded" | "empty" | "uploading" | "uploaded";
export type JBImageInputBridge<TValue> = {
downloader: (downloaderInput:TValue, config:JBImageInputConfig) => Promise<string>;
uploader: (file:File , config:JBImageInputConfig, onProgressCallback?:(percent:number)=>void) => Promise<TValue>;
}
export type JBImageInputConfig = {
uploadUrl?: string,
downloadUrl?: string,
[key:string]:any
}
export type ValidationValue<TValue> = {
file:File,
value:TValue
}
export type JBImageInputEventType<TEvent,TValue> = EventTypeWithTarget<TEvent,JBImageInputWebComponent<TValue>>;