import { SelectionModel } from '@angular/cdk/collections'; import { FlatTreeControl } from '@angular/cdk/tree'; import { EventEmitter, OnInit } from '@angular/core'; import { MatRadioChange } from '@angular/material/radio'; import { MatTree, MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; import { TranslateService } from '@ngx-translate/core'; import { CategoryContainerNode } from '../info/CategoryContainerNode'; import { CategoryNode } from '../info/CategoryNode'; import { SoftwareCategoryService } from '../service/category.service'; export declare class SoftwareCategoryTreeComponent implements OnInit { private categoryService; private translateService; multiple: boolean; authorized: boolean; managed: boolean; hide: boolean; _selectedCategory: CategoryNode; selectedCategory: CategoryNode; selectionChanged: EventEmitter; newContentRequested: EventEmitter; idNodeMap: Map; /** Map from flat node to nested node. This helps us finding the nested node to be modified */ flatNodeMap: Map; /** Map from nested node to flattened node. This helps us to keep the same object for selection */ nestedNodeMap: Map; /** A selected parent node to be inserted */ selectedParent: CategoryContainerNode | null; /** The new item's name */ newItemName: string; treeControl: FlatTreeControl; treeFlattener: MatTreeFlattener; dataSource: MatTreeFlatDataSource; /** The selection for checklist */ checklistSelection: SelectionModel; catgeoryTree: MatTree; constructor(categoryService: SoftwareCategoryService, translateService: TranslateService); getLevel: (node: CategoryContainerNode) => number; isExpandable: (node: CategoryContainerNode) => boolean; getChildren: (node: CategoryNode) => CategoryNode[]; hasChild: (_: number, _nodeData: CategoryContainerNode) => boolean; isEditable: (_: number, _nodeData: CategoryContainerNode) => boolean; /** * Transformer to convert nested node to flat node. Record the nodes in maps for later use. */ transformer: (node: CategoryNode, level: number) => CategoryContainerNode; expandToNode(flatNode: CategoryContainerNode): void; /** Whether all the descendants of the node are selected. */ descendantsAllSelected(node: CategoryContainerNode): boolean; isSelected(node: CategoryContainerNode): boolean; /** Whether part of the descendants are selected */ descendantsPartiallySelected(node: CategoryContainerNode): boolean; /** Toggle the to-do item selection. Select/deselect all the descendants node */ categoryContainerSelectionToggle(node: CategoryContainerNode): void; /** Toggle a leaf to-do item selection. Check all the parents to see if they changed */ categorySelectionToggle(node: CategoryContainerNode): void; categorySelectionChanged($event: MatRadioChange): void; checkAllParentsSelection(node: CategoryContainerNode): void; /** Check root node checked state and change it accordingly */ checkRootNodeSelection(node: CategoryContainerNode): void; getParentNode(node: CategoryContainerNode): CategoryContainerNode | null; doNewContent(node: CategoryContainerNode): void; editItem(node: CategoryContainerNode): void; addNewItem(node: CategoryContainerNode): void; createRootItem(): void; _removeItem(node: CategoryContainerNode): void; removeItem(node: CategoryContainerNode): void; /** Save the node to database */ saveNode(node: CategoryContainerNode, itemValue: string): void; closeItem(node: CategoryContainerNode): void; ngOnInit(): void; }