From 3e2ee4ba2f8d3a80c2cc006ccd185cfe6902c000 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Fri, 25 Jul 2025 09:11:40 +0200 Subject: [PATCH] fix(cdk/listbox): coerce tabindex value Fixes that the CDK listbox option wasn't coercing its `tabindex` value. Fixes #31595. --- goldens/cdk/listbox/index.api.md | 2 ++ src/cdk/listbox/listbox.ts | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/goldens/cdk/listbox/index.api.md b/goldens/cdk/listbox/index.api.md index e4e97db2e089..16d788cf44e5 100644 --- a/goldens/cdk/listbox/index.api.md +++ b/goldens/cdk/listbox/index.api.md @@ -122,6 +122,8 @@ export class CdkOption implements ListKeyManagerOption, Highlightab // (undocumented) static ngAcceptInputType_disabled: unknown; // (undocumented) + static ngAcceptInputType_enabledTabIndex: unknown; + // (undocumented) ngOnDestroy(): void; select(): void; setActiveStyles(): void; diff --git a/src/cdk/listbox/listbox.ts b/src/cdk/listbox/listbox.ts index b4405757ea89..8a327f9a15c4 100644 --- a/src/cdk/listbox/listbox.ts +++ b/src/cdk/listbox/listbox.ts @@ -39,6 +39,7 @@ import { inject, Input, NgZone, + numberAttribute, OnDestroy, Output, QueryList, @@ -130,7 +131,10 @@ export class CdkOption implements ListKeyManagerOption, Highlightab private _disabled = signal(false); /** The tabindex of the option when it is enabled. */ - @Input('tabindex') + @Input({ + alias: 'tabindex', + transform: (value: unknown) => (value == null ? undefined : numberAttribute(value)), + }) get enabledTabIndex() { return this._enabledTabIndex() === undefined ? this.listbox.enabledTabIndex