import { BindingEventService } from '@slickgrid-universal/binding'; import { type SlickGrid } from '../core/index.js'; import { type OperatorType, type SearchTerm } from '../enums/index.js'; import type { Column, ColumnFilter, CurrentSliderOption, DOMEvent, Filter, FilterArguments, FilterCallback, GridOption, OperatorDetail, SliderOption, SliderRangeOption, SliderType } from '../interfaces/index.js'; import type { TranslaterService } from '../services/translater.service.js'; /** A Slider Range Filter written in pure JS, this is only meant to be used as a range filter (with 2 handles lowest & highest values) */ export declare class SliderFilter implements Filter { protected readonly translaterService?: TranslaterService | undefined; protected _bindEventService: BindingEventService; protected _clearFilterTriggered: boolean; protected _currentValue?: number; protected _currentValues?: number[]; protected _lastSearchValue?: number | string; protected _shouldTriggerQuery: boolean; protected _sliderOptions: CurrentSliderOption; protected _operator?: OperatorType; protected _filterElm: HTMLDivElement; protected _argFilterContainerElm: HTMLElement; protected _divContainerFilterElm: HTMLDivElement; protected _filterContainerElm: HTMLDivElement; protected _leftSliderNumberElm?: HTMLSpanElement; protected _rightSliderNumberElm?: HTMLSpanElement; protected _selectOperatorElm?: HTMLSelectElement; protected _sliderRangeContainElm: HTMLDivElement; protected _sliderTrackElm: HTMLDivElement; protected _sliderLeftInputElm?: HTMLInputElement; protected _sliderRightInputElm?: HTMLInputElement; protected _sliderTrackFilledColor: string; sliderType: SliderType; grid: SlickGrid; searchTerms: SearchTerm[]; columnDef: Column; callback: FilterCallback; constructor(translaterService?: TranslaterService | undefined); /** Getter for the Column Filter */ get columnFilter(): ColumnFilter; /** Getter for the Current Slider Value */ get currentValue(): number | undefined; /** Getter for the Current Slider Values */ get currentValues(): number[] | undefined; /** Getter to know what would be the default operator when none is specified */ get defaultOperator(): OperatorType; get filterOptions(): SliderOption | SliderRangeOption; /** Getter for the Grid Options pulled through the Grid Object */ get gridOptions(): GridOption; /** Getter for the current Slider Options */ get sliderOptions(): CurrentSliderOption | undefined; /** Getter for the Filter Operator */ get operator(): OperatorType; /** Setter for the Filter Operator */ set operator(operator: OperatorType); /** Initialize the Filter */ init(args: FilterArguments): void; /** Clear the filter value */ clear(shouldTriggerQuery?: boolean): void; /** destroy the filter */ destroy(): void; /** * Render both slider values (low/high) on screen * @param leftValue number * @param rightValue number */ renderSliderValues(leftValue?: number | string, rightValue?: number | string, triggerTooltipMouseLeave?: boolean): void; /** get current slider value(s), it could be a single value or an array of 2 values depending on the slider filter type */ getValues(): number | number[] | undefined; /** * Set value(s) on the DOM element * @params searchTerms */ setValues(values: SearchTerm | SearchTerm[], operator?: OperatorType, triggerChange?: boolean): void; /** * Create the Filter DOM element * Follows article with few modifications (without tooltip & neither slider track color) * https://codingartistweb.com/2021/06/double-range-slider-html-css-javascript/ * @param searchTerm optional preset search terms */ protected createDomFilterElement(searchTerms?: SearchTerm | SearchTerm[]): HTMLDivElement; protected getInputValue(elm?: HTMLInputElement): number; /** Get the available operator option values to populate the operator select dropdown list */ protected getOperatorOptionValues(): OperatorDetail[]; /** get default slider defaults */ protected getSliderConfigs(): Omit; /** use keydown event to increase/decrease slider value */ protected handleKeyDown(event: Event, side: 'left' | 'right'): void; /** handle value change event triggered, trigger filter callback & update "filled" class name */ protected onValueChanged(e: Event, skipTriggerEvent?: boolean): void; protected slideLeftInputChanged(e: DOMEvent, skipTriggerEvent?: boolean): void; protected slideRightInputChanged(e: DOMEvent, skipTriggerEvent?: boolean): void; protected sliderLeftOrRightChanged(e: DOMEvent, side: 'left' | 'right', sliderLeftVal: number, sliderRightVal: number, skipTriggerEvent?: boolean): void; protected sliderTrackClicked(e: MouseEvent): void; protected updateTrackFilledColorWhenEnabled(): void; /** add/remove "filled" CSS class */ protected updateFilterStyle(isFilled: boolean): void; } //# sourceMappingURL=sliderFilter.d.ts.map