feat(m02): 카드 · 면적 도면 패널 미리보기 탭 고르기 · 카드 저장 문서 전체(105-3)

- 카드 도면 미리보기 = mountStructureSheets(공용 탭 줄 · pickTabs 고르기만) · 「장 n」 배지 지움
- 카드 저장 = getDoc() 모든 장 — 2장 보다 Ctrl+S 해도 1장 그대로
- 면적 상세 오른쪽 도면 패널도 탭(고르기만 · 보내기는 지금 장)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015KYZ2HWWdUwZWYnn3tQz7X
This commit is contained in:
2026-10-08 16:22:18 +09:00
co-authored by Claude Opus 5.5
parent 01d819bfb6
commit 36fc3d6c3b
6 changed files with 60 additions and 55 deletions
@@ -58,6 +58,8 @@ export interface DrawingTemplateOptions {
frameNumber?: string;
/** 탭 줄(82-1) — 그림 칸 바로 위에 놓음 */
tabs?: HTMLElement;
/** 여러 장 탭 줄은 고르기만(105-3 카드 · 면적 도면 패널) — 추가 · 이름 · 지우기 · 끌기 없음 */
pickTabs?: boolean;
}
const RECOVERY_PREFIX = "OPEN_WEB_CAD__RECOVERY__";
@@ -439,7 +441,8 @@ export function mountStructureSheets(
);
const tabs: CadTabs<DrawingTemplateDoc> = createCadTabs<DrawingTemplateDoc>({
features: readOnly ? {} : { add: true, rename: true, remove: true, reorder: true },
features:
readOnly || options.pickTabs ? {} : { add: true, rename: true, remove: true, reorder: true },
capture: async () => {
const got = await drawing.getDoc();
if (placing && placed(got, placing.link)) placing = null;
@@ -485,7 +488,7 @@ export function mountStructureSheets(
);
retitle();
tabs.set(tabs.tabs(), FIRST_TAB); // 풍선 글을 그림
if (readOnly && !more.length) tabs.element.hidden = true; // 볼 장이 하나 — 줄 없음
if ((readOnly || options.pickTabs) && !more.length) tabs.element.hidden = true; // 볼 장이 하나 — 줄 없음
const drawing = mountDrawingTemplate(container, doc.도면, {
...options,