@ctodev/cclibrary-typings
Version:
Library typings for use with CLARC INFINITY
135 lines (134 loc) • 4.99 kB
TypeScript
import { CollectionViewer, SelectionChange } from '@angular/cdk/collections';
import { FlatTreeControl } from '@angular/cdk/tree';
import { EventEmitter, OnInit } from '@angular/core';
import { UntypedFormControl } from '@angular/forms';
import { BehaviorSubject, Observable } from 'rxjs';
import { TccKeyValuePair, TccTranslation } from '../../../odata/models/shared.model';
import { TccET_C4 } from '../../../odata/models/c4.model';
import { TccODataServiceFactory } from '../../../odata/factories/tcc-odata-service/tcc-odata-service.factory';
import { isNodeCheckedPipe } from '../../pipes/tcc-c4tree/isNodeChecked.pipe';
import { TccLibIcons } from '../../../shared/classes/tcc-register-icons.class';
import { MatCheckboxChange } from '@angular/material/checkbox';
interface c4TreeNode {
Path: string;
Name: string;
DisplayName: TccTranslation;
Description: TccTranslation;
Id: string;
Level: number;
IsLoading: boolean;
IsExpandable: ExpandableState;
TryOpen?: true;
}
interface mappedNodes {
childrenFetched: boolean;
nodes: Array<c4TreeNode>;
}
export interface selectedNode {
Path: string;
Recursive: boolean;
}
declare enum ExpandableState {
unknown = 0,
expandable = 1,
unexpandable = 2,
error = 3,
loadable = 4
}
declare class DynamicDatabase {
private factory;
private treeControl;
nodesChanged: BehaviorSubject<c4TreeNode[]>;
forbiddenPaths: string[];
private nodeMap;
private OrderBy;
private selectarr;
private service;
constructor(factory: TccODataServiceFactory, treeControl: FlatTreeControl<c4TreeNode>);
/** Initial data from database */
initialData(): Observable<c4TreeNode[]>;
buildSelectedPathsData(selectedPaths: Array<selectedNode>): c4TreeNode[];
buildSelectedPathData(selectedPath: selectedNode, treeNodes: {
[path: string]: c4TreeNode;
}): void;
getSiblings(node: c4TreeNode): Observable<c4TreeNode[]>;
showInner(nodes: mappedNodes, str: string): string;
showDatabase(): void;
getChildren(node: c4TreeNode): Observable<c4TreeNode[]> | undefined;
private getNextLevelChildren;
private fetchChildNodes;
private buildRequest;
transformTccC4Node(node: TccET_C4.Node<any>, level: number): c4TreeNode;
private sortInNodes;
private checkForNode;
buildFilter(path: string, targetLevel: number): string;
/**
* for forbidden paths ["/CLARC/SYS"]
* @returns "(not ((Path/Items/0 eq 'CLARC') and (Path/Items/1 eq 'SYS'))) and "
*/
buildForbiddenPathFilter(): string;
getParentPath(path: string): string;
getPathLevel(path: string): number;
}
export declare class DynamicDataSource {
private treeControl;
private database;
dataChange: BehaviorSubject<c4TreeNode[]>;
get data(): c4TreeNode[];
set data(value: c4TreeNode[]);
refreshData(): void;
constructor(treeControl: FlatTreeControl<c4TreeNode>, database: DynamicDatabase);
connect(collectionViewer: CollectionViewer): Observable<c4TreeNode[]>;
showData(): void;
handleSelectedNodes(nodes: selectedNode[]): Array<c4TreeNode>;
loadSelectedNode(node: c4TreeNode): void;
/** Handle expand/collapse behaviors */
handleTreeControl(change: SelectionChange<c4TreeNode>): void;
/**
* Toggle the node, remove from display list
*/
toggleNode(node: c4TreeNode, expand: boolean): void;
}
export declare class TccC4treeComponent implements OnInit {
NodeClick: EventEmitter<{
Id: string;
name: string;
path: string;
}>;
showObject: boolean;
showIcons: boolean;
selectable: boolean;
set selectedNodes(nodes: Array<selectedNode>);
search: boolean;
forbiddenPaths: string[];
SelectionChange: EventEmitter<Array<selectedNode>>;
IconLib: typeof TccLibIcons.Icon;
private selectedNodesSet;
treeControl: FlatTreeControl<c4TreeNode>;
dataSource: DynamicDataSource;
private service;
c4objectproperties: Array<TccKeyValuePair>;
activeNode: string;
_selectedNodes: Array<selectedNode>;
_trigger: boolean;
_searchtext: string;
searchForm: UntypedFormControl;
database: DynamicDatabase;
nodeCheck: isNodeCheckedPipe;
constructor(factory: TccODataServiceFactory);
private filterForbiddenPaths;
ngOnInit(): void;
fetchObject(nodeid: string): Observable<TccET_C4.Node<any>>;
getLevel(node: c4TreeNode): number;
isExpandable(node: c4TreeNode): boolean;
isLoading: (_: number, _nodeData: c4TreeNode) => boolean;
hasChildren: (_: number, _nodeData: c4TreeNode) => boolean;
isError: (_: number, _nodeData: c4TreeNode) => boolean;
isLoadable: (_: number, _nodeData: c4TreeNode) => boolean;
OnNodeClick(node: c4TreeNode): void;
private normalizePath;
checkboxchange(event: MatCheckboxChange, node: c4TreeNode): void;
OnRefreshClick(node: c4TreeNode): void;
searchfieldkeyup(event: any): void;
}
export {};