{availableFields.length > 0 ? (
) : (
소스 노드를 연결하세요
)}
{/* EXISTS 연산자인 경우: 테이블/필드 선택 UI (검색 가능한 Combobox) */}
{isExistsOperator(condition.operator) && (
<>
{loadingTables ? (
테이블 목록 로딩 중...
) : allTables.length > 0 ? (
handleConditionChange(index, "lookupTable", value)}
placeholder="테이블 검색..."
/>
) : (
테이블 목록을 로드할 수 없습니다
)}
{(condition as any).lookupTable && (
handleConditionChange(index, "lookupField", value)}
/>
)}
{condition.operator === "EXISTS_IN"
? `소스의 "${condition.field || "..."}" 값이 "${(condition as any).lookupTableLabel || "..."}" 테이블의 "${(condition as any).lookupFieldLabel || "..."}" 컬럼에 존재하면 TRUE`
: `소스의 "${condition.field || "..."}" 값이 "${(condition as any).lookupTableLabel || "..."}" 테이블의 "${(condition as any).lookupFieldLabel || "..."}" 컬럼에 존재하지 않으면 TRUE`}
>
)}
{/* 일반 연산자인 경우: 기존 비교값 UI */}
{condition.operator !== "IS_NULL" &&
condition.operator !== "IS_NOT_NULL" &&
!isExistsOperator(condition.operator) && (
<>
{(condition as any).valueType === "field" ? (
// 필드 참조: 드롭다운으로 선택
availableFields.length > 0 ? (
) : (
소스 노드를 연결하세요
)
) : (
// 고정값: 직접 입력
handleConditionChange(index, "value", e.target.value)}
placeholder="비교할 값"
className="mt-1 h-8 text-xs"
/>
)}
>
)}