{"version":3,"file":"roro-shell.mjs","sources":["../../../projects/shell/src/lib/app/app.layout.ts","../../../projects/shell/src/lib/shell.config.ts","../../../projects/shell/src/lib/routing-state.service.ts","../../../projects/shell/src/lib/loader/loader.service.ts","../../../projects/shell/src/lib/loader/loader.component.ts","../../../projects/shell/src/lib/loader/loader.component.html","../../../projects/shell/src/lib/page-container/userProfiler.layout.ts","../../../projects/shell/src/lib/page-container/userProfile.ts","../../../projects/shell/src/lib/page-container/page-container.service.ts","../../../projects/shell/src/lib/left-sidebar/left-sidebar.service.ts","../../../projects/shell/src/lib/left-sidebar/left-sidebar.component.ts","../../../projects/shell/src/lib/left-sidebar/left-sidebar.component.html","../../../projects/shell/src/lib/page-container/page-container.component.ts","../../../projects/shell/src/lib/page-container/page-container.component.html","../../../projects/shell/src/lib/app/app.component.ts","../../../projects/shell/src/lib/error404/error404.component.ts","../../../projects/shell/src/lib/error404/error404.component.html","../../../projects/shell/src/lib/shell.module.ts","../../../projects/shell/src/public-api.ts","../../../projects/shell/src/roro-shell.ts"],"sourcesContent":["import {\r\n  LeftSidebarConfig,\r\n  PageContainerConfig,\r\n} from \"../page-container/pageContainerConfig\";\r\n\r\nexport class PageContainerLayout implements PageContainerConfig {\r\n  backTitle: string;\r\n  headerTitle: string;\r\n  leftSidebar: LeftSidebarConfig;\r\n\r\n  constructor(\r\n    leftSidebar: LeftSidebarConfig,\r\n    backTitle: string = \"\",\r\n    headerTitle: string = \"\"\r\n  ) {\r\n    this.leftSidebar = leftSidebar;\r\n    this.backTitle = backTitle;\r\n    this.headerTitle = headerTitle;\r\n  }\r\n}\r\n","import { AuthConfig } from 'angular-oauth2-oidc';\r\nimport { ITranslationResource } from 'ngx-translate-multi-http-loader';\r\n\r\nexport class RoRoShellModuleConfig {\r\n  resources!: Array<ITranslationResource>;\r\n  languages!: Array<string>;\r\n  defaultLanguage!: string;\r\n  authConfig!: AuthConfig;\r\n}\r\n","import { NavigationEnd, ActivatedRoute, Router } from '@angular/router';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { SESSION_STORAGE, StorageService } from 'ngx-webstorage-service';\r\nimport { Subject } from 'rxjs';\r\nimport * as _ from 'lodash';\r\n\r\nconst STORAGE_KEY = 'historyRoutingState';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class RoutingStateService {\r\n  private logHistorySubject = new Subject<any>();\r\n\r\n  private history: any[] = [];\r\n  private prevState: any;\r\n  public logHistory = this.logHistorySubject.asObservable();\r\n\r\n  constructor(\r\n    private router: Router,\r\n    private activatedRoute: ActivatedRoute,\r\n    @Inject(SESSION_STORAGE) private storage: StorageService\r\n  ) {\r\n    this.history = this.storage.get(STORAGE_KEY) || [];\r\n  }\r\n\r\n  public loadRouting(): void {\r\n    this.router.events\r\n      .pipe(\r\n        filter((event) => event instanceof NavigationEnd),\r\n        map(() => this.activatedRoute),\r\n        map((route) => {\r\n          while (route.firstChild) {\r\n            route = route.firstChild;\r\n          }\r\n          return route;\r\n        })\r\n      )\r\n      .subscribe((route) => {\r\n        const routerState = {\r\n          path: route.snapshot.routeConfig?.path,\r\n          params: _.cloneDeep(route.snapshot.params),\r\n        };\r\n\r\n        if (\r\n          !_.isEqual(routerState, this.prevState) &&\r\n          !_.isEqual(routerState, this.history[this.history.length - 1]) &&\r\n          routerState.path !== 'home'\r\n        ) {\r\n          if (this.history.length === 0) {\r\n            this.history = [\r\n              ...this.history,\r\n              {\r\n                path: 'home',\r\n                params: {},\r\n              },\r\n            ];\r\n          }\r\n\r\n          this.history = [...this.history, routerState];\r\n          this.storage.set(STORAGE_KEY, this.history);\r\n        }\r\n\r\n        this.logHistorySubject.next(routerState);\r\n      });\r\n  }\r\n\r\n  public getHistory(): any[] {\r\n    return this.history;\r\n  }\r\n\r\n  public hasPreviousRouterState() {\r\n    if (this.history.length === 0) {\r\n      this.prevState = undefined;\r\n    }\r\n\r\n    return this.history.length > 0;\r\n  }\r\n\r\n  public getPreviousRouterState(): any {\r\n    if (!this.prevState) {\r\n      this.history.pop();\r\n    }\r\n    this.prevState = this.history.pop();\r\n    this.storage.set(STORAGE_KEY, this.history);\r\n\r\n    return this.prevState;\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { LoaderState } from \"./loaderState\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class LoaderService {\r\n  private loaderSubject = new Subject<LoaderState>();\r\n\r\n  loaderState = this.loaderSubject.asObservable();\r\n\r\n  constructor() {}\r\n\r\n  show() {\r\n    this.loaderSubject.next(<LoaderState>{ isShow: true });\r\n  }\r\n\r\n  hide() {\r\n    this.loaderSubject.next(<LoaderState>{ isShow: false });\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  ViewEncapsulation,\r\n  OnDestroy,\r\n} from '@angular/core';\r\n\r\nimport { LoaderService } from './loader.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { LoaderState } from './loaderState';\r\n\r\n@Component({\r\n  selector: 'roro-loader',\r\n  templateUrl: './loader.component.html',\r\n  styleUrls: ['./loader.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class LoadingComponent implements OnInit, OnChanges, OnDestroy {\r\n  @Input() isShow!: boolean;\r\n\r\n  zIndexStyle: any;\r\n\r\n  private subscription!: Subscription;\r\n  private timeout!: any;\r\n\r\n  constructor(private loaderService: LoaderService) {}\r\n\r\n  ngOnInit() {\r\n    this.subscription = this.loaderService.loaderState.subscribe(\r\n      (state: LoaderState) => {\r\n        this.isShow = state.isShow;\r\n        this.setzIndex();\r\n      }\r\n    );\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes['isShow']) {\r\n      this.setzIndex();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscription.unsubscribe();\r\n    clearTimeout(this.timeout);\r\n  }\r\n\r\n  private setzIndex(): void {\r\n    //setZIndex after ui rendered.\r\n    this.timeout = setTimeout(() => {\r\n      this.zIndexStyle = this.isShow ? { 'z-index': webix.ui.zIndex() } : {};\r\n    });\r\n  }\r\n}\r\n","<div\r\n  id=\"loader\"\r\n  [ngStyle]=\"zIndexStyle\"\r\n  [ngClass]=\"{ show: isShow }\"\r\n  class=\"loader-box\"\r\n>\r\n  <div class=\"nb-spinner\"></div>\r\n</div>\r\n","export interface UserProfileConfig {\r\n  id: string;\r\n  title: string;\r\n  icon?: string;\r\n}\r\n\r\nexport class UserProfileLayout {\r\n  menuItems: Array<UserProfileConfig> = [];\r\n  /**\r\n   *\r\n   */\r\n  constructor() {\r\n    this.menuItems = [\r\n      {\r\n        id: \"viewProfile\",\r\n        title: \"PROFILE\"\r\n      },\r\n      {\r\n        id: \"billing\",\r\n        title: \"BILLING\"\r\n      },\r\n      {\r\n        id: \"integrations\",\r\n        title: \"INTEGRATIONS\"\r\n      },\r\n      {\r\n        id: \"help\",\r\n        title: \"HELP\"\r\n      },\r\n      {\r\n        id: \"admin\",\r\n        title: \"ADMIN\"\r\n      },\r\n      {\r\n        id: \"logout\",\r\n        title: \"LOGOUT\"\r\n      }\r\n    ];\r\n  }\r\n}\r\n\r\nexport default UserProfileLayout;\r\n","import UserProfileLayout, { UserProfileConfig } from \"./userProfiler.layout\";\r\nimport * as _ from \"lodash\";\r\n\r\nexport class UserProfile {\r\n  userProfileLayout: UserProfileLayout;\r\n\r\n  constructor(userProfileLayout: UserProfileLayout) {\r\n    this.userProfileLayout = userProfileLayout;\r\n  }\r\n\r\n  getPopupHeight(): number {\r\n    return this.userProfileLayout.menuItems.length * 36 + 24;\r\n  }\r\n\r\n  getItemsForPopup(): string {\r\n    return _.chain(this.userProfileLayout.menuItems)\r\n      .map((item: UserProfileConfig) => {\r\n        return `<div class='profile-item' data-key='${\r\n          item.id\r\n        }'><div class='profile-item-text'>${item.title}</div></div>`;\r\n      })\r\n      .join(\"\")\r\n      .value();\r\n  }\r\n}\r\n\r\nexport default UserProfile;\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { AdjustService } from \"roro-control\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\"\r\n})\r\nexport class PageContainerService {\r\n  private collapsedSubject = new Subject<boolean>();\r\n  private titleSubject = new Subject<string>();\r\n\r\n  collapse = this.collapsedSubject.asObservable();\r\n\r\n  title = this.titleSubject.asObservable();\r\n\r\n  constructor(private adjustService: AdjustService) {}\r\n\r\n  collapsed() {\r\n    this.collapsedSubject.next(<boolean>true);\r\n    this.adjustService.adjusted();\r\n  }\r\n\r\n  expanded() {\r\n    this.collapsedSubject.next(<boolean>false);\r\n    this.adjustService.adjusted();\r\n  }\r\n\r\n  setTitle(text: string) {\r\n    this.titleSubject.next(<string>text);\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\"\r\n})\r\nexport class LeftSidebarService {\r\n  private activeMenuSubject = new Subject<string>();\r\n\r\n  activeMenu = this.activeMenuSubject.asObservable();\r\n\r\n  constructor() {}\r\n\r\n  setActiveMenu(menuId: string) {\r\n    this.activeMenuSubject.next(<string>menuId);\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  ViewEncapsulation,\r\n  OnDestroy,\r\n} from '@angular/core';\r\n\r\nimport * as _ from 'lodash';\r\nimport { AdjustService } from 'roro-control';\r\n\r\n@Component({\r\n  selector: 'roro-left-sidebar',\r\n  templateUrl: './left-sidebar.component.html',\r\n  styleUrls: ['./left-sidebar.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class LeftSidebarComponent implements OnInit, OnChanges, OnDestroy {\r\n  @Input() config: any;\r\n  @Input() isCollapsed!: boolean;\r\n  @Input() height!: number;\r\n  @Input() activeMenuId!: string;\r\n\r\n  @Output() menuClick = new EventEmitter<any>();\r\n  @Output() toggleClick = new EventEmitter<any>();\r\n  @Output() profilerClick = new EventEmitter<MouseEvent>();\r\n\r\n  public menuItems!: Array<any>;\r\n  public fixedMenuItems!: Array<any>;\r\n  public account: any;\r\n  public scrollConfig: any = {\r\n    id: 'sidebarScroll',\r\n    content: 'sidebar-menu',\r\n    css: 'grayScrollBar',\r\n    height: window.innerHeight,\r\n  };\r\n  public profilerActive!: boolean;\r\n\r\n  constructor(private adjustService: AdjustService) {}\r\n\r\n  ngOnInit() {\r\n    this.profilerActive = false;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes['config'] && changes['config'].currentValue) {\r\n      this.mapToMenus();\r\n      this.mapToAccount();\r\n    }\r\n\r\n    if (changes['height'] && changes['height'].currentValue) {\r\n      this.setScrollHeight();\r\n    }\r\n\r\n    if (\r\n      changes['isCollapsed'] &&\r\n      _.has(changes['isCollapsed'], 'currentValue') &&\r\n      this.config\r\n    ) {\r\n      this.setSidebarMenu(this.isCollapsed);\r\n    }\r\n\r\n    if (\r\n      changes['activeMenuId'] &&\r\n      _.has(changes['activeMenuId'], 'currentValue') &&\r\n      this.config\r\n    ) {\r\n      this.onActiveMenuChanged(this.activeMenuId);\r\n    }\r\n  }\r\n\r\n  public onScrollReady() {\r\n    this.setSidebarMenu(this.isCollapsed);\r\n  }\r\n\r\n  public toggle() {\r\n    this.isCollapsed = !this.isCollapsed;\r\n    this.setSidebarMenu(this.isCollapsed);\r\n    this.toggleClick.emit(this.isCollapsed);\r\n  }\r\n\r\n  public accountInfoClick(event: MouseEvent) {\r\n    this.profilerActive = true;\r\n\r\n    this.setDeactiveMenu();\r\n    this.mapToMenus();\r\n    this.profilerClick.emit(event);\r\n  }\r\n\r\n  public buttonClick(e: any, menuItem: any) {\r\n    let activeMenu: any;\r\n    this.profilerActive = false;\r\n\r\n    activeMenu = this.setActiveMenu(menuItem.id);\r\n    this.menuClick.emit(activeMenu);\r\n    this.mapToMenus();\r\n  }\r\n\r\n  private onActiveMenuChanged(menuId: string) {\r\n    this.profilerActive = menuId === this.account.id;\r\n\r\n    if (this.profilerActive) {\r\n      this.setDeactiveMenu();\r\n    } else if (this.config) {\r\n      this.setActiveMenu(menuId);\r\n    }\r\n\r\n    this.mapToMenus();\r\n  }\r\n\r\n  private setDeactiveMenu() {\r\n    _.forEach(this.config.rows, (item) => {\r\n      item.active = false;\r\n    });\r\n  }\r\n\r\n  private setActiveMenu(menuId: string) {\r\n    let activeMenu: any;\r\n\r\n    _.forEach(this.config.rows, (item) => {\r\n      if (item.id === menuId) {\r\n        item.active = true;\r\n        activeMenu = item;\r\n      } else {\r\n        item.active = false;\r\n      }\r\n    });\r\n\r\n    return activeMenu;\r\n  }\r\n\r\n  private setScrollHeight() {\r\n    const ui = $$(this.scrollConfig.id);\r\n\r\n    if (ui) {\r\n      ui.define('height', this.height);\r\n      ui.resize();\r\n    } else {\r\n      this.scrollConfig.height = this.height;\r\n    }\r\n  }\r\n\r\n  private setSidebarMenu(isCollapsed: boolean) {\r\n    if (isCollapsed) {\r\n      this.setCollapse();\r\n    } else {\r\n      this.setExpand();\r\n    }\r\n    this.adjustService.adjusted();\r\n  }\r\n\r\n  private setCollapse() {\r\n    const ui = $$(this.scrollConfig.id);\r\n    const width = 60;\r\n    if (ui) {\r\n      ui.config.width = width;\r\n      ui.resize();\r\n    } else {\r\n      this.scrollConfig.width = width;\r\n    }\r\n  }\r\n\r\n  private setExpand() {\r\n    const ui = $$(this.scrollConfig.id);\r\n    const width = 220;\r\n\r\n    if (ui) {\r\n      ui.config.width = width;\r\n      ui.resize();\r\n    } else {\r\n      this.scrollConfig.width = width;\r\n    }\r\n  }\r\n\r\n  private mapToAccount() {\r\n    this.account = this.config.account;\r\n  }\r\n\r\n  private mapToMenus() {\r\n    this.fixedMenuItems = _.chain(this.config.rows)\r\n      .filter({ fixed: true })\r\n      .map(this.mapToMenu)\r\n      .value();\r\n    this.menuItems = _.chain(this.config.rows)\r\n      .reject({ fixed: true })\r\n      .map(this.mapToMenu)\r\n      .value();\r\n  }\r\n\r\n  private mapToMenu(item: any) {\r\n    const prefixButtonCss = 'side-bar-button--';\r\n    const prefixSvgIcon = 'svg-icon--';\r\n\r\n    let css: string = prefixButtonCss + (item.buttonSize || 'medium');\r\n\r\n    let iconCss: string = prefixSvgIcon + (item.iconSize || 'small');\r\n\r\n    if (item.active) {\r\n      css += ' ' + prefixButtonCss + 'active';\r\n    }\r\n\r\n    if (item.icon) {\r\n      iconCss += ' ' + prefixSvgIcon + item.icon;\r\n    }\r\n\r\n    iconCss += ' ' + prefixSvgIcon + (item.color || 'gray');\r\n\r\n    return {\r\n      id: item.id,\r\n      css: css,\r\n      iconCss: iconCss,\r\n      text: item.text,\r\n      count: item.count > 99 ? '99+' : item.count,\r\n    };\r\n  }\r\n\r\n  ngOnDestroy() {}\r\n}\r\n","<div\r\n  class=\"left-sidebar\"\r\n  [ngClass]=\"{ 'left-sidebar--collapsed': isCollapsed }\"\r\n>\r\n  <div class=\"hamburger\" (click)=\"toggle()\">\r\n    <div\r\n      class=\"hamburger__icon\"\r\n      [ngClass]=\"{\r\n        'hamburger__icon--right': isCollapsed,\r\n        'hamburger__icon--left': !isCollapsed\r\n      }\"\r\n    ></div>\r\n  </div>\r\n  <div roroScroll [config]=\"scrollConfig\" (ready)=\"onScrollReady()\">\r\n    <div id=\"sidebar-menu\">\r\n      <div\r\n        *ngFor=\"let item of menuItems\"\r\n        class=\"webix_view webix_el_button side-bar-button\"\r\n        [ngClass]=\"item.css\"\r\n        (click)=\"buttonClick($event, item)\"\r\n      >\r\n        <div class=\"side-bar-button-icon\">\r\n          <div class=\"svg-icon\" [ngClass]=\"item.iconCss\"></div>\r\n        </div>\r\n        <div class=\"side-bar-button-label\">{{ item.text }}</div>\r\n        <div class=\"side-bar-button-notifications\" *ngIf=\"item.count\">\r\n          {{ item.count }}\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n<div\r\n  class=\"left-sidebar\"\r\n  [ngClass]=\"{ 'left-sidebar--collapsed': isCollapsed }\"\r\n>\r\n  <div\r\n    *ngFor=\"let item of fixedMenuItems\"\r\n    class=\"webix_view webix_el_button side-bar-button\"\r\n    [ngClass]=\"item.css\"\r\n    (click)=\"buttonClick($event, item)\"\r\n  >\r\n    <div class=\"side-bar-button-icon\">\r\n      <div class=\"svg-icon\" [ngClass]=\"item.iconCss\"></div>\r\n    </div>\r\n    <div class=\"side-bar-button-label\">{{ item.text }}</div>\r\n    <div class=\"side-bar-button-notifications\" *ngIf=\"item.count\">\r\n      {{ item.count }}\r\n    </div>\r\n  </div>\r\n  <div\r\n    class=\"webix_view side-bar-profile\"\r\n    [ngClass]=\"{ 'side-bar-button--active': !!profilerActive }\"\r\n    (click)=\"accountInfoClick($event)\"\r\n  >\r\n    <div\r\n      *ngIf=\"account\"\r\n      class=\"side-bar-profile-photo\"\r\n      [style.background-image]=\"'url(' + account.photo + ')'\"\r\n    ></div>\r\n    <div class=\"side-bar-profile-label\" *ngIf=\"account\">\r\n      {{ account.fullName }}\r\n    </div>\r\n    <div class=\"side-bar-profile-drop-down\">\r\n      <div class=\"side-bar-profile-drop-down-icon\">\r\n        <svg\r\n          xmlns=\"http://www.w3.org/2000/svg\"\r\n          width=\"36\"\r\n          height=\"36\"\r\n          viewBox=\"0 0 36 36\"\r\n        >\r\n          <path\r\n            fill=\"#ffffff\"\r\n            fill-rule=\"evenodd\"\r\n            d=\"M18,13 C19.1045695,13 20,12.1045695 20,11 C20,9.8954305 19.1045695,9 18,9 C16.8954305,9 16,9.8954305 16,11 C16,12.1045695 16.8954305,13 18,13 Z M18,20 C19.1045695,20 20,19.1045695 20,18 C20,16.8954305 19.1045695,16 18,16 C16.8954305,16 16,16.8954305 16,18 C16,19.1045695 16.8954305,20 18,20 Z M18,27 C19.1045695,27 20,26.1045695 20,25 C20,23.8954305 19.1045695,23 18,23 C16.8954305,23 16,23.8954305 16,25 C16,26.1045695 16.8954305,27 18,27 Z\"\r\n          ></path>\r\n        </svg>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  ViewEncapsulation,\r\n  Input,\r\n  HostListener,\r\n  Output,\r\n  EventEmitter,\r\n  OnDestroy,\r\n  SimpleChanges,\r\n  OnChanges,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport * as _ from 'lodash';\r\nimport { PageContainerService } from './page-container.service';\r\nimport { AuthService } from 'roro-core';\r\nimport { Router } from '@angular/router';\r\nimport { AdjustService } from 'roro-control';\r\nimport { LeftSidebarConfig, PageContainerConfig } from './pageContainerConfig';\r\nimport { UserProfileLayout } from './userProfiler.layout';\r\nimport { UserProfile } from './userProfile';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LeftSidebarService } from '../left-sidebar/left-sidebar.service';\r\nimport { RoutingStateService } from '../routing-state.service';\r\n@Component({\r\n  selector: 'roro-page-container',\r\n  templateUrl: './page-container.component.html',\r\n  styleUrls: ['./page-container.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageContainerComponent implements OnInit, OnChanges, OnDestroy {\r\n  @Input() config!: PageContainerConfig;\r\n\r\n  @Output() collapsed = new EventEmitter<any>();\r\n  @Output() goBack = new EventEmitter<any>();\r\n\r\n  headerTitle!: string;\r\n  backTitle!: string;\r\n  leftSidebarHeight!: number;\r\n  isCollapsed!: boolean;\r\n  leftSidebarConfig!: LeftSidebarConfig;\r\n  hasPreviousRouter!: boolean;\r\n  profilePopupConfig: any;\r\n  activeMenuId!: string;\r\n\r\n  private collapsedSubscription: Subscription;\r\n  private titleSubscription: Subscription;\r\n  private routingStateSubscription: Subscription;\r\n  private handlerResize: any;\r\n  private screenSize = 768;\r\n  private leftSidebarSubscription: Subscription;\r\n\r\n  constructor(\r\n    private router: Router,\r\n    private pageContainerService: PageContainerService,\r\n    private routingStateService: RoutingStateService,\r\n    private adjustService: AdjustService,\r\n    private translate: TranslateService,\r\n    private authService: AuthService,\r\n    private leftSidebarService: LeftSidebarService\r\n  ) {\r\n    this.routingStateSubscription = routingStateService.logHistory.subscribe(\r\n      () => {\r\n        this.hasPreviousRouter =\r\n          this.routingStateService.hasPreviousRouterState();\r\n      }\r\n    );\r\n    this.leftSidebarSubscription = this.leftSidebarService.activeMenu.subscribe(\r\n      (menuId: string) => {\r\n        this.activeMenuId = menuId;\r\n      }\r\n    );\r\n\r\n    this.collapsedSubscription = this.pageContainerService.collapse.subscribe(\r\n      (isCollapsed: boolean) => {\r\n        this.setCollapsed(isCollapsed);\r\n\r\n        if (this.config) {\r\n          this.pageResize();\r\n        }\r\n      }\r\n    );\r\n\r\n    this.titleSubscription = this.pageContainerService.title.subscribe(\r\n      (title: string) => {\r\n        this.headerTitle = title;\r\n      }\r\n    );\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.isCollapsed = this.hasCollapsed();\r\n    this.handlerResize = _.debounce(this.resize.bind(this), 100);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes['config'] && changes['config'].currentValue) {\r\n      this.leftSidebarConfig = this.config.leftSidebar;\r\n      this.headerTitle = this.config.headerTitle;\r\n      this.backTitle = this.config.backTitle;\r\n      this.pageResize();\r\n      this.setProfiler();\r\n    }\r\n  }\r\n\r\n  onToggleClick(isCollapsed: boolean) {\r\n    this.isCollapsed = isCollapsed;\r\n    this.collapsed.emit(this.isCollapsed);\r\n  }\r\n\r\n  onMenuClick(menuConfig: any) {\r\n    let commands = [];\r\n\r\n    if (menuConfig.path) {\r\n      commands.push(menuConfig.path);\r\n      this.router.navigate(commands);\r\n    }\r\n  }\r\n\r\n  onProfilterClick(event: any) {\r\n    var popup = $$(this.profilePopupConfig.id) as webix.ui.popup;\r\n\r\n    if (popup.isVisible()) {\r\n      popup.hide();\r\n    } else {\r\n      popup.show(event.currentTarget, { pos: 'right', x: -16, y: -6 });\r\n    }\r\n  }\r\n\r\n  onGoBack() {\r\n    let routerState = this.routingStateService.getPreviousRouterState();\r\n\r\n    this.goBack.emit();\r\n\r\n    if (routerState) {\r\n      this.hasPreviousRouter =\r\n        this.routingStateService.hasPreviousRouterState();\r\n    } else {\r\n      routerState = {\r\n        path: 'home',\r\n        params: {},\r\n      };\r\n      this.hasPreviousRouter = false;\r\n    }\r\n\r\n    this.router.navigate(['/' + routerState.path, routerState.params]);\r\n  }\r\n\r\n  @HostListener('window:resize')\r\n  onResize() {\r\n    if (\r\n      this.handlerResize &&\r\n      this.leftSidebarConfig &&\r\n      this.leftSidebarConfig.rows\r\n    ) {\r\n      this.handlerResize();\r\n    }\r\n  }\r\n\r\n  resize() {\r\n    const hasCollapsed = this.hasCollapsed();\r\n\r\n    if (hasCollapsed) {\r\n      this.setCollapsed(hasCollapsed);\r\n      this.collapsed.emit(this.isCollapsed);\r\n    }\r\n\r\n    this.pageResize();\r\n  }\r\n\r\n  private setProfiler() {\r\n    const userProfileLayout = new UserProfileLayout();\r\n    const userProfile = new UserProfile(userProfileLayout);\r\n\r\n    _.forEach(userProfileLayout.menuItems, (item) => {\r\n      item.title = this.translate.instant('SHELL.ACCOUNT.' + item.title);\r\n    });\r\n    this.profilePopupConfig = {\r\n      id: 'profilePopupId',\r\n      relative: 'bottom',\r\n      height: userProfile.getPopupHeight(),\r\n      width: 200,\r\n      autofit: true,\r\n      autofocus: true,\r\n      css: 'profile-popup',\r\n      body: {\r\n        view: 'template',\r\n        borderless: true,\r\n        template: userProfile.getItemsForPopup(),\r\n        onClick: {\r\n          'profile-item': (e: any, id: any, trg: any) => {\r\n            switch (trg.dataset.key) {\r\n              case 'logout':\r\n                this.logout();\r\n                break;\r\n              case 'help':\r\n                break;\r\n              case 'integrations':\r\n                break;\r\n              case 'admin':\r\n                break;\r\n              case 'viewProfile':\r\n              case 'viewBilling':\r\n              default:\r\n                break;\r\n            }\r\n            $$(this.profilePopupConfig.id).hide();\r\n          },\r\n        },\r\n      },\r\n    };\r\n  }\r\n\r\n  private logout() {\r\n    this.authService.logout();\r\n  }\r\n\r\n  private hasCollapsed(): boolean {\r\n    return document.body.clientWidth <= this.screenSize;\r\n  }\r\n\r\n  private pageResize() {\r\n    const top = 60;\r\n    const bottom = 52;\r\n    const fixedSize: number = _.chain(this.leftSidebarConfig.rows)\r\n      .filter({ fixed: true })\r\n      .map((item: any) => {\r\n        if (item.buttonSize === 'small') {\r\n          return 36;\r\n        } else if (item.buttonSize === 'medium') {\r\n          return 48;\r\n        } else {\r\n          return 36;\r\n        }\r\n      })\r\n      .sum()\r\n      .value();\r\n\r\n    this.leftSidebarHeight = window.innerHeight - (top + bottom + fixedSize);\r\n    this.adjustService.adjusted();\r\n  }\r\n\r\n  private setCollapsed(isCollapsed: boolean) {\r\n    this.isCollapsed = isCollapsed;\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.collapsedSubscription.unsubscribe();\r\n    this.titleSubscription.unsubscribe();\r\n    this.routingStateSubscription.unsubscribe();\r\n    this.leftSidebarSubscription.unsubscribe();\r\n  }\r\n}\r\n","<div class=\"page-container\" roroPopup [config]=\"profilePopupConfig\">\r\n  <div\r\n    class=\"left-content\"\r\n    [ngClass]=\"{ 'left-content--collapsed': !!isCollapsed }\"\r\n  >\r\n    <div class=\"webix_view header\">\r\n      <div\r\n        class=\"webix_el_button header__back_btn\"\r\n        (click)=\"onGoBack()\"\r\n        *ngIf=\"hasPreviousRouter\"\r\n      >\r\n        <svg\r\n          width=\"24\"\r\n          height=\"24\"\r\n          viewBox=\"0 0 24 24\"\r\n          fill=\"none\"\r\n          xmlns=\"http://www.w3.org/2000/svg\"\r\n        >\r\n          <path\r\n            fill-rule=\"evenodd\"\r\n            clip-rule=\"evenodd\"\r\n            d=\"M7 1L6 0L0 6L6 12L7 11L2 6L7 1Z\"\r\n            transform=\"translate(8 6)\"\r\n            fill=\"#2b3d54\"\r\n          ></path>\r\n        </svg>\r\n        {{ backTitle }}\r\n      </div>\r\n      <div class=\"header__title\">\r\n        <span>{{ headerTitle }}</span>\r\n      </div>\r\n    </div>\r\n    <div class=\"wrapper vMh100\">\r\n      <div class=\"content-wrap\">\r\n        <ng-content></ng-content>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <roro-left-sidebar\r\n    [height]=\"leftSidebarHeight\"\r\n    [isCollapsed]=\"!!isCollapsed\"\r\n    [config]=\"leftSidebarConfig\"\r\n    [activeMenuId]=\"activeMenuId\"\r\n    (toggleClick)=\"onToggleClick($event)\"\r\n    (menuClick)=\"onMenuClick($event)\"\r\n    (profilerClick)=\"onProfilterClick($event)\"\r\n  ></roro-left-sidebar>\r\n</div>\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  HostListener,\r\n  OnInit,\r\n  Optional,\r\n} from \"@angular/core\";\r\nimport { Router, Route } from \"@angular/router\";\r\nimport * as _ from \"lodash\";\r\nimport * as moment from \"moment\";\r\n\r\nimport { AuthService } from \"roro-core\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { PageContainerLayout } from \"./app.layout\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport {\r\n  PageContainerConfig,\r\n  MenuConfig,\r\n} from \"../page-container/pageContainerConfig\";\r\nimport { RoRoShellModuleConfig } from \"../shell.config\";\r\nimport { LoaderService } from \"../loader/loader.service\";\r\nimport { RoutingStateService } from \"../routing-state.service\";\r\n\r\n@Component({\r\n  selector: \"roro-app\",\r\n  template: `\r\n    <roro-loader></roro-loader>\r\n    <roro-page-container\r\n      *ngIf=\"isAuthenticated\"\r\n      [config]=\"containerConfig\"\r\n      (collapsed)=\"onCollapsed($event)\"\r\n    >\r\n      <router-outlet *ngIf=\"isOnline; else isOffline\"></router-outlet>\r\n      <ng-template #isOffline>\r\n        <div></div>\r\n      </ng-template>\r\n    </roro-page-container>\r\n  `,\r\n  encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AppComponent implements OnInit {\r\n  isCollapsed!: boolean;\r\n  isAuthenticated!: boolean;\r\n  containerConfig!: PageContainerConfig;\r\n  isOnline!: boolean;\r\n\r\n  constructor(\r\n    @Optional() private moduleConfig: RoRoShellModuleConfig,\r\n    private router: Router,\r\n    private routingState: RoutingStateService,\r\n    private oauthService: OAuthService,\r\n    private authService: AuthService,\r\n    private translateService: TranslateService,\r\n    private loaderService: LoaderService\r\n  ) {\r\n    this.configureWithNewConfigApi();\r\n    this.routingState.loadRouting();\r\n    this.authService.isAuthenticated$.subscribe((i) => {\r\n      this.isAuthenticated = i;\r\n    });\r\n    this.initvUnit();\r\n  }\r\n\r\n  onCollapsed(isCollapsed: boolean) {\r\n    this.isCollapsed = isCollapsed;\r\n  }\r\n\r\n  ngOnInit() {\r\n    const authService = this.authService;\r\n    const lang = this.getLanguage();\r\n\r\n    moment.locale(lang);\r\n    this.loaderService.show();\r\n    this.authService.runInitialLoginSequence().then(() => {\r\n      const identityClaims: any = authService.identityClaims;\r\n      this.translateService.use(lang).subscribe(() => {\r\n        this.containerConfig = new PageContainerLayout(\r\n          {\r\n            account: {\r\n              id: \"profiler\",\r\n              fullName: \"Anonymous\",\r\n              photo: \"/assets/images/photo.png\",\r\n            },\r\n            rows: this.getMenuItems(),\r\n          },\r\n          this.translateService.instant(\"SHELL.APP.BACK_TITLE\"),\r\n          this.translateService.instant(\"SHELL.APP.HEADER_TITLE\")\r\n        );\r\n\r\n        if (identityClaims) {\r\n          this.containerConfig.leftSidebar.account.fullName =\r\n            identityClaims.fullname || identityClaims.unique_name;\r\n        }\r\n\r\n        const local = `./i18n/${lang}.js`;\r\n        webix.require(local, () => {\r\n          webix.i18n.setLocale(lang);\r\n          this.isOnline = true;\r\n          this.loaderService.hide();\r\n        });\r\n      });\r\n    });\r\n  }\r\n\r\n  private getLanguage() {\r\n    const browserLang = this.translateService.getBrowserLang();\r\n    const userLang =\r\n      _.find(this.moduleConfig.languages, browserLang) ||\r\n      this.moduleConfig.defaultLanguage;\r\n\r\n    return userLang;\r\n  }\r\n\r\n  private getMenuItems(): Array<MenuConfig> {\r\n    return _.chain(this.router.config)\r\n      .filter((item) => {\r\n        return item.data && item.data[\"menu\"];\r\n      })\r\n      .map((item: Route) => {\r\n        let menu: MenuConfig = item.data?.[\"menu\"];\r\n        menu.path = item.path;\r\n\r\n        menu.text = this.translateService.instant(menu.text);\r\n\r\n        return menu;\r\n      })\r\n      .value();\r\n  }\r\n\r\n  private configureWithNewConfigApi() {\r\n    this.oauthService.configure(this.moduleConfig.authConfig);\r\n    this.oauthService.loadDiscoveryDocumentAndTryLogin();\r\n  }\r\n\r\n  // Show full text on mouseover labels with ellipsis\r\n  @HostListener(\"window:mouseover\", [\"$event\"])\r\n  listenerMouseOverEvent(event: any) {\r\n    const targetElement = event.target;\r\n    const targetElementStyles = window.getComputedStyle(targetElement, null);\r\n    const hasPreventElement = targetElement.classList.contains(\"ignore\");\r\n\r\n    if (!hasPreventElement) {\r\n      const titleValue =\r\n        targetElementStyles.getPropertyValue(\"text-overflow\") === \"ellipsis\" &&\r\n        targetElement.offsetWidth < targetElement.scrollWidth\r\n          ? targetElement.innerText\r\n          : \"\";\r\n      targetElement.setAttribute(\"title\", titleValue);\r\n    }\r\n  }\r\n\r\n  private initvUnit() {\r\n    new (window as any).vUnit({\r\n      CSSMap: {\r\n        \".vh\": {\r\n          property: \"height\",\r\n          reference: \"vh\",\r\n        },\r\n        \".vw\": {\r\n          property: \"width\",\r\n          reference: \"vw\",\r\n        },\r\n        \".vMh\": {\r\n          property: \"min-height\",\r\n          reference: \"vh\",\r\n        },\r\n      },\r\n    }).init();\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'roro-error404',\r\n  templateUrl: './error404.component.html',\r\n  styleUrls: ['./error404.component.scss'],\r\n})\r\nexport class Error404Component implements OnInit {\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","<p>error404 works!</p>\r\n","import {\r\n  NgModule,\r\n  InjectionToken,\r\n  ModuleWithProviders,\r\n  Optional,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport {\r\n  TranslateLoader,\r\n  TranslateModule,\r\n  TranslateService,\r\n} from '@ngx-translate/core';\r\nimport { MultiTranslateHttpLoader } from 'ngx-translate-multi-http-loader';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { LeftSidebarComponent } from './left-sidebar/left-sidebar.component';\r\nimport { LeftSidebarService } from './left-sidebar/left-sidebar.service';\r\n\r\nimport { LoadingComponent as LoaderComponent } from './loader/loader.component';\r\nimport { LoaderService } from './loader/loader.service';\r\n\r\nimport { PageContainerComponent } from './page-container/page-container.component';\r\nimport { PageContainerService } from './page-container/page-container.service';\r\n\r\nimport { AppComponent } from './app/app.component';\r\n\r\nimport { RoRoControlModule } from 'roro-control';\r\nimport { RoRoCoreModule } from 'roro-core';\r\nimport * as _ from 'lodash';\r\nimport { RoRoShellModuleConfig } from './shell.config';\r\nimport { RouterModule } from '@angular/router';\r\nimport { Error404Component } from './error404/error404.component';\r\n\r\nexport const OPTIONS = new InjectionToken<string>('OPTIONS');\r\n\r\nexport function HttpLoaderFactory(\r\n  http: HttpClient,\r\n  shellConfig: RoRoShellModuleConfig\r\n) {\r\n  return new MultiTranslateHttpLoader(http, shellConfig.resources);\r\n}\r\n\r\n@NgModule({\r\n  declarations: [\r\n    AppComponent,\r\n    LeftSidebarComponent,\r\n    LoaderComponent,\r\n    PageContainerComponent,\r\n    Error404Component,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n    BrowserModule,\r\n    TranslateModule.forRoot({\r\n      loader: {\r\n        provide: TranslateLoader,\r\n        useFactory: HttpLoaderFactory,\r\n        deps: [HttpClient, RoRoShellModuleConfig],\r\n      },\r\n    }),\r\n    RoRoCoreModule,\r\n    RoRoControlModule,\r\n  ],\r\n  exports: [\r\n    LeftSidebarComponent,\r\n    LoaderComponent,\r\n    PageContainerComponent,\r\n    AppComponent,\r\n    Error404Component,\r\n  ],\r\n})\r\nexport class RoRoShellModule {\r\n  static forRoot(\r\n    moduleConfig: RoRoShellModuleConfig\r\n  ): ModuleWithProviders<RoRoShellModule> {\r\n    return {\r\n      ngModule: RoRoShellModule,\r\n      providers: [\r\n        { provide: RoRoShellModuleConfig, useValue: moduleConfig },\r\n        PageContainerService,\r\n        LoaderService,\r\n        LeftSidebarService,\r\n      ],\r\n    };\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of shell\r\n */\r\nexport * from './lib/app/app.component';\r\nexport * from './lib/loader/loader.component';\r\nexport * from './lib/loader/loader.service';\r\n\r\nexport * from './lib/page-container/page-container.component';\r\nexport * from './lib/page-container/page-container.service';\r\nexport * from './lib/page-container/pageContainerConfig';\r\n\r\nexport * from './lib/left-sidebar/left-sidebar.component';\r\nexport * from './lib/left-sidebar/left-sidebar.service';\r\nexport * from './lib/routing-state.service';\r\n\r\nexport * from './lib/error404/error404.component';\r\n\r\nexport * from './lib/shell.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LoaderService","i1","i2.PageContainerService","i3.RoutingStateService","i4","i7.LeftSidebarService","i8","i9.LeftSidebarComponent","i1.RoRoShellModuleConfig","i2","i5","i6","i7.LoaderService","i9.LoadingComponent","i10.PageContainerComponent","LoaderComponent"],"mappings":"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"}