- 새 M02_MasterTemplete_DrawingCard — 고칠 권한 + 저장 길이면 CAD 를 고치기로(보기만 끔) · 제목줄 · 리본 · 패널 · 상태줄 숨김(같은 출처 스타일 · CAD 앱 안 고침) · 전체 편집기 [도면 수정]과 같은 단축키 - 카드 [저장] · Ctrl+S = 전체 편집기와 같은 저장 길(saveTemplate · 읽은 문서에 도면 칸만) - ItemSource write(M02 화면 자료 자리만 · 모달 복사본은 보기만) - 저장 안 한 카드 고침 — 다른 항목 열 때 · 페이지 떠날 때 물음(ItemCards · Structure dirty · UI_Main 두 줄) - 시험 test_m02_drawing_card(새) · structure_panel · item_picker_detail 모양 맞춤 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BU9gbNE3aWFUvE61pS2WGt
38 lines
1.8 KiB
TypeScript
38 lines
1.8 KiB
TypeScript
/* =============================================================================
|
|
* M02_MasterTemplete_ItemSource.ts
|
|
* 항목 카드 · 편집기가 문서를 읽는 **자료 자리**(계획서 25-2d) — 층 고정(`getActiveLayer`)이던 자리를
|
|
* 인자로 뺌. M02 화면은 지금 층(`layerSource`) · 항목 고르기 모달은 프로젝트 복사본 또는 원본 층.
|
|
* 카드(`M02_MasterTemplete_ItemCards.ts`)는 어디서 읽는지 모르고 이 창구만 부름.
|
|
* ========================================================================== */
|
|
|
|
import {
|
|
getActiveLayer,
|
|
readTemplate,
|
|
saveTemplate,
|
|
type Layer,
|
|
} from "./M02_MasterTemplete_Api_Fetch";
|
|
|
|
/** 집계표 열 하나에 딸린 문서 셋 — 구조물 도면 · 면적산출 · 재료산출 */
|
|
export type ItemPart = "structure" | "area" | "material";
|
|
|
|
export interface ItemSource {
|
|
/** CAD 자동백업 칸을 가르는 층 — 프로젝트 복사본이면 `project` */
|
|
layer: Layer;
|
|
projectId: string | null;
|
|
/** 열 id 의 문서 하나 — 못 읽으면 던짐(카드가 「없음」 · 알림으로 갈라 보임) */
|
|
read: (part: ItemPart, column: string) => Promise<{ 문서: unknown; 판?: string | null }>;
|
|
/** 카드 안 [저장](PLAN 31-4) — 전체 편집기와 같은 저장 길 · 없으면 카드는 보기만 */
|
|
write?: (part: ItemPart, column: string, 판: string, 문서: unknown) => Promise<{ 판: string }>;
|
|
}
|
|
|
|
/** M02 화면의 자료 자리 — 부를 때의 지금 층(`getActiveLayer`) 그대로 */
|
|
export const layerSource = (): ItemSource => {
|
|
const layer = getActiveLayer();
|
|
return {
|
|
layer,
|
|
projectId: null,
|
|
read: (part, column) => readTemplate(layer, part, column, null),
|
|
write: (part, column, 판, 문서) => saveTemplate(layer, part, column, null, 판, 문서),
|
|
};
|
|
};
|