import { CONFIG, siteSearch } from '../globals/globalVars' import { transition } from '../library/anime' import { searchBox, configure, stats, hits, pagination } from 'instantsearch.js/es/widgets' import type { HitHighlightResult } from 'instantsearch.js/es/types/results' import instantsearch from 'instantsearch.js' import { liteClient as algoliasearch } from 'algoliasearch/lite' export function algoliaSearch () { const search = instantsearch({ indexName: CONFIG.search.indexName, searchClient: algoliasearch(CONFIG.search.appID, CONFIG.search.apiKey), // TODO 移除弃用函数 searchFunction (helper) { const searchInput = document.querySelector('.search-input') as HTMLInputElement if (searchInput.value) { helper.search() } } }) // Registering Widgets search.addWidgets([ configure({ hitsPerPage: CONFIG.search.hits.per_page || 10 }), searchBox({ container: '.search-input-container', placeholder: LOCAL.search.placeholder, // Hide default icons of algolia search showReset: false, showSubmit: false, showLoadingIndicator: false, cssClasses: { input: 'search-input' } }), stats({ container: '#search-stats', templates: { text (data) { const stats = LOCAL.search.stats .replace(/\$\{hits}/, data.nbHits.toString()) .replace(/\$\{time}/, data.processingTimeMS.toString()) return stats + '