jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
83 lines (82 loc) • 3.54 kB
TypeScript
import React from 'react';
import type { ActionObject, Payload } from 'jamis-core';
import type { DropEvent, FileRejection } from 'react-dropzone';
import 'blueimp-canvastoblob';
import type { ImageFileValue, ImageFileX, InputImageProps } from './types';
interface ImageState {
uploading: boolean;
locked: boolean;
lockedReason?: string;
files: Array<ImageFileValue | ImageFileX>;
crop?: any;
error?: string;
cropFile?: ImageFileValue;
cropFileName?: string;
submitOnChange?: boolean;
frameImageWidth?: number;
}
declare class ImageControl extends React.Component<InputImageProps, ImageState> {
static defaultProps: Partial<InputImageProps>;
static valueToFile(value: string | object, props?: InputImageProps): ImageFileValue | undefined;
static sizeInfo(width: number | undefined, height: number | undefined): string;
state: ImageState;
files: Array<ImageFileValue | ImageFileX>;
fileUploadCancelExecutors: Array<{
file: any;
executor: () => void;
}>;
cropper: Cropper;
dropzone: React.RefObject<any>;
frameImageRef: React.RefObject<any>;
current: ImageFileValue | ImageFileX | null;
resolve?: (value?: any) => void;
emitValue: any;
unmounted: boolean;
initAutoFill: boolean;
reuploadIndex: undefined | number;
constructor(props: InputImageProps);
componentDidMount(): void;
componentDidUpdate(prevProps: InputImageProps): void;
componentWillUnmount(): void;
buildCrop(props: InputImageProps): false | {
aspectRatio?: number;
guides?: boolean;
dragMode?: string;
viewMode?: number;
rotatable?: boolean;
scalable?: boolean;
} | null | undefined;
handleDropRejected(rejectedFiles: FileRejection[], evt: React.DragEvent<any>): void;
startUpload(retry?: boolean): void;
toggleUpload(): void;
stopUpload(): void;
tick(): void;
removeFile(file: ImageFileValue, index: number): Promise<void>;
previewImage(file: ImageFileX, index: number, e: React.MouseEvent<any>): void;
editImage(index: number): void;
onChange(changeImmediately?: boolean, changeEvent?: boolean): Promise<void>;
syncAutoFill(): void;
handleSelect(): void;
handleRetry(index: number): void;
handleDrop(files: Array<ImageFileX>, e?: any, event?: DropEvent): void;
handlePaste(e: React.ClipboardEvent<any>): void;
handleCrop(): void;
cancelCrop(): void;
rotatableCrop(): void;
addFiles(files: Array<ImageFileX>): void;
sendFile(file: ImageFileX, cb: (error: null | string, file: ImageFileX, obj?: ImageFileValue) => void, onProgress: (progress: number) => void): void;
_upload(file: ImageFileX, cb: (error: null | string, file: Blob, obj?: ImageFileValue) => void, onProgress: (progress: number) => void): void;
_send(file: Blob, receiver: string, params: object, onProgress: (progress: number) => void): Promise<Payload>;
removeFileCanelExecutor(file: any, execute?: boolean): void;
handleClick(): void;
handleImageLoaded(index: number, e: React.UIEvent<any>): void;
handleFrameImageLoaded(e: React.UIEvent<any>): void;
validate(): any;
dispatchEvent(e: string, data?: Record<string, any>): Promise<void | import("jamis-core").RendererEvent<any, any>>;
doAction(action: ActionObject, data: object, throwErrors: boolean): void;
handleReSelect(index: number): void;
render(): JSX.Element;
}
export declare class ImageControlRenderer extends ImageControl {
}
export {};