@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
44 lines (43 loc) • 1.73 kB
TypeScript
import { ClassType, StyleType } from '@vexip-ui/config';
export type ViewerToolbarPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
export type ViewerPresetAction = 'rotate-right' | 'rotate-left' | 'flip-x' | 'flip-y' | 'zoom-in' | 'zoom-out' | 'full-screen' | 'full-screen-exit' | 'reset';
export type ViewerActionName = ViewerPresetAction | (string & {});
export type ViewerActionLayout = ViewerActionName[][];
export interface ViewerState {
x: number;
y: number;
zoom: number;
rotate: number;
flipX: boolean;
flipY: boolean;
full: boolean;
moving: boolean;
[custom: string]: unknown;
}
export interface ViewerToolbarAction {
name: string;
process: (state: ViewerState) => void;
icon?: Record<string, any> | (() => any);
iconRenderer?: (data: {
state: ViewerState;
}) => any;
class?: ClassType | ((state: ViewerState) => string);
title?: string | ((state: ViewerState) => string);
iconScale?: number | ((state: ViewerState) => number);
iconStyle?: StyleType | ((state: ViewerState) => StyleType);
/** @deprecated */
divided?: boolean | ((state: ViewerState) => boolean);
hidden?: boolean | ((state: ViewerState) => boolean);
disabled?: boolean | ((state: ViewerState) => boolean);
}
export declare const enum InternalActionName {
RotateRight = "rotate-right",
RotateLeft = "rotate-left",
FlipX = "flip-x",
FlipY = "flip-y",
ZoomIn = "zoom-in",
ZoomOut = "zoom-out",
FullScreen = "full-screen",
Reset = "reset"
}
export declare const viewerDefaultActionLayout: ViewerActionLayout;