{"version":3,"file":"ui-vts-kit-ng-vts-tabs.mjs","sources":["../../components/tabs/tab-add-button.component.ts","../../components/tabs/tabs-ink-bar.directive.ts","../../components/tabs/tab-nav-item.directive.ts","../../components/tabs/tab-nav-operation.component.ts","../../components/tabs/tab-scroll-list.directive.ts","../../components/tabs/tab-nav-bar.component.ts","../../components/tabs/tab-body.component.ts","../../components/tabs/tab-close-button.component.ts","../../components/tabs/tab-link.directive.ts","../../components/tabs/tab.directive.ts","../../components/tabs/tab.component.ts","../../components/tabs/interfaces.ts","../../components/tabs/tabset.component.ts","../../components/tabs/tabs.module.ts","../../components/tabs/public-api.ts","../../components/tabs/ui-vts-kit-ng-vts-tabs.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 { Component, ElementRef, Input, TemplateRef } from '@angular/core';\n\nimport { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\n\n@Component({\n  selector: 'vts-tab-add-button, button[vts-tab-add-button]',\n  template: `\n    <ng-container *vtsStringTemplateOutlet=\"addIcon; let icon\">\n      <i vts-icon [vtsType]=\"icon\"></i>\n    </ng-container>\n  `,\n  host: {\n    class: 'vts-tabs-nav-add',\n    'aria-label': 'Add tab',\n    type: 'button'\n  }\n})\nexport class VtsTabAddButtonComponent {\n  @Input() addIcon: string | TemplateRef<VtsSafeAny> = 'PlusOutline:antd';\n\n  private readonly element: HTMLElement;\n\n  constructor(private elementRef: ElementRef<HTMLElement>) {\n    this.element = this.elementRef.nativeElement;\n  }\n\n  getElementWidth(): number {\n    return this.element?.offsetWidth || 0;\n  }\n\n  getElementHeight(): number {\n    return this.element?.offsetHeight || 0;\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 { Directive, ElementRef, Inject, Input, NgZone, Optional } from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\nimport { reqAnimFrame } from '@ui-vts-kit/ng-vts/core/polyfill';\nimport { VtsTabPositionMode } from './interfaces';\n\n@Directive({\n  selector: 'vts-tabs-ink-bar, [vts-tabs-ink-bar]',\n  host: {\n    class: 'vts-tabs-ink-bar',\n    '[class.vts-tabs-ink-bar-animated]': '_animated'\n  }\n})\nexport class VtsTabsInkBarDirective {\n  @Input() position: VtsTabPositionMode = 'horizontal';\n  @Input() animated = true;\n\n  get _animated(): boolean {\n    return this.animationMode !== 'NoopAnimations' && this.animated;\n  }\n\n  constructor(\n    private elementRef: ElementRef<HTMLElement>,\n    private ngZone: NgZone,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) public animationMode?: string\n  ) {}\n\n  alignToElement(element: HTMLElement): void {\n    this.ngZone.runOutsideAngular(() => {\n      reqAnimFrame(() => this.setStyles(element));\n    });\n  }\n\n  setStyles(element: HTMLElement): void {\n    const inkBar: HTMLElement = this.elementRef.nativeElement;\n\n    if (this.position === 'horizontal') {\n      inkBar.style.top = '';\n      inkBar.style.height = '';\n      inkBar.style.left = this.getLeftPosition(element);\n      inkBar.style.width = this.getElementWidth(element);\n    } else {\n      inkBar.style.left = '';\n      inkBar.style.width = '';\n      inkBar.style.top = this.getTopPosition(element);\n      inkBar.style.height = this.getElementHeight(element);\n    }\n  }\n\n  getLeftPosition(element: HTMLElement): string {\n    return element ? (element.offsetLeft || 0) + 'px' : '0';\n  }\n\n  getElementWidth(element: HTMLElement): string {\n    return element ? (element.offsetWidth || 0) + 'px' : '0';\n  }\n\n  getTopPosition(element: HTMLElement): string {\n    return element ? (element.offsetTop || 0) + 'px' : '0';\n  }\n\n  getElementHeight(element: HTMLElement): string {\n    return element ? (element.offsetHeight || 0) + 'px' : '0';\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 { FocusableOption } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\nimport { VtsTabComponent } from './tab.component';\n\n@Directive({\n  selector: '[vtsTabNavItem]'\n})\nexport class VtsTabNavItemDirective implements FocusableOption {\n  @Input() disabled: boolean = false;\n  @Input() tab!: VtsTabComponent;\n  @Input() active: boolean = false;\n  private el!: HTMLElement;\n  private parentElement!: HTMLElement;\n\n  constructor(public elementRef: ElementRef<HTMLElement>) {\n    this.el = elementRef.nativeElement;\n    this.parentElement = this.el.parentElement!;\n  }\n\n  focus(): void {\n    this.el.focus();\n  }\n\n  get width(): number {\n    return this.parentElement.offsetWidth;\n  }\n\n  get height(): number {\n    return this.parentElement.offsetHeight;\n  }\n\n  get left(): number {\n    return this.parentElement.offsetLeft;\n  }\n\n  get top(): number {\n    return this.parentElement.offsetTop;\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  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { VtsTabNavItemDirective } from './tab-nav-item.directive';\nimport { VtsDropdownPositionType } from './tab.component';\n\n@Component({\n  selector: 'vts-tab-nav-operation',\n  exportAs: 'vtsTabNavOperation',\n  preserveWhitespaces: false,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  template: `\n    <ng-container *ngIf=\"showMoreTabs; else scrollMoreTpl;\">\n      <button\n        vts-dropdown\n        class=\"vts-tabs-nav-more\"\n        type=\"button\"\n        tabindex=\"-1\"\n        aria-hidden=\"true\"\n        vtsOverlayClassName=\"vts-tabs-dropdown\"\n        #dropdownTrigger=\"vtsDropdown\"\n        [vtsDropdownMenu]=\"menu\"\n        [vtsPlacement]=\"vtsDropdownPosition\"\n        (vtsVisibleChange)=\"menuVisChange($event)\"\n        (mouseenter)=\"showItems()\"\n      >\n        <i vts-icon vtsType=\"Menu:vts\"></i>\n      </button>\n      <vts-dropdown-menu #menu=\"vtsDropdownMenu\">\n        <ul vts-menu *ngIf=\"menuOpened && !vtsDropdownContent\" [ngClass]=\"vtsDropdownClass\">\n          <li\n            vts-menu-item\n            *ngFor=\"let item of items\"\n            class=\"vts-tabs-dropdown-menu-item\"\n            [class.vts-tabs-dropdown-menu-item-disabled]=\"item.disabled\"\n            [vtsSelected]=\"item.active\"\n            [vtsDisabled]=\"item.disabled\"\n            (click)=\"onSelect(item)\"\n            (contextmenu)=\"onContextmenu(item, $event)\"\n          >\n            <ng-container *vtsStringTemplateOutlet=\"item.tab.label; context: { visible: false }\">\n              {{ item.tab.label }}\n            </ng-container>\n          </li>\n        </ul>\n\n        <div class=\"vts-tabs-dropdown-menu\" *ngIf=\"vtsDropdownContent\" [ngClass]=\"vtsDropdownClass\">\n          <ng-template [ngTemplateOutlet]=\"vtsDropdownContent\"></ng-template>\n        </div>\n      </vts-dropdown-menu>\n    </ng-container>\n    <ng-template #scrollMoreTpl>\n      <button\n        class=\"vts-tabs-nav-more\"\n        type=\"button\"\n      >\n      <i vts-icon vtsType=\"BxArrowToRight:boxIcon\"></i></button>\n    </ng-template>\n    <button\n      *ngIf=\"addable\"\n      vts-tab-add-button\n      [addIcon]=\"addIcon\"\n      (click)=\"addClicked.emit()\"\n    ></button>\n  `,\n  host: {\n    class: 'vts-tabs-nav-operations',\n    '[class.vts-tabs-nav-operations-hidden]': 'items.length === 0'\n  }\n})\nexport class VtsTabNavOperationComponent implements OnDestroy {\n  @Input() items: VtsTabNavItemDirective[] = [];\n  @Input() addable: boolean = false;\n  @Input() addIcon: string | TemplateRef<VtsSafeAny> = 'PlusOutline:antd';\n\n  // Import from vts-navbar\n  @Input() showMoreTabs: boolean = false;\n  @Input() vtsDropdownPosition: VtsDropdownPositionType = \"bottomLeft\";\n  @Input() vtsDropdownContent?: TemplateRef<void>;\n  @Input() vtsDropdownClass = '';\n\n  @Output() readonly addClicked = new EventEmitter<void>();\n  @Output() readonly selected = new EventEmitter<VtsTabNavItemDirective>();\n  closeAnimationWaitTimeoutId: number | ReturnType<typeof setTimeout> = -1;\n  menuOpened = false;\n\n  private readonly element: HTMLElement;\n  constructor(public cdr: ChangeDetectorRef, private elementRef: ElementRef<HTMLElement>) {\n    this.element = this.elementRef.nativeElement;\n  }\n\n  onSelect(item: VtsTabNavItemDirective): void {\n    if (!item.disabled) {\n      // ignore vtsCanDeactivate\n      item.tab.vtsClick.emit();\n      this.selected.emit(item);\n    }\n  }\n\n  onContextmenu(item: VtsTabNavItemDirective, e: MouseEvent): void {\n    if (!item.disabled) {\n      item.tab.vtsContextmenu.emit(e);\n    }\n  }\n  showItems(): void {\n    clearTimeout(this.closeAnimationWaitTimeoutId);\n    this.menuOpened = true;\n    this.cdr.markForCheck();\n  }\n\n  menuVisChange(visible: boolean): void {\n    if (!visible) {\n      this.closeAnimationWaitTimeoutId = setTimeout(() => {\n        this.menuOpened = false;\n        this.cdr.markForCheck();\n      }, 150);\n    }\n  }\n\n  getElementWidth(): number {\n    return this.element?.offsetWidth || 0;\n  }\n\n  getElementHeight(): number {\n    return this.element?.offsetHeight || 0;\n  }\n\n  ngOnDestroy(): void {\n    clearTimeout(this.closeAnimationWaitTimeoutId);\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  Directive,\n  ElementRef,\n  EventEmitter,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Output\n} from '@angular/core';\n\nimport { fromEvent, Observable, Subscription } from 'rxjs';\n\nimport {\n  VtsTabScrollEvent,\n  VtsTabScrollEventHandlerFun,\n  VtsTabScrollListOffset,\n  VtsTabScrollListOffsetEvent\n} from './interfaces';\n\nconst MIN_SWIPE_DISTANCE = 0.1;\nconst STOP_SWIPE_DISTANCE = 0.01;\nconst REFRESH_INTERVAL = 20;\nconst SPEED_OFF_MULTIPLE = 0.995 ** REFRESH_INTERVAL;\n\n@Directive({\n  selector: '[vtsTabScrollList]'\n})\nexport class VtsTabScrollListDirective implements OnInit, OnDestroy {\n  lastWheelDirection: 'x' | 'y' | null = null;\n  lastWheelTimestamp = 0;\n  lastTimestamp = 0;\n  lastTimeDiff = 0;\n  lastMixedWheel = 0;\n  lastWheelPrevent = false;\n  touchPosition: VtsTabScrollListOffset | null = null;\n  lastOffset: VtsTabScrollListOffset | null = null;\n  motion = -1;\n\n  unsubscribe: () => void = () => void 0;\n\n  @Output()\n  readonly offsetChange = new EventEmitter<VtsTabScrollListOffsetEvent>();\n  @Output() readonly tabScroll = new EventEmitter<VtsTabScrollEvent>();\n\n  constructor(private ngZone: NgZone, private elementRef: ElementRef<HTMLElement>) {}\n\n  ngOnInit(): void {\n    this.unsubscribe = this.ngZone.runOutsideAngular(() => {\n      const el = this.elementRef.nativeElement;\n\n      const wheel$ = fromEvent<WheelEvent>(el, 'wheel');\n      const touchstart$ = fromEvent<TouchEvent>(el, 'touchstart');\n      const touchmove$ = fromEvent<TouchEvent>(el, 'touchmove');\n      const touchend$ = fromEvent<TouchEvent>(el, 'touchend');\n\n      const subscription = new Subscription();\n      subscription.add(this.subscribeWrap('wheel', wheel$, this.onWheel));\n      subscription.add(this.subscribeWrap('touchstart', touchstart$, this.onTouchStart));\n      subscription.add(this.subscribeWrap('touchmove', touchmove$, this.onTouchMove));\n      subscription.add(this.subscribeWrap('touchend', touchend$, this.onTouchEnd));\n\n      return () => {\n        subscription.unsubscribe();\n      };\n    });\n  }\n\n  subscribeWrap<T extends VtsTabScrollEvent['event']>(\n    type: VtsTabScrollEvent['type'],\n    observable: Observable<T>,\n    handler: VtsTabScrollEventHandlerFun<T>\n  ): Subscription {\n    return observable.subscribe(event => {\n      this.tabScroll.emit({\n        type,\n        event\n      } as VtsTabScrollEvent);\n      if (!event.defaultPrevented) {\n        handler(event);\n      }\n    });\n  }\n\n  onTouchEnd = (e: TouchEvent): void => {\n    if (!this.touchPosition) {\n      return;\n    }\n    const lastOffset = this.lastOffset;\n    const lastTimeDiff = this.lastTimeDiff;\n\n    this.lastOffset = this.touchPosition = null;\n\n    if (lastOffset) {\n      const distanceX = lastOffset.x / lastTimeDiff;\n      const distanceY = lastOffset.y / lastTimeDiff;\n      const absX = Math.abs(distanceX);\n      const absY = Math.abs(distanceY);\n\n      // Skip swipe if low distance\n      if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) {\n        return;\n      }\n\n      let currentX = distanceX;\n      let currentY = distanceY;\n\n      this.motion = window.setInterval(() => {\n        if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n          window.clearInterval(this.motion);\n          return;\n        }\n\n        currentX *= SPEED_OFF_MULTIPLE;\n        currentY *= SPEED_OFF_MULTIPLE;\n        this.onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL, e);\n      }, REFRESH_INTERVAL);\n    }\n  };\n\n  onTouchMove = (e: TouchEvent): void => {\n    if (!this.touchPosition) {\n      return;\n    }\n\n    e.preventDefault();\n    const { screenX, screenY } = e.touches[0];\n\n    const offsetX = screenX - this.touchPosition.x;\n    const offsetY = screenY - this.touchPosition.y;\n    this.onOffset(offsetX, offsetY, e);\n    const now = Date.now();\n\n    this.lastTimeDiff = now - this.lastTimestamp;\n    this.lastTimestamp = now;\n    this.lastOffset = { x: offsetX, y: offsetY };\n    this.touchPosition = { x: screenX, y: screenY };\n  };\n\n  onTouchStart = (e: TouchEvent): void => {\n    const { screenX, screenY } = e.touches[0];\n    this.touchPosition = { x: screenX, y: screenY };\n    window.clearInterval(this.motion);\n  };\n\n  onWheel = (e: WheelEvent): void => {\n    const { deltaX, deltaY } = e;\n    let mixed: number;\n    const absX = Math.abs(deltaX);\n    const absY = Math.abs(deltaY);\n\n    if (absX === absY) {\n      mixed = this.lastWheelDirection === 'x' ? deltaX : deltaY;\n    } else if (absX > absY) {\n      mixed = deltaX;\n      this.lastWheelDirection = 'x';\n    } else {\n      mixed = deltaY;\n      this.lastWheelDirection = 'y';\n    }\n\n    // Optimize mac touch scroll\n    const now = Date.now();\n    const absMixed = Math.abs(mixed);\n\n    if (now - this.lastWheelTimestamp > 100 || absMixed - this.lastMixedWheel > 10) {\n      this.lastWheelPrevent = false;\n    }\n    this.onOffset(-mixed, -mixed, e);\n    if (e.defaultPrevented || this.lastWheelPrevent) {\n      this.lastWheelPrevent = true;\n    }\n\n    this.lastWheelTimestamp = now;\n    this.lastMixedWheel = absMixed;\n  };\n\n  onOffset(x: number, y: number, event: Event): void {\n    this.ngZone.run(() => {\n      this.offsetChange.emit({\n        x,\n        y,\n        event\n      });\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.unsubscribe();\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 { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n  DOWN_ARROW,\n  ENTER,\n  hasModifierKey,\n  LEFT_ARROW,\n  RIGHT_ARROW,\n  SPACE,\n  UP_ARROW\n} from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport {\n  AfterContentChecked,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  QueryList,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { animationFrameScheduler, asapScheduler, merge, of, Subject } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\n\nimport { reqAnimFrame } from '@ui-vts-kit/ng-vts/core/polyfill';\nimport { VtsResizeObserver } from '@ui-vts-kit/ng-vts/cdk/resize-observer';\nimport { NumberInput, VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\n\nimport { VtsTabPositionMode, VtsTabScrollEvent, VtsTabScrollListOffsetEvent } from './interfaces';\nimport { VtsTabAddButtonComponent } from './tab-add-button.component';\nimport { VtsTabNavItemDirective } from './tab-nav-item.directive';\nimport { VtsTabNavOperationComponent } from './tab-nav-operation.component';\nimport { VtsTabsInkBarDirective } from './tabs-ink-bar.directive';\nimport { VtsDropdownPositionType } from './tab.component';\n\nconst RESIZE_SCHEDULER =\n  typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\nconst CSS_TRANSFORM_TIME = 150;\n\n@Component({\n  selector: 'vts-tabs-nav',\n  exportAs: 'vtsTabsNav',\n  preserveWhitespaces: false,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  template: `\n    <div\n      class=\"vts-tabs-nav-wrap\"\n      [class.vts-tabs-nav-wrap-ping-left]=\"pingLeft\"\n      [class.vts-tabs-nav-wrap-ping-right]=\"pingRight\"\n      [class.vts-tabs-nav-wrap-ping-top]=\"pingTop\"\n      [class.vts-tabs-nav-wrap-ping-bottom]=\"pingBottom\"\n      #navWarp\n    >\n      <div\n        class=\"vts-tabs-nav-list\"\n        #navList\n        vtsTabScrollList\n        (offsetChange)=\"onOffsetChange($event)\"\n        (tabScroll)=\"tabScroll.emit($event)\"\n      >\n        <ng-content></ng-content>\n        <button\n          *ngIf=\"showAddButton\"\n          vts-tab-add-button\n          [addIcon]=\"addIcon\"\n          (click)=\"addClicked.emit()\"\n        ></button>\n        <div\n          vts-tabs-ink-bar\n          [hidden]=\"hideBar\"\n          [position]=\"position\"\n          [animated]=\"inkBarAnimated\"\n        ></div>\n      </div>\n    </div>\n    <vts-tab-nav-operation\n      (addClicked)=\"addClicked.emit()\"\n      (selected)=\"onSelectedFromMenu($event)\"\n      [addIcon]=\"addIcon\"\n      [addable]=\"addable\"\n      [items]=\"hiddenItems\"\n      [showMoreTabs]=\"showMoreTabs\"\n      [vtsDropdownPosition]=\"vtsDropdownPosition\"\n      [vtsDropdownContent]=\"vtsDropdownContent\"\n      [vtsDropdownClass]=\"vtsDropdownClass\"\n    ></vts-tab-nav-operation>\n    <div class=\"vts-tabs-extra-content\" *ngIf=\"extraTemplate\">\n      <ng-template [ngTemplateOutlet]=\"extraTemplate\"></ng-template>\n    </div>\n  `,\n  host: {\n    role: 'tablist',\n    class: 'vts-tabs-nav',\n    '(keydown)': 'handleKeydown($event)'\n  }\n})\nexport class VtsTabNavBarComponent\n  implements OnInit, AfterViewInit, AfterContentChecked, OnDestroy, OnChanges\n{\n  static ngAcceptInputType_selectedIndex: NumberInput;\n\n  @Output()\n  readonly indexFocused: EventEmitter<number> = new EventEmitter<number>();\n  @Output()\n  readonly selectFocusedIndex: EventEmitter<number> = new EventEmitter<number>();\n  @Output() readonly addClicked = new EventEmitter<void>();\n  @Output() readonly tabScroll = new EventEmitter<VtsTabScrollEvent>();\n\n  @Input() position: VtsTabPositionMode = 'horizontal';\n  @Input() addable: boolean = false;\n  @Input() hideBar: boolean = false;\n  @Input() addIcon: string | TemplateRef<VtsSafeAny> = 'PlusOutline:antd';\n  @Input() inkBarAnimated = true;\n  @Input() extraTemplate?: TemplateRef<void>;\n\n  // Import from vts-tabset\n  @Input() showMoreTabs: boolean = false;\n  @Input() vtsDropdownPosition: VtsDropdownPositionType = \"bottomLeft\";\n  @Input() vtsDropdownContent?: TemplateRef<void>;\n  @Input() vtsDropdownClass = '';\n\n  @Input()\n  get selectedIndex(): number {\n    return this._selectedIndex;\n  }\n  set selectedIndex(value: number) {\n    const newValue = coerceNumberProperty(value);\n    if (this._selectedIndex !== newValue) {\n      this._selectedIndex = value;\n      this.selectedIndexChanged = true;\n      if (this.keyManager) {\n        this.keyManager.updateActiveItem(value);\n      }\n    }\n  }\n\n  @ViewChild('navWarp', { static: true }) navWarpRef!: ElementRef<HTMLElement>;\n  @ViewChild('navList', { static: true }) navListRef!: ElementRef<HTMLElement>;\n  @ViewChild(VtsTabNavOperationComponent, { static: true })\n  operationRef!: VtsTabNavOperationComponent;\n  @ViewChild(VtsTabAddButtonComponent, { static: false })\n  addBtnRef!: VtsTabAddButtonComponent;\n  @ViewChild(VtsTabsInkBarDirective, { static: true })\n  inkBar!: VtsTabsInkBarDirective;\n  @ContentChildren(VtsTabNavItemDirective, { descendants: true })\n  items!: QueryList<VtsTabNavItemDirective>;\n\n  /** Tracks which element has focus; used for keyboard navigation */\n  get focusIndex(): number {\n    return this.keyManager ? this.keyManager.activeItemIndex! : 0;\n  }\n\n  /** When the focus index is set, we must manually send focus to the correct label */\n  set focusIndex(value: number) {\n    if (!this.isValidIndex(value) || this.focusIndex === value || !this.keyManager) {\n      return;\n    }\n\n    this.keyManager.setActiveItem(value);\n  }\n\n  get showAddButton(): boolean {\n    return this.hiddenItems.length === 0 && this.addable;\n  }\n\n  translate: null | string = null;\n  transformX = 0;\n  transformY = 0;\n  pingLeft = false;\n  pingRight = false;\n  pingTop = false;\n  pingBottom = false;\n  hiddenItems: VtsTabNavItemDirective[] = [];\n\n  private keyManager!: FocusKeyManager<VtsTabNavItemDirective>;\n  private destroy$ = new Subject<void>();\n  private _selectedIndex = 0;\n  private wrapperWidth = 0;\n  private wrapperHeight = 0;\n  private scrollListWidth = 0;\n  private scrollListHeight = 0;\n  private operationWidth = 0;\n  private operationHeight = 0;\n  private addButtonWidth = 0;\n  private addButtonHeight = 0;\n  private selectedIndexChanged = false;\n  private lockAnimationTimeoutId: number | ReturnType<typeof setTimeout> = -1;\n  private cssTransformTimeWaitingId: number | ReturnType<typeof setTimeout> = -1;\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    private ngZone: NgZone,\n    private viewportRuler: ViewportRuler,\n    private vtsResizeObserver: VtsResizeObserver,\n    @Optional() private dir: Directionality\n  ) {}\n\n  ngOnInit(): void {}\n\n  ngAfterViewInit(): void {\n    const dirChange = this.dir ? this.dir.change : of(null);\n    const resize = this.viewportRuler.change(150);\n\n    const realign = () => {\n      this.updateScrollListPosition();\n      this.alignInkBarToSelectedTab();\n    };\n    this.keyManager = new FocusKeyManager<VtsTabNavItemDirective>(this.items)\n      .withHorizontalOrientation(this.getLayoutDirection())\n      .withWrap();\n    this.keyManager.updateActiveItem(0);\n\n    reqAnimFrame(realign);\n\n    merge(\n      this.vtsResizeObserver.observe(this.navWarpRef),\n      this.vtsResizeObserver.observe(this.navListRef)\n    )\n      .pipe(takeUntil(this.destroy$), auditTime(16, RESIZE_SCHEDULER))\n      .subscribe(() => {\n        realign();\n      });\n    merge(dirChange, resize, this.items.changes)\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => {\n        Promise.resolve().then(realign);\n        this.keyManager.withHorizontalOrientation(this.getLayoutDirection());\n      });\n\n    this.keyManager.change.pipe(takeUntil(this.destroy$)).subscribe(newFocusIndex => {\n      this.indexFocused.emit(newFocusIndex);\n      this.setTabFocus(newFocusIndex);\n      this.scrollToTab(this.keyManager.activeItem!);\n    });\n  }\n\n  ngAfterContentChecked(): void {\n    if (this.selectedIndexChanged) {\n      this.updateScrollListPosition();\n      this.alignInkBarToSelectedTab();\n      this.selectedIndexChanged = false;\n      this.cdr.markForCheck();\n    }\n  }\n\n  ngOnDestroy(): void {\n    clearTimeout(this.lockAnimationTimeoutId);\n    clearTimeout(this.cssTransformTimeWaitingId);\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  onSelectedFromMenu(tab: VtsTabNavItemDirective): void {\n    const tabIndex = this.items.toArray().findIndex(e => e === tab);\n    if (tabIndex !== -1) {\n      this.keyManager.updateActiveItem(tabIndex);\n      if (this.focusIndex !== this.selectedIndex) {\n        this.selectFocusedIndex.emit(this.focusIndex);\n        this.scrollToTab(tab);\n      }\n    }\n  }\n\n  onOffsetChange(e: VtsTabScrollListOffsetEvent): void {\n    if (this.position === 'horizontal') {\n      if (this.lockAnimationTimeoutId === -1) {\n        if (this.transformX >= 0 && e.x > 0) {\n          return;\n        }\n        if (this.transformX <= this.wrapperWidth - this.scrollListWidth && e.x < 0) {\n          return;\n        }\n      }\n      e.event.preventDefault();\n      this.transformX = this.clampTransformX(this.transformX + e.x);\n      this.setTransform(this.transformX, 0);\n    } else {\n      if (this.lockAnimationTimeoutId === -1) {\n        if (this.transformY >= 0 && e.y > 0) {\n          return;\n        }\n        if (this.transformY <= this.wrapperHeight - this.scrollListHeight && e.y < 0) {\n          return;\n        }\n      }\n      e.event.preventDefault();\n      this.transformY = this.clampTransformY(this.transformY + e.y);\n      this.setTransform(0, this.transformY);\n    }\n\n    this.lockAnimation();\n    this.setVisibleRange();\n    this.setPingStatus();\n  }\n\n  handleKeydown(event: KeyboardEvent): void {\n    const inNavigationList = this.navWarpRef.nativeElement.contains(event.target as HTMLElement);\n    if (hasModifierKey(event) || !inNavigationList) {\n      return;\n    }\n\n    switch (event.keyCode) {\n      case LEFT_ARROW:\n      case UP_ARROW:\n      case RIGHT_ARROW:\n      case DOWN_ARROW:\n        this.lockAnimation();\n        this.keyManager.onKeydown(event);\n        break;\n      case ENTER:\n      case SPACE:\n        if (this.focusIndex !== this.selectedIndex) {\n          this.selectFocusedIndex.emit(this.focusIndex);\n        }\n        break;\n      default:\n        this.keyManager.onKeydown(event);\n    }\n  }\n\n  private isValidIndex(index: number): boolean {\n    if (!this.items) {\n      return true;\n    }\n\n    const tab = this.items ? this.items.toArray()[index] : null;\n    return !!tab && !tab.disabled;\n  }\n\n  private scrollToTab(tab: VtsTabNavItemDirective): void {\n    if (!this.items.find(e => e === tab)) {\n      return;\n    }\n    const tabs = this.items.toArray();\n\n    if (this.position === 'horizontal') {\n      let newTransform = this.transformX;\n      if (this.getLayoutDirection() === 'rtl') {\n        const right = tabs[0].left + tabs[0].width - tab.left - tab.width;\n\n        if (right < this.transformX) {\n          newTransform = right;\n        } else if (right + tab.width > this.transformX + this.wrapperWidth) {\n          newTransform = right + tab.width - this.wrapperWidth;\n        }\n      } else if (tab.left < -this.transformX) {\n        newTransform = -tab.left;\n      } else if (tab.left + tab.width > -this.transformX + this.wrapperWidth) {\n        newTransform = -(tab.left + tab.width - this.wrapperWidth);\n      }\n      this.transformX = newTransform;\n      this.transformY = 0;\n      this.setTransform(newTransform, 0);\n    } else {\n      let newTransform = this.transformY;\n\n      if (tab.top < -this.transformY) {\n        newTransform = -tab.top;\n      } else if (tab.top + tab.height > -this.transformY + this.wrapperHeight) {\n        newTransform = -(tab.top + tab.height - this.wrapperHeight);\n      }\n      this.transformY = newTransform;\n      this.transformX = 0;\n      this.setTransform(0, newTransform);\n    }\n\n    clearTimeout(this.cssTransformTimeWaitingId);\n    this.cssTransformTimeWaitingId = setTimeout(() => {\n      this.setVisibleRange();\n    }, CSS_TRANSFORM_TIME);\n  }\n\n  private lockAnimation(): void {\n    if (this.lockAnimationTimeoutId === -1) {\n      this.ngZone.runOutsideAngular(() => {\n        this.navListRef.nativeElement.style.transition = 'none';\n        this.lockAnimationTimeoutId = setTimeout(() => {\n          this.navListRef.nativeElement.style.transition = '';\n          this.lockAnimationTimeoutId = -1;\n        }, CSS_TRANSFORM_TIME);\n      });\n    }\n  }\n\n  private setTransform(x: number, y: number): void {\n    this.navListRef.nativeElement.style.transform = `translate(${x}px, ${y}px)`;\n  }\n\n  private clampTransformX(transform: number): number {\n    const scrollWidth = this.wrapperWidth - this.scrollListWidth;\n    if (this.getLayoutDirection() === 'rtl') {\n      return Math.max(Math.min(scrollWidth, transform), 0);\n    } else {\n      return Math.min(Math.max(scrollWidth, transform), 0);\n    }\n  }\n\n  private clampTransformY(transform: number): number {\n    return Math.min(Math.max(this.wrapperHeight - this.scrollListHeight, transform), 0);\n  }\n\n  private updateScrollListPosition(): void {\n    this.resetSizes();\n    this.transformX = this.clampTransformX(this.transformX);\n    this.transformY = this.clampTransformY(this.transformY);\n    this.setVisibleRange();\n    this.setPingStatus();\n    if (this.keyManager) {\n      this.keyManager.updateActiveItem(this.keyManager.activeItemIndex!);\n      if (this.keyManager.activeItem) {\n        this.scrollToTab(this.keyManager.activeItem);\n      }\n    }\n  }\n\n  private resetSizes(): void {\n    this.addButtonWidth = this.addBtnRef ? this.addBtnRef.getElementWidth() : 0;\n    this.addButtonHeight = this.addBtnRef ? this.addBtnRef.getElementHeight() : 0;\n    this.operationWidth = this.operationRef.getElementWidth();\n    this.operationHeight = this.operationRef.getElementHeight();\n    this.wrapperWidth = this.navWarpRef.nativeElement.offsetWidth || 0;\n    this.wrapperHeight = this.navWarpRef.nativeElement.offsetHeight || 0;\n    this.scrollListHeight = this.navListRef.nativeElement.offsetHeight || 0;\n    this.scrollListWidth = this.navListRef.nativeElement.offsetWidth || 0;\n  }\n\n  private alignInkBarToSelectedTab(): void {\n    const selectedItem =\n      this.items && this.items.length ? this.items.toArray()[this.selectedIndex] : null;\n    const selectedItemElement = selectedItem ? selectedItem.elementRef.nativeElement : null;\n\n    if (selectedItemElement) {\n      /**\n       * .vts-tabs-nav-list - Target offset parent element\n       *   └──.vts-tabs-tab\n       *        └──.vts-tabs-tab-btn - Currently focused element\n       */\n      this.inkBar.alignToElement(selectedItemElement.parentElement!);\n    }\n  }\n\n  private setPingStatus(): void {\n    const ping = {\n      top: false,\n      right: false,\n      bottom: false,\n      left: false\n    };\n    const navWarp = this.navWarpRef.nativeElement;\n    if (this.position === 'horizontal') {\n      if (this.getLayoutDirection() === 'rtl') {\n        ping.right = this.transformX > 0;\n        ping.left = this.transformX + this.wrapperWidth < this.scrollListWidth;\n      } else {\n        ping.left = this.transformX < 0;\n        ping.right = -this.transformX + this.wrapperWidth < this.scrollListWidth;\n      }\n    } else {\n      ping.top = this.transformY < 0;\n      ping.bottom = -this.transformY + this.wrapperHeight < this.scrollListHeight;\n    }\n\n    (Object.keys(ping) as Array<'top' | 'right' | 'bottom' | 'left'>).forEach(pos => {\n      const className = `vts-tabs-nav-wrap-ping-${pos}`;\n      if (ping[pos]) {\n        navWarp.classList.add(className);\n      } else {\n        navWarp.classList.remove(className);\n      }\n    });\n  }\n\n  private setVisibleRange(): void {\n    let unit: 'width' | 'height';\n    let position: 'left' | 'top' | 'right';\n    let transformSize: number;\n    let basicSize: number;\n    let tabContentSize: number;\n    let addSize: number;\n    const tabs = this.items.toArray();\n    const DEFAULT_SIZE = { width: 0, height: 0, left: 0, top: 0, right: 0 };\n\n    const getOffset = (index: number): number => {\n      let offset: number;\n      const size = tabs[index] || DEFAULT_SIZE;\n      if (position === 'right') {\n        offset = tabs[0].left + tabs[0].width - tabs[index].left - tabs[index].width;\n      } else {\n        offset = size[position];\n      }\n      return offset;\n    };\n\n    if (this.position === 'horizontal') {\n      unit = 'width';\n      basicSize = this.wrapperWidth;\n      tabContentSize = this.scrollListWidth - (this.hiddenItems.length ? this.operationWidth : 0);\n      addSize = this.addButtonWidth;\n      transformSize = Math.abs(this.transformX);\n      if (this.getLayoutDirection() === 'rtl') {\n        position = 'right';\n        this.pingRight = this.transformX > 0;\n        this.pingLeft = this.transformX + this.wrapperWidth < this.scrollListWidth;\n      } else {\n        this.pingLeft = this.transformX < 0;\n        this.pingRight = -this.transformX + this.wrapperWidth < this.scrollListWidth;\n        position = 'left';\n      }\n    } else {\n      unit = 'height';\n      basicSize = this.wrapperHeight;\n      tabContentSize = this.scrollListHeight - (this.hiddenItems.length ? this.operationHeight : 0);\n      addSize = this.addButtonHeight;\n      position = 'top';\n      transformSize = -this.transformY;\n      this.pingTop = this.transformY < 0;\n      this.pingBottom = -this.transformY + this.wrapperHeight < this.scrollListHeight;\n    }\n\n    let mergedBasicSize = basicSize;\n    if (tabContentSize + addSize > basicSize) {\n      mergedBasicSize = basicSize - addSize;\n    }\n\n    if (!tabs.length) {\n      this.hiddenItems = [];\n      this.cdr.markForCheck();\n      return;\n    }\n\n    const len = tabs.length;\n    let endIndex = len;\n    for (let i = 0; i < len; i += 1) {\n      const offset = getOffset(i);\n      const size = tabs[i] || DEFAULT_SIZE;\n      if (offset + size[unit] > transformSize + mergedBasicSize) {\n        endIndex = i - 1;\n        break;\n      }\n    }\n\n    let startIndex = 0;\n    for (let i = len - 1; i >= 0; i -= 1) {\n      const offset = getOffset(i);\n      if (offset < transformSize) {\n        startIndex = i + 1;\n        break;\n      }\n    }\n\n    const startHiddenTabs = tabs.slice(0, startIndex);\n    const endHiddenTabs = tabs.slice(endIndex + 1);\n    this.hiddenItems = [...startHiddenTabs, ...endHiddenTabs];\n    this.cdr.markForCheck();\n  }\n\n  private getLayoutDirection(): Direction {\n    return this.dir && this.dir.value === 'rtl' ? 'rtl' : 'ltr';\n  }\n\n  private setTabFocus(_tabIndex: number): void {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { position } = changes;\n    // The first will be aligning in ngAfterViewInit\n    if (position && !position.isFirstChange()) {\n      this.alignInkBarToSelectedTab();\n      this.lockAnimation();\n      this.updateScrollListPosition();\n    }\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  Input,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n  selector: '[vts-tab-body]',\n  exportAs: 'vtsTabBody',\n  preserveWhitespaces: false,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-container *ngIf=\"active || forceRender\">\n      <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n    </ng-container>\n  `,\n  host: {\n    class: 'vts-tabs-tabpane',\n    '[class.vts-tabs-tabpane-active]': 'active',\n    '[attr.tabindex]': 'active ? 0 : -1',\n    '[attr.aria-hidden]': '!active',\n    '[style.visibility]': 'tabPaneAnimated ? active ? null : \"hidden\" : null',\n    '[style.height]': 'tabPaneAnimated ? active ? null : 0 : null',\n    '[style.overflow-y]': 'tabPaneAnimated ? active ? null : \"none\" : null',\n    '[style.display]': '!tabPaneAnimated ? active ? null : \"none\" : null'\n  }\n})\nexport class VtsTabBodyComponent {\n  @Input() content: TemplateRef<void> | null = null;\n  @Input() active = false;\n  @Input() tabPaneAnimated = true;\n  @Input() forceRender = false;\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 { Component, Input, TemplateRef } from '@angular/core';\n\nimport { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\n\n@Component({\n  selector: 'vts-tab-close-button, button[vts-tab-close-button]',\n  template: `\n    <ng-container *vtsStringTemplateOutlet=\"closeIcon; let icon\">\n      <i vts-icon [vtsType]=\"icon\"></i>\n    </ng-container>\n  `,\n  host: {\n    class: 'vts-tabs-tab-remove',\n    'aria-label': 'Close tab',\n    type: 'button'\n  }\n})\nexport class VtsTabCloseButtonComponent {\n  @Input() closeIcon: string | TemplateRef<VtsSafeAny> = 'Close:vts';\n\n  constructor() {}\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 { Directive, ElementRef, Host, Optional, Self, TemplateRef } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { TabTemplateContext } from './interfaces';\n\n/**\n * Fix https://github.com/angular/angular/issues/8563\n */\n@Directive({\n  selector: 'ng-template[vtsTabLink]',\n  exportAs: 'vtsTabLinkTemplate'\n})\nexport class VtsTabLinkTemplateDirective {\n  constructor(@Host() public templateRef: TemplateRef<TabTemplateContext>) {}\n}\n\n/**\n * This component is for catching `routerLink` directive.\n */\n@Directive({\n  selector: 'a[vts-tab-link]',\n  exportAs: 'vtsTabLink'\n})\nexport class VtsTabLinkDirective {\n  constructor(\n    public elementRef: ElementRef<HTMLAnchorElement>,\n    @Optional() @Self() public routerLink?: RouterLink,\n    @Optional() @Self() public routerLinkWithHref?: RouterLink\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 { Directive } from '@angular/core';\n\n/** Decorates the `ng-template` tags and reads out the template from it. */\n@Directive({\n  selector: '[vts-tab]',\n  exportAs: 'vtsTab'\n})\nexport class VtsTabDirective {}\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  ContentChild,\n  EventEmitter,\n  Inject,\n  InjectionToken,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { TabTemplateContext } from './interfaces';\n\nimport { Subject } from 'rxjs';\n\nimport { BooleanInput, VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean } from '@ui-vts-kit/ng-vts/core/util';\n\nimport { VtsTabLinkDirective, VtsTabLinkTemplateDirective } from './tab-link.directive';\nimport { VtsTabDirective } from './tab.directive';\n\n/**\n * Used to provide a tab set to a tab without causing a circular dependency.\n */\nexport const VTS_TAB_SET = new InjectionToken<VtsSafeAny>('VTS_TAB_SET');\n\nexport type VtsDropdownPositionType =\n| 'bottomLeft'\n| 'bottomCenter'\n| 'bottomRight'\n| 'topLeft'\n| 'topCenter'\n| 'topRight';\n\n@Component({\n  selector: 'vts-tab',\n  exportAs: 'vtsTab',\n  preserveWhitespaces: false,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-template #tabLinkTemplate>\n      <ng-content select=\"[vts-tab-link]\"></ng-content>\n    </ng-template>\n    <ng-template #contentTemplate><ng-content></ng-content></ng-template>\n  `\n})\nexport class VtsTabComponent implements OnChanges, OnDestroy {\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\n  static ngAcceptInputType_vtsClosable: BooleanInput;\n  static ngAcceptInputType_vtsForceRender: BooleanInput;\n\n  @Input() vtsTitle: string | TemplateRef<TabTemplateContext> = '';\n  @Input() @InputBoolean() vtsClosable = false;\n  @Input() vtsCloseIcon: string | TemplateRef<VtsSafeAny> = 'Close:vts';\n  @Input() @InputBoolean() vtsDisabled = false;\n  @Input() @InputBoolean() vtsForceRender = false;\n  @Output() readonly vtsSelect = new EventEmitter<void>();\n  @Output() readonly vtsDeselect = new EventEmitter<void>();\n  @Output() readonly vtsClick = new EventEmitter<void>();\n  @Output() readonly vtsContextmenu = new EventEmitter<MouseEvent>();\n\n  @ContentChild(VtsTabLinkTemplateDirective, { static: false })\n  vtsTabLinkTemplateDirective!: VtsTabLinkTemplateDirective;\n  @ContentChild(VtsTabDirective, { static: false, read: TemplateRef })\n  template: TemplateRef<void> | null = null;\n  @ContentChild(VtsTabLinkDirective, { static: false })\n  linkDirective!: VtsTabLinkDirective;\n  @ViewChild('contentTemplate', { static: true })\n  contentTemplate!: TemplateRef<VtsSafeAny>;\n\n  isActive: boolean = false;\n  position: number | null = null;\n  origin: number | null = null;\n  readonly stateChanges = new Subject<void>();\n\n  get content(): TemplateRef<VtsSafeAny> {\n    return this.template || this.contentTemplate;\n  }\n\n  get label(): string | TemplateRef<VtsSafeAny> {\n    return this.vtsTitle || this.vtsTabLinkTemplateDirective?.templateRef;\n  }\n\n  constructor(@Inject(VTS_TAB_SET) public closestTabSet: VtsSafeAny) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { vtsTitle, vtsDisabled, vtsForceRender } = changes;\n    if (vtsTitle || vtsDisabled || vtsForceRender) {\n      this.stateChanges.next();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.stateChanges.complete();\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 { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { Observable } from 'rxjs';\n\nexport type VtsTabPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type VtsTabType = 'line' | 'card' | 'editable-card';\nexport type VtsTabsCanDeactivateFn = (\n  fromIndex: number,\n  toIndex: number\n) => Observable<boolean> | Promise<boolean> | boolean;\nexport type VtsTabPositionMode = 'horizontal' | 'vertical';\n\nexport interface VtsAnimatedInterface {\n  inkBar: boolean;\n  tabPane: boolean;\n}\n\nexport class VtsTabChangeEvent {\n  index?: number;\n  tab: VtsSafeAny;\n}\n\nexport interface VtsTabScrollListOffset {\n  x: number;\n  y: number;\n}\n\nexport type VtsTabScrollListOffsetEvent = VtsTabScrollListOffset & {\n  event: Event;\n};\n\ninterface VtsTabWheelScrollEvent {\n  type: 'wheel';\n  event: WheelEvent;\n}\n\ninterface VtsTabTouchScrollEvent {\n  type: 'touchstart' | 'touchmove' | 'touchend';\n  event: TouchEvent;\n}\n\nexport type VtsTabScrollEvent = VtsTabTouchScrollEvent | VtsTabWheelScrollEvent;\nexport type VtsTabScrollEventHandlerFun<T extends VtsTabScrollEvent['event']> = (event: T) => void;\n\nexport interface TabTemplateContext {\n  visible: boolean;\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 { coerceNumberProperty } from '@angular/cdk/coercion';\n/** get some code from https://github.com/angular/material2 */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n  AfterContentChecked,\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  QueryList,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { NavigationEnd, Router, RouterLink } from '@angular/router';\n\nimport { merge, Observable, of, Subject, Subscription } from 'rxjs';\nimport { delay, filter, first, startWith, takeUntil } from 'rxjs/operators';\n\nimport { VtsConfigKey, VtsConfigService, WithConfig } from '@ui-vts-kit/ng-vts/core/config';\nimport { PREFIX } from '@ui-vts-kit/ng-vts/core/logger';\nimport { BooleanInput, NumberInput, VtsSafeAny, VtsSizeXLMSType } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean, wrapIntoObservable } from '@ui-vts-kit/ng-vts/core/util';\n\nimport {\n  VtsAnimatedInterface,\n  VtsTabChangeEvent,\n  VtsTabPosition,\n  VtsTabPositionMode,\n  VtsTabsCanDeactivateFn,\n  VtsTabScrollEvent,\n  VtsTabType\n} from './interfaces';\nimport { VtsTabNavBarComponent } from './tab-nav-bar.component';\nimport { VtsTabComponent, VTS_TAB_SET, VtsDropdownPositionType } from './tab.component';\n\nconst VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'tabs';\nlet nextId = 0;\n\n@Component({\n  selector: 'vts-tabset',\n  exportAs: 'vtsTabset',\n  preserveWhitespaces: false,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.Default,\n  providers: [\n    {\n      provide: VTS_TAB_SET,\n      useExisting: VtsTabSetComponent\n    }\n  ],\n  template: `\n    <vts-tabs-nav\n      *ngIf=\"tabs.length\"\n      [ngStyle]=\"vtsTabBarStyle\"\n      [selectedIndex]=\"vtsSelectedIndex || 0\"\n      [inkBarAnimated]=\"inkBarAnimated\"\n      [addable]=\"addable\"\n      [addIcon]=\"vtsAddIcon\"\n      [hideBar]=\"vtsHideAll\"\n      [position]=\"position\"\n      [showMoreTabs]=\"vtsShowMoreTabs\"\n      [vtsDropdownPosition]=\"vtsDropdownPosition\"\n      [vtsDropdownContent]=\"vtsDropdownContent\"\n      [vtsDropdownClass]=\"vtsDropdownClass\"\n      [extraTemplate]=\"vtsTabBarExtraContent\"\n      (tabScroll)=\"vtsTabListScroll.emit($event)\"\n      (selectFocusedIndex)=\"setSelectedIndex($event)\"\n      (addClicked)=\"onAdd()\"\n    >\n      <div\n        class=\"vts-tabs-tab\"\n        [style.margin-right.px]=\"position === 'horizontal' ? vtsTabBarGutter : null\"\n        [style.margin-bottom.px]=\"position === 'vertical' ? vtsTabBarGutter : null\"\n        [class.vts-tabs-tab-active]=\"vtsSelectedIndex === i\"\n        [class.vts-tabs-tab-disabled]=\"tab.vtsDisabled\"\n        (click)=\"clickNavItem(tab, i, $event)\"\n        (contextmenu)=\"contextmenuNavItem(tab, $event)\"\n        *ngFor=\"let tab of tabs; let i = index\"\n      >\n        <div\n          role=\"tab\"\n          [attr.tabIndex]=\"getTabIndex(tab, i)\"\n          [attr.aria-disabled]=\"tab.vtsDisabled\"\n          [attr.aria-selected]=\"vtsSelectedIndex === i && !vtsHideAll\"\n          [attr.aria-controls]=\"getTabContentId(i)\"\n          [disabled]=\"tab.vtsDisabled\"\n          [tab]=\"tab\"\n          [active]=\"vtsSelectedIndex === i\"\n          class=\"vts-tabs-tab-btn\"\n          vtsTabNavItem\n          cdkMonitorElementFocus\n        >\n          <ng-container *vtsStringTemplateOutlet=\"tab.label; context: { visible: true }\">\n            {{ tab.label }}\n          </ng-container>\n          <button\n            vts-tab-close-button\n            *ngIf=\"tab.vtsClosable && closable && !tab.vtsDisabled\"\n            [closeIcon]=\"tab.vtsCloseIcon\"\n            (click)=\"onClose(i, $event)\"\n          ></button>\n        </div>\n      </div>\n    </vts-tabs-nav>\n    <div class=\"vts-tabs-content-holder\">\n      <div\n        class=\"vts-tabs-content\"\n        [class.vts-tabs-content-top]=\"vtsTabPosition === 'top'\"\n        [class.vts-tabs-content-bottom]=\"vtsTabPosition === 'bottom'\"\n        [class.vts-tabs-content-left]=\"vtsTabPosition === 'left'\"\n        [class.vts-tabs-content-right]=\"vtsTabPosition === 'right'\"\n        [class.vts-tabs-content-animated]=\"tabPaneAnimated\"\n        [style.margin-left]=\"getTabContentMarginLeft()\"\n        [style.margin-right]=\"getTabContentMarginRight()\"\n      >\n        <div\n          vts-tab-body\n          *ngFor=\"let tab of tabs; let i = index\"\n          [active]=\"vtsSelectedIndex == i && !vtsHideAll\"\n          [content]=\"tab.content\"\n          [forceRender]=\"tab.vtsForceRender\"\n          [tabPaneAnimated]=\"tabPaneAnimated\"\n        ></div>\n      </div>\n    </div>\n  `,\n  host: {\n    class: 'vts-tabs',\n    '[class.vts-tabs-card]': `vtsType === 'card' || vtsType === 'editable-card'`,\n    '[class.vts-tabs-editable]': `vtsType === 'editable-card'`,\n    '[class.vts-tabs-editable-card]': `vtsType === 'editable-card'`,\n    '[class.vts-tabs-centered]': `vtsCentered`,\n    '[class.vts-tabs-rtl]': `dir === 'rtl'`,\n    '[class.vts-tabs-top]': `vtsTabPosition === 'top'`,\n    '[class.vts-tabs-bottom]': `vtsTabPosition === 'bottom'`,\n    '[class.vts-tabs-left]': `vtsTabPosition === 'left'`,\n    '[class.vts-tabs-right]': `vtsTabPosition === 'right'`,\n    '[class.vts-tabs-default]': `vtsSize === 'md'`,\n    '[class.vts-tabs-small]': `vtsSize === 'sm'`,\n    '[class.vts-tabs-large]': `vtsSize === 'lg'`\n  }\n})\nexport class VtsTabSetComponent\n  implements OnInit, AfterContentChecked, OnDestroy, AfterContentInit\n{\n  readonly _vtsModuleName: VtsConfigKey = VTS_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_vtsHideAdd: BooleanInput;\n  static ngAcceptInputType_vtsHideAll: BooleanInput;\n  static ngAcceptInputType_vtsCentered: BooleanInput;\n  static ngAcceptInputType_vtsLinkRouter: BooleanInput;\n  static ngAcceptInputType_vtsLinkExact: BooleanInput;\n  static ngAcceptInputType_vtsSelectedIndex: NumberInput;\n  static ngAcceptInputType_vtsShowMoreTabs: BooleanInput;\n\n  @Input()\n  get vtsSelectedIndex(): number | null {\n    return this.selectedIndex;\n  }\n  set vtsSelectedIndex(value: null | number) {\n    this.indexToSelect = coerceNumberProperty(value, null);\n  }\n  @Input() vtsTabPosition: VtsTabPosition = 'top';\n  @Input() vtsTabBarExtraContent?: TemplateRef<void>;\n  @Input() vtsCanDeactivate: VtsTabsCanDeactivateFn | null = null;\n  @Input() vtsAddIcon: string | TemplateRef<VtsSafeAny> = 'PlusOutline:antd';\n  @Input() vtsTabBarStyle: { [key: string]: string } | null = null;\n  @Input() vtsDropdownPosition: VtsDropdownPositionType = \"bottomLeft\";\n  @Input() vtsDropdownContent?: TemplateRef<void>;\n  @Input() vtsDropdownClass = '';\n  @Input() @WithConfig() vtsType: VtsTabType = 'line';\n  @Input() @WithConfig() vtsSize: VtsSizeXLMSType = 'md';\n  @Input() @WithConfig() vtsAnimated: VtsAnimatedInterface | boolean = true;\n  @Input() @WithConfig() vtsTabBarGutter?: number = undefined;\n  @Input() @InputBoolean() vtsHideAdd: boolean = false;\n  @Input() @InputBoolean() vtsCentered: boolean = false;\n  @Input() @InputBoolean() vtsHideAll = false;\n  @Input() @InputBoolean() vtsLinkRouter = false;\n  @Input() @InputBoolean() vtsLinkExact = true;\n  @Input() @InputBoolean() vtsShowMoreTabs = false;\n\n  @Output()\n  readonly vtsSelectChange: EventEmitter<VtsTabChangeEvent> = new EventEmitter<VtsTabChangeEvent>(\n    true\n  );\n  @Output()\n  readonly vtsSelectedIndexChange: EventEmitter<number> = new EventEmitter<number>();\n  @Output() readonly vtsTabListScroll = new EventEmitter<VtsTabScrollEvent>();\n  @Output() readonly vtsClose = new EventEmitter<{ index: number }>();\n  @Output() readonly vtsAdd = new EventEmitter<void>();\n\n  get position(): VtsTabPositionMode {\n    return ['top', 'bottom'].indexOf(this.vtsTabPosition) === -1 ? 'vertical' : 'horizontal';\n  }\n\n  get addable(): boolean {\n    return this.vtsType === 'editable-card' && !this.vtsHideAdd;\n  }\n\n  get closable(): boolean {\n    return this.vtsType === 'editable-card';\n  }\n\n  get line(): boolean {\n    return this.vtsType === 'line';\n  }\n\n  get inkBarAnimated(): boolean {\n    return (\n      this.line &&\n      (typeof this.vtsAnimated === 'boolean' ? this.vtsAnimated : this.vtsAnimated.inkBar)\n    );\n  }\n\n  get tabPaneAnimated(): boolean {\n    return (\n      this.position === 'horizontal' &&\n      this.line &&\n      (typeof this.vtsAnimated === 'boolean' ? this.vtsAnimated : this.vtsAnimated.tabPane)\n    );\n  }\n\n  // Pick up only direct descendants under ivy rendering engine\n  // We filter out only the tabs that belong to this tab set in `tabs`.\n  @ContentChildren(VtsTabComponent, { descendants: true })\n  allTabs: QueryList<VtsTabComponent> = new QueryList<VtsTabComponent>();\n  @ViewChild(VtsTabNavBarComponent, { static: false })\n  tabNavBarRef!: VtsTabNavBarComponent;\n\n  // All the direct tabs for this tab set\n  tabs: QueryList<VtsTabComponent> = new QueryList<VtsTabComponent>();\n\n  dir: Direction = 'ltr';\n  private readonly tabSetId!: number;\n  private destroy$ = new Subject<void>();\n  private indexToSelect: number | null = 0;\n  private selectedIndex: number | null = null;\n  private tabLabelSubscription = Subscription.EMPTY;\n  private tabsSubscription = Subscription.EMPTY;\n  private canDeactivateSubscription = Subscription.EMPTY;\n\n  constructor(\n    public vtsConfigService: VtsConfigService,\n    private cdr: ChangeDetectorRef,\n    @Optional() private directionality: Directionality,\n    @Optional() private router: Router\n  ) {\n    this.tabSetId = nextId++;\n  }\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      this.cdr.detectChanges();\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n    this.tabs.destroy();\n    this.tabLabelSubscription.unsubscribe();\n    this.tabsSubscription.unsubscribe();\n    this.canDeactivateSubscription.unsubscribe();\n  }\n\n  ngAfterContentInit(): void {\n    Promise.resolve().then(() => {\n      this.setUpRouter();\n    });\n    this.subscribeToTabLabels();\n    this.subscribeToAllTabChanges();\n\n    // Subscribe to changes in the amount of tabs, in order to be\n    // able to re-render the content as new tabs are added or removed.\n    this.tabsSubscription = this.tabs.changes.subscribe(() => {\n      const indexToSelect = this.clampTabIndex(this.indexToSelect);\n\n      // Maintain the previously-selected tab if a new tab is added or removed and there is no\n      // explicit change that selects a different tab.\n      if (indexToSelect === this.selectedIndex) {\n        const tabs = this.tabs.toArray();\n\n        for (let i = 0; i < tabs.length; i++) {\n          if (tabs[i].isActive) {\n            // Assign both to the `indexToSelect` and `selectedIndex` so we don't fire a changed\n            // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n            // adding a tab within the `vtsSelectedIndexChange` event.\n            this.indexToSelect = this.selectedIndex = i;\n            break;\n          }\n        }\n      }\n      this.subscribeToTabLabels();\n      this.cdr.markForCheck();\n    });\n  }\n\n  ngAfterContentChecked(): void {\n    // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n    // the amount of tabs changes before the actual change detection runs.\n    const indexToSelect = (this.indexToSelect = this.clampTabIndex(this.indexToSelect));\n\n    // If there is a change in selected index, emit a change event. Should not trigger if\n    // the selected index has not yet been initialized.\n    if (this.selectedIndex !== indexToSelect) {\n      const isFirstRun = this.selectedIndex == null;\n\n      if (!isFirstRun) {\n        this.vtsSelectChange.emit(this.createChangeEvent(indexToSelect));\n      }\n\n      // Changing these values after change detection has run\n      // since the checked content may contain references to them.\n      Promise.resolve().then(() => {\n        this.tabs.forEach((tab, index) => (tab.isActive = index === indexToSelect));\n\n        if (!isFirstRun) {\n          this.vtsSelectedIndexChange.emit(indexToSelect);\n        }\n      });\n    }\n\n    // Setup the position for each tab and optionally setup an origin on the next selected tab.\n    this.tabs.forEach((tab: VtsTabComponent, index: number) => {\n      tab.position = index - indexToSelect;\n\n      // If there is already a selected tab, then set up an origin for the next selected tab\n      // if it doesn't have one already.\n      if (this.selectedIndex != null && tab.position === 0 && !tab.origin) {\n        tab.origin = indexToSelect - this.selectedIndex;\n      }\n    });\n\n    if (this.selectedIndex !== indexToSelect) {\n      this.selectedIndex = indexToSelect;\n      this.cdr.markForCheck();\n    }\n  }\n\n  onClose(index: number, e: MouseEvent): void {\n    e.preventDefault();\n    e.stopPropagation();\n    this.vtsClose.emit({ index });\n  }\n\n  onAdd(): void {\n    this.vtsAdd.emit();\n  }\n\n  private clampTabIndex(index: number | null): number {\n    return Math.min(this.tabs.length - 1, Math.max(index || 0, 0));\n  }\n\n  private createChangeEvent(index: number): VtsTabChangeEvent {\n    const event = new VtsTabChangeEvent();\n    event.index = index;\n    if (this.tabs && this.tabs.length) {\n      event.tab = this.tabs.toArray()[index];\n      this.tabs.forEach((tab, i) => {\n        if (i !== index) {\n          tab.vtsDeselect.emit();\n        }\n      });\n      event.tab.vtsSelect.emit();\n    }\n    return event;\n  }\n\n  private subscribeToTabLabels(): void {\n    if (this.tabLabelSubscription) {\n      this.tabLabelSubscription.unsubscribe();\n    }\n\n    this.tabLabelSubscription = merge(...this.tabs.map(tab => tab.stateChanges)).subscribe(() =>\n      this.cdr.markForCheck()\n    );\n  }\n\n  private subscribeToAllTabChanges(): void {\n    this.allTabs.changes\n      .pipe(startWith(this.allTabs))\n      .subscribe((tabs: QueryList<VtsTabComponent>) => {\n        this.tabs.reset(tabs.filter(tab => tab.closestTabSet === this));\n        this.tabs.notifyOnChanges();\n      });\n  }\n\n  canDeactivateFun(pre: number, next: number): Observable<boolean> {\n    if (typeof this.vtsCanDeactivate === 'function') {\n      const observable = wrapIntoObservable(this.vtsCanDeactivate(pre, next));\n      return observable.pipe(first(), takeUntil(this.destroy$));\n    } else {\n      return of(true);\n    }\n  }\n\n  clickNavItem(tab: VtsTabComponent, index: number, e: MouseEvent): void {\n    if (!tab.vtsDisabled) {\n      // ignore vtsCanDeactivate\n      tab.vtsClick.emit();\n      if (!this.isRouterLinkClickEvent(index, e)) {\n        this.setSelectedIndex(index);\n      }\n    }\n  }\n\n  private isRouterLinkClickEvent(index: number, event: MouseEvent): boolean {\n    const target = event.target as HTMLElement;\n    if (this.vtsLinkRouter) {\n      return !!this.tabs.toArray()[index]?.linkDirective?.elementRef.nativeElement.contains(target);\n    } else {\n      return false;\n    }\n  }\n\n  contextmenuNavItem(tab: VtsTabComponent, e: MouseEvent): void {\n    if (!tab.vtsDisabled) {\n      // ignore vtsCanDeactivate\n      tab.vtsContextmenu.emit(e);\n    }\n  }\n\n  setSelectedIndex(index: number): void {\n    this.canDeactivateSubscription.unsubscribe();\n    this.canDeactivateSubscription = this.canDeactivateFun(this.selectedIndex!, index).subscribe(\n      can => {\n        if (can) {\n          this.vtsSelectedIndex = index;\n          this.tabNavBarRef.focusIndex = index;\n          this.cdr.markForCheck();\n        }\n      }\n    );\n  }\n\n  getTabIndex(tab: VtsTabComponent, index: number): number | null {\n    if (tab.vtsDisabled) {\n      return null;\n    }\n    return this.selectedIndex === index ? 0 : -1;\n  }\n\n  getTabContentId(i: number): string {\n    return `vts-tabs-${this.tabSetId}-tab-${i}`;\n  }\n\n  private setUpRouter(): void {\n    if (this.vtsLinkRouter) {\n      if (!this.router) {\n        throw new Error(\n          `${PREFIX} you should import 'RouterModule' if you want to use 'vtsLinkRouter'!`\n        );\n      }\n      this.router.events\n        .pipe(\n          takeUntil(this.destroy$),\n          filter(e => e instanceof NavigationEnd),\n          startWith(true),\n          delay(0)\n        )\n        .subscribe(() => {\n          this.updateRouterActive();\n          this.cdr.markForCheck();\n        });\n    }\n  }\n\n  private updateRouterActive(): void {\n    if (this.router.navigated) {\n      const index = this.findShouldActiveTabIndex();\n      if (index !== this.selectedIndex) {\n        this.setSelectedIndex(index);\n      }\n      this.vtsHideAll = index === -1;\n    }\n  }\n\n  private findShouldActiveTabIndex(): number {\n    const tabs = this.tabs.toArray();\n    const isActive = this.isLinkActive(this.router);\n\n    return tabs.findIndex(tab => {\n      const c = tab.linkDirective;\n      return c ? isActive(c.routerLink) || isActive(c.routerLinkWithHref) : false;\n    });\n  }\n\n  private isLinkActive(router: Router): (link?: RouterLink | RouterLink) => boolean {\n    return (link?: RouterLink | RouterLink) =>\n      link?.urlTree ? router.isActive(link.urlTree, this.vtsLinkExact) : false;\n  }\n\n  private getTabContentMarginValue(): number {\n    return -(this.vtsSelectedIndex || 0) * 100;\n  }\n\n  getTabContentMarginLeft(): string {\n    if (this.tabPaneAnimated) {\n      if (this.dir !== 'rtl') {\n        return this.getTabContentMarginValue() + '%';\n      }\n    }\n    return '';\n  }\n  getTabContentMarginRight(): string {\n    if (this.tabPaneAnimated) {\n      if (this.dir === 'rtl') {\n        return this.getTabContentMarginValue() + '%';\n      }\n    }\n    return '';\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 */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { VtsOutletModule } from '@ui-vts-kit/ng-vts/core/outlet';\nimport { VtsDropDownModule } from '@ui-vts-kit/ng-vts/dropdown';\nimport { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\n\nimport { VtsTabAddButtonComponent } from './tab-add-button.component';\nimport { VtsTabBodyComponent } from './tab-body.component';\nimport { VtsTabCloseButtonComponent } from './tab-close-button.component';\nimport { VtsTabLinkDirective, VtsTabLinkTemplateDirective } from './tab-link.directive';\nimport { VtsTabNavBarComponent } from './tab-nav-bar.component';\nimport { VtsTabNavItemDirective } from './tab-nav-item.directive';\nimport { VtsTabNavOperationComponent } from './tab-nav-operation.component';\nimport { VtsTabScrollListDirective } from './tab-scroll-list.directive';\nimport { VtsTabComponent } from './tab.component';\nimport { VtsTabDirective } from './tab.directive';\nimport { VtsTabsInkBarDirective } from './tabs-ink-bar.directive';\nimport { VtsTabSetComponent } from './tabset.component';\n\nconst DIRECTIVES = [\n  VtsTabSetComponent,\n  VtsTabComponent,\n  VtsTabNavBarComponent,\n  VtsTabNavItemDirective,\n  VtsTabsInkBarDirective,\n  VtsTabScrollListDirective,\n  VtsTabNavOperationComponent,\n  VtsTabAddButtonComponent,\n  VtsTabCloseButtonComponent,\n  VtsTabDirective,\n  VtsTabBodyComponent,\n  VtsTabLinkDirective,\n  VtsTabLinkTemplateDirective\n];\n\n@NgModule({\n  declarations: [DIRECTIVES],\n  exports: [DIRECTIVES],\n  imports: [\n    BidiModule,\n    CommonModule,\n    ObserversModule,\n    VtsIconModule,\n    VtsOutletModule,\n    PlatformModule,\n    A11yModule,\n    CdkScrollableModule,\n    VtsDropDownModule\n  ]\n})\nexport class VtsTabsModule {}\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 { VtsTabAddButtonComponent as ɵVtsTabAddButtonComponent } from './tab-add-button.component';\nexport { VtsTabsInkBarDirective as ɵVtsTabsInkBarDirective } from './tabs-ink-bar.directive';\nexport { VtsTabNavBarComponent as ɵVtsTabNavBarComponent } from './tab-nav-bar.component';\nexport { VtsTabNavItemDirective as ɵVtsTabNavItemDirective } from './tab-nav-item.directive';\nexport { VtsTabBodyComponent as ɵVtsTabBodyComponent } from './tab-body.component';\nexport { VtsTabNavOperationComponent as ɵVtsTabNavOperationComponent } from './tab-nav-operation.component';\nexport { VtsTabScrollListDirective as ɵVtsTabScrollListDirective } from './tab-scroll-list.directive';\nexport { VtsTabCloseButtonComponent as ɵVtsTabCloseButtonComponent } from './tab-close-button.component';\nexport * from './tab.component';\nexport * from './tab.directive';\nexport * from './tab-link.directive';\nexport * from './tabs.module';\nexport * from './tabset.component';\nexport * from './interfaces';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i6.VtsTabAddButtonComponent","i4","i5.VtsTabsInkBarDirective","i6.VtsTabScrollListDirective","i7.VtsTabNavOperationComponent","i8.VtsTabAddButtonComponent","i5","i7.VtsTabNavBarComponent","i8.VtsTabNavItemDirective","i9.VtsTabCloseButtonComponent","i10.VtsTabBodyComponent"],"mappings":"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"}