ERP-node/frontend/lib/registry/pop-components/pop-string-list/index.tsx

65 lines
1.8 KiB
TypeScript

"use client";
/**
* pop-string-list 컴포넌트 레지스트리 등록 진입점
*
* 이 파일을 import하면 side-effect로 PopComponentRegistry에 자동 등록됨
*/
import { PopComponentRegistry } from "../../PopComponentRegistry";
import { PopStringListComponent } from "./PopStringListComponent";
import { PopStringListConfigPanel } from "./PopStringListConfig";
import { PopStringListPreviewComponent } from "./PopStringListPreview";
import type { PopStringListConfig } from "./types";
// 기본 설정값
const defaultConfig: PopStringListConfig = {
displayMode: "list",
header: { enabled: true, label: "" },
overflow: {
visibleRows: 5,
mode: "loadMore",
showExpandButton: true,
loadMoreCount: 5,
maxExpandRows: 50,
pageSize: 5,
paginationStyle: "bottom",
},
dataSource: { tableName: "" },
listColumns: [],
cardGrid: undefined,
};
// 레지스트리 등록
PopComponentRegistry.registerComponent({
id: "pop-string-list",
name: "리스트 목록",
description: "테이블 데이터를 리스트 또는 카드 형태로 표시",
category: "display",
icon: "List",
component: PopStringListComponent,
configPanel: PopStringListConfigPanel,
preview: PopStringListPreviewComponent,
defaultProps: defaultConfig,
connectionMeta: {
sendable: [
{
key: "selected_row",
label: "선택된 행",
type: "selected_row",
description: "사용자가 선택한 행 데이터를 전달",
},
],
receivable: [
{
key: "filter_condition",
label: "필터 조건",
type: "filter_value",
description: "외부 컴포넌트에서 받은 필터 조건으로 목록 필터링",
},
],
},
touchOptimized: true,
supportedDevices: ["mobile", "tablet"],
});