(function () { var MAX_TRIES = 80; var RETRY_INTERVAL = 100; var SIDES = ['left', 'right']; var MODES = ['mobileOnly', 'alwaysOn']; var MOBILE_BREAKPOINT = 767; function findSideMarker() { for (var i = 0; i < SIDES.length; i++) { var side = SIDES[i]; var el = document.querySelector('.baseTemplateSideMenuSide--' + side); if (el) return side; } return null; } function findModeMarker() { for (var i = 0; i < MODES.length; i++) { var mode = MODES[i]; var el = document.querySelector('.baseTemplateSideMenuMode--' + mode); if (el) return mode; } return 'mobileOnly'; } function buildCss(panelSide, mode) { var toggleSide = panelSide === 'left' ? 'right' : 'left'; var collapsedTransform = panelSide === 'left' ? 'translate3d(calc(var(--baseTemplateSideMenu-width, 300px) * -1), 0, 0)' : 'translate3d(var(--baseTemplateSideMenu-width, 300px), 0, 0)'; var shadowSign = panelSide === 'left' ? '2px' : '-2px'; var toggleRadius = toggleSide === 'left' ? '0 4px 4px 0' : '4px 0 0 4px'; var responsiveRules; if (mode === 'alwaysOn') { responsiveRules = '.menubg .navbar-nav {' + ' display: none !important;' + '}' + '.navbar-toggle {' + ' display: none !important;' + '}' + '.baseTemplateSideMenuToggle {' + ' display: block !important;' + '}'; } else { responsiveRules = '@media (max-width: ' + MOBILE_BREAKPOINT + 'px) {' + ' .menubg .navbar-nav {' + ' display: none !important;' + ' }' + ' .navbar-toggle {' + ' display: none !important;' + ' }' + ' .baseTemplateSideMenuToggle {' + ' display: block !important;' + ' }' + '}' + '@media (min-width: ' + (MOBILE_BREAKPOINT + 1) + 'px) {' + ' .baseTemplateSideMenuToggle,' + ' .baseTemplateSideMenuContainer {' + ' display: none !important;' + ' }' + '}'; } return ( responsiveRules + '.baseTemplateSideMenuToggle {' + ' position: fixed;' + ' ' + toggleSide + ': 0;' + ' top: var(--baseTemplateSideMenu-toggle-top, 30px);' + ' z-index: 1000;' + ' width: var(--baseTemplateSideMenu-toggle-size, 50px);' + ' height: var(--baseTemplateSideMenu-toggle-size, 50px);' + ' background: var(--baseTemplateSideMenu-toggle-bg, #333);' + ' color: var(--baseTemplateSideMenu-toggle-color, #fff);' + ' border: none;' + ' cursor: pointer;' + ' border-radius: ' + toggleRadius + ';' + '}' + '.baseTemplateSideMenuToggle .fa-solid {' + ' font-size: 18px;' + '}' + '.baseTemplateSideMenuContainer {' + ' display: flex;' + ' position: fixed;' + ' top: 0;' + ' ' + panelSide + ': 0;' + ' background: var(--baseTemplateSideMenu-bg, #fff);' + ' z-index: 1000;' + ' height: 100%;' + ' padding-top: 35px;' + ' transform: ' + collapsedTransform + ';' + ' box-shadow: ' + shadowSign + ' 0px 9px rgba(0,0,0,0);' + ' transition: transform var(--baseTemplateSideMenu-transition-duration, 0.4s) cubic-bezier(0.4, 0, 0.2, 1), box-shadow var(--baseTemplateSideMenu-transition-duration, 0.4s) ease;' + '}' + '.baseTemplateSideMenuContainer.collapsed {' + ' transform: ' + collapsedTransform + ';' + ' box-shadow: ' + shadowSign + ' 0px 9px rgba(0,0,0,0);' + '}' + '.baseTemplateSideMenuContainer:not(.collapsed) {' + ' transform: translate3d(0, 0, 0);' + ' box-shadow: ' + shadowSign + ' 0px 9px var(--baseTemplateSideMenu-shadow-color, rgba(0,0,0,0.3));' + '}' + '.baseTemplateSideMenuContainer .nav.navbar-nav {' + ' display: flex !important;' + ' flex-flow: column;' + ' width: var(--baseTemplateSideMenu-width, 300px);' + ' margin: 10px 0 0 0;' + ' padding: 0;' + ' list-style: none;' + '}' + '.baseTemplateSideMenuContainer .nav.navbar-nav LI {' + ' margin-bottom: 0 !important;' + '}' + '.baseTemplateSideMenuContainer .nav.navbar-nav > li a {' + ' display: block;' + ' padding: 12px 24px;' + ' font-size: 15px;' + ' color: var(--baseTemplateSideMenu-link-color, #333);' + ' border-bottom: 1px solid var(--baseTemplateSideMenu-link-border-color, #e0e0e0);' + ' text-decoration: none;' + ' transition: background 0.2s ease, padding-left 0.2s ease;' + '}' + '.baseTemplateSideMenuContainer .nav.navbar-nav > li a:hover {' + ' background: var(--baseTemplateSideMenu-link-hover-bg, #f5f5f5);' + ' padding-left: var(--baseTemplateSideMenu-link-hover-indent, 32px);' + '}' + '.baseTemplateSideMenuContainer .dropdown-menu {' + ' top: 0 !important;' + ' position: relative !important;' + ' background-color: #fff !important;' + '}' + '.baseTemplateSideMenuContainer .open .dropdown-menu {' + ' background-color: #fff !important;' + '}' + '.baseTemplateSideMenuClose {' + ' position: absolute;' + ' ' + toggleSide + ': 20px;' + ' top: 10px;' + ' cursor: pointer;' + ' z-index: 1000;' + ' color: var(--baseTemplateSideMenu-close-color, #555);' + ' font-size: 14px;' + ' transition: color 0.2s ease, transform 0.2s ease;' + '}' + '.baseTemplateSideMenuClose:hover {' + ' color: var(--baseTemplateSideMenu-close-hover-color, #000);' + ' transform: rotate(90deg);' + '}' + '.baseTemplateSideMenuContainer:not(.collapsed) .nav.navbar-nav > li {' + ' animation: baseTemplateSideMenuSlideUpIn var(--baseTemplateSideMenu-item-duration, 0.3s) ease forwards;' + ' animation-delay: calc(var(--baseTemplateSideMenu-item-stagger-base, 0.5s) + (var(--baseTemplateSideMenu-item-index, 0) * var(--baseTemplateSideMenu-item-stagger-step, 0.05s)));' + ' opacity: 0;' + '}' + '@keyframes baseTemplateSideMenuSlideUpIn {' + ' from { opacity: 0; transform: translateY(12px); }' + ' to { opacity: 1; transform: translateY(0); }' + '}' ); } function addStyleSheet(styles) { var stylesheet = document.createElement('style'); stylesheet.setAttribute('data-basetemplate', 'side-menu-always'); stylesheet.appendChild(document.createTextNode(styles)); document.head.appendChild(stylesheet); } function elementBuild(type, attrs, content) { var el = document.createElement(type); if (attrs) { for (var key in attrs) el.setAttribute(key, attrs[key]); } if (content != null) el.insertAdjacentHTML('afterbegin', content); return el; } function domInserter(items, target, location) { for (var i = 0; i < items.length; i++) { target.insertAdjacentElement(location, items[i]); } } function runWithRetry(fn, maxTries, interval) { var tries = 0; var t = setInterval(function () { tries++; var done = fn(); if (done || tries >= maxTries) clearInterval(t); }, interval); } function build() { var side = findSideMarker(); if (!side) return true; if (document.querySelector('.baseTemplateSideMenuContainer')) return true; var menu = document.querySelector('.menubg'); var navSource = document.querySelector('.nav.navbar-nav'); if (!menu || !navSource) return false; var mode = findModeMarker(); document.documentElement.setAttribute('data-basetemplate-sidemenu-side', side); document.documentElement.setAttribute('data-basetemplate-sidemenu-mode', mode); addStyleSheet(buildCss(side, mode)); var menuDupe = navSource.cloneNode(true); var navItems = menuDupe.children; for (var i = 0; i < navItems.length; i++) { navItems[i].style.setProperty('--baseTemplateSideMenu-item-index', i); } var sideMenuContainer = elementBuild('div', { class: 'baseTemplateSideMenuContainer collapsed' }); var closeBtn = elementBuild('span', { class: 'fa-solid fa-x baseTemplateSideMenuClose' }); var navBtn = elementBuild( 'button', { class: 'baseTemplateSideMenuToggle', type: 'button' }, '' ); domInserter([menuDupe, closeBtn], sideMenuContainer, 'afterbegin'); menu.insertAdjacentElement('beforebegin', sideMenuContainer); menu.insertAdjacentElement('beforebegin', navBtn); var toggleMenu = function () { sideMenuContainer.classList.toggle('collapsed'); }; navBtn.addEventListener('click', toggleMenu); closeBtn.addEventListener('click', toggleMenu); return true; } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function () { runWithRetry(build, MAX_TRIES, RETRY_INTERVAL); }); } else { runWithRetry(build, MAX_TRIES, RETRY_INTERVAL); } })();