@angular/material
Version:
Angular Material
1 lines • 35.2 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 any)._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() {\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(...args: unknown[]);\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.Default,\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":["isNoopTreeKeyManager","keyManager","_isNoopTreeKeyManager","MatTreeNode","CdkTreeNode","tabIndexInputBinding","_tabIndexInputBinding","value","defaultTabIndex","_getTabindexAttribute","_tree","_keyManager","_tabindex","disabled","isDisabled","constructor","tabIndex","inject","HostAttributeToken","optional","Number","ngOnInit","ngOnDestroy","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isStandalone","selector","inputs","numberAttribute","booleanAttribute","provide","useExisting","exportAs","usesInheritance","ngImport","decorators","args","outputs","providers","host","Input","transform","alias","MatTreeNodeDef","CdkTreeNodeDef","data","when","name","MatNestedTreeNode","CdkNestedTreeNode","node","_tabIndex","ngAfterContentInit","activation","expandedChange","classAttribute","CDK_TREE_NODE_OUTLET_NODE","MatTreeNodePadding","CdkTreeNodePadding","level","_level","_setLevelInput","indent","_indent","_setIndentInput","MatTreeNodeOutlet","viewContainer","ViewContainerRef","_node","CdkTreeNodeOutlet","MatTree","CdkTree","_nodeOutlet","undefined","Component","ɵcmp","ɵɵngDeclareComponent","viewQueries","propertyName","first","predicate","descendants","static","template","changeDetection","ChangeDetectionStrategy","Default","encapsulation","ViewEncapsulation","None","imports","styles","ViewChild","MatTreeNodeToggle","CdkTreeNodeToggle","recursive","MAT_TREE_DIRECTIVES","MatTreeModule","NgModule","CdkTreeModule","exports","BidiModule","MatTreeFlattener","transformFunction","getLevel","isExpandable","getChildren","_flattenNode","resultNodes","parentMap","flatNode","push","childrenNodes","Array","isArray","_flattenChildren","pipe","take","subscribe","children","forEach","child","index","childParentMap","slice","length","flattenNodes","structuredData","expandFlattenedNodes","nodes","treeControl","results","currentExpand","expand","i","isExpanded","MatTreeFlatDataSource","DataSource","_treeControl","_treeFlattener","_flattenedData","BehaviorSubject","_expandedData","_data","next","dataNodes","initialData","connect","collectionViewer","merge","viewChange","expansionModel","changed","map","disconnect","MatTreeNestedDataSource"],"mappings":"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"}