chore: 제어모드 IDE 작업 + v2/legacy 레지스트리 컴포넌트 폐기
- 제어모드 IDE: ControlCardPanel, control/ide/* (Canvas/LeftRail/RightRail/PanZoomStage/V3RuleNode 등), schemas, lib/api/control - 레지스트리 정리: aggregation-widget, status-count, section-card/paper, table-list(legacy/v2), tabs-widget 폐기 → table/_shared/ 로 통합 - InvLegacyButtonConfigPanel cp 마이그레이션 - canonical data view cleanup 후속 노트
This commit is contained in:
@@ -71,6 +71,7 @@ import {
|
||||
import { ImprovedButtonControlConfigPanel } from "@/components/screen/config-panels/ImprovedButtonControlConfigPanel";
|
||||
import { FlowVisibilityConfigPanel } from "@/components/screen/config-panels/FlowVisibilityConfigPanel";
|
||||
import type { ComponentData } from "@/types/screen";
|
||||
import { isTableLikeComponentType } from "@/lib/utils/componentTypeUtils";
|
||||
|
||||
// ───────────────────────────────────────────────────────
|
||||
// 상수: 액션 / 표시 / 변형
|
||||
@@ -112,6 +113,16 @@ const MODAL_SIZE_OPTIONS = [
|
||||
{ value: "full", label: "전체" },
|
||||
] as const;
|
||||
|
||||
// canonical table / legacy table-list / hidden v2-table-list / data-table / datatable
|
||||
// 은 table-like helper 로 통일. 추가로 repeater-field-group / form-group 도 데이터 전송
|
||||
// 호환 대상으로 함께 인식.
|
||||
const DATA_TRANSFER_EXTRA_PATTERNS = ["repeater-field-group", "form-group"] as const;
|
||||
const isDataTransferComponentType = (typeValue: unknown): boolean => {
|
||||
if (isTableLikeComponentType(typeValue)) return true;
|
||||
if (typeof typeValue !== "string") return false;
|
||||
return DATA_TRANSFER_EXTRA_PATTERNS.some((t) => typeValue.includes(t));
|
||||
};
|
||||
|
||||
const TRANSFER_MODE_OPTIONS = [
|
||||
{ value: "append", label: "추가" },
|
||||
{ value: "replace", label: "교체" },
|
||||
@@ -810,9 +821,7 @@ function ActionDetailBody(p: ActionDetailBodyProps) {
|
||||
{p.allComponents
|
||||
.filter((c: any) => {
|
||||
const t = c.componentType || c.type || "";
|
||||
return ["table-list", "repeater-field-group", "form-group", "data-table"].some(
|
||||
(x) => t.includes(x),
|
||||
);
|
||||
return isDataTransferComponentType(t);
|
||||
})
|
||||
.map((c: any) => (
|
||||
<option key={c.id} value={c.id}>
|
||||
@@ -841,9 +850,7 @@ function ActionDetailBody(p: ActionDetailBodyProps) {
|
||||
{p.allComponents
|
||||
.filter((c: any) => {
|
||||
const t = c.componentType || c.type || "";
|
||||
const ok = ["table-list", "repeater-field-group", "form-group", "data-table"].some(
|
||||
(x) => t.includes(x),
|
||||
);
|
||||
const ok = isDataTransferComponentType(t);
|
||||
return ok && c.id !== dt.sourceComponentId;
|
||||
})
|
||||
.map((c: any) => (
|
||||
|
||||
Reference in New Issue
Block a user