@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
43 lines (42 loc) • 1.34 kB
TypeScript
import { ClassType, StyleType } from '@vexip-ui/config';
import { TooltipProps } from '../tooltip';
export interface SliderMarker {
label?: string;
class?: ClassType;
style?: StyleType;
attrs?: Record<string, any>;
}
export type SliderRawMarkers = Record<string | number, string | SliderMarker> | Array<number | (SliderMarker & {
value: number;
})>;
export type SliderTipProps = Omit<TooltipProps, 'trigger' | 'transfer' | 'visible' | 'disabled' | 'noHover'>;
export interface SliderSlotParams {
values: number[];
sliding: boolean[];
percent: number[];
disabled: boolean;
loading: boolean;
}
export interface SliderMarkerSlotParams extends SliderSlotParams {
markerValue: number;
marker: SliderMarker;
inRange: boolean;
}
export interface SliderTriggerParams {
type: 'start' | 'end';
value: number;
sliding: boolean;
percent: number;
disabled: boolean;
loading: boolean;
}
export type SliderCommonSlot = (params: SliderSlotParams) => any;
export type SliderMarkerSlot = (params: SliderMarkerSlotParams) => any;
export type SliderTriggerSlot = (params: SliderTriggerParams) => any;
export interface SliderSlots {
filler?: SliderCommonSlot;
point?: SliderMarkerSlot;
marker?: SliderMarkerSlot;
trigger?: SliderTriggerSlot;
tip?: SliderTriggerSlot;
}