diff --git a/frontend/components/v2/config-panels/V2CardDisplayConfigPanel.tsx b/frontend/components/v2/config-panels/V2CardDisplayConfigPanel.tsx index 4336bfc9..6570b5aa 100644 --- a/frontend/components/v2/config-panels/V2CardDisplayConfigPanel.tsx +++ b/frontend/components/v2/config-panels/V2CardDisplayConfigPanel.tsx @@ -36,6 +36,7 @@ import { CommandItem, CommandList, } from "@/components/ui/command"; +import { Badge } from "@/components/ui/badge"; import { Settings, ChevronDown, @@ -473,7 +474,7 @@ export const V2CardDisplayConfigPanel: React.FC = {/* ─── 2단계: 컬럼 매핑 ─── */} {(currentTableColumns.length > 0 || loadingColumns) && (
-

컬럼 매핑

+

컬럼 매핑

{(loadingEntityJoins || loadingColumns) && (
@@ -484,7 +485,7 @@ export const V2CardDisplayConfigPanel: React.FC =
- 타이틀 + 타이틀
{renderColumnSelect( config.columnMapping?.titleColumn || "", @@ -494,7 +495,7 @@ export const V2CardDisplayConfigPanel: React.FC =
- 서브타이틀 + 서브타이틀
{renderColumnSelect( config.columnMapping?.subtitleColumn || "", @@ -504,7 +505,7 @@ export const V2CardDisplayConfigPanel: React.FC =
- 설명 + 설명
{renderColumnSelect( config.columnMapping?.descriptionColumn || "", @@ -514,7 +515,7 @@ export const V2CardDisplayConfigPanel: React.FC =
- 이미지 + 이미지
{renderColumnSelect( config.columnMapping?.imageColumn || "", @@ -527,7 +528,7 @@ export const V2CardDisplayConfigPanel: React.FC = {/* 표시 컬럼 */}
- 추가 표시 컬럼 + 추가 표시 컬럼
{(config.columnMapping?.displayColumns || []).length > 0 ? ( -
+
{(config.columnMapping?.displayColumns || []).map( (column: string, index: number) => (
@@ -574,10 +575,10 @@ export const V2CardDisplayConfigPanel: React.FC = {/* ─── 3단계: 카드 레이아웃 ─── */}
-

카드 레이아웃

+

카드 레이아웃

- 한 행당 카드 수 + 한 행당 카드 수 = {/* ─── 4단계: 표시 요소 토글 ─── */}
-

표시 요소

-
+

표시 요소

+

타이틀

@@ -721,7 +722,8 @@ export const V2CardDisplayConfigPanel: React.FC = >
- 고급 설정 + 고급 설정 + 3개
= /> - +
- 설명 최대 길이 + 설명 최대 길이 = ({
-

필드 배치

+

필드 배치

{loadingColumns && ( (컬럼 로딩 중...) )} @@ -456,7 +456,8 @@ export const V2PivotGridConfigPanel: React.FC = ({ >
- 고급 설정 + 고급 설정 + 12개
= ({ /> - +
{/* 총계 설정 */}
-

총계 설정

+

총계 설정

- 행 총계 + 행 총계 @@ -482,7 +483,7 @@ export const V2PivotGridConfigPanel: React.FC = ({ />
- 열 총계 + 열 총계 @@ -491,7 +492,7 @@ export const V2PivotGridConfigPanel: React.FC = ({ />
- 행 총계 위치 + 행 총계 위치
- 열 총계 위치 + 열 총계 위치
- 행 소계 + 행 소계 @@ -534,7 +535,7 @@ export const V2PivotGridConfigPanel: React.FC = ({ />
- 열 소계 + 열 소계 @@ -547,7 +548,7 @@ export const V2PivotGridConfigPanel: React.FC = ({ {/* 스타일 설정 */}
-

스타일 설정

+

스타일 설정

줄무늬 배경

@@ -576,7 +577,7 @@ export const V2PivotGridConfigPanel: React.FC = ({ {/* 크기 설정 */}
-

크기 설정

+

크기 설정

높이 @@ -601,7 +602,7 @@ export const V2PivotGridConfigPanel: React.FC = ({ {/* 기능 설정 */}
-

기능 설정

+

기능 설정

CSV 내보내기

@@ -658,7 +659,7 @@ export const V2PivotGridConfigPanel: React.FC = ({ {/* 조건부 서식 */}
-

조건부 서식

+

조건부 서식

{(config.style?.conditionalFormats || []).map((rule, index) => (
diff --git a/frontend/components/v2/config-panels/V2SplitPanelLayoutConfigPanel.tsx b/frontend/components/v2/config-panels/V2SplitPanelLayoutConfigPanel.tsx index 935e9f42..628976db 100644 --- a/frontend/components/v2/config-panels/V2SplitPanelLayoutConfigPanel.tsx +++ b/frontend/components/v2/config-panels/V2SplitPanelLayoutConfigPanel.tsx @@ -1021,11 +1021,12 @@ export const V2SplitPanelLayoutConfigPanel: React.FC<
- 좌측 패널 (마스터) -

+ 좌측 패널 (마스터) +

{leftTableName || "미설정"}

+ {config.leftPanel?.columns?.length || 0}개 컬럼
- +
{/* 좌측 패널 제목 */}
- + updateLeftPanel({ title: e.target.value })} @@ -1050,7 +1051,7 @@ export const V2SplitPanelLayoutConfigPanel: React.FC< {/* 좌측 테이블 선택 */}
- + - +
{DISPLAY_MODE_CARDS.map((card) => { const Icon = card.icon; @@ -1263,13 +1264,14 @@ export const V2SplitPanelLayoutConfigPanel: React.FC<
- + 우측 패널 (디테일) -

+

{rightTableName || "미설정"}

+ {config.rightPanel?.columns?.length || 0}개 컬럼
- +
{/* 우측 패널 제목 */}
- + updateRightPanel({ title: e.target.value })} @@ -1294,7 +1296,7 @@ export const V2SplitPanelLayoutConfigPanel: React.FC< {/* 우측 테이블 선택 */}
- + - +
{DISPLAY_MODE_CARDS.map((card) => { const Icon = card.icon; @@ -2066,12 +2068,8 @@ export const V2SplitPanelLayoutConfigPanel: React.FC< >
-
- 추가 탭 -

- {config.rightPanel?.additionalTabs?.length || 0}개 탭 -

-
+ 추가 탭 + {config.rightPanel?.additionalTabs?.length || 0}개
- +
{/* 탭 목록 */} {(config.rightPanel?.additionalTabs || []).map( @@ -2287,7 +2285,8 @@ export const V2SplitPanelLayoutConfigPanel: React.FC< >
- 고급 설정 + 고급 설정 + 8개
- +
=
- 제목 + 제목
= {/* 상태 컬럼 */}
- 상태 컬럼 * + 상태 컬럼 *
) : ( -
+
{items.map((item: StatusCountItem, i: number) => (
{/* 첫 번째 줄: 상태값 + 삭제 */} @@ -648,7 +652,7 @@ export const V2StatusCountConfigPanel: React.FC = {/* 미리보기 */} {items.length > 0 && (
- 미리보기 + 미리보기
{items.map((item, i) => { const colors = STATUS_COLOR_MAP[item.color] || STATUS_COLOR_MAP.gray; diff --git a/frontend/components/v2/config-panels/V2TableGroupedConfigPanel.tsx b/frontend/components/v2/config-panels/V2TableGroupedConfigPanel.tsx index 2fee834a..d9e69e12 100644 --- a/frontend/components/v2/config-panels/V2TableGroupedConfigPanel.tsx +++ b/frontend/components/v2/config-panels/V2TableGroupedConfigPanel.tsx @@ -10,6 +10,7 @@ import React, { useState, useEffect, useCallback, useMemo } from "react"; import { Input } from "@/components/ui/input"; import { Switch } from "@/components/ui/switch"; import { Button } from "@/components/ui/button"; +import { Badge } from "@/components/ui/badge"; import { Checkbox } from "@/components/ui/checkbox"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"; @@ -386,7 +387,7 @@ export const V2TableGroupedConfigPanel: React.FC
- 그룹 라벨 형식 + 그룹 라벨 형식
- 합계 표시 컬럼 + 합계 표시 컬럼

그룹별 합계를 계산할 컬럼을 선택하세요

@@ -563,19 +564,20 @@ export const V2TableGroupedConfigPanel: React.FC >
- 표시 설정 + 표시 설정 + 6개
- +
{/* 체크박스 */}
- 체크박스 + 체크박스
- 빈 데이터 메시지 + 빈 데이터 메시지 updateConfig({ emptyMessage: e.target.value })} @@ -663,17 +665,13 @@ export const V2TableGroupedConfigPanel: React.FC >
- 연동 설정 - {(config.linkedFilters?.length ?? 0) > 0 && ( - - {config.linkedFilters!.length} - - )} + 연동 설정 + {config.linkedFilters?.length || 0}개
- +