@angular/material
Version:
Angular Material
1 lines • 32 kB
Source Map (JSON)
{"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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"}