feat(b06): 배관 횡단도 관 고름 강조 · 좌측 「관」 상자 강조(118-1)

- 관 판정면(벽 판정면 아래 — 겹친 자리는 벽) · 누르면 관 두 겹 is-active
- 고름 전용 키 RevetPick(RevetKey | "pipe") — 조정 함수는 RevetKey 그대로
- 조정창 없음(show "pipe" = 숨김 · side "pipe") · 좌측 fieldset[data-spec-container="pipe"] 강조 + 스크롤
- 좌측 「관」 상자 칸 고침 = 관 고름 · B05 3D pipe 키 → B06 관 고름
- 107-1 벽 · 본체 동시 고름 금지 그대로 · 관 숨긴 카드(링크 · 세월교 · 박스)엔 판정면 없음
- 시험 test_118_pipe_pick(helper_118_pipe_pick.cjs)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
This commit is contained in:
2026-10-08 18:27:34 +09:00
co-authored by Claude Opus 5.5
parent 5f64633df3
commit e53f8d4eff
11 changed files with 494 additions and 46 deletions
@@ -55,7 +55,7 @@ import {
} from "./B06_Section_UI_Adjust_Dock";
import type { SectionDetailResponse } from "./B06_Section_Api_Fetch";
import type { StationControls } from "./B06_Section_UI_Page_Station_Controls";
import type { RevetKey } from "./B06_Section_UI_Cross_Culvert";
import type { RevetPick } from "./B06_Section_UI_Cross_Culvert";
import { withSpecDefaults } from "./B06_Section_UI_Page_Structures_Spec";
const PIPE_ADD_GUIDE = "계곡 통과 시설을 넣고 빼려면 프로젝트를 먼저 여세요.";
@@ -616,9 +616,9 @@ export function wireStructureSelection(
};
// 관 상자 칸을 고치거나 고르면 그 부분을 고름 — 횡단에서 누른 것과 같은 길(54-30)
const keyOf = (box: HTMLElement): RevetKey | null => {
const keyOf = (box: HTMLElement): RevetPick | null => {
const id = box.dataset.specContainer;
if (id === "inlet" || id === "outlet") return id;
if (id === "inlet" || id === "outlet" || id === "pipe") return id;
return id === "soil_add" ? `extra${Number(box.dataset.specIndex)}` : null;
};
const pickBox = (box: HTMLElement): void => {