From 13fc271eb4465374dc856fcbbc478dbcc7901f07 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 17 Oct 2026 00:34:58 +0900 Subject: [PATCH] =?UTF-8?q?fix(B06):=20364-7=20=EB=8D=A7=20=EC=A4=91?= =?UTF-8?q?=EC=8B=AC=EC=A0=90=20=EC=B0=BD=20=E2=97=80=E2=96=B6=20=ED=88=B4?= =?UTF-8?q?=ED=8C=81=20=3D=20=E3=80=8C=EC=9D=B4=20=EC=B8=A1=EC=A0=90=20?= =?UTF-8?q?=EB=85=B8=EC=84=A0=EC=9D=84=20=ED=99=94=EB=A9=B4=20=EC=99=BC?= =?UTF-8?q?=EC=AA=BD=20=C2=B7=20=EC=98=A4=EB=A5=B8=EC=AA=BD=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=200.1=20m=E3=80=8D(=EC=82=AC=EB=A9=B4=20=EA=B8=80=20?= =?UTF-8?q?=EA=B7=B8=EB=8C=80=EB=A1=9C=20=EB=82=A8=EB=8D=98=20=EA=B2=83)?= =?UTF-8?q?=20=C2=B7=20=E2=86=BA=20=C2=B7=20=EC=86=8C=EB=8B=A8=20=E2=96=B2?= =?UTF-8?q?=E2=96=BC=20=EC=88=A8=EA=B9=80=20=EC=8B=9C=ED=97=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01QfHKQs7J3hQELKMWQMUJEy --- .../B06_Section_UI_Cross_Design_Pick.ts | 21 ++++++++----------- resources/tester/test_356_b06_card_center.py | 5 +++++ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/B06_Section/B06_Section_UI_Cross_Design_Pick.ts b/B06_Section/B06_Section_UI_Cross_Design_Pick.ts index 217f576d1..355e83579 100644 --- a/B06_Section/B06_Section_UI_Cross_Design_Pick.ts +++ b/B06_Section/B06_Section_UI_Cross_Design_Pick.ts @@ -488,22 +488,17 @@ export function attachDesignLinePick(input: { if (axis === "center") return centerShift?.step(dir); if (side && shift) shift.set(side, shiftedExtend(shift.valueOf(side), side, dir, kx)); }; + // 툴팁 = 고른 것의 실제 동작(364-7 · 사면 = 노견째 이동 · 중심점 = 그 측점 노선) + const stepTitle = (screen: "왼쪽" | "오른쪽"): string => + axis === "center" + ? `이 측점 노선을 화면 ${screen}으로 0.1 m` + : `고른 사면을 화면 ${screen}으로 0.1 m(노견째 · 노폭 안쪽은 못 감)`; move.controls.append( - dpadButton( - "◀", - "left", - "고른 사면을 화면 왼쪽으로 0.1 m(노견째 · 노폭 안쪽은 못 감)", - step(-1), - ), + dpadButton("◀", "left", stepTitle("왼쪽"), step(-1)), dpadButton("↺", "reset", "이 쪽 이동 0", () => { if (side && shift) shift.set(side, 0); }), - dpadButton( - "▶", - "right", - "고른 사면을 화면 오른쪽으로 0.1 m(노견째 · 노폭 안쪽은 못 감)", - step(1), - ), + dpadButton("▶", "right", stepTitle("오른쪽"), step(1)), ); // 소단 높이 줄(194-1) — ▲ = 얕게(노면 끝 위 금지 = 0 에서 멈춤) · ▼ = 깊게(사면 끝 앞에서 멈춤) const lift = makeRow("높이"); @@ -574,6 +569,8 @@ export function attachDesignLinePick(input: { move.row.classList.toggle("is-hidden", !sideways); move.controls.classList.toggle("is-hidden", !sideways); move.controls.children[1]?.classList.toggle("is-hidden", axis === "center"); + const [toLeft, , toRight] = move.controls.children as unknown as HTMLElement[]; + [toLeft.title, toRight.title] = [stepTitle("왼쪽"), stepTitle("오른쪽")]; lift.row.classList.toggle("is-hidden", axis !== "depth"); lift.controls.classList.toggle("is-hidden", axis !== "depth"); const sideName = side === "left" ? "(좌)" : "(우)"; diff --git a/resources/tester/test_356_b06_card_center.py b/resources/tester/test_356_b06_card_center.py index 27bc90d82..e3150e9fa 100644 --- a/resources/tester/test_356_b06_card_center.py +++ b/resources/tester/test_356_b06_card_center.py @@ -82,6 +82,11 @@ def test_배선(): pick = (B06 / "B06_Section_UI_Cross_Design_Pick.ts").read_text(encoding="utf-8") assert "center: section.chainage_m," in pick # designLineMoves → 카드 고름 끝 조각 assert 'if (axis === "center") return centerShift?.step(dir);' in pick + # 364-7 덧 — 중심점 ◀▶ 툴팁 = 노선 좌우 · ↺ · 소단 ▲▼ 숨김 + assert "`이 측점 노선을 화면 ${screen}으로 0.1 m`" in pick + assert '[toLeft.title, toRight.title] = [stepTitle("왼쪽"), stepTitle("오른쪽")];' in pick + assert 'move.controls.children[1]?.classList.toggle("is-hidden", axis === "center");' in pick + assert 'lift.row.classList.toggle("is-hidden", axis !== "depth");' in pick order = (B06 / "B06_Section_UI_Cross_Pick_Order.ts").read_text(encoding="utf-8") assert "layer.append(...surfaces, ...edges, ...lines, ...centers);" in order edit = (ROOT / "B05_Profile" / "B05_Profile_UI_RouteEdit.ts").read_text(encoding="utf-8")