choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
140 lines (139 loc) • 5.63 kB
TypeScript
import React, { ReactElement, ReactNode } from 'react';
import { Uploader } from 'choerodon-ui/dataset';
import { UploaderProps } from 'choerodon-ui/dataset/uploader/Uploader';
import { ButtonProps } from '../button/Button';
import { FormField, FormFieldProps } from '../field/FormField';
import AttachmentFile, { FileLike } from '../data-set/AttachmentFile';
import { FieldType } from '../data-set/enum';
import { ValidationMessages } from '../validator/Validator';
import ValidationResult from '../validator/ValidationResult';
import Dragger from './Dragger';
import { ShowHelp } from '../field/enum';
import { ShowValidation } from '../form/enum';
export declare type AttachmentListType = 'text' | 'picture' | 'picture-card';
export interface AttachmentProps extends FormFieldProps, ButtonProps, UploaderProps {
listType?: AttachmentListType;
viewMode?: 'none' | 'list' | 'popup';
sortable?: boolean;
pictureWidth?: number;
count?: number;
max?: number;
listLimit?: number;
showHistory?: boolean;
showSize?: boolean;
showValidation?: ShowValidation;
attachments?: (AttachmentFile | FileLike)[];
onAttachmentsChange?: (attachments: AttachmentFile[]) => void;
getUUID?: () => Promise<string> | string;
downloadAll?: ButtonProps | boolean;
previewTarget?: string;
dragUpload?: boolean;
dragBoxRender?: ReactNode[];
__inGroup?: boolean;
}
export declare type Sort = {
type: 'time' | 'name';
order: 'asc' | 'desc';
custom?: boolean;
};
export default class Attachment extends FormField<AttachmentProps> {
static displayName: string;
static Dragger: typeof Dragger;
static defaultProps: {
suffixCls: string;
multiple: boolean;
sortable: boolean;
showSize: boolean;
downloadAll: boolean;
listType: string;
viewMode: string;
dragUpload: boolean;
readOnly: boolean;
disabled: boolean;
noValidate: boolean;
trim: import("../data-set/enum").FieldTrim;
};
static __IS_IN_CELL_EDITOR: boolean;
static __PRO_ATTACHMENT: boolean;
static Group: React.FunctionComponent<import("./AttachmentGroup").AttachmentGroupProps>;
sort?: Sort;
popup?: boolean;
dragState?: string;
uploader?: Uploader;
tempAttachmentUUID?: string | undefined;
get help(): any;
get bucketName(): any;
get bucketDirectory(): any;
get storageCode(): any;
get fileKey(): any;
get isPublic(): any;
get attachments(): AttachmentFile[] | undefined;
set attachments(attachments: AttachmentFile[] | undefined);
get count(): number | undefined;
get defaultValidationMessages(): ValidationMessages;
private reaction?;
componentDidMount(): void;
componentDidUpdate(prevProps: AttachmentProps): void;
componentWillUnmount(): void;
getFieldType(): FieldType;
getObservableProps(props: any, context: any): any;
getValidAttachments(): AttachmentFile[] | undefined;
getValidatorProp(key: string): any;
fetchCount(): void;
handleDataSetLoad(): void;
getOmitPropsKeys(): string[];
isAcceptFile(attachment: AttachmentFile, accept: string[]): boolean;
getAttachmentUUID(): Promise<string>;
fetchAttachmentUUID(): Promise<string> | string;
uploadAttachments(attachments: AttachmentFile[]): Promise<void>;
uploadAttachment(attachment: AttachmentFile): Promise<void>;
getUploaderProps(): UploaderProps;
upload(attachment: AttachmentFile): Promise<void>;
getOtherProps(): any;
processFiles(files: File[], attachmentUUID: string): AttachmentFile[];
handleChange(e: any): void;
doRemove(attachment: AttachmentFile): Promise<any> | undefined;
handleHistory(attachment: AttachmentFile, attachmentUUID: string): void;
handleRemove(attachment: AttachmentFile): Promise<any> | undefined;
handleFetchAttachment(fetchProps: {
bucketName?: string;
bucketDirectory?: string;
storageCode?: string;
attachmentUUID: string;
isPublic?: boolean;
}): void;
handlePreview(): void;
removeAttachment(attachment: AttachmentFile): undefined;
handleDragUpload: (file: File) => boolean;
handleClick(e: any): void;
getUid(index: number): string;
renderHeaderLabel(): JSX.Element | undefined;
isDisabled(): boolean;
isValid(): boolean;
renderUploadBtn(isCardButton: boolean, label?: ReactNode): ReactElement<ButtonProps>;
showTooltip(e: any): boolean;
renderViewButton(label?: ReactNode): ReactElement<ButtonProps>;
handleSort(sort: Sort): void;
handleOrderChange(props: any): void;
changeOrder(): void;
getSortSelectPopupContainer(): any;
renderSorter(): ReactNode;
renderUploadList(uploadButton?: ReactNode): JSX.Element | undefined;
renderHeader(uploadBtn?: ReactNode): JSX.Element | undefined;
renderWrapper(): ReactNode;
getTooltipValidationMessage(): ReactNode;
renderValidationResult(validationResult?: ValidationResult): ReactNode;
renderEmpty(): JSX.Element | undefined;
getWrapperClassNames(): string;
renderWrapperList(uploadBtn?: ReactNode): JSX.Element;
getPictureWidth(): number;
renderHelp(forceHelpMode?: ShowHelp): ReactNode;
get showValidation(): ShowValidation.tooltip | ShowValidation | ShowValidation.newLine;
handlePopupHiddenChange(hidden: any): void;
setPopup(popup: any): void;
setDragState(state: any): void;
handleFileDrop(e: any): void;
renderDefaultDragBox(): JSX.Element;
renderDragUploadArea(): JSX.Element | undefined;
render(): JSX.Element;
}