| 
					
				 | 
			
			
				@@ -6,6 +6,7 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from 'react' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn from 'classnames' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { useTranslation } from 'react-i18next' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import copy from 'copy-to-clipboard' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import ResultText from '../run/result-text' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import ResultPanel from '../run/result-panel' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import TracingPanel from '../run/tracing-panel' 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -16,9 +17,12 @@ import { useStore } from '../store' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   WorkflowRunningStatus, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from '../types' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { SimpleBtn } from '../../app/text-generate/item' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Toast from '../../base/toast' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import InputsPanel from './inputs-panel' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Loading from '@/app/components/base/loading' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { XClose } from '@/app/components/base/icons/src/vender/line/general' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Clipboard } from '@/app/components/base/icons/src/vender/line/files' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const WorkflowPreview = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const { t } = useTranslation() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -108,12 +112,28 @@ const WorkflowPreview = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <InputsPanel onRun={() => switchTab('RESULT')} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           {currentTab === 'RESULT' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <ResultText 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              isRunning={workflowRunningData?.result?.status === WorkflowRunningStatus.Running || !workflowRunningData?.result} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              outputs={workflowRunningData?.resultText} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              error={workflowRunningData?.result?.error} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              onClick={() => switchTab('DETAIL')} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <ResultText 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                isRunning={workflowRunningData?.result?.status === WorkflowRunningStatus.Running || !workflowRunningData?.result} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                outputs={workflowRunningData?.resultText} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                error={workflowRunningData?.result?.error} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onClick={() => switchTab('DETAIL')} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <SimpleBtn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                isDisabled={workflowRunningData?.result.status !== WorkflowRunningStatus.Succeeded} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                className={cn('ml-4 mb-4 inline-flex space-x-1')} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  const content = workflowRunningData?.resultText 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  if (typeof content === 'string') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    copy(content) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    copy(JSON.stringify(content)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  Toast.notify({ type: 'success', message: t('common.actionMsg.copySuccessfully') }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <Clipboard className='w-3.5 h-3.5' /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div>{t('common.operation.copy')}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </SimpleBtn> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           {currentTab === 'DETAIL' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <ResultPanel 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -143,6 +163,7 @@ const WorkflowPreview = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <Loading /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 |