@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/fesm2022/tree.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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
5
|
import * as i1 from '@angular/aria/private';
|
|
@@ -8,20 +8,20 @@ import { ComboboxPopup } from './combobox.mjs';
|
|
|
8
8
|
import '@angular/core/rxjs-interop';
|
|
9
9
|
|
|
10
10
|
function sortDirectives(a, b) {
|
|
11
|
-
return (a.element
|
|
11
|
+
return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0 ? 1 : -1;
|
|
12
12
|
}
|
|
13
13
|
class Tree {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
debugName: "id"
|
|
17
|
-
}] : []));
|
|
14
|
+
_elementRef = inject(ElementRef);
|
|
15
|
+
element = this._elementRef.nativeElement;
|
|
18
16
|
_popup = inject(ComboboxPopup, {
|
|
19
17
|
optional: true
|
|
20
18
|
});
|
|
21
|
-
_elementRef = inject(ElementRef);
|
|
22
19
|
_unorderedItems = signal(new Set(), ...(ngDevMode ? [{
|
|
23
20
|
debugName: "_unorderedItems"
|
|
24
21
|
}] : []));
|
|
22
|
+
id = input(inject(_IdGenerator).getId('ng-tree-', true), ...(ngDevMode ? [{
|
|
23
|
+
debugName: "id"
|
|
24
|
+
}] : []));
|
|
25
25
|
orientation = input('vertical', ...(ngDevMode ? [{
|
|
26
26
|
debugName: "orientation"
|
|
27
27
|
}] : []));
|
|
@@ -55,16 +55,19 @@ class Tree {
|
|
|
55
55
|
}] : [{
|
|
56
56
|
transform: booleanAttribute
|
|
57
57
|
}]));
|
|
58
|
-
typeaheadDelay = input(
|
|
58
|
+
typeaheadDelay = input(500, ...(ngDevMode ? [{
|
|
59
59
|
debugName: "typeaheadDelay"
|
|
60
60
|
}] : []));
|
|
61
|
-
|
|
62
|
-
debugName: "
|
|
61
|
+
values = model([], ...(ngDevMode ? [{
|
|
62
|
+
debugName: "values"
|
|
63
63
|
}] : []));
|
|
64
64
|
textDirection = inject(Directionality).valueSignal;
|
|
65
65
|
nav = input(false, ...(ngDevMode ? [{
|
|
66
|
-
debugName: "nav"
|
|
67
|
-
|
|
66
|
+
debugName: "nav",
|
|
67
|
+
transform: booleanAttribute
|
|
68
|
+
}] : [{
|
|
69
|
+
transform: booleanAttribute
|
|
70
|
+
}]));
|
|
68
71
|
currentType = input('page', ...(ngDevMode ? [{
|
|
69
72
|
debugName: "currentType"
|
|
70
73
|
}] : []));
|
|
@@ -78,12 +81,12 @@ class Tree {
|
|
|
78
81
|
id: this.id,
|
|
79
82
|
allItems: computed(() => [...this._unorderedItems()].sort(sortDirectives).map(item => item._pattern)),
|
|
80
83
|
activeItem: signal(undefined),
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
combobox: () => this._popup?.combobox?._pattern,
|
|
85
|
+
element: () => this.element
|
|
83
86
|
};
|
|
84
87
|
this._pattern = this._popup?.combobox ? new ComboboxTreePattern(inputs) : new TreePattern(inputs);
|
|
85
88
|
if (this._popup?.combobox) {
|
|
86
|
-
this._popup?.
|
|
89
|
+
this._popup?._controls?.set(this._pattern);
|
|
87
90
|
}
|
|
88
91
|
afterRenderEffect(() => {
|
|
89
92
|
if (!this._hasFocused()) {
|
|
@@ -98,21 +101,22 @@ class Tree {
|
|
|
98
101
|
}
|
|
99
102
|
});
|
|
100
103
|
afterRenderEffect(() => {
|
|
104
|
+
if (!(this._pattern instanceof ComboboxTreePattern)) return;
|
|
101
105
|
const items = inputs.allItems();
|
|
102
|
-
const
|
|
103
|
-
if (items &&
|
|
104
|
-
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)));
|
|
105
109
|
}
|
|
106
110
|
});
|
|
107
111
|
}
|
|
108
|
-
|
|
112
|
+
_onFocus() {
|
|
109
113
|
this._hasFocused.set(true);
|
|
110
114
|
}
|
|
111
|
-
|
|
115
|
+
_register(child) {
|
|
112
116
|
this._unorderedItems().add(child);
|
|
113
117
|
this._unorderedItems.set(new Set(this._unorderedItems()));
|
|
114
118
|
}
|
|
115
|
-
|
|
119
|
+
_unregister(child) {
|
|
116
120
|
this._unorderedItems().delete(child);
|
|
117
121
|
this._unorderedItems.set(new Set(this._unorderedItems()));
|
|
118
122
|
}
|
|
@@ -136,6 +140,13 @@ class Tree {
|
|
|
136
140
|
isStandalone: true,
|
|
137
141
|
selector: "[ngTree]",
|
|
138
142
|
inputs: {
|
|
143
|
+
id: {
|
|
144
|
+
classPropertyName: "id",
|
|
145
|
+
publicName: "id",
|
|
146
|
+
isSignal: true,
|
|
147
|
+
isRequired: false,
|
|
148
|
+
transformFunction: null
|
|
149
|
+
},
|
|
139
150
|
orientation: {
|
|
140
151
|
classPropertyName: "orientation",
|
|
141
152
|
publicName: "orientation",
|
|
@@ -192,9 +203,9 @@ class Tree {
|
|
|
192
203
|
isRequired: false,
|
|
193
204
|
transformFunction: null
|
|
194
205
|
},
|
|
195
|
-
|
|
196
|
-
classPropertyName: "
|
|
197
|
-
publicName: "
|
|
206
|
+
values: {
|
|
207
|
+
classPropertyName: "values",
|
|
208
|
+
publicName: "values",
|
|
198
209
|
isSignal: true,
|
|
199
210
|
isRequired: false,
|
|
200
211
|
transformFunction: null
|
|
@@ -215,7 +226,7 @@ class Tree {
|
|
|
215
226
|
}
|
|
216
227
|
},
|
|
217
228
|
outputs: {
|
|
218
|
-
|
|
229
|
+
values: "valuesChange"
|
|
219
230
|
},
|
|
220
231
|
host: {
|
|
221
232
|
attributes: {
|
|
@@ -224,7 +235,7 @@ class Tree {
|
|
|
224
235
|
listeners: {
|
|
225
236
|
"keydown": "_pattern.onKeydown($event)",
|
|
226
237
|
"pointerdown": "_pattern.onPointerdown($event)",
|
|
227
|
-
"focusin": "
|
|
238
|
+
"focusin": "_onFocus()"
|
|
228
239
|
},
|
|
229
240
|
properties: {
|
|
230
241
|
"attr.id": "id()",
|
|
@@ -233,8 +244,7 @@ class Tree {
|
|
|
233
244
|
"attr.aria-disabled": "_pattern.disabled()",
|
|
234
245
|
"attr.aria-activedescendant": "_pattern.activeDescendant()",
|
|
235
246
|
"tabindex": "_pattern.tabIndex()"
|
|
236
|
-
}
|
|
237
|
-
classAttribute: "ng-tree"
|
|
247
|
+
}
|
|
238
248
|
},
|
|
239
249
|
exportAs: ["ngTree"],
|
|
240
250
|
hostDirectives: [{
|
|
@@ -254,7 +264,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
254
264
|
selector: '[ngTree]',
|
|
255
265
|
exportAs: 'ngTree',
|
|
256
266
|
host: {
|
|
257
|
-
'class': 'ng-tree',
|
|
258
267
|
'role': 'tree',
|
|
259
268
|
'[attr.id]': 'id()',
|
|
260
269
|
'[attr.aria-orientation]': '_pattern.orientation()',
|
|
@@ -264,23 +273,21 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
264
273
|
'[tabindex]': '_pattern.tabIndex()',
|
|
265
274
|
'(keydown)': '_pattern.onKeydown($event)',
|
|
266
275
|
'(pointerdown)': '_pattern.onPointerdown($event)',
|
|
267
|
-
'(focusin)': '
|
|
276
|
+
'(focusin)': '_onFocus()'
|
|
268
277
|
},
|
|
269
|
-
hostDirectives: [
|
|
270
|
-
directive: ComboboxPopup
|
|
271
|
-
}]
|
|
278
|
+
hostDirectives: [ComboboxPopup]
|
|
272
279
|
}]
|
|
273
280
|
}],
|
|
274
281
|
ctorParameters: () => []
|
|
275
282
|
});
|
|
276
283
|
class TreeItem extends DeferredContentAware {
|
|
277
284
|
_elementRef = inject(ElementRef);
|
|
278
|
-
|
|
285
|
+
element = this._elementRef.nativeElement;
|
|
279
286
|
_group = signal(undefined, ...(ngDevMode ? [{
|
|
280
287
|
debugName: "_group"
|
|
281
288
|
}] : []));
|
|
282
|
-
|
|
283
|
-
debugName: "
|
|
289
|
+
id = input(inject(_IdGenerator).getId('ng-tree-item-', true), ...(ngDevMode ? [{
|
|
290
|
+
debugName: "id"
|
|
284
291
|
}] : []));
|
|
285
292
|
value = input.required(...(ngDevMode ? [{
|
|
286
293
|
debugName: "value"
|
|
@@ -297,10 +304,13 @@ class TreeItem extends DeferredContentAware {
|
|
|
297
304
|
selectable = input(true, ...(ngDevMode ? [{
|
|
298
305
|
debugName: "selectable"
|
|
299
306
|
}] : []));
|
|
307
|
+
expanded = model(false, ...(ngDevMode ? [{
|
|
308
|
+
debugName: "expanded"
|
|
309
|
+
}] : []));
|
|
300
310
|
label = input(...(ngDevMode ? [undefined, {
|
|
301
311
|
debugName: "label"
|
|
302
312
|
}] : []));
|
|
303
|
-
searchTerm = computed(() => this.label() ?? this.element
|
|
313
|
+
searchTerm = computed(() => this.label() ?? this.element.textContent, ...(ngDevMode ? [{
|
|
304
314
|
debugName: "searchTerm"
|
|
305
315
|
}] : []));
|
|
306
316
|
tree = computed(() => {
|
|
@@ -311,6 +321,21 @@ class TreeItem extends DeferredContentAware {
|
|
|
311
321
|
}, ...(ngDevMode ? [{
|
|
312
322
|
debugName: "tree"
|
|
313
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
|
+
}] : []));
|
|
314
339
|
_pattern;
|
|
315
340
|
constructor() {
|
|
316
341
|
super();
|
|
@@ -324,8 +349,8 @@ class TreeItem extends DeferredContentAware {
|
|
|
324
349
|
});
|
|
325
350
|
}
|
|
326
351
|
ngOnInit() {
|
|
327
|
-
this.parent().
|
|
328
|
-
this.tree().
|
|
352
|
+
this.parent()._register(this);
|
|
353
|
+
this.tree()._register(this);
|
|
329
354
|
const treePattern = computed(() => this.tree()._pattern, ...(ngDevMode ? [{
|
|
330
355
|
debugName: "treePattern"
|
|
331
356
|
}] : []));
|
|
@@ -339,21 +364,22 @@ class TreeItem extends DeferredContentAware {
|
|
|
339
364
|
}] : []));
|
|
340
365
|
this._pattern = new TreeItemPattern({
|
|
341
366
|
...this,
|
|
342
|
-
id: () => this._id,
|
|
343
367
|
tree: treePattern,
|
|
344
368
|
parent: parentPattern,
|
|
345
|
-
children: computed(() => this._group()?.
|
|
346
|
-
hasChildren: computed(() => !!this._group())
|
|
369
|
+
children: computed(() => this._group()?._childPatterns() ?? []),
|
|
370
|
+
hasChildren: computed(() => !!this._group()),
|
|
371
|
+
element: () => this.element,
|
|
372
|
+
searchTerm: () => this.searchTerm() ?? ''
|
|
347
373
|
});
|
|
348
374
|
}
|
|
349
375
|
ngOnDestroy() {
|
|
350
|
-
this.parent().
|
|
351
|
-
this.tree().
|
|
376
|
+
this.parent()._unregister(this);
|
|
377
|
+
this.tree()._unregister(this);
|
|
352
378
|
}
|
|
353
|
-
|
|
379
|
+
_register(group) {
|
|
354
380
|
this._group.set(group);
|
|
355
381
|
}
|
|
356
|
-
|
|
382
|
+
_unregister() {
|
|
357
383
|
this._group.set(undefined);
|
|
358
384
|
}
|
|
359
385
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
@@ -371,6 +397,13 @@ class TreeItem extends DeferredContentAware {
|
|
|
371
397
|
isStandalone: true,
|
|
372
398
|
selector: "[ngTreeItem]",
|
|
373
399
|
inputs: {
|
|
400
|
+
id: {
|
|
401
|
+
classPropertyName: "id",
|
|
402
|
+
publicName: "id",
|
|
403
|
+
isSignal: true,
|
|
404
|
+
isRequired: false,
|
|
405
|
+
transformFunction: null
|
|
406
|
+
},
|
|
374
407
|
value: {
|
|
375
408
|
classPropertyName: "value",
|
|
376
409
|
publicName: "value",
|
|
@@ -399,6 +432,13 @@ class TreeItem extends DeferredContentAware {
|
|
|
399
432
|
isRequired: false,
|
|
400
433
|
transformFunction: null
|
|
401
434
|
},
|
|
435
|
+
expanded: {
|
|
436
|
+
classPropertyName: "expanded",
|
|
437
|
+
publicName: "expanded",
|
|
438
|
+
isSignal: true,
|
|
439
|
+
isRequired: false,
|
|
440
|
+
transformFunction: null
|
|
441
|
+
},
|
|
402
442
|
label: {
|
|
403
443
|
classPropertyName: "label",
|
|
404
444
|
publicName: "label",
|
|
@@ -407,23 +447,25 @@ class TreeItem extends DeferredContentAware {
|
|
|
407
447
|
transformFunction: null
|
|
408
448
|
}
|
|
409
449
|
},
|
|
450
|
+
outputs: {
|
|
451
|
+
expanded: "expandedChange"
|
|
452
|
+
},
|
|
410
453
|
host: {
|
|
411
454
|
attributes: {
|
|
412
455
|
"role": "treeitem"
|
|
413
456
|
},
|
|
414
457
|
properties: {
|
|
415
|
-
"attr.data-active": "
|
|
458
|
+
"attr.data-active": "active()",
|
|
416
459
|
"id": "_pattern.id()",
|
|
417
|
-
"attr.aria-expanded": "
|
|
418
|
-
"attr.aria-selected": "
|
|
460
|
+
"attr.aria-expanded": "_expanded()",
|
|
461
|
+
"attr.aria-selected": "selected()",
|
|
419
462
|
"attr.aria-current": "_pattern.current()",
|
|
420
463
|
"attr.aria-disabled": "_pattern.disabled()",
|
|
421
|
-
"attr.aria-level": "
|
|
464
|
+
"attr.aria-level": "level()",
|
|
422
465
|
"attr.aria-setsize": "_pattern.setsize()",
|
|
423
466
|
"attr.aria-posinset": "_pattern.posinset()",
|
|
424
467
|
"attr.tabindex": "_pattern.tabIndex()"
|
|
425
|
-
}
|
|
426
|
-
classAttribute: "ng-treeitem"
|
|
468
|
+
}
|
|
427
469
|
},
|
|
428
470
|
exportAs: ["ngTreeItem"],
|
|
429
471
|
usesInheritance: true,
|
|
@@ -441,15 +483,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
441
483
|
selector: '[ngTreeItem]',
|
|
442
484
|
exportAs: 'ngTreeItem',
|
|
443
485
|
host: {
|
|
444
|
-
'
|
|
445
|
-
'[attr.data-active]': '_pattern.active()',
|
|
486
|
+
'[attr.data-active]': 'active()',
|
|
446
487
|
'role': 'treeitem',
|
|
447
488
|
'[id]': '_pattern.id()',
|
|
448
|
-
'[attr.aria-expanded]': '
|
|
449
|
-
'[attr.aria-selected]': '
|
|
489
|
+
'[attr.aria-expanded]': '_expanded()',
|
|
490
|
+
'[attr.aria-selected]': 'selected()',
|
|
450
491
|
'[attr.aria-current]': '_pattern.current()',
|
|
451
492
|
'[attr.aria-disabled]': '_pattern.disabled()',
|
|
452
|
-
'[attr.aria-level]': '
|
|
493
|
+
'[attr.aria-level]': 'level()',
|
|
453
494
|
'[attr.aria-setsize]': '_pattern.setsize()',
|
|
454
495
|
'[attr.aria-posinset]': '_pattern.posinset()',
|
|
455
496
|
'[attr.tabindex]': '_pattern.tabIndex()'
|
|
@@ -459,28 +500,30 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
459
500
|
ctorParameters: () => []
|
|
460
501
|
});
|
|
461
502
|
class TreeItemGroup {
|
|
503
|
+
_elementRef = inject(ElementRef);
|
|
504
|
+
element = this._elementRef.nativeElement;
|
|
462
505
|
_deferredContent = inject(DeferredContent);
|
|
463
506
|
_unorderedItems = signal(new Set(), ...(ngDevMode ? [{
|
|
464
507
|
debugName: "_unorderedItems"
|
|
465
508
|
}] : []));
|
|
466
|
-
|
|
467
|
-
debugName: "
|
|
509
|
+
_childPatterns = computed(() => [...this._unorderedItems()].sort(sortDirectives).map(c => c._pattern), ...(ngDevMode ? [{
|
|
510
|
+
debugName: "_childPatterns"
|
|
468
511
|
}] : []));
|
|
469
512
|
ownedBy = input.required(...(ngDevMode ? [{
|
|
470
513
|
debugName: "ownedBy"
|
|
471
514
|
}] : []));
|
|
472
515
|
ngOnInit() {
|
|
473
516
|
this._deferredContent.deferredContentAware.set(this.ownedBy());
|
|
474
|
-
this.ownedBy().
|
|
517
|
+
this.ownedBy()._register(this);
|
|
475
518
|
}
|
|
476
519
|
ngOnDestroy() {
|
|
477
|
-
this.ownedBy().
|
|
520
|
+
this.ownedBy()._unregister();
|
|
478
521
|
}
|
|
479
|
-
|
|
522
|
+
_register(child) {
|
|
480
523
|
this._unorderedItems().add(child);
|
|
481
524
|
this._unorderedItems.set(new Set(this._unorderedItems()));
|
|
482
525
|
}
|
|
483
|
-
|
|
526
|
+
_unregister(child) {
|
|
484
527
|
this._unorderedItems().delete(child);
|
|
485
528
|
this._unorderedItems.set(new Set(this._unorderedItems()));
|
|
486
529
|
}
|
package/fesm2022/tree.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.mjs","sources":["../../../../../k8-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: 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-', true);\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 allow disabled items to receive focus. */\n readonly softDisabled = 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-', true);\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 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 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":["sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Tree","_generatedId","inject","_IdGenerator","getId","id","computed","ngDevMode","debugName","_popup","ComboboxPopup","optional","_elementRef","ElementRef","_unorderedItems","signal","Set","orientation","input","multi","transform","booleanAttribute","disabled","selectionMode","focusMode","wrap","softDisabled","typeaheadDelay","value","model","textDirection","Directionality","valueSignal","nav","currentType","_pattern","_hasFocused","constructor","inputs","allItems","sort","map","item","activeItem","undefined","nativeElement","combobox","ComboboxTreePattern","TreePattern","controls","set","afterRenderEffect","setDefaultState","items","untracked","some","i","listBehavior","unfocus","v","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","classAttribute","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","TreeItem","DeferredContentAware","_id","_group","required","parent","selectable","label","searchTerm","textContent","tree","ownedBy","afterNextRender","preserveContent","contentVisible","expanded","ngOnInit","treePattern","parentPattern","TreeItemPattern","children","hasChildren","ngOnDestroy","group","usesInheritance","TreeItemGroup","_deferredContent","DeferredContent","c","deferredContentAware","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree.mjs","sources":["../../../../../k8-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()?._childPatterns() ?? []),\n hasChildren: computed(() => !!this._group()),\n element: () => this.element,\n searchTerm: () => this.searchTerm() ?? '',\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 _childPatterns = 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","_childPatterns","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.3",
|
|
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.3",
|
|
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": {
|