@hadyfayed/filament-workflow-canvas
Version:
Visual workflow builder and canvas component for Filament applications
81 lines • 2.06 kB
TypeScript
import { WorkflowData, WorkflowNode, WorkflowConnection } from './types';
/**
* Validate workflow data structure
*/
export declare function validateWorkflowData(data: any): data is WorkflowData;
/**
* Create a new workflow node
*/
export declare function createWorkflowNode(type: string, position: {
x: number;
y: number;
}, name?: string): WorkflowNode;
/**
* Create a new workflow connection
*/
export declare function createWorkflowConnection(sourceNodeId: string, targetNodeId: string, conditions?: Record<string, any>): WorkflowConnection;
/**
* Convert ReactFlow data to workflow data
*/
export declare function reactFlowToWorkflowData(nodes: any[], edges: any[], viewport: {
x: number;
y: number;
zoom: number;
}): WorkflowData;
/**
* Convert workflow data to ReactFlow data
*/
export declare function workflowDataToReactFlow(data: WorkflowData): {
nodes: {
id: string;
type: string;
position: {
x: number;
y: number;
};
data: {
label: string;
config: Record<string, any>;
description: string;
hasError: boolean;
};
}[];
edges: {
id: string;
source: string;
target: string;
type: string;
animated: boolean;
style: {
stroke: string;
strokeWidth: number;
};
markerEnd: {
type: string;
color: string;
};
data: {
conditions: Record<string, any>;
};
}[];
};
/**
* Check if workflow has cycles
*/
export declare function hasWorkflowCycles(data: WorkflowData): boolean;
/**
* Get workflow validation errors
*/
export declare function validateWorkflow(data: WorkflowData): string[];
/**
* Calculate workflow canvas bounds
*/
export declare function calculateCanvasBounds(data: WorkflowData): {
minX: number;
minY: number;
maxX: number;
maxY: number;
width: number;
height: number;
};
//# sourceMappingURL=utils.d.ts.map