@angular/cdk-experimental 21.0.0-next.0 → 21.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/accordion/index.d.ts +2 -0
  2. package/fesm2022/accordion.mjs +15 -12
  3. package/fesm2022/accordion.mjs.map +1 -1
  4. package/fesm2022/accordion2.mjs.map +1 -1
  5. package/fesm2022/cdk-experimental.mjs +1 -1
  6. package/fesm2022/cdk-experimental.mjs.map +1 -1
  7. package/fesm2022/column-resize.mjs +53 -53
  8. package/fesm2022/column-resize.mjs.map +1 -1
  9. package/fesm2022/combobox.mjs +10 -10
  10. package/fesm2022/combobox.mjs.map +1 -1
  11. package/fesm2022/deferred-content.mjs +6 -6
  12. package/fesm2022/deferred-content.mjs.map +1 -1
  13. package/fesm2022/expansion.mjs.map +1 -1
  14. package/fesm2022/list-navigation.mjs +1 -3
  15. package/fesm2022/list-navigation.mjs.map +1 -1
  16. package/fesm2022/list.mjs +17 -2
  17. package/fesm2022/list.mjs.map +1 -1
  18. package/fesm2022/listbox.mjs +10 -7
  19. package/fesm2022/listbox.mjs.map +1 -1
  20. package/fesm2022/option.mjs.map +1 -1
  21. package/fesm2022/polyfill.mjs.map +1 -1
  22. package/fesm2022/popover-edit.mjs +43 -43
  23. package/fesm2022/popover-edit.mjs.map +1 -1
  24. package/fesm2022/radio-group.mjs +10 -7
  25. package/fesm2022/radio-group.mjs.map +1 -1
  26. package/fesm2022/radio-group2.mjs.map +1 -1
  27. package/fesm2022/scrolling.mjs +7 -7
  28. package/fesm2022/scrolling.mjs.map +1 -1
  29. package/fesm2022/selection.mjs +19 -19
  30. package/fesm2022/selection.mjs.map +1 -1
  31. package/fesm2022/table-scroll-container.mjs +7 -7
  32. package/fesm2022/table-scroll-container.mjs.map +1 -1
  33. package/fesm2022/tabs.mjs +19 -16
  34. package/fesm2022/tabs.mjs.map +1 -1
  35. package/fesm2022/tabs2.mjs.map +1 -1
  36. package/fesm2022/toolbar.mjs +10 -7
  37. package/fesm2022/toolbar.mjs.map +1 -1
  38. package/fesm2022/toolbar2.mjs.map +1 -1
  39. package/fesm2022/tree.mjs +36 -44
  40. package/fesm2022/tree.mjs.map +1 -1
  41. package/fesm2022/ui-patterns.mjs.map +1 -1
  42. package/listbox/index.d.ts +2 -0
  43. package/package.json +2 -2
  44. package/pointer-event-manager.d.d.ts +1 -0
  45. package/radio-group/index.d.ts +2 -0
  46. package/tabs/index.d.ts +2 -0
  47. package/toolbar/index.d.ts +2 -0
  48. package/tree/index.d.ts +4 -2
package/fesm2022/tree.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { computed, signal, input, booleanAttribute, model, inject, afterRenderEffect, Directive, ElementRef } from '@angular/core';
2
+ import { computed, signal, inject, ElementRef, input, booleanAttribute, model, afterRenderEffect, Directive } 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/cdk-experimental/deferred-content';
@@ -136,22 +136,15 @@ class TreePattern {
136
136
  keydown = computed(() => {
137
137
  const manager = new KeyboardEventManager();
138
138
  const list = this.listBehavior;
139
- if (!this.followFocus()) {
140
- manager
141
- .on(this.prevKey, () => list.prev())
142
- .on(this.nextKey, () => list.next())
143
- .on('Home', () => list.first())
144
- .on('End', () => list.last())
145
- .on(this.typeaheadRegexp, e => list.search(e.key));
146
- }
147
- if (this.followFocus()) {
148
- manager
149
- .on(this.prevKey, () => list.prev({ selectOne: true }))
150
- .on(this.nextKey, () => list.next({ selectOne: true }))
151
- .on('Home', () => list.first({ selectOne: true }))
152
- .on('End', () => list.last({ selectOne: true }))
153
- .on(this.typeaheadRegexp, e => list.search(e.key, { selectOne: true }));
154
- }
139
+ manager
140
+ .on(this.prevKey, () => list.prev({ selectOne: this.followFocus() }))
141
+ .on(this.nextKey, () => list.next({ selectOne: this.followFocus() }))
142
+ .on('Home', () => list.first({ selectOne: this.followFocus() }))
143
+ .on('End', () => list.last({ selectOne: this.followFocus() }))
144
+ .on(this.typeaheadRegexp, e => list.search(e.key, { selectOne: this.followFocus() }))
145
+ .on(this.expandKey, () => this.expand({ selectOne: this.followFocus() }))
146
+ .on(this.collapseKey, () => this.collapse({ selectOne: this.followFocus() }))
147
+ .on(Modifier.Shift, '*', () => this.expandSiblings());
155
148
  if (this.inputs.multi()) {
156
149
  manager
157
150
  // TODO: Tracking the anchor by index can break if the
@@ -178,6 +171,8 @@ class TreePattern {
178
171
  manager
179
172
  .on([Modifier.Ctrl, Modifier.Meta], this.prevKey, () => list.prev())
180
173
  .on([Modifier.Ctrl, Modifier.Meta], this.nextKey, () => list.next())
174
+ .on([Modifier.Ctrl, Modifier.Meta], this.expandKey, () => this.expand())
175
+ .on([Modifier.Ctrl, Modifier.Meta], this.collapseKey, () => this.collapse())
181
176
  .on([Modifier.Ctrl, Modifier.Meta], ' ', () => list.toggle())
182
177
  .on([Modifier.Ctrl, Modifier.Meta], 'Enter', () => list.toggle())
183
178
  .on([Modifier.Ctrl, Modifier.Meta], 'Home', () => list.first())
@@ -187,10 +182,6 @@ class TreePattern {
187
182
  list.select(); // Ensure the currect item remains selected.
188
183
  });
189
184
  }
190
- manager
191
- .on(this.expandKey, () => this.expand())
192
- .on(this.collapseKey, () => this.collapse())
193
- .on(Modifier.Shift, '*', () => this.expandSiblings());
194
185
  return manager;
195
186
  });
196
187
  /** The pointerdown event manager for the tree. */
@@ -304,29 +295,27 @@ class TreePattern {
304
295
  }
305
296
  }
306
297
  /** Expands a tree item. */
