{"version":3,"file":"guachos-user-panel.mjs","sources":["../../../projects/guachos-user-panel/src/lib/guachos-user-panel.component.ts","../../../projects/guachos-user-panel/src/lib/guachos-user-panel.component.html","../../../projects/guachos-user-panel/src/lib/guachos-user-panel.module.ts","../../../projects/guachos-user-panel/src/public-api.ts","../../../projects/guachos-user-panel/src/guachos-user-panel.ts"],"sourcesContent":["import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  EventEmitter,\r\n  Output,\r\n  AfterViewInit,\r\n  ViewChild,\r\n  ElementRef,\r\n  ChangeDetectorRef\r\n} from '@angular/core';\r\n\r\ndeclare let getComputedStyle: any;\r\n\r\nexport interface UserPanelOptions {\r\n  showProfile?: boolean;\r\n  showSecondaryLogout?: boolean;\r\n  color?: string;\r\n  width?: string;\r\n}\r\n\r\n@Component({\r\n  selector: 'guachos-user-panel',\r\n  templateUrl: './guachos-user-panel.component.html',\r\n  styleUrls: ['./guachos-user-panel.component.scss']\r\n})\r\n\r\nexport class GuachosUserPanelComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('primary') primary: ElementRef;\r\n  @Output() onEditProfile: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onLogout: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onLogoutAlternative: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onCustomButtonClick: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  _apiUrl: any = '';\r\n  _imagePath: any = null;\r\n  _loggedInUser: any = '';\r\n  _options: UserPanelOptions = {\r\n    showProfile: true,\r\n    showSecondaryLogout: true\r\n  };\r\n  _customButtons: any;\r\n  primaryColor: any;\r\n\r\n  @Input()\r\n  set customButtons(value: any) {\r\n    this._customButtons = value;\r\n  }\r\n\r\n  get customButtons(): any {\r\n    return this._customButtons;\r\n  }\r\n\r\n  @Input()\r\n  set options(value: any) {\r\n    this._options = value;\r\n  }\r\n\r\n  get options(): any {\r\n    return this._options;\r\n  }\r\n\r\n  @Input()\r\n  set loggedInUser(value: any) {\r\n    this._loggedInUser = value;\r\n  }\r\n\r\n  get loggedInUser(): any {\r\n    return this._loggedInUser;\r\n  }\r\n\r\n  @Input()\r\n  set apiUrl(value: any) {\r\n    this._apiUrl = value;\r\n  }\r\n\r\n  get apiUrl(): any {\r\n    return this._apiUrl;\r\n  }\r\n\r\n  @Input()\r\n  set imagePath(value: any) {\r\n    this._imagePath = value;\r\n  }\r\n\r\n  get imagePath(): any {\r\n    return this._imagePath;\r\n  }\r\n\r\n  constructor(private cdRef: ChangeDetectorRef) {\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.primaryColor = getComputedStyle(this.primary.nativeElement).color;\r\n    this.cdRef.detectChanges();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  editProfile() {\r\n    this.onEditProfile.emit(true);\r\n  }\r\n\r\n  logout() {\r\n    this.onLogout.emit(true);\r\n  }\r\n\r\n  logoutSecondarySession() {\r\n    this.onLogoutAlternative.emit(true);\r\n  }\r\n\r\n  clickCustomButton(button) {\r\n    this.onCustomButtonClick.emit(button);\r\n  }\r\n}\r\n","<div fxLayout=\"row\" fxLayoutAlign=\"end center\">\r\n  <div #primary class=\"mat-button mat-primary\" style=\"display:none\"></div>\r\n  <mat-menu #menu=\"matMenu\" class=\"my-mega-menu\">\r\n    <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n      <div class=\"large-default-avatar cursor-pointer\" fxLayout=\"row\" fxLayoutAlign=\"center center\"\r\n           [ngStyle]=\"{'background-color': primaryColor}\"\r\n           *ngIf=\"(!loggedInUser && ((!imagePath && !loggedInUser.image) || (imagePath && !loggedInUser[imagePath]))\r\n           || (loggedInUser && ((!imagePath && !loggedInUser.image) || (imagePath && !loggedInUser[imagePath]))))\">\r\n        <span style=\"text-transform: uppercase;\">{{loggedInUser.name[0]}}</span>\r\n      </div>\r\n      <img class=\"large-default-avatar cursor-pointer\"\r\n           *ngIf=\"loggedInUser && ((!imagePath && loggedInUser.image) || (imagePath && loggedInUser[imagePath]))\"\r\n           src=\"{{apiUrl+ (imagePath? loggedInUser[imagePath] :loggedInUser.image)}}\" alt=\"user\"\r\n           onerror=\"onerror=null;src='assets/images/users/profile2.png';\">\r\n\r\n      <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"cursor-pointer mt-3\">\r\n        <span class=\"mat-body-2\">{{loggedInUser ? loggedInUser.name + ' ' + (loggedInUser.lastName || '') : ''}}</span>\r\n        <span class=\"color-grey-800 mat-caption\">{{loggedInUser ? loggedInUser.username : ''}}</span>\r\n      </div>\r\n\r\n      <button mat-stroked-button style=\"border-radius: 2px;\" class=\"my-3\" *ngIf=\"options.showProfile\"\r\n              (click)=\"editProfile()\">\r\n        {{\"Gestiona tu perfil\" | translate}}\r\n      </button>\r\n\r\n      <div style=\"width: 100%;\">\r\n        <mat-divider></mat-divider>\r\n      </div>\r\n\r\n      <div style=\"width: 100%;\" *ngFor=\"let item of customButtons\">\r\n        <button mat-button (click)=\"clickCustomButton(item)\" style=\"width: 100%;\">\r\n          <mat-icon [ngStyle]=\"{'color': primaryColor}\" style=\"margin-right: 8px;\">{{item.icon}}</mat-icon>\r\n          <span [ngStyle]=\"{'color': primaryColor}\">{{item.name}}</span>\r\n        </button>\r\n        <mat-divider></mat-divider>\r\n      </div>\r\n\r\n      <button mat-stroked-button *ngIf=\"options.showSecondaryLogout\" (click)=\"logoutSecondarySession()\" class=\"my-3\">\r\n        {{\"Cerrar la sesión alternativa\" | translate}}\r\n      </button>\r\n\r\n      <button mat-stroked-button (click)=\"logout()\" class=\"my-3\">\r\n        {{\"Cerrar la sesión\" | translate}}\r\n      </button>\r\n    </div>\r\n  </mat-menu>\r\n\r\n  <div fxLayout=\"row\" class=\"py-1\" fxLayoutAlign=\"start center\">\r\n    <div class=\"small-default-avatar cursor-pointer\" fxLayout=\"row\" fxLayoutAlign=\"center center\"\r\n         [ngStyle]=\"{'color': primaryColor, 'background-color': 'white'}\"\r\n         *ngIf=\"(!loggedInUser && ((!imagePath && !loggedInUser.image) || (imagePath && !loggedInUser[imagePath])) || (loggedInUser && ((!imagePath && !loggedInUser.image) || (imagePath && !loggedInUser[imagePath]))))\"\r\n         [matMenuTriggerFor]=\"menu\">\r\n      <span style=\"text-transform: uppercase;\">{{loggedInUser.name[0]}}</span>\r\n    </div>\r\n    <img class=\"ImageAvatar cursor-pointer\"\r\n         *ngIf=\"loggedInUser && ((!imagePath && loggedInUser.image) || (imagePath && loggedInUser[imagePath]))\"\r\n         [matMenuTriggerFor]=\"menu\" src=\"{{apiUrl+ (imagePath? loggedInUser[imagePath] :loggedInUser.image)}}\"\r\n         alt=\"user\" onerror=\"onerror=null;src='../../../assets/images/users/profile2.png';\">\r\n  </div>\r\n\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { GuachosUserPanelComponent } from './guachos-user-panel.component';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\n\r\n\r\n@NgModule({\r\n  declarations: [GuachosUserPanelComponent],\r\n  imports: [\r\n    CommonModule,\r\n    FlexLayoutModule,\r\n    MatDividerModule,\r\n    MatMenuModule,\r\n    MatIconModule,\r\n    MatButtonModule,\r\n    TranslateModule\r\n  ],\r\n  exports: [GuachosUserPanelComponent]\r\n})\r\nexport class GuachosUserPanelModule { }\r\n","/*\r\n * Public API Surface of guachos-user-panel\r\n */\r\n\r\nexport * from './lib/guachos-user-panel.component';\r\nexport * from './lib/guachos-user-panel.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}