feat(B05 배수유역): 347-2 자동/수동 다시 셈 · ⚙ 설정 창 · 347-3 제안 목록 · [적용]

- 계산 묶음 drainage 단계(pipelineStage · 붙이기 = 묶음 쪽) — 노선 초안 · 관이 바뀌면 낡음 · 자동 = 3 s 조용한 뒤 「지금 노선으로 셈」 · 수동 = 칸만 흐림 + 가운데 [업데이트] · 구석 「계산 중」 · 다시 조작하면 요청 끊고 처음으로 · 덮개 없음
- ⚙ 설정 창(배수유역 칸 머리 · openModal) 수동(기본) / 자동 · 계정 화면 설정 drainage-mode(b_page_state 등록표 한 줄 · build:corridor 다시 지음)
- 늦은 답 버림 = 차례 번호 · 서버 superseded · 세부유역 요청 감싸기와 같은 차례(B05_Profile_UI_Drainage_Run 으로 나눔)
- 제안 = 관경(Ø→Ø) · 시설(BOX암거 · 세월교) · 관 자리 후보(지도 점선 원) · [적용] 한 번에 관 초안 · 자동 바꿈 없음
- [확정] savePipes(confirm) = PUT ?recompute=true · [저장] = 낡음 달고 저장 · 패널 691줄
- 순수 규칙 logic/B05_Profile_Drainage_Live · _Suggest · 시험 test_347_2_drainage_live_ui · typecheck 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XWh5wNNycMkbwMpACz1rte
This commit is contained in:
2026-10-16 11:47:55 +09:00
co-authored by Claude Opus 5.5
parent d5d6415966
commit a5c36a4a29
14 changed files with 747 additions and 36 deletions
@@ -266,3 +266,70 @@
.b05-drainage[hidden] {
display: none;
}
/* 배수유역 낡음(347-2) — 칸만 흐림 · 가운데 [업데이트] · 구석 「계산 중」(조작은 막지 않음). */
.b05-drainage.is-stale .b05-drainage__canvas,
.b05-drainage.is-stale .b05-drainage__image,
.b05-drainage.is-stale .b05-drainage__summary,
.b05-drainage.is-stale .b05-drainage__basins,
.b05-drainage.is-stale .b05-drainage__suggest {
filter: blur(2px);
opacity: 0.6;
}
.b05-drainage__veil {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
pointer-events: none;
}
.b05-drainage__veil[hidden] {
display: none;
}
.b05-drainage__veil .b05-drainage__update {
pointer-events: auto;
}
.b05-drainage__busy {
position: absolute;
right: var(--spacing-8);
bottom: var(--spacing-8);
}
.b05-drainage__busy[hidden] {
display: none;
}
.b05-drainage__mode {
display: flex;
gap: var(--spacing-8);
align-items: center;
padding: var(--spacing-8) 0;
color: var(--color-text-body);
}
/* 제안 목록(347-3) — 유역 목록 위 · [적용] 한 번. */
.b05-drainage__suggest {
flex: 0 0 auto;
border-top: 1px solid var(--color-border);
padding: var(--spacing-8);
font-size: var(--text-caption);
color: var(--color-text-body);
}
.b05-drainage__suggest-head {
display: flex;
align-items: center;
justify-content: space-between;
}
.b05-drainage__suggest-list {
max-height: 6em;
margin: var(--spacing-8) 0 0;
padding-left: 1.2em;
overflow-y: auto;
}