mediatheque
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
// 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;
|
||||
Reference in New Issue
Block a user