| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 | 
							- import { ComparisonOperator } from './types'
 
- import { VarType } from '@/app/components/workflow/types'
 
- import type { Branch } from '@/app/components/workflow/types'
 
- export const isEmptyRelatedOperator = (operator: ComparisonOperator) => {
 
-   return [ComparisonOperator.empty, ComparisonOperator.notEmpty, ComparisonOperator.isNull, ComparisonOperator.isNotNull, ComparisonOperator.exists, ComparisonOperator.notExists].includes(operator)
 
- }
 
- const notTranslateKey = [
 
-   ComparisonOperator.equal, ComparisonOperator.notEqual,
 
-   ComparisonOperator.largerThan, ComparisonOperator.largerThanOrEqual,
 
-   ComparisonOperator.lessThan, ComparisonOperator.lessThanOrEqual,
 
- ]
 
- export const isComparisonOperatorNeedTranslate = (operator?: ComparisonOperator) => {
 
-   if (!operator)
 
-     return false
 
-   return !notTranslateKey.includes(operator)
 
- }
 
- export const getOperators = (type?: VarType, file?: { key: string }) => {
 
-   const isFile = !!file
 
-   if (isFile) {
 
-     const { key } = file
 
-     switch (key) {
 
-       case 'name':
 
-         return [
 
-           ComparisonOperator.contains,
 
-           ComparisonOperator.notContains,
 
-           ComparisonOperator.startWith,
 
-           ComparisonOperator.endWith,
 
-           ComparisonOperator.is,
 
-           ComparisonOperator.isNot,
 
-           ComparisonOperator.empty,
 
-           ComparisonOperator.notEmpty,
 
-         ]
 
-       case 'type':
 
-         return [
 
-           ComparisonOperator.in,
 
-           ComparisonOperator.notIn,
 
-         ]
 
-       case 'size':
 
-         return [
 
-           ComparisonOperator.largerThan,
 
-           ComparisonOperator.largerThanOrEqual,
 
-           ComparisonOperator.lessThan,
 
-           ComparisonOperator.lessThanOrEqual,
 
-         ]
 
-       case 'extension':
 
-         return [
 
-           ComparisonOperator.is,
 
-           ComparisonOperator.isNot,
 
-           ComparisonOperator.contains,
 
-           ComparisonOperator.notContains,
 
-         ]
 
-       case 'mime_type':
 
-         return [
 
-           ComparisonOperator.contains,
 
-           ComparisonOperator.notContains,
 
-           ComparisonOperator.startWith,
 
-           ComparisonOperator.endWith,
 
-           ComparisonOperator.is,
 
-           ComparisonOperator.isNot,
 
-           ComparisonOperator.empty,
 
-           ComparisonOperator.notEmpty,
 
-         ]
 
-       case 'transfer_method':
 
-         return [
 
-           ComparisonOperator.in,
 
-           ComparisonOperator.notIn,
 
-         ]
 
-       case 'url':
 
-         return [
 
-           ComparisonOperator.contains,
 
-           ComparisonOperator.notContains,
 
-           ComparisonOperator.startWith,
 
-           ComparisonOperator.endWith,
 
-           ComparisonOperator.is,
 
-           ComparisonOperator.isNot,
 
-           ComparisonOperator.empty,
 
-           ComparisonOperator.notEmpty,
 
-         ]
 
-     }
 
-     return []
 
-   }
 
-   switch (type) {
 
-     case VarType.string:
 
-       return [
 
-         ComparisonOperator.contains,
 
-         ComparisonOperator.notContains,
 
-         ComparisonOperator.startWith,
 
-         ComparisonOperator.endWith,
 
-         ComparisonOperator.is,
 
-         ComparisonOperator.isNot,
 
-         ComparisonOperator.empty,
 
-         ComparisonOperator.notEmpty,
 
-       ]
 
-     case VarType.number:
 
-       return [
 
-         ComparisonOperator.equal,
 
-         ComparisonOperator.notEqual,
 
-         ComparisonOperator.largerThan,
 
-         ComparisonOperator.lessThan,
 
-         ComparisonOperator.largerThanOrEqual,
 
-         ComparisonOperator.lessThanOrEqual,
 
-         ComparisonOperator.empty,
 
-         ComparisonOperator.notEmpty,
 
-       ]
 
-     case VarType.object:
 
-       return [
 
-         ComparisonOperator.empty,
 
-         ComparisonOperator.notEmpty,
 
-       ]
 
-     case VarType.file:
 
-       return [
 
-         ComparisonOperator.exists,
 
-         ComparisonOperator.notExists,
 
-       ]
 
-     case VarType.arrayString:
 
-     case VarType.arrayNumber:
 
-       return [
 
-         ComparisonOperator.contains,
 
-         ComparisonOperator.notContains,
 
-         ComparisonOperator.empty,
 
-         ComparisonOperator.notEmpty,
 
-       ]
 
-     case VarType.array:
 
-     case VarType.arrayObject:
 
-       return [
 
-         ComparisonOperator.empty,
 
-         ComparisonOperator.notEmpty,
 
-       ]
 
-     case VarType.arrayFile:
 
-       return [
 
-         ComparisonOperator.contains,
 
-         ComparisonOperator.notContains,
 
-         ComparisonOperator.allOf,
 
-         ComparisonOperator.empty,
 
-         ComparisonOperator.notEmpty,
 
-       ]
 
-     default:
 
-       return [
 
-         ComparisonOperator.is,
 
-         ComparisonOperator.isNot,
 
-         ComparisonOperator.empty,
 
-         ComparisonOperator.notEmpty,
 
-       ]
 
-   }
 
- }
 
- export const comparisonOperatorNotRequireValue = (operator?: ComparisonOperator) => {
 
-   if (!operator)
 
-     return false
 
-   return [ComparisonOperator.empty, ComparisonOperator.notEmpty, ComparisonOperator.isNull, ComparisonOperator.isNotNull, ComparisonOperator.exists, ComparisonOperator.notExists].includes(operator)
 
- }
 
- export const branchNameCorrect = (branches: Branch[]) => {
 
-   const branchLength = branches.length
 
-   if (branchLength < 2)
 
-     throw new Error('if-else node branch number must than 2')
 
-   if (branchLength === 2) {
 
-     return branches.map((branch) => {
 
-       return {
 
-         ...branch,
 
-         name: branch.id === 'false' ? 'ELSE' : 'IF',
 
-       }
 
-     })
 
-   }
 
-   return branches.map((branch, index) => {
 
-     return {
 
-       ...branch,
 
-       name: branch.id === 'false' ? 'ELSE' : `CASE ${index + 1}`,
 
-     }
 
-   })
 
- }
 
 
  |