"use client"; import React from "react"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Checkbox } from "@/components/ui/checkbox"; import { DataFilterConfigPanel } from "@/components/screen/config-panels/DataFilterConfigPanel"; export interface OptionsConfigPanelProps { config: any; onChange: (key: string, value: any) => void; onNestedChange: (parentKey: string, childKey: string, value: any) => void; availableColumns: Array<{ columnName: string; dataType: string; label?: string; input_type?: string }>; screenTableName?: string; } /** * 옵션 설정 패널: 툴바, 체크박스, 기본 정렬, 가로 스크롤, 데이터 필터링 */ export const OptionsConfigPanel: React.FC = ({ config, onChange, onNestedChange, availableColumns, screenTableName, }) => { return (
{/* 툴바 버튼 설정 */}

툴바 버튼 설정

테이블 상단에 표시할 버튼을 선택합니다


onNestedChange("toolbar", "showEditMode", checked)} />
onNestedChange("toolbar", "showExcel", checked)} />
onNestedChange("toolbar", "showPdf", checked)} />
onNestedChange("toolbar", "showCopy", checked)} />
onNestedChange("toolbar", "showSearch", checked)} />
onNestedChange("toolbar", "showFilter", checked)} />
onNestedChange("toolbar", "showRefresh", checked)} />
onNestedChange("toolbar", "showPaginationRefresh", checked)} />
{/* 체크박스 설정 */}

체크박스 설정


onNestedChange("checkbox", "enabled", checked)} />
{config.checkbox?.enabled && ( <>
onNestedChange("checkbox", "selectAll", checked)} />
)}
{/* 기본 정렬 설정 */}

기본 정렬 설정

테이블 로드 시 기본 정렬 순서를 지정합니다


{config.defaultSort?.columnName && (
)}
{/* 가로 스크롤 및 컬럼 고정 */}

가로 스크롤 및 컬럼 고정


onNestedChange("horizontalScroll", "enabled", checked)} />
{config.horizontalScroll?.enabled && (
onNestedChange("horizontalScroll", "maxVisibleColumns", parseInt(e.target.value) || 8) } min={3} max={20} placeholder="8" className="h-8" />
이 수를 넘는 컬럼이 있으면 가로 스크롤이 생성됩니다
)}
{/* 데이터 필터링 설정 */}

데이터 필터링

특정 컬럼 값으로 데이터를 필터링합니다


({ columnName: col.columnName, columnLabel: col.label || col.columnName, dataType: col.dataType, input_type: col.input_type, }) as any, )} config={config.dataFilter} onConfigChange={(dataFilter) => onChange("dataFilter", dataFilter)} />
); };