import React from 'react'; import type { IExecution, IPipeline } from '../../../domain'; import type { IExecutionViewState, IPipelineGraphNode } from './pipelineGraph.service'; import './pipelineGraph.less'; export interface IPipelineGraphProps { execution?: IExecution; onNodeClick: (node: IPipelineGraphNode, subIndex?: number) => void; pipeline?: IPipeline; shouldValidate?: boolean; viewState: IExecutionViewState; } export interface IPipelineGraphState { allNodes: IPipelineGraphNode[]; graphHeight: number; graphWidth: string; labelOffsetX: number; labelOffsetY: number; maxLabelWidth: number; nodeRadius: number; phaseCount: number; rowHeights: number[]; showGraph: boolean; loading: boolean; } export declare class PipelineGraph extends React.Component { private defaultNodeRadius; private defaultState; private element; private graphStatusHash; private graphVerticalPadding; private minExecutionGraphHeight; private minLabelWidth; private pipelineValidations; private rowPadding; private validationSubscription; private windowResize; private expandPipelineStageThreshold; constructor(props: IPipelineGraphProps); private highlight; private handleWindowResize; private handleWheel; /** * Used to draw inverse bezier curve between stages */ private curvedLink; private getLastPhase; private collect; private createNodes; /** * Sets phases and adds children/parents to nodes * Probably blows the stack if circular dependencies exist, maybe not */ private applyPhasesAndLink; private fixOverlaps; private createPlaceholderNode; /** * Sets the width of the graph and determines the width available for each label */ private applyPhaseWidth; private applyNodeHeights; private setNodePositions; private createLinks; private linkNodes; private applyAllNodes; private establishRowHeights; private updateGraph; handleExpandSectionClick(): void; private resetLinks; componentDidMount(): void; private refCallback; private validatePipeline; componentWillReceiveProps(nextProps: IPipelineGraphProps): void; componentDidUpdate(_prevProps: IPipelineGraphProps, prevState: IPipelineGraphState): void; componentWillUnmount(): void; render(): JSX.Element; }