import React from 'react'; import type { CropperProps } from 'react-easy-crop'; import { SliderMarks } from "../../Slider/interface"; export type { RcFile } from 'rc-upload/lib/interface'; export type ImgCropMark = Boolean | SliderMarks | undefined; export interface ImgCropProps { /** 纵横比 默认 1 */ aspect?: number; /** 形状:矩形、圆形 默认 rect*/ shape?: 'rect' | 'round'; /** 是否显示网格 */ grid?: boolean; /** 图片质量 默认 0.4*/ quality?: number; /** 填充颜色 */ fillColor?: string; /** 是否支持缩放 */ zoom?: boolean; /** 是否支持旋转 */ rotate?: boolean; /** 缩放滑块标签,为true时展示默认滑块 */ zoomMarks?: ImgCropMark; /** 缩放滑块标签格式化 */ zoomTipFormatter?: null | ((value?: number) => React.ReactNode) | undefined; /** 旋转滑块标签,为true时展示默认滑块 */ rotateMarks?: ImgCropMark; /** 旋转滑块标签格式化 */ rotateTipFormatter?: null | ((value?: number) => React.ReactNode); /** 固定裁剪大小 */ fixedCropSize?: { width: number; height: number; }; /** 最小缩放值 */ minZoom?: number; /** 最大缩放值 */ maxZoom?: number; /** modal title */ modalTitle?: React.ReactNode; /** modal 宽度 */ modalWidth?: number | string; /** modal ok text*/ modalOk?: string; /** modal cancel text*/ modalCancel?: string; /** ok callback */ onModalOk?: (file: void | boolean | string | Blob | File) => void; /** cancel callback */ onModalCancel?: () => void; /** modal 打开之前的回调,若返回false,则不打开弹框 */ beforeCrop?: (file: File, fileList: File[]) => boolean | Promise; /** upload fail callback */ onUploadFail?: (err: Error) => void; /** Props of react-easy-crop (* existing props cannot be overridden) */ cropperProps?: Partial; /** 子节点 */ children: JSX.Element; }