60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
CNVS.TopSearch = function() {
|
|
var __core = SEMICOLON.Core;
|
|
|
|
return {
|
|
init: function(selector) {
|
|
selector = __core.getSelector( selector, false );
|
|
if( selector.length < 1 ){
|
|
return true;
|
|
}
|
|
|
|
var searchForm = document.querySelector('.top-search-form');
|
|
|
|
if( !searchForm ) {
|
|
return true;
|
|
}
|
|
|
|
searchForm.closest('.header-row')?.classList.add( 'top-search-parent' );
|
|
|
|
var topSearchParent = document.querySelector('.top-search-parent'),
|
|
timeout;
|
|
|
|
selector[0].onclick = function(e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
|
|
clearTimeout( timeout );
|
|
|
|
__core.getVars.elBody.classList.toggle('top-search-open');
|
|
document.getElementById('top-cart')?.classList.remove('top-cart-open');
|
|
|
|
__core.getVars.recalls.menureset();
|
|
|
|
if( __core.getVars.elBody.classList.contains('top-search-open') ) {
|
|
topSearchParent?.classList.add('position-relative');
|
|
} else {
|
|
timeout = setTimeout( function() {
|
|
topSearchParent?.classList.remove('position-relative');
|
|
}, 500);
|
|
}
|
|
|
|
__core.getVars.elBody.classList.remove("primary-menu-open");
|
|
__core.getVars.elPageMenu && __core.getVars.elPageMenu.classList.remove('page-menu-open');
|
|
|
|
if (__core.getVars.elBody.classList.contains('top-search-open')){
|
|
searchForm.querySelector('input').focus();
|
|
}
|
|
};
|
|
|
|
document.addEventListener( 'click', function(e) {
|
|
if (!e.target.closest('.top-search-form')) {
|
|
__core.getVars.elBody.classList.remove('top-search-open');
|
|
timeout = setTimeout( function() {
|
|
topSearchParent?.classList.remove('position-relative');
|
|
}, 500);
|
|
}
|
|
}, false);
|
|
}
|
|
};
|
|
}();
|