diff --git a/B06_Section/B06_Section_UI_Adjust_Dock.ts b/B06_Section/B06_Section_UI_Adjust_Dock.ts index be68c9cd..dd3a9c1a 100644 --- a/B06_Section/B06_Section_UI_Adjust_Dock.ts +++ b/B06_Section/B06_Section_UI_Adjust_Dock.ts @@ -170,6 +170,17 @@ export function adoptAdjustPanel(panelRoot: HTMLElement): void { relocateSideRows(panelRoot); } +/** + * 이식을 **다시 한 번** 돌린다 — 폼이 다른 시설로 갈아 끼워진 뒤에 부른다. + * 벽 선택은 카드가 먼저 처리하고 폼 교체가 뒤따르므로, 처음 이식할 때는 목적지 + * 칸(배관 유입구·유출구 / 독립 좌·우)이 아직 이전 시설 것이다(2026-08-30 사용자: + * 다른 기슭막이를 고른 뒤 배관 유출을 고르면 강조가 없다). + */ +export function refreshAdjustSlots(): void { + const panel = slot?.firstElementChild as HTMLElement | null; + if (panel) relocateSideRows(panel); +} + /** 이 사본이 슬롯에 서 있으면 내린다 — 다른 사본이 이미 대신 서 있으면 손대지 않는다. */ export function releaseAdjustPanel(panelRoot: HTMLElement): void { if (!slot || !slot.contains(panelRoot)) return; diff --git a/B06_Section/B06_Section_UI_Page_Structures_Panel.ts b/B06_Section/B06_Section_UI_Page_Structures_Panel.ts index 5016e46b..54868d13 100644 --- a/B06_Section/B06_Section_UI_Page_Structures_Panel.ts +++ b/B06_Section/B06_Section_UI_Page_Structures_Panel.ts @@ -24,7 +24,12 @@ import { } from "../B05_Profile/B05_Profile_Api_Structures"; import { fetchDetailPipePoints } from "../B04_PreProcess/B04_PreProcess_Api_Fetch"; import { showToast } from "@ui/ui_template_elements"; -import { adjustDockRoot, resetAdjustDock, setAdjustSideSlots } from "./B06_Section_UI_Adjust_Dock"; +import { + adjustDockRoot, + refreshAdjustSlots, + resetAdjustDock, + setAdjustSideSlots, +} from "./B06_Section_UI_Adjust_Dock"; import type { SectionDetailResponse } from "./B06_Section_Api_Fetch"; import type { StationControls } from "./B06_Section_UI_Page_Station_Controls"; @@ -411,6 +416,8 @@ export function wireStructureSelection( origRevet(chainageM, key); panel.showPipeAt(key ? ownerChainageOf(chainageM) : null); if (key) syncInletStructure(); + // 폼이 이 시설로 갈아 끼워진 뒤에 이식을 다시 돌린다 — 목적지 칸이 그제야 선다. + refreshAdjustSlots(); }; const origFord = stationControls.ford.select;