@angular/aria 22.0.0-next.6 → 22.0.0-next.8

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.
Files changed (105) hide show
  1. package/fesm2022/_accordion-chunk.mjs +1 -1
  2. package/fesm2022/_accordion-chunk.mjs.map +1 -1
  3. package/fesm2022/_click-event-manager-chunk.mjs +1 -1
  4. package/fesm2022/_click-event-manager-chunk.mjs.map +1 -1
  5. package/fesm2022/{_signal-like-chunk.mjs → _collection-chunk.mjs} +51 -3
  6. package/fesm2022/_collection-chunk.mjs.map +1 -0
  7. package/fesm2022/_deferred-content-chunk.mjs +16 -14
  8. package/fesm2022/_deferred-content-chunk.mjs.map +1 -1
  9. package/fesm2022/_expansion-chunk.mjs.map +1 -1
  10. package/fesm2022/_list-chunk.mjs +4 -1
  11. package/fesm2022/_list-chunk.mjs.map +1 -1
  12. package/fesm2022/_list-navigation-chunk.mjs +4 -2
  13. package/fesm2022/_list-navigation-chunk.mjs.map +1 -1
  14. package/fesm2022/_list-typeahead-chunk.mjs +1 -1
  15. package/fesm2022/_list-typeahead-chunk.mjs.map +1 -1
  16. package/fesm2022/_menu-chunk.mjs +1 -1
  17. package/fesm2022/_menu-chunk.mjs.map +1 -1
  18. package/fesm2022/{_combobox-listbox-chunk.mjs → _option-chunk.mjs} +6 -50
  19. package/fesm2022/_option-chunk.mjs.map +1 -0
  20. package/fesm2022/_tabs-chunk.mjs +22 -47
  21. package/fesm2022/_tabs-chunk.mjs.map +1 -1
  22. package/fesm2022/_toolbar-widget-group-chunk.mjs +1 -1
  23. package/fesm2022/_toolbar-widget-group-chunk.mjs.map +1 -1
  24. package/fesm2022/_transforms-chunk.mjs +8 -0
  25. package/fesm2022/_transforms-chunk.mjs.map +1 -0
  26. package/fesm2022/{_combobox-tree-chunk.mjs → _tree-chunk.mjs} +3 -48
  27. package/fesm2022/_tree-chunk.mjs.map +1 -0
  28. package/fesm2022/_widget-chunk.mjs +84 -21
  29. package/fesm2022/_widget-chunk.mjs.map +1 -1
  30. package/fesm2022/accordion-testing.mjs.map +1 -1
  31. package/fesm2022/accordion.mjs +32 -57
  32. package/fesm2022/accordion.mjs.map +1 -1
  33. package/fesm2022/aria.mjs +1 -1
  34. package/fesm2022/aria.mjs.map +1 -1
  35. package/fesm2022/combobox-testing.mjs +79 -0
  36. package/fesm2022/combobox-testing.mjs.map +1 -0
  37. package/fesm2022/combobox.mjs +287 -296
  38. package/fesm2022/combobox.mjs.map +1 -1
  39. package/fesm2022/grid-testing.mjs +80 -0
  40. package/fesm2022/grid-testing.mjs.map +1 -0
  41. package/fesm2022/grid.mjs +113 -86
  42. package/fesm2022/grid.mjs.map +1 -1
  43. package/fesm2022/listbox-testing.mjs +4 -0
  44. package/fesm2022/listbox-testing.mjs.map +1 -1
  45. package/fesm2022/listbox.mjs +231 -225
  46. package/fesm2022/listbox.mjs.map +1 -1
  47. package/fesm2022/menu-testing.mjs +11 -0
  48. package/fesm2022/menu-testing.mjs.map +1 -1
  49. package/fesm2022/menu.mjs +66 -84
  50. package/fesm2022/menu.mjs.map +1 -1
  51. package/fesm2022/private.mjs +166 -9
  52. package/fesm2022/private.mjs.map +1 -1
  53. package/fesm2022/tabs-testing.mjs.map +1 -1
  54. package/fesm2022/tabs.mjs +241 -222
  55. package/fesm2022/tabs.mjs.map +1 -1
  56. package/fesm2022/toolbar-testing.mjs +5 -1
  57. package/fesm2022/toolbar-testing.mjs.map +1 -1
  58. package/fesm2022/toolbar.mjs +23 -33
  59. package/fesm2022/toolbar.mjs.map +1 -1
  60. package/fesm2022/tree-testing.mjs +12 -0
  61. package/fesm2022/tree-testing.mjs.map +1 -1
  62. package/fesm2022/tree.mjs +160 -156
  63. package/fesm2022/tree.mjs.map +1 -1
  64. package/package.json +10 -2
  65. package/types/_accordion-chunk.d.ts +2 -2
  66. package/types/_collection-chunk.d.ts +42 -0
  67. package/types/_expansion-chunk.d.ts +1 -1
  68. package/types/_grid-chunk.d.ts +23 -9
  69. package/types/_keyboard-event-manager-chunk.d.ts +1 -1
  70. package/types/_list-chunk.d.ts +1 -1
  71. package/types/_list-navigation-chunk.d.ts +1 -1
  72. package/types/_listbox-chunk.d.ts +1 -1
  73. package/types/_menu-chunk.d.ts +1 -1
  74. package/types/_tabs-chunk.d.ts +8 -43
  75. package/types/_toolbar-chunk.d.ts +1 -1
  76. package/types/_tree-chunk.d.ts +1 -1
  77. package/types/accordion.d.ts +7 -13
  78. package/types/combobox-testing.d.ts +63 -0
  79. package/types/combobox.d.ts +96 -192
  80. package/types/grid-testing.d.ts +83 -0
  81. package/types/grid.d.ts +102 -90
  82. package/types/listbox-testing.d.ts +25 -0
  83. package/types/listbox.d.ts +60 -63
  84. package/types/menu-testing.d.ts +6 -0
  85. package/types/menu.d.ts +24 -17
  86. package/types/private.d.ts +115 -133
  87. package/types/tabs.d.ts +26 -24
  88. package/types/toolbar-testing.d.ts +4 -0
  89. package/types/toolbar.d.ts +5 -6
  90. package/types/tree-testing.d.ts +8 -0
  91. package/types/tree.d.ts +11 -15
  92. package/fesm2022/_combobox-chunk.mjs +0 -429
  93. package/fesm2022/_combobox-chunk.mjs.map +0 -1
  94. package/fesm2022/_combobox-listbox-chunk.mjs.map +0 -1
  95. package/fesm2022/_combobox-tree-chunk.mjs.map +0 -1
  96. package/fesm2022/_element-chunk.mjs +0 -6
  97. package/fesm2022/_element-chunk.mjs.map +0 -1
  98. package/fesm2022/_pointer-event-manager-chunk.mjs +0 -54
  99. package/fesm2022/_pointer-event-manager-chunk.mjs.map +0 -1
  100. package/fesm2022/_signal-like-chunk.mjs.map +0 -1
  101. package/resources/code-examples.db +0 -0
  102. package/types/_combobox-chunk.d.ts +0 -194
  103. package/types/_element-chunk.d.ts +0 -10
  104. package/types/_pointer-event-manager-chunk.d.ts +0 -34
  105. package/types/_signal-like-chunk.d.ts +0 -14
