@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
51 lines (50 loc) • 1.36 kB
TypeScript
import { InjectionKey } from 'vue';
import { ClassType, StyleType } from '@vexip-ui/config';
import { SkeletonProps } from '../skeleton';
export type ImageObjectFit = 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
export type ImageSkeletonProps = Pick<SkeletonProps, 'tag' | 'activated' | 'iconScale' | 'imageIcon'> & {
class?: ClassType;
StyleType?: StyleType;
};
export interface ImageState {
src: string;
index: number;
total: number;
}
export interface GroupState {
showAll: boolean;
preview: boolean;
increaseItem: (item: ImageState) => void;
decreaseItem: (item: ImageState) => void;
handlePreview: (item: ImageState) => void;
}
export interface ImageSlots {
placeholder?: () => any;
error?: () => any;
preview?: (params: {
src: string;
}) => any;
}
export interface ImageGroupSlots {
/**
* @internal
*/
default?: () => any;
preview?: (params: {
src: string;
}) => any;
}
export interface ImageViewerSlots {
default?: (params: {
src: string;
}) => any;
prev?: (params: {
disabled: boolean;
}) => any;
next?: (params: {
disabled: boolean;
}) => any;
close?: () => any;
}
export declare const GROUP_STATE: InjectionKey<GroupState>;
export declare const objectFitValues: readonly ImageObjectFit[];