/* ============================================================================= * B05_Profile_UI_Drainage_Side.ts * 배수유역도를 종단도 오른쪽 판(`side`)으로 끼우는 홀로 선 함수(계획서 24-2c · 24-2e). * 판 자리 약속은 `A00_Common/design/design_profile.ts` 의 `DesignSideFactory` 다 — * `createDrainageSide` 가 그 모양 그대로다(`(host) => 판`). * * 판(`createDrainagePanel`)은 종단 패널을 모른다 — 종단쪽 일은 전부 `host` * (`DrainagePanelCallbacks` + projectId · view, `_Panel_Types` 약속)로 받고, 종단쪽에서 들어오는 일은 * 판의 창구(`setRoute` · `setIntervalSpans` · `pipeChainages` · `setPipeChainages` · * `selectPipeAtChainage` …)로만 한다. * · 관 목록이 바뀜(최소 흙덮기 경고 · 구조물 라인 · 통합 목록) = `host.onPipesChanged` * · 관 자리 읽기 · 쓰기(되돌리기) = `pipeChainages()` · `setPipeChainages()` * · 우클릭 메뉴의 구조물 종류 = `host.structureMenuItems` * · 구간 띠 · 노선 = `setIntervalSpans()` · `setRoute()` * 두 보기(종단 · 횡단)에서 같은 판을 끼운다 — 판은 늘 보이고 접기 · 펼치기는 판 안 손잡이 하나로. * ========================================================================== */ import "./B05_Profile_UI_Style_Drainage.css"; // 홀로 서려면 판이 자기 모양을 들고 온다. import type { DesignSideBoard, DesignSideHost } from "../A00_Common/design/design_profile"; import { createDrainagePanel } from "./B05_Profile_UI_Drainage_Panel"; /** 종단쪽이 넘기는 이음 — 판 바깥 약속(`DrainagePanelCallbacks`)에 projectId · view 를 더한 것. */ export type DrainageSideHost = DesignSideHost; /** `DesignSideFactory` — 종단도를 만들 때 한 번 부른다. 접기 · 펼치기는 판 손잡이 몫. */ export function createDrainageSide(host: DrainageSideHost): DesignSideBoard { return { ...createDrainagePanel(host), // 보기가 바뀌어도 판은 다시 안 만든다. setView: () => {}, }; }