UNPKG

vuetify

Version:

Vue Material Component Framework

279 lines (277 loc) 13.5 kB
import type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'; import type { VSliderTrack } from './VSliderTrack.js'; export type Tick = { value: number; position: number; label?: string; }; type SliderProvide = { activeThumbRef: Ref<HTMLElement | undefined>; color: Ref<string | undefined>; decimals: Ref<number>; direction: Ref<'vertical' | 'horizontal'>; disabled: Ref<boolean | null | undefined>; elevation: Ref<number | string | undefined>; min: Ref<number>; max: Ref<number>; mousePressed: Ref<boolean>; numTicks: Ref<number>; onSliderMousedown: (e: MouseEvent) => void; onSliderTouchstart: (e: TouchEvent) => void; parseMouseMove: (e: MouseEvent | TouchEvent) => number | void; position: (val: number) => number; readonly: Ref<boolean | null | undefined>; rounded: Ref<boolean | number | string | undefined>; roundValue: (value: number) => number; thumbLabel: Ref<boolean | string | undefined>; showTicks: Ref<boolean | 'always'>; startOffset: Ref<number>; step: Ref<number>; thumbSize: Ref<number>; thumbColor: Ref<string | undefined>; trackColor: Ref<string | undefined>; trackFillColor: Ref<string | undefined>; trackSize: Ref<number>; ticks: Ref<readonly number[] | Record<string, string> | undefined>; tickSize: Ref<number>; trackContainerRef: Ref<VSliderTrack | undefined>; vertical: Ref<boolean>; parsedTicks: Ref<Tick[]>; hasLabels: Ref<boolean>; isReversed: Ref<boolean>; indexFromEnd: Ref<boolean>; }; export declare const VSliderSymbol: InjectionKey<SliderProvide>; export declare function getOffset(e: MouseEvent | TouchEvent, el: HTMLElement, direction: string): number; export declare const makeSliderProps: <Defaults extends { ripple?: unknown; elevation?: unknown; rounded?: unknown; tile?: unknown; disabled?: unknown; error?: unknown; readonly?: unknown; max?: unknown; min?: unknown; step?: unknown; thumbColor?: unknown; thumbLabel?: unknown; thumbSize?: unknown; showTicks?: unknown; ticks?: unknown; tickSize?: unknown; color?: unknown; trackColor?: unknown; trackFillColor?: unknown; trackSize?: unknown; direction?: unknown; reverse?: unknown; } = {}>(defaults?: Defaults | undefined) => { ripple: unknown extends Defaults["ripple"] ? { type: BooleanConstructor; default: boolean; } : Omit<{ type: BooleanConstructor; default: boolean; }, "type" | "default"> & { type: PropType<unknown extends Defaults["ripple"] ? boolean : boolean | Defaults["ripple"]>; default: unknown extends Defaults["ripple"] ? boolean : boolean | Defaults["ripple"]; }; elevation: unknown extends Defaults["elevation"] ? Omit<{ type: (StringConstructor | NumberConstructor)[]; validator(v: any): boolean; }, "type" | "default"> & { type: PropType<string | number>; default: NonNullable<string | number>; } : Omit<Omit<{ type: (StringConstructor | NumberConstructor)[]; validator(v: any): boolean; }, "type" | "default"> & { type: PropType<string | number>; default: NonNullable<string | number>; }, "type" | "default"> & { type: PropType<unknown extends Defaults["elevation"] ? string | number : string | number | Defaults["elevation"]>; default: unknown extends Defaults["elevation"] ? string | number : NonNullable<string | number> | Defaults["elevation"]; }; rounded: unknown extends Defaults["rounded"] ? { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; } : Omit<{ type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }, "type" | "default"> & { type: PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>; default: unknown extends Defaults["rounded"] ? string | number | boolean : NonNullable<string | number | boolean> | Defaults["rounded"]; }; tile: unknown extends Defaults["tile"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>; default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]; }; disabled: unknown extends Defaults["disabled"] ? { type: PropType<boolean | null>; default: null; } : Omit<{ type: PropType<boolean | null>; default: null; }, "type" | "default"> & { type: PropType<unknown extends Defaults["disabled"] ? boolean | null : boolean | Defaults["disabled"] | null>; default: unknown extends Defaults["disabled"] ? boolean | null : NonNullable<boolean | null> | Defaults["disabled"]; }; error: unknown extends Defaults["error"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["error"] ? boolean : boolean | Defaults["error"]>; default: unknown extends Defaults["error"] ? boolean : boolean | Defaults["error"]; }; readonly: unknown extends Defaults["readonly"] ? { type: PropType<boolean | null>; default: null; } : Omit<{ type: PropType<boolean | null>; default: null; }, "type" | "default"> & { type: PropType<unknown extends Defaults["readonly"] ? boolean | null : boolean | Defaults["readonly"] | null>; default: unknown extends Defaults["readonly"] ? boolean | null : NonNullable<boolean | null> | Defaults["readonly"]; }; max: unknown extends Defaults["max"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType<unknown extends Defaults["max"] ? string | number : string | number | Defaults["max"]>; default: unknown extends Defaults["max"] ? string | number : NonNullable<string | number> | Defaults["max"]; }; min: unknown extends Defaults["min"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType<unknown extends Defaults["min"] ? string | number : string | number | Defaults["min"]>; default: unknown extends Defaults["min"] ? string | number : NonNullable<string | number> | Defaults["min"]; }; step: unknown extends Defaults["step"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType<unknown extends Defaults["step"] ? string | number : string | number | Defaults["step"]>; default: unknown extends Defaults["step"] ? string | number : NonNullable<string | number> | Defaults["step"]; }; thumbColor: unknown extends Defaults["thumbColor"] ? StringConstructor : { type: PropType<unknown extends Defaults["thumbColor"] ? string : string | Defaults["thumbColor"]>; default: unknown extends Defaults["thumbColor"] ? string : string | Defaults["thumbColor"]; }; thumbLabel: unknown extends Defaults["thumbLabel"] ? { type: PropType<boolean | "always" | undefined>; default: undefined; validator: (v: any) => boolean; } : Omit<{ type: PropType<boolean | "always" | undefined>; default: undefined; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType<unknown extends Defaults["thumbLabel"] ? boolean | "always" | undefined : boolean | "always" | Defaults["thumbLabel"] | undefined>; default: unknown extends Defaults["thumbLabel"] ? boolean | "always" | undefined : Defaults["thumbLabel"] | NonNullable<boolean | "always" | undefined>; }; thumbSize: unknown extends Defaults["thumbSize"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType<unknown extends Defaults["thumbSize"] ? string | number : string | number | Defaults["thumbSize"]>; default: unknown extends Defaults["thumbSize"] ? string | number : NonNullable<string | number> | Defaults["thumbSize"]; }; showTicks: unknown extends Defaults["showTicks"] ? { type: PropType<boolean | "always">; default: boolean; validator: (v: any) => boolean; } : Omit<{ type: PropType<boolean | "always">; default: boolean; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType<unknown extends Defaults["showTicks"] ? boolean | "always" : boolean | "always" | Defaults["showTicks"]>; default: unknown extends Defaults["showTicks"] ? boolean | "always" : Defaults["showTicks"] | NonNullable<boolean | "always">; }; ticks: unknown extends Defaults["ticks"] ? { type: PropType<readonly number[] | Record<number, string>>; } : Omit<{ type: PropType<readonly number[] | Record<number, string>>; }, "type" | "default"> & { type: PropType<unknown extends Defaults["ticks"] ? readonly number[] | Record<number, string> : readonly number[] | Record<number, string> | Defaults["ticks"]>; default: unknown extends Defaults["ticks"] ? readonly number[] | Record<number, string> : Defaults["ticks"] | NonNullable<readonly number[] | Record<number, string>>; }; tickSize: unknown extends Defaults["tickSize"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType<unknown extends Defaults["tickSize"] ? string | number : string | number | Defaults["tickSize"]>; default: unknown extends Defaults["tickSize"] ? string | number : NonNullable<string | number> | Defaults["tickSize"]; }; color: unknown extends Defaults["color"] ? StringConstructor : { type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>; default: unknown extends Defaults["color"] ? string : string | Defaults["color"]; }; trackColor: unknown extends Defaults["trackColor"] ? StringConstructor : { type: PropType<unknown extends Defaults["trackColor"] ? string : string | Defaults["trackColor"]>; default: unknown extends Defaults["trackColor"] ? string : string | Defaults["trackColor"]; }; trackFillColor: unknown extends Defaults["trackFillColor"] ? StringConstructor : { type: PropType<unknown extends Defaults["trackFillColor"] ? string : string | Defaults["trackFillColor"]>; default: unknown extends Defaults["trackFillColor"] ? string : string | Defaults["trackFillColor"]; }; trackSize: unknown extends Defaults["trackSize"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType<unknown extends Defaults["trackSize"] ? string | number : string | number | Defaults["trackSize"]>; default: unknown extends Defaults["trackSize"] ? string | number : NonNullable<string | number> | Defaults["trackSize"]; }; direction: unknown extends Defaults["direction"] ? { type: PropType<"horizontal" | "vertical">; default: string; validator: (v: any) => boolean; } : Omit<{ type: PropType<"horizontal" | "vertical">; default: string; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType<unknown extends Defaults["direction"] ? "horizontal" | "vertical" : "horizontal" | "vertical" | Defaults["direction"]>; default: unknown extends Defaults["direction"] ? "horizontal" | "vertical" : NonNullable<"horizontal" | "vertical"> | Defaults["direction"]; }; reverse: unknown extends Defaults["reverse"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"]>; default: unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"]; }; }; type SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>; type SliderData = { value: number; }; export declare const useSteps: (props: SliderProps) => { min: import("vue").ComputedRef<number>; max: import("vue").ComputedRef<number>; step: import("vue").ComputedRef<number>; decimals: import("vue").ComputedRef<number>; roundValue: (value: string | number) => number; }; export declare const useSlider: ({ props, steps, onSliderStart, onSliderMove, onSliderEnd, getActiveThumb, }: { props: SliderProps; steps: ReturnType<typeof useSteps>; onSliderEnd: (data: SliderData) => void; onSliderStart: (data: SliderData) => void; onSliderMove: (data: SliderData) => void; getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement; }) => SliderProvide;