<div class=“suggestion-search”>
<label class="suggestion-search__icon" for="suggestion-search"> <?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 12 12"><g class="suggestion-search__svg" stroke-width="2" fill="none"><path d="M11.29 11.71l-4-4"/><circle cx="5" cy="5" r="4"/></g></svg> </label> <input class="uikit-text-input uikit-text-input--block suggestion-search__input" placeholder="{{ include.placeholder }}" id="suggestion-search" type="text">
</div>
<script type=“text/javascript”>
document.addEventListener("DOMContentLoaded", function(e) { var filterDuplicateResults = function(matches) { return matches.filter(function(match, pos, arr) { return arr.findIndex(function(elm) { return elm.link === match.link }) === pos; }); }; var customSearcher = function(data) { return function findMatches(query, callback) { var matches; var substringRegex; matches = []; substrRegex = new RegExp(query, 'i'); data.forEach(function(elm, index) { if (substrRegex.test(elm.shortDescription)) { matches.push(elm); } }); refinedMatches = filterDuplicateResults(matches); callback(refinedMatches); }; }; $('.suggestion-search__input').typeahead({ classNames: { wrapper: 'suggestion-search__root', menu: 'suggestion-search__menu', cursor: 'suggestion-search__item--highlighted' }, hint: true, highlight: true, minLength: 1 }, { name: 'data', source: customSearcher(searchResults), display: 'shortDescription', limit: 5, templates: { suggestion: function(result) { var onclick = result.login ? "event.preventDefault();" : " "; return `<div role="option" aria-selected="false" class="suggestion-search__item"> <a onclick="${onclick}" class="suggestion-search__link" href="${result.link}">${result.shortDescription}</a></div>`; }, } }); $('.suggestion-search__input').bind('typeahead:select', function(e, suggestion) { var loggedOut = localStorage.getItem('loggedIn') !== 'true'; if (suggestion.login && loggedOut) { window.location.href = "/account_login.html" } else { window.location.href = suggestion.link; } }); });
</script>