jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
68 lines (67 loc) • 1.89 kB
TypeScript
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;