@hashuplabs/omni-filter
Version:
OmniFilter Search component
47 lines (46 loc) • 1.79 kB
TypeScript
import { Component } from 'react';
import { FilterManager } from '..';
import { OmniToken } from '../OmniToken';
import { OmniEntityReference, OmniFilterSet } from '../types';
declare type OmniFilterBarState = {
boxOffset: number;
filterShowing: boolean;
activeToken: OmniToken | null;
tokenInput: string;
tokens: OmniToken[];
inputElement: HTMLInputElement | null;
};
export declare type OmniFilterBarPropsShape = {
filterSet: OmniFilterSet;
filter: any;
tokenAdded?: (sender: OmniFilterBar, token: OmniToken) => void;
tokenRemoved?: (sender: OmniFilterBar, token: OmniToken) => void;
tokenChanged?: (sender: OmniFilterBar, token: OmniToken) => void;
tokenSetChanged?: (sender: OmniFilterBar) => void;
ready?: (sender: OmniFilterBar) => void;
placeholder?: string;
filterManager?: typeof FilterManager;
enableTokenGrouping?: boolean;
tokenGroupSeparator?: string;
};
export declare class OmniFilterBar extends Component<OmniFilterBarPropsShape, OmniFilterBarState> {
_inputElement: HTMLInputElement | null;
_scrollElement: HTMLElement | null;
_entities: OmniEntityReference[];
_filterManagerClass: typeof FilterManager;
_filterManager: FilterManager | null;
constructor(props: OmniFilterBarPropsShape);
initialize(): Promise<void>;
updatePosition(stateObject?: Partial<OmniFilterBarState>): void;
componentDidMount(): void;
onSuggestionUpdated(newToken: OmniToken): void;
onSuggestionCompleted(newToken: OmniToken): void;
render(): JSX.Element;
getTokens(): OmniToken[];
indexOfToken(token: OmniToken): number;
removeToken(token: OmniToken | undefined): void;
private onTokenAdded;
private onTokenRemoved;
render_in(): JSX.Element;
}
export {};