mirror of
https://github.com/bitwarden/browser
synced 2025-12-14 23:33:31 +00:00
* [EC-456] Rename bitTabItem -> bitTab * [EC-456] Use templateRefs or text for tab label content * [EC-456] Add bit-tab-nav-bar component * [EC-456] Finish content tab switching and nav tabs * [EC-456] Undo accidental eslintrc.json change * [EC-456] Fix directive/component selector naming convention * [EC-456] Cleanup unnecessary InjectionTokens and simplify template label property * [EC-456] Cleanup one more unnecessary InjectionToken * [EC-456] Cleanup tab styles to better match Figma. Add internal tab header component for styling header background according to Figma. * [EC-456] Add sub-folders for nav, content, and shared tab components/directives * [EC-456] Code/style cleanup * [EC-456] Remove underscore from protected members * [EC-456] Cleanup tab stories and forgotten any type. * [EC-456] Fix dark theme story tab content text color * [EC-456] Add missing padding to tab header * [EC-456] Add tab content padding to align with tab headers * [EC-456] Move bottom tab border to header to span entire content area * [EC-456] Force text-main tab label color * [EC-456] Undo text-main change
43 lines
962 B
TypeScript
43 lines
962 B
TypeScript
import { TemplatePortal } from "@angular/cdk/portal";
|
|
import {
|
|
Component,
|
|
ContentChild,
|
|
Input,
|
|
OnInit,
|
|
TemplateRef,
|
|
ViewChild,
|
|
ViewContainerRef,
|
|
} from "@angular/core";
|
|
|
|
import { TabLabelDirective } from "./tab-label.directive";
|
|
|
|
@Component({
|
|
selector: "bit-tab",
|
|
templateUrl: "./tab.component.html",
|
|
host: {
|
|
role: "tabpanel",
|
|
},
|
|
})
|
|
export class TabComponent implements OnInit {
|
|
@Input() disabled = false;
|
|
|
|
@Input("label") textLabel = "";
|
|
|
|
@ViewChild(TemplateRef, { static: true }) implicitContent: TemplateRef<unknown>;
|
|
@ContentChild(TabLabelDirective) templateLabel: TabLabelDirective;
|
|
|
|
private _contentPortal: TemplatePortal | null = null;
|
|
|
|
get content(): TemplatePortal | null {
|
|
return this._contentPortal;
|
|
}
|
|
|
|
isActive: boolean;
|
|
|
|
constructor(private _viewContainerRef: ViewContainerRef) {}
|
|
|
|
ngOnInit(): void {
|
|
this._contentPortal = new TemplatePortal(this.implicitContent, this._viewContainerRef);
|
|
}
|
|
}
|