{"version":3,"file":"account-menu.mjs","sources":["../../../projects/account-menu/src/lib/tokens.ts","../../../projects/account-menu/src/lib/account-menu.component.ts","../../../projects/account-menu/src/lib/account-menu.component.html","../../../projects/account-menu/src/lib/account-menu.module.ts","../../../projects/account-menu/src/public-api.ts","../../../projects/account-menu/src/account-menu.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport const LOGOUT_ITEM = new InjectionToken<boolean>('logoutItem');\nexport const ACCOUNT_MENU_QA_ENV = new InjectionToken<boolean>(\n    'qaEnv',\n    {\n        providedIn: 'root',\n        factory: () => false\n    }\n);","import { Component, ViewEncapsulation, OnInit, Input, Inject, OnDestroy } from '@angular/core';\nimport { TranslateService, LangChangeEvent } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\nimport { Subscription, BehaviorSubject } from 'rxjs';\nimport { LOGOUT_ITEM, ACCOUNT_MENU_QA_ENV } from './tokens';\n\n@Component({\n  selector: 'app-account-menu',\n  templateUrl: './account-menu.component.html',\n  styleUrl: './account-menu.component.scss',\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AccountMenuComponent implements OnInit, OnDestroy {\n  @Input() userInitials: string = 'N/A';\n  @Input() userName: string = 'N/A';\n  @Input() userEmail: string = 'N/A';\n  @Input() logOut!: () => void;\n  @Input() profileUrl: string = 'https://www.eaton.com/us/en-us/secure/profile.html';\n\n  private _menuItems = new BehaviorSubject<any[]>([]);\n  @Input() set menuItems(value: any[]) {\n    this._menuItems.next(value);\n  };\n  get menuItems() {\n    return this._menuItems.value;\n  }\n\n  eatonQADomain: string = 'https://www-sit.eaton.com';\n  eatonProdDomain: string = 'https://www.eaton.com';\n  eatonDomain: string = '';\n\n  items: any[] = [];\n  logOutMenuItem: any[] = [];\n\n  subscriptions: Subscription = new Subscription();\n\n  constructor(\n    public router: Router,\n    private translate: TranslateService,\n    @Inject(LOGOUT_ITEM) public logoutItem: boolean,\n    @Inject(ACCOUNT_MENU_QA_ENV) public qaEnv: boolean\n  ) {}\n\n  ngOnInit() {\n    this.updateMenuItems();\n\n    this.subscriptions.add(this.translate.onLangChange.subscribe(() => {\n\n      if (this.qaEnv) {\n        this.eatonDomain = this.eatonQADomain;\n      } else {\n        this.eatonDomain = this.eatonProdDomain;\n      }\n\n      switch (this.translate.currentLang) {\n        case \"EN_US\":\n            this.profileUrl = this.eatonDomain + \"/us/en-us/secure/profile.html\";\n            break;\n        case \"EN_CA\":\n            this.profileUrl = this.eatonDomain + \"/ca/en-gb/secure/profile.html\";\n            break;\n        case \"FR_CA\":\n            this.profileUrl = this.eatonDomain + \"/ca/fr-ca/secure/profile.html\";\n            break;\n        default:\n            this.profileUrl = this.eatonDomain + \"/us/en-us/secure/profile.html\";\n      }\n\n      this.updateMenuItems();\n    }));\n\n    this.subscriptions.add(this._menuItems.subscribe(() => {\n      this.updateMenuItems();\n    }));\n  }\n\n  private updateMenuItems() {\n    this.logOutMenuItem = this.logoutItem \n    ? [\n      {\n        separator: true\n      },\n      {\n        label: 'Logout',\n        items: [\n          {\n            label: this.translate.instant('HEADER.logOutLabel'),\n            icon: 'pi pi-sign-out',\n            command: () => {\n              this.signOut()\n            }\n          }\n        ],\n        escape: false\n      }\n    ]\n    : [];\n\n    this.items = [\n      {\n        label: `\n          <div class=\"utility-nav-header\">\n              <span class=\"user-avatar\">${this.userInitials}</span>\n              <div>\n                  <h5>${this.userName}</h5>\n                  <small>${this.userEmail}</small>\n              </div>\n          </div>\n        `,\n        escape: false\n      },\n      {\n        label: this.translate.instant('HEADER.myEatonLabel'),\n        items: [\n          {\n            label: this.translate.instant('ACCOUNTMENU.myProfileLabel'),\n            icon: 'pi pi-lock',\n            command: () => {\n              this.goToProfile();\n            }\n          }\n        ]\n      },\n      ...this.translatedMenuItems(this.menuItems),\n      ...this.logOutMenuItem\n    ]\n  }\n\n  private translatedMenuItems(menuItems: any[]): any[] {\n    return menuItems.map(item => {\n      if (!item.label) {\n        return item;\n      }\n\n      const translatedSubItems = item.items ? this.translatedMenuItems(item.items) : undefined;\n\n      return {\n        ...item,\n        label: item.label ? this.translate.instant(item.label) : '',\n        items: translatedSubItems\n      }\n    });\n  }\n\n  goToProfile() {\n    window.open(this.profileUrl, \"_blank\")\n  }\n\n  signOut() {\n    if (this.logOut) {\n      this.logOut();\n    }\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<p-menu #menu [model]=\"items\" [popup]=\"true\"></p-menu>\n<button pButton class=\"account-menu-trigger\" type=\"button\" (click)=\"menu.toggle($event)\"><p-avatar label=\"{{userInitials}}\" shape=\"circle\"></p-avatar></button>\n\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { AccountMenuComponent } from \"./account-menu.component\"; \n\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { CustomTranslateLoader } from './translation-loader';\n\nimport { MenubarModule } from 'primeng/menubar';\nimport { ButtonModule } from 'primeng/button';\nimport { AvatarModule } from 'primeng/avatar';\n\nimport { MenuModule } from 'primeng/menu';\n\nimport { LOGOUT_ITEM } from \"./tokens\";\n\n@NgModule({\n  declarations: [AccountMenuComponent],\n  imports: [\n    CommonModule,\n    HttpClientModule,\n    TranslateModule,\n    MenubarModule,\n    ButtonModule,\n    AvatarModule,\n    MenuModule\n  ],\n  exports: [AccountMenuComponent],\n  providers: [\n    { provide: LOGOUT_ITEM, useValue: false }\n  ],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\n\nexport class AccountMenuComponentModule {}\n","/*\n * Public API Surface of account-menu\n */\n\nexport * from './lib/tokens';\nexport * from './lib/account-menu.module';\nexport * from './lib/account-menu.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}