307
- expand(item) {
308
- item ??= this.activeItem();
298
+ expand(opts) {
299
+ const item = this.activeItem();
309
300
  if (!item || !this.listBehavior.isFocusable(item))
310
301
  return;
311
302
  if (item.expandable() && !item.expanded()) {
312
303
  item.expansion.open();
313
304
  }
314
- else if (item.expanded() && item.children().length > 0) {
315
- const firstChild = item.children()[0];
316
- if (this.listBehavior.isFocusable(firstChild)) {
317
- this.listBehavior.goto(firstChild);
318
- }
305
+ else if (item.expanded() &&
306
+ item.children().some(item => this.listBehavior.isFocusable(item))) {
307
+ this.listBehavior.next(opts);
319
308
  }
320
309
  }
321
310
  /** Expands all sibling tree items including itself. */
322
311
  expandSiblings(item) {
323
312
  item ??= this.activeItem();
324
313
  const siblings = item?.parent()?.children();
325
- siblings?.forEach(item => this.expand(item));
314
+ siblings?.forEach(item => item.expansion.open());
326
315
  }
327
316
  /** Collapses a tree item. */
328
- collapse(item) {
329
- item ??= this.activeItem();
317
+ collapse(opts) {
318
+ const item = this.activeItem();
330
319
  if (!item || !this.listBehavior.isFocusable(item))
331
320
  return;
332
321
  if (item.expandable() && item.expanded()) {
@@ -335,7 +324,7 @@ class TreePattern {
335
324
  else if (item.parent() && item.parent() !== this) {
336
325
  const parentItem = item.parent();
337
326
  if (parentItem instanceof TreeItemPattern && this.listBehavior.isFocusable(parentItem)) {
338
- this.listBehavior.goto(parentItem);
327
+ this.listBehavior.goto(parentItem, opts);
339
328
  }
340
329
  }
341
330
  }
@@ -379,6 +368,8 @@ function sortDirectives(a, b) {
379
368
  * ```
380
369
  */
381
370
  class CdkTree {
371
+ /** A reference to the tree element. */
372
+ _elementRef = inject(ElementRef);
382
373
  /** All CdkTreeItem instances within this tree. */
383
374
  _unorderedItems = signal(new Set(), ...(ngDevMode ? [{ debugName: "_unorderedItems" }] : []));
384
375
  /** Orientation of the tree. */
@@ -410,6 +401,7 @@ class CdkTree {
410
401
  ...this,
411
402
  allItems: computed(() => [...this._unorderedItems()].sort(sortDirectives).map(item => item.pattern)),
412
403
  activeItem: signal(undefined),
404
+ element: () => this._elementRef.nativeElement,
413
405
  });
414
406
  /** Whether the tree has received focus yet. */
415
407
  _hasFocused = signal(false, ...(ngDevMode ? [{ debugName: "_hasFocused" }] : []));
@@ -431,10 +423,10 @@ class CdkTree {
431
423
  this._unorderedItems().delete(child);
432
424
  this._unorderedItems.set(new Set(this._unorderedItems()));
433
425
  }
434
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-rc.1", ngImport: i0, type: CdkTree, deps: [], target: i0.ɵɵFactoryTarget.Directive });
435
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-rc.1", type: CdkTree, isStandalone: true, selector: "[cdkTree]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, focusMode: { classPropertyName: "focusMode", publicName: "focusMode", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, skipDisabled: { classPropertyName: "skipDisabled", publicName: "skipDisabled", isSignal: true, isRequired: false, transformFunction: null }, typeaheadDelay: { classPropertyName: "typeaheadDelay", publicName: "typeaheadDelay", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, nav: { classPropertyName: "nav", publicName: "nav", isSignal: true, isRequired: false, transformFunction: null }, currentType: { classPropertyName: "currentType", publicName: "currentType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { attributes: { "role": "tree" }, listeners: { "keydown": "pattern.onKeydown($event)", "pointerdown": "pattern.onPointerdown($event)", "focusin": "onFocus()" }, properties: { "attr.aria-orientation": "pattern.orientation()", "attr.aria-multiselectable": "pattern.multi()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-activedescendant": "pattern.activedescendant()", "tabindex": "pattern.tabindex()" }, classAttribute: "cdk-tree" }, exportAs: ["cdkTree"], ngImport: i0 });
426
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTree, deps: [], target: i0.ɵɵFactoryTarget.Directive });
427
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkTree, isStandalone: true, selector: "[cdkTree]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, focusMode: { classPropertyName: "focusMode", publicName: "focusMode", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, skipDisabled: { classPropertyName: "skipDisabled", publicName: "skipDisabled", isSignal: true, isRequired: false, transformFunction: null }, typeaheadDelay: { classPropertyName: "typeaheadDelay", publicName: "typeaheadDelay", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, nav: { classPropertyName: "nav", publicName: "nav", isSignal: true, isRequired: false, transformFunction: null }, currentType: { classPropertyName: "currentType", publicName: "currentType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { attributes: { "role": "tree" }, listeners: { "keydown": "pattern.onKeydown($event)", "pointerdown": "pattern.onPointerdown($event)", "focusin": "onFocus()" }, properties: { "attr.aria-orientation": "pattern.orientation()", "attr.aria-multiselectable": "pattern.multi()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-activedescendant": "pattern.activedescendant()", "tabindex": "pattern.tabindex()" }, classAttribute: "cdk-tree" }, exportAs: ["cdkTree"], ngImport: i0 });
436
428
  }
437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-rc.1", ngImport: i0, type: CdkTree, decorators: [{
429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTree, decorators: [{
438
430
  type: Directive,
439
431
  args: [{
440
432
  selector: '[cdkTree]',
@@ -523,10 +515,10 @@ class CdkTreeItem {
523
515
  unregister() {
524
516
  this._group.set(undefined);
525
517
  }
526
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-rc.1", ngImport: i0, type: CdkTreeItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
527
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-rc.1", type: CdkTreeItem, isStandalone: true, selector: "[cdkTreeItem]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "treeitem" }, properties: { "class.cdk-active": "pattern.active()", "id": "pattern.id()", "attr.aria-expanded": "pattern.expandable() ? pattern.expanded() : null", "attr.aria-selected": "pattern.selected()", "attr.aria-current": "pattern.current()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-level": "pattern.level()", "attr.aria-owns": "ownsId()", "attr.aria-setsize": "pattern.setsize()", "attr.aria-posinset": "pattern.posinset()", "attr.tabindex": "pattern.tabindex()", "attr.inert": "pattern.visible() ? null : true" }, classAttribute: "cdk-treeitem" }, exportAs: ["cdkTreeItem"], ngImport: i0 });
518
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
519
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkTreeItem, isStandalone: true, selector: "[cdkTreeItem]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "treeitem" }, properties: { "class.cdk-active": "pattern.active()", "id": "pattern.id()", "attr.aria-expanded": "pattern.expandable() ? pattern.expanded() : null", "attr.aria-selected": "pattern.selected()", "attr.aria-current": "pattern.current()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-level": "pattern.level()", "attr.aria-owns": "ownsId()", "attr.aria-setsize": "pattern.setsize()", "attr.aria-posinset": "pattern.posinset()", "attr.tabindex": "pattern.tabindex()", "attr.inert": "pattern.visible() ? null : true" }, classAttribute: "cdk-treeitem" }, exportAs: ["cdkTreeItem"], ngImport: i0 });
528
520
  }
529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-rc.1", ngImport: i0, type: CdkTreeItem, decorators: [{
521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItem, decorators: [{
530
522
  type: Directive,
531
523
  args: [{
532
524
  selector: '[cdkTreeItem]',
@@ -589,10 +581,10 @@ class CdkTreeItemGroup {
589
581
  this._unorderedItems().delete(child);
590
582
  this._unorderedItems.set(new Set(this._unorderedItems()));
591
583
  }
592
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-rc.1", ngImport: i0, type: CdkTreeItemGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
593
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-rc.1", type: CdkTreeItemGroup, isStandalone: true, selector: "[cdkTreeItemGroup]", inputs: { ownedBy: { classPropertyName: "ownedBy", publicName: "ownedBy", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "id": "id", "attr.inert": "visible() ? null : true" }, classAttribute: "cdk-treeitem-group" }, exportAs: ["cdkTreeItemGroup"], hostDirectives: [{ directive: i1.DeferredContentAware, inputs: ["preserveContent", "preserveContent"] }], ngImport: i0 });
584
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItemGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
585
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkTreeItemGroup, isStandalone: true, selector: "[cdkTreeItemGroup]", inputs: { ownedBy: { classPropertyName: "ownedBy", publicName: "ownedBy", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "id": "id", "attr.inert": "visible() ? null : true" }, classAttribute: "cdk-treeitem-group" }, exportAs: ["cdkTreeItemGroup"], hostDirectives: [{ directive: i1.DeferredContentAware, inputs: ["preserveContent", "preserveContent"] }], ngImport: i0 });
594
586
  }
595
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-rc.1", ngImport: i0, type: CdkTreeItemGroup, decorators: [{
587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItemGroup, decorators: [{
596
588
  type: Directive,
597
589
  args: [{
598
590
  selector: '[cdkTreeItemGroup]',
@@ -616,10 +608,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-rc.1", ng
616
608
  * for a `CdkTreeItemGroup`. This content can be lazily loaded.
617
609
  */
618
610
  class CdkTreeItemGroupContent {
619
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-rc.1", ngImport: i0, type: CdkTreeItemGroupContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
620
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-rc.1", type: CdkTreeItemGroupContent, isStandalone: true, selector: "ng-template[cdkTreeItemGroupContent]", hostDirectives: [{ directive: i1.DeferredContent }], ngImport: i0 });
611
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItemGroupContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
612
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: CdkTreeItemGroupContent, isStandalone: true, selector: "ng-template[cdkTreeItemGroupContent]", hostDirectives: [{ directive: i1.DeferredContent }], ngImport: i0 });
621
613
  }
622
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-rc.1", ngImport: i0, type: CdkTreeItemGroupContent, decorators: [{
614
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItemGroupContent, decorators: [{
623
615
  type: Directive,
624
616
  args: [{
625
617
  selector: 'ng-template[cdkTreeItemGroupContent]',
@@ -1 +1 @@
1
- {"version":3,"file":"tree.mjs","sources":["../../../../../k8-fastbuild-ST-c646aa77115d/bin/src/cdk-experimental/ui-patterns/tree/tree.ts","../../../../../k8-fastbuild-ST-c646aa77115d/bin/src/cdk-experimental/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 {computed, signal} from '@angular/core';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport {List, ListInputs, ListItem} from '../behaviors/list/list';\nimport {ExpansionItem, ExpansionControl, ListExpansion} from '../behaviors/expansion/expansion';\nimport {KeyboardEventManager, PointerEventManager, Modifier} from '../behaviors/event-manager';\n\n/** Represents the required inputs for a tree item. */\nexport interface TreeItemInputs<V> extends Omit<ListItem<V>, 'index'> {\n /** The parent item. */\n parent: SignalLike<TreeItemPattern<V> | TreePattern<V>>;\n\n /** Whether this item has children. Children can be lazily loaded. */\n hasChildren: SignalLike<boolean>;\n\n /** The children items. */\n children: SignalLike<TreeItemPattern<V>[]>;\n\n /** The tree pattern this item belongs to. */\n tree: SignalLike<TreePattern<V>>;\n}\n\nexport interface TreeItemPattern<V> extends TreeItemInputs<V> {}\n/**\n * Represents an item in a Tree.\n */\nexport class TreeItemPattern<V> implements ExpansionItem {\n /** The position of this item among its siblings. */\n readonly index = computed(() => this.tree().visibleItems().indexOf(this));\n\n /** The unique identifier used by the expansion behavior. */\n readonly expansionId: SignalLike<string>;\n\n /** Controls expansion for child items. */\n readonly expansionManager: ListExpansion;\n\n /** Controls expansion for this item. */\n readonly expansion: ExpansionControl;\n\n /** Whether the item is expandable. It's expandable if children item exist. */\n readonly expandable: SignalLike<boolean>;\n\n /** The level of the current item in a tree. */\n readonly level: SignalLike<number> = computed(() => this.parent().level() + 1);\n\n /** Whether this item is currently expanded. */\n readonly expanded = computed(() => this.expansion.isExpanded());\n\n /** Whether this item is visible. */\n readonly visible = computed(() => this.parent().expanded());\n\n /** The number of items under the same parent at the same level. */\n readonly setsize = computed(() => this.parent().children().length);\n\n /** The position of this item among its siblings (1-based). */\n readonly posinset = computed(() => this.parent().children().indexOf(this) + 1);\n\n /** Whether the item is active. */\n readonly active = computed(() => this.tree().activeItem() === this);\n\n /** The tabindex of the item. */\n readonly tabindex = computed(() => this.tree().listBehavior.getItemTabindex(this));\n\n /** Whether the item is selected. */\n readonly selected = computed(() => {\n if (this.tree().nav()) {\n return undefined;\n }\n return this.tree().value().includes(this.value());\n });\n\n /** The current type of this item. */\n readonly current = computed(() => {\n if (!this.tree().nav()) {\n return undefined;\n }\n return this.tree().value().includes(this.value()) ? this.tree().currentType() : undefined;\n });\n\n constructor(readonly inputs: TreeItemInputs<V>) {\n this.id = inputs.id;\n this.value = inputs.value;\n this.element = inputs.element;\n this.disabled = inputs.disabled;\n this.searchTerm = inputs.searchTerm;\n this.expansionId = inputs.id;\n this.tree = inputs.tree;\n this.parent = inputs.parent;\n this.children = inputs.children;\n this.expandable = inputs.hasChildren;\n this.expansion = new ExpansionControl({\n ...inputs,\n expandable: this.expandable,\n expansionId: this.expansionId,\n expansionManager: this.parent().expansionManager,\n });\n this.expansionManager = new ListExpansion({\n ...inputs,\n multiExpandable: () => true,\n // TODO(ok7sai): allow pre-expanded tree items.\n expandedIds: signal([]),\n items: this.children,\n disabled: computed(() => this.tree()?.disabled() ?? false),\n });\n }\n}\n\n/** The selection operations that the tree can perform. */\ninterface SelectOptions {\n toggle?: boolean;\n selectOne?: boolean;\n selectRange?: boolean;\n anchor?: boolean;\n}\n\n/** Represents the required inputs for a tree. */\nexport interface TreeInputs<V> extends Omit<ListInputs<TreeItemPattern<V>, V>, 'items'> {\n /** All items in the tree, in document order (DFS-like, a flattened list). */\n allItems: SignalLike<TreeItemPattern<V>[]>;\n\n /** Whether the tree is in navigation mode. */\n nav: SignalLike<boolean>;\n\n /** The aria-current type. */\n currentType: SignalLike<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>;\n}\n\nexport interface TreePattern<V> extends TreeInputs<V> {}\n/** Controls the state and interactions of a tree view. */\nexport class TreePattern<V> {\n /** The list behavior for the tree. */\n readonly listBehavior: List<TreeItemPattern<V>, V>;\n\n /** Controls expansion for direct children of the tree root (top-level items). */\n readonly expansionManager: ListExpansion;\n\n /** The root level is 0. */\n readonly level = () => 0;\n\n /** The root is always expanded. */\n readonly expanded = () => true;\n\n /** The tabindex of the tree. */\n readonly tabindex = computed(() => this.listBehavior.tabindex());\n\n /** The id of the current active item. */\n readonly activedescendant = computed(() => this.listBehavior.activedescendant());\n\n /** The direct children of the root (top-level tree items). */\n readonly children = computed(() =>\n this.inputs.allItems().filter(item => item.level() === this.level() + 1),\n );\n\n /** All currently visible tree items. An item is visible if their parent is expanded. */\n readonly visibleItems = computed(() => this.inputs.allItems().filter(item => item.visible()));\n\n /** Whether the tree selection follows focus. */\n readonly followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** The key for navigating to the previous item. */\n readonly prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for navigating to the next item. */\n readonly nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The key for collapsing an item or moving to its parent. */\n readonly collapseKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for expanding an item or moving to its first child. */\n readonly expandKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n readonly dynamicSpaceKey = computed(() => (this.listBehavior.isTyping() ? '' : ' '));\n\n /** Regular expression to match characters for typeahead. */\n readonly typeaheadRegexp = /^.$/;\n\n /** The keydown event manager for the tree. */\n readonly keydown = computed(() => {\n const manager = new KeyboardEventManager();\n const list = this.listBehavior;\n\n if (!this.followFocus()) {\n manager\n .on(this.prevKey, () => list.prev())\n .on(this.nextKey, () => list.next())\n .on('Home', () => list.first())\n .on('End', () => list.last())\n .on(this.typeaheadRegexp, e => list.search(e.key));\n }\n\n if (this.followFocus()) {\n manager\n .on(this.prevKey, () => list.prev({selectOne: true}))\n .on(this.nextKey, () => list.next({selectOne: true}))\n .on('Home', () => list.first({selectOne: true}))\n .on('End', () => list.last({selectOne: true}))\n .on(this.typeaheadRegexp, e => list.search(e.key, {selectOne: true}));\n }\n\n if (this.inputs.multi()) {\n manager\n // TODO: Tracking the anchor by index can break if the\n // tree is expanded or collapsed causing the index to change.\n .on(Modifier.Any, 'Shift', () => list.anchor(this.listBehavior.activeIndex()))\n .on(Modifier.Shift, this.prevKey, () => list.prev({selectRange: true}))\n .on(Modifier.Shift, this.nextKey, () => list.next({selectRange: true}))\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'Home', () =>\n list.first({selectRange: true, anchor: false}),\n )\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'End', () =>\n list.last({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, 'Enter', () => list.updateSelection({selectRange: true, anchor: false}))\n .on(Modifier.Shift, this.dynamicSpaceKey, () =>\n list.updateSelection({selectRange: true, anchor: false}),\n );\n }\n\n if (!this.followFocus() && this.inputs.multi()) {\n manager\n .on(this.dynamicSpaceKey, () => list.toggle())\n .on('Enter', () => list.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => list.toggleAll());\n }\n\n if (!this.followFocus() && !this.inputs.multi()) {\n manager.on(this.dynamicSpaceKey, () => list.toggleOne());\n manager.on('Enter', () => list.toggleOne());\n }\n\n if (this.inputs.multi() && this.followFocus()) {\n manager\n .on([Modifier.Ctrl, Modifier.Meta], this.prevKey, () => list.prev())\n .on([Modifier.Ctrl, Modifier.Meta], this.nextKey, () => list.next())\n .on([Modifier.Ctrl, Modifier.Meta], ' ', () => list.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Enter', () => list.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Home', () => list.first())\n .on([Modifier.Ctrl, Modifier.Meta], 'End', () => list.last())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => {\n list.toggleAll();\n list.select(); // Ensure the currect item remains selected.\n });\n }\n\n manager\n .on(this.expandKey, () => this.expand())\n .on(this.collapseKey, () => this.collapse())\n .on(Modifier.Shift, '*', () => this.expandSiblings());\n\n return manager;\n });\n\n /** The pointerdown event manager for the tree. */\n pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.multi()) {\n manager.on(Modifier.Shift, e => this.goto(e, {selectRange: true}));\n }\n\n if (!this.multi() && this.followFocus()) {\n return manager.on(e => this.goto(e, {selectOne: true}));\n }\n\n if (!this.multi() && !this.followFocus()) {\n return manager.on(e => this.goto(e, {toggle: true}));\n }\n\n if (this.multi() && this.followFocus()) {\n return manager\n .on(e => this.goto(e, {selectOne: true}))\n .on(Modifier.Ctrl, e => this.goto(e, {toggle: true}));\n }\n\n if (this.multi() && !this.followFocus()) {\n return manager.on(e => this.goto(e, {toggle: true}));\n }\n\n return manager;\n });\n\n constructor(readonly inputs: TreeInputs<V>) {\n this.nav = inputs.nav;\n this.currentType = inputs.currentType;\n this.allItems = inputs.allItems;\n this.focusMode = inputs.focusMode;\n this.disabled = inputs.disabled;\n this.activeItem = inputs.activeItem;\n this.skipDisabled = inputs.skipDisabled;\n this.wrap = inputs.wrap;\n this.orientation = inputs.orientation;\n this.textDirection = inputs.textDirection;\n this.multi = computed(() => (this.nav() ? false : this.inputs.multi()));\n this.selectionMode = inputs.selectionMode;\n this.typeaheadDelay = inputs.typeaheadDelay;\n this.value = inputs.value;\n\n this.listBehavior = new List({\n ...inputs,\n items: this.visibleItems,\n multi: this.multi,\n });\n\n this.expansionManager = new ListExpansion({\n multiExpandable: () => true,\n // TODO(ok7sai): allow pre-expanded tree items.\n expandedIds: signal([]),\n items: this.children,\n disabled: this.disabled,\n });\n }\n\n /**\n * Sets the tree to it's default initial state.\n *\n * Sets the active index of the tree to the first focusable selected tree item if one exists.\n * Otherwise, sets focus to the first focusable tree item.\n */\n setDefaultState() {\n let firstItem: TreeItemPattern<V> | undefined;\n\n for (const item of this.allItems()) {\n if (!item.visible()) continue;\n if (!this.listBehavior.isFocusable(item)) continue;\n\n if (firstItem === undefined) {\n firstItem = item;\n }\n\n if (item.selected()) {\n this.activeItem.set(item);\n return;\n }\n }\n\n if (firstItem !== undefined) {\n this.activeItem.set(firstItem);\n }\n }\n\n /** Handles keydown events on the tree. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles pointerdown events on the tree. */\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /** Navigates to the given tree item in the tree. */\n goto(e: PointerEvent, opts?: SelectOptions) {\n const item = this._getItem(e);\n if (!item) return;\n\n this.listBehavior.goto(item, opts);\n this.toggleExpansion(item);\n }\n\n /** Toggles to expand or collapse a tree item. */\n toggleExpansion(item?: TreeItemPattern<V>) {\n item ??= this.activeItem();\n if (!item || !this.listBehavior.isFocusable(item)) return;\n\n if (!item.expandable()) return;\n if (item.expanded()) {\n this.collapse();\n } else {\n item.expansion.open();\n }\n }\n\n /** Expands a tree item. */\n expand(item?: TreeItemPattern<V>) {\n item ??= this.activeItem();\n if (!item || !this.listBehavior.isFocusable(item)) return;\n\n if (item.expandable() && !item.expanded()) {\n item.expansion.open();\n } else if (item.expanded() && item.children().length > 0) {\n const firstChild = item.children()[0];\n if (this.listBehavior.isFocusable(firstChild)) {\n this.listBehavior.goto(firstChild);\n }\n }\n }\n\n /** Expands all sibling tree items including itself. */\n expandSiblings(item?: TreeItemPattern<V>) {\n item ??= this.activeItem();\n const siblings = item?.parent()?.children();\n siblings?.forEach(item => this.expand(item));\n }\n\n /** Collapses a tree item. */\n collapse(item?: TreeItemPattern<V>) {\n item ??= this.activeItem();\n if (!item || !this.listBehavior.isFocusable(item)) return;\n\n if (item.expandable() && item.expanded()) {\n item.expansion.close();\n } else if (item.parent() && item.parent() !== this) {\n const parentItem = item.parent();\n if (parentItem instanceof TreeItemPattern && this.listBehavior.isFocusable(parentItem)) {\n this.listBehavior.goto(parentItem);\n }\n }\n }\n\n /** Retrieves the TreeItemPattern associated with a DOM event, if any. */\n private _getItem(event: Event): TreeItemPattern<V> | undefined {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n const element = event.target.closest('[role=\"treeitem\"]');\n return this.inputs.allItems().find(i => i.element() === element);\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 {Directionality} from '@angular/cdk/bidi';\nimport {DeferredContent, DeferredContentAware} from '@angular/cdk-experimental/deferred-content';\nimport {TreeItemPattern, TreePattern} from '../ui-patterns/tree/tree';\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 cdkTree [(value)]=\"selectedItems\" [multi]=\"true\">\n * <li cdkTreeItem [value]=\"'leaf1'\">Leaf Item 1</li>\n * <li cdkTreeItem [value]=\"'parent1'\">\n * Parent Item 1\n * <ul cdkTreeItemGroup [value]=\"'parent1'\">\n * <ng-template cdkTreeItemGroupContent>\n * <li cdkTreeItem [value]=\"'child1.1'\">Child Item 1.1</li>\n * <li cdkTreeItem [value]=\"'child1.2'\">Child Item 1.2</li>\n * </ng-template>\n * </ul>\n * </li>\n * <li cdkTreeItem [value]=\"'leaf2'\" [disabled]=\"true\">Disabled Leaf Item 2</li>\n * </ul>\n * ```\n */\n@Directive({\n selector: '[cdkTree]',\n exportAs: 'cdkTree',\n host: {\n 'class': 'cdk-tree',\n 'role': 'tree',\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})\nexport class CdkTree<V> {\n /** All CdkTreeItem instances within this tree. */\n private readonly _unorderedItems = signal(new Set<CdkTreeItem<V>>());\n\n /** Orientation of the tree. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multi-selection is allowed. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether the tree is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The selection strategy used by the tree. */\n readonly selectionMode = input<'explicit' | 'follow'>('explicit');\n\n /** The focus strategy used by the tree. */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** Whether navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** Whether to skip disabled items during navigation. */\n readonly skipDisabled = input(true, {transform: booleanAttribute});\n\n /** Typeahead delay. */\n readonly typeaheadDelay = input(0.5);\n\n /** Selected item values. */\n readonly value = model<V[]>([]);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the tree is in navigation mode. */\n readonly nav = input(false);\n\n /** The aria-current type. */\n readonly currentType = input<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>(\n 'page',\n );\n\n /** The UI pattern for the tree. */\n readonly pattern: TreePattern<V> = new TreePattern<V>({\n ...this,\n allItems: computed(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(item => item.pattern),\n ),\n activeItem: signal(undefined),\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this.pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n register(child: CdkTreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: CdkTreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n\n/**\n * A selectable and expandable Tree Item in a Tree.\n */\n@Directive({\n selector: '[cdkTreeItem]',\n exportAs: 'cdkTreeItem',\n host: {\n 'class': 'cdk-treeitem',\n '[class.cdk-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-owns]': 'ownsId()',\n '[attr.aria-setsize]': 'pattern.setsize()',\n '[attr.aria-posinset]': 'pattern.posinset()',\n '[attr.tabindex]': 'pattern.tabindex()',\n '[attr.inert]': 'pattern.visible() ? null : true',\n },\n})\nexport class CdkTreeItem<V> 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('cdk-tree-item-');\n\n /** The owned tree item group. */\n private readonly _group = signal<CdkTreeItemGroup<V> | undefined>(undefined);\n\n /** The id of the owned group. */\n readonly ownsId = computed(() => this._group()?.id);\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<CdkTree<V> | CdkTreeItemGroup<V>>();\n\n /** Whether the tree item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\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<CdkTree<V>> = computed(() => {\n if (this.parent() instanceof CdkTree) {\n return this.parent() as CdkTree<V>;\n }\n return (this.parent() as CdkTreeItemGroup<V>).ownedBy().tree();\n });\n\n /** The UI pattern for this item. */\n pattern: TreeItemPattern<V>;\n\n constructor() {\n // Updates the visibility of the owned group.\n afterRenderEffect(() => {\n this._group()?.visible.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 CdkTree) {\n return treePattern();\n }\n return (this.parent() as CdkTreeItemGroup<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(\n () =>\n this._group()\n ?.children()\n .map(item => (item as CdkTreeItem<V>).pattern) ?? [],\n ),\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: CdkTreeItemGroup<V>) {\n this._group.set(group);\n }\n\n unregister() {\n this._group.set(undefined);\n }\n}\n\n/**\n * Container that designates content as a group.\n */\n@Directive({\n selector: '[cdkTreeItemGroup]',\n exportAs: 'cdkTreeItemGroup',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'class': 'cdk-treeitem-group',\n 'role': 'group',\n '[id]': 'id',\n '[attr.inert]': 'visible() ? null : true',\n },\n})\nexport class CdkTreeItemGroup<V> implements OnInit, OnDestroy, HasElement {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** All groupable items that are descendants of the group. */\n private readonly _unorderedItems = signal(new Set<CdkTreeItem<V>>());\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** Unique ID for the group. */\n readonly id = inject(_IdGenerator).getId('cdk-tree-group-');\n\n /** Whether the group is visible. */\n readonly visible = signal(true);\n\n /** Child items within this group. */\n readonly children = computed(() => [...this._unorderedItems()].sort(sortDirectives));\n\n /** Tree item that owns the group. */\n readonly ownedBy = input.required<CdkTreeItem<V>>();\n\n constructor() {\n // Connect the group's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n ngOnInit() {\n this.ownedBy().register(this);\n }\n\n ngOnDestroy() {\n this.ownedBy().unregister();\n }\n\n register(child: CdkTreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: CdkTreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the content\n * for a `CdkTreeItemGroup`. This content can be lazily loaded.\n */\n@Directive({\n selector: 'ng-template[cdkTreeItemGroupContent]',\n hostDirectives: [DeferredContent],\n})\nexport class CdkTreeItemGroupContent {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/ui-patterns/tree/tree.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/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 {computed, signal} from '@angular/core';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport {List, ListInputs, ListItem} from '../behaviors/list/list';\nimport {ExpansionItem, ExpansionControl, ListExpansion} from '../behaviors/expansion/expansion';\nimport {KeyboardEventManager, PointerEventManager, Modifier} from '../behaviors/event-manager';\n\n/** Represents the required inputs for a tree item. */\nexport interface TreeItemInputs<V> extends Omit<ListItem<V>, 'index'> {\n /** The parent item. */\n parent: SignalLike<TreeItemPattern<V> | TreePattern<V>>;\n\n /** Whether this item has children. Children can be lazily loaded. */\n hasChildren: SignalLike<boolean>;\n\n /** The children items. */\n children: SignalLike<TreeItemPattern<V>[]>;\n\n /** The tree pattern this item belongs to. */\n tree: SignalLike<TreePattern<V>>;\n}\n\nexport interface TreeItemPattern<V> extends TreeItemInputs<V> {}\n/**\n * Represents an item in a Tree.\n */\nexport class TreeItemPattern<V> implements ExpansionItem {\n /** The position of this item among its siblings. */\n readonly index = computed(() => this.tree().visibleItems().indexOf(this));\n\n /** The unique identifier used by the expansion behavior. */\n readonly expansionId: SignalLike<string>;\n\n /** Controls expansion for child items. */\n readonly expansionManager: ListExpansion;\n\n /** Controls expansion for this item. */\n readonly expansion: ExpansionControl;\n\n /** Whether the item is expandable. It's expandable if children item exist. */\n readonly expandable: SignalLike<boolean>;\n\n /** The level of the current item in a tree. */\n readonly level: SignalLike<number> = computed(() => this.parent().level() + 1);\n\n /** Whether this item is currently expanded. */\n readonly expanded = computed(() => this.expansion.isExpanded());\n\n /** Whether this item is visible. */\n readonly visible = computed(() => this.parent().expanded());\n\n /** The number of items under the same parent at the same level. */\n readonly setsize = computed(() => this.parent().children().length);\n\n /** The position of this item among its siblings (1-based). */\n readonly posinset = computed(() => this.parent().children().indexOf(this) + 1);\n\n /** Whether the item is active. */\n readonly active = computed(() => this.tree().activeItem() === this);\n\n /** The tabindex of the item. */\n readonly tabindex = computed(() => this.tree().listBehavior.getItemTabindex(this));\n\n /** Whether the item is selected. */\n readonly selected = computed(() => {\n if (this.tree().nav()) {\n return undefined;\n }\n return this.tree().value().includes(this.value());\n });\n\n /** The current type of this item. */\n readonly current = computed(() => {\n if (!this.tree().nav()) {\n return undefined;\n }\n return this.tree().value().includes(this.value()) ? this.tree().currentType() : undefined;\n });\n\n constructor(readonly inputs: TreeItemInputs<V>) {\n this.id = inputs.id;\n this.value = inputs.value;\n this.element = inputs.element;\n this.disabled = inputs.disabled;\n this.searchTerm = inputs.searchTerm;\n this.expansionId = inputs.id;\n this.tree = inputs.tree;\n this.parent = inputs.parent;\n this.children = inputs.children;\n this.expandable = inputs.hasChildren;\n this.expansion = new ExpansionControl({\n ...inputs,\n expandable: this.expandable,\n expansionId: this.expansionId,\n expansionManager: this.parent().expansionManager,\n });\n this.expansionManager = new ListExpansion({\n ...inputs,\n multiExpandable: () => true,\n // TODO(ok7sai): allow pre-expanded tree items.\n expandedIds: signal([]),\n items: this.children,\n disabled: computed(() => this.tree()?.disabled() ?? false),\n });\n }\n}\n\n/** The selection operations that the tree can perform. */\ninterface SelectOptions {\n toggle?: boolean;\n selectOne?: boolean;\n selectRange?: boolean;\n anchor?: boolean;\n}\n\n/** Represents the required inputs for a tree. */\nexport interface TreeInputs<V> extends Omit<ListInputs<TreeItemPattern<V>, V>, 'items'> {\n /** All items in the tree, in document order (DFS-like, a flattened list). */\n allItems: SignalLike<TreeItemPattern<V>[]>;\n\n /** Whether the tree is in navigation mode. */\n nav: SignalLike<boolean>;\n\n /** The aria-current type. */\n currentType: SignalLike<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>;\n}\n\nexport interface TreePattern<V> extends TreeInputs<V> {}\n/** Controls the state and interactions of a tree view. */\nexport class TreePattern<V> {\n /** The list behavior for the tree. */\n readonly listBehavior: List<TreeItemPattern<V>, V>;\n\n /** Controls expansion for direct children of the tree root (top-level items). */\n readonly expansionManager: ListExpansion;\n\n /** The root level is 0. */\n readonly level = () => 0;\n\n /** The root is always expanded. */\n readonly expanded = () => true;\n\n /** The tabindex of the tree. */\n readonly tabindex = computed(() => this.listBehavior.tabindex());\n\n /** The id of the current active item. */\n readonly activedescendant = computed(() => this.listBehavior.activedescendant());\n\n /** The direct children of the root (top-level tree items). */\n readonly children = computed(() =>\n this.inputs.allItems().filter(item => item.level() === this.level() + 1),\n );\n\n /** All currently visible tree items. An item is visible if their parent is expanded. */\n readonly visibleItems = computed(() => this.inputs.allItems().filter(item => item.visible()));\n\n /** Whether the tree selection follows focus. */\n readonly followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** The key for navigating to the previous item. */\n readonly prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for navigating to the next item. */\n readonly nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The key for collapsing an item or moving to its parent. */\n readonly collapseKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for expanding an item or moving to its first child. */\n readonly expandKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n readonly dynamicSpaceKey = computed(() => (this.listBehavior.isTyping() ? '' : ' '));\n\n /** Regular expression to match characters for typeahead. */\n readonly typeaheadRegexp = /^.$/;\n\n /** The keydown event manager for the tree. */\n readonly keydown = computed(() => {\n const manager = new KeyboardEventManager();\n const list = this.listBehavior;\n\n manager\n .on(this.prevKey, () => list.prev({selectOne: this.followFocus()}))\n .on(this.nextKey, () => list.next({selectOne: this.followFocus()}))\n .on('Home', () => list.first({selectOne: this.followFocus()}))\n .on('End', () => list.last({selectOne: this.followFocus()}))\n .on(this.typeaheadRegexp, e => list.search(e.key, {selectOne: this.followFocus()}))\n .on(this.expandKey, () => this.expand({selectOne: this.followFocus()}))\n .on(this.collapseKey, () => this.collapse({selectOne: this.followFocus()}))\n .on(Modifier.Shift, '*', () => this.expandSiblings());\n\n if (this.inputs.multi()) {\n manager\n // TODO: Tracking the anchor by index can break if the\n // tree is expanded or collapsed causing the index to change.\n .on(Modifier.Any, 'Shift', () => list.anchor(this.listBehavior.activeIndex()))\n .on(Modifier.Shift, this.prevKey, () => list.prev({selectRange: true}))\n .on(Modifier.Shift, this.nextKey, () => list.next({selectRange: true}))\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'Home', () =>\n list.first({selectRange: true, anchor: false}),\n )\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'End', () =>\n list.last({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, 'Enter', () => list.updateSelection({selectRange: true, anchor: false}))\n .on(Modifier.Shift, this.dynamicSpaceKey, () =>\n list.updateSelection({selectRange: true, anchor: false}),\n );\n }\n\n if (!this.followFocus() && this.inputs.multi()) {\n manager\n .on(this.dynamicSpaceKey, () => list.toggle())\n .on('Enter', () => list.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => list.toggleAll());\n }\n\n if (!this.followFocus() && !this.inputs.multi()) {\n manager.on(this.dynamicSpaceKey, () => list.toggleOne());\n manager.on('Enter', () => list.toggleOne());\n }\n\n if (this.inputs.multi() && this.followFocus()) {\n manager\n .on([Modifier.Ctrl, Modifier.Meta], this.prevKey, () => list.prev())\n .on([Modifier.Ctrl, Modifier.Meta], this.nextKey, () => list.next())\n .on([Modifier.Ctrl, Modifier.Meta], this.expandKey, () => this.expand())\n .on([Modifier.Ctrl, Modifier.Meta], this.collapseKey, () => this.collapse())\n .on([Modifier.Ctrl, Modifier.Meta], ' ', () => list.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Enter', () => list.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Home', () => list.first())\n .on([Modifier.Ctrl, Modifier.Meta], 'End', () => list.last())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => {\n list.toggleAll();\n list.select(); // Ensure the currect item remains selected.\n });\n }\n\n return manager;\n });\n\n /** The pointerdown event manager for the tree. */\n pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.multi()) {\n manager.on(Modifier.Shift, e => this.goto(e, {selectRange: true}));\n }\n\n if (!this.multi() && this.followFocus()) {\n return manager.on(e => this.goto(e, {selectOne: true}));\n }\n\n if (!this.multi() && !this.followFocus()) {\n return manager.on(e => this.goto(e, {toggle: true}));\n }\n\n if (this.multi() && this.followFocus()) {\n return manager\n .on(e => this.goto(e, {selectOne: true}))\n .on(Modifier.Ctrl, e => this.goto(e, {toggle: true}));\n }\n\n if (this.multi() && !this.followFocus()) {\n return manager.on(e => this.goto(e, {toggle: true}));\n }\n\n return manager;\n });\n\n constructor(readonly inputs: TreeInputs<V>) {\n this.nav = inputs.nav;\n this.currentType = inputs.currentType;\n this.allItems = inputs.allItems;\n this.focusMode = inputs.focusMode;\n this.disabled = inputs.disabled;\n this.activeItem = inputs.activeItem;\n this.skipDisabled = inputs.skipDisabled;\n this.wrap = inputs.wrap;\n this.orientation = inputs.orientation;\n this.textDirection = inputs.textDirection;\n this.multi = computed(() => (this.nav() ? false : this.inputs.multi()));\n this.selectionMode = inputs.selectionMode;\n this.typeaheadDelay = inputs.typeaheadDelay;\n this.value = inputs.value;\n\n this.listBehavior = new List({\n ...inputs,\n items: this.visibleItems,\n multi: this.multi,\n });\n\n this.expansionManager = new ListExpansion({\n multiExpandable: () => true,\n // TODO(ok7sai): allow pre-expanded tree items.\n expandedIds: signal([]),\n items: this.children,\n disabled: this.disabled,\n });\n }\n\n /**\n * Sets the tree to it's default initial state.\n *\n * Sets the active index of the tree to the first focusable selected tree item if one exists.\n * Otherwise, sets focus to the first focusable tree item.\n */\n setDefaultState() {\n let firstItem: TreeItemPattern<V> | undefined;\n\n for (const item of this.allItems()) {\n if (!item.visible()) continue;\n if (!this.listBehavior.isFocusable(item)) continue;\n\n if (firstItem === undefined) {\n firstItem = item;\n }\n\n if (item.selected()) {\n this.activeItem.set(item);\n return;\n }\n }\n\n if (firstItem !== undefined) {\n this.activeItem.set(firstItem);\n }\n }\n\n /** Handles keydown events on the tree. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles pointerdown events on the tree. */\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /** Navigates to the given tree item in the tree. */\n goto(e: PointerEvent, opts?: SelectOptions) {\n const item = this._getItem(e);\n if (!item) return;\n\n this.listBehavior.goto(item, opts);\n this.toggleExpansion(item);\n }\n\n /** Toggles to expand or collapse a tree item. */\n toggleExpansion(item?: TreeItemPattern<V>) {\n item ??= this.activeItem();\n if (!item || !this.listBehavior.isFocusable(item)) return;\n\n if (!item.expandable()) return;\n if (item.expanded()) {\n this.collapse();\n } else {\n item.expansion.open();\n }\n }\n\n /** Expands a tree item. */\n expand(opts?: SelectOptions) {\n const item = this.activeItem();\n if (!item || !this.listBehavior.isFocusable(item)) return;\n\n if (item.expandable() && !item.expanded()) {\n item.expansion.open();\n } else if (\n item.expanded() &&\n item.children().some(item => this.listBehavior.isFocusable(item))\n ) {\n this.listBehavior.next(opts);\n }\n }\n\n /** Expands all sibling tree items including itself. */\n expandSiblings(item?: TreeItemPattern<V>) {\n item ??= this.activeItem();\n const siblings = item?.parent()?.children();\n siblings?.forEach(item => item.expansion.open());\n }\n\n /** Collapses a tree item. */\n collapse(opts?: SelectOptions) {\n const item = this.activeItem();\n if (!item || !this.listBehavior.isFocusable(item)) return;\n\n if (item.expandable() && item.expanded()) {\n item.expansion.close();\n } else if (item.parent() && item.parent() !== this) {\n const parentItem = item.parent();\n if (parentItem instanceof TreeItemPattern && this.listBehavior.isFocusable(parentItem)) {\n this.listBehavior.goto(parentItem, opts);\n }\n }\n }\n\n /** Retrieves the TreeItemPattern associated with a DOM event, if any. */\n private _getItem(event: Event): TreeItemPattern<V> | undefined {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n const element = event.target.closest('[role=\"treeitem\"]');\n return this.inputs.allItems().find(i => i.element() === element);\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 {Directionality} from '@angular/cdk/bidi';\nimport {DeferredContent, DeferredContentAware} from '@angular/cdk-experimental/deferred-content';\nimport {TreeItemPattern, TreePattern} from '../ui-patterns/tree/tree';\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 cdkTree [(value)]=\"selectedItems\" [multi]=\"true\">\n * <li cdkTreeItem [value]=\"'leaf1'\">Leaf Item 1</li>\n * <li cdkTreeItem [value]=\"'parent1'\">\n * Parent Item 1\n * <ul cdkTreeItemGroup [value]=\"'parent1'\">\n * <ng-template cdkTreeItemGroupContent>\n * <li cdkTreeItem [value]=\"'child1.1'\">Child Item 1.1</li>\n * <li cdkTreeItem [value]=\"'child1.2'\">Child Item 1.2</li>\n * </ng-template>\n * </ul>\n * </li>\n * <li cdkTreeItem [value]=\"'leaf2'\" [disabled]=\"true\">Disabled Leaf Item 2</li>\n * </ul>\n * ```\n */\n@Directive({\n selector: '[cdkTree]',\n exportAs: 'cdkTree',\n host: {\n 'class': 'cdk-tree',\n 'role': 'tree',\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})\nexport class CdkTree<V> {\n /** A reference to the tree element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** All CdkTreeItem instances within this tree. */\n private readonly _unorderedItems = signal(new Set<CdkTreeItem<V>>());\n\n /** Orientation of the tree. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multi-selection is allowed. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether the tree is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The selection strategy used by the tree. */\n readonly selectionMode = input<'explicit' | 'follow'>('explicit');\n\n /** The focus strategy used by the tree. */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** Whether navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** Whether to skip disabled items during navigation. */\n readonly skipDisabled = input(true, {transform: booleanAttribute});\n\n /** Typeahead delay. */\n readonly typeaheadDelay = input(0.5);\n\n /** Selected item values. */\n readonly value = model<V[]>([]);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the tree is in navigation mode. */\n readonly nav = input(false);\n\n /** The aria-current type. */\n readonly currentType = input<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>(\n 'page',\n );\n\n /** The UI pattern for the tree. */\n readonly pattern: TreePattern<V> = new TreePattern<V>({\n ...this,\n allItems: computed(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(item => item.pattern),\n ),\n activeItem: signal(undefined),\n element: () => this._elementRef.nativeElement,\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this.pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n register(child: CdkTreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: CdkTreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n\n/**\n * A selectable and expandable Tree Item in a Tree.\n */\n@Directive({\n selector: '[cdkTreeItem]',\n exportAs: 'cdkTreeItem',\n host: {\n 'class': 'cdk-treeitem',\n '[class.cdk-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-owns]': 'ownsId()',\n '[attr.aria-setsize]': 'pattern.setsize()',\n '[attr.aria-posinset]': 'pattern.posinset()',\n '[attr.tabindex]': 'pattern.tabindex()',\n '[attr.inert]': 'pattern.visible() ? null : true',\n },\n})\nexport class CdkTreeItem<V> 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('cdk-tree-item-');\n\n /** The owned tree item group. */\n private readonly _group = signal<CdkTreeItemGroup<V> | undefined>(undefined);\n\n /** The id of the owned group. */\n readonly ownsId = computed(() => this._group()?.id);\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<CdkTree<V> | CdkTreeItemGroup<V>>();\n\n /** Whether the tree item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\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<CdkTree<V>> = computed(() => {\n if (this.parent() instanceof CdkTree) {\n return this.parent() as CdkTree<V>;\n }\n return (this.parent() as CdkTreeItemGroup<V>).ownedBy().tree();\n });\n\n /** The UI pattern for this item. */\n pattern: TreeItemPattern<V>;\n\n constructor() {\n // Updates the visibility of the owned group.\n afterRenderEffect(() => {\n this._group()?.visible.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 CdkTree) {\n return treePattern();\n }\n return (this.parent() as CdkTreeItemGroup<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(\n () =>\n this._group()\n ?.children()\n .map(item => (item as CdkTreeItem<V>).pattern) ?? [],\n ),\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: CdkTreeItemGroup<V>) {\n this._group.set(group);\n }\n\n unregister() {\n this._group.set(undefined);\n }\n}\n\n/**\n * Container that designates content as a group.\n */\n@Directive({\n selector: '[cdkTreeItemGroup]',\n exportAs: 'cdkTreeItemGroup',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'class': 'cdk-treeitem-group',\n 'role': 'group',\n '[id]': 'id',\n '[attr.inert]': 'visible() ? null : true',\n },\n})\nexport class CdkTreeItemGroup<V> implements OnInit, OnDestroy, HasElement {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** All groupable items that are descendants of the group. */\n private readonly _unorderedItems = signal(new Set<CdkTreeItem<V>>());\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** Unique ID for the group. */\n readonly id = inject(_IdGenerator).getId('cdk-tree-group-');\n\n /** Whether the group is visible. */\n readonly visible = signal(true);\n\n /** Child items within this group. */\n readonly children = computed(() => [...this._unorderedItems()].sort(sortDirectives));\n\n /** Tree item that owns the group. */\n readonly ownedBy = input.required<CdkTreeItem<V>>();\n\n constructor() {\n // Connect the group's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n ngOnInit() {\n this.ownedBy().register(this);\n }\n\n ngOnDestroy() {\n this.ownedBy().unregister();\n }\n\n register(child: CdkTreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: CdkTreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the content\n * for a `CdkTreeItemGroup`. This content can be lazily loaded.\n */\n@Directive({\n selector: 'ng-template[cdkTreeItemGroupContent]',\n hostDirectives: [DeferredContent],\n})\nexport class CdkTreeItemGroupContent {}\n"],"names":[],"mappings":";;;;;;;;;;AA8BA;;AAEG;MACU,eAAe,CAAA;AAqDL,IAAA,MAAA;;AAnDZ,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;AAGhE,IAAA,WAAW;;AAGX,IAAA,gBAAgB;;AAGhB,IAAA,SAAS;;AAGT,IAAA,UAAU;;AAGV,IAAA,KAAK,GAAuB,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;;AAGrE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;;AAGtD,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;;AAGlD,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;;IAGzD,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;AAGrE,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC;;AAG1D,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;;AAGzE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;AACrB,YAAA,OAAO,SAAS;;AAElB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACnD,KAAC,CAAC;;AAGO,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;AACtB,YAAA,OAAO,SAAS;;AAElB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,SAAS;AAC3F,KAAC,CAAC;AAEF,IAAA,WAAA,CAAqB,MAAyB,EAAA;QAAzB,IAAM,CAAA,MAAA,GAAN,MAAM;AACzB,QAAA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;AACnC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAA,GAAG,MAAM;YACT,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,YAAA,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,gBAAgB;AACjD,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,aAAa,CAAC;AACxC,YAAA,GAAG,MAAM;AACT,YAAA,eAAe,EAAE,MAAM,IAAI;;AAE3B,YAAA,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,QAAQ;AACpB,YAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC;AAC3D,SAAA,CAAC;;AAEL;AAuBD;MACa,WAAW,CAAA;AAkKD,IAAA,MAAA;;AAhKZ,IAAA,YAAY;;AAGZ,IAAA,gBAAgB;;AAGhB,IAAA,KAAK,GAAG,MAAM,CAAC;;AAGf,IAAA,QAAQ,GAAG,MAAM,IAAI;;AAGrB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;;AAGvD,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;;AAGvE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CACzE;;IAGQ,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;;AAGpF,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,QAAQ,CAAC;;AAGtE,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AAC5C,YAAA,OAAO,SAAS;;AAElB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,KAAK,GAAG,YAAY,GAAG,WAAW;AAC3E,KAAC,CAAC;;AAGO,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AAC5C,YAAA,OAAO,WAAW;;AAEpB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,KAAK,GAAG,WAAW,GAAG,YAAY;AAC3E,KAAC,CAAC;;AAGO,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE;AAC9C,YAAA,OAAO,SAAS;;AAElB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,KAAK,GAAG,YAAY,GAAG,WAAW;AAC3E,KAAC,CAAC;;AAGO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;QACjC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE;AAC9C,YAAA,OAAO,WAAW;;AAEpB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,KAAK,GAAG,WAAW,GAAG,YAAY;AAC3E,KAAC,CAAC;;IAGO,eAAe,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;;IAG3E,eAAe,GAAG,KAAK;;AAGvB,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC/B,QAAA,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY;QAE9B;aACG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAC,CAAC;aACjE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAC,CAAC;AACjE,aAAA,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAC,CAAC;AAC5D,aAAA,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAC,CAAC;aAC1D,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAC,CAAC;aACjF,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAC,CAAC;aACrE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAC,CAAC;AACzE,aAAA,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAEvD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;YACvB;;;iBAGG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;iBAC5E,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;iBACrE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;AACrE,iBAAA,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAC5E,IAAI,CAAC,KAAK,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;AAE/C,iBAAA,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAC3E,IAAI,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;iBAE9C,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;iBAC1F,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,MACxC,IAAI,CAAC,eAAe,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CACzD;;AAGL,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;YAC9C;AACG,iBAAA,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;iBAC5C,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;iBAC/B,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;;AAGpE,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;AAC/C,YAAA,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACxD,YAAA,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;;AAG7C,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YAC7C;iBACG,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE;iBAClE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE;iBAClE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;iBACtE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE;iBAC1E,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;iBAC3D,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;iBAC/D,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;iBAC7D,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE;AAC3D,iBAAA,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAK;gBAC5C,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,aAAC,CAAC;;AAGN,QAAA,OAAO,OAAO;AAChB,KAAC,CAAC;;AAGF,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE;AAEzC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YAChB,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;;QAGpE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACvC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;;AAGzD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACxC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;;QAGtD,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtC,YAAA,OAAO;AACJ,iBAAA,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;iBACvC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;;QAGzD,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;;AAGtD,QAAA,OAAO,OAAO;AAChB,KAAC,CAAC;AAEF,IAAA,WAAA,CAAqB,MAAqB,EAAA;QAArB,IAAM,CAAA,MAAA,GAAN,MAAM;AACzB,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;AACvC,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;AACrC,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;AACzC,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;AACzC,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AAEzB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC;AAC3B,YAAA,GAAG,MAAM;YACT,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,aAAa,CAAC;AACxC,YAAA,eAAe,EAAE,MAAM,IAAI;;AAE3B,YAAA,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,QAAQ;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,SAAA,CAAC;;AAGJ;;;;;AAKG;IACH,eAAe,GAAA;AACb,QAAA,IAAI,SAAyC;QAE7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAE;YACrB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;gBAAE;AAE1C,YAAA,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,SAAS,GAAG,IAAI;;AAGlB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB;;;AAIJ,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;;;;AAKlC,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;;;;AAKhC,IAAA,aAAa,CAAC,KAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;;;;IAKpC,IAAI,CAAC,CAAe,EAAE,IAAoB,EAAA;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI;YAAE;QAEX,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;;AAI5B,IAAA,eAAe,CAAC,IAAyB,EAAA;AACvC,QAAA,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE;QAC1B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE;AAEnD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE;AACxB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,QAAQ,EAAE;;aACV;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;;;;AAKzB,IAAA,MAAM,CAAC,IAAoB,EAAA;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;QAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE;QAEnD,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;;aAChB,IACL,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EACjE;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;;;AAKhC,IAAA,cAAc,CAAC,IAAyB,EAAA;AACtC,QAAA,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE;QAC1B,MAAM,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE;AAC3C,QAAA,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;;;AAIlD,IAAA,QAAQ,CAAC,IAAoB,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;QAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE;QAEnD,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;;AACjB,aAAA,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;AAClD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE;AAChC,YAAA,IAAI,UAAU,YAAY,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;gBACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;;;;;AAMtC,IAAA,QAAQ,CAAC,KAAY,EAAA;QAC3B,IAAI,EAAE,KAAK,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE;YAC1C;;QAEF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC;;AAEnE;;ACvZD;;AAEG;AACH,SAAS,cAAc,CAAC,CAAa,EAAE,CAAa,EAAA;AAClD,IAAA,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,2BAA2B,IAAI;AAC7F,UAAE;UACA,CAAC,CAAC;AACR;AAEA;;;;;;;;;;;;;;;;;;;;AAoBG;MAiBU,OAAO,CAAA;;AAED,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;AAGhC,IAAA,eAAe,GAAG,MAAM,CAAC,IAAI,GAAG,EAAkB,2DAAC;;AAG3D,IAAA,WAAW,GAAG,KAAK,CAA4B,UAAU,uDAAC;;AAG1D,IAAA,KAAK,GAAG,KAAK,CAAC,KAAK,yCAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;;AAGnD,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,4CAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;;AAGtD,IAAA,aAAa,GAAG,KAAK,CAAwB,UAAU,yDAAC;;AAGxD,IAAA,SAAS,GAAG,KAAK,CAAgC,QAAQ,qDAAC;;AAG1D,IAAA,IAAI,GAAG,KAAK,CAAC,IAAI,wCAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;;AAGjD,IAAA,YAAY,GAAG,KAAK,CAAC,IAAI,gDAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;;AAGzD,IAAA,cAAc,GAAG,KAAK,CAAC,GAAG,0DAAC;;AAG3B,IAAA,KAAK,GAAG,KAAK,CAAM,EAAE,iDAAC;;AAGtB,IAAA,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW;;AAGlD,IAAA,GAAG,GAAG,KAAK,CAAC,KAAK,+CAAC;;AAGlB,IAAA,WAAW,GAAG,KAAK,CAC1B,MAAM,uDACP;;IAGQ,OAAO,GAAmB,IAAI,WAAW,CAAI;AACpD,QAAA,GAAG,IAAI;AACP,QAAA,QAAQ,EAAE,QAAQ,CAAC,MACjB,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAC3E;AACD,QAAA,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;QAC7B,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa;AAC9C,KAAA,CAAC;;AAGM,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,uDAAC;AAEnC,IAAA,WAAA,GAAA;QACE,iBAAiB,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACvB,gBAAA,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;;AAElC,SAAC,CAAC;;IAGJ,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;;AAG5B,IAAA,QAAQ,CAAC,KAAqB,EAAA;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;;AAG3D,IAAA,UAAU,CAAC,KAAqB,EAAA;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;;8GA7EhD,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,2BAAA,EAAA,aAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAhBnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,UAAU;AACnB,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,yBAAyB,EAAE,uBAAuB;AAClD,wBAAA,6BAA6B,EAAE,iBAAiB;AAChD,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,8BAA8B,EAAE,4BAA4B;AAC5D,wBAAA,YAAY,EAAE,oBAAoB;AAClC,wBAAA,WAAW,EAAE,2BAA2B;AACxC,wBAAA,eAAe,EAAE,+BAA+B;AAChD,wBAAA,WAAW,EAAE,WAAW;AACzB,qBAAA;AACF,iBAAA;;AAkFD;;AAEG;MAqBU,WAAW,CAAA;;AAEL,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;IAGhC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;;AAGlD,IAAA,MAAM,GAAG,MAAM,CAAkC,SAAS,kDAAC;;AAGnE,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,kDAAC;;AAG1C,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;AAGxD,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAK;;AAG3B,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,iDAAoC;;AAG3D,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,4CAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;;IAGtD,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;;AAGvB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,sDAAC;;AAGvE,IAAA,IAAI,GAAuB,QAAQ,CAAC,MAAK;AAChD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,YAAY,OAAO,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC,MAAM,EAAgB;;QAEpC,OAAQ,IAAI,CAAC,MAAM,EAA0B,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;AAChE,KAAC,gDAAC;;AAGF,IAAA,OAAO;AAEP,IAAA,WAAA,GAAA;;QAEE,iBAAiB,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrD,SAAC,CAAC;;IAGJ,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;AAE1B,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,uDAAC;AACvD,QAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAK;AAClC,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,YAAY,OAAO,EAAE;gBACpC,OAAO,WAAW,EAAE;;YAEtB,OAAQ,IAAI,CAAC,MAAM,EAA0B,CAAC,OAAO,EAAE,CAAC,OAAO;AACjE,SAAC,yDAAC;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAI;AACpC,YAAA,GAAG,IAAI;AACP,YAAA,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG;AAClB,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,QAAQ,CAChB,MACE,IAAI,CAAC,MAAM;AACT,kBAAE,QAAQ;iBACT,GAAG,CAAC,IAAI,IAAK,IAAuB,CAAC,OAAO,CAAC,IAAI,EAAE,CACzD;AACD,YAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7C,SAAA,CAAC;;IAGJ,WAAW,GAAA;QACT,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;;AAG9B,IAAA,QAAQ,CAAC,KAA0B,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;;IAGxB,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;;8GArFjB,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,kDAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,iCAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBApBvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,cAAc;AACvB,wBAAA,oBAAoB,EAAE,kBAAkB;AACxC,wBAAA,MAAM,EAAE,UAAU;AAClB,wBAAA,MAAM,EAAE,cAAc;AACtB,wBAAA,sBAAsB,EAAE,kDAAkD;AAC1E,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,mBAAmB,EAAE,iBAAiB;AACtC,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,iBAAiB,EAAE,oBAAoB;AACvC,wBAAA,cAAc,EAAE,iCAAiC;AAClD,qBAAA;AACF,iBAAA;;AA0FD;;AAEG;MAiBU,gBAAgB,CAAA;;AAEV,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;AAGhC,IAAA,qBAAqB,GAAG,MAAM,CAAC,oBAAoB,CAAC;;AAGpD,IAAA,eAAe,GAAG,MAAM,CAAC,IAAI,GAAG,EAAkB,2DAAC;;AAG3D,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;IAGxD,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;;AAGlD,IAAA,OAAO,GAAG,MAAM,CAAC,IAAI,mDAAC;;AAGtB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,oDAAC;;AAG3E,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,kDAAkB;AAEnD,IAAA,WAAA,GAAA;;QAEE,iBAAiB,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/D,SAAC,CAAC;;IAGJ,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;;IAG/B,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;;AAG7B,IAAA,QAAQ,CAAC,KAAqB,EAAA;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;;AAG3D,IAAA,UAAU,CAAC,KAAqB,EAAA;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;;8GA/ChD,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAhB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,oBAAoB;4BAC/B,MAAM,EAAE,CAAC,iBAAiB,CAAC;AAC5B,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,oBAAoB;AAC7B,wBAAA,MAAM,EAAE,OAAO;AACf,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,cAAc,EAAE,yBAAyB;AAC1C,qBAAA;AACF,iBAAA;;AAoDD;;;AAGG;MAKU,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sCAAsC;oBAChD,cAAc,EAAE,CAAC,eAAe,CAAC;AAClC,iBAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui-patterns.mjs","sources":["../../../../../k8-fastbuild-ST-c646aa77115d/bin/src/cdk-experimental/ui-patterns/behaviors/signal-like/signal-like.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\nexport type SignalLike<T> = () => T;\n\nexport interface WritableSignalLike<T> extends SignalLike<T> {\n set(value: T): void;\n update(updateFn: (value: T) => T): void;\n}\n\n/** Converts a getter setter style signal to a WritableSignalLike. */\nexport function convertGetterSetterToWritableSignalLike<T>(\n getter: () => T,\n setter: (v: T) => void,\n): WritableSignalLike<T> {\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: setter,\n update: (updateCallback: (v: T) => T) => setter(updateCallback(getter())),\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;AAeA;AACgB,SAAA,uCAAuC,CACrD,MAAe,EACf,MAAsB,EAAA;;AAGtB,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,MAAM,EAAE,CAAC,cAA2B,KAAK,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E,KAAA,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"ui-patterns.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/ui-patterns/behaviors/signal-like/signal-like.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\nexport type SignalLike<T> = () => T;\n\nexport interface WritableSignalLike<T> extends SignalLike<T> {\n set(value: T): void;\n update(updateFn: (value: T) => T): void;\n}\n\n/** Converts a getter setter style signal to a WritableSignalLike. */\nexport function convertGetterSetterToWritableSignalLike<T>(\n getter: () => T,\n setter: (v: T) => void,\n): WritableSignalLike<T> {\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: setter,\n update: (updateCallback: (v: T) => T) => setter(updateCallback(getter())),\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;AAeA;AACgB,SAAA,uCAAuC,CACrD,MAAe,EACf,MAAsB,EAAA;;AAGtB,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,MAAM,EAAE,CAAC,cAA2B,KAAK,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E,KAAA,CAAC;AACJ;;;;"}
@@ -19,6 +19,8 @@ import '../list.d.js';
19
19
  * ```
20
20
  */
21
21
  declare class CdkListbox<V> {
22
+ /** A reference to the listbox element. */
23
+ private readonly _elementRef;
22
24
  /** The directionality (LTR / RTL) context for the application (or a subtree of it). */
23
25
  private readonly _directionality;
24
26
  /** The CdkOptions nested inside of the CdkListbox. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/cdk-experimental",
3
- "version": "21.0.0-next.0",
3
+ "version": "21.0.0-next.2",
4
4
  "description": "Experimental components for Angular CDK",
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-next.0",
15
+ "@angular/cdk": "21.0.0-next.2",
16
16
  "@angular/core": "^21.0.0-0 || ^21.1.0-0 || ^21.2.0-0 || ^21.3.0-0 || ^22.0.0-0"
17
17
  },
18
18
  "devDependencies": {
@@ -31,6 +31,7 @@ interface ListFocusInputs<T extends ListFocusItem> {
31
31
  activeItem: WritableSignalLike<T | undefined>;
32
32
  /** Whether disabled items in the list should be skipped when navigating. */
33
33
  skipDisabled: SignalLike<boolean>;
34
+ element: SignalLike<HTMLElement | undefined>;
34
35
  }
35
36
  /** Controls focus for a list of items. */
36
37
  declare class ListFocus<T extends ListFocusItem> {
@@ -23,6 +23,8 @@ import '../list.d.js';
23
23
  * ```
24
24
  */
25
25
  declare class CdkRadioGroup<V> {
26
+ /** A reference to the radio group element. */
27
+ private readonly _elementRef;
26
28
  /** The CdkRadioButtons nested inside of the CdkRadioGroup. */
27
29
  private readonly _cdkRadioButtons;
28
30
  /** A signal wrapper for directionality. */
package/tabs/index.d.ts CHANGED
@@ -55,6 +55,8 @@ declare class CdkTabs {
55
55
  * Controls a list of CdkTab(s).
56
56
  */
57
57
  declare class CdkTabList implements OnInit, OnDestroy {
58
+ /** A reference to the tab list element. */
59
+ private readonly _elementRef;
58
60
  /** The parent CdkTabs. */
59
61
  private readonly _cdkTabs;
60
62
  /** The CdkTabs nested inside of the CdkTabList. */
@@ -32,6 +32,8 @@ interface CdkRadioButtonInterface<V> {
32
32
  * ```
33
33
  */
34
34
  declare class CdkToolbar<V> {
35
+ /** A reference to the toolbar element. */
36
+ private readonly _elementRef;
35
37
  /** The CdkTabList nested inside of the container. */
36
38
  private readonly _cdkWidgets;
37
39
  /** A signal wrapper for directionality. */
package/tree/index.d.ts CHANGED
@@ -126,11 +126,11 @@ declare class TreePattern<V> {
126
126
  /** Toggles to expand or collapse a tree item. */
127
127
  toggleExpansion(item?: TreeItemPattern<V>): void;
128
128
  /** Expands a tree item. */
129
- expand(item?: TreeItemPattern<V>): void;
129
+ expand(opts?: SelectOptions): void;
130
130
  /** Expands all sibling tree items including itself. */
131
131
  expandSiblings(item?: TreeItemPattern<V>): void;
132
132
  /** Collapses a tree item. */
133
- collapse(item?: TreeItemPattern<V>): void;
133
+ collapse(opts?: SelectOptions): void;
134
134
  /** Retrieves the TreeItemPattern associated with a DOM event, if any. */
135
135
  private _getItem;
136
136
  }
@@ -160,6 +160,8 @@ interface HasElement {
160
160
  * ```
161
161
  */
162
162
  declare class CdkTree<V> {
163
+ /** A reference to the tree element. */
164
+ private readonly _elementRef;
163
165
  /** All CdkTreeItem instances within this tree. */
164
166
  private readonly _unorderedItems;
165
167
  /** Orientation of the tree. */