feat(b07): 횡단 장 안내선 보이기 / 숨기기 단추 — 점선 작도 영역 + 붉은 넘침 틀 · 숨김이면 넘침 토스트 없음(180-3)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01STqEqztUthVFBmEP18wBSz
This commit is contained in:
2026-10-10 11:56:37 +09:00
co-authored by Claude Sonnet 5.5
parent be57e54fff
commit 1ceee943bc
8 changed files with 303 additions and 15 deletions
+4
View File
@@ -36,6 +36,7 @@ const CAD_PLACE_CANCELLED_MESSAGE = "aislo:b08:place-cancelled";
/** 작도 영역 가이드(169-1 · 169-3) — 짝 = CAD `integration/guide-area.ts` */
const CAD_GUIDE_AREA_MESSAGE = "aislo:b08:guide-area";
const CAD_GUIDE_CHANGED_MESSAGE = "aislo:b08:guide-changed";
const CAD_GUIDE_VISIBLE_MESSAGE = "aislo:b08:guide-visible";
/** 작도 영역 [왼쪽 x, 아래 y, 오른쪽 x, 위 y] — 도면 좌표 mm */
export type CadGuideArea = [number, number, number, number];
@@ -128,6 +129,8 @@ export interface CadHost<D extends CadHostDrawing, M, Q> {
updateTable: (link: string, cells: unknown[][], preview?: boolean) => Promise<number>;
/** 가이드 사각형만 갈기(숫자 칸 고침 · 169-3) — 도면은 다시 안 실음. */
setGuideArea: (area: CadGuideArea) => void;
/** 안내선(점선 작도 영역 + 붉은 넘침 틀) 보이기 / 숨기기(180-3) — 싣기를 거쳐도 이어짐 · 도면에 안 섞임. */
setGuideVisible: (visible: boolean) => void;
/** 메시지 듣기를 멈춘다 — 페이지를 떠날 때. */
destroy: () => void;
}
@@ -360,6 +363,7 @@ export function createCadHost<D extends CadHostDrawing, M = unknown, Q = unknown
placeTable,
updateTable,
setGuideArea: (area) => postAfterLoad({ type: CAD_GUIDE_AREA_MESSAGE, area }),
setGuideVisible: (visible) => postAfterLoad({ type: CAD_GUIDE_VISIBLE_MESSAGE, visible }),
destroy: () => {
stopLoadWatchdog();
window.removeEventListener("message", onMessage);