79 lines
1.9 KiB
TypeScript
79 lines
1.9 KiB
TypeScript
|
|
/**
|
||
|
|
* V2Media 컴포넌트 정의
|
||
|
|
*
|
||
|
|
* 파일, 이미지, 비디오, 오디오 등 다양한 미디어 타입을 지원하는 통합 미디어 컴포넌트
|
||
|
|
*/
|
||
|
|
|
||
|
|
import { ComponentCategory } from "@/types/component";
|
||
|
|
import { createComponentDefinition } from "../../utils/createComponentDefinition";
|
||
|
|
import { V2MediaConfigPanel } from "@/components/v2/config-panels/V2MediaConfigPanel";
|
||
|
|
import { V2Media } from "@/components/v2/V2Media";
|
||
|
|
|
||
|
|
export const V2MediaDefinition = createComponentDefinition({
|
||
|
|
id: "v2-media",
|
||
|
|
name: "V2 미디어",
|
||
|
|
description: "파일, 이미지, 비디오, 오디오 등 다양한 미디어 타입 지원",
|
||
|
|
category: ComponentCategory.INPUT,
|
||
|
|
webType: "file",
|
||
|
|
version: "2.0.0",
|
||
|
|
component: V2Media,
|
||
|
|
|
||
|
|
// 기본 속성
|
||
|
|
defaultProps: {
|
||
|
|
config: {
|
||
|
|
mediaType: "file",
|
||
|
|
multiple: false,
|
||
|
|
preview: true,
|
||
|
|
maxSize: 10, // MB
|
||
|
|
accept: "*/*",
|
||
|
|
showFileList: true,
|
||
|
|
dragDrop: true,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
// 설정 스키마
|
||
|
|
configSchema: {
|
||
|
|
mediaType: {
|
||
|
|
type: "select",
|
||
|
|
label: "미디어 타입",
|
||
|
|
options: [
|
||
|
|
{ value: "file", label: "파일" },
|
||
|
|
{ value: "image", label: "이미지" },
|
||
|
|
{ value: "video", label: "비디오" },
|
||
|
|
{ value: "audio", label: "오디오" },
|
||
|
|
],
|
||
|
|
},
|
||
|
|
multiple: {
|
||
|
|
type: "boolean",
|
||
|
|
label: "다중 업로드",
|
||
|
|
},
|
||
|
|
preview: {
|
||
|
|
type: "boolean",
|
||
|
|
label: "미리보기",
|
||
|
|
},
|
||
|
|
maxSize: {
|
||
|
|
type: "number",
|
||
|
|
label: "최대 크기 (MB)",
|
||
|
|
},
|
||
|
|
accept: {
|
||
|
|
type: "text",
|
||
|
|
label: "허용 파일 형식",
|
||
|
|
placeholder: "*/* 또는 image/*",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
// 이벤트
|
||
|
|
events: ["onChange", "onUpload", "onDelete"],
|
||
|
|
|
||
|
|
// 아이콘
|
||
|
|
icon: "Upload",
|
||
|
|
|
||
|
|
// 태그
|
||
|
|
tags: ["media", "file", "image", "upload", "v2"],
|
||
|
|
|
||
|
|
// 설정 패널
|
||
|
|
configPanel: V2MediaConfigPanel,
|
||
|
|
});
|
||
|
|
|
||
|
|
export default V2MediaDefinition;
|