index.d.ts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. import { _AbstractConstructor } from '@angular/material/core';
  2. import { AfterContentInit } from '@angular/core';
  3. import { BooleanInput } from '@angular/cdk/coercion';
  4. import { CanDisable } from '@angular/material/core';
  5. import { CdkNestedTreeNode } from '@angular/cdk/tree';
  6. import { CdkTree } from '@angular/cdk/tree';
  7. import { CdkTreeNode } from '@angular/cdk/tree';
  8. import { CdkTreeNodeDef } from '@angular/cdk/tree';
  9. import { CdkTreeNodeOutlet } from '@angular/cdk/tree';
  10. import { CdkTreeNodePadding } from '@angular/cdk/tree';
  11. import { CdkTreeNodeToggle } from '@angular/cdk/tree';
  12. import { CollectionViewer } from '@angular/cdk/collections';
  13. import { _Constructor } from '@angular/material/core';
  14. import { DataSource } from '@angular/cdk/collections';
  15. import { ElementRef } from '@angular/core';
  16. import { FlatTreeControl } from '@angular/cdk/tree';
  17. import { HasTabIndex } from '@angular/material/core';
  18. import * as i0 from '@angular/core';
  19. import * as i6 from '@angular/cdk/tree';
  20. import * as i7 from '@angular/material/core';
  21. import { IterableDiffers } from '@angular/core';
  22. import { NumberInput } from '@angular/cdk/coercion';
  23. import { Observable } from 'rxjs';
  24. import { OnDestroy } from '@angular/core';
  25. import { OnInit } from '@angular/core';
  26. import { TreeControl } from '@angular/cdk/tree';
  27. import { ViewContainerRef } from '@angular/core';
  28. declare namespace i1 {
  29. export {
  30. MatTreeNode,
  31. MatTreeNodeDef,
  32. MatNestedTreeNode
  33. }
  34. }
  35. declare namespace i2 {
  36. export {
  37. MatTreeNodePadding
  38. }
  39. }
  40. declare namespace i3 {
  41. export {
  42. MatTreeNodeToggle
  43. }
  44. }
  45. declare namespace i4 {
  46. export {
  47. MatTree
  48. }
  49. }
  50. declare namespace i5 {
  51. export {
  52. MatTreeNodeOutlet
  53. }
  54. }
  55. /**
  56. * Wrapper for the CdkTree nested node with Material design styles.
  57. */
  58. export declare class MatNestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implements AfterContentInit, OnDestroy, OnInit {
  59. node: T;
  60. /** Whether the node is disabled. */
  61. get disabled(): boolean;
  62. set disabled(value: BooleanInput);
  63. private _disabled;
  64. /** Tabindex for the node. */
  65. get tabIndex(): number;
  66. set tabIndex(value: number);
  67. private _tabIndex;
  68. constructor(elementRef: ElementRef<HTMLElement>, tree: CdkTree<T, K>, differs: IterableDiffers, tabIndex: string);
  69. ngOnInit(): void;
  70. ngAfterContentInit(): void;
  71. ngOnDestroy(): void;
  72. static ɵfac: i0.ɵɵFactoryDeclaration<MatNestedTreeNode<any, any>, [null, null, null, { attribute: "tabindex"; }]>;
  73. static ɵdir: i0.ɵɵDirectiveDeclaration<MatNestedTreeNode<any, any>, "mat-nested-tree-node", ["matNestedTreeNode"], { "role": { "alias": "role"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "node": { "alias": "matNestedTreeNode"; "required": false; }; }, {}, never, never, false, never>;
  74. }
  75. /**
  76. * Wrapper for the CdkTable with Material design styles.
  77. */
  78. export declare class MatTree<T, K = T> extends CdkTree<T, K> {
  79. _nodeOutlet: MatTreeNodeOutlet;
  80. static ɵfac: i0.ɵɵFactoryDeclaration<MatTree<any, any>, never>;
  81. static ɵcmp: i0.ɵɵComponentDeclaration<MatTree<any, any>, "mat-tree", ["matTree"], {}, {}, never, never, false, never>;
  82. }
  83. /**
  84. * Data source for flat tree.
  85. * The data source need to handle expansion/collapsion of the tree node and change the data feed
  86. * to `MatTree`.
  87. * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted
  88. * to type `F` for `MatTree` to consume.
  89. */
  90. export declare class MatTreeFlatDataSource<T, F, K = F> extends DataSource<F> {
  91. private _treeControl;
  92. private _treeFlattener;
  93. private readonly _flattenedData;
  94. private readonly _expandedData;
  95. get data(): T[];
  96. set data(value: T[]);
  97. private readonly _data;
  98. constructor(_treeControl: FlatTreeControl<F, K>, _treeFlattener: MatTreeFlattener<T, F, K>, initialData?: T[]);
  99. connect(collectionViewer: CollectionViewer): Observable<F[]>;
  100. disconnect(): void;
  101. }
  102. /**
  103. * Tree flattener to convert a normal type of node to node with children & level information.
  104. * Transform nested nodes of type `T` to flattened nodes of type `F`.
  105. *
  106. * For example, the input data of type `T` is nested, and contains its children data:
  107. * SomeNode: {
  108. * key: 'Fruits',
  109. * children: [
  110. * NodeOne: {
  111. * key: 'Apple',
  112. * },
  113. * NodeTwo: {
  114. * key: 'Pear',
  115. * }
  116. * ]
  117. * }
  118. * After flattener flatten the tree, the structure will become
  119. * SomeNode: {
  120. * key: 'Fruits',
  121. * expandable: true,
  122. * level: 1
  123. * },
  124. * NodeOne: {
  125. * key: 'Apple',
  126. * expandable: false,
  127. * level: 2
  128. * },
  129. * NodeTwo: {
  130. * key: 'Pear',
  131. * expandable: false,
  132. * level: 2
  133. * }
  134. * and the output flattened type is `F` with additional information.
  135. */
  136. export declare class MatTreeFlattener<T, F, K = F> {
  137. transformFunction: (node: T, level: number) => F;
  138. getLevel: (node: F) => number;
  139. isExpandable: (node: F) => boolean;
  140. getChildren: (node: T) => Observable<T[]> | T[] | undefined | null;
  141. constructor(transformFunction: (node: T, level: number) => F, getLevel: (node: F) => number, isExpandable: (node: F) => boolean, getChildren: (node: T) => Observable<T[]> | T[] | undefined | null);
  142. _flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[];
  143. _flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void;
  144. /**
  145. * Flatten a list of node type T to flattened version of node F.
  146. * Please note that type T may be nested, and the length of `structuredData` may be different
  147. * from that of returned list `F[]`.
  148. */
  149. flattenNodes(structuredData: T[]): F[];
  150. /**
  151. * Expand flattened node with current expansion status.
  152. * The returned list may have different length.
  153. */
  154. expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[];
  155. }
  156. export declare class MatTreeModule {
  157. static ɵfac: i0.ɵɵFactoryDeclaration<MatTreeModule, never>;
  158. static ɵmod: i0.ɵɵNgModuleDeclaration<MatTreeModule, [typeof i1.MatNestedTreeNode, typeof i1.MatTreeNodeDef, typeof i2.MatTreeNodePadding, typeof i3.MatTreeNodeToggle, typeof i4.MatTree, typeof i1.MatTreeNode, typeof i5.MatTreeNodeOutlet], [typeof i6.CdkTreeModule, typeof i7.MatCommonModule], [typeof i7.MatCommonModule, typeof i1.MatNestedTreeNode, typeof i1.MatTreeNodeDef, typeof i2.MatTreeNodePadding, typeof i3.MatTreeNodeToggle, typeof i4.MatTree, typeof i1.MatTreeNode, typeof i5.MatTreeNodeOutlet]>;
  159. static ɵinj: i0.ɵɵInjectorDeclaration<MatTreeModule>;
  160. }
  161. /**
  162. * Data source for nested tree.
  163. *
  164. * The data source for nested tree doesn't have to consider node flattener, or the way to expand
  165. * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.
  166. */
  167. export declare class MatTreeNestedDataSource<T> extends DataSource<T> {
  168. /**
  169. * Data for the nested tree
  170. */
  171. get data(): T[];
  172. set data(value: T[]);
  173. private readonly _data;
  174. connect(collectionViewer: CollectionViewer): Observable<T[]>;
  175. disconnect(): void;
  176. }
  177. /**
  178. * Wrapper for the CdkTree node with Material design styles.
  179. */
  180. export declare class MatTreeNode<T, K = T> extends _MatTreeNodeBase<T, K> implements CanDisable, HasTabIndex, OnInit, OnDestroy {
  181. constructor(elementRef: ElementRef<HTMLElement>, tree: CdkTree<T, K>, tabIndex: string);
  182. ngOnInit(): void;
  183. ngOnDestroy(): void;
  184. static ɵfac: i0.ɵɵFactoryDeclaration<MatTreeNode<any, any>, [null, null, { attribute: "tabindex"; }]>;
  185. static ɵdir: i0.ɵɵDirectiveDeclaration<MatTreeNode<any, any>, "mat-tree-node", ["matTreeNode"], { "role": { "alias": "role"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, never, false, never>;
  186. }
  187. declare const _MatTreeNodeBase: _Constructor<HasTabIndex> & _AbstractConstructor<HasTabIndex> & _Constructor<CanDisable> & _AbstractConstructor<CanDisable> & typeof CdkTreeNode;
  188. /**
  189. * Wrapper for the CdkTree node definition with Material design styles.
  190. * Captures the node's template and a when predicate that describes when this node should be used.
  191. */
  192. export declare class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {
  193. data: T;
  194. static ɵfac: i0.ɵɵFactoryDeclaration<MatTreeNodeDef<any>, never>;
  195. static ɵdir: i0.ɵɵDirectiveDeclaration<MatTreeNodeDef<any>, "[matTreeNodeDef]", never, { "when": { "alias": "matTreeNodeDefWhen"; "required": false; }; "data": { "alias": "matTreeNode"; "required": false; }; }, {}, never, never, false, never>;
  196. }
  197. /**
  198. * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes
  199. * inside the outlet.
  200. */
  201. export declare class MatTreeNodeOutlet implements CdkTreeNodeOutlet {
  202. viewContainer: ViewContainerRef;
  203. _node?: any;
  204. constructor(viewContainer: ViewContainerRef, _node?: any);
  205. static ɵfac: i0.ɵɵFactoryDeclaration<MatTreeNodeOutlet, [null, { optional: true; }]>;
  206. static ɵdir: i0.ɵɵDirectiveDeclaration<MatTreeNodeOutlet, "[matTreeNodeOutlet]", never, {}, {}, never, never, false, never>;
  207. }
  208. /**
  209. * Wrapper for the CdkTree padding with Material design styles.
  210. */
  211. export declare class MatTreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {
  212. /** The level of depth of the tree node. The padding will be `level * indent` pixels. */
  213. get level(): number;
  214. set level(value: NumberInput);
  215. /** The indent for each level. Default number 40px from material design menu sub-menu spec. */
  216. get indent(): number | string;
  217. set indent(indent: number | string);
  218. static ɵfac: i0.ɵɵFactoryDeclaration<MatTreeNodePadding<any, any>, never>;
  219. static ɵdir: i0.ɵɵDirectiveDeclaration<MatTreeNodePadding<any, any>, "[matTreeNodePadding]", never, { "level": { "alias": "matTreeNodePadding"; "required": false; }; "indent": { "alias": "matTreeNodePaddingIndent"; "required": false; }; }, {}, never, never, false, never>;
  220. }
  221. /**
  222. * Wrapper for the CdkTree's toggle with Material design styles.
  223. */
  224. export declare class MatTreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {
  225. static ɵfac: i0.ɵɵFactoryDeclaration<MatTreeNodeToggle<any, any>, never>;
  226. static ɵdir: i0.ɵɵDirectiveDeclaration<MatTreeNodeToggle<any, any>, "[matTreeNodeToggle]", never, { "recursive": { "alias": "matTreeNodeToggleRecursive"; "required": false; }; }, {}, never, never, false, never>;
  227. }
  228. export { }