ngx-magicsearch
Version:
Magic Search/Faceted Search Library for Angular 2.
250 lines (249 loc) • 5.48 kB
TypeScript
import { DoCheck, KeyValueDiffers, OnChanges, OnInit, EventEmitter } from '@angular/core';
export declare class NgxMagicSearchComponent implements OnInit, OnChanges, DoCheck {
private differs;
strings: {
remove: string;
cancel: string;
prompt: string;
text: string;
};
facets_param: any;
textSearchEvent: EventEmitter<string>;
searchUpdatedEvent: EventEmitter<{
key: string;
values: string[];
}[]>;
setFocusedEventEmitter: boolean;
searchInput: string;
private promptString;
currentSearch: any[];
private facetsObj;
private facetsSave;
facetSelected: any;
filteredObj: any;
filteredOptions: any;
private facetOptions;
private textSearch;
isMenuOpen: boolean;
private differ;
private hostEvent;
constructor(differs: KeyValueDiffers);
ngOnInit(): void;
ngOnChanges(): void;
ngDoCheck(): void;
/**
*
*
*
* @memberOf NgxMagicSearchComponent
*/
initSearch(): void;
/**
*
*
*
* @memberOf NgxMagicSearchComponent
*/
initFacets(): void;
/**
* add a facets javascript object to the existing list
*
* @param facets
*
* @memberOf NgxMagicSearchComponent
*/
addFacets(facets: any): void;
/**
*
*
* @param facets
* @returns
*
* @memberOf NgxMagicSearchComponent
*/
copyFacets(facets: any): any;
/**
*
*
* @param facetParts
*
* @memberOf NgxMagicSearchComponent
*/
deleteFacetSelection(facetParts: any): void;
/**
* remove entire facet
*
* @param facetParts
*
* @memberOf NgxMagicSearchComponent
*/
deleteFacetEntirely(facetParts: any): void;
/**
* try filtering facets/options.. if no facets match, do text search
*
* @param searchVal
* @returns
*
* @memberOf NgxMagicSearchComponent
*/
filterFacets(searchVal: string): void;
/**
*
*
* @param label
* @returns
*
* @memberOf NgxMagicSearchComponent
*/
isMatchLabel(label: string): boolean;
/**
*
*
*
* @memberOf NgxMagicSearchComponent
*/
resetState(): void;
/**
* showMenu and hideMenu depend on foundation's dropdown. They need
* to be modified to work with another dropdown implemenation (i.e. bootstrap)
*
*
* @memberOf NgxMagicSearchComponent
*/
showMenu(): void;
/**
* hide dropdown
*
*
* @memberOf NgxMagicSearchComponent
*/
hideMenu(): void;
/**
*
*
* @param query
*
* @memberOf NgxMagicSearchComponent
*/
updateUrl(query: string): void;
/**
*
*
* @returns
*
* @memberOf NgxMagicSearchComponent
*/
buildTermsArray(): Array<{
key: string;
values: Array<string>;
}>;
/**
*
*
* @param array
* @param key_name
* @param value
* @returns
*
* @memberOf NgxMagicSearchComponent
*/
getIndexBy(array: Array<any>, key_name: string, value: number | string): number;
/*****************************************************************/
/********************** EVENTS **********************/
/*****************************************************************/
/**
*
*
* @param event
*
* @memberOf NgxMagicSearchComponent
*/
handleKeyDown(event: any): void;
/**
*
*
* @param event
* @returns
*
* @memberOf NgxMagicSearchComponent
*/
handleKeyUp(event: any): void;
/**
*
*
* @param event
* @returns
*
* @memberOf NgxMagicSearchComponent
*/
handleKeyPress(event: any): void;
/**
* enable text entry when mouse clicked anywhere in search box
*
*
* @memberOf NgxMagicSearchComponent
*/
enableTextEntry(): void;
/**
* when facet clicked, add 1st part of facet and set up options
*
* @param index
* @param name
*
* @memberOf NgxMagicSearchComponent
*/
facetClicked(index: number, name: string): void;
/**
* when option clicked, complete facet and send event
*
* @param index
* @param name
*
* @memberOf NgxMagicSearchComponent
*/
optionClicked(index: number, name: string): void;
/**
*
*
* @param category
* @param option
*
* @memberOf NgxMagicSearchComponent
*/
addFilterManually(category: string, option: string): void;
/**
*
*
* @param category
* @param option
*
* @memberOf NgxMagicSearchComponent
*/
removeFilterManually(category: string, option: string): void;
/**
* send event with new query string
*
* @param removed
*
* @memberOf NgxMagicSearchComponent
*/
emitQuery(removed?: any | undefined): void;
/**
* remove facet and either update filter or search
*
* @param index
*
* @memberOf NgxMagicSearchComponent
*/
removeFacet(index: number): void;
/**
* clear entire searchbar
*
*
* @memberOf NgxMagicSearchComponent
*/
clearSearch(): void;
/** Catch click outside of the component */
compareEvent(globalEvent: any): void;
trackEvent(newHostEvent: any): void;
}