wam-community
Version:
A collection of prebuilt Web Audio Modules ready for use
67 lines (66 loc) • 1.74 kB
TypeScript
import { Component, h } from 'preact';
export declare type KnobProps = {
value: () => number;
label: string;
size: number;
padding: number;
bipolar: boolean;
integer?: boolean;
minimumValue: number;
maximumValue: number;
defaultValue?: number;
color: string;
onChange(value: number): void;
valueString?(value: number): string;
units?: string;
decimals?: number;
showValue?: boolean;
};
declare type KnobState = {};
export declare class Knob extends Component<KnobProps, KnobState> {
static defaultProps: {
minimumValue: number;
maximumValue: number;
size: number;
value: number;
padding: number;
integer: boolean;
color: string;
label: string;
bipolar: boolean;
units: string;
decimals: number;
showValue: boolean;
};
pressed: boolean;
ref?: HTMLDivElement;
position?: {
x: number;
y: number;
};
dragStartValue?: number;
center: [number, number];
radii: [number, number];
svg: SVGElement;
range: SVGElement;
arc: SVGElement;
valueLabel?: HTMLLabelElement | null;
animationRequest?: number;
animationTimeout?: number;
lastValue?: number;
constructor();
componentDidMount(): void;
componentWillUnmount(): void;
cancelAnimation(): void;
scheduleAnimation(): void;
scheduleFrame(): void;
animationFrame(): void;
setup(ref: HTMLDivElement | null): void;
onDoubleClick(e: MouseEvent): void;
onMousedown(e: MouseEvent): void;
onMouseup(e: MouseEvent): void;
onMousemove(e: MouseEvent): void;
setValue(v: number): void;
render(): h.JSX.Element;
}
export {};