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

112 lines (106 loc) 5 kB
export default function () { 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() }