/** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { HierarchyBaseEdgeInfo, HierarchyBaseNodeInfo, HierarchyGraphDef, HierarchyGraphEdgeDef, HierarchyGraphNodeDef, HierarchyGraphNodeInfo, HierarchyGraphOption, LayoutConfig } from 'dagre-compound'; import { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types'; export interface VtsGraphDataDef extends HierarchyGraphDef { nodes: VtsGraphNodeDef[]; edges: VtsGraphEdgeDef[]; } export interface VtsGraphNodeDef extends HierarchyGraphNodeDef { label?: string; } export interface VtsGraphEdgeDef extends HierarchyGraphEdgeDef { label?: string; } export interface VtsGraphOption extends HierarchyGraphOption { } export declare type VtsRankDirection = 'TB' | 'BT' | 'LR' | 'RL'; export interface VtsGraphGroupNode extends HierarchyGraphNodeInfo { nodes: Array; edges: VtsGraphEdge[]; [key: string]: VtsSafeAny; } export interface VtsGraphNode extends HierarchyBaseNodeInfo { id: VtsSafeAny; name: VtsSafeAny; label?: string; [key: string]: VtsSafeAny; } export interface VtsGraphEdge extends HierarchyBaseEdgeInfo { id: VtsSafeAny; v: VtsSafeAny; w: VtsSafeAny; label?: string; } export interface VtsLayoutSetting extends LayoutConfig { } export interface VtsGraphBaseLayout { layout: { nodeSep: number; rankSep: number; edgeSep: number; }; subScene: { paddingTop: number; paddingBottom: number; paddingLeft: number; paddingRight: number; labelHeight: number; }; defaultCompoundNode: { width: number; height: number; maxLabelWidth: number; }; defaultNode: { width: number; height: number; labelOffset: number; maxLabelWidth: number; }; } export declare function vtsTypeDefinition(): (item: unknown) => T; export type VtsDeepPartial = { [P in keyof T]?: T[P] extends Array ? Array> : T[P] extends ReadonlyArray ? ReadonlyArray> : VtsDeepPartial; }; export type VtsGraphLayoutConfig = VtsDeepPartial; export declare const VTS_GRAPH_LAYOUT_SETTING: VtsLayoutSetting; export interface VtsZoomTransform { x: number; y: number; k: number; } export interface RelativePositionInfo { topLeft: { x: number; y: number; }; bottomRight: { x: number; y: number; }; }