- 상자 화면(포인트 팔레트 · 알고리즘 · 조건 · 숨긴 [최적 경로 계산]) · solveRouteAction · routePoint/circlePoint 를 B05_Profile/Old/B05_Profile_UI_RouteCalc.ts 로 떼어 옮김 - 좌측 패널 등록 · onSolve · 칸 값(algorithm · paved · 곡선반경 · 경사 상하한 · 회피 통과) 끊음 - tsconfig 에서 B05_Profile/Old 제외 · 서버 경로 계산 API · 자동설계 체인은 그대로 - 시험: 좌측 칸 수 1+4+2 · 칸 제목에서 「경로 계산 설정」 뺌 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W4uKaV4ZBhsJN4GHG7yRj4
53 lines
2.0 KiB
TypeScript
53 lines
2.0 KiB
TypeScript
/* =============================================================================
|
|
* B05_Profile_UI_Panel_Sections.ts
|
|
* 종단 보기 좌측 패널의 **칸 정의**(등록부 `registerPanelSection`) — 페이지 설정 · 계획노선 ·
|
|
* 선택 포인트 상세. 「구조물 배치」는 두 보기 공용이라 `design_sections.ts` 에 있다.
|
|
*
|
|
* 칸 차례(2026-08-18 사용자 확정): 구조물 배치 > 페이지 설정 > 계획노선
|
|
* > 선택 포인트(평소 숨김) > 아래 고정 영역. 「경로 계산 설정」은 `Old/` 로 옮김(54-24). 재료는 `_Panel_Settings` · `_Panel_Route` 가 만들어
|
|
* `ctx.parts` 로 건넨다.
|
|
* ========================================================================== */
|
|
|
|
import "../A00_Common/design/design_sections";
|
|
import { createSectionFrame, part, registerPanelSection } from "../A00_Common/design/design_panel";
|
|
import type { RoutePart } from "./B05_Profile_UI_Panel_Route";
|
|
import type { SettingsPart } from "./B05_Profile_UI_Panel_Settings";
|
|
|
|
registerPanelSection({
|
|
id: "page-settings",
|
|
title: "페이지 설정",
|
|
views: ["profile"],
|
|
order: 20,
|
|
build: (ctx, view) => {
|
|
const frame = createSectionFrame(view, "페이지 설정", true);
|
|
frame.body.append(...part<SettingsPart>(ctx, "settings").nodes);
|
|
return frame.root;
|
|
},
|
|
});
|
|
|
|
registerPanelSection({
|
|
id: "planned-route",
|
|
title: "계획노선",
|
|
views: ["profile"],
|
|
order: 30,
|
|
build: (ctx, view) => {
|
|
const frame = createSectionFrame(view, "계획노선");
|
|
frame.body.append(part<RoutePart>(ctx, "route").plannedRouteButton);
|
|
return frame.root;
|
|
},
|
|
});
|
|
|
|
registerPanelSection({
|
|
id: "selected-point",
|
|
title: "선택 포인트 상세 설정",
|
|
views: ["profile"],
|
|
order: 50,
|
|
build: (ctx, view) => {
|
|
const frame = createSectionFrame(view, "선택 포인트 상세 설정");
|
|
const route = part<RoutePart>(ctx, "route");
|
|
frame.body.append(...route.selectedNodes);
|
|
route.bindSelectedRoot(frame.root);
|
|
return frame.root;
|
|
},
|
|
});
|