diff --git a/docs/컴포넌트_기능_현황.md b/docs/컴포넌트_기능_현황.md index b6e536f7..a49c6b76 100644 --- a/docs/컴포넌트_기능_현황.md +++ b/docs/컴포넌트_기능_현황.md @@ -9,7 +9,7 @@ | 기능 | 적용 완료 | 미적용 | 해당없음 | | -------------------------- | --------- | ------ | -------- | -| **다국어 지원** | 3개 | 10개 | 3개 | +| **다국어 지원** | 3개 | 9개 | 4개 | | **컴포넌트별 테이블 설정** | 6개 | 4개 | 6개 | --- @@ -18,12 +18,12 @@ ### 데이터 표시 (Display) - 4개 -| 컴포넌트 | 다국어 지원 | 테이블 설정 | 비고 | -| ------------------- | :---------: | :---------: | ------------------------------------------------------------------- | -| **테이블 리스트** | ✅ 적용 | ✅ 적용 | `customTableName`, `useCustomTable` 지원 | -| **카드 디스플레이** | ❌ 미적용 | ✅ 적용 | Combobox UI로 테이블 선택, `customTableName`, `useCustomTable` 지원 | -| **텍스트 표시** | ❌ 미적용 | ➖ 해당없음 | 정적 텍스트 표시용 | -| **피벗 그리드** | ❌ 미적용 | ⚠️ 부분 | `tableName` 설정 가능하나 Combobox UI 없음 | +| 컴포넌트 | 다국어 지원 | 테이블 설정 | 비고 | +| ------------------- | :---------: | :---------: | --------------------------------------------- | +| **테이블 리스트** | ✅ 적용 | ✅ 적용 | `customTableName`, `useCustomTable` 지원 | +| **카드 디스플레이** | ➖ 해당없음 | ✅ 적용 | DB 데이터 표시용, 버튼은 시스템 다국어로 처리 | +| **텍스트 표시** | ❌ 미적용 | ➖ 해당없음 | 정적 텍스트 표시용 | +| **피벗 그리드** | ❌ 미적용 | ⚠️ 부분 | `tableName` 설정 가능하나 Combobox UI 없음 | --- @@ -79,11 +79,18 @@ - `button-primary`: 버튼 텍스트 다국어 지원 - `split-panel-layout`: 패널 제목 다국어 지원 -**미적용 (10개)** +**해당없음 (4개)** -- `card-display`, `text-display`, `pivot-grid` +- `card-display`: DB 데이터 표시용, 버튼 라벨은 시스템 다국어로 처리 +- `text-display`: 정적 텍스트 표시용 +- `divider-line`: 시각적 구분용 +- `구분선`: 시각적 구분용 + +**미적용 (9개)** + +- `pivot-grid` - `unified-repeater`, `repeat-screen-modal` -- `tabs`, `section-card`, `section-paper`, `divider-line` +- `tabs`, `section-card`, `section-paper` - `numbering-rule`, `rack-structure`, `location-swap-selector`, `table-search-widget` --- @@ -131,12 +138,12 @@ ### 2순위: 다국어 지원 확대 -| 컴포넌트 | 작업 내용 | -| ------------------ | -------------------------- | -| `unified-repeater` | 컬럼 라벨 `langKeyId` 지원 | -| `card-display` | 필드 라벨 `langKeyId` 지원 | -| `tabs` | 탭 이름 `langKeyId` 지원 | -| `section-card` | 제목 `langKeyId` 지원 | +| 컴포넌트 | 작업 내용 | 상태 | +| ------------------ | -------------------------- | ----------- | +| `card-display` | 버튼 라벨 시스템 다국어 | ➖ 해당없음 | +| `unified-repeater` | 컬럼 라벨 `langKeyId` 지원 | 대기 | +| `tabs` | 탭 이름 `langKeyId` 지원 | 대기 | +| `section-card` | 제목 `langKeyId` 지원 | 대기 | --- diff --git a/frontend/components/screen/ScreenDesigner.tsx b/frontend/components/screen/ScreenDesigner.tsx index e590a6f2..aa2b83e7 100644 --- a/frontend/components/screen/ScreenDesigner.tsx +++ b/frontend/components/screen/ScreenDesigner.tsx @@ -101,7 +101,6 @@ import { ScreenPreviewProvider } from "@/contexts/ScreenPreviewContext"; import { TableOptionsProvider } from "@/contexts/TableOptionsContext"; // 새로운 통합 UI 컴포넌트 -import { LeftUnifiedToolbar, defaultToolbarButtons } from "./toolbar/LeftUnifiedToolbar"; import { SlimToolbar } from "./toolbar/SlimToolbar"; import { UnifiedPropertiesPanel } from "./panels/UnifiedPropertiesPanel"; @@ -4464,15 +4463,14 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD onGenerateMultilang={handleGenerateMultilang} isGeneratingMultilang={isGeneratingMultilang} onOpenMultilangSettings={() => setShowMultilangSettingsModal(true)} + isPanelOpen={panelStates.unified?.isOpen || false} + onTogglePanel={() => togglePanel("unified")} /> - {/* 메인 컨테이너 (좌측 툴바 + 패널들 + 캔버스) */} + {/* 메인 컨테이너 (패널들 + 캔버스) */}
- {/* 좌측 통합 툴바 */} - - - {/* 통합 패널 */} + {/* 통합 패널 - 좌측 사이드바 제거 후 너비 300px로 확장 */} {panelStates.unified?.isOpen && ( -
+

패널

+ {onTogglePanel &&
} + + {/* 패널 토글 버튼 */} + {onTogglePanel && ( + + )} +
diff --git a/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx b/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx index 0b1d1bed..8cd8b0c5 100644 --- a/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx +++ b/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx @@ -760,130 +760,6 @@ export const TableListConfigPanel: React.FC = ({
테이블 리스트 설정
- {/* 커스텀 테이블 설정 */} -
-
-

데이터 소스 테이블

-

화면 메인 테이블과 다른 테이블을 사용할 수 있습니다

-
-
- - {/* 커스텀 테이블 사용 여부 */} - {/* 현재 선택된 테이블 표시 (카드 형태) */} -
- -
-
- {config.customTableName || config.selectedTable || screenTableName || "테이블 미선택"} -
-
- {config.useCustomTable ? "커스텀 테이블" : "화면 기본 테이블"} - {config.isReadOnly && " (읽기전용)"} -
-
-
- - {/* 테이블 선택 Combobox (기본/전체 그룹) */} - - - - - - - - - 테이블을 찾을 수 없습니다 - - {/* 그룹 1: 화면 기본 테이블 */} - {screenTableName && ( - - { - console.log("🔍 기본 테이블 선택:", currentValue, screenTableName); - onChange({ - ...config, - useCustomTable: false, - customTableName: undefined, - selectedTable: screenTableName, - columns: [], - }); - setTableComboboxOpen(false); - }} - className="text-xs cursor-pointer" - > - - - {screenTableName} - - - )} - - {/* 그룹 2: 전체 테이블 */} - - {availableTables - .filter((table) => table.tableName !== screenTableName) - .map((table) => ( - { - console.log("🔍 전체 테이블 선택:", currentValue, table.tableName); - onChange({ - ...config, - useCustomTable: true, - customTableName: table.tableName, - selectedTable: table.tableName, - columns: [], - }); - setTableComboboxOpen(false); - }} - className="text-xs cursor-pointer" - > - - - {table.displayName || table.tableName} - - ))} - - - - - - - {/* 읽기전용 설정 */} -
- handleChange("isReadOnly", checked)} - /> - -
-
- {/* 툴바 버튼 설정 */}