UNPKG

@hashuplabs/omni-filter

Version:
54 lines (53 loc) 1.68 kB
import { Component } from 'react'; import { OmniToken } from '../OmniToken'; import { OmniOperator } from '../operators/OmniOperator'; import { OmniEntityReference } from '../types'; interface OmniFilterSuggestionWindowProps { visible: boolean; offset: number; token: OmniToken; filters: OmniEntityReference[]; tokenInput: string; onUpdate(token: OmniToken | null): void; onComplete(token: OmniToken | null): void; inputElement: HTMLInputElement | null; } interface OmniFilterSuggestionWindowState { _operator: OmniOperator | null; _entityName: string | null; _entity: OmniEntityReference | null; _values: string[] | string | null; _awaitedValue: any; _waiting: boolean; _selectionList: OmniFilterSuggestion<any>[]; _selectionIndex: number | null; _selectionWidget: JSX.Element | null; } declare type OmniFilterSuggestion<T> = { label: string; value: T; onSelect: (value: OmniFilterSuggestion<T>) => void; }; export declare class OmniFilterSuggestionWindow extends Component<OmniFilterSuggestionWindowProps, OmniFilterSuggestionWindowState> { private _entities; private _isWaiting; private _hasInput; private _defaultEntity; constructor(props: OmniFilterSuggestionWindowProps); private _handleUpdate; private _handleCompleted; private refocus; private applyValue; componentDidUpdate(): void; private boldify; private _renderEntities; private _renderOperators; private _renderValues; private _inner; private _filteredSelections; private renderSuggestions; private _list_i; private _list; render(): JSX.Element; } export {};