UNPKG

@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.91 kB
{"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 { NgFor } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n Input,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { tabFadeAnimation } from '@ng-doc/ui-kit/animations';\nimport {\n NgDocSelectionComponent,\n NgDocSelectionHostDirective,\n NgDocSelectionOriginDirective,\n} from '@ng-doc/ui-kit/components/selection';\nimport { NgDocSmoothResizeComponent } from '@ng-doc/ui-kit/components/smooth-resize';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';\nimport { startWith } from 'rxjs/operators';\n\nimport { NgDocTabComponent } from './tab/tab.component';\n\n@Component({\n animations: [tabFadeAnimation],\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 NgFor,\n NgDocSelectionOriginDirective,\n PolymorpheusModule,\n NgDocSmoothResizeComponent,\n ],\n})\n@UntilDestroy()\nexport class NgDocTabGroupComponent<T = number> implements AfterContentInit, AfterViewInit {\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 constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterContentInit(): void {\n this.tabs.changes.pipe(startWith(this.tabs), untilDestroyed(this)).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), untilDestroyed(this))\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\t<ng-doc-selection></ng-doc-selection>\n\t<div\n\t\tclass=\"ng-doc-tab\"\n\t\t[class.selected]=\"tab === selectedTab\"\n\t\t*ngFor=\"let tab of tabs\"\n\t\t(click)=\"selectTab(tab)\"\n\t\t[ngDocSelectionOrigin]=\"tab === selectedTab\"\n\t\t#headerTab>\n\t\t<div class=\"ng-doc-tab-text\">\n\t\t\t<ng-container *polymorpheusOutlet=\"tab.label; context: {}\">{{ tab.label }}</ng-container>\n\t\t</div>\n\t</div>\n</div>\n\n<div class=\"ng-doc-body-wrapper\">\n\t<ng-doc-smooth-resize [trigger]=\"selectedTab?.content ?? ''\">\n\t\t<div *polymorpheusOutlet=\"selectedTab?.content ?? '' as text; context: {}\" @tabFadeAnimation>\n\t\t\t{{ text }}\n\t\t</div>\n\t</ng-doc-smooth-resize>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}