package/fesm2022/tree.mjs CHANGED
@@ -1,30 +1,21 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, signal, input, booleanAttribute, model, computed, afterRenderEffect, untracked, Directive, afterNextRender } from '@angular/core';
2
+ import { inject, ElementRef, input, booleanAttribute, model, signal, computed, afterNextRender, afterRenderEffect, untracked, Directive } from '@angular/core';
3
3
  import { _IdGenerator } from '@angular/cdk/a11y';
4
4
  import { Directionality } from '@angular/cdk/bidi';
5
- import { ComboboxPopup } from './combobox.mjs';
6
- export { Combobox as ɵɵCombobox, ComboboxDialog as ɵɵComboboxDialog, ComboboxInput as ɵɵComboboxInput, ComboboxPopupContainer as ɵɵComboboxPopupContainer } from './combobox.mjs';
7
- import { ComboboxTreePattern, TreePattern, TreeItemPattern } from './_combobox-tree-chunk.mjs';
8
- import { sortDirectives } from './_element-chunk.mjs';
9
- import { DeferredContentAware, DeferredContent } from './_deferred-content-chunk.mjs';
10
- import './_combobox-chunk.mjs';
11
- import './_signal-like-chunk.mjs';
12
- import '@angular/core/primitives/signals';
13
- import './_pointer-event-manager-chunk.mjs';
5
+ import { TreePattern, TreeItemPattern } from './_tree-chunk.mjs';
6
+ import { SortedCollection, sortDirectives } from './_collection-chunk.mjs';
7
+ import { tabIndexTransform } from './_transforms-chunk.mjs';
8
+ import { DeferredContent, DeferredContentAware } from './_deferred-content-chunk.mjs';
14
9
  import './_expansion-chunk.mjs';
