12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { ChangeDetectionStrategy, Component, ContentChildren, DestroyRef, inject, Input, } from '@angular/core';
- import { TabButtonComponent } from '../../atoms/tab-button/tab-button.component';
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
- import { TabPanelDirective } from '../../../directives/tab-panel.directive';
- import * as i0 from "@angular/core";
- export class TabGroupComponent {
- constructor() {
- this.destroyRef = inject(DestroyRef);
- this.activeTab = '';
- }
- ngOnChanges(changes) {
- if (changes['activeTab'].previousValue !== this.activeTab) {
- this.setActiveTab(this.activeTab);
- }
- }
- ngAfterContentInit() {
- this.setActiveTab(this.activeTab);
- this.buttons.forEach(button => button.clicked.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(key => this.setActiveTab(key)));
- }
- setActiveTab(key) {
- if (this.panels && this.buttons) {
- this.panels.forEach(panel => {
- if (panel.ctTabPanel === key) {
- panel.show();
- this.getTabButtonTrigger(panel.ctTabPanel).isActive.set(true);
- }
- else {
- this.getTabButtonTrigger(panel.ctTabPanel).isActive.set(false);
- panel.hide.next(true);
- }
- });
- }
- }
- getTabButtonTrigger(key) {
- return this.buttons.find(panel => panel.key === key);
- }
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TabGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TabGroupComponent, isStandalone: true, selector: "ct-tab-group", inputs: { activeTab: "activeTab" }, queries: [{ propertyName: "buttons", predicate: TabButtonComponent }, { propertyName: "panels", predicate: TabPanelDirective }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"my-4 flex flex-row gap-2 border-y border-surface-variant py-2 dark:border-surface-variant-dark dark:text-on-surface-variant-dark\">\n <ng-content select=\"[header]\" />\n</div>\n<ng-content select=\"[body]\" />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
- }
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TabGroupComponent, decorators: [{
- type: Component,
- args: [{ selector: 'ct-tab-group', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"my-4 flex flex-row gap-2 border-y border-surface-variant py-2 dark:border-surface-variant-dark dark:text-on-surface-variant-dark\">\n <ng-content select=\"[header]\" />\n</div>\n<ng-content select=\"[body]\" />\n" }]
- }], propDecorators: { activeTab: [{
- type: Input
- }], buttons: [{
- type: ContentChildren,
- args: [TabButtonComponent]
- }], panels: [{
- type: ContentChildren,
- args: [TabPanelDirective]
- }] } });
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90YWItZ3JvdXAvdGFiLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90YWItZ3JvdXAvdGFiLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFTNUUsTUFBTSxPQUFPLGlCQUFpQjtJQVA5QjtRQVFVLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsY0FBUyxHQUFHLEVBQUUsQ0FBQztLQW1DekI7SUE5QkMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNsRyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDN0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDaEUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsR0FBVztRQUNyQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQXVCLENBQUM7SUFDN0UsQ0FBQzs4R0FwQ1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsb0lBSVgsa0JBQWtCLHlDQUNsQixpQkFBaUIsa0RDNUJwQyx1T0FLQTs7MkZEa0JhLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLEVBQUUsbUJBRU0sdUJBQXVCLENBQUMsTUFBTTs4QkFJdEMsU0FBUztzQkFBakIsS0FBSztnQkFFK0IsT0FBTztzQkFBM0MsZUFBZTt1QkFBQyxrQkFBa0I7Z0JBQ0MsTUFBTTtzQkFBekMsZUFBZTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERlc3Ryb3lSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RhYi1idXR0b24vdGFiLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVGFiUGFuZWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL3RhYi1wYW5lbC5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdC10YWItZ3JvdXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgQElucHV0KCkgYWN0aXZlVGFiID0gJyc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJCdXR0b25Db21wb25lbnQpIGJ1dHRvbnMhOiBRdWVyeUxpc3Q8VGFiQnV0dG9uQ29tcG9uZW50PjtcbiAgQENvbnRlbnRDaGlsZHJlbihUYWJQYW5lbERpcmVjdGl2ZSkgcGFuZWxzITogUXVlcnlMaXN0PFRhYlBhbmVsRGlyZWN0aXZlPjtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2FjdGl2ZVRhYiddLnByZXZpb3VzVmFsdWUgIT09IHRoaXMuYWN0aXZlVGFiKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYih0aGlzLmFjdGl2ZVRhYik7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0QWN0aXZlVGFiKHRoaXMuYWN0aXZlVGFiKTtcbiAgICB0aGlzLmJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT5cbiAgICAgIGJ1dHRvbi5jbGlja2VkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZShrZXkgPT4gdGhpcy5zZXRBY3RpdmVUYWIoa2V5KSlcbiAgICApO1xuICB9XG5cbiAgc2V0QWN0aXZlVGFiKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFuZWxzICYmIHRoaXMuYnV0dG9ucykge1xuICAgICAgdGhpcy5wYW5lbHMuZm9yRWFjaChwYW5lbCA9PiB7XG4gICAgICAgIGlmIChwYW5lbC5jdFRhYlBhbmVsID09PSBrZXkpIHtcbiAgICAgICAgICBwYW5lbC5zaG93KCk7XG4gICAgICAgICAgdGhpcy5nZXRUYWJCdXR0b25UcmlnZ2VyKHBhbmVsLmN0VGFiUGFuZWwpIS5pc0FjdGl2ZS5zZXQodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5nZXRUYWJCdXR0b25UcmlnZ2VyKHBhbmVsLmN0VGFiUGFuZWwpIS5pc0FjdGl2ZS5zZXQoZmFsc2UpO1xuICAgICAgICAgIHBhbmVsLmhpZGUubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYWJCdXR0b25UcmlnZ2VyKGtleTogc3RyaW5nKTogVGFiQnV0dG9uQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5idXR0b25zLmZpbmQocGFuZWwgPT4gcGFuZWwua2V5ID09PSBrZXkpIGFzIFRhYkJ1dHRvbkNvbXBvbmVudDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm15LTQgZmxleCBmbGV4LXJvdyBnYXAtMiBib3JkZXIteSBib3JkZXItc3VyZmFjZS12YXJpYW50IHB5LTIgZGFyazpib3JkZXItc3VyZmFjZS12YXJpYW50LWRhcmsgZGFyazp0ZXh0LW9uLXN1cmZhY2UtdmFyaWFudC1kYXJrXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJdXCIgLz5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JvZHldXCIgLz5cbiJdfQ==
|