@bilions/search-js
Version:
Instance search UI component
96 lines (95 loc) • 2.12 kB
TypeScript
import { DomListener } from './DomListener';
import { SearchHistory } from './SearchHistory';
import { SearchJSApp } from '..';
import { Theme } from '../themes';
export declare class SearchComponent {
private app;
private domListener;
private searchHistory;
private theme;
/**
* the entire search js element
*
* @var {HTMLElement} element
*/
element: HTMLElement;
/**
* timer placeholder to handle search
*
* @var {number} searchTimer
*/
private searchTimer?;
/**
* class constructor
*
* @param {SearchJSApp} app
* @param {DomListener} domListener
* @param {SearchHistory} searchHistory
* @param {Theme} theme
*/
constructor(app: SearchJSApp, domListener: DomListener, searchHistory: SearchHistory, theme: Theme);
/**
* handle search and show list on result
*
* @returns {void}
*/
private handleOnSearch;
/**
* get list of items from config and filter with keyword from search input
*
* @param {string} keyword
* @returns {Array<SearchJSItem> | null | undefined}
*/
private getItems;
/**
* get parent element to append search-js element
*
* @returns {HTMLElement}
*/
private getParentElement;
private createElement;
/**
* show item lists
*
* @param {Array<SearchJSItem>} items
* @returns {void}
*/
private showSearchResult;
/**
* hide search result
*
* @returns {void}
*/
private hideSearchResult;
/**
* show history list
*
* @param {Array<SearchJSItem>} items
* @returns {void}
*/
private showHistory;
/**
* hide history
*
* @returns {void}
*/
private hideHistories;
/**
* listen on select and on remove event on item
*
* @return {void}
*/
private handleItemClickListener;
/**
* show loading
*
* @returns {void}
*/
private showLoading;
/**
* hide loading
*
* @returns {void}
*/
private hideLoading;
}