asciitorium
Version:
an ASCII CLUI framework
52 lines (51 loc) • 1.83 kB
TypeScript
import { Component, ComponentProps } from '../core/Component.js';
import { State } from '../core/State.js';
import { SizeValue } from '../core/types.js';
export interface SliderVariantOptions extends ComponentProps {
value: State<number>;
min?: number;
max?: number;
step?: number;
readonly?: boolean;
}
declare abstract class SliderBase extends Component {
protected readonly valueState: State<number>;
protected readonly min: number;
protected readonly max: number;
protected readonly step: number;
focusable: boolean;
hasFocus: boolean;
constructor(options: SliderVariantOptions, defaultWidth: SizeValue, defaultHeight: SizeValue);
protected clampValue(value: number): number;
protected incrementValue(): void;
protected decrementValue(): void;
protected initializeBuffer(): void;
protected drawChar(x: number, y: number, char: string): void;
protected calculateNormalizedValue(): number;
}
export declare class ProgressBarSlider extends SliderBase {
constructor(options: SliderVariantOptions);
handleEvent(event: string): boolean;
draw(): string[][];
}
export declare class GaugeSlider extends SliderBase {
constructor(options: SliderVariantOptions);
handleEvent(event: string): boolean;
draw(): string[][];
}
export declare class DotSlider extends SliderBase {
constructor(options: SliderVariantOptions);
handleEvent(event: string): boolean;
draw(): string[][];
}
export declare class BarSlider extends SliderBase {
constructor(options: SliderVariantOptions);
handleEvent(event: string): boolean;
draw(): string[][];
}
export declare class VerticalSlider extends SliderBase {
constructor(options: SliderVariantOptions);
handleEvent(event: string): boolean;
draw(): string[][];
}
export {};