{"version":3,"file":"bimap-app-layout.mjs","sources":["../../../projects/bimap-app-layout/src/lib/bimap-app-layout.config.token.ts","../../../projects/bimap-app-layout/src/lib/bimap-app-layout.service.ts","../../../projects/bimap-app-layout/src/lib/progress-bar.service.ts","../../../projects/bimap-app-layout/src/lib/dialog/timeout-dialog/timeout-dialog.conponent.ts","../../../projects/bimap-app-layout/src/lib/dialog/timeout-dialog/timeout-dialog.component.html","../../../projects/bimap-app-layout/src/lib/bimap-app-inactive-detector.service.ts","../../../projects/bimap-app-layout/src/lib/dialog/custom-dialog.service.ts","../../../projects/bimap-app-layout/src/lib/nav/bimap-app-nav.component.ts","../../../projects/bimap-app-layout/src/lib/nav/bimap-app-nav.component.html","../../../projects/bimap-app-layout/src/lib/bimap-app-layout.component.ts","../../../projects/bimap-app-layout/src/lib/bimap-app-layout.component.html","../../../projects/bimap-app-layout/src/lib/http-interceptor.ts","../../../projects/bimap-app-layout/src/lib/bimap-app-layout.module.ts","../../../projects/bimap-app-layout/src/public-api.ts","../../../projects/bimap-app-layout/src/bimap-app-layout.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport const BIMAP_APP_LAYOUT_CONFIG = new InjectionToken(\n  \"BIMAP_APP_LAYOUT_CONFIG\"\n)\n","import { BimapAppLayoutConfig } from './bimap-app-layout.config';\nimport { Inject, Injectable } from '@angular/core';\nimport Keycloak from 'keycloak-js';\n\nimport { BIMAP_APP_LAYOUT_CONFIG } from './bimap-app-layout.config.token';\nimport { BehaviorSubject, Observable, switchMap } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Module } from './nav/bimap-app-nav.component';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BimapAppLayoutService {\n\n  public inCarousel = false;\n\n  setInCarousel(type: boolean) {\n    this.inCarousel = type;\n\n  }\n\n  private keycloakAuth!: Keycloak;\n  public menuItems: any = [];\n  public usernameSubject = new BehaviorSubject(\"\");\n  public realmSubject = new BehaviorSubject(\"\");\n  constructor(\n    @Inject(BIMAP_APP_LAYOUT_CONFIG)\n    private bimapAppLayoutConfig: BimapAppLayoutConfig,\n    private http: HttpClient,\n  ) { }\n\n  public init(keycloakURL: string) {\n\n    let realm = 'master';\n    if (this.bimapAppLayoutConfig.clientId == 'ipoc') {\n      // 如果本地有 realm 的話，就帶入\n      this.http.get(`${this.bimapAppLayoutConfig.apiDomain}/api/v1/get-all-org`).pipe(\n        switchMap(x => this.checkRealm(x)),\n        switchMap(x => this.connectKeycloak(keycloakURL, x))\n      ).subscribe(\n        {\n          next: (realm) => {\n            this.loadUserProfile();\n\n\n          }\n        }\n      );\n    } else {\n      return new Promise((resolve, reject) => {\n        const clientId = this.bimapAppLayoutConfig.clientId;\n        this.keycloakAuth = new Keycloak({\n          url: keycloakURL,\n          realm: realm,\n          clientId: clientId,\n        });\n        this.keycloakAuth.init({ onLoad: 'login-required' })\n          .then((auth) => {\n            if (!auth) {\n              window.location.reload();\n            } else {\n              this.settingMenu();\n              this.loadUserProfile();\n            }\n            resolve(auth);\n          })\n          .catch(() => {\n            reject();\n          });\n      });\n    }\n    return;\n  }\n\n  public settingMenu(): void {\n    this.getServerMenu().subscribe({\n      next: (res) => {\n        let tmpMenus: any = [];\n        res.sort((a, b) => a.sort - b.sort);\n        res.forEach((element: any) => {\n\n          if (!element.children) {\n            element.children = [];\n          }\n          element.children.sort((a: any, b: any) => a.sort - b.sort);\n\n          const menu = {\n            text: element.title,\n            icon: element.icon,\n            expanded: false,\n            children: element.children.length != 0,\n            selected: false,\n            path: element.children?.length == 0 ? element.router_path : \"\",\n            childrenMenu: [],\n            sort: element.sort\n          };\n\n          element.children.forEach((x: any) => {\n            const subMenu = {\n              text: x.title,\n              icon: x.icon,\n              selected: false,\n              level: 1,\n              path: x.router_path,\n              sort: x.sort\n            };\n            menu.childrenMenu.push((subMenu as never));\n          });\n\n          tmpMenus.push(menu);\n          tmpMenus.sort((a: any, b: any) => {\n            a.childrenMenu.sort((c: any, d: any) => {\n              return c.sort - d.sort;\n            })\n            return a.sort - b.sort\n          })\n        });\n        this.menuItems = tmpMenus;\n      }, error: ((error) => {\n        console.error(\"發生錯誤:\", error);\n\n      })\n    })\n\n\n  }\n\n  public getServerModule(): Observable<Module[]> {\n    // console.log(\"${this.bimapAppLayoutConfig.clientId}:\" ,this.bimapAppLayoutConfig.clientId);\n    var currentURL = window.location.href;\n    if (currentURL.includes(\"localhost\")) {\n      return this.http.get<Module[]>(`${this.bimapAppLayoutConfig.apiDomain}/api/v1/get-server-module`);\n    } else {\n      return this.http.get<Module[]>(`/${this.bimapAppLayoutConfig.clientId}-api/api/v1/get-server-module`);\n    }\n  }\n\n  public getServerMenu(): Observable<any[]> {\n    var currentURL = window.location.href;\n    if (currentURL.includes(\"localhost\")) {\n      return this.http.get<Module[]>(`${this.bimapAppLayoutConfig.apiDomain}/api/v1/user/get-server-menu`);\n    } else {\n      return this.http.get<any[]>(`/${this.bimapAppLayoutConfig.clientId}-api/api/v1/user/get-server-menu`);\n    }\n  }\n\n  public checkRealm(orgs: any) {\n    let realm = 'master';\n    (orgs as Array<string>).push('master');\n    realm = window.location.pathname.split(\"/\")[1] ? window.location.pathname.split(\"/\")[1] : 'master';\n    const matchRealm = (orgs as Array<string>).find(org => org == realm);\n\n    // 如果抓到的 org 是不 ok 的話\n    if (!matchRealm) {\n      // 如果本地有，就帶入\n      if (localStorage.getItem(\"realm\")) {\n        realm = localStorage.getItem(\"realm\") as string;\n      } else {\n        realm = 'master';\n      }\n    }\n    localStorage.setItem(\"realm\", realm);\n    return [realm];\n  }\n\n  public connectKeycloak(keycloakURL: string, realm: string) {\n    return new Promise((resolve, reject) => {\n      const clientId = this.bimapAppLayoutConfig.clientId;\n      this.keycloakAuth = new Keycloak({\n        url: keycloakURL,\n        realm: realm,\n        clientId: clientId,\n      });\n      this.keycloakAuth.init({ onLoad: 'login-required' })\n        .then((auth) => {\n          if (!auth) {\n            window.location.reload();\n          } else {\n            this.settingMenu();\n          }\n          // Token Refresh\n          // setInterval(() => {\n          //   this.keycloakAuth.updateToken(70).then((refreshed) => {\n          //     if (refreshed) {\n          //       console.log('Token refreshed: ' + refreshed);\n          //     } else {\n          //       console.warn('Token not refreshed, valid for '\n          //         + Math.round((this.keycloakAuth as any).tokenParsed.exp + this.keycloakAuth.timeSkew - new Date().getTime() / 1000) + ' seconds');\n          //     }\n          //   }).catch(() => {\n          //     reject();\n          //   });\n          // }, 6000);\n          resolve(auth);\n        })\n        .catch((e) => {\n          console.log('error:', e);\n          reject();\n        });\n    });\n  }\n\n  public refreshToken() {\n\n    if (this.keycloakAuth) {\n      this.keycloakAuth.updateToken(300).then((refreshed) => {\n        if (refreshed) {\n          console.log('Token refreshed: ' + refreshed);\n        } else {\n          if (Math.round((this.keycloakAuth as any).tokenParsed.exp + this.keycloakAuth.timeSkew - new Date().getTime() / 1000) < 500) {\n            if (window.location.hostname === \"localhost\") {\n              console.warn('Token 尚未更新，但即將過期, 還剩 '\n                + Math.round((this.keycloakAuth as any).tokenParsed.exp + this.keycloakAuth.timeSkew - new Date().getTime() / 1000) + ' 秒過期');\n            }\n          }\n\n        }\n      }).catch((x) => {\n        console.log(x);\n      });\n    }\n  }\n\n  public getToken(): string | undefined {\n\n    if (this.keycloakAuth) {\n      return this.keycloakAuth.token;\n    } else {\n      return undefined;\n    }\n  }\n\n  public getMaxInactivityTime() {\n    if (this.keycloakAuth) {\n      return (this.keycloakAuth.tokenParsed?.exp as number) * 1000;\n    } else {\n      return 0;\n    }\n  }\n\n  public loadUserProfile() {\n\n    this.keycloakAuth.loadUserProfile().then(\n      x => {\n\n        localStorage.setItem(\"userProfile\", JSON.stringify(x));\n        this.usernameSubject.next(x.username as string);\n        this.realmSubject.next(this.keycloakAuth.realm as string);\n      }\n    );\n  }\n\n  public getUserRoles(): string[] {\n    return (this.keycloakAuth as any).tokenParsed.realm_access.roles;\n  }\n\n  public logout() {\n    if (!this.inCarousel) {\n      localStorage.clear();\n      this.keycloakAuth.logout({ redirectUri: `${window.location.origin}/${this.keycloakAuth.realm}` });\n    }\n\n  }\n\n  public getRealm() {\n    if (this.keycloakAuth) {\n      return this.keycloakAuth.realm;\n    } else {\n      return localStorage.getItem(\"realm\");\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ProgressBarService {\n\n  private _showSubject = new BehaviorSubject<boolean>(false);\n  public show$ = this._showSubject.asObservable();\n  constructor() { }\n  progressState(show: boolean) {\n    this._showSubject.next(show);\n  }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { DialogRef, PreventableEvent } from \"@progress/kendo-angular-dialog\";\n\n@Component({\n    selector: 'app-timeout-dialog',\n    templateUrl: './timeout-dialog.component.html',\n    styleUrls: ['./timeout-dialog.component.scss']\n})\nexport class TimeoutDialogComponent {\n\n    @Input() public message?: string;\n\n    constructor(public dialog: DialogRef) {\n    }\n\n    public logout(logoutStatus: boolean) {\n        this.dialog.close({ logoutStatus });\n    }\n}\n","<div class=\"dialog-content\">\n    <div>\n        <svg id=\"Layer_1\" enable-background=\"new 0 0 97 97\" height=\"7em\" viewBox=\"0 0 97 97\"\n            xmlns=\"http://www.w3.org/2000/svg\">\n            <circle cx=\"48.5\" cy=\"48.5\" fill=\"#4b83c1\" r=\"48\" />\n            <g fill=\"#fff\">\n                <path\n                    d=\"m65 37.2c-.8-7.6-7-13.7-14.6-14.6-.6-.1-1.2-.1-1.8-.1-4.1 0-8 1.5-11.1 4.2-3.5 3.1-5.5 7.6-5.5 12.3 0 2.2 1.8 4 4 4s4-1.8 4-4c0-2.4 1-4.8 2.9-6.4 1.6-1.4 3.6-2.2 5.7-2.2.3 0 .7 0 1 .1 3.9.4 7.1 3.6 7.5 7.5s-1.8 7.6-5.4 9c-4.3 1.7-7.1 5.8-7.1 10.4v2.2c0 2.2 1.8 4 4 4s4-1.8 4-4v-2.2c0-1.3.8-2.5 2-3 6.9-2.6 11.2-9.8 10.4-17.2z\" />\n                <circle cx=\"48.5\" cy=\"70.5\" r=\"4\" />\n            </g>\n        </svg>\n    </div>\n    <div class=\"dialog-message\">\n        {{message}}\n    </div>\n    <div class=\"button-wrapper\">\n        <button kendoButton size=\"large\" [themeColor]=\"'primary'\" class=\"action-button\" (click)=\"logout(false)\">繼續</button>\n        <button kendoButton size=\"large\" class=\"action-button\" (click)=\"logout(true)\">登出</button>\n    </div>\n</div>","\nimport { Injectable } from '@angular/core';\nimport { BimapAppLayoutService } from './bimap-app-layout.service';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BimapAppInactiveDetectorService {\n\n  public inactivityTimeSubject = new BehaviorSubject({});\n  private timer: any;\n\n  constructor(\n    private bimapAppLayoutService: BimapAppLayoutService\n  ) { }\n\n  startTimer() {\n    this.timer = setInterval(() => {\n      this.checkInactivity();\n    }, 1000);\n  }\n\n  stopTimer() {\n    clearInterval(this.timer);\n  }\n\n  refreshToken() {\n    this.bimapAppLayoutService.refreshToken();\n  }\n\n  checkInactivity() {\n\n    const remainSeconds = this.bimapAppLayoutService.getMaxInactivityTime() - new Date().getTime();\n    const seconds = Math.floor(remainSeconds / 1000);\n    const minutes = Math.floor(seconds / 60);\n    const hours = Math.floor(minutes / 60);\n    const days = Math.floor(hours / 24);\n\n    const remaining = {\n      days: days,\n      hours: hours % 24,\n      minutes: minutes % 60,\n      seconds: seconds % 60\n    };\n\n    // TODO: 有時後不會登出，可能要查一下\n    if (seconds <= 3) {\n      this.bimapAppLayoutService.logout();\n    } else {\n      this.inactivityTimeSubject.next(remaining);\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { DialogResult, DialogService } from '@progress/kendo-angular-dialog';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CustomDialogService {\n  constructor(private dialogService: DialogService) {\n  }\n\n  openDialog(component: any, dialogConf: any): Observable<any> {\n    const dialogRef = this.dialogService.open({\n      content: component,\n      ...dialogConf,\n      height:300,\n      width:500\n\n    });\n    const df = dialogRef.content.instance;\n    df.message = dialogConf.message;\n    return dialogRef.result;\n  }\n}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { BimapAppLayoutService } from '../bimap-app-layout.service';\nimport { BimapAppInactiveDetectorService } from '../bimap-app-inactive-detector.service';\nimport { Align } from '@progress/kendo-angular-popup';\nimport { CustomDialogService } from '../dialog/custom-dialog.service';\nimport { TimeoutDialogComponent } from '../dialog/timeout-dialog/timeout-dialog.conponent';\n\n@Component({\n  selector: 'lib-bimap-app-nav',\n  templateUrl: './bimap-app-nav.component.html',\n  styles: [\n    `\n    :host ::ng-deep .k-popup {\n    /* 自定義樣式 */\n      border-radius: 10px !important;\n      padding:4px;\n      background-color: #ffffff;\n      width:330px;\n      min-height:250p;\n      max-height:500px;\n      overflow: auto;\n    }\n    .grid-container  {\n      display: flex;\n      flex-wrap: wrap;\n    }\n    .grid-container > div {\n      flex-basis: calc(33.33% );\n    }\n    .grid-module{\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .grid-module-disabled{\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .grid-module:hover{\n      background:#e9eef6;\n      cursor: pointer;\n      border-radius: 10px !important;\n    }\n\n    .grid-profile{\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n\n    .profile-container {\n      display: flex;\n      flex-direction: column;\n    }\n\n    .profile-container > div {\n      margin: 0 10px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n\n    .grid-item {\n      width:85px;\n      height: 60px;\n      margin:7px;\n      display: grid;\n      place-items: center;\n    }\n\n    .grid-item-disabled {\n      width:60px;\n      height:45px;\n      margin:4px;\n      display: grid;\n      place-items: center;\n    }\n\n    .grid-icon{\n      transform: scale(2);\n    }\n\n    .pop-icon{\n      margin-left:15px;\n      transform: scale(4);\n    }\n\n    .pop-icon-btn{\n      background-color: transparent;\n      border: none;\n      padding: 0;\n    }\n\n    .module-icon-text{\n      font-size:15px;\n      color: #202b86;\n      font-weight:bold;\n    }\n\n    .module-icon-text-disabled{\n      font-size:10px;\n      color: #61615d;\n      font-weight:bold;\n    }\n\n    ::-webkit-scrollbar {\n      width: 8px;\n    }\n\n    ::-webkit-scrollbar-track {\n      background: #f1f1f1;\n    }\n\n    ::-webkit-scrollbar-thumb {\n      background: #888;\n    }\n\n    ::-webkit-scrollbar-thumb:hover {\n      background: #555;\n    }\n    .module-disabled:hover {\n      background-color: #ffffff;\n      cursor: not-allowed;\n    }\n    `\n  ]\n})\nexport class BimapAppNavComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n  @Output() public toggle = new EventEmitter();\n  @Input() public selectedPage: string = '';\n  @Input() public title = '';\n  @Input() public version = '';\n  // 輪播中 就不跳timeout\n  @Input() public inCarousel = false;\n\n  // module icon\n  public modules: Module[] = [];\n\n  public remainSessionTime = \"剩餘 0 分 0 秒\";\n  public username = \"\";\n  public realm = \"\";\n  public timeoutDialogIsShow = false;\n\n  // popup module + profile\n\n  public popupAlign: Align = { horizontal: \"right\", vertical: \"top\" };\n\n  public popupModuleStatus = false;\n\n  public popupProfileToggle = false;\n\n  // 增加這些 才能點到空白處 popup auto close\n  @ViewChild(\"anchor\", { read: ElementRef }) public anchor!: ElementRef;\n  @ViewChild(\"popup\", { read: ElementRef }) public popup!: ElementRef;\n  @ViewChild(\"profileAnchor\", { read: ElementRef }) public profileAnchor!: ElementRef;\n  @ViewChild(\"profilePopup\", { read: ElementRef }) public profilePopup!: ElementRef;\n  @HostListener(\"document:keydown\", [\"$event\"])\n  public keydown(event: KeyboardEvent): void {\n    if (event.code === \"Escape\") {\n      this.onModuleToggle(false);\n    }\n    if (event.code === \"F10\") {\n      this.showTimeoutDialog();\n    }\n  }\n\n  @HostListener(\"document:click\", [\"$event\"])\n  public documentClick(event: KeyboardEvent): void {\n    if (!this.contains(event.target!)) {\n      this.onModuleToggle(false);\n    }\n  }\n\n  constructor(private keycloakService: BimapAppLayoutService,\n    private inactivityDetectorService: BimapAppInactiveDetectorService,\n    private customDialogService: CustomDialogService\n  ) { }\n  ngAfterViewInit(): void {\n\n    this.keycloakService.getServerModule().subscribe({\n      next: (res: Module[]) => {\n        this.modules = res;\n      }, error: (error) => {\n        console.error(\"error:\", error);\n      }\n    })\n  }\n\n  ngOnInit(): void {\n\n\n    this.startInactivityDetection();\n    this.inactivityDetectorService.inactivityTimeSubject.subscribe(\n      (x: any) => {\n\n\n        if (x.seconds) {\n          this.remainSessionTime = `剩餘 ${x.hours} 時 ${x.minutes} 分 ${x.seconds} 秒`;\n        }\n\n        if (x.hours == 0 && x.minutes <= 5 && x.seconds == 0) {\n          // 避免 dialog 在小於五分鐘時 一直跳\n          if (!this.timeoutDialogIsShow) {\n            this.showTimeoutDialog();\n          }\n        }\n      }\n    );\n\n    this.keycloakService.usernameSubject.subscribe(\n      {\n        next: (x) => {\n          this.username = x;\n        }\n      }\n    );\n    this.keycloakService.realmSubject.subscribe(\n      {\n        next: (x) => {\n          this.realm = x;\n        }\n      }\n    );\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['inCarousel']) {\n      // 傳遞給service\n      this.keycloakService.setInCarousel(changes['inCarousel'].currentValue) ;\n    }\n  }\n  public refreshToken() {\n    this.keycloakService.refreshToken();\n    this.inactivityDetectorService.stopTimer();\n    this.inactivityDetectorService.startTimer();\n  }\n\n\n  public startInactivityDetection() {\n    this.inactivityDetectorService.startTimer();\n\n    window.addEventListener(\"mousemove\", () => this.inactivityDetectorService.refreshToken());\n    window.addEventListener(\"mousedown\", () => this.inactivityDetectorService.refreshToken());\n    window.addEventListener(\"keypress\", () => this.inactivityDetectorService.refreshToken());\n    window.addEventListener(\"touchmove\", () => this.inactivityDetectorService.refreshToken());\n    window.addEventListener(\"touchstart\", () => this.inactivityDetectorService.refreshToken());\n\n  }\n\n  public stopInactivityDetection() {\n    this.inactivityDetectorService.stopTimer();\n  }\n  ngOnDestroy() {\n    this.stopInactivityDetection();\n  }\n\n  public onButtonClick(): void {\n    this.toggle.emit();\n  }\n\n  public logout() {\n    this.keycloakService.logout();\n  }\n\n  public onModuleToggle(show?: boolean): void {\n    this.popupModuleStatus = show !== undefined ? show : !this.popupModuleStatus;\n    if (this.popupModuleStatus) {\n      this.popupProfileToggle = false;\n    }\n  }\n\n  public onProfileToggle(show?: boolean): void {\n    this.popupProfileToggle = show !== undefined ? show : !this.popupProfileToggle;\n    if (this.popupProfileToggle) {\n      this.popupModuleStatus = false;\n    }\n  }\n\n  private contains(target: EventTarget): boolean {\n    return (\n      this.anchor.nativeElement.contains(target) ||\n      (this.popup ? this.popup.nativeElement.contains(target) : false)\n    );\n  }\n\n  public showData(module: Module) {\n    if (module.disabled) {\n      console.log(\"功能尚未開通\");\n    } else {\n      window.location.href = module.url;\n    }\n  }\n\n  public showTimeoutDialog() {\n    // 如果子組件為 輪播中 就不跳 timeout 視窗\n    if (!this.inCarousel) {\n      this.timeoutDialogIsShow = true;\n      this.customDialogService.openDialog(TimeoutDialogComponent, { title: '系統提示', message: '系統即將登出是否繼續操作?' }).subscribe((res) => {\n        if (res.logoutStatus) {\n          this.logout();\n        } else {\n          if (typeof res.logoutStatus == 'boolean') {\n            this.refreshToken();\n            this.timeoutDialogIsShow = false;\n          } else {\n            // 如果點x 走這\n          }\n        }\n      })\n    }\n\n  }\n}\n\nexport class Module {\n  name: string;\n  url: string;\n  disabled: boolean;\n  constructor(name: string = '', url: string = '', disabled = false) {\n    this.name = name;\n    this.url = url;\n    this.disabled = disabled;\n  }\n}\n","<div class=\"header header-bg\">\r\n  <div class=\"nav-container\">\r\n    <div class=\"menu-button\">\r\n      <span class=\"k-icon hamburger-icon\" (click)=\"onButtonClick()\"></span>\r\n    </div>\r\n\r\n    <div class=\"title\">\r\n      <h1> {{title}} </h1>\r\n      <span class=\"vl\"></span>\r\n      <h2 *ngIf=\"selectedPage\"> {{ selectedPage.toLowerCase() }} </h2>\r\n    </div>\r\n\r\n    <div class=\"settings\">\r\n      <span style=\"margin-right: 10px;margin-left: 10px;\">\r\n        {{remainSessionTime }}\r\n      </span>\r\n\r\n      <kendo-button class=\"pop-icon-btn\" style=\"margin:15px;\" #anchor (click)=\"onModuleToggle()\">\r\n        <span class=\"k-icon k-i-grid grid-icon k-icon-xs\" style=\"color:white\"></span>\r\n      </kendo-button>\r\n      <kendo-popup [anchor]=\"anchor\" [popupAlign]=\"popupAlign\" (anchorViewportLeave)=\"popupModuleStatus = false\"\r\n        *ngIf=\"popupModuleStatus\" style=\"margin-top: 25px\" #popup>\r\n\r\n        <div class=\"grid-container\">\r\n          <ng-container *ngFor=\"let module of modules\">\r\n            <ng-container *ngIf=\"!module.disabled\">\r\n              <div class=\"grid-module\" [ngClass]=\"{ 'module-disabled': module.disabled }\">\r\n                <div class=\"grid-item pop-icon-btn\" (click)=\"showData(module)\">\r\n                  <!-- https://www.flaticon.com/free-icon/grow-chart_10819909?related_id=10819909  -->\r\n                  <div [ngSwitch]=\"module.name\">\r\n                    <svg *ngSwitchCase=\"'Warroom'\" fill=\"none\" height=\"3em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path d=\"m304.945 434.417v-140.944h30.385v140.944h20v-160.944h-70.385v160.944z\" fill=\"#ea7513\" />\r\n                      <path\r\n                        d=\"m483.606 451.144v-281.49h-70.384v281.49h-186.167v-233.836h-70.386v233.836h-156.669v20h512v-20zm-276.551 0h-30.386v-213.836h30.386zm256.551 0h-30.384v-261.49h30.384z\"\r\n                        fill=\"#150f91\" />\r\n                      <path d=\"m48.393 434.417v-126.183h30.385v126.183h20v-146.183h-70.385v146.183z\" fill=\"#ea7513\" />\r\n                      <path\r\n                        d=\"m63.585 251.36a32.159 32.159 0 0 0 29.592-44.76l81.77-77.221a32.072 32.072 0 0 0 35.826-2.036l79.411 60.53a32.164 32.164 0 1 0 60.519-3.2l109.92-108.844v21.79h20v-56.763h-56.763v20h23.459l-109.71 108.634a32.09 32.09 0 0 0 -36.019 1.925l-79.412-60.53a32.163 32.163 0 1 0 -60.42 3.437l-81.769 77.221a32.159 32.159 0 1 0 -16.4 59.817zm257.428-66.493a12.165 12.165 0 1 1 -12.165 12.164 12.178 12.178 0 0 1 12.165-12.164zm-129.663-95.307a12.165 12.165 0 1 1 -12.164 12.164 12.178 12.178 0 0 1 12.164-12.164zm-127.765 117.471a12.165 12.165 0 1 1 -12.164 12.169 12.179 12.179 0 0 1 12.164-12.169z\"\r\n                        fill=\"#150f91\" />\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'Rule engine'\" fill=\"none\" height=\"3em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path\r\n                        d=\"m426.477.833v19.94h51.807l-262.427 267.519-58.821-72.994-157.036 133.599 12.921 15.187 141.438-120.328 60.036 74.501 277.665-283.054v51.152h19.94v-85.522z\"\r\n                        fill=\"#150f91\" />\r\n                      <path d=\"m347.527 276.86h19.94v234.307h-19.94z\" fill=\"#150f91\" />\r\n                      <path d=\"m270.459 344.796h19.94v166.371h-19.94z\" fill=\"#ea7513\" />\r\n                      <path d=\"m193.39 396.174h19.94v114.994h-19.94z\" fill=\"#150f91\" />\r\n                      <path d=\"m116.322 351.478h19.94v159.689h-19.94z\" fill=\"#ea7513\" />\r\n                      <path d=\"m39.253 396.174h19.94v114.994h-19.94z\" fill=\"#150f91\" />\r\n                      <path d=\"m424.596 201.128h19.94v310.039h-19.94z\" fill=\"#ea7513\" />\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'Report engine'\" fill=\"none\" height=\"3em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <g fill=\"#150f91\">\r\n                        <path\r\n                          d=\"m485.572 283.04a32.227 32.227 0 0 0 -41.07-13.677l-102.819 40.417a34.523 34.523 0 0 0 -21.509-15.649l-.972-.243-136.872-6.317-68.985 59.663-23.862-29.463-67.283 53.629 12.52 15.71 51.7-41.2 88.508 109.281-51.581 41.099 12.521 15.71 67.411-53.725-20.712-25.575 20.989-13.946 95.053 11.52 174.232-102.826a32.344 32.344 0 0 0 12.731-44.408zm-16.362 19.387a12.16 12.16 0 0 1 -6.014 7.4l-.2.1-168.733 99.588-95.648-11.593-28.748 19.1-43.867-54.169 63.416-54.845 126.784 5.853a14.816 14.816 0 0 1 -5.248 28.977l-64.631-3.347-1.04 20.062 64.536 3.342a34.706 34.706 0 0 0 35.658-25.11 35.207 35.207 0 0 0 1.373-8.452l105.189-41.348.413-.174a12.256 12.256 0 0 1 16.756 14.616z\" />\r\n                        <path d=\"m223.683 187.627h-68.05v70.756h68.05zm-20.089 50.667h-27.872v-30.578h27.872z\" />\r\n                        <path d=\"m311.376 139.917h-68.048v118.466h68.048zm-20.089 98.377h-27.87v-78.288h27.87z\" />\r\n                      </g>\r\n                      <path\r\n                        d=\"m332.729 258.383h68.049v-172.175h31.816l-65.841-86.208-65.839 86.208h31.815zm34.024-225.283 25.219 33.021h-11.283v172.173h-27.871v-172.175h-11.284z\"\r\n                        fill=\"#ea7513\" />\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'ipoc'\" fill=\"none\" height=\"3em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <g fill=\"#150f91\">\r\n                        <path\r\n                          d=\"m512 28.666v-20.036h-512v20.036h21.544v357.31h-21.544v20.036h245.675v36.974a31.027 31.027 0 1 0 20.035 0v-36.974h246.29v-20.036h-21.545v-357.31zm-245.317 443.677a10.991 10.991 0 1 1 -10.99-10.991 11 11 0 0 1 10.99 10.991zm203.737-86.367h-428.84v-357.31h428.84z\" />\r\n                        <path\r\n                          d=\"m145.111 212.687a78.682 78.682 0 1 0 -78.682-78.682 78.77 78.77 0 0 0 78.682 78.682zm9.3-136.582a58.593 58.593 0 0 1 37.161 93.625l-37.161-39.017zm-20.035.256v48.339h-47.165a58.783 58.783 0 0 1 47.167-48.339zm5.725 68.377 36.726 38.562a58.58 58.58 0 0 1 -89.36-38.558z\" />\r\n                        <path d=\"m243.616 89.27h91.088v20.036h-91.088z\" />\r\n                        <path d=\"m243.616 124.81h56.354v20.036h-56.354z\" />\r\n                      </g>\r\n                      <path\r\n                        d=\"m365.711 176.555.107 169.826h55.406l.039-169.811 34.264-.041-62.027-74.139-62.04 74.167zm27.789-42.939 19.182 22.928-11.454.014-.038 169.787h-15.349l-.107-169.826h-11.39z\"\r\n                        fill=\"#ea7513\" />\r\n                      <path d=\"m175.232 346.381h56.729v-101.308h-56.729zm20.036-81.272h16.658v61.236h-16.658z\"\r\n                        fill=\"#ea7513\" />\r\n                      <path d=\"m80.2 346.381h56.729v-63.211h-56.729zm20.036-43.176h16.657v23.14h-16.661z\"\r\n                        fill=\"#150f91\" />\r\n                      <path d=\"m270.268 346.381h56.732v-85.935h-56.732zm20.036-65.9h16.658v45.863h-16.662z\"\r\n                        fill=\"#150f91\" />\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'ESinsight'\" fill=\"none\" height=\"3em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path\r\n                        d=\"m320.997 328.366 20.079.008.034-85.025 34.205-.04-61.918-74.015-61.94 74.04h34.196l.095 85.047 20.078-.022-.117-105.103h-11.278l18.966-22.67 18.986 22.695-11.343.013z\"\r\n                        fill=\"#ea7513\" />\r\n                      <g fill=\"#150f91\">\r\n                        <path d=\"m165.696 275.019h20.078v53.352h-20.078z\" />\r\n                        <path d=\"m205.562 256.602h20.078v71.769h-20.078z\" />\r\n                        <path d=\"m245.427 289.752h20.078v38.618h-20.078z\" />\r\n                        <path\r\n                          d=\"m105.015 222.945a155.4 155.4 0 0 1 113.902-117.045l7.636-1.883v-102.583l-11.641 1.882a256.149 256.149 0 0 0 -212.226 216.069l-1.642 11.463h102.25zm-80.515-12.176c17.936-91.769 90.574-165.775 181.974-185.441v63.149a175 175 0 0 0 -119.161 122.292z\" />\r\n                        <path\r\n                          d=\"m437.167 75.074a254.332 254.332 0 0 0 -180.842-75.064l-10.049-.01v101.39l10.024.015c85.118.127 154.366 69.48 154.366 154.6 0 85.248-69.354 154.6-154.6 154.6a154.815 154.815 0 0 1 -73.576-18.6l-6.76-3.666-70.9 74.561 9.975 6.613a256 256 0 0 0 322.362-394.439zm-181.1 416.848a234.9 234.9 0 0 1 -119.976-32.758l43.709-45.964a175.173 175.173 0 0 0 76.261 17.488c96.319 0 174.68-78.361 174.68-174.68a174.692 174.692 0 0 0 -164.39-174.38v-61.318c125.315 5.4 225.629 109.1 225.629 235.693.003 130.086-105.83 235.919-235.916 235.919z\" />\r\n                        <path\r\n                          d=\"m152.147 370.473a153.241 153.241 0 0 1 -50.621-110.138l-.268-9.764h-101.319l.188 10.229a255.3 255.3 0 0 0 82.082 183.089l7.228 6.691 70.355-73.163zm-63.389 51.847a233.434 233.434 0 0 1 -68.153-151.67h61.384a172.709 172.709 0 0 0 49.217 107.527z\" />\r\n                      </g>\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'Logger'\" fill=\"none\" height=\"3em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path\r\n                        d=\"m288.091 325.106h19.982v-232.912h-11.424l25.508-33.398 25.508 33.398h-11.424v232.912h19.983v-212.929h31.847l-65.914-86.303-65.912 86.303h31.846z\"\r\n                        fill=\"#ea7513\" />\r\n                      <g fill=\"#150f91\">\r\n                        <path\r\n                          d=\"m480.036 403.424v-269.036h-110.1v19.983h90.119v249.053h-144.784v19.983h176.747v17.993a24.776 24.776 0 0 1 -24.748 24.748h-422.54a24.776 24.776 0 0 1 -24.748-24.748v-17.993h176.747v-19.983h-144.782v-249.053h220.685v-19.983h-240.668v269.036h-31.964v37.976a44.781 44.781 0 0 0 44.73 44.73h422.54a44.781 44.781 0 0 0 44.73-44.73v-37.976z\" />\r\n                        <path\r\n                          d=\"m203.927 374.786h228.71v-67.349h-19.982v47.367h-188.746v-101.445h31.846l-65.912-86.303-65.914 86.303h31.847v101.445h-56.431v-47.367h-19.982v67.349h96.396v-141.41h-11.424l25.508-33.398 25.508 33.398h-11.424z\" />\r\n                        <path d=\"m240.042 403.424h31.915v19.982h-31.915z\" />\r\n                      </g>\r\n                    </svg>\r\n                    <svg *ngSwitchDefault fill=\"none\" height=\"3em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path\r\n                        d=\"m105.855 336.484a33.591 33.591 0 0 0 30-48.742l53.172-51.456a33.543 33.543 0 0 0 39.57-5.458l42.833 23.144a33.618 33.618 0 1 0 59.3-14.415l63.154-92.694a33.707 33.707 0 1 0 -16.508-11.275l-63.154 92.7a33.554 33.554 0 0 0 -33.274 8.111l-42.825-23.149a33.617 33.617 0 1 0 -62.99 8.666l-53.172 51.456a33.612 33.612 0 1 0 -16.106 63.112zm297.845-235.396a13.625 13.625 0 1 1 -13.625 13.624 13.64 13.64 0 0 1 13.625-13.624zm-99.28 145.722a13.624 13.624 0 1 1 -13.62 13.624 13.64 13.64 0 0 1 13.62-13.624zm-99.283-53.645a13.624 13.624 0 1 1 -13.624 13.624 13.64 13.64 0 0 1 13.624-13.624zm-99.282 96.08a13.624 13.624 0 1 1 -13.625 13.624 13.64 13.64 0 0 1 13.625-13.624z\"\r\n                        fill=\"#ea7513\" />\r\n                      <path\r\n                        d=\"m475.94 438.6-14.14 14.137 12.051 12.05h-29.33v-251.58h-81.021v251.58h-18.47v-149.178h-81.02v149.178h-18.47v-185.371h-81.017v185.371h-18.469v-106.108h-81.02v106.108h-18.86v-425.535l11.931 11.93 14.135-14.136-36.061-36.061-36.061 36.061 14.136 14.136 11.93-11.929v425.534h-26.184v19.991h26.184v26.237h19.99v-26.237h427.438l-11.812 11.809 14.137 14.135 36.063-36.061zm-349.877 25.57h-41.038v-85.5h41.038zm99.49 0h-41.039v-164.763h41.039zm99.49 0h-41.038v-128.57h41.038zm99.49 0h-41.039v-230.97h41.039z\"\r\n                        fill=\"#150f91\" />\r\n                    </svg>\r\n                  </div>\r\n                </div>\r\n                <div class=\"module-icon-text\">\r\n                  <span>{{module.name}}</span>\r\n                </div>\r\n              </div>\r\n            </ng-container>\r\n          </ng-container>\r\n        </div>\r\n        <hr style=\"width:90%;margin-top:10px;margin-bottom:10px;\">\r\n        <div class=\"grid-container\" style=\"margin-top:5px\">\r\n          <ng-container *ngFor=\"let module of modules\">\r\n            <ng-container *ngIf=\"module.disabled\">\r\n\r\n\r\n\r\n              <div class=\"grid-module-disabled\" [ngClass]=\"{ 'module-disabled': module.disabled }\">\r\n                <div class=\"grid-item-disabled pop-icon-btn\" (click)=\"showData(module)\">\r\n                  <!-- https://www.flaticon.com/free-icon/grow-chart_10819909?related_id=10819909  -->\r\n                  <div [ngSwitch]=\"module.name\">\r\n                    <svg *ngSwitchCase=\"'Warroom'\" fill=\"none\" height=\"2em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path d=\"m304.945 434.417v-140.944h30.385v140.944h20v-160.944h-70.385v160.944z\" fill=\"#ea7513\" />\r\n                      <path\r\n                        d=\"m483.606 451.144v-281.49h-70.384v281.49h-186.167v-233.836h-70.386v233.836h-156.669v20h512v-20zm-276.551 0h-30.386v-213.836h30.386zm256.551 0h-30.384v-261.49h30.384z\"\r\n                        fill=\"#150f91\" />\r\n                      <path d=\"m48.393 434.417v-126.183h30.385v126.183h20v-146.183h-70.385v146.183z\" fill=\"#ea7513\" />\r\n                      <path\r\n                        d=\"m63.585 251.36a32.159 32.159 0 0 0 29.592-44.76l81.77-77.221a32.072 32.072 0 0 0 35.826-2.036l79.411 60.53a32.164 32.164 0 1 0 60.519-3.2l109.92-108.844v21.79h20v-56.763h-56.763v20h23.459l-109.71 108.634a32.09 32.09 0 0 0 -36.019 1.925l-79.412-60.53a32.163 32.163 0 1 0 -60.42 3.437l-81.769 77.221a32.159 32.159 0 1 0 -16.4 59.817zm257.428-66.493a12.165 12.165 0 1 1 -12.165 12.164 12.178 12.178 0 0 1 12.165-12.164zm-129.663-95.307a12.165 12.165 0 1 1 -12.164 12.164 12.178 12.178 0 0 1 12.164-12.164zm-127.765 117.471a12.165 12.165 0 1 1 -12.164 12.169 12.179 12.179 0 0 1 12.164-12.169z\"\r\n                        fill=\"#150f91\" />\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'Rule engine'\" fill=\"none\" height=\"2em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path\r\n                        d=\"m426.477.833v19.94h51.807l-262.427 267.519-58.821-72.994-157.036 133.599 12.921 15.187 141.438-120.328 60.036 74.501 277.665-283.054v51.152h19.94v-85.522z\"\r\n                        fill=\"#150f91\" />\r\n                      <path d=\"m347.527 276.86h19.94v234.307h-19.94z\" fill=\"#150f91\" />\r\n                      <path d=\"m270.459 344.796h19.94v166.371h-19.94z\" fill=\"#ea7513\" />\r\n                      <path d=\"m193.39 396.174h19.94v114.994h-19.94z\" fill=\"#150f91\" />\r\n                      <path d=\"m116.322 351.478h19.94v159.689h-19.94z\" fill=\"#ea7513\" />\r\n                      <path d=\"m39.253 396.174h19.94v114.994h-19.94z\" fill=\"#150f91\" />\r\n                      <path d=\"m424.596 201.128h19.94v310.039h-19.94z\" fill=\"#ea7513\" />\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'Report engine'\" fill=\"none\" height=\"2em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <g fill=\"#150f91\">\r\n                        <path\r\n                          d=\"m485.572 283.04a32.227 32.227 0 0 0 -41.07-13.677l-102.819 40.417a34.523 34.523 0 0 0 -21.509-15.649l-.972-.243-136.872-6.317-68.985 59.663-23.862-29.463-67.283 53.629 12.52 15.71 51.7-41.2 88.508 109.281-51.581 41.099 12.521 15.71 67.411-53.725-20.712-25.575 20.989-13.946 95.053 11.52 174.232-102.826a32.344 32.344 0 0 0 12.731-44.408zm-16.362 19.387a12.16 12.16 0 0 1 -6.014 7.4l-.2.1-168.733 99.588-95.648-11.593-28.748 19.1-43.867-54.169 63.416-54.845 126.784 5.853a14.816 14.816 0 0 1 -5.248 28.977l-64.631-3.347-1.04 20.062 64.536 3.342a34.706 34.706 0 0 0 35.658-25.11 35.207 35.207 0 0 0 1.373-8.452l105.189-41.348.413-.174a12.256 12.256 0 0 1 16.756 14.616z\" />\r\n                        <path d=\"m223.683 187.627h-68.05v70.756h68.05zm-20.089 50.667h-27.872v-30.578h27.872z\" />\r\n                        <path d=\"m311.376 139.917h-68.048v118.466h68.048zm-20.089 98.377h-27.87v-78.288h27.87z\" />\r\n                      </g>\r\n                      <path\r\n                        d=\"m332.729 258.383h68.049v-172.175h31.816l-65.841-86.208-65.839 86.208h31.815zm34.024-225.283 25.219 33.021h-11.283v172.173h-27.871v-172.175h-11.284z\"\r\n                        fill=\"#ea7513\" />\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'iPoc'\" fill=\"none\" height=\"2em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <g fill=\"#150f91\">\r\n                        <path\r\n                          d=\"m512 28.666v-20.036h-512v20.036h21.544v357.31h-21.544v20.036h245.675v36.974a31.027 31.027 0 1 0 20.035 0v-36.974h246.29v-20.036h-21.545v-357.31zm-245.317 443.677a10.991 10.991 0 1 1 -10.99-10.991 11 11 0 0 1 10.99 10.991zm203.737-86.367h-428.84v-357.31h428.84z\" />\r\n                        <path\r\n                          d=\"m145.111 212.687a78.682 78.682 0 1 0 -78.682-78.682 78.77 78.77 0 0 0 78.682 78.682zm9.3-136.582a58.593 58.593 0 0 1 37.161 93.625l-37.161-39.017zm-20.035.256v48.339h-47.165a58.783 58.783 0 0 1 47.167-48.339zm5.725 68.377 36.726 38.562a58.58 58.58 0 0 1 -89.36-38.558z\" />\r\n                        <path d=\"m243.616 89.27h91.088v20.036h-91.088z\" />\r\n                        <path d=\"m243.616 124.81h56.354v20.036h-56.354z\" />\r\n                      </g>\r\n                      <path\r\n                        d=\"m365.711 176.555.107 169.826h55.406l.039-169.811 34.264-.041-62.027-74.139-62.04 74.167zm27.789-42.939 19.182 22.928-11.454.014-.038 169.787h-15.349l-.107-169.826h-11.39z\"\r\n                        fill=\"#ea7513\" />\r\n                      <path d=\"m175.232 346.381h56.729v-101.308h-56.729zm20.036-81.272h16.658v61.236h-16.658z\"\r\n                        fill=\"#ea7513\" />\r\n                      <path d=\"m80.2 346.381h56.729v-63.211h-56.729zm20.036-43.176h16.657v23.14h-16.661z\"\r\n                        fill=\"#150f91\" />\r\n                      <path d=\"m270.268 346.381h56.732v-85.935h-56.732zm20.036-65.9h16.658v45.863h-16.662z\"\r\n                        fill=\"#150f91\" />\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'ESinsight'\" fill=\"none\" height=\"2em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path\r\n                        d=\"m320.997 328.366 20.079.008.034-85.025 34.205-.04-61.918-74.015-61.94 74.04h34.196l.095 85.047 20.078-.022-.117-105.103h-11.278l18.966-22.67 18.986 22.695-11.343.013z\"\r\n                        fill=\"#ea7513\" />\r\n                      <g fill=\"#150f91\">\r\n                        <path d=\"m165.696 275.019h20.078v53.352h-20.078z\" />\r\n                        <path d=\"m205.562 256.602h20.078v71.769h-20.078z\" />\r\n                        <path d=\"m245.427 289.752h20.078v38.618h-20.078z\" />\r\n                        <path\r\n                          d=\"m105.015 222.945a155.4 155.4 0 0 1 113.902-117.045l7.636-1.883v-102.583l-11.641 1.882a256.149 256.149 0 0 0 -212.226 216.069l-1.642 11.463h102.25zm-80.515-12.176c17.936-91.769 90.574-165.775 181.974-185.441v63.149a175 175 0 0 0 -119.161 122.292z\" />\r\n                        <path\r\n                          d=\"m437.167 75.074a254.332 254.332 0 0 0 -180.842-75.064l-10.049-.01v101.39l10.024.015c85.118.127 154.366 69.48 154.366 154.6 0 85.248-69.354 154.6-154.6 154.6a154.815 154.815 0 0 1 -73.576-18.6l-6.76-3.666-70.9 74.561 9.975 6.613a256 256 0 0 0 322.362-394.439zm-181.1 416.848a234.9 234.9 0 0 1 -119.976-32.758l43.709-45.964a175.173 175.173 0 0 0 76.261 17.488c96.319 0 174.68-78.361 174.68-174.68a174.692 174.692 0 0 0 -164.39-174.38v-61.318c125.315 5.4 225.629 109.1 225.629 235.693.003 130.086-105.83 235.919-235.916 235.919z\" />\r\n                        <path\r\n                          d=\"m152.147 370.473a153.241 153.241 0 0 1 -50.621-110.138l-.268-9.764h-101.319l.188 10.229a255.3 255.3 0 0 0 82.082 183.089l7.228 6.691 70.355-73.163zm-63.389 51.847a233.434 233.434 0 0 1 -68.153-151.67h61.384a172.709 172.709 0 0 0 49.217 107.527z\" />\r\n                      </g>\r\n                    </svg>\r\n                    <svg *ngSwitchCase=\"'Logger'\" fill=\"none\" height=\"2em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path\r\n                        d=\"m288.091 325.106h19.982v-232.912h-11.424l25.508-33.398 25.508 33.398h-11.424v232.912h19.983v-212.929h31.847l-65.914-86.303-65.912 86.303h31.846z\"\r\n                        fill=\"#ea7513\" />\r\n                      <g fill=\"#150f91\">\r\n                        <path\r\n                          d=\"m480.036 403.424v-269.036h-110.1v19.983h90.119v249.053h-144.784v19.983h176.747v17.993a24.776 24.776 0 0 1 -24.748 24.748h-422.54a24.776 24.776 0 0 1 -24.748-24.748v-17.993h176.747v-19.983h-144.782v-249.053h220.685v-19.983h-240.668v269.036h-31.964v37.976a44.781 44.781 0 0 0 44.73 44.73h422.54a44.781 44.781 0 0 0 44.73-44.73v-37.976z\" />\r\n                        <path\r\n                          d=\"m203.927 374.786h228.71v-67.349h-19.982v47.367h-188.746v-101.445h31.846l-65.912-86.303-65.914 86.303h31.847v101.445h-56.431v-47.367h-19.982v67.349h96.396v-141.41h-11.424l25.508-33.398 25.508 33.398h-11.424z\" />\r\n                        <path d=\"m240.042 403.424h31.915v19.982h-31.915z\" />\r\n                      </g>\r\n                    </svg>\r\n                    <svg *ngSwitchDefault fill=\"none\" height=\"2em\" id=\"Layer_1\" viewBox=\"0 0 512 512\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\">\r\n                      <path\r\n                        d=\"m105.855 336.484a33.591 33.591 0 0 0 30-48.742l53.172-51.456a33.543 33.543 0 0 0 39.57-5.458l42.833 23.144a33.618 33.618 0 1 0 59.3-14.415l63.154-92.694a33.707 33.707 0 1 0 -16.508-11.275l-63.154 92.7a33.554 33.554 0 0 0 -33.274 8.111l-42.825-23.149a33.617 33.617 0 1 0 -62.99 8.666l-53.172 51.456a33.612 33.612 0 1 0 -16.106 63.112zm297.845-235.396a13.625 13.625 0 1 1 -13.625 13.624 13.64 13.64 0 0 1 13.625-13.624zm-99.28 145.722a13.624 13.624 0 1 1 -13.62 13.624 13.64 13.64 0 0 1 13.62-13.624zm-99.283-53.645a13.624 13.624 0 1 1 -13.624 13.624 13.64 13.64 0 0 1 13.624-13.624zm-99.282 96.08a13.624 13.624 0 1 1 -13.625 13.624 13.64 13.64 0 0 1 13.625-13.624z\"\r\n                        fill=\"#ea7513\" />\r\n                      <path\r\n                        d=\"m475.94 438.6-14.14 14.137 12.051 12.05h-29.33v-251.58h-81.021v251.58h-18.47v-149.178h-81.02v149.178h-18.47v-185.371h-81.017v185.371h-18.469v-106.108h-81.02v106.108h-18.86v-425.535l11.931 11.93 14.135-14.136-36.061-36.061-36.061 36.061 14.136 14.136 11.93-11.929v425.534h-26.184v19.991h26.184v26.237h19.99v-26.237h427.438l-11.812 11.809 14.137 14.135 36.063-36.061zm-349.877 25.57h-41.038v-85.5h41.038zm99.49 0h-41.039v-164.763h41.039zm99.49 0h-41.038v-128.57h41.038zm99.49 0h-41.039v-230.97h41.039z\"\r\n                        fill=\"#150f91\" />\r\n                    </svg>\r\n                  </div>\r\n                </div>\r\n                <div class=\"module-icon-text-disabled\">\r\n                  <span>{{module.name}}</span>\r\n                </div>\r\n              </div>\r\n            </ng-container>\r\n          </ng-container>\r\n        </div>\r\n\r\n      </kendo-popup>\r\n\r\n      <kendo-button class=\"pop-icon-btn\" style=\"margin:15px;\" #profileAnchor (click)=\"onProfileToggle()\">\r\n        <span class=\"k-icon k-i-user grid-icon  k-icon-xs\" style=\"color:white\"></span>\r\n      </kendo-button>\r\n\r\n      <kendo-popup [anchor]=\"profileAnchor\" [popupAlign]=\"popupAlign\" (anchorViewportLeave)=\"popupProfileToggle = false\"\r\n        *ngIf=\"popupProfileToggle\" style=\"margin-top: 25px\" #profilePopup>\r\n        <div class=\"profile-container module-icon-text\">\r\n          <div style=\"margin-top:10px\">\r\n            <svg id=\"Layer_2_00000034087968536520414770000012774326043743088813_\" height=\"4em\"\r\n              enable-background=\"new 0 0 512 512\" viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\">\r\n              <g id=\"Icon\">\r\n                <g id=\"UserInfoCircle\">\r\n                  <path\r\n                    d=\"m360.1 467.2h-312.7c-27.1 0-46.4-26.4-38.1-52.2l32.9-102.8c10.6-33 46.7-50.1 78.9-37.6 21.4 8.3 48.9 14.8 82.6 14.8s61.2-6.5 82.6-14.8c1.2-.5 2.5-.9 3.8-1.3v2.5c0 59.1 43.9 108.1 100.8 116.1l7.4 23.1c8.2 25.8-11 52.2-38.2 52.2z\"\r\n                    fill=\"#1e88e5\" />\r\n                  <circle cx=\"203.8\" cy=\"147.9\" fill=\"#90caf9\" r=\"103.1\" />\r\n                  <path\r\n                    d=\"m407.3 178.5c-53.7 0-97.3 43.6-97.3 97.3s43.6 97.3 97.3 97.3 97.3-43.5 97.3-97.3-43.5-97.3-97.3-97.3z\"\r\n                    fill=\"#90caf9\" />\r\n                  <g fill=\"#e3f2fd\">\r\n                    <path\r\n                      d=\"m407.3 346.9c-12 0-21.5-10.2-20.6-22.2l4-54.8c.6-8.7 7.9-15.4 16.6-15.4 8.7 0 16 6.7 16.6 15.4l4 54.8c.9 12-8.6 22.2-20.6 22.2z\" />\r\n                    <circle cx=\"407.4\" cy=\"224.1\" r=\"19.5\" />\r\n                  </g>\r\n                </g>\r\n              </g>\r\n            </svg>\r\n          </div>\r\n          <div style=\"margin-top: 10px;\">\r\n            應用程式版本 : <span style=\"margin-right: 5px;\">\r\n              {{version}}\r\n            </span>\r\n          </div>\r\n          <!-- <div>\r\n              <span style=\"margin-right: 10px;margin-left: 10px;\" *ngIf=\"showRefreshTokenAction\">\r\n                {{remainSessionTime }}\r\n              </span>\r\n            </div>\r\n            <div>\r\n              <span style=\"margin-right: 10px;margin-left: 10px;\" *ngIf=\"showRefreshTokenAction\">\r\n                <button kendoButton (click)=\"refreshToken()\" icon=\"reset\">刷新</button>\r\n              </span>\r\n            </div> -->\r\n          <div>\r\n            <span style=\"margin: 0 10px;\">\r\n              公司：{{ realm }}\r\n            </span>\r\n          </div>\r\n          <div>\r\n            <span style=\"margin: 0 10px;margin-bottom:10px\">\r\n              用戶：{{ username }}\r\n            </span>\r\n          </div>\r\n        </div>\r\n      </kendo-popup>\r\n\r\n      <button kendoButton style=\"margin: 0 10px;\" icon=\"logout\" look=\"flat\" (click)=\"logout()\">登出</button>\r\n\r\n      <!--  for kendo ui dialog use -->\r\n      <div kendoDialogContainer></div>\r\n    </div>\r\n  </div>\r\n</div>","import { Component, Inject, Input, IterableDiffers, OnInit } from '@angular/core';\nimport { BimapAppLayoutService } from './bimap-app-layout.service';\nimport { Subscription } from 'rxjs';\nimport { DrawerComponent, DrawerMode, DrawerSelectEvent } from '@progress/kendo-angular-layout';\nimport { Router } from '@angular/router';\nimport { BIMAP_APP_LAYOUT_CONFIG } from './bimap-app-layout.config.token';\nimport { BimapAppLayoutConfig } from './bimap-app-layout.config';\nimport { ProgressBarService } from './progress-bar.service';\nimport { HttpClient } from '@angular/common/http';\nimport { Module } from './nav/bimap-app-nav.component';\n\n@Component({\n  selector: 'lib-bimap-app-layout',\n  templateUrl: './bimap-app-layout.component.html',\n  styles: [\n    `\n    .progress-bar{\n      width: 100%;\n      height: 5px;\n      position: fixed;\n      z-index: 99;\n      background-color: #ff6257;\n    }\n    `\n  ]\n})\nexport class BimapAppLayoutComponent implements OnInit {\n\n  public iterableDiffer;\n  public title = '';\n  public version = '';\n  public progressSubscription: Subscription;\n  public selected = '-';\n  // public items: Array<any> = [];\n  public itemIndex = 0;\n  public mode: DrawerMode = 'push';\n  public mini = true;\n  public show = true;\n  _customMenu: Array<any> = [];\n  @Input() set customMenu(value: Array<any>) {\n    this._customMenu = value;\n\n    value.forEach((element: any) => {\n\n      const menu = {\n        text: element.title,\n        icon: element.icon,\n        expanded: false,\n        children: element.children.length != 0,\n        selected: false,\n        path: element.children.length == 0 ? element.router_path : \"\",\n        childrenMenu: []\n      };\n\n      element.children.forEach((x: any) => {\n        const subMenu = {\n          text: x.title,\n          icon: x.icon,\n          selected: false,\n          level: 1,\n          path: `iframe/${x.uid}/${x.type}/${x.space_id}`\n        };\n        menu.childrenMenu.push((subMenu as never));\n      });\n      setTimeout(() => {\n        this.keycloakService.menuItems.unshift(menu);\n      }, 500);\n\n    });\n  }\n\n  @Input() inCarousel: boolean = false;\n  constructor(\n    public keycloakService: BimapAppLayoutService,\n    private router: Router,\n    private iterableDiffers: IterableDiffers,\n    @Inject(BIMAP_APP_LAYOUT_CONFIG)\n    private bimapAppLayoutConfig: BimapAppLayoutConfig,\n    private http: HttpClient,\n    public progressBarService: ProgressBarService\n  ) {\n\n    this.http.get(`${this.bimapAppLayoutConfig.apiDomain}/api/v1/get-sso-url`).subscribe({\n      next: (x) => {\n\n        this.keycloakService.init((x as string));\n\n      },\n      error: (x: string) => { console.log(x); },\n      complete: () => { console.log('complete'); }\n    });\n\n\n    this.iterableDiffer = this.iterableDiffers.find([]).create();\n    this.progressSubscription = this.progressBarService.show$.subscribe((x) => {\n      this.show = x;\n    });\n  }\n\n\n  ngOnInit(): void {\n\n    this.title = this.bimapAppLayoutConfig.display_title;\n    this.version = this.bimapAppLayoutConfig.version;\n\n  }\n  ngOnDestroy() {\n\n    window.removeEventListener('resize', () => { });\n    this.progressSubscription.unsubscribe();\n  }\n  public toggleDrawer(drawer: DrawerComponent): void {\n    drawer.toggle();\n  }\n  public onSelect(ev: DrawerSelectEvent): void {\n    this.selected = ev.item.text;\n\n    let children: Array<any> = [];\n    const item = this.keycloakService.menuItems.find((e: any, index: any) => {\n\n      this.itemIndex = index;\n      if ((e.text === ev.item.text) && e.childrenMenu) {\n        children = e.childrenMenu;\n      }\n      return e.text === ev.item.text;\n    });\n\n    item.expanded ? (item.expanded = false) : (item.expanded = true);\n\n    item.expanded\n      ? this.addChildren(children)\n      : this.removeChildren(children);\n\n    if (ev.item.path) {\n      // ev.item.selected = true;\n      this.router.navigate([ev.item.path]);\n    }\n  }\n\n  public addChildren(children: Array<any>): void {\n    this.keycloakService.menuItems.splice(this.itemIndex + 1, 0, ...children);\n  }\n\n  public removeChildren(children: Array<any>): void {\n    this.keycloakService.menuItems.splice(this.itemIndex + 1, children.length);\n  }\n\n}\n","<kendo-progressbar *ngIf=\"show\" [indeterminate]=\"true\" [ngClass]=\"'progress-bar'\"></kendo-progressbar>\r\n<lib-bimap-app-nav (toggle)=\"toggleDrawer(drawer)\" [selectedPage]=\"selected\" [title]=\"title\" [version]=\"version\" [inCarousel]=\"inCarousel\"\r\n >\r\n</lib-bimap-app-nav>\r\n<kendo-drawer-container style=\"margin-top: 80px;position: absolute;width: 100%;\">\r\n  <kendo-drawer #drawer [items]=\"keycloakService.menuItems\" [mode]=\"mode\" [expanded]=\"true\" [autoCollapse]=\"false\"\r\n    [animation]=\"false\" (select)=\"onSelect($event)\">\r\n\r\n    <ng-template kendoDrawerItemTemplate let-item>\r\n\r\n      <ng-container *ngIf=\"item.level; else elseTemplate\">\r\n        <div style=\"padding-left: 20px;\">\r\n          <span class=\"k-icon {{ item.icon }}\"></span>\r\n        </div>\r\n        {{ item.text }}\r\n      </ng-container>\r\n      <ng-template #elseTemplate>\r\n        <div>\r\n          <span class=\"k-icon {{ item.icon }}\"></span>\r\n        </div>\r\n        {{ item.text }}\r\n      </ng-template>\r\n\r\n      <span *ngIf=\"item.expanded && item.children\" class=\"k-icon k-i-arrow-chevron-down\"\r\n        style=\"margin-left: auto; line-height: inherit\"></span>\r\n\r\n      <span *ngIf=\"!item.expanded && item.children\" class=\"k-icon k-i-arrow-chevron-right\"\r\n        style=\"margin-left: auto; line-height: inherit\"></span>\r\n    </ng-template>\r\n\r\n  </kendo-drawer>\r\n\r\n  <kendo-drawer-content>\r\n    <ng-content></ng-content>\r\n  </kendo-drawer-content>\r\n</kendo-drawer-container>","import { Injectable } from '@angular/core';\nimport {\n  HttpEvent,\n  HttpInterceptor,\n  HttpHandler,\n  HttpRequest,\n  HttpResponse\n} from '@angular/common/http';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize, tap, timeout } from 'rxjs/operators';\nimport { ProgressBarService } from './progress-bar.service';\nimport { BimapAppLayoutService } from './bimap-app-layout.service';\n/** Pass untouched request through to the next request handler. */\n@Injectable()\nexport class BimapInterceptor implements HttpInterceptor {\n  constructor(public progressBarService: ProgressBarService, private bimapAppLayoutService: BimapAppLayoutService) { }\n  intercept(\n    req: HttpRequest<any>,\n    next: HttpHandler\n  ): Observable<HttpEvent<any>> {\n    let authReq;\n    if (this.bimapAppLayoutService.getToken()) {\n      authReq = req.clone({\n        headers: req.headers.set('Authorization', (this.bimapAppLayoutService.getToken() as string)).set(\"realm\", (this.bimapAppLayoutService.getRealm() as string))\n      });\n    } else {\n      authReq = req.clone({});\n    }\n\n\n    this.progressBarService.progressState(true);\n    let ok: string;\n    return next.handle(authReq).pipe(\n      timeout(20000),\n      tap(\n        // Succeeds when there is a response; ignore other events\n        (event) => (ok = event instanceof HttpResponse ? 'succeeded' : ''),\n        // Operation failed; error is an HttpErrorResponse\n        (error) => {\n          ok = 'failed';\n          console.log(error);\n        }\n      ),\n      // Log when response observable either completes or errors\n      finalize(() => {\n        // console.log(ok, 'end');\n        this.progressBarService.progressState(false);\n\n      })\n    );\n  }\n}\n\nexport const httpInterceptorProviders = [\n  { provide: HTTP_INTERCEPTORS, useClass: BimapInterceptor, multi: true },\n];\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { BimapAppLayoutComponent } from './bimap-app-layout.component';\nimport { MenuModule } from '@progress/kendo-angular-menu';\nimport { BimapAppNavComponent } from './nav/bimap-app-nav.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ProgressBarModule } from '@progress/kendo-angular-progressbar';\nimport { LayoutModule } from '@progress/kendo-angular-layout';\nimport { BimapAppLayoutConfig } from './bimap-app-layout.config';\nimport { BIMAP_APP_LAYOUT_CONFIG } from './bimap-app-layout.config.token';\nimport { httpInterceptorProviders } from './http-interceptor';\nimport { IconsModule } from '@progress/kendo-angular-icons';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { PopupModule } from \"@progress/kendo-angular-popup\";\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\nimport { TimeoutDialogComponent } from './dialog/timeout-dialog/timeout-dialog.conponent';\n@NgModule({\n  declarations: [\n    BimapAppLayoutComponent,\n    BimapAppNavComponent,\n    TimeoutDialogComponent\n  ],\n  imports: [\n    MenuModule,\n    BrowserAnimationsModule,\n    ProgressBarModule,\n    LayoutModule,\n    IconsModule,\n    ButtonsModule,\n    PopupModule,\n    DialogsModule\n  ],\n  exports: [\n    BimapAppLayoutComponent\n  ],\n  providers: [\n  ]\n})\nexport class BimapAppLayoutModule {\n  static forRoot(\n    bimapAppLayoutConfig: BimapAppLayoutConfig\n  ): ModuleWithProviders<BimapAppLayoutModule> {\n    return {\n      ngModule: BimapAppLayoutModule,\n      providers: [\n        {\n          provide: BIMAP_APP_LAYOUT_CONFIG,\n          useValue: bimapAppLayoutConfig,\n        },\n        httpInterceptorProviders\n      ],\n    };\n  }\n}\n","/*\n * Public API Surface of bimap-app-layout\n */\n\n\nexport * from './lib/bimap-app-layout.component';\nexport * from './lib/bimap-app-layout.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.BimapAppLayoutService","i2.BimapAppInactiveDetectorService","i3.CustomDialogService","i4","i7","i3","i4.ProgressBarService","i5","i6.BimapAppNavComponent","i8","i1.ProgressBarService","i2.BimapAppLayoutService"],"mappings":"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"}