diff --git a/goldens/aria/grid/index.api.md b/goldens/aria/grid/index.api.md index 2498554eb389..237af288901c 100644 --- a/goldens/aria/grid/index.api.md +++ b/goldens/aria/grid/index.api.md @@ -9,7 +9,6 @@ import * as _angular_cdk_bidi from '@angular/cdk/bidi'; import * as _angular_core from '@angular/core'; import { ElementRef } from '@angular/core'; import { Signal } from '@angular/core'; -import { WritableSignal } from '@angular/core'; // @public export class Grid { diff --git a/goldens/aria/private/index.api.md b/goldens/aria/private/index.api.md index d0a40dd35ee8..c8ca83c0d9a1 100644 --- a/goldens/aria/private/index.api.md +++ b/goldens/aria/private/index.api.md @@ -7,7 +7,6 @@ import * as _angular_core from '@angular/core'; import { OnDestroy } from '@angular/core'; import { untracked } from '@angular/core/primitives/signals'; -import { WritableSignal } from '@angular/core'; // @public export interface AccordionGroupInputs extends Omit & ListFocusInputs & Omit, 'focusMode'> { @@ -338,17 +337,17 @@ export class GridCellPattern implements GridCell { // (undocumented) readonly inputs: GridCellInputs; readonly isActivated: SignalLike; - readonly isFocused: WritableSignal; - readonly keydown: _angular_core.Signal>; + readonly isFocused: WritableSignalLike; + readonly keydown: SignalLike>; readonly multiWidgetMode: SignalLike; readonly navigationActivated: WritableSignalLike; readonly navigationBehavior: ListNavigation; readonly navigationDisabled: SignalLike; - readonly nextKey: _angular_core.Signal<"ArrowRight" | "ArrowLeft" | "ArrowDown">; + readonly nextKey: SignalLike<"ArrowRight" | "ArrowLeft" | "ArrowDown">; onFocusIn(event: FocusEvent): void; onFocusOut(event: FocusEvent): void; onKeydown(event: KeyboardEvent): void; - readonly prevKey: _angular_core.Signal<"ArrowUp" | "ArrowRight" | "ArrowLeft">; + readonly prevKey: SignalLike<"ArrowUp" | "ArrowRight" | "ArrowLeft">; readonly rowSpan: SignalLike; readonly selectable: SignalLike; readonly selected: WritableSignalLike; @@ -660,16 +659,16 @@ export interface OptionInputs extends Omit, 'index' | 'selectable // @public export class OptionPattern { constructor(args: OptionInputs); - active: _angular_core.Signal; + active: SignalLike; disabled: SignalLike; element: SignalLike; id: SignalLike; - index: _angular_core.Signal; + index: SignalLike; listbox: SignalLike | undefined>; searchTerm: SignalLike; selectable: () => boolean; - selected: _angular_core.Signal; - tabIndex: _angular_core.Signal<0 | -1 | undefined>; + selected: SignalLike; + tabIndex: SignalLike<0 | -1 | undefined>; value: SignalLike; } diff --git a/src/aria/private/behaviors/grid/grid-navigation.ts b/src/aria/private/behaviors/grid/grid-navigation.ts index 5c2198c221ce..45fa7f84af21 100644 --- a/src/aria/private/behaviors/grid/grid-navigation.ts +++ b/src/aria/private/behaviors/grid/grid-navigation.ts @@ -6,8 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {computed} from '@angular/core'; -import {SignalLike} from '../signal-like/signal-like'; +import {SignalLike, computed} from '../signal-like/signal-like'; import {GridFocus, GridFocusCell, GridFocusInputs} from './grid-focus'; import {GridData, RowCol} from './grid-data'; diff --git a/src/aria/private/behaviors/label/BUILD b/src/aria/private/behaviors/label/BUILD index 5a0beedaa7fc..26e99c7d5b4b 100644 --- a/src/aria/private/behaviors/label/BUILD +++ b/src/aria/private/behaviors/label/BUILD @@ -8,7 +8,6 @@ ts_project( "label.ts", ], deps = [ - "//:node_modules/@angular/core", "//src/aria/private/behaviors/signal-like", ], ) @@ -21,7 +20,6 @@ ng_project( ], deps = [ ":label", - "//:node_modules/@angular/core", "//src/aria/private/behaviors/signal-like", ], ) diff --git a/src/aria/private/behaviors/label/label.ts b/src/aria/private/behaviors/label/label.ts index 5debdce1c4f1..e8eb5a09f053 100644 --- a/src/aria/private/behaviors/label/label.ts +++ b/src/aria/private/behaviors/label/label.ts @@ -5,8 +5,7 @@ * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ -import {computed} from '@angular/core'; -import {SignalLike} from '../signal-like/signal-like'; +import {computed, SignalLike} from '../signal-like/signal-like'; /** Represents the required inputs for the label control. */ export interface LabelControlInputs { diff --git a/src/aria/private/behaviors/list-navigation/BUILD.bazel b/src/aria/private/behaviors/list-navigation/BUILD.bazel index 3ab4de5f18fd..4464b5c39ba1 100644 --- a/src/aria/private/behaviors/list-navigation/BUILD.bazel +++ b/src/aria/private/behaviors/list-navigation/BUILD.bazel @@ -9,7 +9,6 @@ ts_project( exclude = ["**/*.spec.ts"], ), deps = [ - "//:node_modules/@angular/core", "//src/aria/private/behaviors/list-focus", "//src/aria/private/behaviors/signal-like", ], @@ -21,8 +20,8 @@ ng_project( srcs = glob(["**/*.spec.ts"]), deps = [ ":list-navigation", - "//:node_modules/@angular/core", "//src/aria/private/behaviors/list-focus:unit_test_sources", + "//src/aria/private/behaviors/signal-like", ], ) diff --git a/src/aria/private/behaviors/list-navigation/list-navigation.spec.ts b/src/aria/private/behaviors/list-navigation/list-navigation.spec.ts index a3f3e600c15d..e230e8b7e576 100644 --- a/src/aria/private/behaviors/list-navigation/list-navigation.spec.ts +++ b/src/aria/private/behaviors/list-navigation/list-navigation.spec.ts @@ -6,12 +6,12 @@ * found in the LICENSE file at https://angular.dev/license */ -import {signal, WritableSignal} from '@angular/core'; +import {signal, WritableSignalLike} from '../signal-like/signal-like'; import {ListNavigation, ListNavigationInputs, ListNavigationItem} from './list-navigation'; import {getListFocus} from '../list-focus/list-focus.spec'; type TestItem = ListNavigationItem & { - disabled: WritableSignal; + disabled: WritableSignalLike; }; type TestInputs = Partial> & { numItems?: number; diff --git a/src/aria/private/behaviors/signal-like/signal-like.ts b/src/aria/private/behaviors/signal-like/signal-like.ts index 5b07d3116b48..ee11e6ff9fa9 100644 --- a/src/aria/private/behaviors/signal-like/signal-like.ts +++ b/src/aria/private/behaviors/signal-like/signal-like.ts @@ -43,17 +43,20 @@ export function computed(computation: () => T): SignalLike { const computed = createComputed(computation); // TODO: Remove the `toString` after https://github.com/angular/angular/pull/65948 is merged. computed.toString = () => `[Computed: ${computed()}]`; + computed[SIGNAL].debugName = ''; return computed; } export function signal(initialValue: T): WritableSignalLike { const [get, set, update] = createSignal(initialValue); + get[SIGNAL].debugName = ''; // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function. return Object.assign(get, {set, update, asReadonly: () => get}); } export function linkedSignal(sourceFn: () => T): WritableSignalLike { const getter = createLinkedSignal(sourceFn, s => s); + getter[SIGNAL].debugName = ''; // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function. return Object.assign(getter, { set: (v: T) => linkedSignalSetFn(getter[SIGNAL], v), diff --git a/src/aria/private/grid/cell.ts b/src/aria/private/grid/cell.ts index fc5f81485a3d..90e28a8917f6 100644 --- a/src/aria/private/grid/cell.ts +++ b/src/aria/private/grid/cell.ts @@ -6,11 +6,16 @@ * found in the LICENSE file at https://angular.dev/license */ -import {computed, signal, linkedSignal, WritableSignal} from '@angular/core'; import {KeyboardEventManager} from '../behaviors/event-manager'; import {ListFocus} from '../behaviors/list-focus/list-focus'; import {ListNavigation, ListNavigationInputs} from '../behaviors/list-navigation/list-navigation'; -import {SignalLike, WritableSignalLike} from '../behaviors/signal-like/signal-like'; +import { + computed, + signal, + linkedSignal, + SignalLike, + WritableSignalLike, +} from '../behaviors/signal-like/signal-like'; import {GridCell} from '../behaviors/grid'; import type {GridPattern} from './grid'; import type {GridRowPattern} from './row'; @@ -52,7 +57,7 @@ export class GridCellPattern implements GridCell { readonly element: SignalLike = () => this.inputs.element(); /** Whether the cell has focus. */ - readonly isFocused: WritableSignal = signal(false); + readonly isFocused: WritableSignalLike = signal(false); /** Whether the cell is selected. */ readonly selected: WritableSignalLike; diff --git a/src/aria/private/listbox/option.ts b/src/aria/private/listbox/option.ts index 718774382f40..69930a3ec06b 100644 --- a/src/aria/private/listbox/option.ts +++ b/src/aria/private/listbox/option.ts @@ -6,8 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {computed} from '@angular/core'; -import {SignalLike} from '../behaviors/signal-like/signal-like'; +import {computed, SignalLike} from '../behaviors/signal-like/signal-like'; import {List, ListInputs, ListItem} from '../behaviors/list/list'; /**