mirror of
https://github.com/bitwarden/browser
synced 2026-02-04 10:43:47 +00:00
28 lines
560 B
TypeScript
28 lines
560 B
TypeScript
import { Portal } from "@angular/cdk/portal";
|
|
import { Directive, signal } from "@angular/core";
|
|
|
|
/**
|
|
* Host that renders a drawer
|
|
*
|
|
* @internal
|
|
*/
|
|
@Directive({
|
|
selector: "[bitDrawerHost]",
|
|
})
|
|
export class DrawerHostDirective {
|
|
private _portal = signal<Portal<unknown> | undefined>(undefined);
|
|
|
|
/** The portal to display */
|
|
portal = this._portal.asReadonly();
|
|
|
|
open(portal: Portal<unknown>) {
|
|
this._portal.set(portal);
|
|
}
|
|
|
|
close(portal: Portal<unknown>) {
|
|
if (portal === this.portal()) {
|
|
this._portal.set(undefined);
|
|
}
|
|
}
|
|
}
|