diff --git a/libs/components/src/menu/menu-item.directive.ts b/libs/components/src/menu/menu-item.directive.ts index 763660e718f..62081a4aff8 100644 --- a/libs/components/src/menu/menu-item.directive.ts +++ b/libs/components/src/menu/menu-item.directive.ts @@ -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) {} diff --git a/libs/components/src/menu/menu-trigger-for.directive.ts b/libs/components/src/menu/menu-trigger-for.directive.ts index 17d367ad7aa..feec5114efb 100644 --- a/libs/components/src/menu/menu-trigger-for.directive.ts +++ b/libs/components/src/menu/menu-trigger-for.directive.ts @@ -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(undefined, { alias: "bitMenuTriggerFor" });