UNPKG

@nekobird/controls

Version:

A collection of opinionated user-interface controls.

49 lines (48 loc) 1.74 kB
export interface DuoKnobSliderConfig { trackElement?: HTMLElement; knobOneElement?: HTMLElement; knobTwoElement?: HTMLElement; highlightElement?: HTMLElement; minValueElement?: HTMLElement; maxValueElement?: HTMLElement; range: [number, number]; interval: number; useInterval: boolean; onInit: (slider: DuoKnobSlider) => void; onActivate: (slider: DuoKnobSlider) => void; onDeactivate: (slider: DuoKnobSlider) => void; onUpdate: (slider: DuoKnobSlider) => void; moveKnob: (knob: HTMLElement, left: number) => void; updateHighlight: (highlight: HTMLElement, left: number, width: number, slider: DuoKnobSlider) => void; } export declare const DUO_KNOB_SLIDER_DEFAULT_CONFIG: DuoKnobSliderConfig; export declare class DuoKnobSlider { config: DuoKnobSliderConfig; isActive: boolean; isDisabled: boolean; knobOneIsActive: boolean; knobTwoIsActive: boolean; private knobOneLeftOffset; private knobTwoLeftOffset; private knobOnePointerDragEventManager?; private knobTwoPointerDragEventManager?; knobOneValue: number; knobTwoValue: number; private currentValue; constructor(config: Partial<DuoKnobSliderConfig>); setConfig(config: Partial<DuoKnobSliderConfig>): this; value: [number, number]; readonly normalizedValue: [number, number]; private updateValueFromKnobValues; private getSliderRect; private offsetInterval; private knobOneEventHandlerStart; private knobTwoEventHandlerStart; private knobOneEventHandlerDrag; private knobTwoEventHandlerDrag; private knobOneEventHandlerEnd; private knobTwoEventHandlerEnd; private checkIfActive; private onUpdate; listen(): void; }