graphdb-workbench
Version:
The web application for GraphDB APIs
1 lines • 2.47 kB
JavaScript
import{h}from"@stencil/core";import{AuthenticationService,navigateTo,service}from"../../../../../api/dist/ontotext-workbench-api";export class OntoUserMenu{constructor(){this.authenticationService=service(AuthenticationService),this.logout=()=>{this.authenticationService.logout()},this.toggleDropdown=()=>{this.isOpen=!this.isOpen},this.handleOutsideClick=e=>{this.isOpen&&!this.hostElement.contains(e.target)&&(this.isOpen=!1)}}connectedCallback(){document.addEventListener("click",this.handleOutsideClick)}disconnectedCallback(){document.removeEventListener("click",this.handleOutsideClick)}render(){return h("section",{key:"df7688b500d9e0a6d4704619ba9936404f88dc06",class:"onto-user-menu"},h("div",{key:"329d3c091bfc71d93873d6f0c937d279d250b7d9",class:"dropdown-toggle-wrapper",onClick:this.toggleDropdown},h("button",{key:"457dada79a3cdfbc3f6026a8582beb8ad9a5b0ff",class:this.isOpen?"open":""},h("i",{key:"2e7d010c271e8e87f55a90ec786669011e307de2",class:"ri-user-line ri-lg"}),h("span",{key:"e56a8ec1c50e5614e5b8fbeb7217eb236a40f4e2",class:"username"},this.user.username),h("i",{key:"4c94c83e84e9b3d1f3077a840bbc6c8f6bd14490",class:"ri-arrow-down-s-line "+(this.isOpen?"rotate-180":"")})),this.isOpen?h("section",{class:"onto-user-menu-dropdown"},h("translate-label",{onClick:navigateTo("settings"),labelKey:"user_menu.my_settings"}),this.authenticationService.isExternalUser()?"":h("translate-label",{onClick:this.logout,labelKey:"user_menu.logout"})):""))}static get is(){return"onto-user-menu"}static get originalStyleUrls(){return{$:["onto-user-menu.scss"]}}static get styleUrls(){return{$:["onto-user-menu.css"]}}static get properties(){return{user:{type:"unknown",attribute:"user",mutable:!1,complexType:{original:"AuthenticatedUser",resolved:"AuthenticatedUser",references:{AuthenticatedUser:{location:"import",path:"@ontotext/workbench-api",id:"../api/dist/ontotext-workbench-api.d.ts::AuthenticatedUser"}}},required:!1,optional:!1,docs:{tags:[],text:"Currently authenticated user"},getter:!1,setter:!1},securityConfig:{type:"unknown",attribute:"security-config",mutable:!1,complexType:{original:"SecurityConfig",resolved:"SecurityConfig",references:{SecurityConfig:{location:"import",path:"@ontotext/workbench-api",id:"../api/dist/ontotext-workbench-api.d.ts::SecurityConfig"}}},required:!1,optional:!1,docs:{tags:[],text:"Current security config"},getter:!1,setter:!1}}}static get states(){return{isOpen:{}}}static get elementRef(){return"hostElement"}}