{"version":3,"file":"ui-vts-kit-ng-vts-prolayout.mjs","sources":["../../components/prolayout/content.component.ts","../../components/prolayout/footer.component.ts","../../components/prolayout/pro-layout.service.ts","../../components/prolayout/block-ui.service.ts","../../components/prolayout/menu-item-horizontal.component.ts","../../components/prolayout/menu-item-horizontal.component.html","../../components/prolayout/dropdown-menu-item-horizontal.component.ts","../../components/prolayout/dropdown-menu-item-horizontal.component.html","../../components/prolayout/pro-header.component.ts","../../components/prolayout/pro-header.component.html","../../components/prolayout/sider-trigger.component.ts","../../components/prolayout/menu-item.component.ts","../../components/prolayout/menu-item.component.html","../../components/prolayout/sider.component.ts","../../components/prolayout/layout.component.ts","../../components/prolayout/setting-drawer.component.ts","../../components/prolayout/setting-drawer.component.html","../../components/prolayout/breadcrumb.component.ts","../../components/prolayout/breadcrumb.component.html","../../components/prolayout/block-ui.component.ts","../../components/prolayout/block-ui.component.html","../../components/prolayout/pro-layout.component.ts","../../components/prolayout/pro-layout.component.html","../../components/prolayout/layout.module.ts","../../components/prolayout/pro-layout.types.ts","../../components/prolayout/public-api.ts","../../components/prolayout/ui-vts-kit-ng-vts-prolayout.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Renderer2,\n  ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n  selector: 'vts-prolayout-content',\n  exportAs: 'vtsProLayoutContent',\n  preserveWhitespaces: false,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  template: `\n    <ng-content></ng-content>\n  `\n})\nexport class VtsContentComponent {\n  constructor(private elementRef: ElementRef, private renderer: Renderer2) {\n    this.renderer.addClass(this.elementRef.nativeElement, 'vts-prolayout-content');\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Renderer2,\n  ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n  selector: 'vts-prolayout-footer',\n  exportAs: 'vtsProLayoutFooter',\n  preserveWhitespaces: false,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-content></ng-content>\n  `\n})\nexport class VtsFooterComponent {\n  constructor(public elementRef: ElementRef, private renderer: Renderer2) {\n    this.renderer.addClass(this.elementRef.nativeElement, 'vts-prolayout-footer');\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { VtsDrawerRef } from '@ui-vts-kit/ng-vts/drawer';\nimport { VtsMenuItemProLayout, VtsNotiPaneType } from './pro-layout.types';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class VtsProlayoutService {\n  fixedSiderChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  fixedHeaderChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  visibilitySiderChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  visibilityHeaderChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  visibilityFooterChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  useSplitMenuChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  menuHeaderChange$: ReplaySubject<VtsMenuItemProLayout[]> = new ReplaySubject<\n    VtsMenuItemProLayout[]\n  >(1);\n  menuSiderChange$: ReplaySubject<VtsMenuItemProLayout[]> = new ReplaySubject<\n    VtsMenuItemProLayout[]\n  >(1);\n  collapSiderChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  notificationChange$: ReplaySubject<number> = new ReplaySubject<number>(1);\n  // notification pane visibility\n  visiblePaneChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  settingDrawerStateChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  // detect when submenu open, notify others to add to remove tooltip\n  submenuItemOpenChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n\n  drawerNotifyRef: VtsDrawerRef | null = null;\n\n  onChangeFixedSider(isFixed: boolean): void {\n    this.fixedSiderChange$.next(isFixed);\n  }\n\n  onChangeFixedHeader(isFixed: boolean): void {\n    this.fixedHeaderChange$.next(isFixed);\n  }\n\n  onChangeVisibilitySider(isShow: boolean): void {\n    this.visibilitySiderChange$.next(isShow);\n  }\n\n  onChangeVisibilityHeader(isShow: boolean): void {\n    this.visibilityHeaderChange$.next(isShow);\n  }\n\n  onChangeVisibilityFooter(isShow: boolean): void {\n    this.visibilityFooterChange$.next(isShow);\n  }\n\n  onChangeUseSplitMenu(isMenuSplitted: boolean): void {\n    this.useSplitMenuChange$.next(isMenuSplitted);\n  }\n\n  onChangeMenuHeader(data: VtsMenuItemProLayout[]): void {\n    this.menuHeaderChange$.next(data);\n  }\n\n  onChangeMenuSider(data: VtsMenuItemProLayout[]): void {\n    this.menuSiderChange$.next(data);\n  }\n\n  onChangeCollapedSider(isCollapsed: boolean): void {\n    this.collapSiderChange$.next(isCollapsed);\n  }\n\n  onChangeNotification(count: number): void {\n    this.notificationChange$.next(count);\n  }\n\n  getDrawerNotifyRef(): VtsDrawerRef | null {\n    return this.drawerNotifyRef;\n  }\n\n  openNotificationPane(paneType: VtsNotiPaneType): void {\n    if (paneType === 'drawer') {\n      this.visiblePaneChange$.next(true);\n    }\n  }\n\n  onChangeSettingDrawerState(visible: boolean) {\n    this.settingDrawerStateChange$.next(visible);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class VtsBlockUIService {\n  // scrren lock state change\n  lockUIStateChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  // show input password change\n  showInputChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\n  // UI lock password\n  private lockPassword: string | null = '';\n  private storage = localStorage;\n\n  // lock screen\n  lockScreen(pass: string): void {\n    this.lockPassword = pass;\n    this.storage.setItem('lockUI', this.lockPassword);\n    this.lockUIStateChange$.next(true);\n  }\n\n  // unlock screen with a password\n  unlockScreen(pass: string): void {\n    let storedPass: string | null = this.storage.getItem('lockUI');\n    // reload page will clear lockPassword\n    if (!this.lockPassword && storedPass) {\n      this.lockPassword = storedPass;\n    }\n    if (pass === this.lockPassword) {\n      this.lockUIStateChange$.next(false);\n      this.storage.removeItem('lockUI');\n    } else {\n      this.lockUIStateChange$.next(true);\n    }\n  }\n\n  // show input password\n  showInputPassword() {\n    this.showInputChange$.next(true);\n  }\n\n  // hide input password\n  hideInputPassword() {\n    this.showInputChange$.next(false);\n  }\n\n  // get current lock state\n  // fire lock stream if needed because reloading page clears lockPassword\n  getLockState() {\n    if (!this.lockPassword && this.storage.getItem('lockUI')) {\n      this.lockPassword = this.storage.getItem('lockUI');\n      this.lockUIStateChange$.next(true);\n      return true;\n    }\n    return false;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  // OnChanges,\n  OnInit,\n  ViewEncapsulation\n  // SimpleChanges\n} from '@angular/core';\nimport { VtsMenuItemProLayout } from './pro-layout.types';\n\n@Component({\n  selector: 'vts-prolayout-menu-item-horizontal',\n  templateUrl: 'menu-item-horizontal.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  preserveWhitespaces: false\n})\nexport class VtsProlayoutMenuItemHorizontalComponent implements OnInit {\n  @Input() vtsMenuItem: VtsMenuItemProLayout = {\n    title: '',\n    children: [],\n    isSelected: false\n  };\n\n  constructor() {}\n\n  ngOnInit() {}\n}\n","<ng-container *ngIf=\"vtsMenuItem.children && vtsMenuItem.children.length > 0; else menuChild\">\n    <li vts-submenu [vtsTitle]=\"vtsMenuItem.title\" *ngIf=\"vtsMenuItem.icon; else noIconSubmenu\" [vtsIcon]=\"vtsMenuItem.icon\">\n        <ul>\n            <ng-container *ngFor=\"let item of vtsMenuItem.children\">\n                <vts-prolayout-menu-item-horizontal [vtsMenuItem]=\"item\"></vts-prolayout-menu-item-horizontal>\n            </ng-container>\n        </ul>\n    </li>\n\n    <ng-template #noIconSubmenu>\n        <li vts-submenu [vtsTitle]=\"vtsMenuItem.title\">\n            <ul>\n                <ng-container *ngFor=\"let item of vtsMenuItem.children\">\n                    <vts-prolayout-menu-item-horizontal [vtsMenuItem]=\"item\"></vts-prolayout-menu-item-horizontal>\n                </ng-container>\n            </ul>\n        </li>\n    </ng-template>\n</ng-container>\n\n<ng-template #menuChild>\n    <li vts-menu-item routerLink=\"{{ vtsMenuItem.url }}\">\n        <ng-container *ngIf=\"vtsMenuItem.icon\">\n            <i vts-icon [vtsType]=\"vtsMenuItem.icon\"></i>\n        </ng-container>        \n        {{vtsMenuItem.title}}\n    </li>\n</ng-template>","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { VtsMenuItemProLayout } from './pro-layout.types';\n\n@Component({\n  selector: 'vts-dropdown-menu-item-horizontal',\n  templateUrl: 'dropdown-menu-item-horizontal.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  preserveWhitespaces: false,\n  host: {\n    '[attr.level]': 'level'\n  }\n})\n\nexport class VtsDropdownMenuItemHorizontalComponent implements OnInit {\n  constructor() { }\n\n  @Input() vtsMenuItem: VtsMenuItemProLayout = {\n    title: '',\n    children: [],\n    isSelected: false\n  };\n  @Input() level = 1;\n  @Input() vtsActiveRootMenuHeader: string | number | undefined;\n\n  ngOnInit() { }\n}","<div class=\"dropdown-menu-item-horizontal-container\" [ngClass]=\"{'root-level-dropdown': level == 1}\">\n  <!-- line mark root active -->\n  <div class=\"mark-active-line\" *ngIf=\"vtsActiveRootMenuHeader && vtsActiveRootMenuHeader == vtsMenuItem.id && level == 1\"></div>\n  <!-- Item with children -->\n  <ng-container *ngIf=\"vtsMenuItem.children && vtsMenuItem.children.length; else singleItemTpl\">\n    <!-- Root level -->\n    <ng-container *ngIf=\"level == 1; else subItemParentTple\">\n      <a class=\"dropdown-item\" vts-dropdown [vtsDropdownMenu]=\"menu\" vtsTrigger=\"click\"\n        [ngClass]=\"{ 'root-active': vtsActiveRootMenuHeader == vtsMenuItem.id}\">\n        <span class=\"item-title\">\n          {{ vtsMenuItem.title }}\n        </span>\n        <ng-container *ngTemplateOutlet=\"iconParentTpl\"></ng-container>\n      </a>\n      <vts-dropdown-menu #menu=\"vtsDropdownMenu\">\n        <ul vts-menu class=\"dropdown-item-children\">\n          <ng-container *ngFor=\"let child of vtsMenuItem.children\">\n            <vts-dropdown-menu-item-horizontal [vtsMenuItem]=\"child\"\n              [level]=\"level + 1\"></vts-dropdown-menu-item-horizontal>\n          </ng-container>\n        </ul>\n      </vts-dropdown-menu>\n    </ng-container>\n    <ng-template #subItemParentTple>\n      <!-- content -->\n      <ng-template #contentSubItemParentTpl>\n        <ul class=\"dropdown-submenu-item-children\">\n          <ng-container *ngFor=\"let child of vtsMenuItem.children\">\n            <vts-dropdown-menu-item-horizontal [vtsMenuItem]=\"child\"\n              [level]=\"level + 1\"></vts-dropdown-menu-item-horizontal>\n          </ng-container>\n        </ul>\n      </ng-template>\n      <!-- with icon -->\n      <ng-container *ngIf=\"vtsMenuItem.icon; else subItemParentWithoutIconTpl\">\n        <li vts-submenu class=\"dropdown-submenu-item\" [vtsTitle]=\"vtsMenuItem.title\" [vtsIcon]=\"vtsMenuItem.icon\">\n          <ng-container *ngTemplateOutlet=\"contentSubItemParentTpl\"></ng-container>\n        </li>\n      </ng-container>\n      <!-- without icon -->\n      <ng-template #subItemParentWithoutIconTpl>\n        <li vts-submenu class=\"dropdown-submenu-item\" [vtsTitle]=\"vtsMenuItem.title\">\n          <ng-container *ngTemplateOutlet=\"contentSubItemParentTpl\"></ng-container>\n        </li>\n      </ng-template>\n    </ng-template>\n  </ng-container>\n  <!-- Item with no child -->\n  <ng-template #singleItemTpl>\n    <ng-container *ngIf=\"level == 1; else leafItemTpl\">\n      <a class=\"item-single\" [routerLink]=\"vtsMenuItem.url\" routerLinkActive=\"router-link-active\"\n        [ngClass]=\"{ 'root-active': vtsActiveRootMenuHeader == vtsMenuItem.id}\">\n        <ng-container *ngTemplateOutlet=\"iconParentTpl\"></ng-container>\n        <span class=\"item-title\">\n          {{ vtsMenuItem.title }}\n        </span>\n      </a>\n    </ng-container>\n    <ng-template #leafItemTpl>\n      <li vts-menu-item class=\"dropdown-leaf-item\" [routerLink]=\"vtsMenuItem.url\">\n        <span class=\"item-title\">\n          {{ vtsMenuItem.title }}\n        </span>\n      </li>\n    </ng-template>\n  </ng-template>\n</div>\n\n<!-- icon template for item parent with icon -->\n<ng-template #iconParentTpl>\n  <ng-container *ngIf=\"vtsMenuItem.icon; else defaultIconTpl\">\n    <i vts-icon [vtsType]=\"vtsMenuItem.icon\" class=\"dropdown-item-icon\"></i>\n  </ng-container>\n  <ng-template #defaultIconTpl>\n    <i vts-icon vtsType=\"ArrowDownOutline\" class=\"dropdown-item-default-icon\"></i>\n  </ng-template>\n</ng-template>\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Renderer2,\n  ViewEncapsulation,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectorRef,\n  OnInit,\n  TemplateRef,\n  OnDestroy,\n  Inject,\n  AfterViewInit,\n  NgZone,\n  Output,\n  EventEmitter\n} from '@angular/core';\nimport { VtsProlayoutService } from './pro-layout.service';\nimport { Router } from '@angular/router';\nimport {\n  VtsAvatarMenu,\n  VtsAvatarUser,\n  VtsMenuItemProLayout,\n  VtsNotificationConfig,\n  VtsVisibilityConfig\n} from './pro-layout.types';\nimport { Subject, fromEvent } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport { VtsBlockUIService } from './block-ui.service';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { takeUntil } from 'rxjs/operators';\nimport { VtsTheme, VtsThemeService } from '@ui-vts-kit/theme/services';\n\nconst CSS_TRANSFORM_TIME = 150;\nconst SIDER_WIDTH = 250;\nconst OFFSET_SCROLL = 10;\n\n@Component({\n  selector: 'vts-prolayout-header',\n  exportAs: 'vtsProLayoutHeader',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  preserveWhitespaces: false,\n  templateUrl: 'pro-header.component.html',\n})\nexport class VtsHeaderComponent implements OnChanges, OnInit, OnDestroy, AfterViewInit {\n  constructor(\n    public elementRef: ElementRef,\n    private renderer: Renderer2,\n    private prolayoutService: VtsProlayoutService,\n    private lockUiService: VtsBlockUIService,\n    private cdf: ChangeDetectorRef,\n    private router: Router,\n    private breakpointService: BreakpointObserver,\n    @Inject(DOCUMENT) private document: Document,\n    private ngZone: NgZone,\n    private themeService: VtsThemeService\n  ) {\n    this.renderer.addClass(this.elementRef.nativeElement, 'vts-prolayout-header');\n  }\n  ngOnDestroy(): void {\n    this.destroySubscriptions();\n  }\n\n  isFixedHeader: boolean = false;\n  isFixedSider: boolean = false;\n  isCollapsedSider: boolean = false;\n  notificationCount: number = 0;\n  isFullScreen: boolean = false;\n  isShowSider: boolean = true;\n  /**\n   * check window size\n   */\n  windowSize: 'small' | 'medium' | 'large' = 'large';\n\n  private onDestroy$ = new Subject();\n\n  // @Input() vtsTheme: VtsMenuThemeType = 'light';\n  useSplitMenu: boolean = true;\n  @Input() vtsTitle: string | TemplateRef<void> | null = null;\n\n  showLogo: boolean = true;\n  @Input() vtsAvatar: VtsAvatarUser = {\n    size: 'md',\n    name: 'Shiba inu',\n    subname: 'Viettel Solution'\n  };\n  showMenu: boolean = false;\n  @Input() vtsAvatarMenu: VtsAvatarMenu[] = [];\n  @Input() vtsLogoUrl: string = '';\n  @Input() vtsMenuTemplate: TemplateRef<void> | null = null;\n  @Input() vtsNotificationConfig: VtsNotificationConfig = {\n    type: 'menuContext',\n    overflowCount: 99\n  };\n  @Input() vtsVisibleNotifyPane: boolean = false;\n  @Input() vtsMenuAvatarTemplateRef: TemplateRef<void> | null = null;\n  /**\n   * input from parent; actual data will be wrapped by one item with Toc:vts icon\n   */\n  @Input() vtsMenuData: VtsMenuItemProLayout[] = [];\n  @Input() vtsVisibilityConfig: VtsVisibilityConfig = {\n    searchIcon: true,\n    fullScreen: true,\n    lockScreen: true,\n    notifyIcon: true\n  };\n  /**\n   * display header menu's items horizontally\n   */\n  @Input() vtsUseExpandHeaderMenu: boolean = false;\n  /**\n   * mark active root menu item on header menu, when vtsUseExpandHeaderMenu = true\n   */\n  @Input() vtsActiveRootMenuHeader: string | number | undefined;\n  @Output() visibleChangeCtxNotify: EventEmitter<boolean> = new EventEmitter<boolean>();\n  displayMenuData: VtsMenuItemProLayout[] = [];\n  scrollListEle: HTMLElement | null = null;\n  /**\n   * position of list scroll, when this field >= 0 => cannot scroll to the right, if Math.abs(posScroll) >= maxScrollPos => cannot scroll to the left\n   */\n  posScroll: number = 0;\n  /**\n   * if > 0 => able to scroll\n   */\n  private maxScrollPos: number = 0;\n  private lockAnimationTimeoutId: number | ReturnType<typeof setTimeout> = -1;\n  \n  ngOnInit(): void {\n    // receive menus from container\n    this.prolayoutService.menuHeaderChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((data: VtsMenuItemProLayout[]) => {\n        this.vtsMenuData = data;\n        if(!this.vtsUseExpandHeaderMenu){\n          let newMenuData: VtsMenuItemProLayout[] = [\n            {\n              icon: 'Toc:vts',\n              title: '',\n              children: [...data]\n            }\n          ];\n          this.displayMenuData = [...newMenuData];\n        }\n        else {\n          this.displayMenuData = [...data];\n        }\n      });\n\n    // on change ix fixed\n    this.prolayoutService.fixedSiderChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isFixed: boolean) => {\n        this.isFixedSider = isFixed;\n        this.handleChangeFixedStatus(this.isFixedHeader, isFixed);\n      });\n    this.prolayoutService.fixedHeaderChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isFixed: boolean) => {\n        this.isFixedHeader = isFixed;\n        this.handleChangeFixedStatus(isFixed, this.isFixedSider);\n        this.cdf.detectChanges();\n      });\n\n    // onchange use split menu\n    this.prolayoutService.useSplitMenuChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isMenuSplitted: boolean) => {\n        this.useSplitMenu = isMenuSplitted;\n        if (isMenuSplitted) {\n          if (this.vtsTitle) {\n            if(!this.vtsUseExpandHeaderMenu){\n              // add a wrapper item to create a menu button\n              let newMenuData: VtsMenuItemProLayout[] = [\n                {\n                  icon: 'Toc:vts',\n                  title: '',\n                  children: [...this.vtsMenuData]\n                }\n              ];\n              this.displayMenuData = [...newMenuData];\n            }\n            else {\n              this.displayMenuData = [...this.vtsMenuData];\n            }\n          }\n        }\n        this.cdf.detectChanges();\n      });\n\n    // on change collapsed sider\n    this.prolayoutService.collapSiderChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isCollapsed: boolean) => {\n        this.isCollapsedSider = isCollapsed;\n        if(this.vtsUseExpandHeaderMenu){\n          setTimeout(() => {\n            this.updateMaxPosScroll();           \n            // when toggle sider, the scrollWidth changed so need to update position\n            if(this.maxScrollPos == 0){\n              this.posScroll = 0;\n              this.scrollListEle!.style.transform = `translate(${this.posScroll}px, 0)`;\n              this.scrollListEle!.style.transition = 'all 0.15s'; // make animation smooth\n            }\n            else {\n              if(this.scrollListEle){\n                if(this.posScroll < 0 && Math.abs(this.posScroll) < this.maxScrollPos){\n                  this.posScroll = this.posScroll + SIDER_WIDTH >= 0 ? 0 : this.posScroll + SIDER_WIDTH\n                }\n                this.scrollListEle!.style.transform = `translate(${this.posScroll}px, 0)`;\n              }\n            }\n          }, 350); // sider toggle after 0.3s\n        }\n        this.cdf.detectChanges();\n      });\n\n    // on change notification count\n    this.prolayoutService.notificationChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((count: number) => {\n        this.notificationCount = count;\n        this.cdf.detectChanges();\n      });\n\n    // on change show sider\n    this.prolayoutService.visibilitySiderChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isShow: boolean) => {\n        this.isShowSider = isShow;\n        setTimeout(() => {\n          this.updateMaxPosScroll(); \n        }, 350); // sider toggle after 0.3s\n        this.cdf.detectChanges();\n      });\n\n    // listen for changes in size of current window\n    this.breakpointService\n      .observe([Breakpoints.Small, Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe(result => {\n        const breakpoints = result.breakpoints;\n        if (breakpoints[Breakpoints.Small]) {\n          this.windowSize = 'small';\n          this.isCollapsedSider = true;\n        } else if (breakpoints[Breakpoints.Medium]) {\n          this.windowSize = 'medium';\n          this.isCollapsedSider = true;\n        } else if (breakpoints[Breakpoints.Large] || breakpoints[Breakpoints.XLarge]) {\n          this.windowSize = 'large';\n          this.isCollapsedSider = false;\n        }\n        this.prolayoutService.onChangeCollapedSider(this.isCollapsedSider);\n        setTimeout(() => {\n          this.updateMaxPosScroll(); \n         }, 350); // sider toggle after 0.3s\n        this.cdf.detectChanges();\n      });\n\n      this.themeService.theme$.subscribe((d: VtsTheme | null) => {\n        this.currentTheme = d;\n        this.cdf.detectChanges();\n      });\n  }\n  currentTheme: VtsTheme | null = null;\n  /**\n   * destroy all subscription of prolayout service\n   */\n  destroySubscriptions() {\n    this.onDestroy$.next();\n    this.onDestroy$.complete();\n  }\n\n  ngAfterViewInit(): void {\n    if(this.vtsUseExpandHeaderMenu){\n      this.enableExpandHeaderScroll();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const { title, vtsUseExpandHeaderMenu } = changes;\n    if (this.useSplitMenu) {\n      if (this.vtsTitle || (title && title.currentValue)) {\n        if(!this.vtsUseExpandHeaderMenu){\n          // add a wrapper item to create a menu button\n          let newMenuData: VtsMenuItemProLayout[] = [\n            {\n              icon: 'Toc:vts',\n              title: '',\n              children: [...this.vtsMenuData]\n            }\n          ];\n          this.displayMenuData = [...newMenuData];\n        }\n        else {\n          this.displayMenuData = [...this.vtsMenuData];\n        }\n      }\n    }\n    if(vtsUseExpandHeaderMenu && vtsUseExpandHeaderMenu.currentValue == true){\n      // wait until the list's parent finished render\n      setTimeout(() => {      \n        this.enableExpandHeaderScroll();\n      });\n    }\n  }\n\n  /**\n   * whenever vtsUseExpandHeaderMenu = true, check max scroll limit and add listener for wheel event\n   */\n  private enableExpandHeaderScroll(){\n    const scrollListEleParent = this.document.querySelector('.horizontal-menu-expand-wrap');\n    if(scrollListEleParent){    \n      this.scrollListEle = <HTMLElement>scrollListEleParent.firstChild;\n      this.updateMaxPosScroll();    \n      this.addWheelListerHeader(scrollListEleParent);\n    }\n    else {\n      console.error(`scrollable parent with class 'horizontal-menu-expand-wrap' of menu header doesn't exist`);\n    }\n  }\n\n  handleChangeFixedStatus(isFixedHeader: boolean, isFixedSider: boolean) {\n    if (isFixedHeader && !isFixedSider) {\n      this.showLogo = true;\n    } else if (!isFixedHeader && !isFixedSider) {\n      this.showLogo = true;\n    } else if (!isFixedHeader && isFixedSider) {\n      this.showLogo = false;\n    }\n    if (isFixedHeader && !isFixedSider) {\n      if (isFixedHeader && !this.isFixedSider) {\n        this.showLogo = true;\n      } else if (!isFixedHeader && !this.isFixedSider) {\n        this.showLogo = true;\n      } else if (!isFixedHeader && this.isFixedSider) {\n        this.showLogo = false;\n      }\n    } else if (!isFixedHeader && isFixedSider) {\n      if (this.isFixedHeader && !isFixedSider) {\n        this.showLogo = true;\n      } else if (!this.isFixedHeader && !isFixedSider) {\n        this.showLogo = true;\n      } else if (!this.isFixedHeader && isFixedSider) {\n        this.showLogo = false;\n      }\n    }\n  }\n\n  onClickAvatarMenuItem(item: VtsAvatarMenu): void {\n    this.router.navigateByUrl(item.url);\n  }\n\n  toggleSider() {\n    if(this.document.activeElement){\n      (<HTMLElement>this.document.activeElement).blur();\n    }\n    this.prolayoutService.onChangeCollapedSider(!this.isCollapsedSider);\n  }\n\n  openNotificationPane() {\n    this.prolayoutService.openNotificationPane(this.vtsNotificationConfig.type);\n  }\n\n  toggleFullScreen() {\n    if (this.isFullScreen) {\n      this.document.exitFullscreen();\n    } else {\n      this.document.documentElement.requestFullscreen();\n    }\n    this.isFullScreen = !this.isFullScreen;\n  }\n\n  lockScreen() {\n    this.lockUiService.showInputPassword();\n  }\n\n  /**\n   * add wheel event's listener for header menu\n   */\n  private addWheelListerHeader(scrollListEleParent: Element){\n    fromEvent<WheelEvent>(scrollListEleParent!, 'wheel').pipe(takeUntil(this.onDestroy$)).subscribe(event => {\n      this.onWheel(event);\n    })\n  }\n\n  private onWheel = (e: WheelEvent): void => {\n    if(this.maxScrollPos <= 0){\n      return;\n    }\n    e.preventDefault()\n    const { deltaY } = e;\n    if(deltaY > 0){\n      // wheeling to the right\n      if(Math.abs(this.posScroll - OFFSET_SCROLL) <= this.maxScrollPos){\n        this.posScroll -= OFFSET_SCROLL;\n        this.updateScrollListPos();\n      }\n    }\n    else {\n      // wheeling to the left\n      if(this.posScroll + OFFSET_SCROLL <= 0){\n        this.posScroll += OFFSET_SCROLL;\n        this.updateScrollListPos();\n      }\n    }\n  };\n\n  private lockAnimation(): void {\n    if (this.lockAnimationTimeoutId === -1) {\n      this.ngZone.runOutsideAngular(() => {\n        this.scrollListEle!.style.transition = 'none';\n        this.lockAnimationTimeoutId = setTimeout(() => {\n          this.scrollListEle!.style.transition = '';\n          this.lockAnimationTimeoutId = -1;\n        }, CSS_TRANSFORM_TIME);\n      });\n    }\n  }\n\n  private updateMaxPosScroll(){\n    const scrollListEleParent = this.document.querySelector('.horizontal-menu-expand-wrap');\n    if(scrollListEleParent){    \n      this.scrollListEle = <HTMLElement>scrollListEleParent.firstChild;\n      this.maxScrollPos = this.scrollListEle!.scrollWidth - this.scrollListEle!.clientWidth;\n    }\n  }\n\n  private updateScrollListPos(){\n    this.ngZone.runOutsideAngular(() => {\n      if(this.scrollListEle){\n        this.scrollListEle.style.transform = `translate(${this.posScroll}px, 0)`;\n      }\n      this.lockAnimation();\n    })\n  }\n\n  onChangeVisibleNotifyCtx(val: boolean){\n    this.visibleChangeCtxNotify.next(val);\n  }\n}\n","<div vts-row class=\"vts-prolayout-header-wrapper flex-nowrap\">\n    <!-- class 'logo-fixed-header' is added when sider is visible -->\n    <div vts-row vts-col [ngClass]=\"{'logo-fixed-header': !isFixedHeader && isShowSider}\" class=\"flex-nowrap\" *ngIf=\"showLogo\">\n        <div vts-col class=\"logo-header vts-logo\" *ngIf=\"!isCollapsedSider || !isShowSider\" [style.backgroundImage]=\"'url(' + vtsLogoUrl + ')'\"></div>\n        <!-- this button will be visible when the sider is -->\n        <div vts-col vts-row [vtsAlign]=\"'middle'\" class=\"btn-toggle-sider\" *ngIf=\"!isFixedHeader && isShowSider\">\n            <button vts-button vtsType=\"text\" class=\"trigger\" (click)=\"toggleSider()\">\n                <i vts-icon vtsType=\"AlignJustify:vts\"></i>\n            </button>\n        </div>\n    </div>\n    <div vts-row vts-col vtsFlex=\"auto\" class=\"header-main flex-nowrap overflow-hidden\">\n        <!-- Title with menu -->\n        <div vts-col class=\"title-container overflow-hidden\" vtsFlex=\"auto\" [class]=\"{'light-blue-theme' : currentTheme === 'light-blue'}\">\n            <ng-container *ngIf=\"vtsTitle\">\n                <span class=\"application-title\" title=\"{{ vtsTitle }}\">\n                    {{ vtsTitle }}\n                </span>\n            </ng-container>\n            <ng-container *ngIf=\"useSplitMenu\">\n                <!-- horizontal header menu -->\n                <ng-container *ngIf=\"vtsUseExpandHeaderMenu; else collapsedHeaderMenuTpl\">\n                    <div class=\"horizontal-menu-expand-wrap overflow-hidden\" vtsFlex=\"auto\" [class]=\"{'horizontal-menu-expand-wrap-with-title': !!vtsTitle}\">\n                        <div class=\"horizontal-menu-expand-list-scroll flex-nowrap\" vts-row>\n                            <ng-container *ngIf=\"displayMenuData.length\">\n                                <ng-container *ngFor=\"let item of displayMenuData\">\n                                    <vts-dropdown-menu-item-horizontal [vtsActiveRootMenuHeader]=\"vtsActiveRootMenuHeader\" [vtsMenuItem]=\"item\" [level]=\"1\"></vts-dropdown-menu-item-horizontal>\n                                </ng-container>\n                            </ng-container>\n                        </div>\n                    </div>\n                </ng-container>\n                <!-- collapsed header menu -->\n                <ng-template #collapsedHeaderMenuTpl>\n                    <ng-container *ngIf=\"displayMenuData.length && displayMenuData[0].children && displayMenuData[0].children.length > 0\"> \n                        <ul vts-menu vtsTheme=\"dark\" vtsMode=\"horizontal\" class=\"header-menu\">\n                            <ng-container *ngFor=\"let item of displayMenuData\">\n                                <vts-prolayout-menu-item-horizontal [vtsMenuItem]=\"item\"></vts-prolayout-menu-item-horizontal>\n                            </ng-container>\n                        </ul>\n                    </ng-container>\n                </ng-template>\n            </ng-container>\n        </div>\n        <div vts-col vts-row class=\"avatar-container flex-nowrap\">\n            <div class=\"icon-utils-container flex-nowrap\" vts-col vts-row>\n                <!-- Search -->\n                <div vts-col vts-row [vtsAlign]=\"'middle'\" class=\"icons-utils\" *ngIf=\"vtsVisibilityConfig.searchIcon\">\n                    <i vts-icon vtsType=\"Search\" class=\"cursor-pointer\"></i>\n                </div>\n                <!-- Full screen -->\n                <div vts-col vts-row [vtsAlign]=\"'middle'\" class=\"icons-utils\" *ngIf=\"vtsVisibilityConfig.fullScreen\">\n                    <i vts-icon vtsType=\"FullScreen:vts\" class=\"cursor-pointer\" (click)=\"toggleFullScreen()\"></i>\n                </div>\n                <!-- Block UI -->\n                <div vts-col vts-row [vtsAlign]=\"'middle'\" class=\"icons-utils\" *ngIf=\"vtsVisibilityConfig.lockScreen\">\n                    <i vts-icon vtsType=\"Lock:vts\" class=\"cursor-pointer\" (click)=\"lockScreen()\"></i>\n                </div>\n                <!-- Notification -->\n                <div vts-col vts-row [vtsAlign]=\"'middle'\" class=\"icons-utils\" [ngClass]=\"{'notification-icon': notificationCount > 0}\" *ngIf=\"vtsVisibilityConfig.notifyIcon\">\n                    <!-- no badge and openable -->\n                    <ng-container *ngIf=\"notificationCount === 0; else hasNotification\">\n                        <ng-container [ngSwitch]=\"vtsNotificationConfig.type\">\n                            <ng-container *ngSwitchCase=\"'drawer'\">\n                                <i vts-icon vtsType=\"Notifications:vts\" class=\"cursor-pointer\" (click)=\"openNotificationPane()\"></i>\n                            </ng-container>\n                            <ng-container *ngSwitchDefault>\n                                <!-- if has vtsMenuTemplate -->\n                                <i vts-icon vtsType=\"Notifications:vts\" vts-dropdown vtsTrigger=\"click\" (vtsVisibleChange)=\"onChangeVisibleNotifyCtx($event)\" [vtsDropdownMenu]=\"defaultMenu\" class=\"cursor-pointer\"></i>\n                                <vts-dropdown-menu #defaultMenu=\"vtsDropdownMenu\">\n                                    <ng-container *ngTemplateOutlet=\"vtsMenuTemplate\">       \n                                        {{vtsMenuTemplate}}     \n                                    </ng-container>\n                                </vts-dropdown-menu>\n                            </ng-container>\n                        </ng-container>\n                    </ng-container>\n                    <ng-template #hasNotification>\n                        <!-- render notification pane based on type, default to be a menu context -->\n                        <ng-container [ngSwitch]=\"vtsNotificationConfig.type\">\n                            <ng-container *ngSwitchCase=\"'drawer'\">\n                                <vts-badge [vtsCount]=\"notificationCount\" [vtsOverflowCount]=\"vtsNotificationConfig.overflowCount\">\n                                    <i vts-icon vtsType=\"Notifications:vts\" class=\"cursor-pointer\" (click)=\"openNotificationPane()\"></i>\n                                </vts-badge>\n                            </ng-container>\n                            <ng-container *ngSwitchDefault>\n                                <!-- if has vtsMenuTemplate -->\n                                <vts-badge [vtsCount]=\"notificationCount\" [vtsOverflowCount]=\"vtsNotificationConfig.overflowCount\" *ngIf=\"vtsMenuTemplate\">\n                                    <i vts-icon vtsType=\"Notifications:vts\" vts-dropdown vtsTrigger=\"click\" (vtsVisibleChange)=\"onChangeVisibleNotifyCtx($event)\" [vtsDropdownMenu]=\"defaultMenu\" class=\"cursor-pointer\"></i>\n                                    <vts-dropdown-menu #defaultMenu=\"vtsDropdownMenu\">\n                                        <ng-container *ngTemplateOutlet=\"vtsMenuTemplate\">       \n                                            {{vtsMenuTemplate}}     \n                                        </ng-container>\n                                    </vts-dropdown-menu>\n                                </vts-badge>\n                            </ng-container>\n                        </ng-container>\n                    </ng-template>\n                </div>\n            </div>\n            <!-- avatar with menu dropdown -->\n            <div vts-row vtsAlign=\"middle\" vts-col class=\"avatar-main cursor-pointer flex-nowrap\" vtsTrigger=\"click\" vts-dropdown [vtsDropdownMenu]=\"menuAvatar\" *ngIf=\"vtsAvatarMenu.length >= 0; else withoutDropdown\">\n                <ng-container *ngIf=\"vtsAvatar.imgUrl; else noImgAvatar\">\n                    <vts-avatar vts-col class=\"avatar-user\" vtsIcon=\"user\" [vtsSrc]=\"vtsAvatar.imgUrl\"></vts-avatar>\n                </ng-container>\n                <ng-template #noImgAvatar>\n                    <i vts-icon vtsType=\"AccountCircle:vts\" class=\"no-avatar\"></i>\n                </ng-template>\n                <div vts-col style=\"margin-left: 5px;\" *ngIf=\"windowSize == 'large'\">\n                    <div class=\"username\">\n                        {{ vtsAvatar.name }}\n                        <i vts-icon vtsType=\"ArrowMiniDown:vts\"></i>\n                    </div>\n                    <div class=\"subname\">\n                        {{ vtsAvatar.subname }}\n                    </div>\n                </div>\n            </div>\n            <!-- avatar without menu dropdown -->\n            <ng-template #withoutDropdown>\n                <div vts-row vtsAlign=\"middle\" vts-col class=\"cursor-pointer\">\n                    <vts-avatar vts-col class=\"avatar-user\" vtsIcon=\"user\" [vtsSrc]=\"vtsAvatar.imgUrl\"></vts-avatar>\n                    <div vts-col style=\"margin-left: 5px;\" *ngIf=\"windowSize == 'large'\">\n                        <div class=\"username\">\n                            {{ vtsAvatar.name }}\n                        </div>\n                        <div class=\"subname\">\n                            {{ vtsAvatar.subname }}\n                        </div>\n                    </div>\n                </div>\n            </ng-template>\n        </div>\n        <vts-dropdown-menu #menuAvatar=\"vtsDropdownMenu\">\n            <ng-container *ngIf=\"!vtsMenuAvatarTemplateRef; else withTemplate\">\n                <ul vts-menu vtsSelectable>\n                    <li vts-menu-item *ngFor=\"let item of vtsAvatarMenu\" (click)=\"onClickAvatarMenuItem(item)\">{{ item.label }}</li>\n                </ul>\n            </ng-container>\n            <ng-template #withTemplate>\n                <ng-container *ngTemplateOutlet=\"vtsMenuAvatarTemplateRef\">\n                    {{ vtsMenuAvatarTemplateRef }}\n                </ng-container>\n            </ng-template>\n        </vts-dropdown-menu>\n    </div>\n</div>","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  OnInit,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { VtsBreakpointKey } from '@ui-vts-kit/ng-vts/core/services';\n\n@Component({\n  selector: '[vts-prolayout-sider-trigger]',\n  exportAs: 'vtsProlayoutSiderTrigger',\n  preserveWhitespaces: false,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-container *ngIf=\"isZeroTrigger\">\n      <ng-template [ngTemplateOutlet]=\"vtsZeroTrigger || defaultZeroTrigger\"></ng-template>\n    </ng-container>\n    <ng-container *ngIf=\"isNormalTrigger\">\n      <ng-template [ngTemplateOutlet]=\"vtsTrigger || defaultTrigger\"></ng-template>\n    </ng-container>\n    <ng-template #defaultTrigger>\n      <i vts-icon [vtsType]=\"vtsCollapsed ? 'right' : 'left'\" *ngIf=\"!vtsReverseArrow\"></i>\n      <i vts-icon [vtsType]=\"vtsCollapsed ? 'left' : 'right'\" *ngIf=\"vtsReverseArrow\"></i>\n    </ng-template>\n    <ng-template #defaultZeroTrigger>\n      <i vts-icon vtsType=\"List\"></i>\n    </ng-template>\n  `,\n  host: {\n    '[class.vts-prolayout-sider-trigger]': 'isNormalTrigger',\n    '[style.width]': 'isNormalTrigger ? siderWidth : null',\n    '[class.vts-prolayout-sider-zero-width-trigger]': 'isZeroTrigger',\n    '[class.vts-prolayout-sider-zero-width-trigger-right]': 'isZeroTrigger && vtsReverseArrow',\n    '[class.vts-prolayout-sider-zero-width-trigger-left]': 'isZeroTrigger && !vtsReverseArrow'\n  }\n})\nexport class VtsSiderTriggerComponent implements OnChanges, OnInit {\n  @Input() vtsCollapsed = false;\n  @Input() vtsReverseArrow = false;\n  @Input() vtsZeroTrigger: TemplateRef<void> | null = null;\n  @Input() vtsTrigger: TemplateRef<void> | undefined | null = undefined;\n  @Input() matchBreakPoint = false;\n  @Input() vtsCollapsedWidth: number | null = null;\n  @Input() siderWidth: string | null = null;\n  @Input() vtsBreakpoint: VtsBreakpointKey | null = null;\n  isZeroTrigger = false;\n  isNormalTrigger = false;\n  updateTriggerType(): void {\n    this.isZeroTrigger =\n      this.vtsCollapsedWidth === 0 &&\n      ((this.vtsBreakpoint && this.matchBreakPoint) || !this.vtsBreakpoint);\n    this.isNormalTrigger = this.vtsCollapsedWidth !== 0;\n  }\n  ngOnInit(): void {\n    this.updateTriggerType();\n  }\n  ngOnChanges(): void {\n    this.updateTriggerType();\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Input,\n  OnInit,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { VtsMenuItemProLayout } from './pro-layout.types';\nimport { VtsDestroyService } from '@ui-vts-kit/ng-vts/core/services';\nimport { takeUntil } from 'rxjs/operators';\nimport { VtsProlayoutService } from './pro-layout.service';\nimport { VtsSubMenuComponent } from '@ui-vts-kit/ng-vts/menu';\nimport { timer } from 'rxjs';\n\n@Component({\n  selector: 'vts-prolayout-menu-item',\n  templateUrl: 'menu-item.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  preserveWhitespaces: false,\n  providers: [VtsDestroyService],\n  host: {\n    '[attr.level]': 'level'\n  }\n})\nexport class VtsProlayoutMenuItemComponent implements OnInit, AfterViewInit {\n  @Input() vtsMenuItem: VtsMenuItemProLayout = {\n    title: '',\n    children: [],\n    isSelected: false\n  };\n  @Input() level = 1;\n  defaultIcon: string = 'AddDoutone:vts';\n  currentUrl: string = '';\n  menuLeafTooltipTrigger: boolean = false;\n  submenuTooltipTrigger: boolean = false;\n\n  readonly collapsed$ = this.prolayoutService.collapSiderChange$;\n\n  @ViewChild('liRef') ele: ElementRef<HTMLLIElement> | VtsSubMenuComponent | null = null;\n\n  constructor(\n    private router: Router,\n    private cdf: ChangeDetectorRef,\n    private vtsDestroyService: VtsDestroyService,\n    private prolayoutService: VtsProlayoutService\n  ) {\n    this.currentUrl = this.router.url;\n    this.router.events.pipe(takeUntil(this.vtsDestroyService)).subscribe(evt => {\n      if (evt instanceof NavigationEnd) {\n        this.currentUrl = evt.url;\n        this.cdf.detectChanges();\n      }\n    });\n  }\n\n  ngOnInit() {\n    this.prolayoutService.fixedSiderChange$.pipe(takeUntil(this.vtsDestroyService)).subscribe(isFixed => {\n      this.isFixedSider = isFixed;\n      // this subscription should be destroy when item re-creates\n      // timer is used to wait after rendering finished\n      timer(500).pipe(takeUntil(this.vtsDestroyService)).subscribe(() => {\n          this.toggleTooltipCombine();\n      })\n    });\n    this.prolayoutService.collapSiderChange$.pipe(takeUntil(this.vtsDestroyService)).subscribe(isCollapsed => {\n      this.isSiderCollapsed = isCollapsed;\n      timer(500).pipe(takeUntil(this.vtsDestroyService)).subscribe(() => {\n        if(!isCollapsed){\n          this.toggleTooltipCombine();\n        }\n        // if sider is closed, only root parent has 'title' attribute as tooltip\n        else {\n          if(this.ele instanceof ElementRef){\n            this.menuLeafTooltipTrigger = false;\n          }\n          else if(this.ele instanceof VtsSubMenuComponent){\n            this.submenuTooltipTrigger = false;\n          }\n          this.cdf.detectChanges()\n        }\n      })\n    })\n  }\n\n  isSiderCollapsed: boolean = false;\n  isFixedSider: boolean = false;\n\n  toggleTooltipOnLeaf(){\n    if((<ElementRef>this.ele).nativeElement.scrollWidth > (<ElementRef>this.ele).nativeElement.offsetWidth){\n      if(this.isSiderCollapsed){\n        this.menuLeafTooltipTrigger = false;\n      }\n      else this.menuLeafTooltipTrigger = true;\n    }\n    else {\n      this.menuLeafTooltipTrigger = false;\n    }\n    this.cdf.detectChanges();\n  }\n\n  toggleTooltipOnSubmenu(){\n    if((<VtsSubMenuComponent>this.ele)?.cdkOverlayOrigin?.nativeElement.scrollWidth > (<VtsSubMenuComponent>this.ele)?.cdkOverlayOrigin?.nativeElement.offsetWidth){\n      if(this.isSiderCollapsed){\n        this.submenuTooltipTrigger = false;  \n      }\n      else this.submenuTooltipTrigger = true;\n    }\n    else {\n      this.submenuTooltipTrigger = false;\n    }\n    this.cdf.detectChanges();\n  }\n\n  toggleTooltipCombine(){\n    if(this.ele instanceof ElementRef){\n      this.toggleTooltipOnLeaf();\n    }\n    else if(this.ele instanceof VtsSubMenuComponent){\n      this.toggleTooltipOnSubmenu();\n    }\n  }\n\n  ngAfterViewInit(): void {\n    if(this.ele instanceof ElementRef){\n      this.toggleTooltipOnLeaf();\n    }\n    if(this.ele instanceof VtsSubMenuComponent){\n      this.toggleTooltipOnSubmenu();\n      this.ele.vtsOpenChange.pipe(takeUntil(this.vtsDestroyService)).subscribe(isOpen => {\n        if(isOpen){\n          this.prolayoutService.submenuItemOpenChange$.next(true);\n        }\n      })\n    }\n    this.prolayoutService.submenuItemOpenChange$.pipe(takeUntil(this.vtsDestroyService)).subscribe(() => {\n      timer(500).pipe(takeUntil(this.vtsDestroyService)).subscribe(() => {\n        this.toggleTooltipCombine();\n      })\n    })\n  }\n}\n","<ng-container *ngIf=\"vtsMenuItem.children && vtsMenuItem.children.length > 0; else menuChild\">\n    <li vts-submenu vtsOpen [vtsTitle]=\"vtsMenuItem.title\" *ngIf=\"vtsMenuItem.isOpen; else closedMenu\" \n        [vtsTooltip]=\"(!submenuTooltipTrigger) ? null : vtsMenuItem.title\"\n        [vtsIcon]=\"vtsMenuItem.icon ? vtsMenuItem.icon : defaultIcon\">\n        <ul>\n            <ng-container *ngFor=\"let item of vtsMenuItem.children\">\n                <vts-prolayout-menu-item [vtsMenuItem]=\"item\" [level]=\"level + 1\"></vts-prolayout-menu-item>\n            </ng-container>\n        </ul>\n    </li>\n    <ng-template #closedMenu>\n        <li vts-submenu [vtsTitle]=\"vtsMenuItem.title\" #liRef\n            [vtsTooltip]=\"(!submenuTooltipTrigger) ? null : vtsMenuItem.title\"\n            [attr.title]=\"level == 1 && isSiderCollapsed ? vtsMenuItem.title: null\"\n            [vtsIcon]=\"vtsMenuItem.icon ? vtsMenuItem.icon : defaultIcon\">\n            <ul>\n                <ng-container *ngFor=\"let item of vtsMenuItem.children\">\n                    <vts-prolayout-menu-item [vtsMenuItem]=\"item\" [level]=\"level + 1\"></vts-prolayout-menu-item>\n                </ng-container>\n            </ul>\n        </li>\n    </ng-template>\n</ng-container>\n<ng-template #menuChild>\n    <ng-container *ngIf=\"menuLeafTooltipTrigger; else noTooltipLeaf\">\n        <li #liRef vts-menu-item [vtsSelected]=\"currentUrl == vtsMenuItem.url\" vts-tooltip class=\"item-tooltip\"\n            [vtsTooltipTitle]=\"vtsMenuItem.title\" routerLink=\"{{ vtsMenuItem.url }}\">\n            <ng-container *ngTemplateOutlet=\"leafIconTpl\"></ng-container>\n            {{vtsMenuItem.title}}\n        </li>\n    </ng-container>\n    <ng-template #noTooltipLeaf>\n        <li #liRef vts-menu-item [vtsSelected]=\"currentUrl == vtsMenuItem.url\" routerLink=\"{{ vtsMenuItem.url }}\" class=\"item-no-tooltip\" [attr.title]=\"level == 1 && isSiderCollapsed ? vtsMenuItem.title: null\">\n            <ng-container *ngTemplateOutlet=\"leafIconTpl\"></ng-container>\n            {{vtsMenuItem.title}}\n        </li>\n    </ng-template>\n</ng-template>\n<ng-template #leafIconTpl>\n    <ng-container *ngIf=\"vtsMenuItem.icon || (!vtsMenuItem.icon && level == 1)\">\n        <ng-container *ngIf=\"vtsMenuItem.icon; else defaultRootIconTpl\">\n            <i vts-icon [vtsType]=\"vtsMenuItem.icon\"></i>\n        </ng-container>\n        <ng-template #defaultRootIconTpl>\n            <i vts-icon [vtsType]=\"defaultIcon\"></i>\n        </ng-template>\n    </ng-container>\n</ng-template>","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Platform } from '@angular/cdk/platform';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ViewChild,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport {\n  VtsBreakpointKey,\n  VtsBreakpointService,\n  siderResponsiveMap\n} from '@ui-vts-kit/ng-vts/core/services';\nimport { BooleanInput } from '@ui-vts-kit/ng-vts/core/types';\nimport { inNextTick, InputBoolean, toCssPixel } from '@ui-vts-kit/ng-vts/core/util';\nimport { VtsMenuDirective } from '@ui-vts-kit/ng-vts/menu';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { VtsProlayoutService } from './pro-layout.service';\nimport { VtsMenuItemProLayout } from './pro-layout.types';\n\n@Component({\n  selector: 'vts-prolayout-sider',\n  exportAs: 'vtsProlayoutSider',\n  preserveWhitespaces: false,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"vts-prolayout-sider-children\">\n      <div\n        class=\"logo-sider vts-logo\"\n        *ngIf=\"!isFixedHeader && isFixedSider\"\n        [style.backgroundImage]=\"'url(' + vtsLogoUrl + ')'\"\n      ></div>\n      <ul vts-menu vtsMode=\"inline\" class=\"sider-menu\">\n        <ng-container *ngFor=\"let item of menuData\">\n          <vts-prolayout-menu-item [vtsMenuItem]=\"item\"></vts-prolayout-menu-item>\n        </ng-container>\n        <ng-container *ngIf=\"vtsAdditionalButtonTpl\">\n          <div class=\"additional-button\">\n            <ng-container [ngTemplateOutlet]=\"vtsAdditionalButtonTpl\"></ng-container>\n          </div>\n        </ng-container>\n      </ul>\n    </div>\n    <div\n      *ngIf=\"vtsCollapsible && vtsTrigger !== null\"\n      vts-prolayout-sider-trigger\n      [matchBreakPoint]=\"matchBreakPoint\"\n      [vtsCollapsedWidth]=\"vtsCollapsedWidth\"\n      [vtsCollapsed]=\"vtsCollapsed\"\n      [vtsBreakpoint]=\"vtsBreakpoint\"\n      [vtsReverseArrow]=\"vtsReverseArrow\"\n      [vtsTrigger]=\"vtsTrigger\"\n      [vtsZeroTrigger]=\"vtsZeroTrigger\"\n      [siderWidth]=\"widthSetting\"\n      (click)=\"setCollapsed(!vtsCollapsed)\"\n    ></div>\n  `,\n  host: {\n    '[class.vts-prolayout-sider-zero-width]': `vtsCollapsed && vtsCollapsedWidth === 0`,\n    '[class.vts-prolayout-sider-collapsed]': `vtsCollapsed`,\n    '[style.flex]': 'flexSetting',\n    '[style.maxWidth]': 'widthSetting',\n    '[style.minWidth]': 'widthSetting',\n    '[style.width]': 'widthSetting'\n  },\n  styles: [\n    `\n      .logo-sider {\n        width: 120px;\n        height: 63px;\n        margin: 16px 28px 0 24px;\n        float: left;\n        background-repeat: no-repeat;\n        background-size: contain;\n      }\n\n      .additional-button {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n      }\n    `\n  ]\n})\nexport class VtsSiderComponent implements OnInit, OnDestroy, OnChanges, AfterContentInit {\n  static ngAcceptInputType_vtsReverseArrow: BooleanInput;\n  static ngAcceptInputType_vtsCollapsible: BooleanInput;\n  static ngAcceptInputType_vtsCollapsed: BooleanInput;\n\n  private destroy$ = new Subject();\n  @ViewChild(VtsMenuDirective)\n  vtsMenuDirective: VtsMenuDirective | null = null;\n  @Output() readonly vtsCollapsedChange = new EventEmitter();\n  @Input() vtsWidth: string | number = 200;\n  vtsTheme: string = 'light';\n  @Input() vtsCollapsedWidth = 70;\n  @Input() vtsBreakpoint: VtsBreakpointKey | null = null;\n  @Input() vtsZeroTrigger: TemplateRef<void> | null = null;\n  @Input() vtsTrigger: TemplateRef<void> | undefined | null = undefined;\n  @Input() @InputBoolean() vtsReverseArrow = false;\n  @Input() @InputBoolean() vtsCollapsible = false;\n  vtsCollapsed = false;\n  @Input() vtsUseDarkMode: boolean = false;\n  @Input() vtsLogoUrl: string = '';\n  @Input() vtsAdditionalButtonTpl: TemplateRef<void> | null = null;\n  menuHeader: VtsMenuItemProLayout[] = []; // if splitmenu = true -> merge both and display in sider\n  menuSider: VtsMenuItemProLayout[] = [];\n  menuData: VtsMenuItemProLayout[] = []; // use for displaying\n  useSplitMenu: boolean = true;\n  isFixedHeader: boolean = false;\n  isFixedSider: boolean = false;\n  matchBreakPoint = false;\n  flexSetting: string | null = null;\n  widthSetting: string | null = null;\n\n  private fixedHeaderSubscription = Subscription.EMPTY;\n  private fixedSiderSubscription = Subscription.EMPTY;\n  private splitMenuSubscription = Subscription.EMPTY;\n  private menuHeaderSubscription = Subscription.EMPTY;\n  private menuSiderSubscription = Subscription.EMPTY;\n  private collapsedSiderSubscription = Subscription.EMPTY;\n\n  updateStyleMap(): void {\n    this.widthSetting = this.vtsCollapsed\n      ? `${this.vtsCollapsedWidth}px`\n      : toCssPixel(this.vtsWidth);\n    this.flexSetting = `0 0 ${this.widthSetting}`;\n    this.cdr.markForCheck();\n  }\n\n  updateMenuInlineCollapsed(): void {\n    if (\n      this.vtsMenuDirective &&\n      this.vtsMenuDirective.vtsMode === 'inline' &&\n      this.vtsCollapsedWidth !== 0\n    ) {\n      this.closeAllSubmenuWhenCollapsed();\n      this.vtsMenuDirective.setInlineCollapsed(this.vtsCollapsed);\n    }\n  }\n\n  setCollapsed(collapsed: boolean): void {\n    if (collapsed !== this.vtsCollapsed) {\n      this.vtsCollapsed = collapsed;\n      this.vtsCollapsedChange.emit(collapsed);\n      this.updateMenuInlineCollapsed();\n      this.updateStyleMap();\n      this.cdr.markForCheck();\n    }\n  }\n\n  constructor(\n    private platform: Platform,\n    private cdr: ChangeDetectorRef,\n    private breakpointService: VtsBreakpointService,\n    private elementRef: ElementRef,\n    private prolayoutService: VtsProlayoutService,\n    private cdf: ChangeDetectorRef\n  ) {\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-prolayout-sider');\n  }\n\n  ngOnInit(): void {\n    this.updateStyleMap();\n    console.log(this.vtsAdditionalButtonTpl);\n\n    if (this.platform.isBrowser) {\n      this.breakpointService\n        .subscribe(siderResponsiveMap, true)\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(map => {\n          const breakpoint = this.vtsBreakpoint;\n          if (breakpoint) {\n            inNextTick().subscribe(() => {\n              this.matchBreakPoint = !map[breakpoint];\n              this.setCollapsed(this.matchBreakPoint);\n              this.cdr.markForCheck();\n            });\n          }\n        });\n    }\n\n    // on change ix fixed\n    this.fixedSiderSubscription = this.prolayoutService.fixedSiderChange$.subscribe(\n      (isFixed: boolean) => {\n        this.isFixedSider = isFixed;\n      }\n    );\n    this.fixedHeaderSubscription = this.prolayoutService.fixedHeaderChange$.subscribe(\n      (isFixed: boolean) => {\n        this.isFixedHeader = isFixed;\n        if (this.vtsCollapsed) {\n          this.vtsCollapsed = false;\n          this.updateMenuInlineCollapsed();\n          this.updateStyleMap();\n        }\n      }\n    );\n\n    // receive menus from container\n    this.menuHeaderSubscription = this.prolayoutService.menuHeaderChange$.subscribe(\n      (data: VtsMenuItemProLayout[]) => {\n        this.menuHeader = data;\n        this.handleChangesMenuLogic(this.useSplitMenu, data, this.menuSider);\n      }\n    );\n    this.menuSiderSubscription = this.prolayoutService.menuSiderChange$.subscribe(\n      (data: VtsMenuItemProLayout[]) => {\n        this.menuSider = data;\n        this.handleChangesMenuLogic(this.useSplitMenu, this.menuHeader, data);\n      }\n    );\n\n    // onchange use split menu\n    this.splitMenuSubscription = this.prolayoutService.useSplitMenuChange$.subscribe(\n      (isMenuSplitted: boolean) => {\n        this.useSplitMenu = isMenuSplitted;\n        this.handleChangesMenuLogic(isMenuSplitted, this.menuHeader, this.menuSider);\n      }\n    );\n\n    // on change collapsed sider\n    this.collapsedSiderSubscription = this.prolayoutService.collapSiderChange$.subscribe(\n      (isCollapsed: boolean) => {\n        if (!this.isFixedSider) {\n          this.vtsCollapsed = isCollapsed;\n          this.updateMenuInlineCollapsed();\n          this.updateStyleMap();\n        }\n      }\n    );\n  }\n\n  handleChangesMenuLogic(\n    isSplitted: boolean,\n    menuHeader: VtsMenuItemProLayout[],\n    menuSider: VtsMenuItemProLayout[]\n  ): void {\n    if (!isSplitted) {\n      this.menuData = [...menuHeader, ...menuSider];\n    } else {\n      this.menuData = [...menuSider];\n    }\n    this.cdf.detectChanges();\n  }\n\n  closeSubmenu(submenu: VtsMenuItemProLayout) {\n    submenu.isOpen = false;\n    if (submenu.children && submenu.children.length > 0) {\n      submenu.children.forEach(m => {\n        this.closeSubmenu(m);\n      });\n    }\n  }\n\n  closeAllSubmenuWhenCollapsed(): void {\n    const newMeudata: VtsMenuItemProLayout[] = JSON.parse(JSON.stringify(this.menuData));\n    newMeudata.forEach(menu => {\n      this.closeSubmenu(menu);\n    });\n\n    this.menuData = [...newMeudata];\n  }\n\n  /**\n   * destroy all subscription of prolayout service\n   */\n  destroySubscriptions() {\n    this.fixedSiderSubscription.unsubscribe();\n    this.fixedHeaderSubscription.unsubscribe();\n    this.menuHeaderSubscription.unsubscribe();\n    this.menuSiderSubscription.unsubscribe();\n    this.splitMenuSubscription.unsubscribe();\n    this.collapsedSiderSubscription.unsubscribe();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { vtsCollapsed, vtsCollapsedWidth, vtsWidth, vtsTheme } = changes;\n    if (vtsCollapsed || vtsCollapsedWidth || vtsWidth) {\n      this.updateStyleMap();\n    }\n    if (vtsCollapsed) {\n      this.updateMenuInlineCollapsed();\n    }\n    if (vtsTheme) {\n      console.log('theme changed: ', vtsTheme);\n    }\n  }\n\n  ngAfterContentInit(): void {\n    this.updateMenuInlineCollapsed();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n    this.destroySubscriptions();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  ElementRef,\n  OnDestroy,\n  OnInit,\n  Optional,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { VtsSiderComponent } from './sider.component';\n\n@Component({\n  selector: 'vts-prolayout',\n  exportAs: 'vtsProLayout',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n  template: `\n    <ng-content></ng-content>\n  `,\n  host: {\n    '[class.vts-prolayout-rtl]': `dir === 'rtl'`,\n    '[class.vts-prolayout-has-sider]': 'listOfVtsSiderComponent.length > 0'\n  }\n})\nexport class VtsProLayoutComponent implements OnDestroy, OnInit {\n  @ContentChildren(VtsSiderComponent)\n  listOfVtsSiderComponent!: QueryList<VtsSiderComponent>;\n\n  dir: Direction = 'ltr';\n  private destroy$ = new Subject<void>();\n\n  constructor(private elementRef: ElementRef, @Optional() private directionality: Directionality) {\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-prolayout');\n  }\n  ngOnInit(): void {\n    this.dir = this.directionality.value;\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","import {\n  Component,\n  OnInit,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ElementRef,\n  OnDestroy,\n  ChangeDetectorRef,\n  Input\n} from '@angular/core';\nimport { VtsProlayoutService } from './pro-layout.service';\nimport { VtsSettingDrawerHeaderTitle, VtsThemeColorType } from './pro-layout.types';\nimport { VtsThemeService, VtsTheme, VtsThemeItem } from '@ui-vts-kit/theme/services';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'vts-setting-drawer',\n  templateUrl: './setting-drawer.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  preserveWhitespaces: false\n})\nexport class VtsSettingDrawerComponent implements OnInit, OnDestroy {\n  constructor(\n    private elementRef: ElementRef,\n    private prolayoutService: VtsProlayoutService,\n    private themeService: VtsThemeService,\n    private cdr: ChangeDetectorRef\n  ) {\n    this.elementRef.nativeElement.classList.add('vts-setting-drawer');    \n  }\n\n  allThemes: VtsThemeItem[] = [];\n  currentTheme: VtsTheme | null = null;\n  isDarkMode: boolean = false;\n  open: boolean = false;\n  isInitialThemeColorLoaded: boolean = false;\n  listColors: VtsThemeColorType[] = [\n    {\n      isChecked: true,\n      color: '#E03',\n      value: 'default',\n      text: '#fff'\n    },\n    {\n      isChecked: false,\n      color: '#0053AD',\n      value: 'dark',\n      text: '#fff'\n    },\n    {\n      isChecked: false,\n      color: '#e040fb',\n      value: 'purple',\n      text: '#fff'\n    },\n    {\n      isChecked: false,\n      color: '#64b6f6',\n      value: 'blue',\n      text: '#fff'\n    },\n    {\n      isChecked: false,\n      color: '#ff7043',\n      value: 'orange',\n      text: '#fff'\n    },\n    {\n      isChecked: false,\n      color: '#388e3c',\n      value: 'green',\n      text: '#fff'\n    },\n    {\n      isChecked: false,\n      color: '#5570F1',\n      value: 'light-blue',\n      text: '#fff'\n    }\n  ];\n\n  isFixedHeader: boolean = false;\n  isFixedSider: boolean = false;\n  isShowHeader: boolean = true;\n  isShowSider: boolean = true;\n  isShowFooter: boolean = true;\n  useSplitMenu: boolean = true;\n  onDestroy$ = new Subject();\n\n  @Input() headerTitle: VtsSettingDrawerHeaderTitle = {\n    themeColor: \"Theme color\",\n    navigationMode: \"Navigation mode\",\n    fixedHeader: \"Fixed Header\",\n    fixedSider: \"Fixed Sider\",\n    splitMenu: \"Split menu\",\n    regionalSetting: \"Regional settings\",\n    showHeader: \"Header\",\n    showSider: \"Sider\",\n    showFooter: \"Footer\",\n  }\n\n  @Output() vtsSetThemeColor: EventEmitter<VtsTheme> = new EventEmitter<VtsTheme>();\n  @Output() initialThemeColor: EventEmitter<VtsTheme | null> = new EventEmitter<VtsTheme | null>();\n\n  ngOnInit() {\n    this.prolayoutService.fixedSiderChange$.next(this.isFixedSider);\n    this.prolayoutService.fixedHeaderChange$.next(this.isFixedHeader);\n    this.prolayoutService.settingDrawerStateChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((visible: boolean) => {\n        if (visible) {\n          this.openDrawer();\n        }\n        this.cdr.detectChanges();\n      });\n    this.themeService.allTheme$.subscribe((d: VtsThemeItem[]) => {\n      this.allThemes = d;\n    });\n    this.themeService.theme$.subscribe((d: VtsTheme | null) => {\n      if(!this.isInitialThemeColorLoaded && d){\n        this.initialThemeColor.emit(d);\n        this.isInitialThemeColorLoaded = true;\n      }\n      this.currentTheme = d;\n      this.isDarkMode = d === 'dark';\n      let cloneColors = [...this.listColors];\n      cloneColors.forEach(c => {\n        if(c.value == d){\n          c.isChecked = true;\n        }\n        else {\n          c.isChecked = false;\n        }\n      })\n      this.listColors = [...cloneColors];\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.onDestroy$.next();\n    this.onDestroy$.complete();\n  }\n\n  closeDrawer() {\n    this.open = false;\n    this.prolayoutService.onChangeSettingDrawerState(false);\n  }\n\n  openDrawer() {\n    this.open = true;\n  }\n\n  onChangeFixedSider(value: boolean) {\n    this.isFixedSider = value;\n    this.prolayoutService.onChangeFixedSider(value);\n    if (value && this.isFixedHeader) {\n      this.isFixedHeader = false;\n      this.prolayoutService.onChangeFixedHeader(false);\n    }\n    if (!this.isShowSider) {\n      this.isShowSider = true;\n      this.prolayoutService.onChangeVisibilitySider(true);\n    }\n  }\n\n  onChangeFixedHeader(value: boolean) {\n    this.isFixedHeader = value;\n    this.prolayoutService.onChangeFixedHeader(value);\n    if (value && this.isFixedSider) {\n      this.isFixedSider = false;\n      this.prolayoutService.onChangeFixedSider(false);\n    }\n    if (!this.isShowHeader) {\n      this.isShowHeader = true;\n      this.prolayoutService.onChangeVisibilityHeader(true);\n    }\n  }\n\n  onChangeVisiblityHeader(value: boolean) {\n    this.isShowHeader = value;\n    this.prolayoutService.onChangeVisibilityHeader(value);\n    if (!value && this.isFixedHeader) {\n      this.isFixedHeader = false;\n      this.prolayoutService.onChangeFixedHeader(false);\n    }\n  }\n\n  onChangeVisiblitySider(value: boolean) {\n    this.isShowSider = value;\n    this.prolayoutService.onChangeVisibilitySider(value);\n    if (!value && this.isFixedSider) {\n      this.isFixedSider = false;\n      this.prolayoutService.onChangeFixedSider(false);\n    }\n  }\n\n  onChangeVisiblityFooter(value: boolean) {\n    this.isShowFooter = value;\n    this.prolayoutService.onChangeVisibilityFooter(value);\n  }\n\n  onChangeThemeColor(value: VtsTheme) {\n    let cloneColors: VtsThemeColorType[] = [...this.listColors];\n    cloneColors.filter(c => c.isChecked)[0].isChecked = false;\n    cloneColors.filter(c => c.value == value)[0].isChecked = true;\n    this.listColors = [...cloneColors];\n    this.vtsSetThemeColor.emit(value);\n  }\n\n  onChangeSplitMenu(value: boolean) {\n    this.useSplitMenu = value;\n    this.prolayoutService.onChangeUseSplitMenu(value);\n  }\n\n  onThemeChange() {\n    this.themeService.setTheme(this.currentTheme === 'default' ? 'dark' : 'default');\n  }\n}\n","<vts-drawer\n  [vtsClosable]=\"true\"\n  [vtsVisible]=\"open\"\n  vtsPlacement=\"right\"\n  [vtsWrapClassName]=\"'vts-setting-drawer-content'\"\n  [vtsWidth]=\"600\"\n  [vtsZIndex]=\"2000\"\n  (vtsOnClose)=\"closeDrawer()\"\n>\n  <ng-container *vtsDrawerContent>\n    <!-- <ng-container *ngTemplateOutlet=\"pageStyle\"></ng-container> -->\n    <ng-container *ngTemplateOutlet=\"themeColor\"></ng-container>\n    <vts-divider></vts-divider>\n    <h4 vts-typography vtsType=\"h4\">{{headerTitle.navigationMode}}</h4>\n    <div vts-row>\n      <div vts-col vtsFlex=\"auto\">{{headerTitle.fixedHeader}}:</div>\n      <div vts-col vts-row vtsJustify=\"end\" vtsFlex=\"auto\">\n        <vts-switch\n          [(ngModel)]=\"isFixedHeader\"\n          (ngModelChange)=\"onChangeFixedHeader($event)\"\n        ></vts-switch>\n      </div>\n    </div>\n    <div vts-row>\n      <div vts-col vtsFlex=\"auto\">{{headerTitle.fixedSider}}:</div>\n      <div vts-col vts-row vtsJustify=\"end\" vtsFlex=\"auto\">\n        <vts-switch\n          [(ngModel)]=\"isFixedSider\"\n          (ngModelChange)=\"onChangeFixedSider($event)\"\n        ></vts-switch>\n      </div>\n    </div>\n    <div vts-row>\n      <div vts-col vtsFlex=\"auto\">{{headerTitle.splitMenu}}:</div>\n      <div vts-col vts-row vtsJustify=\"end\" vtsFlex=\"auto\">\n        <vts-switch\n          [(ngModel)]=\"useSplitMenu\"\n          (ngModelChange)=\"onChangeSplitMenu($event)\"\n        ></vts-switch>\n      </div>\n    </div>\n    <vts-divider></vts-divider>\n    <h4 vts-typography vtsType=\"h4\">{{headerTitle.regionalSetting}}</h4>\n    <div vts-row>\n      <div vts-col vtsFlex=\"auto\">{{headerTitle.showHeader}}:</div>\n      <div vts-col vts-row vtsJustify=\"end\" vtsFlex=\"auto\">\n        <vts-switch\n          [(ngModel)]=\"isShowHeader\"\n          (ngModelChange)=\"onChangeVisiblityHeader($event)\"\n        ></vts-switch>\n      </div>\n    </div>\n    <div vts-row>\n      <div vts-col vtsFlex=\"auto\">{{headerTitle.showSider}}:</div>\n      <div vts-col vts-row vtsJustify=\"end\" vtsFlex=\"auto\">\n        <vts-switch\n          [(ngModel)]=\"isShowSider\"\n          (ngModelChange)=\"onChangeVisiblitySider($event)\"\n        ></vts-switch>\n      </div>\n    </div>\n    <div vts-row>\n      <div vts-col vtsFlex=\"auto\">{{headerTitle.showFooter}}:</div>\n      <div vts-col vts-row vtsJustify=\"end\" vtsFlex=\"auto\">\n        <vts-switch\n          [(ngModel)]=\"isShowFooter\"\n          (ngModelChange)=\"onChangeVisiblityFooter($event)\"\n        ></vts-switch>\n      </div>\n    </div>\n  </ng-container>\n</vts-drawer>\n\n<!-- Theme color -->\n<ng-template #themeColor>\n  <h4 vts-typography vtsType=\"h4\">{{headerTitle.themeColor}}</h4>\n  <ng-container *ngFor=\"let color of listColors\">\n    <vts-tag [vtsColor]=\"{background: color.color, color: color.text}\" (click)=\"onChangeThemeColor(color.value)\">\n      <ng-container *ngIf=\"color.isChecked; else block\">\n        <i vts-icon vtsType=\"CheckCircle\"></i>\n      </ng-container>\n      <ng-template #block>\n        <span\n          class=\"block\"\n          style=\"width: 16px; height: 16px; display: inline-block; cursor: pointer\"\n        ></span>\n      </ng-template>\n    </vts-tag>\n  </ng-container>\n</ng-template>\n\n<!-- Page style -->\n<ng-template #pageStyle>\n  <div vts-row>\n    <div vts-col vtsFlex=\"1 1 auto\" vts-row vtsAlign=\"middle\" vtsJustify=\"start\">\n      <h4 vts-typography vtsType=\"h4\">Page style setting</h4>\n    </div>\n    <div vts-row vts-col vtsAlign=\"middle\" vtsJustify=\"center\">\n    </div>\n  </div>\n  <div vts-row>\n    <div vts-col vtsFlex=\"1 1 auto\" vts-row vtsAlign=\"middle\" vtsJustify=\"start\">\n      <h4 vts-typography vtsType=\"h4\">Dark mode</h4>\n    </div>\n    <div vts-row vts-col vtsAlign=\"middle\" vtsJustify=\"center\">\n      <vts-switch\n        [(ngModel)]=\"isDarkMode\"\n        (ngModelChange)=\"onThemeChange()\"\n        [vtsUnCheckedChildren]=\"unCheckedTemplate\"\n        [vtsCheckedChildren]=\"checkedTemplate\"\n      ></vts-switch>\n    </div>\n  </div>\n  <ng-template #checkedTemplate><i vts-icon vtsType=\"Frown:antd\"></i></ng-template>\n  <ng-template #unCheckedTemplate>\n    <i vts-icon vtsType=\"Smile:antd\"></i>\n  </ng-template>\n</ng-template>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnInit,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { VtsBreadcrumbItem } from '@ui-vts-kit/ng-vts/breadcrumb';\n\n@Component({\n  selector: 'vts-prolayout-breadcrumb',\n  templateUrl: 'breadcrumb.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  preserveWhitespaces: false\n})\nexport class VtsProlayoutBreadCrumbComponent implements OnInit {\n  constructor() {}\n\n  @Input() vtsBreadcrumbArray: VtsBreadcrumbItem[] = [];\n  @Input() vtsSeparator: string | TemplateRef<void> | null = '❯';\n\n  ngOnInit() {}\n}\n","<div class=\"breadcrumb-container\">\n  <vts-breadcrumb [vtsBreadcrumbArray]=\"vtsBreadcrumbArray\" [vtsSeparator]=\"vtsSeparator\"></vts-breadcrumb>\n</div>","import { Component, OnInit, OnDestroy, Input, ElementRef, Renderer2 } from '@angular/core';\nimport { Subject, timer } from 'rxjs';\nimport { VtsBlockUIService } from './block-ui.service';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { VtsBlockUIConfig } from './pro-layout.types';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'block-ui',\n  templateUrl: 'block-ui.component.html'\n})\nexport class VtsBlockUIComponent implements OnInit, OnDestroy {\n  constructor(\n    public elementRef: ElementRef,\n    private blockUIService: VtsBlockUIService,\n    private renderer: Renderer2\n  ) {\n    this.renderer.addClass(this.elementRef.nativeElement, 'vts-block-ui');\n  }\n\n  isShowInput: boolean = false;\n  /**\n   *  currently locked if true, otherwise not locked\n   * */\n  isLockOrUnlock: boolean = false;\n  form: FormGroup = new FormGroup({\n    password: new FormControl('', Validators.required)\n  });\n  modalTitle: string = '';\n  submitText: string = '';\n  inputType: 'password' | 'text' = 'password';\n\n  @Input() vtsBlockUIConfig: VtsBlockUIConfig = {\n    isEnabled: true,\n    modalLockTitle: 'Khóa màn hình',\n    modalUnlockTitle: 'Mở khóa màn hình',\n    cancelText: 'Hủy',\n    locktext: 'Khóa',\n    unlockText: 'Mở khóa'\n  };\n\n  private onDestroy$ = new Subject();\n  /**\n   * current hour, minute shown when ui is locked\n   */\n  hour: string = '0';\n  minute: string = '0';\n\n  ngOnDestroy(): void {\n    this.onDestroy$.next();\n    this.onDestroy$.complete();\n  }\n\n  ngOnInit() {\n    this.blockUIService.lockUIStateChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isLocked: boolean) => {\n        if (isLocked) {\n          this.isShowInput = false;\n          this.isLockOrUnlock = true;\n          this.setCurrentTime();\n        } else {\n          this.isShowInput = false;\n          this.isLockOrUnlock = false;\n        }\n      });\n    this.blockUIService.showInputChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isShow: boolean) => {\n        this.isShowInput = isShow;\n        if (isShow) {\n          let modalTitle = this.isLockOrUnlock\n            ? this.vtsBlockUIConfig.modalUnlockTitle\n            : this.vtsBlockUIConfig.modalLockTitle;\n          let submitText = this.isLockOrUnlock\n            ? this.vtsBlockUIConfig.unlockText\n            : this.vtsBlockUIConfig.locktext;\n          this.modalTitle = modalTitle ? modalTitle : '';\n          this.submitText = submitText ? submitText : '';\n          this.form.reset();\n        }\n      });\n    // update time each minute\n    timer(1000, 60000)\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe(() => {\n        if (this.isLockOrUnlock) {\n          let minute = parseInt(this.minute) + 1;\n          if (minute >= 60) {\n            this.minute = this.numberToString(minute - 60);\n            this.hour = this.numberToString(parseInt(this.hour) + 1);\n          } else this.minute = this.numberToString(minute);\n        }\n      });\n  }\n\n  showInput() {\n    this.blockUIService.showInputPassword();\n  }\n\n  submit() {\n    if (this.isLockOrUnlock) {\n      this.blockUIService.unlockScreen(this.form.get('password')?.value);\n    } else this.blockUIService.lockScreen(this.form.get('password')?.value);\n  }\n\n  hideInput() {\n    this.blockUIService.hideInputPassword();\n  }\n\n  onChangeInputType() {\n    if (this.inputType == 'password') {\n      this.inputType = 'text';\n    } else {\n      this.inputType = 'password';\n    }\n  }\n\n  /**\n   * set hour and minute to current time\n   */\n  setCurrentTime() {\n    this.hour = this.numberToString(new Date().getHours());\n    this.minute = this.numberToString(new Date().getMinutes());\n  }\n\n  /**\n   * turn number into displaying time string\n   */\n  private numberToString(num: number): string {\n    if (num >= 0 && num < 10) {\n      return `0${num}`;\n    } else {\n      return num.toString();\n    }\n  }\n}\n","<div class=\"vts-block-ui-container\"\n  *ngIf=\"isLockOrUnlock\"\n  (click)=\"showInput()\"\n>\n  <ng-container *ngTemplateOutlet=\"blockUIContent\"></ng-container>\n</div>\n<vts-modal \n  [(vtsVisible)]=\"isShowInput\" \n  [vtsTitle]=\"modalTitle\" \n  [vtsOkText]=\"submitText\" \n  [vtsCancelText]=\"vtsBlockUIConfig.cancelText\"\n  (vtsOnOk)=\"submit()\"\n  (vtsOnCancel)=\"hideInput()\"\n  >\n  <form [vtsLayout]=\"'vertical'\" vts-form [formGroup]=\"form\">\n    <vts-form-item>\n      <vts-form-label vtsRequired>Nhập mật khẩu khóa màn hình:</vts-form-label>\n      <vts-form-control>\n        <vts-input-group [vtsSuffix]=\"suffixIcon\">\n          <input\n            vts-input\n            formControlName=\"password\"\n            [placeholder]=\"'Mật khẩu'\"\n            [autofocus]=\"true\"\n            [type]=\"inputType\"\n            autocomplete=\"new-password\"          \n          />\n        </vts-input-group>\n        <ng-template #suffixIcon>\n          <!-- show or hide password string -->\n          <i vts-icon vtsType=\"Eye:vts\" class=\"cursor-pointer\" *ngIf=\"inputType === 'password'; else typeText\" (click)=\"onChangeInputType()\"></i>\n          <ng-template #typeText>\n            <i vts-icon vtsType=\"EyeOff\" class=\"cursor-pointer\" (click)=\"onChangeInputType()\"></i>\n          </ng-template>\n        </ng-template>\n      </vts-form-control>\n    </vts-form-item>\n  </form>\n</vts-modal>\n<!-- Content inside block ui container -->\n<ng-template #blockUIContent>\n  <div vts-row [vtsAlign]=\"'middle'\" class=\"w-100\">\n    <div vts-row class=\"w-100 main-row\" [vtsAlign]=\"'middle'\">\n      <div vts-col class=\"hour-circle\">\n        {{ hour }}\n      </div>\n      <div vts-col [vtsFlex]=\"'auto'\" class=\"lock-wrapper\">\n        <div vts-row [vtsJustify]=\"'center'\">\n          <i vts-icon vtsType=\"Lock:vts\"></i>\n        </div>\n        <div vts-col vts-row [vtsJustify]=\"'center'\">\n          Click to unlock\n        </div>\n      </div>\n      <div class=\"minute-circle\">\n        {{ minute }}\n      </div>\n    </div>\n  </div>\n</ng-template>\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  Component,\n  ElementRef,\n  OnInit,\n  Input,\n  ViewEncapsulation,\n  TemplateRef,\n  OnDestroy,\n  OnChanges,\n  SimpleChanges,\n  EventEmitter,\n  Output\n} from '@angular/core';\nimport { VtsProlayoutService } from './pro-layout.service';\nimport { VtsBlockUIService } from './block-ui.service';\nimport {\n  VtsNotificationConfig,\n  VtsAvatarMenu,\n  VtsAvatarUser,\n  VtsMenuItemProLayout,\n  VtsBlockUIConfig,\n  VtsVisibilityConfig,\n  VtsSettingDrawerHeaderTitle\n} from './pro-layout.types';\nimport { VtsBreadcrumbItem } from '@ui-vts-kit/ng-vts/breadcrumb';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { VtsTheme, VtsThemeService } from '@ui-vts-kit/theme/services';\n\n@Component({\n  selector: 'vts-prolayout-container',\n  exportAs: 'vtsProLayoutContainer',\n  encapsulation: ViewEncapsulation.None,\n  preserveWhitespaces: false,\n  templateUrl: 'pro-layout.component.html',\n  styles: [\n    `\n      .vts-breadcrumb {\n        margin-bottom: 24px;\n      }\n\n      .inner-layout {\n        background: #fff;\n      }\n\n      .sider-menu {\n        height: 100%;\n      }\n\n      .inner-content {\n        min-height: 280px;\n      }\n\n      vts-prolayout-footer {\n        text-align: center;\n      }\n    `\n  ]\n})\nexport class VtsProLayoutContainerComponent implements OnInit, OnDestroy, OnChanges {\n  constructor(\n    private elementRef: ElementRef,\n    private prolayoutService: VtsProlayoutService,\n    private lockUiService: VtsBlockUIService,\n    private themeService: VtsThemeService\n  ) {\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-prolayout-container');\n  }\n  ngOnDestroy(): void {\n    this.destroySubscriptions();\n  }\n\n  themeColor: string = '#EE0033';\n  isFixedHeader: boolean = false;\n  isFixedSider: boolean = false;\n  isShowHeader: boolean = true;\n  isShowSider: boolean = true;\n  isShowFooter: boolean = true;\n  @Input() vtsMenuHeader: VtsMenuItemProLayout[] = [];\n  @Input() vtsMenuSider: VtsMenuItemProLayout[] = [];\n  @Input() vtsHeaderTitle: string | TemplateRef<void> | null = 'GOVERMENT SOLUTION CENTER PLATFORM';\n  @Input() vtsAvatar: VtsAvatarUser = {\n    size: 'md',\n    name: 'Shiba inu',\n    subname: 'Viettel Solution'\n  };\n  @Input() vtsAvatarMenu: VtsAvatarMenu[] = [];\n  @Input() vtsLogoUrl: string = '';\n  @Input() vtsBreadcrumbArray: VtsBreadcrumbItem[] = [];\n  @Input() vtsSeparator: string | TemplateRef<void> | null = '❯';\n  @Input() vtsFooterTemplate: TemplateRef<void> | null = null;\n  @Input() vtsNotificationConfig: VtsNotificationConfig = {\n    type: 'menuContext',\n    overflowCount: 99\n  };\n  @Input() vtsVisibleNotifyPane: boolean = false;\n  @Input() vtsMenuTemplate: TemplateRef<void> | null = null;\n  @Input() vtsBlockUIConfig: VtsBlockUIConfig = {\n    isEnabled: true,\n    modalLockTitle: 'Khóa màn hình',\n    modalUnlockTitle: 'Mở khóa màn hình',\n    cancelText: 'Hủy',\n    locktext: 'Khóa',\n    unlockText: 'Mở khóa'\n  };\n  @Input() vtsMenuAvatarTemplateRef: TemplateRef<void> | null = null;\n  @Input() vtsVisibilityConfig: VtsVisibilityConfig = {\n    searchIcon: false,\n    fullScreen: true,\n    lockScreen: false,\n    notifyIcon: true\n  };\n  @Input() vtsSettingHeaderTitle: VtsSettingDrawerHeaderTitle = {\n    themeColor: \"Theme color\",\n    navigationMode: \"Navigation mode\",\n    fixedHeader: \"Fixed Header\",\n    fixedSider: \"Fixed Sider\",\n    splitMenu: \"Split menu\",\n    regionalSetting: \"Regional settings\",\n    showHeader: \"Header\",\n    showSider: \"Sider\",\n    showFooter: \"Footer\",\n  }\n  /**\n   * display header menu's items horizontally\n   */\n  @Input() vtsUseExpandHeaderMenu: boolean = false;\n  /**\n   * mark active root menu item on header menu, when vtsUseExpandHeaderMenu = true\n   */\n  @Input() vtsActiveRootMenuHeader: string | number | undefined;\n  /**\n   * prolayout uses a isolated instance of vtsThemeService, that's why when changes from prolayout needs to be fired outside\n   */\n  @Output() vtsChangeThemeColor: EventEmitter<VtsTheme> = new EventEmitter<VtsTheme>();\n  /**\n   * listen for changes of notify menu context, when vtsNotificationConfig.type == 'menuContext'\n   */\n  @Output() vtsNotifyMenuCtxVisibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n  /**\n   * Template for additional button on menu sidebar (ex: logout, contact support, subscription plan)\n   */\n  @Input() vtsAdditionalButtonTpl: TemplateRef<void> | null = null;\n\n  private onDestroy$ = new Subject();\n  isScreenLocked: boolean = false;\n\n  onChangeVisiblityHeader(value: boolean) {\n    this.isShowHeader = value;\n    if (!value && this.isFixedHeader) {\n      this.isFixedHeader = false;\n    }\n  }\n\n  onChangeVisiblitySider(value: boolean) {\n    this.isShowSider = value;\n    if (!value && this.isFixedSider) {\n      this.isFixedSider = false;\n    }\n  }\n\n  onChangeVisiblityFooter(value: boolean) {\n    this.isShowFooter = value;\n  }\n  \n  onChangeThemeColor(color: VtsTheme | null) {\n    if(color){\n      this.themeColor = color;\n      this.vtsChangeThemeColor.emit(color);\n      this.themeService.setTheme(color);\n    }\n  }\n\n  onSelectMenuSiderItem(selected: VtsMenuItemProLayout) {\n    let menuSider = [...this.vtsMenuSider];\n    menuSider.forEach(item => {\n      if (item.isSelected) {\n        item.isSelected = false;\n      }\n    });\n    menuSider.forEach(item => {\n      if (item.id == selected.id) {\n        item.isSelected = true;\n      }\n    });\n    this.vtsMenuSider = [...menuSider];\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { vtsMenuHeader, vtsMenuSider } = changes;\n    if (vtsMenuHeader) {\n      this.prolayoutService.onChangeMenuHeader(this.vtsMenuHeader);\n    }\n    if (vtsMenuSider) {\n      this.prolayoutService.onChangeMenuSider(this.vtsMenuSider);\n    }\n  }\n\n  ngOnInit(): void {\n    // emit changes when receiving menu\n    this.prolayoutService.onChangeMenuHeader(this.vtsMenuHeader);\n    this.prolayoutService.onChangeMenuSider(this.vtsMenuSider);\n\n    // on change ix fixed\n    this.prolayoutService.fixedSiderChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isFixed: boolean) => {\n        this.isFixedSider = isFixed;\n      });\n    this.prolayoutService.fixedHeaderChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isFixed: boolean) => {\n        this.isFixedHeader = isFixed;\n      });\n\n    // onchange visibility\n    this.prolayoutService.visibilityHeaderChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isShow: boolean) => {\n        this.onChangeVisiblityHeader(isShow);\n      });\n    this.prolayoutService.visibilitySiderChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isShow: boolean) => {\n        this.onChangeVisiblitySider(isShow);\n      });\n    this.prolayoutService.visibilityFooterChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isShow: boolean) => {\n        this.onChangeVisiblityFooter(isShow);\n      });\n\n    // show/hide lock screen\n    this.lockUiService.lockUIStateChange$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe((isShow: boolean) => {\n        this.isScreenLocked = isShow;\n      });\n    this.lockUiService.getLockState();\n  }\n\n  /**\n   * destroy all subscription of prolayout service\n   */\n  destroySubscriptions() {\n    this.onDestroy$.next();\n    this.onDestroy$.complete();\n  }\n\n  /**\n   * get initial value when page loaded. This function will only be called once\n   */\n  setInitalThemeColor(color: VtsTheme | null){\n    this.onChangeThemeColor(color);    \n  }\n\n  onChangeVisibleChangeCtxNotify(val: boolean){\n    this.vtsNotifyMenuCtxVisibleChange.next(val);\n  }\n}\n","<vts-prolayout *ngIf=\"!isScreenLocked\">\n    <vts-prolayout-sider vtsWidth=\"250px\" [vtsLogoUrl]=\"vtsLogoUrl\" [vtsAdditionalButtonTpl]=\"vtsAdditionalButtonTpl\"\n        *ngIf=\"isShowSider && isFixedSider\"></vts-prolayout-sider>\n\n    <vts-prolayout-header\n        *ngIf=\"isShowHeader && !isFixedSider\"\n        [vtsMenuTemplate]=\"vtsMenuTemplate\"\n        [vtsTitle]=\"vtsHeaderTitle\"\n        [vtsAvatar]=\"vtsAvatar\"\n        [vtsAvatarMenu]=\"vtsAvatarMenu\"\n        [vtsLogoUrl]=\"vtsLogoUrl\"\n        [vtsVisibleNotifyPane]=\"vtsVisibleNotifyPane\"\n        [vtsMenuData]=\"vtsMenuHeader\"\n        [vtsMenuAvatarTemplateRef]=\"vtsMenuAvatarTemplateRef\"\n        [vtsVisibilityConfig]=\"vtsVisibilityConfig\"\n        [vtsNotificationConfig]=\"vtsNotificationConfig\"\n        [vtsActiveRootMenuHeader]=\"vtsActiveRootMenuHeader\"\n        (visibleChangeCtxNotify)=\"onChangeVisibleChangeCtxNotify($event)\"\n        [vtsUseExpandHeaderMenu]=\"vtsUseExpandHeaderMenu\">\n    </vts-prolayout-header>\n\n    <vts-prolayout *ngIf=\"isFixedSider; else notFixedSider\">\n        <vts-prolayout-header\n            *ngIf=\"isShowHeader\"\n            [vtsMenuTemplate]=\"vtsMenuTemplate\"\n            [vtsTitle]=\"vtsHeaderTitle\"\n            [vtsAvatar]=\"vtsAvatar\"\n            [vtsAvatarMenu]=\"vtsAvatarMenu\"\n            [vtsLogoUrl]=\"vtsLogoUrl\"\n            [vtsVisibleNotifyPane]=\"vtsVisibleNotifyPane\"\n            [vtsMenuData]=\"vtsMenuHeader\"\n            [vtsMenuAvatarTemplateRef]=\"vtsMenuAvatarTemplateRef\"\n            [vtsVisibilityConfig]=\"vtsVisibilityConfig\"\n            [vtsNotificationConfig]=\"vtsNotificationConfig\"\n            [vtsActiveRootMenuHeader]=\"vtsActiveRootMenuHeader\"\n            [vtsUseExpandHeaderMenu]=\"vtsUseExpandHeaderMenu\"\n            (visibleChangeCtxNotify)=\"onChangeVisibleChangeCtxNotify($event)\"\n        >\n        </vts-prolayout-header>\n        <vts-prolayout-content class=\"outer-content\">\n            <vts-prolayout-breadcrumb [vtsSeparator]=\"vtsSeparator\" [vtsBreadcrumbArray]=\"vtsBreadcrumbArray\"></vts-prolayout-breadcrumb>\n            <vts-prolayout class=\"inner-layout\">\n                <vts-prolayout-content class=\"inner-content\">\n                    <ng-container *ngTemplateOutlet=\"compContent\"></ng-container>\n                </vts-prolayout-content>\n            </vts-prolayout>\n        </vts-prolayout-content>\n\n        <vts-prolayout-footer *ngIf=\"isShowFooter\">\n            <ng-container *ngIf=\"!vtsFooterTemplate; else footerTemplate\">\n                Copyright by Viettel Solution - Government Solution Center Platform\n            </ng-container>\n            <ng-template #footerTemplate>\n                <ng-template [ngTemplateOutlet]=\"vtsFooterTemplate\"></ng-template>\n            </ng-template>\n        </vts-prolayout-footer>\n    </vts-prolayout>\n\n    <ng-template #notFixedSider>\n        <vts-prolayout class=\"inner-layout\" *ngIf=\"!isFixedHeader; else fixedHeader\">\n            <vts-prolayout-sider vtsWidth=\"250px\" [vtsLogoUrl]=\"vtsLogoUrl\" *ngIf=\"isShowSider\" [vtsAdditionalButtonTpl]=\"vtsAdditionalButtonTpl\"></vts-prolayout-sider>\n            <vts-prolayout-content class=\"inner-content\">\n                <vts-prolayout-breadcrumb [vtsSeparator]=\"vtsSeparator\" [vtsBreadcrumbArray]=\"vtsBreadcrumbArray\"></vts-prolayout-breadcrumb>\n                <ng-container *ngTemplateOutlet=\"compContent\"></ng-container>\n            </vts-prolayout-content>\n        </vts-prolayout>\n\n        <ng-template #fixedHeader>\n            <vts-prolayout-content class=\"inner-content\">\n                <vts-prolayout-breadcrumb [vtsSeparator]=\"vtsSeparator\" [vtsBreadcrumbArray]=\"vtsBreadcrumbArray\"></vts-prolayout-breadcrumb>\n                <ng-container *ngTemplateOutlet=\"compContent\"></ng-container>\n            </vts-prolayout-content>\n        </ng-template>\n        <vts-prolayout-footer *ngIf=\"isShowFooter\">\n            <ng-container *ngIf=\"!vtsFooterTemplate; else footerTemplate\">\n                Copyright by Viettel Solution - Government Solution Center Platform\n            </ng-container>\n            <ng-template #footerTemplate>\n                <ng-template [ngTemplateOutlet]=\"vtsFooterTemplate\"></ng-template>\n            </ng-template>\n        </vts-prolayout-footer>\n    </ng-template>\n\n    <vts-setting-drawer [headerTitle]=\"vtsSettingHeaderTitle\" (initialThemeColor)=\"setInitalThemeColor($event)\"\n        (vtsSetThemeColor)=\"onChangeThemeColor($event)\"></vts-setting-drawer>\n</vts-prolayout>\n\n<ng-template #compContent>\n    <ng-content></ng-content>\n</ng-template>\n\n<block-ui *ngIf=\"vtsBlockUIConfig.isEnabled\" [vtsBlockUIConfig]=\"vtsBlockUIConfig\"></block-ui>","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\nimport { VtsAvatarModule } from '@ui-vts-kit/ng-vts/avatar';\nimport { VtsBreadCrumbModule } from '@ui-vts-kit/ng-vts/breadcrumb';\nimport { VtsButtonModule } from '@ui-vts-kit/ng-vts/button';\nimport { VtsDividerModule } from '@ui-vts-kit/ng-vts/divider';\nimport { VtsDrawerModule } from '@ui-vts-kit/ng-vts/drawer';\nimport { VtsGridModule } from '@ui-vts-kit/ng-vts/grid';\nimport { VtsMenuModule } from '@ui-vts-kit/ng-vts/menu';\nimport { VtsSelectModule } from '@ui-vts-kit/ng-vts/select';\nimport { VtsSwitchModule } from '@ui-vts-kit/ng-vts/switch';\nimport { VtsTagModule } from '@ui-vts-kit/ng-vts/tag';\nimport { VtsContentComponent } from './content.component';\nimport { VtsFooterComponent } from './footer.component';\nimport { VtsHeaderComponent } from './pro-header.component';\nimport { VtsProLayoutComponent } from './layout.component';\nimport { VtsProlayoutMenuItemHorizontalComponent } from './menu-item-horizontal.component';\nimport { VtsProlayoutMenuItemComponent } from './menu-item.component';\nimport { VtsProLayoutContainerComponent } from './pro-layout.component';\nimport { VtsSettingDrawerComponent } from './setting-drawer.component';\nimport { VtsSiderTriggerComponent } from './sider-trigger.component';\nimport { VtsSiderComponent } from './sider.component';\nimport { VtsProlayoutBreadCrumbComponent } from './breadcrumb.component';\nimport { VtsDropDownModule } from '@ui-vts-kit/ng-vts/dropdown';\nimport { VtsNoAnimationModule } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport { VtsOutletModule } from '@ui-vts-kit/ng-vts/core/outlet';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { VtsToolTipModule } from '@ui-vts-kit/ng-vts/tooltip';\nimport { VtsThemeModule } from '@ui-vts-kit/theme/services';\nimport { RouterModule } from '@angular/router';\nimport { VtsBadgeModule } from '@ui-vts-kit/ng-vts/badge';\nimport { VtsBlockUIComponent } from './block-ui.component';\nimport { VtsFormModule } from '@ui-vts-kit/ng-vts/form';\nimport { VtsInputModule } from '@ui-vts-kit/ng-vts/input';\nimport { VtsModalModule } from '@ui-vts-kit/ng-vts/modal';\nimport { VtsDropdownMenuItemHorizontalComponent } from './dropdown-menu-item-horizontal.component';\n\n@NgModule({\n  declarations: [\n    VtsProLayoutContainerComponent,\n    VtsHeaderComponent,\n    VtsContentComponent,\n    VtsFooterComponent,\n    VtsSiderComponent,\n    VtsSiderTriggerComponent,\n    VtsProLayoutComponent,\n    VtsProlayoutMenuItemComponent,\n    VtsProlayoutMenuItemHorizontalComponent,\n    VtsSettingDrawerComponent,\n    VtsProlayoutBreadCrumbComponent,\n    VtsBlockUIComponent,\n    VtsDropdownMenuItemHorizontalComponent\n  ],\n  exports: [VtsProLayoutContainerComponent, VtsFooterComponent],\n  imports: [\n    BidiModule,\n    RouterModule,\n    CommonModule,\n    ReactiveFormsModule,\n    OverlayModule,\n    VtsIconModule,\n    LayoutModule,\n    PlatformModule,\n    VtsDrawerModule,\n    VtsButtonModule,\n    VtsSwitchModule,\n    FormsModule,\n    VtsMenuModule,\n    VtsBreadCrumbModule,\n    VtsFormModule,\n    VtsInputModule,\n    VtsAvatarModule,\n    VtsDividerModule,\n    VtsTagModule,\n    VtsGridModule,\n    VtsSelectModule,\n    VtsDropDownModule,\n    VtsNoAnimationModule,\n    VtsModalModule,\n    VtsOutletModule,\n    VtsToolTipModule,\n    VtsBadgeModule,\n    VtsThemeModule.forRoot({\n      themes: [\n        {\n          theme: 'dark',\n          url: '/dark.css'\n        },\n        {\n          theme: 'default',\n          url: '/default.css'\n        },\n        {\n          theme: 'purple',\n          url: '/purple.css'\n        },\n        {\n          theme: 'blue',\n          url: '/blue.css'\n        },\n        {\n          theme: 'green',\n          url: '/green.css'\n        },\n        {\n          theme: 'orange',\n          url: '/orange.css'\n        },\n        {\n          theme: 'light-blue',\n          url: '/light-blue.css'\n        }\n      ],\n      defaultTheme: 'default'\n    })\n  ]\n})\nexport class VtsProLayoutModule {}\n","/**\n * Export types using for pro-layout\n */\n\nimport { TemplateRef } from '@angular/core';\nimport { VtsSizeLMSType } from '@ui-vts-kit/ng-vts/core/types';\nimport { VtsTheme } from '@ui-vts-kit/theme/services';\n\nexport type VtsMenuItemProLayout = {\n  title: string;\n  children?: VtsMenuItemProLayout[];\n  isOpen?: boolean;\n  isSelected?: boolean;\n  icon?: string;\n  id?: string | number;\n  url?: string;\n};\n\nexport type VtsThemeColorType = {\n  value: VtsTheme;\n  isChecked: boolean;\n  color: string;\n  text: string;\n};\n\nexport type VtsAvatarUser = {\n  name?: string;\n  subname?: string;\n  imgUrl?: string;\n  size: VtsSizeLMSType;\n};\n\nexport type VtsAvatarMenu = {\n  url: string;\n  label: string;\n};\n\nexport type VtsNotificationConfig = {\n  type: VtsNotiPaneType;\n  overflowCount: number;\n};\n\nexport type VtsNotiPaneType = 'drawer' | 'menuContext';\n\nexport type VtsBlockUIConfig = {\n  /**\n   * decide if this feature is enabled or disabled\n   */\n  isEnabled: boolean;\n  modalRef?: TemplateRef<void> | null;\n  modalLockTitle?: string;\n  modalUnlockTitle?: string;\n  cancelText?: string;\n  locktext?: string;\n  unlockText?: string;\n};\n\nexport type VtsVisibilityConfig = {\n  searchIcon: boolean;\n  fullScreen: boolean;\n  lockScreen: boolean;\n  notifyIcon: boolean;\n};\n\nexport type VtsSettingDrawerHeaderTitle = {\n  themeColor: string;\n  navigationMode: string;\n  fixedHeader: string;\n  fixedSider: string;\n  splitMenu: string;\n  regionalSetting: string;\n  showHeader: string;\n  showSider: string;\n  showFooter: string;\n}","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './content.component';\nexport * from './footer.component';\nexport * from './pro-header.component';\nexport * from './pro-layout.component';\nexport * from './sider.component';\nexport { VtsSiderTriggerComponent as ɵVtsSiderTriggerComponent } from './sider-trigger.component';\nexport * from './layout.module';\nexport * from './setting-drawer.component';\nexport * from './pro-layout.types';\nexport * from './pro-layout.service';\nexport * from './block-ui.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i5","i6","i7","i9","i10","i13","i15.VtsProlayoutMenuItemHorizontalComponent","i16.VtsDropdownMenuItemHorizontalComponent","i1","i2","i3","i3.VtsProlayoutService","i4","i6.VtsSiderTriggerComponent","i7.VtsProlayoutMenuItemComponent","i1.VtsProlayoutService","i8","i11","i1.VtsBlockUIService","i2.VtsBlockUIService","i5.VtsHeaderComponent","i6.VtsContentComponent","i7.VtsFooterComponent","i8.VtsSiderComponent","i9.VtsProLayoutComponent","i10.VtsSettingDrawerComponent","i11.VtsProlayoutBreadCrumbComponent","i12.VtsBlockUIComponent"],"mappings":"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"}