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
@@ -14,7 +14,7 @@
* 폼 칸에 옮겨 붙인다(`_Adjust_Dock`). 폼과 같은 값(형태 · 높이 · 길이 · 전 · 후)은 만들지 않는다.
* ========================================================================== */
import type { InletStructureChoice, RevetKey } from "./B06_Section_UI_Cross_Culvert";
import type { InletStructureChoice, RevetKey, RevetPick } from "./B06_Section_UI_Cross_Culvert";
import { REVET_FORMS } from "./B06_Section_UI_Cross_Culvert_Const";
import type { BasinAdjust, WallAdjust } from "./B06_Section_UI_Cross_Culvert_Types";
import type { SpanValues } from "./B06_Section_UI_Cross_Culvert_Wire";
@@ -97,7 +97,7 @@ export interface StructurePanelDeps {
export interface StructurePanelHandle {
root: HTMLElement;
/** null이면 숨긴다. 값이 오면 그 구조물 기준으로 다시 그린다. */
show: (key: RevetKey | null) => void;
show: (key: RevetPick | null) => void;
}
/**
@@ -494,9 +494,12 @@ export function buildStructurePanel(
return {
root,
show: (key) => {
show: (pick) => {
// 관 = 조정창 없음 · 좌측 「관」 상자만 강조(118-1 · 세월교 본체 꼴)
const key = pick === "pipe" ? null : pick;
current = key;
root.classList.toggle("is-hidden", key === null);
root.dataset.side = pick === "pipe" ? "pipe" : "";
document.removeEventListener("keydown", onArrowKey);
drag.detach();
if (!key) return;