import { InteractionEvent, InteractionManager, Point } from "pixi.js"; import { DBase, DBaseEvents, DBaseOptions, DThemeBase } from "./d-base"; import { DSliderLabel, DSliderLabelOptions } from "./d-slider-label"; import { DSliderThumb, DSliderThumbOptions } from "./d-slider-thumb"; import { DSliderTrack, DSliderTrackOptions } from "./d-slider-track"; import { DSliderValue, DSliderValueOptions } from "./d-slider-value"; import { DOnOptions } from "./d-on-options"; /** * {@link DSlider} events. */ export interface DSliderEvents extends DBaseEvents { /** * Triggered when a value is changed. * * @param newValue a new value * @param oldValue an old value * @param emitter an emitter */ change(newValue: number, oldValue: number, emitter: EMITTER): void; } /** * {@link DSlider} "on" options. */ export interface DSliderOnOptions extends Partial>, DOnOptions { } /** * {@link DSlider} options. */ export interface DSliderOptions extends DBaseOptions { min?: DSliderLabelOptions; max?: DSliderLabelOptions; value?: DSliderValueOptions; track?: DSliderTrackOptions; thumb?: DSliderThumbOptions; on?: DSliderOnOptions; } /** * {@link DSlider} theme. */ export interface DThemeSlider extends DThemeBase { } /** * A slider class. */ export declare abstract class DSlider = DSliderOptions> extends DBase { protected _track: DSliderTrack; protected _thumb: DSliderThumb; protected _trackSelected: DSliderTrack; protected _value: DSliderValue; protected _roundNumber: number; protected _offset: number; protected _yOffset: number; protected _ratioValue: number; protected _min: DSliderLabel; protected _max: DSliderLabel; protected _onThumbMoveBound: (e: InteractionEvent) => void; protected _onThumbUpBound: (e: InteractionEvent) => void; protected _onTrackUpBound: (e: InteractionEvent) => void; protected _onTrackSelectedUpBound: (e: InteractionEvent) => void; protected _interactionManager?: InteractionManager; protected init(options?: OPTIONS): void; protected newThumb(options?: OPTIONS): DSliderThumb; protected newValue(options?: OPTIONS): DSliderValue; protected toValueOptions(options?: DSliderValueOptions): DSliderValueOptions; protected newLabelMin(options?: OPTIONS): DSliderLabel; protected toLabelMinOptions(options?: DSliderLabelOptions): DSliderLabelOptions; protected newLabelMax(options?: OPTIONS): DSliderLabel; protected toLabelMaxOptions(options?: DSliderLabelOptions): DSliderLabelOptions; protected abstract newTrack(options?: OPTIONS): DSliderTrack; protected abstract newTrackSelected(options?: OPTIONS): DSliderTrack; protected abstract onPick(global: Point): void; protected abstract onValuesChange(): void; protected abstract moveThumbPosition(thumbCoordinate: number): void; protected getValueMargin(): number; protected onTrackDown(global: Point): void; protected onTrackSelectedDown(global: Point): void; protected onTrackUpBound(e: InteractionEvent): void; protected onTrackSelectedUpBound(e: InteractionEvent): void; protected onThumbMove(e: InteractionEvent): void; protected onThumbDown(e: InteractionEvent): void; protected onThumbUp(e: InteractionEvent): void; protected updateValue(): void; onResize(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): void; /** * Returns a current value. */ get value(): number; /** * Sets a current value. */ set value(value: number); /** * Returns a minimum value. */ get min(): number; /** * Sets a minimum value. */ set min(newMin: number); /** * Returns a maximum value. */ get max(): number; /** * Sets a maximum value. */ set max(newMax: number); protected getType(): string; }