| 
									
										
										
										
											2024-11-05 10:32:49 +08:00
										 |  |  | import { BlockEnum, ErrorHandleMode } from '../../types' | 
					
						
							| 
									
										
										
										
											2025-05-15 22:39:35 +08:00
										 |  |  | import type { NodeDefault } from '../../types' | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  | import type { IterationNodeType } from './types' | 
					
						
							| 
									
										
										
										
											2024-11-05 10:32:49 +08:00
										 |  |  | import { | 
					
						
							|  |  |  |   ALL_CHAT_AVAILABLE_BLOCKS, | 
					
						
							|  |  |  |   ALL_COMPLETION_AVAILABLE_BLOCKS, | 
					
						
							| 
									
										
										
										
											2025-02-04 03:26:01 +02:00
										 |  |  | } from '@/app/components/workflow/blocks' | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  | const i18nPrefix = 'workflow' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const nodeDefault: NodeDefault<IterationNodeType> = { | 
					
						
							|  |  |  |   defaultValue: { | 
					
						
							|  |  |  |     start_node_id: '', | 
					
						
							|  |  |  |     iterator_selector: [], | 
					
						
							|  |  |  |     output_selector: [], | 
					
						
							| 
									
										
										
										
											2024-09-10 15:23:16 +08:00
										 |  |  |     _children: [], | 
					
						
							| 
									
										
										
										
											2024-11-05 10:32:49 +08:00
										 |  |  |     _isShowTips: false, | 
					
						
							|  |  |  |     is_parallel: false, | 
					
						
							|  |  |  |     parallel_nums: 10, | 
					
						
							|  |  |  |     error_handle_mode: ErrorHandleMode.Terminated, | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  |   }, | 
					
						
							|  |  |  |   getAvailablePrevNodes(isChatMode: boolean) { | 
					
						
							|  |  |  |     const nodes = isChatMode | 
					
						
							|  |  |  |       ? ALL_CHAT_AVAILABLE_BLOCKS | 
					
						
							| 
									
										
										
										
											2024-11-05 10:32:49 +08:00
										 |  |  |       : ALL_COMPLETION_AVAILABLE_BLOCKS.filter( | 
					
						
							|  |  |  |         type => type !== BlockEnum.End, | 
					
						
							|  |  |  |       ) | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  |     return nodes | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   getAvailableNextNodes(isChatMode: boolean) { | 
					
						
							| 
									
										
										
										
											2024-11-05 10:32:49 +08:00
										 |  |  |     const nodes = isChatMode | 
					
						
							|  |  |  |       ? ALL_CHAT_AVAILABLE_BLOCKS | 
					
						
							|  |  |  |       : ALL_COMPLETION_AVAILABLE_BLOCKS | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  |     return nodes | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   checkValid(payload: IterationNodeType, t: any) { | 
					
						
							|  |  |  |     let errorMessages = '' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-05 10:32:49 +08:00
										 |  |  |     if ( | 
					
						
							|  |  |  |       !errorMessages | 
					
						
							|  |  |  |       && (!payload.iterator_selector || payload.iterator_selector.length === 0) | 
					
						
							|  |  |  |     ) { | 
					
						
							|  |  |  |       errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { | 
					
						
							|  |  |  |         field: t(`${i18nPrefix}.nodes.iteration.input`), | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-05 10:32:49 +08:00
										 |  |  |     if ( | 
					
						
							|  |  |  |       !errorMessages | 
					
						
							|  |  |  |       && (!payload.output_selector || payload.output_selector.length === 0) | 
					
						
							|  |  |  |     ) { | 
					
						
							|  |  |  |       errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { | 
					
						
							|  |  |  |         field: t(`${i18nPrefix}.nodes.iteration.output`), | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |       isValid: !errorMessages, | 
					
						
							|  |  |  |       errorMessage: errorMessages, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default nodeDefault |