@angular/aria 21.0.0-rc.1 → 21.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_adev_assets/aria-accordion.json +429 -59
- package/_adev_assets/aria-combobox.json +261 -41
- package/_adev_assets/aria-grid.json +339 -85
- package/_adev_assets/aria-listbox.json +99 -70
- package/_adev_assets/aria-menu.json +355 -158
- package/_adev_assets/aria-tabs.json +198 -305
- package/_adev_assets/aria-toolbar.json +70 -221
- package/_adev_assets/aria-tree.json +153 -363
- package/fesm2022/_widget-chunk.mjs +388 -57
- package/fesm2022/_widget-chunk.mjs.map +1 -1
- package/fesm2022/accordion.mjs +125 -72
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox.mjs +129 -24
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid.mjs +203 -65
- package/fesm2022/grid.mjs.map +1 -1
- package/fesm2022/listbox.mjs +50 -39
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +179 -71
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/private.mjs +418 -440
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs.mjs +105 -73
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +52 -44
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tree.mjs +106 -63
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +2 -2
- package/types/_grid-chunk.d.ts +216 -35
- package/types/accordion.d.ts +134 -35
- package/types/combobox.d.ts +141 -12
- package/types/grid.d.ts +150 -32
- package/types/listbox.d.ts +60 -28
- package/types/menu.d.ts +133 -49
- package/types/private.d.ts +210 -250
- package/types/tabs.d.ts +124 -44
- package/types/toolbar.d.ts +58 -36
- package/types/tree.d.ts +121 -49
package/types/tree.d.ts
CHANGED
|
@@ -1,93 +1,132 @@
|
|
|
1
1
|
import * as _angular_cdk_bidi from '@angular/cdk/bidi';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { OnInit, OnDestroy, Signal } from '@angular/core';
|
|
4
4
|
import * as i1 from '@angular/aria/private';
|
|
5
5
|
import { TreePattern, DeferredContentAware, TreeItemPattern } from '@angular/aria/private';
|
|
6
6
|
import { ComboboxPopup } from './combobox.js';
|
|
7
7
|
|
|
8
8
|
interface HasElement {
|
|
9
|
-
element:
|
|
9
|
+
element: HTMLElement;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
* A
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* A container that transforms nested lists into an accessible, ARIA-compliant tree structure.
|
|
13
|
+
* It manages the overall state of the tree, including selection, expansion, and keyboard
|
|
14
|
+
* navigation.
|
|
15
15
|
*
|
|
16
16
|
* ```html
|
|
17
17
|
* <ul ngTree [(value)]="selectedItems" [multi]="true">
|
|
18
|
-
* <
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* <ng-template ngTreeItemGroupContent>
|
|
23
|
-
* <li ngTreeItem [value]="'child1.1'">Child Item 1.1</li>
|
|
24
|
-
* <li ngTreeItem [value]="'child1.2'">Child Item 1.2</li>
|
|
25
|
-
* </ng-template>
|
|
26
|
-
* </ul>
|
|
27
|
-
* </li>
|
|
28
|
-
* <li ngTreeItem [value]="'leaf2'" [disabled]="true">Disabled Leaf Item 2</li>
|
|
18
|
+
* <ng-template
|
|
19
|
+
* [ngTemplateOutlet]="treeNodes"
|
|
20
|
+
* [ngTemplateOutletContext]="{nodes: treeData, parent: tree}"
|
|
21
|
+
* />
|
|
29
22
|
* </ul>
|
|
23
|
+
*
|
|
24
|
+
* <ng-template #treeNodes let-nodes="nodes" let-parent="parent">
|
|
25
|
+
* @for (node of nodes; track node.name) {
|
|
26
|
+
* <li ngTreeItem [parent]="parent" [value]="node.name" [label]="node.name">
|
|
27
|
+
* {{ node.name }}
|
|
28
|
+
* @if (node.children) {
|
|
29
|
+
* <ul role="group">
|
|
30
|
+
* <ng-template ngTreeItemGroup [ownedBy]="treeItem" #group="ngTreeItemGroup">
|
|
31
|
+
* <ng-template
|
|
32
|
+
* [ngTemplateOutlet]="treeNodes"
|
|
33
|
+
* [ngTemplateOutletContext]="{nodes: node.children, parent: group}"
|
|
34
|
+
* />
|
|
35
|
+
* </ng-template>
|
|
36
|
+
* </ul>
|
|
37
|
+
* }
|
|
38
|
+
* </li>
|
|
39
|
+
* }
|
|
40
|
+
* </ng-template>
|
|
30
41
|
* ```
|
|
42
|
+
*
|
|
43
|
+
* @developerPreview 21.0
|
|
31
44
|
*/
|
|
32
45
|
declare class Tree<V> {
|
|
33
|
-
/** A
|
|
34
|
-
private readonly
|
|
35
|
-
/** A
|
|
36
|
-
|
|
46
|
+
/** A reference to the host element. */
|
|
47
|
+
private readonly _elementRef;
|
|
48
|
+
/** A reference to the host element. */
|
|
49
|
+
readonly element: HTMLElement;
|
|
37
50
|
/** A reference to the parent combobox popup, if one exists. */
|
|
38
51
|
private readonly _popup;
|
|
39
|
-
/** A reference to the tree element. */
|
|
40
|
-
private readonly _elementRef;
|
|
41
52
|
/** All TreeItem instances within this tree. */
|
|
42
53
|
private readonly _unorderedItems;
|
|
54
|
+
/** A unique identifier for the tree. */
|
|
55
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
43
56
|
/** Orientation of the tree. */
|
|
44
57
|
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
45
58
|
/** Whether multi-selection is allowed. */
|
|
46
59
|
readonly multi: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
47
60
|
/** Whether the tree is disabled. */
|
|
48
61
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
49
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* The selection strategy used by the tree.
|
|
64
|
+
* - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).
|
|
65
|
+
* - `follow`: The focused item is automatically selected.
|
|
66
|
+
*/
|
|
50
67
|
readonly selectionMode: _angular_core.InputSignal<"explicit" | "follow">;
|
|
51
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* The focus strategy used by the tree.
|
|
70
|
+
* - `roving`: Focus is moved to the active item using `tabindex`.
|
|
71
|
+
* - `activedescendant`: Focus remains on the tree container, and `aria-activedescendant` is used to indicate the active item.
|
|
72
|
+
*/
|
|
52
73
|
readonly focusMode: _angular_core.InputSignal<"roving" | "activedescendant">;
|
|
53
74
|
/** Whether navigation wraps. */
|
|
54
75
|
readonly wrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
55
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* Whether to allow disabled items to receive focus. When `true`, disabled items are
|
|
78
|
+
* focusable but not interactive. When `false`, disabled items are skipped during navigation.
|
|
79
|
+
*/
|
|
56
80
|
readonly softDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
57
|
-
/**
|
|
81
|
+
/** The delay in seconds before the typeahead search is reset. */
|
|
58
82
|
readonly typeaheadDelay: _angular_core.InputSignal<number>;
|
|
59
|
-
/**
|
|
60
|
-
readonly
|
|
83
|
+
/** The values of the currently selected items. */
|
|
84
|
+
readonly values: _angular_core.ModelSignal<V[]>;
|
|
61
85
|
/** Text direction. */
|
|
62
86
|
readonly textDirection: _angular_core.WritableSignal<_angular_cdk_bidi.Direction>;
|
|
63
87
|
/** Whether the tree is in navigation mode. */
|
|
64
|
-
readonly nav: _angular_core.
|
|
65
|
-
/**
|
|
88
|
+
readonly nav: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
89
|
+
/**
|
|
90
|
+
* The `aria-current` type. It can be used in navigation trees to indicate the currently active item.
|
|
91
|
+
* See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-current for more details.
|
|
92
|
+
*/
|
|
66
93
|
readonly currentType: _angular_core.InputSignal<"page" | "step" | "location" | "date" | "time" | "true" | "false">;
|
|
67
94
|
/** The UI pattern for the tree. */
|
|
68
95
|
readonly _pattern: TreePattern<V>;
|
|
69
|
-
/** Whether the tree has received focus
|
|
96
|
+
/** Whether the tree has received focus since it was rendered. */
|
|
70
97
|
private _hasFocused;
|
|
71
98
|
constructor();
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
99
|
+
_onFocus(): void;
|
|
100
|
+
_register(child: TreeItem<V>): void;
|
|
101
|
+
_unregister(child: TreeItem<V>): void;
|
|
75
102
|
scrollActiveItemIntoView(options?: ScrollIntoViewOptions): void;
|
|
76
103
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tree<any>, never>;
|
|
77
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Tree<any>, "[ngTree]", ["ngTree"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "
|
|
104
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Tree<any>, "[ngTree]", ["ngTree"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "nav": { "alias": "nav"; "required": false; "isSignal": true; }; "currentType": { "alias": "currentType"; "required": false; "isSignal": true; }; }, { "values": "valuesChange"; }, never, never, true, [{ directive: typeof ComboboxPopup; inputs: {}; outputs: {}; }]>;
|
|
78
105
|
}
|
|
79
106
|
/**
|
|
80
|
-
* A selectable and expandable
|
|
107
|
+
* A selectable and expandable item in an `ngTree`.
|
|
108
|
+
*
|
|
109
|
+
* The `ngTreeItem` directive represents an individual node within an `ngTree`. It can be
|
|
110
|
+
* selected, expanded (if it has children), and disabled. The `parent` input establishes
|
|
111
|
+
* the hierarchical relationship within the tree.
|
|
112
|
+
*
|
|
113
|
+
* ```html
|
|
114
|
+
* <li ngTreeItem [parent]="parentTreeOrGroup" value="item-id" label="Item Label">
|
|
115
|
+
* Item Label
|
|
116
|
+
* </li>
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* @developerPreview 21.0
|
|
81
120
|
*/
|
|
82
121
|
declare class TreeItem<V> extends DeferredContentAware implements OnInit, OnDestroy, HasElement {
|
|
83
|
-
/** A reference to the
|
|
122
|
+
/** A reference to the host element. */
|
|
84
123
|
private readonly _elementRef;
|
|
85
|
-
/** A
|
|
86
|
-
|
|
124
|
+
/** A reference to the host element. */
|
|
125
|
+
readonly element: HTMLElement;
|
|
87
126
|
/** The owned tree item group. */
|
|
88
127
|
private readonly _group;
|
|
89
|
-
/**
|
|
90
|
-
readonly
|
|
128
|
+
/** A unique identifier for the tree item. */
|
|
129
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
91
130
|
/** The value of the tree item. */
|
|
92
131
|
readonly value: _angular_core.InputSignal<V>;
|
|
93
132
|
/** The parent tree root or tree item group. */
|
|
@@ -96,38 +135,71 @@ declare class TreeItem<V> extends DeferredContentAware implements OnInit, OnDest
|
|
|
96
135
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
97
136
|
/** Whether the tree item is selectable. */
|
|
98
137
|
readonly selectable: _angular_core.InputSignal<boolean>;
|
|
138
|
+
/** Whether the tree item is expanded. */
|
|
139
|
+
readonly expanded: _angular_core.ModelSignal<boolean>;
|
|
99
140
|
/** Optional label for typeahead. Defaults to the element's textContent. */
|
|
100
141
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
101
142
|
/** Search term for typeahead. */
|
|
102
|
-
readonly searchTerm: Signal<
|
|
143
|
+
readonly searchTerm: Signal<string>;
|
|
103
144
|
/** The tree root. */
|
|
104
145
|
readonly tree: Signal<Tree<V>>;
|
|
146
|
+
/** Whether the item is active. */
|
|
147
|
+
readonly active: Signal<boolean>;
|
|
148
|
+
/** The level of the current item in a tree. */
|
|
149
|
+
readonly level: Signal<number>;
|
|
150
|
+
/** Whether the item is selected. */
|
|
151
|
+
readonly selected: Signal<boolean | undefined>;
|
|
152
|
+
/** Whether this item is visible due to all of its parents being expanded. */
|
|
153
|
+
readonly visible: Signal<boolean>;
|
|
154
|
+
/** Whether the tree is expanded. Use this value for aria-expanded. */
|
|
155
|
+
protected readonly _expanded: Signal<boolean | undefined>;
|
|
105
156
|
/** The UI pattern for this item. */
|
|
106
157
|
_pattern: TreeItemPattern<V>;
|
|
107
158
|
constructor();
|
|
108
159
|
ngOnInit(): void;
|
|
109
160
|
ngOnDestroy(): void;
|
|
110
|
-
|
|
111
|
-
|
|
161
|
+
_register(group: TreeItemGroup<V>): void;
|
|
162
|
+
_unregister(): void;
|
|
112
163
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeItem<any>, never>;
|
|
113
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeItem<any>, "[ngTreeItem]", ["ngTreeItem"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "parent": { "alias": "parent"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
164
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeItem<any>, "[ngTreeItem]", ["ngTreeItem"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "parent": { "alias": "parent"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, never, true, never>;
|
|
114
165
|
}
|
|
115
166
|
/**
|
|
116
|
-
*
|
|
167
|
+
* Group that contains children tree items.
|
|
168
|
+
*
|
|
169
|
+
* The `ngTreeItemGroup` structural directive should be applied to an `ng-template` that
|
|
170
|
+
* wraps the child `ngTreeItem` elements. It is used to define a group of children for an
|
|
171
|
+
* expandable `ngTreeItem`. The `ownedBy` input links the group to its parent `ngTreeItem`.
|
|
172
|
+
*
|
|
173
|
+
* ```html
|
|
174
|
+
* <li ngTreeItem [value]="'parent-id'">
|
|
175
|
+
* Parent Item
|
|
176
|
+
* <ul role="group">
|
|
177
|
+
* <ng-template ngTreeItemGroup [ownedBy]="parentTreeItemRef">
|
|
178
|
+
* <li ngTreeItem [value]="'child-id'">Child Item</li>
|
|
179
|
+
* </ng-template>
|
|
180
|
+
* </ul>
|
|
181
|
+
* </li>
|
|
182
|
+
* ```
|
|
183
|
+
*
|
|
184
|
+
* @developerPreview 21.0
|
|
117
185
|
*/
|
|
118
186
|
declare class TreeItemGroup<V> implements OnInit, OnDestroy {
|
|
187
|
+
/** A reference to the host element. */
|
|
188
|
+
private readonly _elementRef;
|
|
189
|
+
/** A reference to the host element. */
|
|
190
|
+
readonly element: HTMLElement;
|
|
119
191
|
/** The DeferredContent host directive. */
|
|
120
192
|
private readonly _deferredContent;
|
|
121
193
|
/** All groupable items that are descendants of the group. */
|
|
122
194
|
private readonly _unorderedItems;
|
|
123
195
|
/** Child items within this group. */
|
|
124
|
-
readonly
|
|
196
|
+
readonly _childPatterns: Signal<TreeItemPattern<V>[]>;
|
|
125
197
|
/** Tree item that owns the group. */
|
|
126
198
|
readonly ownedBy: _angular_core.InputSignal<TreeItem<V>>;
|
|
127
199
|
ngOnInit(): void;
|
|
128
200
|
ngOnDestroy(): void;
|
|
129
|
-
|
|
130
|
-
|
|
201
|
+
_register(child: TreeItem<V>): void;
|
|
202
|
+
_unregister(child: TreeItem<V>): void;
|
|
131
203
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeItemGroup<any>, never>;
|
|
132
204
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeItemGroup<any>, "ng-template[ngTreeItemGroup]", ["ngTreeItemGroup"], { "ownedBy": { "alias": "ownedBy"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.DeferredContent; inputs: {}; outputs: {}; }]>;
|
|
133
205
|
}
|