44 lines
1.8 KiB
TypeScript
44 lines
1.8 KiB
TypeScript
/**
|
|
* Node config renderers - one per node type (input, ai, email, sharepoint).
|
|
*/
|
|
|
|
import type { ComponentType } from 'react';
|
|
import type { NodeConfigRendererProps } from './types';
|
|
import { FormNodeConfig } from './FormNodeConfig';
|
|
import { ApprovalNodeConfig } from './ApprovalNodeConfig';
|
|
import { UploadNodeConfig } from './UploadNodeConfig';
|
|
import { CommentNodeConfig } from './CommentNodeConfig';
|
|
import { ReviewNodeConfig } from './ReviewNodeConfig';
|
|
import { SelectionNodeConfig } from './SelectionNodeConfig';
|
|
import { ConfirmationNodeConfig } from './ConfirmationNodeConfig';
|
|
import { AiNodeConfig } from './AiNodeConfig';
|
|
import { EmailNodeConfig } from './EmailNodeConfig';
|
|
import { SharePointNodeConfig } from './SharePointNodeConfig';
|
|
|
|
export type NodeConfigComponent = ComponentType<NodeConfigRendererProps>;
|
|
|
|
export const NODE_CONFIG_REGISTRY: Record<string, NodeConfigComponent> = {
|
|
'input.form': FormNodeConfig,
|
|
'input.approval': ApprovalNodeConfig,
|
|
'input.upload': UploadNodeConfig,
|
|
'input.comment': CommentNodeConfig,
|
|
'input.review': ReviewNodeConfig,
|
|
'input.selection': SelectionNodeConfig,
|
|
'input.confirmation': ConfirmationNodeConfig,
|
|
'ai.prompt': AiNodeConfig,
|
|
'ai.webResearch': AiNodeConfig,
|
|
'ai.summarizeDocument': AiNodeConfig,
|
|
'ai.translateDocument': AiNodeConfig,
|
|
'ai.convertDocument': AiNodeConfig,
|
|
'ai.generateDocument': AiNodeConfig,
|
|
'ai.generateCode': AiNodeConfig,
|
|
'email.checkEmail': EmailNodeConfig,
|
|
'email.searchEmail': EmailNodeConfig,
|
|
'email.draftEmail': EmailNodeConfig,
|
|
'sharepoint.findFile': SharePointNodeConfig,
|
|
'sharepoint.readFile': SharePointNodeConfig,
|
|
'sharepoint.uploadFile': SharePointNodeConfig,
|
|
'sharepoint.listFiles': SharePointNodeConfig,
|
|
'sharepoint.downloadFile': SharePointNodeConfig,
|
|
'sharepoint.copyFile': SharePointNodeConfig,
|
|
};
|