graphdb-workbench
Version:
The web application for GraphDB APIs
2 lines • 5.52 kB
JavaScript
export const __webpack_id__=39874;export const __webpack_ids__=[39874];export const __webpack_modules__={39874:(e,i,t)=>{t.r(i),t.d(i,{onto_layout:()=>r});var s=t(87848),a=t(57154);const r=class{constructor(e){(0,s.r)(this,e),this.securityContextService=a.ServiceProvider.get(a.SecurityContextService),this.authenticationService=a.ServiceProvider.get(a.AuthenticationService),this.navigationContextService=a.ServiceProvider.get(a.NavigationContextService),this.isLowResolution=!1,this.hasPermission=!0,this.showHeader=this.isAuthenticatedFully(),this.subscriptions=new a.SubscriptionList,this.isNavbarCollapsed=!1,this.windowResizeObserver=function(e,i=300){let t;return(...s)=>{clearTimeout(t),t=setTimeout(()=>e.apply(this,s),i)}}(()=>this.windowResizeHandler(),50),a.WindowService.getWindow().addEventListener("storage",this.handleStorageChange)}componentDidLoad(){this.windowResizeHandler()}connectedCallback(){this.subscribeToSecurityChanges(),this.updateVisibility(),this.subscriptions.add(this.securityContextService.onRestrictedPagesChanged(e=>this.setPermission(e))),this.subscriptions.add(a.ServiceProvider.get(a.EventService).subscribe(a.EventName.NAVIGATION_END,e=>{this.navigationContextService.updatePreviousRoute(e.oldUrl),this.setPermission(this.securityContextService.getRestrictedPages())})),this.setPermission(this.securityContextService.getRestrictedPages())}disconnectedCallback(){this.subscriptions.unsubscribeAll()}render(){return(0,s.h)(s.a,{key:"8ac7b898ae52fb40814ae664c1666ac3d05e3263",class:"wb-layout"},(0,s.h)("div",{key:"2672ccbf6b5f17a25cca8e4db244705ac0fc333d",class:"default-slot-wrapper"},(0,s.h)("slot",{key:"24543fc3c526950e944dc4e37e4ed559fae1c389",name:"default"})),(0,s.h)("header",{key:"a67d6e4932aae82b474d70d220415cea271ffeb9",class:"wb-header"},this.showHeader&&(0,s.h)("onto-header",{key:"8bb74bfea276d89824ead02609e80c070582d35e"})),(0,s.h)("nav",{key:"e5f83abdc3d6f1d89d9e6e2f83b7c6a62bc22389",class:"wb-navbar"},(0,s.h)("onto-navbar",{key:"2265c999b7650d255f28efd07b1f9977b7a9498f",ref:this.assignNavbarRef(),"navbar-collapsed":this.isLowResolution})),this.hasPermission?(0,s.h)("div",{class:"main-slot-wrapper"},(0,s.h)("slot",{name:"main"})):(0,s.h)("onto-permission-banner",null),(0,s.h)("footer",{key:"016c8d0c9c1de47b9c4ccf64a0f717ee67f4fcbc",class:"wb-footer"},(0,s.h)("onto-footer",{key:"90787f7d2c4cf1840ae3048d4b60f4f7c1ea948f"})),(0,s.h)("onto-tooltip",{key:"329f4cf1b14442c59da0125bc8b607185d402134"}),(0,s.h)("onto-toastr",{key:"615db8b9c70a90521ff393c5f98ff1d0c2f511b4"}))}onNavbarToggled(e){this.isNavbarCollapsed=e.detail.payload,this.isNavbarCollapsed?this.hostElement.classList.add("expanded"):this.hostElement.classList.remove("expanded")}onResize(){this.windowResizeObserver()}windowResizeHandler(){this.isLowResolution=a.WindowService.getWindow().innerWidth<=768,this.isLowResolution||this.isNavbarCollapsed?this.hostElement.classList.add("expanded"):this.hostElement.classList.remove("expanded")}handleStorageChange(e){a.ServiceProvider.get(a.LocalStorageSubscriptionHandlerService).handleStorageChange(e)}subscribeToSecurityChanges(){const e=a.ServiceProvider.get(a.SecurityContextService);this.subscriptions.add(e.onAuthenticatedUserChanged(e=>{this.authenticatedUser=e,this.updateVisibility()})),this.subscriptions.add(e.onSecurityConfigChanged(e=>{this.securityConfig=e,this.updateVisibility()})),this.subscriptions.add(a.ServiceProvider.get(a.EventService).subscribe(a.EventName.LOGOUT,()=>{this.setNavbarItemVisibility(),this.updateVisibility()})),this.subscriptions.add(e.onAuthTokenChanged(()=>{this.setNavbarItemVisibility(),this.updateVisibility()}))}setPermission(e){if(e){const i=(0,a.getPathName)();this.hasPermission=!e.isRestricted(i)}else this.hasPermission=!0;const i=document.querySelector(".wb-layout main");i&&(i.style.display=this.hasPermission?"block":"none")}updateVisibility(){this.authenticationService.isSecurityEnabled()?this.showHeader=this.authenticationService.isLoggedIn()||this.authenticationService.hasFreeAccess():this.showHeader=!0}isAuthenticatedFully(){const e=a.ServiceProvider.get(a.AuthenticationService);return!e.isSecurityEnabled()||e.isLoggedIn()||e.hasFreeAccess()}shouldShowMenu(e){return this.isAuthenticatedFully()&&a.ServiceProvider.get(a.AuthenticationService).hasRole(e)}assignNavbarRef(){return e=>{this.navbarRef=e,this.navbarRef.menuItems=a.WindowService.getWindow().PluginRegistry.get("main.menu"),this.setNavbarItemVisibility()}}setNavbarItemVisibility(){var e,i,t;if(!(null===(e=this.navbarRef)||void 0===e?void 0:e.menuItems))return;const s=e=>{var i;e.shouldShow=this.shouldShowMenu(e.role),(null===(i=e.children)||void 0===i?void 0:i.length)&&e.children.forEach(s)};null===(t=null===(i=this.navbarRef)||void 0===i?void 0:i.menuItems)||void 0===t||t.forEach(e=>{e.items.forEach(s)}),this.navbarRef.menuItems=[...this.navbarRef.menuItems]}get hostElement(){return(0,s.g)(this)}};r.style=':host{display:block;height:100%}.wb-layout{display:grid;grid-template-columns:15rem minmax(200px, 1fr);grid-template-rows:auto 1fr auto;grid-template-areas:"nav header" "nav main" "nav footer";min-height:100vh;margin:0}.wb-layout.expanded{grid-template-columns:4.375rem 1fr}.wb-layout nav{grid-area:nav}.wb-layout header{grid-area:header}.wb-layout main{grid-area:main}.wb-layout main .main-container{margin-left:0}.wb-layout .default-slot-wrapper{display:none}.wb-layout footer{grid-area:footer}.wb-header{position:sticky;top:0;z-index:999}'}};
//# sourceMappingURL=39874.c2d7cab1a65e5a869e78.bundle.js.map