feat(481-1 페이지 이동): B05~B09 좌측 아래 [?] [<] [>] — 이웃 진행 단계 단추 누름 · B05 · B06 [노선 보기] · [횡단 보기] 지움

- ui_template_help: [?] 뒤 [<] [>] · 다섯 주소 목록만(b09-print · B03 · B04 · M01 · M02 뺌) · B09 [>] 흐림 · ui-step-nav 이벤트
- ui_template_workflow_layout: ui-step-nav 듣개 — 켜진 칸 ±1 단계 단추 click(onStepClick 한 길) · 꺼진 단계 = 그 단추 title 알림
- CSS: [<] [>] = [?] 같은 정사각 · 늘어남 규칙에서 뺌(overlay · B09 도크 한 줄)
- design_dock · design_shared · locale_b2: switchView 단추 · 글 지움
- 시험: test_280_2_step_nav(새) · test_design_view_parity(단추 셋)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-19 22:05:26 +09:00
co-authored by Claude Opus 5.5
parent afe6e4a799
commit d593075ea5
12 changed files with 386 additions and 52 deletions
@@ -2,6 +2,7 @@ import "./ui_template_workflow_layout.css";
import { ROUTES } from "@config/config_frontend";
import { t } from "./ui_template_locale";
import { createWorkflowOverlays } from "./ui_template_overlay";
import { showToast } from "./ui_template_elements";
import { navigateTo } from "../A00_Common/router";
import { setDrawerSteps } from "../A00_Common/app_shell";
import { fetchDashboardMe } from "../B01_Dashboard/B01_Dashboard_Api_Fetch";
@@ -206,6 +207,14 @@ export function createWorkflowLayout(options: WorkflowLayoutOptions): WorkflowLa
".ui-workflow-layout__step:not(.ui-workflow-layout__step--home)",
),
];
// 좌측 아래 [<] [>](요구 280-2) = 이웃 단계 단추 누름 — 막힘 · 저장 · 이동은 그 단추의 `onStepClick` 한 길
root.addEventListener("ui-step-nav", (event) => {
const active = steps.findIndex((step) => step.classList.contains("is-active"));
const target = active < 0 ? undefined : steps[active + (event as CustomEvent<number>).detail];
if (!(target instanceof HTMLButtonElement)) return;
if (target.disabled) showToast(target.title || t("WF_State_NotStarted"));
else target.click();
});
return {
root,
setOptionsOpen: overlays.setTitleOpen,