import { SelectionChange, SelectionModel } from '@angular/cdk/collections'; import { FlatTreeControl } from '@angular/cdk/tree'; import * as i0 from '@angular/core'; import { OnInit, OnChanges, TemplateRef, EventEmitter, SimpleChanges } from '@angular/core'; import { MatTreeFlatDataSource } from '@angular/material/tree'; import * as rxjs from 'rxjs'; import { Observable } from 'rxjs'; interface MxTreeState { treeNodes: MxTreeNode[]; expansion: DisplayControlObj | null; selection: DisplayControlObj | null; } interface MxTreeKeyMap { [key: string]: T; } interface MxTreeBase { key: string; displayName: string; isExpanded: boolean; displayIcon?: string; showActions?: boolean; isChecked?: boolean; isDisabled?: boolean; item: T | null; } interface MxTreeNode extends MxTreeBase { children: MxTreeNode[]; } interface MxTreeFlatNode extends MxTreeBase { level: number; expandable: boolean; parentNodeName: string | null; childrenAmount: number; leafNodeAmount: number; } interface DisplayControlObj { [key: string]: boolean; } declare class MxTreeStore { private initialState; private _store; readonly selectTreeNodes$: rxjs.Observable[]>; get state(): MxTreeState; get treeNodes(): MxTreeNode[]; readonly dispatchState: { compStateChange: (state: MxTreeState) => void; treeNode: (treeNodes: MxTreeNode[]) => void; expandState: (expansion: DisplayControlObj) => void; selectionState: (selection: DisplayControlObj) => void; clearExpandedAndSelectionState: () => void; }; private mergeTreeNodesExpansionAndSelection; private updateNodeState; private updateState; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class MxTreeComponent implements OnInit, OnChanges { private compStore; nodeActions: TemplateRef | null; data: MxTreeNode[]; useSelection: boolean; useHighlight: boolean; hideGroupCheckbox: boolean; maxSelected: number | null; set focusItem(value: MxTreeFlatNode | null); changeNode: EventEmitter[]>; focusNode: EventEmitter<{ source: MxTreeNode[]; changes: MxTreeNode[]; }>; checkNode: EventEmitter<{ source: MxTreeNode[]; changes: MxTreeNode[]; }>; expandNode: EventEmitter<{ source: MxTreeNode[]; changes: MxTreeNode[]; }>; private _focusItem; private _treeControl; private _treeFlattener; private _dataSource; private _flatNodeMap; private _nestedNodeMap; private _checkListSelection; private _lastLevelSelectedAmount; private _eventQueue; readonly trackBy: (_: any, item: MxTreeFlatNode) => string; readonly getLevel: (node: MxTreeFlatNode) => number; readonly isExpandable: (node: MxTreeFlatNode) => boolean; readonly isFocused: (node: MxTreeFlatNode) => boolean; readonly getChildren: (node: MxTreeNode) => MxTreeNode[]; readonly hasChild: (_: number, _nodeData: MxTreeFlatNode) => boolean; readonly hasNoContent: (_: number, _nodeData: MxTreeFlatNode) => boolean; readonly transformer: (node: MxTreeNode, level: number) => MxTreeFlatNode; readonly treeNodeState$: Observable[]>; expansionChanged$: Observable>>; selectionChanged$: Observable>>; get dataSource(): MatTreeFlatDataSource, MxTreeFlatNode>; get treeControl(): FlatTreeControl>; get checkListSelection(): SelectionModel>; get flatNodeMap(): Map, MxTreeNode>; get nestedNodeMap(): Map, MxTreeFlatNode>; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; updateTree(): void; leafNodeClick(event: MouseEvent, node: MxTreeFlatNode): void; groupNodeClick(event: MouseEvent, node: MxTreeFlatNode): void; focus(event: MouseEvent, node: MxTreeFlatNode): void; getNodeChangedState(e: SelectionChange>, key: keyof Pick, 'isChecked' | 'isExpanded'>): MxTreeNode[]; getNodeActionData(node: MxTreeFlatNode): MxTreeFlatNode[]; isLeafNodeCheckboxDisabled(node: MxTreeFlatNode): boolean; isGroupNodeCheckboxDisabled(node: MxTreeFlatNode): boolean | undefined; /** NOTE: Whether all the descendants of the node are selected. */ descendantsAllSelected(node: MxTreeFlatNode): boolean; /** NOTE: Whether part of the descendants are selected */ descendantsPartiallySelected(node: MxTreeFlatNode): boolean; /** NOTE: Toggle the to-do item selection. Select/deselect all the descendants node */ todoItemSelectionToggle(node: MxTreeFlatNode): void; /** NOTE: Toggle a leaf to-do item selection. Check all the parents to see if they changed */ todoLeafItemSelectionToggle(node: MxTreeFlatNode): void; checkAllParentsSelection(node: MxTreeFlatNode): void; /** NOTE: Check root node checked state and change it accordingly */ checkRootNodeSelection(node: MxTreeFlatNode): void; getParentNode(node: MxTreeFlatNode): MxTreeFlatNode | null; private updateExpandedList; private updateCheckList; private getChildrenFlatNodes; private getLeafNodeAmount; private getLeafNodeCheckedAmount; private getObj; private keyStringSort; constructor(compStore: MxTreeStore); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_useSelection: unknown; static ngAcceptInputType_useHighlight: unknown; static ngAcceptInputType_hideGroupCheckbox: unknown; static ngAcceptInputType_maxSelected: unknown; } export { MxTreeComponent }; export type { DisplayControlObj, MxTreeBase, MxTreeFlatNode, MxTreeKeyMap, MxTreeNode, MxTreeState };