$(function () { $('a.social-icon.search').on('click', function () { $('body').css('width', '100%') $('body').css('overflow', 'hidden') $('.search-dialog').animate({}, function () { $('.search-dialog').css({ 'display': 'block', 'animation': 'titlescale 0.5s' }),300 }) $('.ais-search-box--input').focus() $('.search-mask').fadeIn(); // shortcut: ESC document.addEventListener('keydown', function f(event) { if (event.code == "Escape") { closeSearch(); document.removeEventListener('keydown', f); } }) }) var closeSearch = function () { $('body').css('overflow', 'auto') $('.search-dialog').animate({}, function () { $('.search-dialog').css({ 'display': 'none' }) }) $('.search-mask').fadeOut(); } $('.search-mask, .search-close-button').on('click', closeSearch) var algolia = GLOBAL_CONFIG.algolia var isAlgoliaValid = algolia.appId && algolia.apiKey && algolia.indexName if (!isAlgoliaValid) { return console.error('Algolia setting is invalid!') } var search = instantsearch({ appId: algolia.appId, apiKey: algolia.apiKey, indexName: algolia.indexName, searchParameters: { hitsPerPage: algolia.hits.per_page || 10 }, searchFunction: function (helper) { var searchInput = $('#algolia-search-input').find('input') if (searchInput.val()) { helper.search() } } }) search.addWidget( instantsearch.widgets.searchBox({ container: '#algolia-search-input', reset: false, magnifier: false, placeholder: GLOBAL_CONFIG.algolia.languages.input_placeholder }) ) search.addWidget( instantsearch.widgets.hits({ container: '#algolia-hits', templates: { item: function (data) { var link = data.permalink ? data.permalink : (GLOBAL_CONFIG.root + data.path) return ( '' + data._highlightResult.title.value + '' ) }, empty: function (data) { return ( '
' + GLOBAL_CONFIG.algolia.languages.hits_empty.replace(/\$\{query}/, data.query) + '
' ) } }, cssClasses: { item: 'algolia-hit-item' } }) ) search.addWidget( instantsearch.widgets.stats({ container: '#algolia-stats', templates: { body: function (data) { var stats = GLOBAL_CONFIG.algolia.languages.hits_stats .replace(/\$\{hits}/, data.nbHits) .replace(/\$\{time}/, data.processingTimeMS) return ( '
' + stats + '' ) } } }) ) search.addWidget( instantsearch.widgets.pagination({ container: '#algolia-pagination', scrollTo: false, showFirstLast: false, labels: { first: '', last: '', previous: '', next: '' }, cssClasses: { root: 'pagination', item: 'pagination-item', link: 'page-number', active: 'current', disabled: 'disabled-item' } }) ) search.start() })