UNPKG

bootstrap-lombardia

Version:

Bootstrap Lombardia è una customizzazione di Boostrap Italia per la creazione di applicazioni web conformi alle Linee Guida per il design e l’identità visiva digitale di Regione Lombardia

115 lines (108 loc) 5.12 kB
function it25Header () { function setIconBurger() { var hamButtonIcon = document.getElementById('btn-hamburger').querySelector('svg').querySelector('use'); var newIcon; if (hamButtonIcon.getAttribute('xlink:href').includes('it-burger')) { newIcon = hamButtonIcon.getAttribute('xlink:href').replace('it-burger', 'it-close-big'); hamButtonIcon.setAttribute('xlink:href', newIcon); document.getElementById('btn-hamburger').setAttribute('aria-label', 'Chiudi menù'); } else { newIcon = hamButtonIcon.getAttribute('xlink:href').replace('it-close-big', 'it-burger'); hamButtonIcon.setAttribute('xlink:href', newIcon); document.getElementById('btn-hamburger').setAttribute('aria-label', 'Apri menù'); } } function clickMenuVert() { var x = document.getElementById('it25-menu-vert'); if (x.style.display === 'block') { x.style.display = 'none'; } else { resizeMenuVert(); x.style.display = 'block'; } setIconBurger(); } function initMenuVert() { if (document.getElementById('it25-menu-vert')) { window.addEventListener('scroll', resizeMenuVert); window.addEventListener('resize', resizeMenuVert); document.getElementById('btn-hamburger').addEventListener('click', clickMenuVert); } else if (document.getElementById('it25-main-nav')) { document.getElementById('btn-hamburger').addEventListener('click', setIconBurger); document.getElementById('it25-main-nav').addEventListener('show.bs.collapse', function () { window.scrollTo(0, 0); }); } } function resizeMenuVert() { let height = 0; const topbarHeight = document.getElementsByClassName('it25-top-bar')[0].offsetHeight; const breakpoint = getComputedStyle(document.documentElement).getPropertyValue('--it-grid-breakpoint-lg').replace('px', ''); if (window.scrollY > topbarHeight) { if (window.innerWidth > breakpoint) { document.getElementById('header-nav-wrapper').style.height = 'unset'; } else { document.getElementById('header-nav-wrapper').style.height = ''; } height = window.innerHeight - document.getElementById('header-nav-wrapper').offsetHeight; } else { document.getElementById('header-nav-wrapper').style.height = ''; height = window.innerHeight - document.getElementById('header-nav-wrapper').offsetHeight - topbarHeight; } document.getElementById('it25-menu-vert').style.setProperty('--it25-menuvert-height', height); } function initCloning() { if (document.getElementsByClassName('it-header-sticky').length > 0) { const headerCenter = document.getElementsByClassName('it-header-center-wrapper')[0]; if (headerCenter.classList.contains('it25-header-sidebar') || headerCenter.classList.contains('it25-header-menu-vert')) { return } if (!document.getElementsByClassName('it25-menu-orizzontale')[0]) { headerCenter.classList.add('no-menu'); return } const brandWrapper = headerCenter.getElementsByClassName('it-brand-wrapper')[0].cloneNode(true); if (brandWrapper.getElementsByClassName('it25-header-logo').length > 0) { if (brandWrapper.getElementsByClassName('it-brand-text').length > 0) { brandWrapper.getElementsByClassName('it-brand-text')[0].classList.add('d-none'); } } else { if (brandWrapper.getElementsByClassName('it25-text-logo').length > 0) { brandWrapper.getElementsByClassName('it25-app-name')[0].classList = 'it25-app-name d-none'; console.log(brandWrapper.getElementsByClassName('it25-app-name')[0].classList); } } let searchWrapper; if (headerCenter.getElementsByClassName('it-search-wrapper')[0]) { searchWrapper = headerCenter.getElementsByClassName('it-search-wrapper')[0].cloneNode(true); searchWrapper.classList.add('d-none', 'd-lg-flex'); } let isCloned = false; const topbarHeight = document.getElementsByClassName('it25-top-bar')[0].offsetHeight; const headerCenterHeight = document.getElementsByClassName('it-header-center-wrapper')[0].offsetHeight; window.addEventListener('scroll', () => { if (window.scrollY > topbarHeight + headerCenterHeight) { if (!isCloned) { isCloned = true; if (searchWrapper) { document.getElementsByClassName('menu-wrapper')[0].appendChild(searchWrapper); } document.getElementsByClassName('menu-wrapper')[0].insertBefore(brandWrapper, document.getElementsByClassName('menu-wrapper')[0].firstChild); } } else { if (isCloned) { isCloned = false; if (searchWrapper) { document.getElementsByClassName('menu-wrapper')[0].removeChild(searchWrapper); } document.getElementsByClassName('menu-wrapper')[0].removeChild(brandWrapper); } } }); } } initMenuVert(); initCloning(); } export { it25Header as default }; //# sourceMappingURL=it25-header.js.map