{"version":3,"file":"tstdl-angular-vertical-tab-group.mjs","sources":["../../../../projects/tstdl/angular/vertical-tab-group/source/vertical-tab-item/vertical-tab-item.component.ts","../../../../projects/tstdl/angular/vertical-tab-group/source/vertical-tab-item/vertical-tab-item.component.html","../../../../projects/tstdl/angular/vertical-tab-group/source/vertical-tab/vertical-tab-label.directive.ts","../../../../projects/tstdl/angular/vertical-tab-group/source/vertical-tab/vertical-tab.component.ts","../../../../projects/tstdl/angular/vertical-tab-group/source/vertical-tab/vertical-tab.component.html","../../../../projects/tstdl/angular/vertical-tab-group/source/vertical-tab-group.component.ts","../../../../projects/tstdl/angular/vertical-tab-group/source/vertical-tab-group.component.html","../../../../projects/tstdl/angular/vertical-tab-group/source/module.ts","../../../../projects/tstdl/angular/vertical-tab-group/tstdl-angular-vertical-tab-group.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { DynamicTextPipe } from '@tstdl/angular';\nimport { IconComponent } from '@tstdl/angular/icon';\nimport type { VerticalTabComponent } from '../vertical-tab/vertical-tab.component';\n\n@Component({\n  selector: 'tsl-vertical-tab-item',\n  imports: [IconComponent, DynamicTextPipe, NgTemplateOutlet],\n  templateUrl: './vertical-tab-item.component.html',\n  styleUrl: './vertical-tab-item.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class VerticalTabItemComponent {\n  readonly tab = input.required<VerticalTabComponent>();\n}\n","<div class=\"flex items-center gap-2\">\n  @if (tab().icon(); as icon) {\n    <tsl-icon [icon]=\"icon\" size=\"2xl\"></tsl-icon>\n  }\n  <div class=\"tab-label\">\n    @if (tab().labelTemplateRef(); as labelTemplateRef) {\n      <ng-container [ngTemplateOutlet]=\"labelTemplateRef\"></ng-container>\n    } @else {\n      {{ tab().label() | dynamicText }}\n    }\n  </div>\n</div>\n\n@if (tab().description(); as description) {\n  <div class=\"tab-description\">{{ description | dynamicText }}</div>\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[verticalTabLabel]',\n  exportAs: 'verticalTabLabel',\n  standalone: true,\n})\nexport class VerticalTabLabelDirective {\n  readonly templateRef = inject<TemplateRef<void>>(TemplateRef, { optional: true });\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, computed, contentChild, input, viewChild } from '@angular/core';\nimport type { ActivatedRoute, QueryParamsHandling, UrlTree } from '@angular/router';\nimport type { IconName } from '@tstdl/angular/icon';\nimport type { DynamicText } from '@tstdl/base/text';\nimport type { Record } from '@tstdl/base/types';\n\nimport { VerticalTabLabelDirective } from './vertical-tab-label.directive';\n\n@Component({\n  selector: 'tsl-vertical-tab',\n  imports: [],\n  templateUrl: './vertical-tab.component.html',\n  styleUrl: './vertical-tab.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class VerticalTabComponent {\n  readonly contentTemplate = viewChild(TemplateRef);\n  readonly labelRef = contentChild(VerticalTabLabelDirective);\n\n  readonly label = input<DynamicText | null>();\n  readonly description = input<DynamicText | null>();\n  readonly icon = input<IconName | null>();\n  readonly class = input<string>();\n  readonly routerLink = input<readonly any[] | string | UrlTree | null | undefined>(null);\n\n  readonly routerLinkOptions = input<{\n    target?: string,\n    queryParams?: Record<string> | null,\n    fragment?: string,\n    queryParamsHandling?: QueryParamsHandling | null,\n    state?: Record<string>,\n    info?: unknown,\n    relativeTo?: ActivatedRoute | null,\n    preserveFragment?: boolean,\n    skipLocationChange?: boolean,\n    replaceUrl?: boolean,\n  }>();\n\n  readonly labelTemplateRef = computed(() => this.labelRef()?.templateRef);\n}\n","<ng-template>\n  <ng-content></ng-content>\n</ng-template>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, contentChildren, effect, input, model, viewChildren } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { DynamicTextPipe } from '@tstdl/angular';\nimport type { DynamicText } from '@tstdl/base/text';\nimport { isNull } from '@tstdl/base/utils';\n\nimport { VerticalTabItemComponent } from './vertical-tab-item/vertical-tab-item.component';\nimport { VerticalTabComponent } from './vertical-tab/vertical-tab.component';\n\n@Component({\n  selector: 'tsl-vertical-tab-group',\n  imports: [NgTemplateOutlet, DynamicTextPipe, NgClass, RouterLink, RouterLinkActive, VerticalTabItemComponent],\n  templateUrl: './vertical-tab-group.component.html',\n  styleUrl: './vertical-tab-group.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'tsl-tw',\n  },\n})\nexport class VerticalTabGroupComponent {\n  readonly tabs = contentChildren(VerticalTabComponent);\n  readonly tabContainers = viewChildren('tabContainer', { read: ElementRef });\n\n  readonly isRouterDriven = computed(() => this.tabs().some((tab) => !isNull(tab.routerLink())));\n\n  readonly title = input<DynamicText | null>();\n  readonly selectedTabIndex = model<number | null>(null);\n  readonly selectedTab = computed(() => this.tabs()[this.selectedTabIndex()!] ?? null);\n\n  constructor() {\n    effect(() => {\n      // If we are using the router, let it handle the active state.\n      // This effect should only manage the index for non-router-driven tabs.\n      if (this.isRouterDriven()) {\n        return;\n      }\n\n      const tabs = this.tabs();\n      const currentIndex = this.selectedTabIndex();\n\n      if (tabs.length == 0) {\n        this.selectedTabIndex.set(null);\n        return;\n      }\n\n      if (isNull(currentIndex) || (currentIndex < 0) || (currentIndex >= tabs.length)) {\n        this.selectedTabIndex.set(0);\n      }\n    });\n  }\n}\n","<div class=\"border-r self-stretch\">\n  @if (title(); as title) {\n    <div class=\"tab-title-container\">\n      <div>{{ title | dynamicText }}</div>\n    </div>\n  }\n\n  <div>\n    @for (tab of tabs(); track tab) {\n      <!-- IF ROUTER DRIVEN: Render as <a> tags with routerLink -->\n      @if (isRouterDriven()) {\n        <a\n          class=\"tab block\"\n          [routerLink]=\"tab.routerLink()\"\n          [target]=\"tab.routerLinkOptions()?.target\"\n          [queryParams]=\"tab.routerLinkOptions()?.queryParams\"\n          [fragment]=\"tab.routerLinkOptions()?.fragment\"\n          [queryParamsHandling]=\"tab.routerLinkOptions()?.queryParamsHandling\"\n          [state]=\"tab.routerLinkOptions()?.state\"\n          [info]=\"tab.routerLinkOptions()?.info\"\n          [relativeTo]=\"tab.routerLinkOptions()?.relativeTo\"\n          [preserveFragment]=\"tab.routerLinkOptions()?.preserveFragment\"\n          [skipLocationChange]=\"tab.routerLinkOptions()?.skipLocationChange\"\n          [replaceUrl]=\"tab.routerLinkOptions()?.replaceUrl\"\n          routerLinkActive=\"tab-selected\"\n          [routerLinkActiveOptions]=\"{ exact: true }\">\n          <tsl-vertical-tab-item [tab]=\"tab\"></tsl-vertical-tab-item>\n        </a>\n      } @else {\n        <!-- ELSE (STATEFUL): Render as divs with click handlers -->\n        <div tabindex=\"0\" class=\"tab\" [class.tab-selected]=\"tab == selectedTab()\" (click)=\"selectedTabIndex.set(tabs().indexOf(tab))\" (keyup.enter)=\"selectedTabIndex.set(tabs().indexOf(tab))\">\n          <tsl-vertical-tab-item [tab]=\"tab\"></tsl-vertical-tab-item>\n        </div>\n      }\n    }\n  </div>\n</div>\n\n@if (isRouterDriven()) {\n  <!-- IF ROUTER DRIVEN: Project content to allow for <router-outlet> -->\n  <div class=\"tabs-router-container\">\n    <ng-content select=\":not(tsl-vertical-tab)\"></ng-content>\n  </div>\n} @else {\n  <!-- ELSE (STATEFUL): Render tab content from templates -->\n  <div class=\"tabs-container\">\n    @for (tab of tabs(); let index = $index; track tab) {\n      <div\n        class=\"tab-container\"\n        [class.opacity-0]=\"index != selectedTabIndex()\"\n        [class.pointer-events-none]=\"index != selectedTabIndex()\"\n        [attr.inert]=\"index != selectedTabIndex() ? true : null\"\n        [ngClass]=\"tab.class()\">\n        <ng-container [ngTemplateOutlet]=\"tab.contentTemplate() ?? null\"></ng-container>\n      </div>\n    }\n  </div>\n}\n","import { NgModule } from '@angular/core';\n\nimport { VerticalTabGroupComponent } from './vertical-tab-group.component';\nimport { VerticalTabLabelDirective } from './vertical-tab/vertical-tab-label.directive';\nimport { VerticalTabComponent } from './vertical-tab/vertical-tab.component';\n\n@NgModule({\n  imports: [VerticalTabGroupComponent, VerticalTabComponent, VerticalTabLabelDirective],\n  exports: [VerticalTabGroupComponent, VerticalTabComponent, VerticalTabLabelDirective]\n})\nexport class TslVerticalTabGroupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}