{"version":3,"file":"vts-voffice-ng-vts-menu.mjs","sources":["../../components/menu/menu.token.ts","../../components/menu/menu.service.ts","../../components/menu/submenu.service.ts","../../components/menu/menu-item.directive.ts","../../components/menu/submenu-title.component.ts","../../components/menu/submenu-inline-child.component.ts","../../components/menu/submenu-non-inline-child.component.ts","../../components/menu/submenu.component.ts","../../components/menu/menu.directive.ts","../../components/menu/menu-group.component.ts","../../components/menu/menu.module.ts","../../components/menu/menu.types.ts","../../components/menu/public-api.ts","../../components/menu/vts-voffice-ng-vts-menu.ts"],"sourcesContent":["/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { InjectionToken } from '@angular/core';\r\nimport { MenuService } from './menu.service';\r\n\r\nexport const VtsIsMenuInsideDropDownToken = new InjectionToken<boolean>('VtsIsInDropDownMenuToken');\r\nexport const VtsMenuServiceLocalToken = new InjectionToken<MenuService>('VtsMenuServiceLocalToken');\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { VtsSafeAny } from '@vts-voffice/ng-vts/core/types';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { VtsMenuModeType } from './menu.types';\r\n\r\n@Injectable()\r\nexport class MenuService {\r\n  /** all descendant menu click **/\r\n  descendantMenuItemClick$ = new Subject<VtsSafeAny>();\r\n  /** child menu item click **/\r\n  childMenuItemClick$ = new Subject<VtsSafeAny>();\r\n  mode$ = new BehaviorSubject<VtsMenuModeType>('vertical');\r\n  isChildSubMenuOpen$ = new BehaviorSubject<boolean>(false);\r\n\r\n  onDescendantMenuItemClick(menu: VtsSafeAny): void {\r\n    this.descendantMenuItemClick$.next(menu);\r\n  }\r\n\r\n  onChildMenuItemClick(menu: VtsSafeAny): void {\r\n    this.childMenuItemClick$.next(menu);\r\n  }\r\n\r\n  setMode(mode: VtsMenuModeType): void {\r\n    this.mode$.next(mode);\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Inject, Injectable, OnDestroy, Optional, SkipSelf } from '@angular/core';\r\nimport { VtsSafeAny } from '@vts-voffice/ng-vts/core/types';\r\nimport { BehaviorSubject, combineLatest, merge, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n  auditTime,\r\n  distinctUntilChanged,\r\n  filter,\r\n  map,\r\n  switchMap,\r\n  mapTo,\r\n  mergeMap,\r\n  takeUntil\r\n} from 'rxjs/operators';\r\nimport { MenuService } from './menu.service';\r\nimport { VtsIsMenuInsideDropDownToken } from './menu.token';\r\nimport { VtsMenuModeType } from './menu.types';\r\n\r\n@Injectable()\r\nexport class VtsSubmenuService implements OnDestroy {\r\n  mode$: Observable<VtsMenuModeType> = this.vtsMenuService.mode$.pipe(\r\n    map(mode => {\r\n      if (mode === 'inline') {\r\n        return 'inline';\r\n        /** if inside another submenu, set the mode to vertical **/\r\n      } else if (mode === 'vertical' || this.vtsHostSubmenuService) {\r\n        return 'vertical';\r\n      } else {\r\n        return 'horizontal';\r\n      }\r\n    })\r\n  );\r\n  rootMode$: Observable<VtsMenuModeType> = this.vtsMenuService.mode$.pipe(\r\n    switchMap(mode => {\r\n      if (this.vtsHostSubmenuService) return this.vtsHostSubmenuService.rootMode$;\r\n      return of(mode);\r\n    })\r\n  );\r\n  level = 1;\r\n  isFirst$ = new BehaviorSubject<boolean>(true);\r\n  isLasted$ = new BehaviorSubject<boolean>(true);\r\n  isInsidePopup: boolean = false;\r\n  isCurrentSubMenuOpen$ = new BehaviorSubject<boolean>(false);\r\n  private isChildSubMenuOpen$ = new BehaviorSubject<boolean>(false);\r\n  /** submenu title & overlay mouse enter status **/\r\n  private isMouseEnterTitleOrOverlay$ = new Subject<boolean>();\r\n  private childMenuItemClick$ = new Subject<VtsSafeAny>();\r\n  private destroy$ = new Subject<void>();\r\n  /**\r\n   * menu item inside submenu clicked\r\n   * @param menu\r\n   */\r\n  onChildMenuItemClick(menu: VtsSafeAny): void {\r\n    this.childMenuItemClick$.next(menu);\r\n  }\r\n  setOpenStateRecursive(): void {\r\n    if (this.vtsHostSubmenuService) {\r\n      this.vtsHostSubmenuService.setOpenStateRecursive();\r\n    }\r\n    this.setOpenStateWithoutDebounce(true);\r\n  }\r\n  setOpenStateWithoutDebounce(value: boolean): void {\r\n    this.isCurrentSubMenuOpen$.next(value);\r\n  }\r\n  setMouseEnterTitleOrOverlayState(value: boolean): void {\r\n    this.isMouseEnterTitleOrOverlay$.next(value);\r\n  }\r\n\r\n  trackOrder() {\r\n    if (this.vtsHostSubmenuService) {\r\n      this.vtsHostSubmenuService.isLasted$.next(false);\r\n      this.isFirst$.next(false);\r\n    }\r\n    if (this.level === 1) this.isFirst$.next(true);\r\n  }\r\n\r\n  constructor(\r\n    @SkipSelf() @Optional() private vtsHostSubmenuService: VtsSubmenuService,\r\n    public vtsMenuService: MenuService,\r\n    @Inject(VtsIsMenuInsideDropDownToken) public isMenuInsideDropDown: boolean\r\n  ) {\r\n    if (this.vtsHostSubmenuService) {\r\n      this.level = this.vtsHostSubmenuService.level + 1;\r\n      this.isInsidePopup = true;\r\n      this.trackOrder();\r\n    }\r\n    /** close if menu item clicked **/\r\n    const isClosedByMenuItemClick = this.childMenuItemClick$.pipe(\r\n      mergeMap(() => this.mode$),\r\n      filter(mode => mode !== 'inline' || this.isMenuInsideDropDown),\r\n      mapTo(false)\r\n    );\r\n    const isCurrentSubmenuOpen$ = merge(this.isMouseEnterTitleOrOverlay$, isClosedByMenuItemClick);\r\n    /** combine the child submenu status with current submenu status to calculate host submenu open **/\r\n    const isSubMenuOpenWithDebounce$ = combineLatest([\r\n      this.isChildSubMenuOpen$,\r\n      isCurrentSubmenuOpen$\r\n    ]).pipe(\r\n      map(\r\n        ([isChildSubMenuOpen, isCurrentSubmenuOpen]) => isChildSubMenuOpen || isCurrentSubmenuOpen\r\n      ),\r\n      auditTime(150),\r\n      distinctUntilChanged(),\r\n      takeUntil(this.destroy$)\r\n    );\r\n    isSubMenuOpenWithDebounce$.pipe(distinctUntilChanged()).subscribe(data => {\r\n      this.setOpenStateWithoutDebounce(data);\r\n      if (this.vtsHostSubmenuService) {\r\n        /** set parent submenu's child submenu open status **/\r\n        this.vtsHostSubmenuService.isChildSubMenuOpen$.next(data);\r\n      } else {\r\n        this.vtsMenuService.isChildSubMenuOpen$.next(data);\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n  AfterContentInit,\r\n  ChangeDetectorRef,\r\n  ContentChildren,\r\n  Directive,\r\n  Inject,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  QueryList,\r\n  SimpleChanges\r\n} from '@angular/core';\r\nimport { NavigationEnd, Router, RouterLink } from '@angular/router';\r\nimport { BooleanInput } from '@vts-voffice/ng-vts/core/types';\r\nimport { InputBoolean } from '@vts-voffice/ng-vts/core/util';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { MenuService } from './menu.service';\r\nimport { VtsIsMenuInsideDropDownToken } from './menu.token';\r\nimport { VtsSubmenuService } from './submenu.service';\r\n\r\n@Directive({\r\n  selector: '[vts-menu-item]',\r\n  exportAs: 'vtsMenuItem',\r\n  host: {\r\n    '[class.vts-dropdown-menu-item]': `isMenuInsideDropDown`,\r\n    '[class.vts-dropdown-menu-item-selected]': `isMenuInsideDropDown && vtsSelected`,\r\n    '[class.vts-dropdown-menu-item-disabled]': `isMenuInsideDropDown && vtsDisabled`,\r\n    '[class.vts-menu-item]': `!isMenuInsideDropDown`,\r\n    '[class.vts-menu-item-selected]': `!isMenuInsideDropDown && vtsSelected`,\r\n    '[class.vts-menu-item-disabled]': `!isMenuInsideDropDown && vtsDisabled`,\r\n    '(click)': 'clickMenuItem($event)'\r\n  }\r\n})\r\nexport class VtsMenuItemDirective implements OnInit, OnChanges, OnDestroy, AfterContentInit {\r\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\r\n  static ngAcceptInputType_vtsSelected: BooleanInput;\r\n  static ngAcceptInputType_vtsMatchRouterExact: BooleanInput;\r\n  static ngAcceptInputType_vtsMatchRouter: BooleanInput;\r\n\r\n  private destroy$ = new Subject();\r\n  level = this.vtsSubmenuService ? this.vtsSubmenuService.level + 1 : 1;\r\n  selected$ = new Subject<boolean>();\r\n  dir: Direction = 'ltr';\r\n  @Input() @InputBoolean() vtsDisabled = false;\r\n  @Input() @InputBoolean() vtsSelected = false;\r\n  @Input() @InputBoolean() vtsMatchRouterExact = false;\r\n  @Input() @InputBoolean() vtsMatchRouter = false;\r\n  @ContentChildren(RouterLink, { descendants: true })\r\n  listOfRouterLink!: QueryList<RouterLink>;\r\n  @ContentChildren(RouterLink, { descendants: true })\r\n  listOfRouterLinkWithHref!: QueryList<RouterLink>;\r\n\r\n  /** clear all item selected status except this */\r\n  clickMenuItem(e: MouseEvent): void {\r\n    if (this.vtsDisabled) {\r\n      e.preventDefault();\r\n      e.stopPropagation();\r\n    } else {\r\n      this.vtsMenuService.onDescendantMenuItemClick(this);\r\n      if (this.vtsSubmenuService) {\r\n        /** menu item inside the submenu **/\r\n        this.vtsSubmenuService.onChildMenuItemClick(this);\r\n      } else {\r\n        /** menu item inside the root menu **/\r\n        this.vtsMenuService.onChildMenuItemClick(this);\r\n      }\r\n    }\r\n  }\r\n\r\n  setSelectedState(value: boolean): void {\r\n    this.vtsSelected = value;\r\n    this.selected$.next(value);\r\n  }\r\n\r\n  private updateRouterActive(): void {\r\n    if (\r\n      !this.listOfRouterLink ||\r\n      !this.listOfRouterLinkWithHref ||\r\n      !this.router ||\r\n      !this.router.navigated ||\r\n      !this.vtsMatchRouter\r\n    ) {\r\n      return;\r\n    }\r\n    Promise.resolve().then(() => {\r\n      const hasActiveLinks = this.hasActiveLinks();\r\n      if (this.vtsSelected !== hasActiveLinks) {\r\n        this.vtsSelected = hasActiveLinks;\r\n        this.setSelectedState(this.vtsSelected);\r\n        this.cdr.markForCheck();\r\n        if (this.vtsSubmenuService) {\r\n          this.vtsSubmenuService.mode$.subscribe(mode => {\r\n            if (mode === 'inline') {\r\n              this.vtsSubmenuService.setOpenStateRecursive();\r\n            }\r\n          });\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  private hasActiveLinks(): boolean {\r\n    const isActiveCheckFn = this.isLinkActive(this.router!);\r\n    return (\r\n      (this.routerLink && isActiveCheckFn(this.routerLink)) ||\r\n      (this.routerLinkWithHref && isActiveCheckFn(this.routerLinkWithHref)) ||\r\n      this.listOfRouterLink.some(isActiveCheckFn) ||\r\n      this.listOfRouterLinkWithHref.some(isActiveCheckFn)\r\n    );\r\n  }\r\n\r\n  private isLinkActive(router: Router): (link: RouterLink | RouterLink) => boolean {\r\n    return (link: RouterLink | RouterLink) => {\r\n      return link.urlTree ? router.isActive(link.urlTree, this.vtsMatchRouterExact) : false;\r\n    };\r\n  }\r\n\r\n  constructor(\r\n    private vtsMenuService: MenuService,\r\n    private cdr: ChangeDetectorRef,\r\n    @Optional() private vtsSubmenuService: VtsSubmenuService,\r\n    @Inject(VtsIsMenuInsideDropDownToken) public isMenuInsideDropDown: boolean,\r\n    @Optional() private directionality: Directionality,\r\n    @Optional() private routerLink?: RouterLink,\r\n    @Optional() private routerLinkWithHref?: RouterLink,\r\n    @Optional() private router?: Router\r\n  ) {\r\n    if (router) {\r\n      this.router!.events.pipe(\r\n        takeUntil(this.destroy$),\r\n        filter(e => e instanceof NavigationEnd)\r\n      ).subscribe(() => {\r\n        this.updateRouterActive();\r\n      });\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.dir = this.directionality.value;\r\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\r\n      this.dir = direction;\r\n    });\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    this.listOfRouterLink.changes\r\n      .pipe(takeUntil(this.destroy$))\r\n      .subscribe(() => this.updateRouterActive());\r\n    this.listOfRouterLinkWithHref.changes\r\n      .pipe(takeUntil(this.destroy$))\r\n      .subscribe(() => this.updateRouterActive());\r\n    this.updateRouterActive();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes.vtsSelected) {\r\n      this.setSelectedState(this.vtsSelected);\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  Output,\r\n  TemplateRef,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { VtsMenuModeType } from './menu.types';\r\n\r\n@Component({\r\n  selector: '[vts-submenu-title]',\r\n  exportAs: 'vtsSubmenuTitle',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  template: `\r\n    <i vts-icon [vtsType]=\"vtsIcon\" *ngIf=\"vtsIcon\"></i>\r\n    <ng-container *vtsStringTemplateOutlet=\"vtsTitle\">\r\n      <span>{{ vtsTitle }}</span>\r\n    </ng-container>\r\n    <ng-content></ng-content>\r\n    <span\r\n      [ngSwitch]=\"dir\"\r\n      *ngIf=\"isMenuInsideDropDown; else notDropdownTpl\"\r\n      class=\"vts-dropdown-menu-submenu-expand-icon\"\r\n    >\r\n      <i\r\n        *ngSwitchCase=\"'rtl'\"\r\n        vts-icon\r\n        vtsType=\"ChevronLeft\"\r\n        class=\"vts-dropdown-menu-submenu-arrow-icon\"\r\n      ></i>\r\n      <i\r\n        *ngSwitchDefault\r\n        vts-icon\r\n        vtsType=\"ChevronRight\"\r\n        class=\"vts-dropdown-menu-submenu-arrow-icon\"\r\n      ></i>\r\n    </span>\r\n    <ng-template #notDropdownTpl>\r\n      <i class=\"vts-menu-submenu-arrow\"></i>\r\n    </ng-template>\r\n  `,\r\n  host: {\r\n    '[class.vts-dropdown-menu-submenu-title]': 'isMenuInsideDropDown',\r\n    '[class.vts-menu-submenu-title]': '!isMenuInsideDropDown',\r\n    '[style.marginLeft.px]': `dir === 'rtl' ? null : marginLeft `,\r\n    '(click)': 'clickTitle()',\r\n    '(mouseenter)': 'setMouseState(true)',\r\n    '(mouseleave)': 'setMouseState(false)'\r\n  }\r\n})\r\nexport class VtsSubMenuTitleComponent implements OnDestroy, OnInit {\r\n  @Input() vtsIcon: string | null = null;\r\n  @Input() vtsTitle: string | TemplateRef<void> | null = null;\r\n  @Input() isMenuInsideDropDown = false;\r\n  @Input() vtsDisabled = false;\r\n  @Input() marginLeft: number | null = null;\r\n  @Input() mode: VtsMenuModeType = 'vertical';\r\n  @Output() readonly toggleSubMenu = new EventEmitter();\r\n  @Output() readonly subMenuMouseState = new EventEmitter<boolean>();\r\n\r\n  dir: Direction = 'ltr';\r\n  private destroy$ = new Subject<void>();\r\n\r\n  constructor(private cdr: ChangeDetectorRef, @Optional() private directionality: Directionality) {}\r\n  ngOnInit(): void {\r\n    this.dir = this.directionality.value;\r\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\r\n      this.dir = direction;\r\n      this.cdr.detectChanges();\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  setMouseState(state: boolean): void {\r\n    if (!this.vtsDisabled) {\r\n      this.subMenuMouseState.next(state);\r\n    }\r\n  }\r\n  clickTitle(): void {\r\n    if (this.mode === 'inline' && !this.vtsDisabled) {\r\n      this.toggleSubMenu.emit();\r\n    }\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  Renderer2,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { accordionMotion } from '@vts-voffice/ng-vts/core/animation';\r\nimport { VtsSafeAny } from '@vts-voffice/ng-vts/core/types';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { VtsMenuModeType } from './menu.types';\r\n\r\n@Component({\r\n  selector: '[vts-submenu-inline-child]',\r\n  animations: [accordionMotion],\r\n  exportAs: 'vtsSubmenuInlineChild',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  template: `\r\n    <ng-template [ngTemplateOutlet]=\"templateOutlet\"></ng-template>\r\n  `,\r\n  host: {\r\n    '[class.vts-menu-rtl]': `dir === 'rtl'`,\r\n    '[@accordionMotion]': 'expandState'\r\n  }\r\n})\r\nexport class VtsSubmenuInlineChildComponent implements OnDestroy, OnInit, OnChanges {\r\n  @Input() templateOutlet: TemplateRef<VtsSafeAny> | null = null;\r\n  @Input() menuClass: string = '';\r\n  @Input() mode: VtsMenuModeType = 'vertical';\r\n  @Input() vtsOpen = false;\r\n  listOfCacheClassName: string[] = [];\r\n  expandState = 'collapsed';\r\n  dir: Direction = 'ltr';\r\n  private destroy$ = new Subject<void>();\r\n\r\n  constructor(\r\n    private elementRef: ElementRef,\r\n    private renderer: Renderer2,\r\n    @Optional() private directionality: Directionality\r\n  ) {\r\n    // TODO: move to host after View Engine deprecation\r\n    this.elementRef.nativeElement.classList.add('vts-menu', 'vts-menu-inline', 'vts-menu-sub');\r\n  }\r\n\r\n  calcMotionState(): void {\r\n    if (this.vtsOpen) {\r\n      this.expandState = 'expanded';\r\n    } else {\r\n      this.expandState = 'collapsed';\r\n    }\r\n  }\r\n  ngOnInit(): void {\r\n    this.calcMotionState();\r\n\r\n    this.dir = this.directionality.value;\r\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\r\n      this.dir = direction;\r\n    });\r\n  }\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { mode, vtsOpen, menuClass } = changes;\r\n    if (mode || vtsOpen) {\r\n      this.calcMotionState();\r\n    }\r\n    if (menuClass) {\r\n      if (this.listOfCacheClassName.length) {\r\n        this.listOfCacheClassName\r\n          .filter(item => !!item)\r\n          .forEach(className => {\r\n            this.renderer.removeClass(this.elementRef.nativeElement, className);\r\n          });\r\n      }\r\n      if (this.menuClass) {\r\n        this.listOfCacheClassName = this.menuClass.split(' ');\r\n        this.listOfCacheClassName\r\n          .filter(item => !!item)\r\n          .forEach(className => {\r\n            this.renderer.addClass(this.elementRef.nativeElement, className);\r\n          });\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  Output,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n  ViewChild,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { slideMotion, zoomBigMotion } from '@vts-voffice/ng-vts/core/animation';\r\nimport { VtsSafeAny } from '@vts-voffice/ng-vts/core/types';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { VtsMenuModeType } from './menu.types';\r\n\r\n@Component({\r\n  selector: '[vts-submenu-none-inline-child]',\r\n  exportAs: 'vtsSubmenuNoneInlineChild',\r\n  encapsulation: ViewEncapsulation.None,\r\n  animations: [zoomBigMotion, slideMotion],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  template: `\r\n    <div\r\n      #container\r\n      [class.vts-dropdown-menu]=\"isMenuInsideDropDown\"\r\n      [class.vts-dropdown-menu-vertical]=\"isMenuInsideDropDown\"\r\n      [class.vts-dropdown-menu-sub]=\"isMenuInsideDropDown\"\r\n      [class.vts-menu-sub]=\"!isMenuInsideDropDown\"\r\n      [class.vts-menu-rtl]=\"dir === 'rtl'\"\r\n      [ngClass]=\"menuClass\"\r\n    >\r\n      <ng-template [ngTemplateOutlet]=\"templateOutlet\"></ng-template>\r\n    </div>\r\n  `,\r\n  host: {\r\n    '[class.vts-menu-submenu]': 'true',\r\n    '[class.vts-menu-submenu-popup]': 'true',\r\n    '[class.vts-menu-of-horizontal]': \"rootMode === 'horizontal'\",\r\n    '[class.vts-menu-of-vertical]': \"rootMode === 'vertical'\",\r\n    '[class.vts-menu-submenu-placement-bottom]': \"mode === 'horizontal'\",\r\n    '[class.vts-menu-submenu-placement-right]': \"mode === 'vertical' && position === 'right'\",\r\n    '[class.vts-menu-submenu-placement-left]': \"mode === 'vertical' && position === 'left'\",\r\n    '[class.vts-menu-submenu-rtl]': 'dir ===\"rtl\"',\r\n    '[class.vts-menu-submenu-sub-level]': 'level > 1',\r\n    '[class.vts-menu-submenu-sub-level-first]': 'isFirst',\r\n    '[class.vts-menu-submenu-sub-level-latest]': 'isLasted',\r\n    '[@slideMotion]': 'expandState',\r\n    '[@zoomBigMotion]': 'expandState',\r\n    '(mouseenter)': 'setMouseState(true)',\r\n    '(mouseleave)': 'setMouseState(false)',\r\n    '[attr.level]': 'level'\r\n  }\r\n})\r\nexport class VtsSubmenuNoneInlineChildComponent implements OnDestroy, OnInit, OnChanges {\r\n  @Input() menuClass: string = '';\r\n  @Input() templateOutlet: TemplateRef<VtsSafeAny> | null = null;\r\n  @Input() isMenuInsideDropDown = false;\r\n  @Input() mode: VtsMenuModeType = 'vertical';\r\n  @Input() rootMode?: VtsMenuModeType | null;\r\n  @Input() position = 'right';\r\n  @Input() vtsDisabled = false;\r\n  @Input() vtsOpen = false;\r\n  @Input() level: number = 1;\r\n  @Input() isFirst: boolean | null = null;\r\n  @Input() isLasted: boolean | null = null;\r\n  @Output() readonly subMenuMouseState = new EventEmitter<boolean>();\r\n  @ViewChild('container')\r\n  set containerEl(el: ElementRef) {\r\n    if (el) el.nativeElement.classList.add('vts-menu');\r\n  }\r\n\r\n  constructor(@Optional() private directionality: Directionality) {}\r\n\r\n  setMouseState(state: boolean): void {\r\n    if (!this.vtsDisabled) {\r\n      this.subMenuMouseState.next(state);\r\n    }\r\n  }\r\n  expandState = 'collapsed';\r\n  dir: Direction = 'ltr';\r\n  private destroy$ = new Subject<void>();\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n  calcMotionState(): void {\r\n    if (this.vtsOpen) {\r\n      if (this.mode === 'horizontal') {\r\n        this.expandState = 'bottom';\r\n      } else if (this.mode === 'vertical') {\r\n        this.expandState = 'active';\r\n      }\r\n    } else {\r\n      this.expandState = 'collapsed';\r\n    }\r\n  }\r\n  ngOnInit(): void {\r\n    this.calcMotionState();\r\n\r\n    this.dir = this.directionality.value;\r\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\r\n      this.dir = direction;\r\n    });\r\n  }\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { mode, vtsOpen } = changes;\r\n    if (mode || vtsOpen) {\r\n      this.calcMotionState();\r\n    }\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport { CdkOverlayOrigin, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport {\r\n  AfterContentInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ContentChildren,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Host,\r\n  Inject,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  Output,\r\n  QueryList,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n  ViewChild,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { VtsNoAnimationDirective } from '@vts-voffice/ng-vts/core/no-animation';\r\nimport { getPlacementName, POSITION_MAP } from '@vts-voffice/ng-vts/core/overlay';\r\nimport { BooleanInput } from '@vts-voffice/ng-vts/core/types';\r\nimport { InputBoolean } from '@vts-voffice/ng-vts/core/util';\r\nimport { merge, Subject } from 'rxjs';\r\nimport { map, startWith, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { VtsMenuItemDirective } from './menu-item.directive';\r\nimport { MenuService } from './menu.service';\r\nimport { VtsIsMenuInsideDropDownToken } from './menu.token';\r\nimport { VtsMenuModeType } from './menu.types';\r\nimport { VtsSubmenuService } from './submenu.service';\r\n\r\nconst listOfVerticalPositions = [\r\n  POSITION_MAP.rightTop,\r\n  POSITION_MAP.right,\r\n  POSITION_MAP.rightBottom,\r\n  POSITION_MAP.leftTop,\r\n  POSITION_MAP.left,\r\n  POSITION_MAP.leftBottom\r\n];\r\nconst listOfHorizontalPositions = [POSITION_MAP.bottomLeft];\r\n\r\n@Component({\r\n  selector: '[vts-submenu]',\r\n  exportAs: 'vtsSubmenu',\r\n  providers: [VtsSubmenuService],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  preserveWhitespaces: false,\r\n  template: `\r\n    <div\r\n      vts-submenu-title\r\n      cdkOverlayOrigin\r\n      #origin=\"cdkOverlayOrigin\"\r\n      [vtsIcon]=\"vtsIcon\"\r\n      [vtsTitle]=\"vtsTitle\"\r\n      vts-tooltip\r\n      [vtsTooltipTitle]=\"vtsTooltip\"\r\n      [vtsTooltipPlacement]=\"'topRight'\"\r\n      [mode]=\"mode\"\r\n      [vtsDisabled]=\"vtsDisabled\"\r\n      [isMenuInsideDropDown]=\"isMenuInsideDropDown\"\r\n      (subMenuMouseState)=\"setMouseEnterState($event)\"\r\n      (toggleSubMenu)=\"toggleSubMenu()\"\r\n    >\r\n      <ng-content select=\"[title]\" *ngIf=\"!vtsTitle\"></ng-content>\r\n    </div>\r\n    <div\r\n      *ngIf=\"mode === 'inline'; else nonInlineTemplate\"\r\n      vts-submenu-inline-child\r\n      [mode]=\"mode\"\r\n      [vtsOpen]=\"vtsOpen\"\r\n      [@.disabled]=\"noAnimation?.vtsNoAnimation\"\r\n      [vtsNoAnimation]=\"noAnimation?.vtsNoAnimation\"\r\n      [menuClass]=\"vtsMenuClassName\"\r\n      [templateOutlet]=\"subMenuTemplate\"\r\n    ></div>\r\n    <ng-template #nonInlineTemplate>\r\n      <ng-template\r\n        cdkConnectedOverlay\r\n        (positionChange)=\"onPositionChange($event)\"\r\n        [cdkConnectedOverlayPositions]=\"overlayPositions\"\r\n        [cdkConnectedOverlayOrigin]=\"origin\"\r\n        [cdkConnectedOverlayOpen]=\"vtsOpen\"\r\n        [cdkConnectedOverlayTransformOriginOn]=\"'.vts-menu-submenu'\"\r\n      >\r\n        <div\r\n          vts-submenu-none-inline-child\r\n          [level]=\"level\"\r\n          [isFirst]=\"isFirst$ | async\"\r\n          [isLasted]=\"isLasted$ | async\"\r\n          [mode]=\"mode\"\r\n          [rootMode]=\"rootMode$ | async\"\r\n          [vtsOpen]=\"vtsOpen\"\r\n          [position]=\"position\"\r\n          [vtsDisabled]=\"vtsDisabled\"\r\n          [isMenuInsideDropDown]=\"isMenuInsideDropDown\"\r\n          [templateOutlet]=\"subMenuTemplate\"\r\n          [menuClass]=\"vtsMenuClassName\"\r\n          [@.disabled]=\"noAnimation?.vtsNoAnimation\"\r\n          [vtsNoAnimation]=\"noAnimation?.vtsNoAnimation\"\r\n          (subMenuMouseState)=\"setMouseEnterState($event)\"\r\n        ></div>\r\n      </ng-template>\r\n    </ng-template>\r\n\r\n    <ng-template #subMenuTemplate>\r\n      <ng-content></ng-content>\r\n    </ng-template>\r\n  `,\r\n  host: {\r\n    '[class.vts-dropdown-menu-submenu]': `isMenuInsideDropDown`,\r\n    '[class.vts-dropdown-menu-submenu-disabled]': `isMenuInsideDropDown && vtsDisabled`,\r\n    '[class.vts-dropdown-menu-submenu-open]': `isMenuInsideDropDown && vtsOpen`,\r\n    '[class.vts-dropdown-menu-submenu-selected]': `isMenuInsideDropDown && isSelected`,\r\n    '[class.vts-dropdown-menu-submenu-vertical]': `isMenuInsideDropDown && mode === 'vertical'`,\r\n    '[class.vts-dropdown-menu-submenu-horizontal]': `isMenuInsideDropDown && mode === 'horizontal'`,\r\n    '[class.vts-dropdown-menu-submenu-inline]': `isMenuInsideDropDown && mode === 'inline'`,\r\n    '[class.vts-dropdown-menu-submenu-active]': `isMenuInsideDropDown && isActive`,\r\n    '[class.vts-menu-submenu]': `!isMenuInsideDropDown`,\r\n    '[class.vts-menu-submenu-disabled]': `!isMenuInsideDropDown && vtsDisabled`,\r\n    '[class.vts-menu-submenu-open]': `!isMenuInsideDropDown && vtsOpen`,\r\n    '[class.vts-menu-submenu-selected]': `!isMenuInsideDropDown && isSelected`,\r\n    '[class.vts-menu-submenu-vertical]': `!isMenuInsideDropDown && mode === 'vertical'`,\r\n    '[class.vts-menu-submenu-horizontal]': `!isMenuInsideDropDown && mode === 'horizontal'`,\r\n    '[class.vts-menu-submenu-inline]': `!isMenuInsideDropDown && mode === 'inline'`,\r\n    '[class.vts-menu-submenu-active]': `!isMenuInsideDropDown && isActive`,\r\n    '[class.vts-menu-submenu-rtl]': `dir === 'rtl'`,\r\n    '[attr.level]': 'level'\r\n  }\r\n})\r\nexport class VtsSubMenuComponent implements OnInit, OnDestroy, AfterContentInit, OnChanges {\r\n  static ngAcceptInputType_vtsOpen: BooleanInput;\r\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\r\n\r\n  @Input() vtsMenuClassName: string = '';\r\n  @Input() vtsTitle: string | TemplateRef<void> | null = null;\r\n  @Input() vtsTooltip: string | null = null;\r\n  @Input() vtsIcon: string | null = null;\r\n  @Input() @InputBoolean() vtsOpen = false;\r\n  @Input() @InputBoolean() vtsDisabled = false;\r\n  @Output() readonly vtsOpenChange: EventEmitter<boolean> = new EventEmitter();\r\n  @ViewChild(CdkOverlayOrigin, { static: true, read: ElementRef })\r\n  cdkOverlayOrigin: ElementRef | null = null;\r\n  @ContentChildren(VtsSubMenuComponent, { descendants: true })\r\n  listOfVtsSubMenuComponent: QueryList<VtsSubMenuComponent> | null = null;\r\n  @ContentChildren(VtsMenuItemDirective, { descendants: true })\r\n  listOfVtsMenuItemDirective: QueryList<VtsMenuItemDirective> | null = null;\r\n  level = this.vtsSubmenuService.level;\r\n  isFirst$ = this.vtsSubmenuService.isFirst$;\r\n  isLasted$ = this.vtsSubmenuService.isLasted$;\r\n  rootMode$ = this.vtsSubmenuService.rootMode$;\r\n  private destroy$ = new Subject<void>();\r\n  position = 'right';\r\n  triggerWidth: number | null = null;\r\n  mode: VtsMenuModeType = 'vertical';\r\n  overlayPositions = listOfVerticalPositions;\r\n  isSelected = false;\r\n  isActive = false;\r\n  dir: Direction = 'ltr';\r\n\r\n  /** set the submenu host open status directly **/\r\n  setOpenStateWithoutDebounce(open: boolean): void {\r\n    this.vtsSubmenuService.setOpenStateWithoutDebounce(open);\r\n  }\r\n\r\n  toggleSubMenu(): void {\r\n    this.setOpenStateWithoutDebounce(!this.vtsOpen);\r\n  }\r\n\r\n  setMouseEnterState(value: boolean): void {\r\n    this.isActive = value;\r\n    if (this.mode !== 'inline') {\r\n      this.vtsSubmenuService.setMouseEnterTitleOrOverlayState(value);\r\n    }\r\n  }\r\n\r\n  setTriggerWidth(): void {\r\n    if (this.mode === 'horizontal' && this.platform.isBrowser && this.cdkOverlayOrigin) {\r\n      /** TODO: fast dom **/\r\n      this.triggerWidth = this.cdkOverlayOrigin!.nativeElement.getBoundingClientRect().width;\r\n    }\r\n  }\r\n\r\n  onPositionChange(position: ConnectedOverlayPositionChange): void {\r\n    const placement = getPlacementName(position);\r\n    if (placement === 'rightTop' || placement === 'rightBottom' || placement === 'right') {\r\n      this.position = 'right';\r\n    } else if (placement === 'leftTop' || placement === 'leftBottom' || placement === 'left') {\r\n      this.position = 'left';\r\n    }\r\n    this.cdr.markForCheck();\r\n  }\r\n\r\n  constructor(\r\n    public vtsMenuService: MenuService,\r\n    private cdr: ChangeDetectorRef,\r\n    public vtsSubmenuService: VtsSubmenuService,\r\n    private platform: Platform,\r\n    @Inject(VtsIsMenuInsideDropDownToken) public isMenuInsideDropDown: boolean,\r\n    @Optional() private directionality: Directionality,\r\n    @Host() @Optional() public noAnimation?: VtsNoAnimationDirective\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    /** submenu mode update **/\r\n    this.vtsSubmenuService.mode$.pipe(takeUntil(this.destroy$)).subscribe(mode => {\r\n      this.mode = mode;\r\n      if (mode === 'horizontal') {\r\n        this.overlayPositions = listOfHorizontalPositions;\r\n      } else if (mode === 'vertical') {\r\n        this.overlayPositions = listOfVerticalPositions;\r\n      }\r\n      this.cdr.markForCheck();\r\n    });\r\n    /** current submenu open status **/\r\n    this.vtsSubmenuService.isCurrentSubMenuOpen$.pipe(takeUntil(this.destroy$)).subscribe(open => {\r\n      this.isActive = open;\r\n      if (open !== this.vtsOpen) {\r\n        this.setTriggerWidth();\r\n        this.vtsOpen = open;\r\n        this.vtsOpenChange.emit(this.vtsOpen);\r\n        this.cdr.markForCheck();\r\n      }\r\n    });\r\n\r\n    this.dir = this.directionality.value;\r\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\r\n      this.dir = direction;\r\n      this.cdr.markForCheck();\r\n    });\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    this.setTriggerWidth();\r\n    const listOfVtsMenuItemDirective = this.listOfVtsMenuItemDirective;\r\n    const changes = listOfVtsMenuItemDirective!.changes;\r\n    const mergedObservable = merge(\r\n      ...[changes, ...listOfVtsMenuItemDirective!.map(menu => menu.selected$)]\r\n    );\r\n    changes\r\n      .pipe(\r\n        startWith(listOfVtsMenuItemDirective),\r\n        switchMap(() => mergedObservable),\r\n        startWith(true),\r\n        map(() => listOfVtsMenuItemDirective!.some(e => e.vtsSelected)),\r\n        takeUntil(this.destroy$)\r\n      )\r\n      .subscribe(selected => {\r\n        this.isSelected = selected;\r\n        this.cdr.markForCheck();\r\n      });\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { vtsOpen } = changes;\r\n    if (vtsOpen) {\r\n      this.vtsSubmenuService.setOpenStateWithoutDebounce(this.vtsOpen);\r\n      this.setTriggerWidth();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n  AfterContentInit,\r\n  ChangeDetectorRef,\r\n  ContentChildren,\r\n  Directive,\r\n  EventEmitter,\r\n  Inject,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  Output,\r\n  QueryList,\r\n  SimpleChanges,\r\n  SkipSelf\r\n} from '@angular/core';\r\nimport { BooleanInput } from '@vts-voffice/ng-vts/core/types';\r\nimport { InputBoolean } from '@vts-voffice/ng-vts/core/util';\r\nimport { BehaviorSubject, combineLatest, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { VtsMenuItemDirective } from './menu-item.directive';\r\nimport { MenuService } from './menu.service';\r\nimport { VtsIsMenuInsideDropDownToken, VtsMenuServiceLocalToken } from './menu.token';\r\nimport { VtsMenuModeType } from './menu.types';\r\nimport { VtsSubMenuComponent } from './submenu.component';\r\n\r\nexport function MenuServiceFactory(\r\n  serviceInsideDropDown: MenuService,\r\n  serviceOutsideDropDown: MenuService\r\n): MenuService {\r\n  return serviceInsideDropDown ? serviceInsideDropDown : serviceOutsideDropDown;\r\n}\r\nexport function MenuDropDownTokenFactory(isMenuInsideDropDownToken: boolean): boolean {\r\n  return isMenuInsideDropDownToken ? isMenuInsideDropDownToken : false;\r\n}\r\n\r\n@Directive({\r\n  selector: '[vts-menu]',\r\n  exportAs: 'vtsMenu',\r\n  providers: [\r\n    {\r\n      provide: VtsMenuServiceLocalToken,\r\n      useClass: MenuService\r\n    },\r\n    /** use the top level service **/\r\n    {\r\n      provide: MenuService,\r\n      useFactory: MenuServiceFactory,\r\n      deps: [[new SkipSelf(), new Optional(), MenuService], VtsMenuServiceLocalToken]\r\n    },\r\n    /** check if menu inside dropdown-menu component **/\r\n    {\r\n      provide: VtsIsMenuInsideDropDownToken,\r\n      useFactory: MenuDropDownTokenFactory,\r\n      deps: [[new SkipSelf(), new Optional(), VtsIsMenuInsideDropDownToken]]\r\n    }\r\n  ],\r\n  host: {\r\n    '[class.vts-dropdown-menu]': `isMenuInsideDropDown`,\r\n    '[class.vts-dropdown-menu-root]': `isMenuInsideDropDown`,\r\n    '[class.vts-dropdown-menu-vertical]': `isMenuInsideDropDown && actualMode === 'vertical'`,\r\n    '[class.vts-dropdown-menu-horizontal]': `isMenuInsideDropDown && actualMode === 'horizontal'`,\r\n    '[class.vts-dropdown-menu-inline]': `isMenuInsideDropDown && actualMode === 'inline'`,\r\n    '[class.vts-dropdown-menu-inline-collapsed]': `isMenuInsideDropDown && vtsInlineCollapsed`,\r\n    '[class.vts-menu]': `!isMenuInsideDropDown`,\r\n    '[class.vts-menu-root]': `!isMenuInsideDropDown`,\r\n    '[class.vts-menu-vertical]': `!isMenuInsideDropDown && actualMode === 'vertical'`,\r\n    '[class.vts-menu-horizontal]': `!isMenuInsideDropDown && actualMode === 'horizontal'`,\r\n    '[class.vts-menu-inline]': `!isMenuInsideDropDown && actualMode === 'inline'`,\r\n    '[class.vts-menu-inline-collapsed]': `!isMenuInsideDropDown && vtsInlineCollapsed`,\r\n    '[class.vts-menu-rtl]': `dir === 'rtl'`\r\n  }\r\n})\r\nexport class VtsMenuDirective implements AfterContentInit, OnInit, OnChanges, OnDestroy {\r\n  static ngAcceptInputType_vtsInlineCollapsed: BooleanInput;\r\n  static ngAcceptInputType_vtsSelectable: BooleanInput;\r\n\r\n  @ContentChildren(VtsMenuItemDirective, { descendants: true })\r\n  listOfVtsMenuItemDirective!: QueryList<VtsMenuItemDirective>;\r\n  @ContentChildren(VtsSubMenuComponent, { descendants: true })\r\n  listOfVtsSubMenuComponent!: QueryList<VtsSubMenuComponent>;\r\n  @Input() vtsMode: VtsMenuModeType = 'vertical';\r\n  @Input() @InputBoolean() vtsInlineCollapsed = false;\r\n  @Input() @InputBoolean() vtsSelectable = !this.isMenuInsideDropDown;\r\n  @Output() readonly vtsClick = new EventEmitter<VtsMenuItemDirective>();\r\n  actualMode: VtsMenuModeType = 'vertical';\r\n  dir: Direction = 'ltr';\r\n  private inlineCollapsed$ = new BehaviorSubject<boolean>(this.vtsInlineCollapsed);\r\n  private mode$ = new BehaviorSubject<VtsMenuModeType>(this.vtsMode);\r\n  private destroy$ = new Subject();\r\n  private listOfOpenedVtsSubMenuComponent: VtsSubMenuComponent[] = [];\r\n\r\n  setInlineCollapsed(inlineCollapsed: boolean): void {\r\n    this.vtsInlineCollapsed = inlineCollapsed;\r\n    this.inlineCollapsed$.next(inlineCollapsed);\r\n  }\r\n\r\n  updateInlineCollapse(): void {\r\n    if (this.listOfVtsMenuItemDirective) {\r\n      if (this.vtsInlineCollapsed) {\r\n        this.listOfOpenedVtsSubMenuComponent = this.listOfVtsSubMenuComponent.filter(\r\n          submenu => submenu.vtsOpen\r\n        );\r\n        this.listOfVtsSubMenuComponent.forEach(submenu =>\r\n          submenu.setOpenStateWithoutDebounce(false)\r\n        );\r\n      } else {\r\n        this.listOfOpenedVtsSubMenuComponent.forEach(submenu =>\r\n          submenu.setOpenStateWithoutDebounce(true)\r\n        );\r\n        this.listOfOpenedVtsSubMenuComponent = [];\r\n      }\r\n    }\r\n  }\r\n\r\n  constructor(\r\n    private vtsMenuService: MenuService,\r\n    @Inject(VtsIsMenuInsideDropDownToken) public isMenuInsideDropDown: boolean,\r\n    private cdr: ChangeDetectorRef,\r\n    @Optional() private directionality: Directionality\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    combineLatest([this.inlineCollapsed$, this.mode$])\r\n      .pipe(takeUntil(this.destroy$))\r\n      .subscribe(([inlineCollapsed, mode]) => {\r\n        this.actualMode = inlineCollapsed ? 'vertical' : mode;\r\n        this.vtsMenuService.setMode(this.actualMode);\r\n        this.cdr.markForCheck();\r\n      });\r\n    this.vtsMenuService.descendantMenuItemClick$.pipe(takeUntil(this.destroy$)).subscribe(menu => {\r\n      this.vtsClick.emit(menu);\r\n      if (this.vtsSelectable && !menu.vtsMatchRouter) {\r\n        this.listOfVtsMenuItemDirective.forEach(item => item.setSelectedState(item === menu));\r\n      }\r\n    });\r\n\r\n    this.dir = this.directionality.value;\r\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\r\n      this.dir = direction;\r\n      this.vtsMenuService.setMode(this.actualMode);\r\n      this.cdr.markForCheck();\r\n    });\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    this.inlineCollapsed$.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n      this.updateInlineCollapse();\r\n      this.cdr.markForCheck();\r\n    });\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { vtsInlineCollapsed, vtsMode } = changes;\r\n    if (vtsInlineCollapsed) {\r\n      this.inlineCollapsed$.next(this.vtsInlineCollapsed);\r\n    }\r\n    if (vtsMode) {\r\n      this.mode$.next(this.vtsMode);\r\n      if (!changes.vtsMode.isFirstChange() && this.listOfVtsSubMenuComponent) {\r\n        this.listOfVtsSubMenuComponent.forEach(submenu =>\r\n          submenu.setOpenStateWithoutDebounce(false)\r\n        );\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  Inject,\r\n  Input,\r\n  Optional,\r\n  Renderer2,\r\n  SkipSelf,\r\n  TemplateRef,\r\n  ViewChild,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { VtsIsMenuInsideDropDownToken } from './menu.token';\r\n\r\nexport function MenuGroupFactory(isMenuInsideDropDownToken: boolean): boolean {\r\n  return isMenuInsideDropDownToken ? isMenuInsideDropDownToken : false;\r\n}\r\n@Component({\r\n  selector: '[vts-menu-group]',\r\n  exportAs: 'vtsMenuGroup',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    /** check if menu inside dropdown-menu component **/\r\n    {\r\n      provide: VtsIsMenuInsideDropDownToken,\r\n      useFactory: MenuGroupFactory,\r\n      deps: [[new SkipSelf(), new Optional(), VtsIsMenuInsideDropDownToken]]\r\n    }\r\n  ],\r\n  encapsulation: ViewEncapsulation.None,\r\n  template: `\r\n    <div\r\n      [class.vts-menu-item-group-title]=\"!isMenuInsideDropDown\"\r\n      [class.vts-dropdown-menu-item-group-title]=\"isMenuInsideDropDown\"\r\n      #titleElement\r\n    >\r\n      <ng-container *vtsStringTemplateOutlet=\"vtsTitle\">\r\n        {{ vtsTitle }}\r\n      </ng-container>\r\n      <ng-content select=\"[title]\" *ngIf=\"!vtsTitle\"></ng-content>\r\n    </div>\r\n    <ng-content></ng-content>\r\n  `,\r\n  preserveWhitespaces: false\r\n})\r\nexport class VtsMenuGroupComponent implements AfterViewInit {\r\n  @Input() vtsTitle?: string | TemplateRef<void>;\r\n  @ViewChild('titleElement') titleElement?: ElementRef;\r\n\r\n  constructor(\r\n    public elementRef: ElementRef,\r\n    private renderer: Renderer2,\r\n    @Inject(VtsIsMenuInsideDropDownToken) public isMenuInsideDropDown: boolean\r\n  ) {\r\n    const className = this.isMenuInsideDropDown\r\n      ? 'vts-dropdown-menu-item-group'\r\n      : 'vts-menu-item-group';\r\n    this.renderer.addClass(elementRef.nativeElement, className);\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const ulElement = this.titleElement!.nativeElement.nextElementSibling;\r\n    if (ulElement) {\r\n      /** add classname to ul **/\r\n      const className = this.isMenuInsideDropDown\r\n        ? 'vts-dropdown-menu-item-group-list'\r\n        : 'vts-menu-item-group-list';\r\n      this.renderer.addClass(ulElement, className);\r\n    }\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { BidiModule } from '@angular/cdk/bidi';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { PlatformModule } from '@angular/cdk/platform';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { VtsNoAnimationModule } from '@vts-voffice/ng-vts/core/no-animation';\r\nimport { VtsOutletModule } from '@vts-voffice/ng-vts/core/outlet';\r\nimport { VtsIconModule } from '@vts-voffice/ng-vts/icon';\r\nimport { VtsToolTipModule } from '@vts-voffice/ng-vts/tooltip';\r\n\r\nimport { VtsMenuGroupComponent } from './menu-group.component';\r\nimport { VtsMenuItemDirective } from './menu-item.directive';\r\nimport { VtsMenuDirective } from './menu.directive';\r\nimport { VtsSubmenuInlineChildComponent } from './submenu-inline-child.component';\r\nimport { VtsSubmenuNoneInlineChildComponent } from './submenu-non-inline-child.component';\r\nimport { VtsSubMenuTitleComponent } from './submenu-title.component';\r\nimport { VtsSubMenuComponent } from './submenu.component';\r\n\r\n@NgModule({\r\n  imports: [\r\n    BidiModule,\r\n    CommonModule,\r\n    PlatformModule,\r\n    OverlayModule,\r\n    VtsIconModule,\r\n    VtsNoAnimationModule,\r\n    VtsOutletModule,\r\n    VtsToolTipModule\r\n  ],\r\n  declarations: [\r\n    VtsMenuDirective,\r\n    VtsMenuItemDirective,\r\n    VtsSubMenuComponent,\r\n    VtsMenuGroupComponent,\r\n    VtsSubMenuTitleComponent,\r\n    VtsSubmenuInlineChildComponent,\r\n    VtsSubmenuNoneInlineChildComponent\r\n  ],\r\n  exports: [VtsMenuDirective, VtsMenuItemDirective, VtsSubMenuComponent, VtsMenuGroupComponent]\r\n})\r\nexport class VtsMenuModule {}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nexport type VtsMenuModeType = 'vertical' | 'horizontal' | 'inline';\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nexport * from './menu.directive';\r\nexport * from './menu-group.component';\r\nexport * from './menu-item.directive';\r\nexport * from './submenu.component';\r\nexport * from './submenu-title.component';\r\nexport * from './submenu-inline-child.component';\r\nexport * from './submenu-non-inline-child.component';\r\nexport * from './menu.module';\r\nexport * from './submenu.service';\r\nexport * from './menu.types';\r\nexport * from './menu.service';\r\nexport * from './menu.token';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i6","i9.VtsSubMenuTitleComponent","i10.VtsSubmenuInlineChildComponent","i11.VtsSubmenuNoneInlineChildComponent","i2","i1"],"mappings":"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"}