@angular/aria 21.0.0-rc.0 → 21.0.0-rc.2
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 +443 -59
- package/_adev_assets/aria-combobox.json +345 -37
- package/_adev_assets/aria-grid.json +408 -71
- package/_adev_assets/aria-listbox.json +115 -35
- package/_adev_assets/aria-menu.json +492 -167
- package/_adev_assets/aria-tabs.json +272 -88
- package/_adev_assets/aria-toolbar.json +151 -133
- package/_adev_assets/aria-tree.json +182 -35
- package/fesm2022/_widget-chunk.mjs +643 -190
- package/fesm2022/_widget-chunk.mjs.map +1 -1
- package/fesm2022/accordion.mjs +129 -77
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox.mjs +140 -27
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid.mjs +254 -68
- package/fesm2022/grid.mjs.map +1 -1
- package/fesm2022/listbox.mjs +54 -44
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +270 -108
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/private.mjs +752 -785
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs.mjs +101 -71
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +87 -64
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tree.mjs +105 -60
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +2 -10
- package/types/_grid-chunk.d.ts +326 -83
- package/types/accordion.d.ts +134 -35
- package/types/combobox.d.ts +146 -13
- package/types/grid.d.ts +159 -32
- package/types/listbox.d.ts +59 -28
- package/types/menu.d.ts +151 -55
- package/types/private.d.ts +449 -567
- package/types/tabs.d.ts +121 -41
- package/types/toolbar.d.ts +74 -51
- package/types/tree.d.ts +116 -45
- package/_adev_assets/aria-radio-group.json +0 -389
- package/fesm2022/deferred-content.mjs +0 -99
- package/fesm2022/deferred-content.mjs.map +0 -1
- package/fesm2022/radio-group.mjs +0 -338
- package/fesm2022/radio-group.mjs.map +0 -1
- package/types/deferred-content.d.ts +0 -38
- package/types/radio-group.d.ts +0 -84
package/fesm2022/tree.mjs
CHANGED
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject,
|
|
2
|
+
import { inject, ElementRef, signal, input, booleanAttribute, model, computed, afterRenderEffect, untracked, Directive, afterNextRender } from '@angular/core';
|
|
3
3
|
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
4
4
|
import { Directionality } from '@angular/cdk/bidi';
|
|
5
|
-
import * as i1 from '@angular/aria/
|
|
6
|
-
import { DeferredContentAware, DeferredContent } from '@angular/aria/
|
|
7
|
-
import { ComboboxTreePattern, TreePattern, TreeItemPattern } from '@angular/aria/private';
|
|
5
|
+
import * as i1 from '@angular/aria/private';
|
|
6
|
+
import { ComboboxTreePattern, TreePattern, DeferredContentAware, TreeItemPattern, DeferredContent } from '@angular/aria/private';
|
|
8
7
|
import { ComboboxPopup } from './combobox.mjs';
|
|
9
8
|
import '@angular/core/rxjs-interop';
|
|
10
9
|
|
|
11
10
|
function sortDirectives(a, b) {
|
|
12
|
-
return (a.element
|
|
11
|
+
return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0 ? 1 : -1;
|
|
13
12
|
}
|
|
14
13
|
class Tree {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
debugName: "id"
|
|
18
|
-
}] : []));
|
|
14
|
+
_elementRef = inject(ElementRef);
|
|
15
|
+
element = this._elementRef.nativeElement;
|
|
19
16
|
_popup = inject(ComboboxPopup, {
|
|
20
17
|
optional: true
|
|
21
18
|
});
|
|
22
|
-
_elementRef = inject(ElementRef);
|
|
23
19
|
_unorderedItems = signal(new Set(), ...(ngDevMode ? [{
|
|
24
20
|
debugName: "_unorderedItems"
|
|
25
21
|
}] : []));
|
|
22
|
+
id = input(inject(_IdGenerator).getId('ng-tree-', true), ...(ngDevMode ? [{
|
|
23
|
+
debugName: "id"
|
|
24
|
+
}] : []));
|
|
26
25
|
orientation = input('vertical', ...(ngDevMode ? [{
|
|
27
26
|
debugName: "orientation"
|
|
28
27
|
}] : []));
|
|
@@ -50,22 +49,25 @@ class Tree {
|
|
|
50
49
|
}] : [{
|
|
51
50
|
transform: booleanAttribute
|
|
52
51
|
}]));
|
|
53
|
-
|
|
54
|
-
debugName: "
|
|
52
|
+
softDisabled = input(true, ...(ngDevMode ? [{
|
|
53
|
+
debugName: "softDisabled",
|
|
55
54
|
transform: booleanAttribute
|
|
56
55
|
}] : [{
|
|
57
56
|
transform: booleanAttribute
|
|
58
57
|
}]));
|
|
59
|
-
typeaheadDelay = input(
|
|
58
|
+
typeaheadDelay = input(500, ...(ngDevMode ? [{
|
|
60
59
|
debugName: "typeaheadDelay"
|
|
61
60
|
}] : []));
|
|
62
|
-
|
|
63
|
-
debugName: "
|
|
61
|
+
values = model([], ...(ngDevMode ? [{
|
|
62
|
+
debugName: "values"
|
|
64
63
|
}] : []));
|
|
65
64
|
textDirection = inject(Directionality).valueSignal;
|
|
66
65
|
nav = input(false, ...(ngDevMode ? [{
|
|
67
|
-
debugName: "nav"
|
|
68
|
-
|
|
66
|
+
debugName: "nav",
|
|
67
|
+
transform: booleanAttribute
|
|
68
|
+
}] : [{
|
|
69
|
+
transform: booleanAttribute
|
|
70
|
+
}]));
|
|
69
71
|
currentType = input('page', ...(ngDevMode ? [{
|
|
70
72
|
debugName: "currentType"
|
|
71
73
|
}] : []));
|
|
@@ -79,8 +81,8 @@ class Tree {
|
|
|
79
81
|
id: this.id,
|
|
80
82
|
allItems: computed(() => [...this._unorderedItems()].sort(sortDirectives).map(item => item._pattern)),
|
|
81
83
|
activeItem: signal(undefined),
|
|
82
|
-
|
|
83
|
-
|
|
84
|
+
combobox: () => this._popup?.combobox?._pattern,
|
|
85
|
+
element: () => this.element
|
|
84
86
|
};
|
|
85
87
|
this._pattern = this._popup?.combobox ? new ComboboxTreePattern(inputs) : new TreePattern(inputs);
|
|
86
88
|
if (this._popup?.combobox) {
|
|
@@ -99,10 +101,11 @@ class Tree {
|
|
|
99
101
|
}
|
|
100
102
|
});
|
|
101
103
|
afterRenderEffect(() => {
|
|
104
|
+
if (!(this._pattern instanceof ComboboxTreePattern)) return;
|
|
102
105
|
const items = inputs.allItems();
|
|
103
|
-
const
|
|
104
|
-
if (items &&
|
|
105
|
-
this.
|
|
106
|
+
const values = untracked(() => this.values());
|
|
107
|
+
if (items && values.some(v => !items.some(i => i.value() === v))) {
|
|
108
|
+
this.values.set(values.filter(v => items.some(i => i.value() === v)));
|
|
106
109
|
}
|
|
107
110
|
});
|
|
108
111
|
}
|
|
@@ -120,7 +123,7 @@ class Tree {
|
|
|
120
123
|
scrollActiveItemIntoView(options = {
|
|
121
124
|
block: 'nearest'
|
|
122
125
|
}) {
|
|
123
|
-
this._pattern.inputs.activeItem()?.element()
|
|
126
|
+
this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);
|
|
124
127
|
}
|
|
125
128
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
126
129
|
minVersion: "12.0.0",
|
|
@@ -137,6 +140,13 @@ class Tree {
|
|
|
137
140
|
isStandalone: true,
|
|
138
141
|
selector: "[ngTree]",
|
|
139
142
|
inputs: {
|
|
143
|
+
id: {
|
|
144
|
+
classPropertyName: "id",
|
|
145
|
+
publicName: "id",
|
|
146
|
+
isSignal: true,
|
|
147
|
+
isRequired: false,
|
|
148
|
+
transformFunction: null
|
|
149
|
+
},
|
|
140
150
|
orientation: {
|
|
141
151
|
classPropertyName: "orientation",
|
|
142
152
|
publicName: "orientation",
|
|
@@ -179,9 +189,9 @@ class Tree {
|
|
|
179
189
|
isRequired: false,
|
|
180
190
|
transformFunction: null
|
|
181
191
|
},
|
|
182
|
-
|
|
183
|
-
classPropertyName: "
|
|
184
|
-
publicName: "
|
|
192
|
+
softDisabled: {
|
|
193
|
+
classPropertyName: "softDisabled",
|
|
194
|
+
publicName: "softDisabled",
|
|
185
195
|
isSignal: true,
|
|
186
196
|
isRequired: false,
|
|
187
197
|
transformFunction: null
|
|
@@ -193,9 +203,9 @@ class Tree {
|
|
|
193
203
|
isRequired: false,
|
|
194
204
|
transformFunction: null
|
|
195
205
|
},
|
|
196
|
-
|
|
197
|
-
classPropertyName: "
|
|
198
|
-
publicName: "
|
|
206
|
+
values: {
|
|
207
|
+
classPropertyName: "values",
|
|
208
|
+
publicName: "values",
|
|
199
209
|
isSignal: true,
|
|
200
210
|
isRequired: false,
|
|
201
211
|
transformFunction: null
|
|
@@ -216,7 +226,7 @@ class Tree {
|
|
|
216
226
|
}
|
|
217
227
|
},
|
|
218
228
|
outputs: {
|
|
219
|
-
|
|
229
|
+
values: "valuesChange"
|
|
220
230
|
},
|
|
221
231
|
host: {
|
|
222
232
|
attributes: {
|
|
@@ -232,10 +242,9 @@ class Tree {
|
|
|
232
242
|
"attr.aria-orientation": "_pattern.orientation()",
|
|
233
243
|
"attr.aria-multiselectable": "_pattern.multi()",
|
|
234
244
|
"attr.aria-disabled": "_pattern.disabled()",
|
|
235
|
-
"attr.aria-activedescendant": "_pattern.
|
|
236
|
-
"tabindex": "_pattern.
|
|
237
|
-
}
|
|
238
|
-
classAttribute: "ng-tree"
|
|
245
|
+
"attr.aria-activedescendant": "_pattern.activeDescendant()",
|
|
246
|
+
"tabindex": "_pattern.tabIndex()"
|
|
247
|
+
}
|
|
239
248
|
},
|
|
240
249
|
exportAs: ["ngTree"],
|
|
241
250
|
hostDirectives: [{
|
|
@@ -255,33 +264,30 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
255
264
|
selector: '[ngTree]',
|
|
256
265
|
exportAs: 'ngTree',
|
|
257
266
|
host: {
|
|
258
|
-
'class': 'ng-tree',
|
|
259
267
|
'role': 'tree',
|
|
260
268
|
'[attr.id]': 'id()',
|
|
261
269
|
'[attr.aria-orientation]': '_pattern.orientation()',
|
|
262
270
|
'[attr.aria-multiselectable]': '_pattern.multi()',
|
|
263
271
|
'[attr.aria-disabled]': '_pattern.disabled()',
|
|
264
|
-
'[attr.aria-activedescendant]': '_pattern.
|
|
265
|
-
'[tabindex]': '_pattern.
|
|
272
|
+
'[attr.aria-activedescendant]': '_pattern.activeDescendant()',
|
|
273
|
+
'[tabindex]': '_pattern.tabIndex()',
|
|
266
274
|
'(keydown)': '_pattern.onKeydown($event)',
|
|
267
275
|
'(pointerdown)': '_pattern.onPointerdown($event)',
|
|
268
276
|
'(focusin)': 'onFocus()'
|
|
269
277
|
},
|
|
270
|
-
hostDirectives: [
|
|
271
|
-
directive: ComboboxPopup
|
|
272
|
-
}]
|
|
278
|
+
hostDirectives: [ComboboxPopup]
|
|
273
279
|
}]
|
|
274
280
|
}],
|
|
275
281
|
ctorParameters: () => []
|
|
276
282
|
});
|
|
277
283
|
class TreeItem extends DeferredContentAware {
|
|
278
284
|
_elementRef = inject(ElementRef);
|
|
279
|
-
|
|
285
|
+
element = this._elementRef.nativeElement;
|
|
280
286
|
_group = signal(undefined, ...(ngDevMode ? [{
|
|
281
287
|
debugName: "_group"
|
|
282
288
|
}] : []));
|
|
283
|
-
|
|
284
|
-
debugName: "
|
|
289
|
+
id = input(inject(_IdGenerator).getId('ng-tree-item-', true), ...(ngDevMode ? [{
|
|
290
|
+
debugName: "id"
|
|
285
291
|
}] : []));
|
|
286
292
|
value = input.required(...(ngDevMode ? [{
|
|
287
293
|
debugName: "value"
|
|
@@ -298,10 +304,13 @@ class TreeItem extends DeferredContentAware {
|
|
|
298
304
|
selectable = input(true, ...(ngDevMode ? [{
|
|
299
305
|
debugName: "selectable"
|
|
300
306
|
}] : []));
|
|
307
|
+
expanded = model(false, ...(ngDevMode ? [{
|
|
308
|
+
debugName: "expanded"
|
|
309
|
+
}] : []));
|
|
301
310
|
label = input(...(ngDevMode ? [undefined, {
|
|
302
311
|
debugName: "label"
|
|
303
312
|
}] : []));
|
|
304
|
-
searchTerm = computed(() => this.label() ?? this.element
|
|
313
|
+
searchTerm = computed(() => this.label() ?? this.element.textContent, ...(ngDevMode ? [{
|
|
305
314
|
debugName: "searchTerm"
|
|
306
315
|
}] : []));
|
|
307
316
|
tree = computed(() => {
|
|
@@ -312,10 +321,29 @@ class TreeItem extends DeferredContentAware {
|
|
|
312
321
|
}, ...(ngDevMode ? [{
|
|
313
322
|
debugName: "tree"
|
|
314
323
|
}] : []));
|
|
324
|
+
active = computed(() => this._pattern.active(), ...(ngDevMode ? [{
|
|
325
|
+
debugName: "active"
|
|
326
|
+
}] : []));
|
|
327
|
+
level = computed(() => this._pattern.level(), ...(ngDevMode ? [{
|
|
328
|
+
debugName: "level"
|
|
329
|
+
}] : []));
|
|
330
|
+
selected = computed(() => this._pattern.selected(), ...(ngDevMode ? [{
|
|
331
|
+
debugName: "selected"
|
|
332
|
+
}] : []));
|
|
333
|
+
visible = computed(() => this._pattern.visible(), ...(ngDevMode ? [{
|
|
334
|
+
debugName: "visible"
|
|
335
|
+
}] : []));
|
|
336
|
+
_expanded = computed(() => this._pattern.expandable() ? this._pattern.expanded() : undefined, ...(ngDevMode ? [{
|
|
337
|
+
debugName: "_expanded"
|
|
338
|
+
}] : []));
|
|
315
339
|
_pattern;
|
|
316
340
|
constructor() {
|
|
317
341
|
super();
|
|
318
|
-
|
|
342
|
+
afterNextRender(() => {
|
|
343
|
+
if (this.tree()._pattern instanceof ComboboxTreePattern) {
|
|
344
|
+
this.preserveContent.set(true);
|
|
345
|
+
}
|
|
346
|
+
});
|
|
319
347
|
afterRenderEffect(() => {
|
|
320
348
|
this.tree()._pattern instanceof ComboboxTreePattern ? this.contentVisible.set(true) : this.contentVisible.set(this._pattern.expanded());
|
|
321
349
|
});
|
|
@@ -336,11 +364,11 @@ class TreeItem extends DeferredContentAware {
|
|
|
336
364
|
}] : []));
|
|
337
365
|
this._pattern = new TreeItemPattern({
|
|
338
366
|
...this,
|
|
339
|
-
id: () => this._id,
|
|
340
367
|
tree: treePattern,
|
|
341
368
|
parent: parentPattern,
|
|
342
369
|
children: computed(() => this._group()?.children() ?? []),
|
|
343
|
-
hasChildren: computed(() => !!this._group())
|
|
370
|
+
hasChildren: computed(() => !!this._group()),
|
|
371
|
+
element: () => this.element
|
|
344
372
|
});
|
|
345
373
|
}
|
|
346
374
|
ngOnDestroy() {
|
|
@@ -368,6 +396,13 @@ class TreeItem extends DeferredContentAware {
|
|
|
368
396
|
isStandalone: true,
|
|
369
397
|
selector: "[ngTreeItem]",
|
|
370
398
|
inputs: {
|
|
399
|
+
id: {
|
|
400
|
+
classPropertyName: "id",
|
|
401
|
+
publicName: "id",
|
|
402
|
+
isSignal: true,
|
|
403
|
+
isRequired: false,
|
|
404
|
+
transformFunction: null
|
|
405
|
+
},
|
|
371
406
|
value: {
|
|
372
407
|
classPropertyName: "value",
|
|
373
408
|
publicName: "value",
|
|
@@ -396,6 +431,13 @@ class TreeItem extends DeferredContentAware {
|
|
|
396
431
|
isRequired: false,
|
|
397
432
|
transformFunction: null
|
|
398
433
|
},
|
|
434
|
+
expanded: {
|
|
435
|
+
classPropertyName: "expanded",
|
|
436
|
+
publicName: "expanded",
|
|
437
|
+
isSignal: true,
|
|
438
|
+
isRequired: false,
|
|
439
|
+
transformFunction: null
|
|
440
|
+
},
|
|
399
441
|
label: {
|
|
400
442
|
classPropertyName: "label",
|
|
401
443
|
publicName: "label",
|
|
@@ -404,23 +446,25 @@ class TreeItem extends DeferredContentAware {
|
|
|
404
446
|
transformFunction: null
|
|
405
447
|
}
|
|
406
448
|
},
|
|
449
|
+
outputs: {
|
|
450
|
+
expanded: "expandedChange"
|
|
451
|
+
},
|
|
407
452
|
host: {
|
|
408
453
|
attributes: {
|
|
409
454
|
"role": "treeitem"
|
|
410
455
|
},
|
|
411
456
|
properties: {
|
|
412
|
-
"attr.data-active": "
|
|
457
|
+
"attr.data-active": "active()",
|
|
413
458
|
"id": "_pattern.id()",
|
|
414
|
-
"attr.aria-expanded": "
|
|
415
|
-
"attr.aria-selected": "
|
|
459
|
+
"attr.aria-expanded": "_expanded()",
|
|
460
|
+
"attr.aria-selected": "selected()",
|
|
416
461
|
"attr.aria-current": "_pattern.current()",
|
|
417
462
|
"attr.aria-disabled": "_pattern.disabled()",
|
|
418
|
-
"attr.aria-level": "
|
|
463
|
+
"attr.aria-level": "level()",
|
|
419
464
|
"attr.aria-setsize": "_pattern.setsize()",
|
|
420
465
|
"attr.aria-posinset": "_pattern.posinset()",
|
|
421
|
-
"attr.tabindex": "_pattern.
|
|
422
|
-
}
|
|
423
|
-
classAttribute: "ng-treeitem"
|
|
466
|
+
"attr.tabindex": "_pattern.tabIndex()"
|
|
467
|
+
}
|
|
424
468
|
},
|
|
425
469
|
exportAs: ["ngTreeItem"],
|
|
426
470
|
usesInheritance: true,
|
|
@@ -438,24 +482,25 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
438
482
|
selector: '[ngTreeItem]',
|
|
439
483
|
exportAs: 'ngTreeItem',
|
|
440
484
|
host: {
|
|
441
|
-
'
|
|
442
|
-
'[attr.data-active]': '_pattern.active()',
|
|
485
|
+
'[attr.data-active]': 'active()',
|
|
443
486
|
'role': 'treeitem',
|
|
444
487
|
'[id]': '_pattern.id()',
|
|
445
|
-
'[attr.aria-expanded]': '
|
|
446
|
-
'[attr.aria-selected]': '
|
|
488
|
+
'[attr.aria-expanded]': '_expanded()',
|
|
489
|
+
'[attr.aria-selected]': 'selected()',
|
|
447
490
|
'[attr.aria-current]': '_pattern.current()',
|
|
448
491
|
'[attr.aria-disabled]': '_pattern.disabled()',
|
|
449
|
-
'[attr.aria-level]': '
|
|
492
|
+
'[attr.aria-level]': 'level()',
|
|
450
493
|
'[attr.aria-setsize]': '_pattern.setsize()',
|
|
451
494
|
'[attr.aria-posinset]': '_pattern.posinset()',
|
|
452
|
-
'[attr.tabindex]': '_pattern.
|
|
495
|
+
'[attr.tabindex]': '_pattern.tabIndex()'
|
|
453
496
|
}
|
|
454
497
|
}]
|
|
455
498
|
}],
|
|
456
499
|
ctorParameters: () => []
|
|
457
500
|
});
|
|
458
501
|
class TreeItemGroup {
|
|
502
|
+
_elementRef = inject(ElementRef);
|
|
503
|
+
element = this._elementRef.nativeElement;
|
|
459
504
|
_deferredContent = inject(DeferredContent);
|
|
460
505
|
_unorderedItems = signal(new Set(), ...(ngDevMode ? [{
|
|
461
506
|
debugName: "_unorderedItems"
|
package/fesm2022/tree.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/tree/tree.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n signal,\n Signal,\n OnInit,\n OnDestroy,\n untracked,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DeferredContent, DeferredContentAware} from '@angular/aria/deferred-content';\nimport {ComboboxTreePattern, TreeItemPattern, TreePattern} from '@angular/aria/private';\nimport {ComboboxPopup} from '../combobox';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A Tree container.\n *\n * Transforms nested lists into an accessible, ARIA-compliant tree structure.\n *\n * ```html\n * <ul ngTree [(value)]=\"selectedItems\" [multi]=\"true\">\n * <li ngTreeItem [value]=\"'leaf1'\">Leaf Item 1</li>\n * <li ngTreeItem [value]=\"'parent1'\">\n * Parent Item 1\n * <ul ngTreeItemGroup [value]=\"'parent1'\">\n * <ng-template ngTreeItemGroupContent>\n * <li ngTreeItem [value]=\"'child1.1'\">Child Item 1.1</li>\n * <li ngTreeItem [value]=\"'child1.2'\">Child Item 1.2</li>\n * </ng-template>\n * </ul>\n * </li>\n * <li ngTreeItem [value]=\"'leaf2'\" [disabled]=\"true\">Disabled Leaf Item 2</li>\n * </ul>\n * ```\n */\n@Directive({\n selector: '[ngTree]',\n exportAs: 'ngTree',\n host: {\n 'class': 'ng-tree',\n 'role': 'tree',\n '[attr.id]': 'id()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-activedescendant]': '_pattern.activedescendant()',\n '[tabindex]': '_pattern.tabindex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n hostDirectives: [{directive: ComboboxPopup}],\n})\nexport class Tree<V> {\n /** A unique identifier for the tree. */\n private readonly _generatedId = inject(_IdGenerator).getId('ng-tree-');\n\n // TODO(wagnermaciel): https://github.com/angular/components/pull/30495#discussion_r1972601144.\n /** A unique identifier for the tree. */\n protected id = computed(() => this._generatedId);\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** A reference to the tree element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** All TreeItem instances within this tree. */\n private readonly _unorderedItems = signal(new Set<TreeItem<V>>());\n\n /** Orientation of the tree. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multi-selection is allowed. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether the tree is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The selection strategy used by the tree. */\n readonly selectionMode = input<'explicit' | 'follow'>('explicit');\n\n /** The focus strategy used by the tree. */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** Whether navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** Whether to skip disabled items during navigation. */\n readonly skipDisabled = input(true, {transform: booleanAttribute});\n\n /** Typeahead delay. */\n readonly typeaheadDelay = input(0.5);\n\n /** Selected item values. */\n readonly value = model<V[]>([]);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the tree is in navigation mode. */\n readonly nav = input(false);\n\n /** The aria-current type. */\n readonly currentType = input<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>(\n 'page',\n );\n\n /** The UI pattern for the tree. */\n readonly _pattern: TreePattern<V>;\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n allItems: computed(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(item => item._pattern),\n ),\n activeItem: signal<TreeItemPattern<V> | undefined>(undefined),\n element: () => this._elementRef.nativeElement,\n combobox: () => this._popup?.combobox?._pattern,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxTreePattern<V>(inputs)\n : new TreePattern<V>(inputs);\n\n if (this._popup?.combobox) {\n this._popup?.controls?.set(this._pattern as ComboboxTreePattern<V>);\n }\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n afterRenderEffect(() => {\n const items = inputs.allItems();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.listBehavior.unfocus();\n }\n });\n\n afterRenderEffect(() => {\n const items = inputs.allItems();\n const value = untracked(() => this.value());\n\n if (items && value.some(v => !items.some(i => i.value() === v))) {\n this.value.set(value.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n register(child: TreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: TreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element().scrollIntoView(options);\n }\n}\n\n/**\n * A selectable and expandable Tree Item in a Tree.\n */\n@Directive({\n selector: '[ngTreeItem]',\n exportAs: 'ngTreeItem',\n host: {\n 'class': 'ng-treeitem',\n '[attr.data-active]': '_pattern.active()',\n 'role': 'treeitem',\n '[id]': '_pattern.id()',\n '[attr.aria-expanded]': '_pattern.expandable() ? _pattern.expanded() : null',\n '[attr.aria-selected]': '_pattern.selected()',\n '[attr.aria-current]': '_pattern.current()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-level]': '_pattern.level()',\n '[attr.aria-setsize]': '_pattern.setsize()',\n '[attr.aria-posinset]': '_pattern.posinset()',\n '[attr.tabindex]': '_pattern.tabindex()',\n },\n})\nexport class TreeItem<V> extends DeferredContentAware implements OnInit, OnDestroy, HasElement {\n /** A reference to the tree item element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A unique identifier for the tree item. */\n private readonly _id = inject(_IdGenerator).getId('ng-tree-item-');\n\n /** The owned tree item group. */\n private readonly _group = signal<TreeItemGroup<V> | undefined>(undefined);\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** The value of the tree item. */\n readonly value = input.required<V>();\n\n /** The parent tree root or tree item group. */\n readonly parent = input.required<Tree<V> | TreeItemGroup<V>>();\n\n /** Whether the tree item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the tree item is selectable. */\n readonly selectable = input<boolean>(true);\n\n /** Optional label for typeahead. Defaults to the element's textContent. */\n readonly label = input<string>();\n\n /** Search term for typeahead. */\n readonly searchTerm = computed(() => this.label() ?? this.element().textContent);\n\n /** The tree root. */\n readonly tree: Signal<Tree<V>> = computed(() => {\n if (this.parent() instanceof Tree) {\n return this.parent() as Tree<V>;\n }\n return (this.parent() as TreeItemGroup<V>).ownedBy().tree();\n });\n\n /** The UI pattern for this item. */\n _pattern: TreeItemPattern<V>;\n\n constructor() {\n super();\n this.preserveContent.set(true);\n // Connect the group's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this.tree()._pattern instanceof ComboboxTreePattern\n ? this.contentVisible.set(true)\n : this.contentVisible.set(this._pattern.expanded());\n });\n }\n\n ngOnInit() {\n this.parent().register(this);\n this.tree().register(this);\n\n const treePattern = computed(() => this.tree()._pattern);\n const parentPattern = computed(() => {\n if (this.parent() instanceof Tree) {\n return treePattern();\n }\n return (this.parent() as TreeItemGroup<V>).ownedBy()._pattern;\n });\n this._pattern = new TreeItemPattern<V>({\n ...this,\n id: () => this._id,\n tree: treePattern,\n parent: parentPattern,\n children: computed(() => this._group()?.children() ?? []),\n hasChildren: computed(() => !!this._group()),\n });\n }\n\n ngOnDestroy() {\n this.parent().unregister(this);\n this.tree().unregister(this);\n }\n\n register(group: TreeItemGroup<V>) {\n this._group.set(group);\n }\n\n unregister() {\n this._group.set(undefined);\n }\n}\n\n/**\n * Contains children tree itmes.\n */\n@Directive({\n selector: 'ng-template[ngTreeItemGroup]',\n exportAs: 'ngTreeItemGroup',\n hostDirectives: [DeferredContent],\n})\nexport class TreeItemGroup<V> implements OnInit, OnDestroy {\n /** The DeferredContent host directive. */\n private readonly _deferredContent = inject(DeferredContent);\n\n /** All groupable items that are descendants of the group. */\n private readonly _unorderedItems = signal(new Set<TreeItem<V>>());\n\n /** Child items within this group. */\n readonly children = computed<TreeItemPattern<V>[]>(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(c => c._pattern),\n );\n\n /** Tree item that owns the group. */\n readonly ownedBy = input.required<TreeItem<V>>();\n\n ngOnInit() {\n this._deferredContent.deferredContentAware.set(this.ownedBy());\n this.ownedBy().register(this);\n }\n\n ngOnDestroy() {\n this.ownedBy().unregister();\n }\n\n register(child: TreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: TreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n"],"names":["_popup","inject","optional","_unorderedItems","signal","Set","ngDevMode","debugName","input","transform","booleanAttribute","disabled","focusMode","wrap","skipDisabled","textDirection","Directionality","valueSignal","currentType","_pattern","id","allItems","computed","sort","sortDirectives","map","item","activeItem","undefined","element","_elementRef","nativeElement","combobox","ComboboxTreePattern","inputs","TreePattern","_hasFocused","setDefaultState","items","untracked","some","i","listBehavior","unfocus","afterRenderEffect","value","v","set","filter","add","child","unregister","delete","scrollActiveItemIntoView","options","block","scrollIntoView","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","Tree","deps","target","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","isStandalone","selector","orientation","classPropertyName","publicName","isSignal","isRequired","transformFunction","multi","selectionMode","typeaheadDelay","nav","outputs","host","attributes","listeners","properties","classAttribute","exportAs","hostDirectives","directive","i1","decorators","ComboboxPopup","ctorParameters","ElementRef","_id","_IdGenerator","getId","_group","required","parent","selectable","label","tree","constructor","preserveContent","contentVisible","ngOnInit","register","ownedBy"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/tree/tree.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n signal,\n Signal,\n OnInit,\n OnDestroy,\n untracked,\n afterNextRender,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n ComboboxTreePattern,\n TreeItemPattern,\n TreePattern,\n DeferredContent,\n DeferredContentAware,\n} from '@angular/aria/private';\nimport {ComboboxPopup} from '../combobox';\n\ninterface HasElement {\n element: HTMLElement;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A container that transforms nested lists into an accessible, ARIA-compliant tree structure.\n * It manages the overall state of the tree, including selection, expansion, and keyboard\n * navigation.\n *\n * ```html\n * <ul ngTree [(value)]=\"selectedItems\" [multi]=\"true\">\n * <ng-template\n * [ngTemplateOutlet]=\"treeNodes\"\n * [ngTemplateOutletContext]=\"{nodes: treeData, parent: tree}\"\n * />\n * </ul>\n *\n * <ng-template #treeNodes let-nodes=\"nodes\" let-parent=\"parent\">\n * @for (node of nodes; track node.name) {\n * <li ngTreeItem [parent]=\"parent\" [value]=\"node.name\" [label]=\"node.name\">\n * {{ node.name }}\n * @if (node.children) {\n * <ul role=\"group\">\n * <ng-template ngTreeItemGroup [ownedBy]=\"treeItem\" #group=\"ngTreeItemGroup\">\n * <ng-template\n * [ngTemplateOutlet]=\"treeNodes\"\n * [ngTemplateOutletContext]=\"{nodes: node.children, parent: group}\"\n * />\n * </ng-template>\n * </ul>\n * }\n * </li>\n * }\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTree]',\n exportAs: 'ngTree',\n host: {\n 'role': 'tree',\n '[attr.id]': 'id()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '[tabindex]': '_pattern.tabIndex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class Tree<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** All TreeItem instances within this tree. */\n private readonly _unorderedItems = signal(new Set<TreeItem<V>>());\n\n /** A unique identifier for the tree. */\n readonly id = input(inject(_IdGenerator).getId('ng-tree-', true));\n\n /** Orientation of the tree. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multi-selection is allowed. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether the tree is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /**\n * The selection strategy used by the tree.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n * - `follow`: The focused item is automatically selected.\n */\n readonly selectionMode = input<'explicit' | 'follow'>('explicit');\n\n /**\n * The focus strategy used by the tree.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the tree container, and `aria-activedescendant` is used to indicate the active item.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** Whether navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The delay in seconds before the typeahead search is reset. */\n readonly typeaheadDelay = input(500);\n\n /** The values of the currently selected items. */\n readonly values = model<V[]>([]);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the tree is in navigation mode. */\n readonly nav = input(false, {transform: booleanAttribute});\n\n /**\n * The `aria-current` type. It can be used in navigation trees to indicate the currently active item.\n * See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-current for more details.\n */\n readonly currentType = input<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>(\n 'page',\n );\n\n /** The UI pattern for the tree. */\n readonly _pattern: TreePattern<V>;\n\n /** Whether the tree has received focus since it was rendered. */\n private _hasFocused = signal(false);\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n allItems: computed(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(item => item._pattern),\n ),\n activeItem: signal<TreeItemPattern<V> | undefined>(undefined),\n combobox: () => this._popup?.combobox?._pattern,\n element: () => this.element,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxTreePattern<V>(inputs)\n : new TreePattern<V>(inputs);\n\n if (this._popup?.combobox) {\n this._popup?.controls?.set(this._pattern as ComboboxTreePattern<V>);\n }\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n afterRenderEffect(() => {\n const items = inputs.allItems();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.listBehavior.unfocus();\n }\n });\n\n afterRenderEffect(() => {\n if (!(this._pattern instanceof ComboboxTreePattern)) return;\n\n const items = inputs.allItems();\n const values = untracked(() => this.values());\n\n if (items && values.some(v => !items.some(i => i.value() === v))) {\n this.values.set(values.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n register(child: TreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: TreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n}\n\n/**\n * A selectable and expandable item in an `ngTree`.\n *\n * The `ngTreeItem` directive represents an individual node within an `ngTree`. It can be\n * selected, expanded (if it has children), and disabled. The `parent` input establishes\n * the hierarchical relationship within the tree.\n *\n * ```html\n * <li ngTreeItem [parent]=\"parentTreeOrGroup\" value=\"item-id\" label=\"Item Label\">\n * Item Label\n * </li>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTreeItem]',\n exportAs: 'ngTreeItem',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'treeitem',\n '[id]': '_pattern.id()',\n '[attr.aria-expanded]': '_expanded()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-current]': '_pattern.current()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-level]': 'level()',\n '[attr.aria-setsize]': '_pattern.setsize()',\n '[attr.aria-posinset]': '_pattern.posinset()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class TreeItem<V> extends DeferredContentAware implements OnInit, OnDestroy, HasElement {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The owned tree item group. */\n private readonly _group = signal<TreeItemGroup<V> | undefined>(undefined);\n\n /** A unique identifier for the tree item. */\n readonly id = input(inject(_IdGenerator).getId('ng-tree-item-', true));\n\n /** The value of the tree item. */\n readonly value = input.required<V>();\n\n /** The parent tree root or tree item group. */\n readonly parent = input.required<Tree<V> | TreeItemGroup<V>>();\n\n /** Whether the tree item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the tree item is selectable. */\n readonly selectable = input<boolean>(true);\n\n /** Whether the tree item is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Optional label for typeahead. Defaults to the element's textContent. */\n readonly label = input<string>();\n\n /** Search term for typeahead. */\n readonly searchTerm = computed(() => this.label() ?? this.element.textContent);\n\n /** The tree root. */\n readonly tree: Signal<Tree<V>> = computed(() => {\n if (this.parent() instanceof Tree) {\n return this.parent() as Tree<V>;\n }\n return (this.parent() as TreeItemGroup<V>).ownedBy().tree();\n });\n\n /** Whether the item is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The level of the current item in a tree. */\n readonly level = computed(() => this._pattern.level());\n\n /** Whether the item is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** Whether this item is visible due to all of its parents being expanded. */\n readonly visible = computed(() => this._pattern.visible());\n\n /** Whether the tree is expanded. Use this value for aria-expanded. */\n protected readonly _expanded: Signal<boolean | undefined> = computed(() =>\n this._pattern.expandable() ? this._pattern.expanded() : undefined,\n );\n\n /** The UI pattern for this item. */\n _pattern: TreeItemPattern<V>;\n\n constructor() {\n super();\n afterNextRender(() => {\n if (this.tree()._pattern instanceof ComboboxTreePattern) {\n this.preserveContent.set(true);\n }\n });\n // Connect the group's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this.tree()._pattern instanceof ComboboxTreePattern\n ? this.contentVisible.set(true)\n : this.contentVisible.set(this._pattern.expanded());\n });\n }\n\n ngOnInit() {\n this.parent().register(this);\n this.tree().register(this);\n\n const treePattern = computed(() => this.tree()._pattern);\n const parentPattern = computed(() => {\n if (this.parent() instanceof Tree) {\n return treePattern();\n }\n return (this.parent() as TreeItemGroup<V>).ownedBy()._pattern;\n });\n this._pattern = new TreeItemPattern<V>({\n ...this,\n tree: treePattern,\n parent: parentPattern,\n children: computed(() => this._group()?.children() ?? []),\n hasChildren: computed(() => !!this._group()),\n element: () => this.element,\n });\n }\n\n ngOnDestroy() {\n this.parent().unregister(this);\n this.tree().unregister(this);\n }\n\n register(group: TreeItemGroup<V>) {\n this._group.set(group);\n }\n\n unregister() {\n this._group.set(undefined);\n }\n}\n\n/**\n * Group that contains children tree items.\n *\n * The `ngTreeItemGroup` structural directive should be applied to an `ng-template` that\n * wraps the child `ngTreeItem` elements. It is used to define a group of children for an\n * expandable `ngTreeItem`. The `ownedBy` input links the group to its parent `ngTreeItem`.\n *\n * ```html\n * <li ngTreeItem [value]=\"'parent-id'\">\n * Parent Item\n * <ul role=\"group\">\n * <ng-template ngTreeItemGroup [ownedBy]=\"parentTreeItemRef\">\n * <li ngTreeItem [value]=\"'child-id'\">Child Item</li>\n * </ng-template>\n * </ul>\n * </li>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngTreeItemGroup]',\n exportAs: 'ngTreeItemGroup',\n hostDirectives: [DeferredContent],\n})\nexport class TreeItemGroup<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContent host directive. */\n private readonly _deferredContent = inject(DeferredContent);\n\n /** All groupable items that are descendants of the group. */\n private readonly _unorderedItems = signal(new Set<TreeItem<V>>());\n\n /** Child items within this group. */\n readonly children = computed<TreeItemPattern<V>[]>(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(c => c._pattern),\n );\n\n /** Tree item that owns the group. */\n readonly ownedBy = input.required<TreeItem<V>>();\n\n ngOnInit() {\n this._deferredContent.deferredContentAware.set(this.ownedBy());\n this.ownedBy().register(this);\n }\n\n ngOnDestroy() {\n this.ownedBy().unregister();\n }\n\n register(child: TreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: TreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n"],"names":["sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Tree","_elementRef","inject","ElementRef","nativeElement","_popup","ComboboxPopup","optional","_unorderedItems","signal","Set","id","input","_IdGenerator","getId","orientation","multi","transform","booleanAttribute","disabled","selectionMode","focusMode","wrap","softDisabled","typeaheadDelay","values","model","textDirection","Directionality","valueSignal","nav","currentType","_pattern","_hasFocused","constructor","inputs","allItems","computed","sort","map","item","activeItem","undefined","combobox","ComboboxTreePattern","TreePattern","controls","set","afterRenderEffect","setDefaultState","items","untracked","some","i","listBehavior","unfocus","v","value","filter","onFocus","register","child","add","unregister","delete","scrollActiveItemIntoView","options","block","scrollIntoView","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","TreeItem","DeferredContentAware","_group","required","parent","selectable","expanded","label","ngDevMode","debugName","searchTerm","textContent","tree","ownedBy","active","level","selected","visible","_expanded","expandable","afterNextRender","preserveContent","contentVisible","ngOnInit","treePattern","parentPattern","TreeItemPattern","children","hasChildren","ngOnDestroy","group","usesInheritance","TreeItemGroup","_deferredContent","DeferredContent","c","deferredContentAware","i2"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/aria",
|
|
3
|
-
"version": "21.0.0-rc.
|
|
3
|
+
"version": "21.0.0-rc.2",
|
|
4
4
|
"description": "Angular Aria",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"homepage": "https://github.com/angular/components#readme",
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@angular/cdk": "21.0.0-rc.
|
|
15
|
+
"@angular/cdk": "21.0.0-rc.2",
|
|
16
16
|
"@angular/core": "^21.0.0-0 || ^21.1.0-0 || ^21.2.0-0 || ^21.3.0-0 || ^22.0.0-0"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
@@ -53,10 +53,6 @@
|
|
|
53
53
|
"types": "./types/combobox.d.ts",
|
|
54
54
|
"default": "./fesm2022/combobox.mjs"
|
|
55
55
|
},
|
|
56
|
-
"./deferred-content": {
|
|
57
|
-
"types": "./types/deferred-content.d.ts",
|
|
58
|
-
"default": "./fesm2022/deferred-content.mjs"
|
|
59
|
-
},
|
|
60
56
|
"./grid": {
|
|
61
57
|
"types": "./types/grid.d.ts",
|
|
62
58
|
"default": "./fesm2022/grid.mjs"
|
|
@@ -73,10 +69,6 @@
|
|
|
73
69
|
"types": "./types/private.d.ts",
|
|
74
70
|
"default": "./fesm2022/private.mjs"
|
|
75
71
|
},
|
|
76
|
-
"./radio-group": {
|
|
77
|
-
"types": "./types/radio-group.d.ts",
|
|
78
|
-
"default": "./fesm2022/radio-group.mjs"
|
|
79
|
-
},
|
|
80
72
|
"./tabs": {
|
|
81
73
|
"types": "./types/tabs.d.ts",
|
|
82
74
|
"default": "./fesm2022/tabs.mjs"
|