{"version":3,"file":"tree.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/tree/node.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/tree/padding.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/tree/outlet.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/tree/tree.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/tree/toggle.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/tree/tree-module.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/tree/data-source/flat-data-source.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/tree/data-source/nested-data-source.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n  CDK_TREE_NODE_OUTLET_NODE,\n  CdkNestedTreeNode,\n  CdkTreeNode,\n  CdkTreeNodeDef,\n} from '@angular/cdk/tree';\nimport {\n  AfterContentInit,\n  Directive,\n  Input,\n  OnDestroy,\n  OnInit,\n  booleanAttribute,\n  numberAttribute,\n  inject,\n  HostAttributeToken,\n} from '@angular/core';\nimport {NoopTreeKeyManager, TreeKeyManagerItem, TreeKeyManagerStrategy} from '@angular/cdk/a11y';\n\n/**\n * Determinte if argument TreeKeyManager is the NoopTreeKeyManager. This function is safe to use with SSR.\n */\nfunction isNoopTreeKeyManager<T extends TreeKeyManagerItem>(\n  keyManager: TreeKeyManagerStrategy<T>,\n): keyManager is NoopTreeKeyManager<T> {\n  return !!(keyManager as NoopTreeKeyManager<T>)._isNoopTreeKeyManager;\n}\n\n/**\n * Wrapper for the CdkTree node with Material design styles.\n */\n@Directive({\n  selector: 'mat-tree-node',\n  exportAs: 'matTreeNode',\n  outputs: ['activation', 'expandedChange'],\n  providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}],\n  host: {\n    'class': 'mat-tree-node',\n    '[attr.aria-expanded]': '_getAriaExpanded()',\n    '[attr.aria-level]': 'level + 1',\n    '[attr.aria-posinset]': '_getPositionInSet()',\n    '[attr.aria-setsize]': '_getSetSize()',\n    '(click)': '_focusItem()',\n    '[tabindex]': '_getTabindexAttribute()',\n  },\n})\nexport class MatTreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\n  /**\n   * The tabindex of the tree node.\n   *\n   * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n   *   Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n   *   an unexpected state. Tabindex to be removed in a future version.\n   * @breaking-change 21.0.0 Remove this attribute.\n   */\n  @Input({\n    transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n    alias: 'tabIndex',\n  })\n  get tabIndexInputBinding(): number {\n    return this._tabIndexInputBinding;\n  }\n  set tabIndexInputBinding(value: number) {\n    // If the specified tabIndex value is null or undefined, fall back to the default value.\n    this._tabIndexInputBinding = value;\n  }\n  private _tabIndexInputBinding!: number;\n\n  /**\n   * The default tabindex of the tree node.\n   *\n   * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n   *   Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n   *   an unexpected state. Tabindex to be removed in a future version.\n   * @breaking-change 21.0.0 Remove this attribute.\n   */\n  defaultTabIndex = 0;\n\n  protected _getTabindexAttribute(): number | null {\n    if (isNoopTreeKeyManager(this._tree._keyManager)) {\n      return this.tabIndexInputBinding;\n    }\n    return this._tabindex;\n  }\n\n  /**\n   * Whether the component is disabled.\n   *\n   * @deprecated This is an alias for `isDisabled`.\n   * @breaking-change 21.0.0 Remove this input\n   */\n  @Input({transform: booleanAttribute})\n  get disabled(): boolean {\n    return this.isDisabled;\n  }\n  set disabled(value: boolean) {\n    this.isDisabled = value;\n  }\n\n  constructor() {\n    super();\n\n    const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\n    this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;\n  }\n\n  // This is a workaround for https://github.com/angular/angular/issues/23091\n  // In aot mode, the lifecycle hooks from parent class are not called.\n  override ngOnInit() {\n    super.ngOnInit();\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n  }\n}\n\n/**\n * Wrapper for the CdkTree node definition with Material design styles.\n * Captures the node's template and a when predicate that describes when this node should be used.\n */\n@Directive({\n  selector: '[matTreeNodeDef]',\n  inputs: [{name: 'when', alias: 'matTreeNodeDefWhen'}],\n  providers: [{provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef}],\n})\nexport class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {\n  @Input('matTreeNode') data!: T;\n}\n\n/**\n * Wrapper for the CdkTree nested node with Material design styles.\n */\n@Directive({\n  selector: 'mat-nested-tree-node',\n  exportAs: 'matNestedTreeNode',\n  outputs: ['activation', 'expandedChange'],\n  providers: [\n    {provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode},\n    {provide: CdkTreeNode, useExisting: MatNestedTreeNode},\n    {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode},\n  ],\n  host: {\n    'class': 'mat-nested-tree-node',\n  },\n})\nexport class MatNestedTreeNode<T, K = T>\n  extends CdkNestedTreeNode<T, K>\n  implements AfterContentInit, OnDestroy, OnInit\n{\n  @Input('matNestedTreeNode') node!: T;\n\n  /**\n   * Whether the node is disabled.\n   *\n   * @deprecated This is an alias for `isDisabled`.\n   * @breaking-change 21.0.0 Remove this input\n   */\n  @Input({transform: booleanAttribute})\n  get disabled(): boolean {\n    return this.isDisabled;\n  }\n  set disabled(value: boolean) {\n    this.isDisabled = value;\n  }\n\n  /** Tabindex of the node. */\n  @Input({\n    transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n  })\n  get tabIndex(): number {\n    return this.isDisabled ? -1 : this._tabIndex;\n  }\n  set tabIndex(value: number) {\n    // If the specified tabIndex value is null or undefined, fall back to the default value.\n    this._tabIndex = value;\n  }\n  private _tabIndex!: number;\n\n  // This is a workaround for https://github.com/angular/angular/issues/19145\n  // In aot mode, the lifecycle hooks from parent class are not called.\n  // TODO(tinayuangao): Remove when the angular issue #19145 is fixed\n  override ngOnInit() {\n    super.ngOnInit();\n  }\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\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 */\nimport {CdkTreeNodePadding} from '@angular/cdk/tree';\nimport {Directive, Input, numberAttribute} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree padding with Material design styles.\n */\n@Directive({\n  selector: '[matTreeNodePadding]',\n  providers: [{provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding}],\n})\nexport class MatTreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {\n  /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n  @Input({alias: 'matTreeNodePadding', transform: numberAttribute})\n  override get level(): number {\n    return this._level;\n  }\n  override set level(value: number) {\n    this._setLevelInput(value);\n  }\n\n  /** The indent for each level. Default number 40px from material design menu sub-menu spec. */\n  @Input('matTreeNodePaddingIndent')\n  override get indent(): number | string {\n    return this._indent;\n  }\n  override set indent(indent: number | string) {\n    this._setIndentInput(indent);\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 */\nimport {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from '@angular/cdk/tree';\nimport {Directive, ViewContainerRef, inject} from '@angular/core';\n\n/**\n * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\n@Directive({\n  selector: '[matTreeNodeOutlet]',\n  providers: [\n    {\n      provide: CdkTreeNodeOutlet,\n      useExisting: MatTreeNodeOutlet,\n    },\n  ],\n})\nexport class MatTreeNodeOutlet implements CdkTreeNodeOutlet {\n  viewContainer = inject(ViewContainerRef);\n  _node = inject(CDK_TREE_NODE_OUTLET_NODE, {optional: true});\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 {CdkTree} from '@angular/cdk/tree';\nimport {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {MatTreeNodeOutlet} from './outlet';\n\n/**\n * Wrapper for the CdkTable with Material design styles.\n */\n@Component({\n  selector: 'mat-tree',\n  exportAs: 'matTree',\n  template: `<ng-container matTreeNodeOutlet></ng-container>`,\n  host: {\n    'class': 'mat-tree',\n  },\n  styleUrl: 'tree.css',\n  encapsulation: ViewEncapsulation.None,\n  // See note on CdkTree for explanation on why this uses the default change detection strategy.\n  // tslint:disable-next-line:validate-decorators\n  changeDetection: ChangeDetectionStrategy.Eager,\n  providers: [{provide: CdkTree, useExisting: MatTree}],\n  imports: [MatTreeNodeOutlet],\n})\nexport class MatTree<T, K = T> extends CdkTree<T, K> {\n  // Outlets within the tree's template where the dataNodes will be inserted.\n  // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\n  @ViewChild(MatTreeNodeOutlet, {static: true}) override _nodeOutlet: MatTreeNodeOutlet =\n    undefined!;\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 {CdkTreeNodeToggle} from '@angular/cdk/tree';\nimport {Directive} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree's toggle with Material design styles.\n */\n@Directive({\n  selector: '[matTreeNodeToggle]',\n  providers: [{provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle}],\n  inputs: [{name: 'recursive', alias: 'matTreeNodeToggleRecursive'}],\n})\nexport class MatTreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {}\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 {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\n\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatNestedTreeNode, MatTreeNodeDef, MatTreeNode} from './node';\nimport {MatTree} from './tree';\nimport {MatTreeNodeToggle} from './toggle';\nimport {MatTreeNodeOutlet} from './outlet';\nimport {MatTreeNodePadding} from './padding';\n\nconst MAT_TREE_DIRECTIVES = [\n  MatNestedTreeNode,\n  MatTreeNodeDef,\n  MatTreeNodePadding,\n  MatTreeNodeToggle,\n  MatTree,\n  MatTreeNode,\n  MatTreeNodeOutlet,\n];\n\n@NgModule({\n  imports: [CdkTreeModule, ...MAT_TREE_DIRECTIVES],\n  exports: [BidiModule, MAT_TREE_DIRECTIVES],\n})\nexport class MatTreeModule {}\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 {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {FlatTreeControl, TreeControl} from '@angular/cdk/tree';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\n\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n *   SomeNode: {\n *     key: 'Fruits',\n *     children: [\n *       NodeOne: {\n *         key: 'Apple',\n *       },\n *       NodeTwo: {\n *        key: 'Pear',\n *      }\n *    ]\n *  }\n *  After flattener flatten the tree, the structure will become\n *  SomeNode: {\n *    key: 'Fruits',\n *    expandable: true,\n *    level: 1\n *  },\n *  NodeOne: {\n *    key: 'Apple',\n *    expandable: false,\n *    level: 2\n *  },\n *  NodeTwo: {\n *   key: 'Pear',\n *   expandable: false,\n *   level: 2\n * }\n * and the output flattened type is `F` with additional information.\n *\n * @deprecated Use MatTree#childrenAccessor and MatTreeNode#isExpandable\n * instead. To be removed in a future version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlattener<T, F, K = F> {\n  constructor(\n    public transformFunction: (node: T, level: number) => F,\n    public getLevel: (node: F) => number,\n    public isExpandable: (node: F) => boolean,\n    public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null,\n  ) {}\n\n  _flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[] {\n    const flatNode = this.transformFunction(node, level);\n    resultNodes.push(flatNode);\n\n    if (this.isExpandable(flatNode)) {\n      const childrenNodes = this.getChildren(node);\n      if (childrenNodes) {\n        if (Array.isArray(childrenNodes)) {\n          this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\n        } else {\n          childrenNodes.pipe(take(1)).subscribe(children => {\n            this._flattenChildren(children, level, resultNodes, parentMap);\n          });\n        }\n      }\n    }\n    return resultNodes;\n  }\n\n  _flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void {\n    children.forEach((child, index) => {\n      let childParentMap: boolean[] = parentMap.slice();\n      childParentMap.push(index != children.length - 1);\n      this._flattenNode(child, level + 1, resultNodes, childParentMap);\n    });\n  }\n\n  /**\n   * Flatten a list of node type T to flattened version of node F.\n   * Please note that type T may be nested, and the length of `structuredData` may be different\n   * from that of returned list `F[]`.\n   */\n  flattenNodes(structuredData: T[]): F[] {\n    let resultNodes: F[] = [];\n    structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\n    return resultNodes;\n  }\n\n  /**\n   * Expand flattened node with current expansion status.\n   * The returned list may have different length.\n   */\n  expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\n    let results: F[] = [];\n    let currentExpand: boolean[] = [];\n    currentExpand[0] = true;\n\n    nodes.forEach(node => {\n      let expand = true;\n      for (let i = 0; i <= this.getLevel(node); i++) {\n        expand = expand && currentExpand[i];\n      }\n      if (expand) {\n        results.push(node);\n      }\n      if (this.isExpandable(node)) {\n        currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\n      }\n    });\n    return results;\n  }\n}\n\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n *\n * @deprecated Use one of levelAccessor or childrenAccessor instead. To be removed in a future\n * version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\n  private readonly _flattenedData = new BehaviorSubject<F[]>([]);\n  private readonly _expandedData = new BehaviorSubject<F[]>([]);\n\n  get data() {\n    return this._data.value;\n  }\n  set data(value: T[]) {\n    this._data.next(value);\n    this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\n    this._treeControl.dataNodes = this._flattenedData.value;\n  }\n  private readonly _data = new BehaviorSubject<T[]>([]);\n\n  constructor(\n    private _treeControl: FlatTreeControl<F, K>,\n    private _treeFlattener: MatTreeFlattener<T, F, K>,\n    initialData?: T[],\n  ) {\n    super();\n\n    if (initialData) {\n      // Assign the data through the constructor to ensure that all of the logic is executed.\n      this.data = initialData;\n    }\n  }\n\n  connect(collectionViewer: CollectionViewer): Observable<F[]> {\n    return merge(\n      collectionViewer.viewChange,\n      this._treeControl.expansionModel.changed,\n      this._flattenedData,\n    ).pipe(\n      map(() => {\n        this._expandedData.next(\n          this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl),\n        );\n        return this._expandedData.value;\n      }),\n    );\n  }\n\n  disconnect() {\n    // no op\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 {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n */\nexport class MatTreeNestedDataSource<T> extends DataSource<T> {\n  /**\n   * Data for the nested tree\n   */\n  get data() {\n    return this._data.value;\n  }\n  set data(value: T[]) {\n    this._data.next(value);\n  }\n  private readonly _data = new BehaviorSubject<T[]>([]);\n\n  connect(collectionViewer: CollectionViewer): Observable<T[]> {\n    return merge(...([collectionViewer.viewChange, this._data] as Observable<unknown>[])).pipe(\n      map(() => this.data),\n    );\n  }\n\n  disconnect() {\n    // no op\n  }\n}\n"],"names":[],"mappings":"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"}