{"version":3,"file":"verben-ng-ui-src-lib-components-verbena-tab.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/verbena-tab/tab-item.component.ts","../../../projects/verben-ng-ui/src/lib/components/verbena-tab/verbena-tab.component.ts","../../../projects/verben-ng-ui/src/lib/components/verbena-tab/verbena-tab.component.html","../../../projects/verben-ng-ui/src/lib/components/verbena-tab/verbena-tab.module.ts","../../../projects/verben-ng-ui/src/lib/components/verbena-tab/verben-ng-ui-src-lib-components-verbena-tab.ts"],"sourcesContent":["import { Component, Input, TemplateRef, ViewChild, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'lib-tab-item',\n  template: `\n    <ng-template #content>\n      <ng-content></ng-content>\n    </ng-template>\n  `\n})\nexport class TabItemComponent {\n  @Input() title: string = '';\n  @Input() id: string = '';\n  @Input() \n  set active(value: boolean) {\n    if (this._active !== value) {\n      this._active = value;\n      this.activeChange.emit(value);\n    }\n  }\n  get active(): boolean {\n    return this._active;\n  }\n\n  @Output() activeChange = new EventEmitter<boolean>();\n\n  @Input() disabled: boolean = false;\n  @Input() tabColor: string = ''; // Tab background color\n  @Input() activeTabBgColor: string = ''; // Active tab background color\n  @Input() textColor: string = ''; // Tab text color\n  @Input() hoverColor: string = ''; // Hover color\n  @Input() badgeCount: number | null = null;\n  @Input() badgeColor: string = '#ff4081'; // Badge background color\n\n  @ViewChild('content', { static: true }) content!: TemplateRef<any>;\n\n  private _active: boolean = false;\n}\n","import { Component, ContentChildren, QueryList, AfterContentInit, Output, EventEmitter, Input, ChangeDetectorRef } from '@angular/core';\nimport { TabItemComponent } from './tab-item.component';\n\n@Component({\n  selector: 'verben-tab',\n  templateUrl: './verbena-tab.component.html',\n  styleUrls: ['./verbena-tab.component.css']\n})\nexport class VerbenaTabComponent implements AfterContentInit {\n  @ContentChildren(TabItemComponent) tabs!: QueryList<TabItemComponent>;\n  @Output() tabChange = new EventEmitter<TabItemComponent>();\n\n  @Input() backgroundColor: string = ''; // Global background color\n  @Input() activeTabBgColor: string = ''; // Global active tab background\n  @Input() textColor: string = ''; // Global text color\n  @Input() hoverColor: string = ''; // Global hover color\n\n  activeTab: TabItemComponent | null = null;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  ngAfterContentInit() {\n    if (this.tabs.length && !this.tabs.find(tab => tab.active)) {\n      this.selectTab(this.tabs.first);\n    } else {\n      const activeTab = this.tabs.find(tab => tab.active);\n      if (activeTab) {\n        this.selectTab(activeTab);\n      }\n    }\n\n    this.tabs.changes.subscribe(() => {\n      if (!this.activeTab || !this.tabs.find(tab => tab === this.activeTab)) {\n        if (this.tabs.length) {\n          this.selectTab(this.tabs.first);\n        } else {\n          this.activeTab = null;\n        }\n      }\n      this.cdr.markForCheck();\n    });\n  }\n\n  selectTab(tab: TabItemComponent) {\n    if (tab.disabled) return;\n\n    if (this.activeTab) {\n      this.activeTab.active = false;\n    }\n\n    this.activeTab = tab;\n    tab.active = true;\n    this.tabChange.emit(tab);\n  }\n}\n","<div \n  class=\"tab-container\" \n  [ngStyle]=\"{'background-color': backgroundColor}\"\n>\n  <div class=\"tab-header\">\n    <div \n      *ngFor=\"let tab of tabs\" \n      class=\"tab-item\" \n      [ngClass]=\"{'active': tab.active, 'disabled': tab.disabled}\"\n      [ngStyle]=\"{\n        'background-color': tab.active ? (tab.activeTabBgColor || activeTabBgColor) : tab.tabColor,\n        'color': tab.textColor || textColor,\n        'border-color': !tab.tabColor? activeTabBgColor : tab.tabColor\n      }\"\n      (click)=\"!tab.disabled && selectTab(tab)\"\n    >\n      {{ tab.title }}\n      <span \n        class=\"tab-badge\" \n        *ngIf=\"tab.badgeCount !== null\"\n        [ngStyle]=\"{'background-color': tab.badgeColor}\"\n      >\n        {{ tab.badgeCount }}\n      </span>\n    </div>\n  </div>\n  <div class=\"tab-content\" *ngIf=\"activeTab\" [ngStyle]=\"{'background-color': !activeTab.tabColor? activeTabBgColor : activeTab.tabColor}\">\n    <ng-container [ngTemplateOutlet]=\"activeTab.content\"></ng-container>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VerbenaTabComponent } from './verbena-tab.component';\nimport { TabItemComponent } from './tab-item.component';\n\n@NgModule({\n  declarations: [\n    VerbenaTabComponent,\n    TabItemComponent\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    VerbenaTabComponent,\n    TabItemComponent\n  ]\n})\nexport class VerbenaTabModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}