65 lines
2.8 KiB
TypeScript
65 lines
2.8 KiB
TypeScript
/**
|
|
* Node config renderers - one per node type (input, ai, email, sharepoint, clickup).
|
|
*/
|
|
|
|
import type { ComponentType } from 'react';
|
|
import type { NodeConfigRendererProps } from './types';
|
|
import { FormNodeConfig } from '../form/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';
|
|
import { ClickUpNodeConfig } from './ClickUpNodeConfig';
|
|
import { StartNodeConfig } from '../start/StartNodeConfig';
|
|
import { IfElseNodeConfig } from '../ifElse/IfElseNodeConfig';
|
|
import { SwitchNodeConfig } from '../switch/SwitchNodeConfig';
|
|
import { LoopNodeConfig } from '../loop/LoopNodeConfig';
|
|
import { FormStartNodeConfig } from '../start/FormStartNodeConfig';
|
|
import { ScheduleStartNodeConfig } from '../start/ScheduleStartNodeConfig';
|
|
import { FileCreateNodeConfig } from './FileCreateNodeConfig';
|
|
|
|
export type NodeConfigComponent = ComponentType<NodeConfigRendererProps>;
|
|
|
|
export const NODE_CONFIG_REGISTRY: Record<string, NodeConfigComponent> = {
|
|
'trigger.manual': StartNodeConfig,
|
|
'trigger.form': FormStartNodeConfig,
|
|
'trigger.schedule': ScheduleStartNodeConfig,
|
|
'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,
|
|
'file.create': FileCreateNodeConfig,
|
|
'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,
|
|
'clickup.searchTasks': ClickUpNodeConfig,
|
|
'clickup.listTasks': ClickUpNodeConfig,
|
|
'clickup.getTask': ClickUpNodeConfig,
|
|
'clickup.createTask': ClickUpNodeConfig,
|
|
'clickup.updateTask': ClickUpNodeConfig,
|
|
'clickup.uploadAttachment': ClickUpNodeConfig,
|
|
'flow.ifElse': IfElseNodeConfig,
|
|
'flow.switch': SwitchNodeConfig,
|
|
'flow.loop': LoopNodeConfig,
|
|
};
|