Skip to content

Commit e1f9a7d

Browse files
andrewseguinAndrew Seguin
andauthored
refactor: cleanup remaining signal primitive usages (#32549)
* refactor: cleanup remaining signal primitive usages * refactor: fix lint and goldens * refactor: fix build * refactor: fix label --------- Co-authored-by: Andrew Seguin <[email protected]>
1 parent 8b96a84 commit e1f9a7d

File tree

10 files changed

+25
-25
lines changed

10 files changed

+25
-25
lines changed

goldens/aria/grid/index.api.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import * as _angular_cdk_bidi from '@angular/cdk/bidi';
99
import * as _angular_core from '@angular/core';
1010
import { ElementRef } from '@angular/core';
1111
import { Signal } from '@angular/core';
12-
import { WritableSignal } from '@angular/core';
1312

1413
// @public
1514
export class Grid {

goldens/aria/private/index.api.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import * as _angular_core from '@angular/core';
88
import { OnDestroy } from '@angular/core';
99
import { untracked } from '@angular/core/primitives/signals';
10-
import { WritableSignal } from '@angular/core';
1110

1211
// @public
1312
export interface AccordionGroupInputs extends Omit<ListNavigationInputs<AccordionTriggerPattern> & ListFocusInputs<AccordionTriggerPattern> & Omit<ListExpansionInputs, 'items'>, 'focusMode'> {
@@ -338,17 +337,17 @@ export class GridCellPattern implements GridCell {
338337
// (undocumented)
339338
readonly inputs: GridCellInputs;
340339
readonly isActivated: SignalLike<boolean>;
341-
readonly isFocused: WritableSignal<boolean>;
342-
readonly keydown: _angular_core.Signal<KeyboardEventManager<KeyboardEvent>>;
340+
readonly isFocused: WritableSignalLike<boolean>;
341+
readonly keydown: SignalLike<KeyboardEventManager<KeyboardEvent>>;
343342
readonly multiWidgetMode: SignalLike<boolean>;
344343
readonly navigationActivated: WritableSignalLike<boolean>;
345344
readonly navigationBehavior: ListNavigation<GridCellWidgetPattern>;
346345
readonly navigationDisabled: SignalLike<boolean>;
347-
readonly nextKey: _angular_core.Signal<"ArrowRight" | "ArrowLeft" | "ArrowDown">;
346+
readonly nextKey: SignalLike<"ArrowRight" | "ArrowLeft" | "ArrowDown">;
348347
onFocusIn(event: FocusEvent): void;
349348
onFocusOut(event: FocusEvent): void;
350349
onKeydown(event: KeyboardEvent): void;
351-
readonly prevKey: _angular_core.Signal<"ArrowUp" | "ArrowRight" | "ArrowLeft">;
350+
readonly prevKey: SignalLike<"ArrowUp" | "ArrowRight" | "ArrowLeft">;
352351
readonly rowSpan: SignalLike<number>;
353352
readonly selectable: SignalLike<boolean>;
354353
readonly selected: WritableSignalLike<boolean>;
@@ -660,16 +659,16 @@ export interface OptionInputs<V> extends Omit<ListItem<V>, 'index' | 'selectable
660659
// @public
661660
export class OptionPattern<V> {
662661
constructor(args: OptionInputs<V>);
663-
active: _angular_core.Signal<boolean>;
662+
active: SignalLike<boolean>;
664663
disabled: SignalLike<boolean>;
665664
element: SignalLike<HTMLElement | undefined>;
666665
id: SignalLike<string>;
667-
index: _angular_core.Signal<number>;
666+
index: SignalLike<number>;
668667
listbox: SignalLike<ListboxPattern$1<V> | undefined>;
669668
searchTerm: SignalLike<string>;
670669
selectable: () => boolean;
671-
selected: _angular_core.Signal<boolean | undefined>;
672-
tabIndex: _angular_core.Signal<0 | -1 | undefined>;
670+
selected: SignalLike<boolean | undefined>;
671+
tabIndex: SignalLike<0 | -1 | undefined>;
673672
value: SignalLike<V>;
674673
}
675674

src/aria/private/behaviors/grid/grid-navigation.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
* found in the LICENSE file at https://angular.dev/license
77
*/
88

9-
import {computed} from '@angular/core';
10-
import {SignalLike} from '../signal-like/signal-like';
9+
import {SignalLike, computed} from '../signal-like/signal-like';
1110
import {GridFocus, GridFocusCell, GridFocusInputs} from './grid-focus';
1211
import {GridData, RowCol} from './grid-data';
1312

src/aria/private/behaviors/label/BUILD

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ ts_project(
88
"label.ts",
99
],
1010
deps = [
11-
"//:node_modules/@angular/core",
1211
"//src/aria/private/behaviors/signal-like",
1312
],
1413
)
@@ -21,7 +20,6 @@ ng_project(
2120
],
2221
deps = [
2322
":label",
24-
"//:node_modules/@angular/core",
2523
"//src/aria/private/behaviors/signal-like",
2624
],
2725
)

src/aria/private/behaviors/label/label.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
* Use of this source code is governed by an MIT-style license that can be
66
* found in the LICENSE file at https://angular.dev/license
77
*/
8-
import {computed} from '@angular/core';
9-
import {SignalLike} from '../signal-like/signal-like';
8+
import {computed, SignalLike} from '../signal-like/signal-like';
109

1110
/** Represents the required inputs for the label control. */
1211
export interface LabelControlInputs {

src/aria/private/behaviors/list-navigation/BUILD.bazel

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ ts_project(
99
exclude = ["**/*.spec.ts"],
1010
),
1111
deps = [
12-
"//:node_modules/@angular/core",
1312
"//src/aria/private/behaviors/list-focus",
1413
"//src/aria/private/behaviors/signal-like",
1514
],
@@ -21,8 +20,8 @@ ng_project(
2120
srcs = glob(["**/*.spec.ts"]),
2221
deps = [
2322
":list-navigation",
24-
"//:node_modules/@angular/core",
2523
"//src/aria/private/behaviors/list-focus:unit_test_sources",
24+
"//src/aria/private/behaviors/signal-like",
2625
],
2726
)
2827

src/aria/private/behaviors/list-navigation/list-navigation.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
* found in the LICENSE file at https://angular.dev/license
77
*/
88

9-
import {signal, WritableSignal} from '@angular/core';
9+
import {signal, WritableSignalLike} from '../signal-like/signal-like';
1010
import {ListNavigation, ListNavigationInputs, ListNavigationItem} from './list-navigation';
1111
import {getListFocus} from '../list-focus/list-focus.spec';
1212

1313
type TestItem = ListNavigationItem & {
14-
disabled: WritableSignal<boolean>;
14+
disabled: WritableSignalLike<boolean>;
1515
};
1616
type TestInputs = Partial<ListNavigationInputs<ListNavigationItem>> & {
1717
numItems?: number;

src/aria/private/behaviors/signal-like/signal-like.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,20 @@ export function computed<T>(computation: () => T): SignalLike<T> {
4343
const computed = createComputed(computation);
4444
// TODO: Remove the `toString` after https://github.com/angular/angular/pull/65948 is merged.
4545
computed.toString = () => `[Computed: ${computed()}]`;
46+
computed[SIGNAL].debugName = '';
4647
return computed;
4748
}
4849

4950
export function signal<T>(initialValue: T): WritableSignalLike<T> {
5051
const [get, set, update] = createSignal(initialValue);
52+
get[SIGNAL].debugName = '';
5153
// tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.
5254
return Object.assign(get, {set, update, asReadonly: () => get});
5355
}
5456

5557
export function linkedSignal<T>(sourceFn: () => T): WritableSignalLike<T> {
5658
const getter = createLinkedSignal(sourceFn, s => s);
59+
getter[SIGNAL].debugName = '';
5760
// tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.
5861
return Object.assign(getter, {
5962
set: (v: T) => linkedSignalSetFn(getter[SIGNAL], v),

src/aria/private/grid/cell.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66
* found in the LICENSE file at https://angular.dev/license
77
*/
88

9-
import {computed, signal, linkedSignal, WritableSignal} from '@angular/core';
109
import {KeyboardEventManager} from '../behaviors/event-manager';
1110
import {ListFocus} from '../behaviors/list-focus/list-focus';
1211
import {ListNavigation, ListNavigationInputs} from '../behaviors/list-navigation/list-navigation';
13-
import {SignalLike, WritableSignalLike} from '../behaviors/signal-like/signal-like';
12+
import {
13+
computed,
14+
signal,
15+
linkedSignal,
16+
SignalLike,
17+
WritableSignalLike,
18+
} from '../behaviors/signal-like/signal-like';
1419
import {GridCell} from '../behaviors/grid';
1520
import type {GridPattern} from './grid';
1621
import type {GridRowPattern} from './row';
@@ -52,7 +57,7 @@ export class GridCellPattern implements GridCell {
5257
readonly element: SignalLike<HTMLElement> = () => this.inputs.element();
5358

5459
/** Whether the cell has focus. */
55-
readonly isFocused: WritableSignal<boolean> = signal(false);
60+
readonly isFocused: WritableSignalLike<boolean> = signal(false);
5661

5762
/** Whether the cell is selected. */
5863
readonly selected: WritableSignalLike<boolean>;

src/aria/private/listbox/option.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
* found in the LICENSE file at https://angular.dev/license
77
*/
88

9-
import {computed} from '@angular/core';
10-
import {SignalLike} from '../behaviors/signal-like/signal-like';
9+
import {computed, SignalLike} from '../behaviors/signal-like/signal-like';
1110
import {List, ListInputs, ListItem} from '../behaviors/list/list';
1211

1312
/**

0 commit comments

Comments
 (0)