@ng-doc/ui-kit
Version:
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>
1 lines • 7.39 kB
Source Map (JSON)
{"version":3,"file":"ng-doc-ui-kit-components-tab-group.mjs","sources":["../../../../libs/ui-kit/components/tab-group/tab/tab.component.ts","../../../../libs/ui-kit/components/tab-group/tab-group.component.ts","../../../../libs/ui-kit/components/tab-group/tab-group.component.html","../../../../libs/ui-kit/components/tab-group/ng-doc-ui-kit-components-tab-group.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgDocContent } from '@ng-doc/ui-kit/types';\n\n@Component({\n selector: 'ng-doc-tab, a[ng-doc-tab]',\n template: '',\n styleUrls: ['./tab.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class NgDocTabComponent<T> {\n @Input()\n label: NgDocContent = '';\n\n @Input()\n id: T | number = 0;\n\n /** Expander content */\n @Input()\n content: NgDocContent = '';\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n Input,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n NgDocSelectionComponent,\n NgDocSelectionHostDirective,\n NgDocSelectionOriginDirective,\n} from '@ng-doc/ui-kit/components/selection';\nimport { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';\nimport { startWith } from 'rxjs/operators';\n\nimport { NgDocTabComponent } from './tab/tab.component';\n\n@Component({\n selector: 'ng-doc-tab-group',\n templateUrl: './tab-group.component.html',\n styleUrls: ['./tab-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgDocSelectionHostDirective,\n NgDocSelectionComponent,\n NgDocSelectionOriginDirective,\n PolymorpheusModule,\n ],\n})\nexport class NgDocTabGroupComponent<T = number> implements AfterContentInit, AfterViewInit {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n @Input()\n openedTab!: T;\n\n @ViewChildren('headerTab')\n tabElements: QueryList<ElementRef> = new QueryList<ElementRef>();\n\n @ContentChildren(NgDocTabComponent)\n tabs: QueryList<NgDocTabComponent<T>> = new QueryList<NgDocTabComponent<T>>();\n\n selectedTab?: NgDocTabComponent<T>;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {}\n\n ngAfterContentInit(): void {\n this.tabs.changes\n .pipe(startWith(this.tabs), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const tabToOpen: NgDocTabComponent<T> | undefined = this.openedTab\n ? this.tabs.find((tab: NgDocTabComponent<T>) => tab.id === this.openedTab)\n : this.tabs.get(0);\n\n tabToOpen && this.selectTab(tabToOpen);\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n ngAfterViewInit(): void {\n this.tabElements.changes\n .pipe(startWith(this.tabElements), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.changeDetectorRef.detectChanges());\n }\n\n get selectedIndex(): number {\n return this.selectedTab ? this.tabs.toArray().indexOf(this.selectedTab) : -1;\n }\n\n get selectedHeaderTab(): ElementRef | null {\n return this.selectedTab ? this.tabElements.get(this.selectedIndex) ?? null : null;\n }\n\n selectTab(tab: NgDocTabComponent<T>) {\n this.selectedTab = tab;\n }\n}\n","<div class=\"ng-doc-tabs-wrapper\" ngDocSelectionHost>\n <ng-doc-selection></ng-doc-selection>\n @for (tab of tabs; track tab) {\n <div\n class=\"ng-doc-tab\"\n [class.selected]=\"tab === selectedTab\"\n (click)=\"selectTab(tab)\"\n [ngDocSelectionOrigin]=\"tab === selectedTab\"\n #headerTab>\n <div class=\"ng-doc-tab-text\">\n <ng-container *polymorpheusOutlet=\"tab.label; context: {}\">{{ tab.label }}</ng-container>\n </div>\n </div>\n }\n</div>\n\n<div class=\"ng-doc-body-wrapper\">\n <div *polymorpheusOutlet=\"selectedTab?.content ?? '' as text; context: {}\">\n {{ text }}\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}