import { TextAreaStatus } from '@beisen-phoenix/textarea'; import { Url, OnError, OnChange } from '@beisen-phoenix/upload'; import { IPreviewItemFile } from '@beisen-phoenix/file-list'; import * as React from 'react'; export interface ICommentorProps extends ICommentorButtonAreaProps, IPersonSelectOption, IBtnOptions { textAreaOption?: ITextAreaOption; sureCancelBtnOption?: ISureCancelBtnOption; isInsertUploadFileText?: boolean; } export interface IBtnOptions { isShowMentionAllBtn?: boolean; isShowMentionBtn?: boolean; isShowEmojyBtn?: boolean; isShowRewardBtn?: boolean; isShowVisible?: boolean; isShowUploadBtn?: boolean; } export interface ICommentorButtonAreaProps extends IButtonAreaRightOption, IButtonAreaLeftOption { } export interface IButtonAreaLeftOption { mentionBtnOption?: IAtColleagueBtnOptions; mentionAllBtnOption?: IAtAllColleagueBtnProps; uploadBtnOption: UploadBtnOption; emojyBtnOption?: EmojyBtnOption; rewardBtnOption?: RewardBtnOption; operationBtnExternal?: React.ReactElement | React.ReactElement[]; onLableVisibleChange?: (flag: boolean) => void; } export interface IButtonAreaLeftProps extends IButtonAreaLeftOption { rightBoxRef: any; btnBoxRef: any; } export interface IButtonAreaRightOption { sureCancelBtnOption?: ISureCancelBtnProps; visibleRangeOption?: IVisibleRangeProps; } export interface IButtonAreaRightProps extends IButtonAreaRightOption { getRightRef?: any; } export interface ITextAreaOption { placeholder?: string; maxLength?: number; value?: string; status?: T; autoHeight?: boolean; getTextRef?: (ref: HTMLTextAreaElement) => void; onTextChange?: (vale: string) => void; onTextFocus?: (vale: string) => void; onTextBlur?: (vale: string) => void; } export declare type sureButtonType = (value: string | React.MouseEvent, files?: IPreviewItemFile[]) => void; export interface ISureCancelBtnOption { sureBtnText?: string; sureBtnLoading?: boolean; onSureBtnClick?: sureButtonType; cancelBtnText?: string; isShowCancelBtn?: boolean; onCancelBtnClick?: (e: React.MouseEvent) => void; } export interface ISureCancelBtnProps extends ISureCancelBtnOption { sureBtnDisable?: boolean; } export interface IVisibleRangeProps { items?: Array; selectedValue?: string | number; visibleBtnText: string; onChange?: (value: IVisibleRangeItems) => void; } export interface IVisibleRangeItems { label: string; value: string | number; disabled?: boolean; } export interface IAtAllColleagueBtnProps extends CommonBtnOption, IShowLabel { onClick?: (e: React.MouseEvent) => void; } export interface IUploadBtnProps extends UploadBtnOption, IShowLabel { } export interface UploadBtnOption extends CommonBtnOption { files: IPreviewItemFile[]; maxSize?: number; onFilesChange?: OnChange; maxFiles?: number; url?: Url; onError?: OnError; } export interface EmojyBtnOption extends CommonBtnOption { zIndex?: number; getData?: () => any; } export interface IEmojyBtnProps extends EmojyBtnOption, IShowLabel { } export declare type TranslationType = { [index: string]: string; }; export interface IPersonSelectOption { userAdvanceMode?: boolean; tenantId: string | number; userId: string | number; apiPath: string; userTranslation?: TranslationType; dataProvideByExternalPromise?: boolean; contactPromise?: Function; staffPromise?: Function; departmentPromise?: Function; departmentStaffPromise?: Function; searchPromise?: Function; } export interface IAtColleagueBtnOptions extends CommonBtnOption { } export interface IAtColleagueBtnProps extends IAtColleagueBtnOptions, IShowLabel { } export interface CommonBtnOption { label?: string; tip?: string; tipIsHTMLContent?: boolean; } export interface Staff { Id: number; Name: string; Email: string; Avatar?: string; AvatarColor?: string; DepartmentId?: number; } export interface FileListProps { files: IPreviewItemFile[]; onDelete?: (fileData: IPreviewItemFile) => void; } export interface RewardBtnOption extends CommonBtnOption { onClick?: (e: React.MouseEvent) => void; } export interface IRewardBtnProps extends RewardBtnOption, IShowLabel { } export interface IShowLabel { isShowLabel?: boolean; } export declare enum EStatus { done = "done", progress = "progress", error = "error", uploadFinish = "uploadFinish", pending = "pending" } export interface INewUploadFileType { name: string; status: EStatus; mediaType: string; previewUrl?: string; downloadUrl?: string; percent?: number; raw?: File; id?: string; lid?: string; dfsPath?: string; }