{"version":3,"file":"toolbox-tabs.mjs","sources":["../../../projects/toolbox/tabs/components/tab.component.ts","../../../projects/toolbox/tabs/components/tabs.component.ts","../../../projects/toolbox/tabs/components/tabs.component.html","../../../projects/toolbox/tabs/tabs.module.ts","../../../projects/toolbox/tabs/toolbox-tabs.ts"],"sourcesContent":["import { Component, Input } from \"@angular/core\";\r\n\r\n/**\r\n * Manages tab that display content.\r\n */\r\n@Component( {\n    selector: \"tbx-tab\",\n    template: `\r\n    <div [hidden]=\"!active\" class=\"{{internalClass}}\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  `,\n    standalone: false\n} )\r\nexport class TbxTabComponent\r\n{\r\n  /** Gets or sets the caption for the tab. */\r\n  @Input() public title = \"\";\r\n\r\n  /** Gets or sets the CSS classes to apply to the component. */\r\n  @Input() public class!: string;\r\n\r\n  /** Gets or sets a value indicating whether the tab is active. */\r\n  public active = false;\r\n\r\n  /** Gets the CSS classes added by user including internal ones. */\r\n  public get internalClass(): string\r\n  {\r\n    return [this.class].filter( Boolean ).join( \" \" );\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ContentChildren,\r\n  QueryList,\r\n  AfterContentInit } from \"@angular/core\";\r\n\r\nimport { TbxTabComponent } from \"./tab.component\";\r\n\r\n/**\r\n * Manages tabs that display content.\r\n */\r\n@Component( {\n    selector: \"tbx-tabs\",\n    styleUrls: [\"./tabs.component.scss\"],\n    templateUrl: \"./tabs.component.html\",\n    standalone: false\n} )\r\nexport class TbxTabsComponent implements AfterContentInit\r\n{\r\n  /** The list of {@link TbxTabComponent} found inside the control. */\r\n  @ContentChildren( TbxTabComponent )\r\n  public tabs!: QueryList<TbxTabComponent>;\r\n\r\n  /** Gets or sets the CSS classes to apply to the component. */\r\n  @Input() public class!: string;\r\n\r\n  /** Gets or sets the CSS classes to apply to the tab item component. */\r\n  @Input() public tabClass!: string;\r\n\r\n  /** Raised when a tab is selected. */\r\n  @Output() public selected = new EventEmitter<TbxTabComponent>();\r\n\r\n  /** Gets the CSS classes added by user including internal ones. */\r\n  public get internalClass(): string\r\n  {\r\n    return [\r\n      \"nav\",\r\n      \"nav-tabs\",\r\n      this.class\r\n    ].filter( Boolean ).join( \" \" );\r\n  }\r\n\r\n  /** Gets the CSS classes added by user including internal ones. */\r\n  public get internalTabClass(): string\r\n  {\r\n    return [\r\n      \"nav-item\",\r\n      this.class\r\n    ].filter( Boolean ).join( \" \" );\r\n  }\r\n\r\n  public ngAfterContentInit(): void\r\n  {\r\n    const activeTabs = this.tabs.filter( tab => tab.active );\r\n\r\n    if( activeTabs.length === 0 )\r\n    {\r\n      this.selectTab( this.tabs.first );\r\n    }\r\n  }\r\n\r\n  /** Called when the user clicks on a tab. */\r\n  public selectTab( tab: TbxTabComponent ): void\r\n  {\r\n    this.tabs.toArray().forEach( t => t.active = false );\r\n    tab.active = true;\r\n\r\n    this.selected.emit( tab );\r\n  }\r\n}\r\n","<ul class=\"{{internalClass}}\">\r\n  <li *ngFor=\"let tab of tabs\"\r\n      [class]=\"internalTabClass\"\r\n      [class.active]=\"tab.active\"\r\n      (click)=\"selectTab(tab)\">\r\n    <div class=\"nav-link\">{{ tab.title }}</div>\r\n  </li>\r\n</ul>\r\n\r\n<ng-content></ng-content>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { TbxTabsComponent } from \"./components/tabs.component\";\r\nimport { TbxTabComponent } from \"./components/tab.component\";\r\n\r\n@NgModule( {\r\n  declarations: [TbxTabsComponent, TbxTabComponent],\r\n  imports: [CommonModule],\r\n  exports: [TbxTabsComponent, TbxTabComponent]\r\n} )\r\nexport class TbxTabsModule\r\n{\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}