{"version":3,"file":"mdb-angular-ui-kit-tabs.mjs","sources":["../../../projects/mdb-angular-ui-kit/tabs/tab-content.directive.ts","../../../projects/mdb-angular-ui-kit/tabs/tab-title.directive.ts","../../../projects/mdb-angular-ui-kit/tabs/tab.component.ts","../../../projects/mdb-angular-ui-kit/tabs/tab.component.html","../../../projects/mdb-angular-ui-kit/tabs/tab-outlet.directive.ts","../../../projects/mdb-angular-ui-kit/tabs/tabs.component.ts","../../../projects/mdb-angular-ui-kit/tabs/tabs.component.html","../../../projects/mdb-angular-ui-kit/tabs/tabs.module.ts","../../../projects/mdb-angular-ui-kit/tabs/mdb-angular-ui-kit-tabs.ts"],"sourcesContent":["import { Directive, InjectionToken, TemplateRef } from '@angular/core';\n\nexport const MDB_TAB_CONTENT = new InjectionToken<MdbTabContentDirective>('MdbTabContentDirective');\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[mdbTabContent]',\n  providers: [{ provide: MDB_TAB_CONTENT, useExisting: MdbTabContentDirective }],\n  standalone: false,\n})\nexport class MdbTabContentDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n","import { Directive, InjectionToken, TemplateRef } from '@angular/core';\n\nexport const MDB_TAB_TITLE = new InjectionToken<MdbTabTitleDirective>('MdbTabTitleDirective');\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[mdbTabTitle]',\n  providers: [{ provide: MDB_TAB_TITLE, useExisting: MdbTabTitleDirective }],\n  standalone: false,\n})\nexport class MdbTabTitleDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  Input,\n  OnInit,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { MDB_TAB_CONTENT } from './tab-content.directive';\nimport { MDB_TAB_TITLE } from './tab-title.directive';\n\nconst SHOW_TRANSITION_DELAY = 150; // Time of transition taken from styles\nconst TRANSITION_PADDING = 5; // Value from standard added via executeAfterTransition function\n\n@Component({\n  selector: 'mdb-tab',\n  templateUrl: './tab.component.html',\n  standalone: false,\n})\nexport class MdbTabComponent implements OnInit {\n  @ContentChild(MDB_TAB_CONTENT, { read: TemplateRef, static: true })\n  _lazyContent: TemplateRef<any>;\n\n  @ContentChild(MDB_TAB_TITLE, { read: TemplateRef, static: true })\n  _titleContent: TemplateRef<any>;\n\n  @ViewChild(TemplateRef, { static: true }) _content: TemplateRef<any>;\n\n  readonly activeStateChange$: Subject<boolean> = new Subject<boolean>();\n\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n  private _disabled = false;\n\n  @Input()\n  get fade(): boolean {\n    return this._fade;\n  }\n  set fade(value: boolean) {\n    this._fade = coerceBooleanProperty(value);\n  }\n  private _fade = true;\n\n  @Input() title: string;\n\n  get content(): TemplatePortal | null {\n    return this._contentPortal;\n  }\n\n  get titleContent(): TemplatePortal | null {\n    return this._titlePortal;\n  }\n\n  get shouldAttach(): boolean {\n    return this._lazyContent === undefined;\n  }\n\n  private _contentPortal: TemplatePortal | null = null;\n  private _titlePortal: TemplatePortal | null = null;\n\n  get active(): boolean {\n    return this._active;\n  }\n\n  set active(value: boolean) {\n    this._active = coerceBooleanProperty(value);\n    this.activeStateChange$.next(value);\n  }\n\n  private _active = false;\n\n  get show(): boolean {\n    return this._show;\n  }\n\n  set show(value: boolean) {\n    // We use setTimeout to apply delay for setting show class to reproduce standard library where\n    // show class is applied after a delay to newly activated item via usage of _queueCallback and\n    // executeAfterTransition functions which introduce delay equal to transition time taken from\n    // element styles\n    setTimeout(() => {\n      this._show = coerceBooleanProperty(value);\n      this._cdRef.markForCheck();\n    }, SHOW_TRANSITION_DELAY + TRANSITION_PADDING);\n  }\n\n  private _show = true;\n\n  constructor(private _vcr: ViewContainerRef, private _cdRef: ChangeDetectorRef) {}\n\n  ngOnInit(): void {\n    this._createContentPortal();\n\n    if (this._titleContent) {\n      this._createTitlePortal();\n    }\n  }\n\n  private _createContentPortal(): void {\n    const content = this._lazyContent || this._content;\n    this._contentPortal = new TemplatePortal(content, this._vcr);\n  }\n\n  private _createTitlePortal(): void {\n    this._titlePortal = new TemplatePortal(this._titleContent, this._vcr);\n  }\n\n  static ngAcceptInputType_disabled: BooleanInput;\n}\n","<ng-template><ng-content></ng-content></ng-template>\n","import { CdkPortalOutlet } from '@angular/cdk/portal';\n\nimport {\n  Directive,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  ViewContainerRef,\n  DOCUMENT,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MdbTabComponent } from './tab.component';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[mdbTabPortalOutlet]',\n  standalone: false,\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class MdbTabPortalOutlet extends CdkPortalOutlet implements OnInit, OnDestroy {\n  readonly _destroy$: Subject<void> = new Subject<void>();\n\n  @Input() tab: MdbTabComponent;\n\n  constructor(_vcr: ViewContainerRef, @Inject(DOCUMENT) _document: any) {\n    super(_vcr, _document);\n  }\n\n  ngOnInit(): void {\n    super.ngOnInit();\n\n    if ((this.tab.shouldAttach || this.tab.active) && !this.hasAttached()) {\n      this.attach(this.tab.content);\n    } else {\n      this.tab.activeStateChange$.pipe(takeUntil(this._destroy$)).subscribe((isActive) => {\n        if (isActive && !this.hasAttached()) {\n          this.attach(this.tab.content);\n        }\n      });\n    }\n  }\n\n  ngOnDestroy(): void {\n    this._destroy$.next();\n    this._destroy$.complete();\n    super.ngOnDestroy();\n  }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n  AfterContentInit,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  inject,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MdbTabComponent } from './tab.component';\n\nexport class MdbTabChange {\n  index: number;\n  tab: MdbTabComponent;\n}\n\n@Component({\n  selector: 'mdb-tabs',\n  templateUrl: './tabs.component.html',\n  standalone: false,\n})\nexport class MdbTabsComponent implements AfterContentInit, OnDestroy {\n  @ContentChildren(MdbTabComponent) tabs: QueryList<MdbTabComponent>;\n\n  readonly _destroy$: Subject<void> = new Subject<void>();\n\n  @Input()\n  get fill(): boolean {\n    return this._fill;\n  }\n  set fill(value: boolean) {\n    this._fill = coerceBooleanProperty(value);\n  }\n  private _fill = false;\n\n  @Input()\n  get justified(): boolean {\n    return this._justified;\n  }\n  set justified(value: boolean) {\n    this._justified = coerceBooleanProperty(value);\n  }\n  private _justified = false;\n\n  @Input()\n  get pills(): boolean {\n    return this._pills;\n  }\n  set pills(value: boolean) {\n    this._pills = coerceBooleanProperty(value);\n  }\n  private _pills = false;\n\n  @HostBinding('class.row')\n  @Input()\n  get vertical(): boolean {\n    return this._vertical;\n  }\n  set vertical(value: boolean) {\n    this._vertical = coerceBooleanProperty(value);\n  }\n  private _vertical = false;\n\n  @Input() navColumnClass = 'col-3';\n  @Input() contentColumnClass = 'col-9';\n\n  private _cdRef = inject(ChangeDetectorRef);\n\n  get navColClass(): string {\n    return this.vertical ? this.navColumnClass : '';\n  }\n\n  get contentColClass(): string {\n    return this.vertical ? this.contentColumnClass : '';\n  }\n\n  private _selectedIndex: number;\n\n  @Output() activeTabChange: EventEmitter<MdbTabChange> = new EventEmitter<MdbTabChange>();\n\n  ngAfterContentInit(): void {\n    const firstActiveTabIndex = this.tabs.toArray().findIndex((tab) => !tab.disabled);\n\n    this.setActiveTab(firstActiveTabIndex);\n    this.tabs.changes.pipe(takeUntil(this._destroy$)).subscribe(() => {\n      const hasActiveTab = this.tabs.find((tab) => tab.active);\n\n      if (!hasActiveTab) {\n        const closestTabIndex = this._getClosestTabIndex(this._selectedIndex);\n\n        if (closestTabIndex !== -1) {\n          this.setActiveTab(closestTabIndex);\n        }\n      }\n    });\n  }\n\n  setActiveTab(index: number): void {\n    const activeTab = this.tabs.toArray()[index];\n\n    if (!activeTab || (activeTab && activeTab.disabled)) {\n      return;\n    }\n\n    this.tabs.forEach((tab) => (tab.active = tab === activeTab));\n    this.tabs.forEach((tab) => (tab.show = tab === activeTab));\n\n    this._selectedIndex = index;\n\n    const tabChangeEvent = this._getTabChangeEvent(index, activeTab);\n    this.activeTabChange.emit(tabChangeEvent);\n    this._cdRef.markForCheck();\n  }\n\n  private _getTabChangeEvent(index: number, tab: MdbTabComponent): MdbTabChange {\n    const event = new MdbTabChange();\n    event.index = index;\n    event.tab = tab;\n\n    return event;\n  }\n\n  private _getClosestTabIndex(index: number): number {\n    const tabs = this.tabs.toArray();\n    const tabsLength = tabs.length;\n    if (!tabsLength) {\n      return -1;\n    }\n\n    for (let i = 1; i <= tabsLength; i += 1) {\n      const prevIndex = index - i;\n      const nextIndex = index + i;\n      if (tabs[prevIndex] && !tabs[prevIndex].disabled) {\n        return prevIndex;\n      }\n      if (tabs[nextIndex] && !tabs[nextIndex].disabled) {\n        return nextIndex;\n      }\n    }\n    return -1;\n  }\n\n  ngOnDestroy(): void {\n    this._destroy$.next();\n    this._destroy$.complete();\n  }\n\n  static ngAcceptInputType_fill: BooleanInput;\n  static ngAcceptInputType_justified: BooleanInput;\n  static ngAcceptInputType_pills: BooleanInput;\n  static ngAcceptInputType_vertical: BooleanInput;\n}\n","<ul\n  class=\"nav mb-3 flex-column {{ navColClass }}\"\n  [ngClass]=\"{\n    'nav-pills': pills,\n    'nav-tabs': !pills,\n    'nav-fill': fill,\n    'nav-justified': justified,\n    'flex-column': vertical,\n    'text-center': vertical\n  }\"\n  role=\"tablist\"\n>\n  @for (tab of tabs; track tab; let i = $index) {\n  <li (click)=\"setActiveTab(i)\" class=\"nav-item\" role=\"presentation\">\n    <a\n      href=\"javascript:void(0)\"\n      class=\"nav-link\"\n      [class.active]=\"tab.active\"\n      [class.disabled]=\"tab.disabled\"\n      role=\"tab\"\n    >\n      @if (tab.titleContent) {\n      <ng-template [cdkPortalOutlet]=\"tab.titleContent\"></ng-template>\n      } @if (!tab.titleContent) {\n      {{ tab.title }}\n      }\n    </a>\n  </li>\n  }\n</ul>\n\n<div class=\"tab-content {{ contentColClass }}\">\n  <!-- <ng-content select=\"mdb-tab\"></ng-content> -->\n  @for (tab of tabs; track tab) {\n  <div\n    class=\"tab-pane\"\n    [ngClass]=\"{\n      fade: tab.fade,\n      active: tab.active,\n      show: tab.show\n    }\"\n  >\n    <ng-template mdbTabPortalOutlet [tab]=\"tab\"></ng-template>\n  </div>\n  }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MdbTabComponent } from './tab.component';\nimport { MdbTabsComponent } from './tabs.component';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MdbTabContentDirective } from './tab-content.directive';\nimport { MdbTabPortalOutlet } from './tab-outlet.directive';\nimport { MdbTabTitleDirective } from './tab-title.directive';\n\n@NgModule({\n  declarations: [\n    MdbTabComponent,\n    MdbTabContentDirective,\n    MdbTabTitleDirective,\n    MdbTabPortalOutlet,\n    MdbTabsComponent,\n  ],\n  imports: [CommonModule, PortalModule],\n  exports: [\n    MdbTabComponent,\n    MdbTabContentDirective,\n    MdbTabTitleDirective,\n    MdbTabPortalOutlet,\n    MdbTabsComponent,\n  ],\n})\nexport class MdbTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.MdbTabPortalOutlet"],"mappings":"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"}