/* ============================================================================= * M02_MasterTemplete_Sangeun_View.ts * 단가산출(SK) 상세 자리(717-2a) — 편집 칸 종류 sangeun 이 여는 곳(UI_Main 갈래 한 줄). * 717-2b = 상세 · 고침(`Sangeun_Detail.ts` mountSangeunDetail) · [저장]은 그 손잡이 `getDoc` · 고침 알림 `opt.onChanged`. * 804-8 = 페이지 [저장] 한 번에 수식도(`flush` 먼저 · 새 판) · 보기 고르기는 머리 줄 `slot`. * ========================================================================== */ import { mountSangeunDetail } from "./M02_MasterTemplete_Sangeun_Detail"; import type { Selection } from "./M02_MasterTemplete_UI_Main"; /** 고름(층 · 주인 · SK 키 = name) + 읽기만 · 고침 알림 */ export type SangeunViewOptions = Pick & { readOnly: boolean; onChanged: (dirty: boolean) => void; /** 수식 탭 저장 뒤 그 SK 새 판(802-4b-2) */ onVersion?: (version: string) => void; /** 머리 줄 빈 자리(804-8) */ slot?: HTMLElement; }; export function mountSangeunView( host: HTMLElement, doc: unknown, opt: SangeunViewOptions, ): { getDoc: () => Promise; destroy: () => void } { const one = mountSangeunDetail(host, doc, { ...opt, owner: opt.owner ?? null, source: true }); // 752-1 return { getDoc: () => one.flush().then(() => one.getDoc()), destroy: one.destroy }; }