diff --git a/docs/css/instantsearch.css b/docs/css/instantsearch.css index ac504cf8..18db2b94 100644 --- a/docs/css/instantsearch.css +++ b/docs/css/instantsearch.css @@ -126,7 +126,13 @@ footer.md-footer { margin: 0; } -.md-content .ais-InstantSearch .ais-Pagination .ais-Pagination-link { +.md-content .ais-InstantSearch .ais-Pagination .ais-Pagination-list .ais-Pagination-item--lastPage { + display: none; +} + +.md-content .ais-InstantSearch .ais-Pagination .ais-Pagination-link, +.md-content .ais-InstantSearch .ais-Pagination .ais-Pagination-link:focus { + background-color: transparent; border: none; font-size: 14px; line-height: 21px; diff --git a/docs/css/instantsearch.js b/docs/css/instantsearch.js deleted file mode 100644 index 8bf9d071..00000000 --- a/docs/css/instantsearch.js +++ /dev/null @@ -1,166 +0,0 @@ -(function(global, doc) { - let match; - const search_query = (match = doc.location.search.match(/sq=(.*?)(&|$)/)) ? match[1] : ''; - const parsed_search_query = decodeURI(search_query.replaceAll('+', ' ')); - const search_page = (match = doc.location.search.match(/p=(\d*?)(&|$)/)) ? match[1] : 1; - const parsed_search_page = parseInt(search_page); - let version = doc.location.pathname.split('/')[2]; - if (!/^\d+\.\d+$/.test(version) && version !== 'latest') { - version = 'master'; - } - const hitsContainer = '#hits'; - const statsContainer = '#stats'; - const paginationContainer = '#pagination'; - const search = instantsearch({ - indexName: 'ezplatform', - searchClient: algoliasearch('2DNYOU6YJZ', '21ce3e522455e18e7ee16cf7d66edb4b'), - initialUiState: { - ezplatform: { - query: parsed_search_query, - refinementList: { version: [version] }, - page: parsed_search_page, - }, - }, - searchFunction(helper) { - if (helper.state.query) { - helper.search(); - $(statsContainer).css('visibility', 'visible'); - $(paginationContainer).show(); - } else { - $(hitsContainer).empty(); - $(statsContainer).css('visibility', 'hidden'); - $(paginationContainer).hide(); - } - }, - }); - - getNextSearchURL = () => { - const searchInputElements = document.getElementsByClassName('ais-SearchBox-input'); - const text = searchInputElements[0].value.trim(); - const selectedPaginationItemElements = doc.getElementsByClassName('ais-Pagination-item--selected'); - const page = selectedPaginationItemElements.length ? parseInt(selectedPaginationItemElements[0].innerText) : 1; - const url = new URL(window.location); - url.searchParams.set('sq', text); - url.searchParams.set('p', page); - return url; - }; - - let idleTimer; - const startIdleTimer = (url) => { - stopIdleTimer(); - idleTimer = window.setTimeout(() => { - window.history.pushState({}, '', url); - }, 1500); - }; - const stopIdleTimer = () => { - window.clearTimeout(idleTimer); - }; - - doc.getElementById('searchbox').addEventListener('keyup', function(event) { - const url = getNextSearchURL(); - if (url.searchParams.get('sq') != (new URL(window.location)).searchParams.get('sq')) { - url.searchParams.set('p', 1); - startIdleTimer(url); - } - }); - - doc.getElementById('pagination').addEventListener('click', function(event) { - stopIdleTimer(); - const url = getNextSearchURL(); - window.history.pushState({}, '', url); - }); - - window.onpopstate = (event) => { - window.location.reload(); - }; - - search.addWidgets([ - instantsearch.widgets.configure({ - hitsPerPage: 10, - }), - instantsearch.widgets.stats({ - container: statsContainer, - templates: { - text: `

- Search results ({{#helpers.formatNumber}}{{nbHits}}{{/helpers.formatNumber}}) -

`, - }, - }), - instantsearch.widgets.searchBox({ - container: '#searchbox', - }), - instantsearch.widgets.hits({ - container: hitsContainer, - templates: { - item: (hit) => { - const hierarchy = Object.entries(hit.hierarchy).filter(([, value]) => value); - const breadcrumbsKeys = hierarchy.map(([key]) => key); - const entryNameKey = breadcrumbsKeys.pop(); - - const headerHTML = `

- ${instantsearch.highlight({ - attribute: `hierarchy.${entryNameKey}`, - highlightedTagName: 'mark', - hit: hit, - })} -

`; - - let breadcrumbsHTML = ''; - let contentHTML = ''; - - if (hit.content && hit._highlightResult.content.matchedWords.length && (!hit._highlightResult.content.fullyHighlighted || 1 < hit._highlightResult.content.matchedWords.length)) { - contentHTML = `
- ${instantsearch.highlight({ - attribute: `content`, - highlightedTagName: 'mark', - hit: hit, - }).replaceAll('&', '&')} -
`; - } - - breadcrumbsKeys?.forEach((breadcrumbKey) => { - breadcrumbsHTML += ` - ${instantsearch.highlight({ - attribute: `hierarchy.${breadcrumbKey}`, - highlightedTagName: 'mark', - hit: hit, - })} - `; - }); - - return resultHTML = ` -
- ${breadcrumbsHTML} -
- ${headerHTML} - ${contentHTML} -
`; - }, - }, - }), - instantsearch.widgets.pagination({ - container: paginationContainer, - padding: 2, - templates: { - first: ` - - `, - previous: ` - - `, - next: ` - - `, - last: ` - - `, - }, - }), - instantsearch.widgets.refinementList({ - container: document.querySelector('#version'), - attribute: 'version', - }), - ]); - - search.start(); -})(window, window.document); diff --git a/docs/images/ez-icons.svg b/docs/images/ez-icons.svg index 2e912f59..4ae23b0f 100644 --- a/docs/images/ez-icons.svg +++ b/docs/images/ez-icons.svg @@ -95,6 +95,26 @@ + + + + + + + + + + + + + + + + + + + +