polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
80 lines • 2.11 kB
TypeScript
import { EventEmitter } from 'events';
export interface SearchConfig {
placeholder?: string;
caseSensitive?: boolean;
mode?: 'fuzzy' | 'exact' | 'contains';
searchFields?: string[];
maxHistory?: number;
showSuggestions?: boolean;
minChars?: number;
debounceDelay?: number;
}
export interface SearchResult {
item: any;
score: number;
matches: SearchMatch[];
index: number;
}
export interface SearchMatch {
field: string;
value: string;
highlighted: string;
positions: number[];
score: number;
}
export interface FilterCriteria {
status?: string[];
type?: string[];
dateRange?: {
start?: Date;
end?: Date;
};
custom?: (item: any) => boolean;
}
export declare class SearchPanel {
private screen;
private eventBus;
private config;
private searchBox;
private resultsBox;
private statusBox;
private isVisible;
private searchHistory;
private currentQuery;
private currentResults;
private selectedIndex;
private searchTimeout;
private dataSource;
private filterCriteria;
constructor(screen: any, eventBus: EventEmitter, config?: SearchConfig);
show(): void;
hide(): void;
setDataSource(data: any[]): void;
setFilterCriteria(criteria: FilterCriteria): void;
getResults(): SearchResult[];
getSelectedResult(): SearchResult | null;
isSearchVisible(): boolean;
clearSearch(): void;
navigateUp(): void;
navigateDown(): void;
selectResult(): void;
private createSearchInterface;
private setupSearchEvents;
private handleSearchInput;
private performSearch;
private applyFilters;
private fuzzySearch;
private exactSearch;
private containsSearch;
private calculateFuzzyMatch;
private calculateExactMatch;
private highlightMatches;
private getFieldValue;
private updateResultsDisplay;
private updateStatusDisplay;
private addToHistory;
getSearchHistory(): string[];
clearHistory(): void;
destroy(): void;
}
//# sourceMappingURL=search-panel.d.ts.map