15
10
  import './_list-navigation-chunk.mjs';
16
11
  import './_list-typeahead-chunk.mjs';
17
12
  import './_click-event-manager-chunk.mjs';
13
+ import '@angular/core/primitives/signals';
18
14
 
19
15
  class Tree {
20
16
  _elementRef = inject(ElementRef);
21
17
  element = this._elementRef.nativeElement;
22
- _popup = inject(ComboboxPopup, {
23
- optional: true
24
- });
25
- _unorderedItems = signal(new Set(), ...(ngDevMode ? [{
26
- debugName: "_unorderedItems"
27
- }] : []));
18
+ _collection = new SortedCollection();
28
19
  id = input(inject(_IdGenerator).getId('ng-tree-', true), ...(ngDevMode ? [{
29
20
  debugName: "id"
30
21
  }] : []));
@@ -64,6 +55,13 @@ class Tree {
64
55
  typeaheadDelay = input(500, ...(ngDevMode ? [{
65
56
  debugName: "typeaheadDelay"
66
57
  }] : []));
58
+ tabIndex = input(undefined, {
59
+ ...(ngDevMode ? {
60
+ debugName: "tabIndex"
61
+ } : {}),
62
+ alias: 'tabindex',
63
+ transform: tabIndexTransform
64
+ });
67
65
  value = model([], ...(ngDevMode ? [{
68
66
  debugName: "value"
69
67
  }] : []));
@@ -78,53 +76,47 @@ class Tree {
78
76
  debugName: "currentType"
79
77
  }] : []));
80
78
  _pattern;
