UNPKG

jamis

Version:

一种支持通过JSON配置方式生成页面的组件库

68 lines (67 loc) 1.89 kB
import React from 'react'; import type { LocaleProps, ThemeProps } from 'jamis-core'; export declare enum ImageActionKey { /** 右旋转 */ ROTATE_RIGHT = "rotateRight", /** 左旋转 */ ROTATE_LEFT = "rotateLeft", /** 等比例放大 */ ZOOM_IN = "zoomIn", /** 等比例缩小 */ ZOOM_OUT = "zoomOut", /** 恢复原图缩放比例尺 */ SCALE_ORIGIN = "scaleOrigin" } export interface ImageAction { key: ImageActionKey; label?: string; icon?: string | React.ReactNode; iconClassName?: string; disabled?: boolean; onClick?: (context: ImageGallery) => void; } interface ImageGalleryProps extends ThemeProps, LocaleProps { children: React.ReactNode; modalContainer?: () => HTMLElement; actions?: ImageAction[]; } interface ImageGalleryState { isOpened: boolean; index: number; items: Array<{ src: string; originalSrc: string; title?: string; caption?: string; }>; /** 图片缩放比例尺 */ scale: number; /** 图片旋转角度 */ rotate: number; } export declare class ImageGallery extends React.Component<ImageGalleryProps, ImageGalleryState> { static defaultProps: Pick<ImageGalleryProps, 'actions'>; state: ImageGalleryState; handleImageEnlarge(info: { src: string; originalSrc: string; list?: Array<{ src: string; originalSrc: string; title?: string; caption?: string; }>; title?: string; caption?: string; index?: number; }): void; resetImageAction(): void; close(): void; prev(): void; next(): void; handleItemClick(e: React.MouseEvent<HTMLDivElement>): void; handleToolbarAction: any; renderToolbar(actions: ImageAction[]): JSX.Element; render(): JSX.Element; } export default ImageGallery;