ERP-node/frontend/lib/registry/components/v2-date/index.ts

78 lines
1.9 KiB
TypeScript

/**
* V2Date 컴포넌트 정의
*
* 날짜, 시간, 날짜시간, 날짜범위 등 다양한 날짜/시간 입력을 지원하는 통합 컴포넌트
*/
import { ComponentCategory } from "@/types/component";
import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { V2DateConfigPanel } from "@/components/v2/config-panels/V2DateConfigPanel";
import { V2Date } from "@/components/v2/V2Date";
export const V2DateDefinition = createComponentDefinition({
id: "v2-date",
name: "V2 날짜",
description: "날짜, 시간, 날짜시간, 날짜범위 등 다양한 날짜/시간 입력 지원",
category: ComponentCategory.INPUT,
webType: "date",
version: "2.0.0",
component: V2Date,
// 기본 속성
defaultProps: {
config: {
dateType: "date",
format: "YYYY-MM-DD",
placeholder: "날짜 선택",
required: false,
readonly: false,
disabled: false,
showTime: false,
use24Hours: true,
},
},
// 설정 스키마
configSchema: {
dateType: {
type: "select",
label: "날짜 타입",
options: [
{ value: "date", label: "날짜" },
{ value: "datetime", label: "날짜시간" },
{ value: "time", label: "시간" },
{ value: "daterange", label: "날짜 범위" },
{ value: "month", label: "월" },
{ value: "year", label: "연도" },
],
},
format: {
type: "text",
label: "표시 형식",
placeholder: "YYYY-MM-DD",
},
required: {
type: "boolean",
label: "필수 입력",
},
showTime: {
type: "boolean",
label: "시간 표시",
},
},
// 이벤트
events: ["onChange", "onClear"],
// 아이콘
icon: "Calendar",
// 태그
tags: ["date", "time", "datetime", "calendar", "v2"],
// 설정 패널
configPanel: V2DateConfigPanel,
});
export default V2DateDefinition;