1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
| import type { VarType as NumberVarType } from '../tool/types'
| import type {
| CommonNodeType,
| ValueSelector,
| Var,
| VarType,
| } from '@/app/components/workflow/types'
|
| export enum LogicalOperator {
| and = 'and',
| or = 'or',
| }
|
| export enum ComparisonOperator {
| contains = 'contains',
| notContains = 'not contains',
| startWith = 'start with',
| endWith = 'end with',
| is = 'is',
| isNot = 'is not',
| empty = 'empty',
| notEmpty = 'not empty',
| equal = '=',
| notEqual = '≠',
| largerThan = '>',
| lessThan = '<',
| largerThanOrEqual = '≥',
| lessThanOrEqual = '≤',
| isNull = 'is null',
| isNotNull = 'is not null',
| in = 'in',
| notIn = 'not in',
| allOf = 'all of',
| exists = 'exists',
| notExists = 'not exists',
| }
|
| export type Condition = {
| id: string
| varType: VarType
| variable_selector?: ValueSelector
| key?: string // sub variable key
| comparison_operator?: ComparisonOperator
| value: string | string[]
| numberVarType?: NumberVarType
| sub_variable_condition?: CaseItem
| }
|
| export type CaseItem = {
| case_id: string
| logical_operator: LogicalOperator
| conditions: Condition[]
| }
|
| export type IfElseNodeType = CommonNodeType & {
| logical_operator?: LogicalOperator
| conditions?: Condition[]
| cases: CaseItem[]
| isInIteration: boolean
| isInLoop: boolean
| }
|
| export type HandleAddCondition = (caseId: string, valueSelector: ValueSelector, varItem: Var) => void
| export type HandleRemoveCondition = (caseId: string, conditionId: string) => void
| export type HandleUpdateCondition = (caseId: string, conditionId: string, newCondition: Condition) => void
| export type HandleToggleConditionLogicalOperator = (caseId: string) => void
|
| export type HandleAddSubVariableCondition = (caseId: string, conditionId: string, key?: string) => void
| export type handleRemoveSubVariableCondition = (caseId: string, conditionId: string, subConditionId: string) => void
| export type HandleUpdateSubVariableCondition = (caseId: string, conditionId: string, subConditionId: string, newSubCondition: Condition) => void
| export type HandleToggleSubVariableConditionLogicalOperator = (caseId: string, conditionId: string) => void
|
|