12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // polyfills
- import 'babel-polyfill';
- import domready from 'domready';
- import search from './search';
- const GravTNTSearch = () => {
- /* const uri = new URI(global.location.href, true);
- history.replace({
- search: global.location.search,
- hash: global.location.hash,
- state: {
- historyValue: uri.query.q || '',
- type: 'tntsearch',
- },
- });*/
- const searchForms = document.querySelectorAll('form.tntsearch-form');
- [...searchForms].forEach((form) => {
- const input = form.querySelector('.tntsearch-field');
- const clear = form.querySelector('.tntsearch-clear');
- const results = form.querySelector('.tntsearch-results');
- if (!input || !results) { return false; }
- form.addEventListener('submit', (event) => event.preventDefault());
- input.addEventListener('focus', () => search(input, results));
- input.addEventListener('input', () => {
- if (clear) {
- clear.style.display = '';
- }
- search.cancel();
- search({ input, results });
- });
- if (clear) {
- clear.addEventListener('click', () => {
- if (clear) {
- clear.style.display = 'none';
- }
- input.value = '';
- search.cancel();
- search({ input, results });
- });
- }
- return this;
- });
- document.addEventListener('click', (event) => {
- [...searchForms].forEach((form) => {
- if (!form.querySelector('.tntsearch-dropdown')) { return; }
- if (!form.contains(event.target)) {
- form.querySelector('.tntsearch-results').style.display = 'none';
- }
- });
- });
- };
- domready(GravTNTSearch);
- window.GravTNTSearch = GravTNTSearch;
|