79
+ activeDescendant;
81
80
  constructor() {
82
81
  const inputs = {
83
82
  ...this,
84
83
  id: this.id,
85
- items: computed(() => [...this._unorderedItems()].sort(sortDirectives).map(item => item._pattern)),
84
+ items: computed(() => this._collection.orderedItems().map(item => item._pattern)),
86
85
  activeItem: signal(undefined),
87
- combobox: () => this._popup?.combobox?._pattern,
88
86
  element: () => this.element
89
87
  };
90
- this._pattern = this._popup?.combobox ? new ComboboxTreePattern(inputs) : new TreePattern(inputs);
91
- if (this._popup?.combobox) {
92
- this._popup?._controls?.set(this._pattern);
93
- }
94
- afterRenderEffect(() => {
95
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
96
- const violations = this._pattern.validate();
97
- for (const violation of violations) {
98
- console.error(violation);
88
+ this._pattern = new TreePattern(inputs);
89
+ this.activeDescendant = computed(() => this._pattern.activeDescendant(), ...(ngDevMode ? [{
90
+ debugName: "activeDescendant"
91
+ }] : []));
92
+ afterNextRender(() => {
93
+ this._collection.startObserving(this.element);
94
+ });
95
+ afterRenderEffect({
96
+ read: () => {
97
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
98
+ const violations = this._pattern.validate();
99
+ for (const violation of violations) {
100
+ console.error(violation);
101
+ }
99
102
  }
100
103
  }
101
104
  });
102
- afterRenderEffect(() => {
103
- this._pattern.setDefaultStateEffect();
105
+ afterRenderEffect({
106
+ write: () => this._pattern.setDefaultStateEffect()
104
107
  });
105
- afterRenderEffect(() => {
106
- const items = inputs.items();
107
- const activeItem = untracked(() => inputs.activeItem());
108
- if (!items.some(i => i === activeItem) && activeItem) {
109
- this._pattern.treeBehavior.unfocus();
110
- }
111
- });
112
- afterRenderEffect(() => {
113
- if (!(this._pattern instanceof ComboboxTreePattern)) return;
114
- const items = inputs.items();
115
- const value = untracked(() => this.value());
116
- if (items && value.some(v => !items.some(i => i.value() === v))) {
117
- this.value.set(value.filter(v => items.some(i => i.value() === v)));
108
+ afterRenderEffect({
109
+ write: () => {
110
+ const items = inputs.items();
111
+ const activeItem = untracked(() => inputs.activeItem());
112
+ if (!items.some(i => i === activeItem) && activeItem) {
113
+ this._pattern.treeBehavior.unfocus();
114
+ }
118
115
  }
119
116
  });
120
117
  }
121
- _register(child) {
122
- this._unorderedItems().add(child);
123
- this._unorderedItems.set(new Set(this._unorderedItems()));
124
- }
125
- _unregister(child) {
126
- this._unorderedItems().delete(child);
127
- this._unorderedItems.set(new Set(this._unorderedItems()));
118
+ ngOnDestroy() {
119
+ this._collection.stopObserving();
128
120
  }
129
121
  scrollActiveItemIntoView(options = {
130
122
  block: 'nearest'
@@ -133,7 +125,7 @@ class Tree {
133
125
  }
134
126
  static ɵfac = i0.ɵɵngDeclareFactory({
135
127
  minVersion: "12.0.0",
136
- version: "22.0.0-next.6",
128
+ version: "22.0.0-next.10",
137
129
  ngImport: i0,
138
130
  type: Tree,
139
131
  deps: [],
@@ -141,7 +133,7 @@ class Tree {
141
133
  });
142
134
  static ɵdir = i0.ɵɵngDeclareDirective({
143
135
  minVersion: "17.1.0",
144
- version: "22.0.0-next.6",
136
+ version: "22.0.0-next.10",
145
137
  type: Tree,
146
138
  isStandalone: true,
147
139
  selector: "[ngTree]",
@@ -209,6 +201,13 @@ class Tree {
209
201
  isRequired: false,
210
202
  transformFunction: null
211
203
  },
204
+ tabIndex: {
205
+ classPropertyName: "tabIndex",
206
+ publicName: "tabindex",
207
+ isSignal: true,
208
+ isRequired: false,
209
+ transformFunction: null
210
+ },
212
211
  value: {
213
212
  classPropertyName: "value",
214
213
  publicName: "value",
@@ -249,19 +248,16 @@ class Tree {
249
248
  "attr.aria-multiselectable": "_pattern.multi()",
250
249
  "attr.aria-disabled": "_pattern.disabled()",
251
250
  "attr.aria-activedescendant": "_pattern.activeDescendant()",
252
- "tabindex": "_pattern.tabIndex()"
251
+ "tabindex": "tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()"
253
252
  }
254
253
  },
255
254
  exportAs: ["ngTree"],
256
- hostDirectives: [{
257
- directive: ComboboxPopup
258
- }],
259
255
  ngImport: i0
260
256
  });
261
257
  }
262
258
  i0.ɵɵngDeclareClassMetadata({
263
259
  minVersion: "12.0.0",
264
- version: "22.0.0-next.6",
260
+ version: "22.0.0-next.10",
265
261
  ngImport: i0,
266
262
  type: Tree,
267
263
  decorators: [{
@@ -276,12 +272,11 @@ i0.ɵɵngDeclareClassMetadata({
276
272
  '[attr.aria-multiselectable]': '_pattern.multi()',
277
273
  '[attr.aria-disabled]': '_pattern.disabled()',
278
274
  '[attr.aria-activedescendant]': '_pattern.activeDescendant()',
279
- '[tabindex]': '_pattern.tabIndex()',
275
+ '[tabindex]': 'tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()',
280
276
  '(keydown)': '_pattern.onKeydown($event)',
281
277
  '(click)': '_pattern.onClick($event)',
282
278
  '(focusin)': '_pattern.onFocusIn()'
283
- },
284
- hostDirectives: [ComboboxPopup]
279
+ }
285
280
  }]
286
281
  }],
287
282
  ctorParameters: () => [],
@@ -358,6 +353,14 @@ i0.ɵɵngDeclareClassMetadata({
358
353
  required: false
359
354
  }]
360
355
  }],
356
+ tabIndex: [{
357
+ type: i0.Input,
358
+ args: [{
359
+ isSignal: true,
360
+ alias: "tabindex",
361
+ required: false
362
+ }]
363
+ }],
361
364
  value: [{
362
365
  type: i0.Input,
363
366
  args: [{
@@ -388,6 +391,89 @@ i0.ɵɵngDeclareClassMetadata({
388
391
  }
389
392
  });
390
393
 
394
+ class TreeItemGroup {
395
+ _elementRef = inject(ElementRef);
396
+ element = this._elementRef.nativeElement;
397
+ _deferredContent = inject(DeferredContent);
398
+ _unorderedItems = signal(new Set(), ...(ngDevMode ? [{
399
+ debugName: "_unorderedItems"
400
+ }] : []));
401
+ _childPatterns = computed(() => [...this._unorderedItems()].sort(sortDirectives).map(c => c._pattern), ...(ngDevMode ? [{
402
+ debugName: "_childPatterns"
403
+ }] : []));
404
+ ownedBy = input.required(...(ngDevMode ? [{
405
+ debugName: "ownedBy"
406
+ }] : []));
407
+ ngOnInit() {
408
+ this._deferredContent.deferredContentAware.set(this.ownedBy());
409
+ this.ownedBy()._register(this);
410
+ }
411
+ ngOnDestroy() {
412
+ this.ownedBy()._unregister();
413
+ }
414
+ _register(child) {
415
+ this._unorderedItems().add(child);
416
+ this._unorderedItems.set(new Set(this._unorderedItems()));
417
+ }
418
+ _unregister(child) {
419
+ this._unorderedItems().delete(child);
420
+ this._unorderedItems.set(new Set(this._unorderedItems()));
421
+ }
422
+ static ɵfac = i0.ɵɵngDeclareFactory({
423
+ minVersion: "12.0.0",
424
+ version: "22.0.0-next.10",
425
+ ngImport: i0,
426
+ type: TreeItemGroup,
427
+ deps: [],
428
+ target: i0.ɵɵFactoryTarget.Directive
429
+ });
430
+ static ɵdir = i0.ɵɵngDeclareDirective({
431
+ minVersion: "17.1.0",
432
+ version: "22.0.0-next.10",
433
+ type: TreeItemGroup,
434
+ isStandalone: true,
435
+ selector: "ng-template[ngTreeItemGroup]",
436
+ inputs: {
437
+ ownedBy: {
438
+ classPropertyName: "ownedBy",
439
+ publicName: "ownedBy",
440
+ isSignal: true,
441
+ isRequired: true,
442
+ transformFunction: null
443
+ }
444
+ },
445
+ exportAs: ["ngTreeItemGroup"],
446
+ hostDirectives: [{
447
+ directive: DeferredContent
448
+ }],
449
+ ngImport: i0
450
+ });
451
+ }
452
+ i0.ɵɵngDeclareClassMetadata({
453
+ minVersion: "12.0.0",
454
+ version: "22.0.0-next.10",
455
+ ngImport: i0,
456
+ type: TreeItemGroup,
457
+ decorators: [{
458
+ type: Directive,
459
+ args: [{
460
+ selector: 'ng-template[ngTreeItemGroup]',
461
+ exportAs: 'ngTreeItemGroup',
462
+ hostDirectives: [DeferredContent]
463
+ }]
464
+ }],
465
+ propDecorators: {
466
+ ownedBy: [{
467
+ type: i0.Input,
468
+ args: [{
469
+ isSignal: true,
470
+ alias: "ownedBy",
471
+ required: true
472
+ }]
473
+ }]
474
+ }
475
+ });
476
+
391
477
  class TreeItem extends DeferredContentAware {
392
478
  _elementRef = inject(ElementRef);
393
479
  element = this._elementRef.nativeElement;
@@ -447,18 +533,17 @@ class TreeItem extends DeferredContentAware {
447
533
  _pattern;
448
534
  constructor() {
449
535
  super();
450
- afterNextRender(() => {
451
- if (this.tree()._pattern instanceof ComboboxTreePattern) {
452
- this.preserveContent.set(true);
536
+ afterRenderEffect({
537
+ write: () => {
538
+ this.contentVisible.set(this._pattern.expanded());
453
539
  }
454
540
  });
455
- afterRenderEffect(() => {
456
- this.tree()._pattern instanceof ComboboxTreePattern ? this.contentVisible.set(true) : this.contentVisible.set(this._pattern.expanded());
457
- });
458
541
  }
459
542
  ngOnInit() {
460
- this.parent()._register(this);
461
- this.tree()._register(this);
543
+ if (this.parent() instanceof TreeItemGroup) {
544
+ this.parent()._register(this);
545
+ }
546
+ this.tree()._collection.register(this);
462
547
  const treePattern = computed(() => this.tree()._pattern, ...(ngDevMode ? [{
463
548
  debugName: "treePattern"
464
549
  }] : []));
@@ -481,8 +566,10 @@ class TreeItem extends DeferredContentAware {
481
566
  });
482
567
  }
483
568
  ngOnDestroy() {
484
- this.parent()._unregister(this);
485
- this.tree()._unregister(this);
569
+ if (this.parent() instanceof TreeItemGroup) {
570
+ this.parent()._unregister(this);
571
+ }
572
+ this.tree()._collection.unregister(this);
486
573
  }
487
574
  _register(group) {
488
575
  this._group.set(group);
@@ -492,7 +579,7 @@ class TreeItem extends DeferredContentAware {
492
579
  }
493
580
  static ɵfac = i0.ɵɵngDeclareFactory({
494
581
  minVersion: "12.0.0",
495
- version: "22.0.0-next.6",
582
+ version: "22.0.0-next.10",
496
583
  ngImport: i0,
497
584
  type: TreeItem,
498
585
  deps: [],
@@ -500,7 +587,7 @@ class TreeItem extends DeferredContentAware {
500
587
  });
501
588
  static ɵdir = i0.ɵɵngDeclareDirective({
502
589
  minVersion: "17.1.0",
503
- version: "22.0.0-next.6",
590
+ version: "22.0.0-next.10",
504
591
  type: TreeItem,
505
592
  isStandalone: true,
506
593
  selector: "[ngTreeItem]",
@@ -582,7 +669,7 @@ class TreeItem extends DeferredContentAware {
582
669
  }
583
670
  i0.ɵɵngDeclareClassMetadata({
584
671
  minVersion: "12.0.0",
585
- version: "22.0.0-next.6",
672
+ version: "22.0.0-next.10",
586
673
  ngImport: i0,
587
674
  type: TreeItem,
588
675
  decorators: [{
@@ -669,88 +756,5 @@ i0.ɵɵngDeclareClassMetadata({
669
756
  }
670
757
  });
671
758
 
672
- class TreeItemGroup {
673
- _elementRef = inject(ElementRef);
674
- element = this._elementRef.nativeElement;
675
- _deferredContent = inject(DeferredContent);
676
- _unorderedItems = signal(new Set(), ...(ngDevMode ? [{
677
- debugName: "_unorderedItems"
678
- }] : []));
679
- _childPatterns = computed(() => [...this._unorderedItems()].sort(sortDirectives).map(c => c._pattern), ...(ngDevMode ? [{
680
- debugName: "_childPatterns"
681
- }] : []));
682
- ownedBy = input.required(...(ngDevMode ? [{
683
- debugName: "ownedBy"
684
- }] : []));
685
- ngOnInit() {
686
- this._deferredContent.deferredContentAware.set(this.ownedBy());
687
- this.ownedBy()._register(this);
688
- }
689
- ngOnDestroy() {
690
- this.ownedBy()._unregister();
691
- }
692
- _register(child) {
693
- this._unorderedItems().add(child);
694
- this._unorderedItems.set(new Set(this._unorderedItems()));
695
- }
696
- _unregister(child) {
697
- this._unorderedItems().delete(child);
698
- this._unorderedItems.set(new Set(this._unorderedItems()));
699
- }
700
- static ɵfac = i0.ɵɵngDeclareFactory({
701
- minVersion: "12.0.0",
702
- version: "22.0.0-next.6",
703
- ngImport: i0,
704
- type: TreeItemGroup,
705
- deps: [],
706
- target: i0.ɵɵFactoryTarget.Directive
707
- });
708
- static ɵdir = i0.ɵɵngDeclareDirective({
709
- minVersion: "17.1.0",
710
- version: "22.0.0-next.6",
711
- type: TreeItemGroup,
712
- isStandalone: true,
713
- selector: "ng-template[ngTreeItemGroup]",
714
- inputs: {
715
- ownedBy: {
716
- classPropertyName: "ownedBy",
717
- publicName: "ownedBy",
718
- isSignal: true,
719
- isRequired: true,
720
- transformFunction: null
721
- }
722
- },
723
- exportAs: ["ngTreeItemGroup"],
724
- hostDirectives: [{
725
- directive: DeferredContent
726
- }],
727
- ngImport: i0
728
- });
729
- }
730
- i0.ɵɵngDeclareClassMetadata({
731
- minVersion: "12.0.0",
732
- version: "22.0.0-next.6",
733
- ngImport: i0,
734
- type: TreeItemGroup,
735
- decorators: [{
736
- type: Directive,
737
- args: [{
738
- selector: 'ng-template[ngTreeItemGroup]',
739
- exportAs: 'ngTreeItemGroup',
740
- hostDirectives: [DeferredContent]
741
- }]
742
- }],
743
- propDecorators: {
744
- ownedBy: [{
745
- type: i0.Input,
746
- args: [{
747
- isSignal: true,
748
- alias: "ownedBy",
749
- required: true
750
- }]
751
- }]
752
- }
753
- });
754
-
755
- export { Tree, TreeItem, TreeItemGroup, ComboboxPopup as ɵɵComboboxPopup, DeferredContent as ɵɵDeferredContent };
759
+ export { Tree, TreeItem, TreeItemGroup, DeferredContent as ɵɵDeferredContent };
756
760
  //# sourceMappingURL=tree.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree-item.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree-item-group.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 untracked,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ComboboxTreePattern, TreeItemPattern, TreePattern, sortDirectives} from '../private';\nimport {ComboboxPopup} from '../combobox';\nimport type {TreeItem} from './tree-item';\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 * @see [Tree](guide/aria/tree)\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 '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\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 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, {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 constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: 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 (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n this._pattern.setDefaultStateEffect();\n });\n\n afterRenderEffect(() => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.treeBehavior.unfocus();\n }\n });\n\n afterRenderEffect(() => {\n if (!(this._pattern instanceof ComboboxTreePattern)) return;\n\n const items = inputs.items();\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 _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 * @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 afterNextRender,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ComboboxTreePattern, TreeItemPattern, DeferredContentAware, HasElement} from '../private';\nimport {Tree} from './tree';\nimport {TreeItemGroup} from './tree-item-group';\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 * @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 computed,\n inject,\n input,\n signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TreeItemPattern, DeferredContent, sortDirectives} from '../private';\nimport type {TreeItem} from './tree-item';\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 * @see [Tree](guide/aria/tree)\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":["Tree","_elementRef","inject","ElementRef","element","nativeElement","_popup","ComboboxPopup","optional","_unorderedItems","signal","Set","id","input","_IdGenerator","getId","orientation","multi","transform","booleanAttribute","disabled","selectionMode","focusMode","wrap","softDisabled","typeaheadDelay","value","model","textDirection","Directionality","valueSignal","nav","currentType","_pattern","constructor","inputs","items","computed","sort","sortDirectives","map","item","activeItem","undefined","combobox","ComboboxTreePattern","TreePattern","_controls","set","afterRenderEffect","ngDevMode","violations","validate","violation","console","error","setDefaultStateEffect","untracked","some","i","treeBehavior","unfocus","v","filter","_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","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"],"mappings":"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"}
1
+ {"version":3,"file":"tree.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree-item-group.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree-item.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 afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n Signal,\n untracked,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {SortedCollection, tabIndexTransform, TreeItemPattern, TreePattern} from '../private';\nimport type {TreeItem} from './tree-item';\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 * @see [Tree](guide/aria/tree)\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]': 'tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n})\nexport class Tree<V> implements 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 collection of tree items. */\n readonly _collection = new SortedCollection<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 tabindex of the tree. */\n readonly tabIndex = input(undefined, {\n alias: 'tabindex',\n transform: tabIndexTransform,\n });\n\n /** The values of the currently selected items. */\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, {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 /** The ID of the active descendant in the tree. */\n readonly activeDescendant: Signal<string | undefined>;\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: computed(() => this._collection.orderedItems().map(item => item._pattern)),\n activeItem: signal<TreeItemPattern<V> | undefined>(undefined),\n element: () => this.element,\n };\n\n this._pattern = new TreePattern<V>(inputs);\n\n this.activeDescendant = computed(() => this._pattern.activeDescendant());\n\n afterNextRender(() => {\n this._collection.startObserving(this.element);\n });\n\n // Check for any violations after the DOM has been updated.\n afterRenderEffect({\n read: () => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n },\n });\n\n // Resets default focus based on selection state until interacted.\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n\n afterRenderEffect({\n write: () => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.treeBehavior.unfocus();\n }\n },\n });\n }\n\n ngOnDestroy() {\n this._collection.stopObserving();\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n}\n","/**\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 computed,\n inject,\n input,\n signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TreeItemPattern, DeferredContent, sortDirectives} from '../private';\nimport type {TreeItem} from './tree-item';\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 * @see [Tree](guide/aria/tree)\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","/**\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} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {TreeItemPattern, DeferredContentAware, HasElement} from '../private';\nimport {Tree} from './tree';\nimport {TreeItemGroup} from './tree-item-group';\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 afterRenderEffect({\n write: () => {\n this.contentVisible.set(this._pattern.expanded());\n },\n });\n }\n\n ngOnInit() {\n if (this.parent() instanceof TreeItemGroup) {\n (this.parent() as TreeItemGroup<V>)._register(this);\n }\n this.tree()._collection.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 if (this.parent() instanceof TreeItemGroup) {\n (this.parent() as TreeItemGroup<V>)._unregister(this);\n }\n this.tree()._collection.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"],"names":["Tree","_elementRef","inject","ElementRef","element","nativeElement","_collection","SortedCollection","id","input","_IdGenerator","getId","orientation","multi","transform","booleanAttribute","disabled","selectionMode","focusMode","wrap","softDisabled","typeaheadDelay","tabIndex","undefined","ngDevMode","debugName","alias","tabIndexTransform","value","model","textDirection","Directionality","valueSignal","nav","currentType","_pattern","activeDescendant","constructor","inputs","items","computed","orderedItems","map","item","activeItem","signal","TreePattern","afterNextRender","startObserving","afterRenderEffect","read","violations","validate","violation","console","error","write","setDefaultStateEffect","untracked","some","i","treeBehavior","unfocus","ngOnDestroy","stopObserving","scrollActiveItemIntoView","options","block","scrollIntoView","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","TreeItemGroup","_deferredContent","DeferredContent","_unorderedItems","Set","_childPatterns","sort","sortDirectives","c","ownedBy","required","ngOnInit","deferredContentAware","set","_register","_unregister","child","add","delete","hostDirectives","directive","i1","TreeItem","DeferredContentAware","_group","parent","selectable","expanded","label","searchTerm","textContent","tree","active","level","selected","visible","_expanded","expandable","contentVisible","register","treePattern","parentPattern","TreeItemPattern","children","hasChildren","unregister","group","usesInheritance"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/aria",
3
- "version": "22.0.0-next.6",
3
+ "version": "22.0.0-next.8",
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": "22.0.0-next.6",
15
+ "@angular/cdk": "22.0.0-next.8",
16
16
  "@angular/core": "^22.0.0-0 || ^22.1.0-0 || ^22.2.0-0 || ^22.3.0-0 || ^23.0.0-0"
17
17
  },
18
18
  "devDependencies": {
@@ -63,10 +63,18 @@
63
63
  "types": "./types/combobox.d.ts",
64
64
  "default": "./fesm2022/combobox.mjs"
65
65
  },
66
+ "./combobox/testing": {
67
+ "types": "./types/combobox-testing.d.ts",
68
+ "default": "./fesm2022/combobox-testing.mjs"
69
+ },
66
70
  "./grid": {
67
71
  "types": "./types/grid.d.ts",
68
72
  "default": "./fesm2022/grid.mjs"
69
73
  },
74
+ "./grid/testing": {
75
+ "types": "./types/grid-testing.d.ts",
76
+ "default": "./fesm2022/grid-testing.mjs"
77
+ },
70
78
  "./listbox": {
71
79
  "types": "./types/listbox.d.ts",
72
80
  "default": "./fesm2022/listbox.mjs"
@@ -1,8 +1,8 @@
1
1
  import { KeyboardEventManager } from './_keyboard-event-manager-chunk.js';
2
2
  import { ClickEventManager } from './_click-event-manager-chunk.js';
3
3
  import { ExpansionItem, ListExpansionInputs, ListExpansion } from './_expansion-chunk.js';
4
- import { ListNavigationInputs, ListNavigationItem, ListFocusItem, ListFocusInputs, ListNavigation, ListFocus } from './_list-navigation-chunk.js';
5
- import { SignalLike, WritableSignalLike } from './_signal-like-chunk.js';
4
+ import { ListNavigationItem, ListFocusItem, ListNavigationInputs, ListFocusInputs, ListNavigation, ListFocus } from './_list-navigation-chunk.js';
5
+ import { SignalLike, WritableSignalLike } from './_collection-chunk.js';
6
6
 
7
7
  /** Inputs of the AccordionGroupPattern. */
8
8
  interface AccordionGroupInputs extends Omit<ListNavigationInputs<AccordionTriggerPattern> & ListFocusInputs<AccordionTriggerPattern> & Omit<ListExpansionInputs, 'items'>, 'focusMode'> {