1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-08 04:33:38 +00:00

continue migrating menu module

This commit is contained in:
Vicki League
2025-06-24 13:36:58 -04:00
parent 58a2904cee
commit ffd81f3e72
2 changed files with 11 additions and 10 deletions

View File

@@ -39,8 +39,9 @@ export class MenuItemDirective implements FocusableOption {
return this.disabled || null; // native disabled attr must be null when false
}
// TODO: Skipped for migration because:
// Your application code writes to the input. This prevents migration.
// TODO: Skipped for signal migration because:
// This input overrides a field from a superclass, while the superclass field
// is not migrated.
@Input({ transform: coerceBooleanProperty }) disabled?: boolean = false;
constructor(public elementRef: ElementRef<HTMLButtonElement>) {}

View File

@@ -7,7 +7,6 @@ import {
ElementRef,
HostBinding,
HostListener,
Input,
OnDestroy,
ViewContainerRef,
input,
@@ -17,18 +16,19 @@ import { filter, mergeWith } from "rxjs/operators";
import { MenuComponent } from "./menu.component";
@Directive({ selector: "[bitMenuTriggerFor]", exportAs: "menuTrigger", standalone: true })
@Directive({
selector: "[bitMenuTriggerFor]",
exportAs: "menuTrigger",
standalone: true,
host: { "[attr.role]": "this.role()" },
})
export class MenuTriggerForDirective implements OnDestroy {
@HostBinding("attr.aria-expanded") isOpen = false;
@HostBinding("attr.aria-haspopup") get hasPopup(): "menu" | "dialog" {
return this.menu()?.ariaRole() || "menu";
}
// TODO: Skipped for migration because:
// This input is used in combination with `@HostBinding` and migrating would
// break.
@HostBinding("attr.role")
@Input()
role = "button";
readonly role = input("button");
readonly menu = input<MenuComponent>(undefined, { alias: "bitMenuTriggerFor" });