tdesign-mobile-vue
Version:
tdesign-mobile-vue
42 lines (41 loc) • 1.24 kB
TypeScript
import { SwiperToOptions } from '../swiper';
import type { TNode } from '../common';
export interface TdImageViewerProps {
closeBtn?: boolean | TNode;
cover?: TNode;
deleteBtn?: boolean | TNode;
image?: TNode<ImageSlotParams>;
images?: Array<string | ImageInfo>;
index?: number;
defaultIndex?: number;
maxZoom?: number;
showIndex?: boolean;
visible?: boolean;
defaultVisible?: boolean;
modelValue?: boolean;
onClose?: (context: {
trigger: ImageViewerCloseTrigger;
visible: boolean;
index: number;
}) => void;
onDelete?: (index: number) => void;
onIndexChange?: (index: number, context: {
trigger: 'prev' | 'next';
}) => void;
}
export interface ImageViewerInstanceFunctions {
swipeTo?: (index: number, options?: SwiperToOptions) => void;
}
export interface ImageSlotParams {
src: string;
className?: string;
style?: string;
onLoad?: (e: Event) => void;
onTransitionstart?: (e: TransitionEvent) => void;
onTransitionend?: (e: TransitionEvent) => void;
}
export interface ImageInfo {
url: string;
align: 'start' | 'center' | 'end';
}
export type ImageViewerCloseTrigger = 'image' | 'overlay' | 'close-btn';