@ifed/component
Version:
@ifed/component
56 lines (55 loc) • 1.5 kB
TypeScript
import React from 'react';
export interface FlowNode {
nodeId: string | number;
nodeName: string;
status: 'finish' | 'wait' | 'timeout' | 'error' | 'process' | 'suspend';
subFlow?: Flow[];
[anyKey: string]: any;
}
export interface Flow {
key: string | number;
nodeInfoList: FlowNode[];
[anyKey: string]: any;
}
export interface ILine {
start: number;
end: number;
content: React.ReactNode;
}
export interface SubRenderFunc {
(node: FlowNode, data: FlowNode[]): React.ReactNode;
}
export interface RenderNodeFunc {
(item: FlowNode, defaultNode: React.ReactNode): React.ReactNode;
}
export interface RenderIconFunc {
(item: FlowNode): React.ReactNode;
}
export interface RenderCornerMarkFunc {
(item: FlowNode): React.ReactNode;
}
export interface RenderBracesFunc {
(item: FlowNode[]): ILine[];
}
export interface ClickFunc {
(e: React.MouseEvent, item: FlowNode): void;
}
export interface FlowProps {
data: FlowNode[];
onClick?: ClickFunc;
sub?: SubRenderFunc;
sup?: SubRenderFunc;
renderBraces?: RenderBracesFunc;
renderNode?: RenderNodeFunc;
renderIcon?: RenderIconFunc;
renderCornerMark?: RenderCornerMarkFunc;
size?: 'large';
pace?: number;
autoHide?: boolean;
autoHeightMax?: number;
className?: string;
}
export interface BranchAttributes extends Pick<FlowNode, 'nodeId'> {
offset: number;
parentIndex: number;
}