@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
49 lines (48 loc) • 1.56 kB
TypeScript
import { InjectionKey } from 'vue';
export type VideoPresetControl = 'play' | 'play-prev' | 'play-next' | 'refresh' | 'timer' | 'playback-rate' | 'flip' | 'volume' | 'pip' | 'full-window' | 'full-browser';
export type VideoShortcutOptions = Partial<Record<VideoPresetControl, string>>;
export type VideoControlName = VideoPresetControl | (string & {});
export type VideoControlConfig = VideoControlName | [VideoControlName, any];
export interface VideoControlLayout {
left?: VideoControlConfig[];
center?: VideoControlConfig[];
right?: VideoControlConfig[];
}
export interface VideoPlaybackRate {
label?: string;
value: number;
}
export type VideoControlType = 'button' | 'select' | 'panel';
export interface VideoControlOption {
value: string | number;
label?: string;
selectedLabel?: string;
disabled?: boolean;
divided?: boolean;
title?: string;
}
export interface VideoSegment {
time: number;
title?: string;
}
export interface VideoState {
placeId?: string;
iconScale: number;
addShortcut: (key: string, cb: () => void) => () => void;
}
export interface VideoSlots {
poster?: () => any;
}
export declare const videoDefaultControlLayout: Readonly<Required<VideoControlLayout>>;
export declare const videoDefaultShortcuts: Readonly<{
play: "Space";
'play-prev': "PageUp";
'play-next': "PageDown";
refresh: "R";
flip: "C";
volume: "M";
pip: "P";
'full-window': "G";
'full-browser': "F";
}>;
export declare const VIDEO_STATE: InjectionKey<VideoState>;