include Mixins mixin LinkTopParent(config) - var config = Object.assign({}, config) - var { url, icon, text, badge, hasHash, isDisabled, targetBlank } = config; - var href = hasHash ? text!=='modal' ? `${CWD}${url}.html` : `${CWD}${url}` : url a.nav-link( href=href target=targetBlank ? '_blank' : false class=isDisabled ? 'nav-link-disable' : href.includes(pathName) ? 'active' : '' )&attributes(attributes) .d-flex.align-items-center if icon span.nav-link-icon span(class=icon) span.nav-link-text.ps-1 +cleanText(text) if badge span.badge.rounded-pill.ms-2(class=`badge-subtle-${badge.type}`)=badge.text mixin PageLooper(page,label, depth = 0) - function show(pages){ const checkLink = (page)=>{ if(page.path === pathName){ return true; } return page.hasOwnProperty('pages') && page.pages.some(checkLink) } return pages.some(checkLink) } if page.pages ul.nav.collapse(class=`${ show(page.pages) ? 'show': ''}` id=page.name) each innerPage in page.pages li.nav-item +LinkTopParent({ url: innerPage.pages ? `#${innerPage.name}`:`${innerPage.path}`, text: innerPage.name, targetBlank: innerPage.targetBlank, badge: innerPage.badge, icon: innerPage.icon, isDisabled: innerPage.disabled, hasHash: innerPage.pages ? false: true, })( class= innerPage.pages ? 'dropdown-indicator': '' data-bs-toggle=innerPage.pages? "collapse" : innerPage.name ==="modal" ? 'modal': false aria-expanded=innerPage.pages ? show(innerPage.pages) ? 'true' : 'false' : false aria-controls=innerPage.pages && page.name ) // more inner pages +PageLooper(innerPage,label, depth + 1) mixin Looper(sitemap) - function show(pages){ const checkLink = (page)=>{ if(page.path === pathName){ return true; } return page.hasOwnProperty('pages') && page.pages.some(checkLink) } return pages.some(checkLink) } each item, index in sitemap li.nav-item if item.label && !item.labelDisabled // label .row.navbar-vertical-label-wrapper(class=`${index > 0 ? "mt-3 mb-2" : "mb-2"}`) .col-auto.navbar-vertical-label +cleanText(`${item.label}`) .col.ps-0 hr.mb-0.navbar-vertical-divider if item.pages each page in item.pages // parent pages +LinkTopParent({ url: page.pages ? `#${page.name}`: `${page.path}`, icon: page.icon, targetBlank: page.targetBlank, text: `${page.name}`, badge: page.badge, hasHash: page.pages? false: true, isDisabled: page.disabled })( role="button" class= page.pages? 'dropdown-indicator': '' data-bs-toggle=page.pages? "collapse" : page.name ==="modal" ? 'modal': false aria-expanded=page.pages ? show(page.pages) ? 'true' : 'false' : false aria-controls=page.pages && page.name ) //- data-bs-target=page.name==="modal" && "#authentication-modal" +PageLooper(page,item.label) mixin NavbarVertical(config) - var config = Object.assign({comboNav: false}, config) nav.navbar.navbar-light.navbar-vertical.navbar-expand-xl&attributes(attributes) script. var navbarStyle = localStorage.getItem("navbarStyle"); if (navbarStyle && navbarStyle !== 'transparent') { document.querySelector('.navbar-vertical').classList.add(`navbar-${navbarStyle}`); } .d-flex.align-items-center .toggle-icon-wrapper +NavbarToggleIcon.navbar-vertical-toggle(data-bs-toggle="tooltip" data-bs-placement="left" title="Toggle Navigation") +NavbarBrand({ wrapperClass: 'py-3'}) #navbarVerticalCollapse.collapse.navbar-collapse .navbar-vertical-content.scrollbar ul.navbar-nav.flex-column.mb-3#navbarVerticalNav +Looper(sitemap) .settings.my-3 .card.shadow-none .card-body.alert.mb-0(role="alert") .btn-close-falcon-container button.btn.btn-link.btn-close-falcon.p-0(aria-label="Close" data-bs-dismiss="alert") .text-center img(src=`${CWD}assets/img/icons/spot-illustrations/navbar-vertical.png`, alt="" width=80) p.fs-11.mt-2 Loving what you see? br | Get your copy of a(href="#!") Falcon .d-grid a(href=`https://themes.getbootstrap.com/product/falcon-admin-dashboard-webapp-template/` target="_blank").btn.btn-sm.btn-primary | Purchase