Merge remote-tracking branches 'origin/sub_desktop_1', 'origin/sub_laptop_2', 'origin/sub_laptop_4' and 'origin/sub_laptop_7' into main_laptop_1

This commit is contained in:
2026-10-08 16:27:52 +09:00
101 changed files with 3082 additions and 495 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ const guardContainer = (id: "inlet" | "outlet", title: string, link: string): Sp
key: `${id}_type`,
choices: guard(id === "inlet" ? "in" : "out"),
},
...bodyGuardItems(id, "본체 끝 높이(자동)"),
...bodyGuardItems(id, "본체 끝 높이(자동)", true),
],
});
+13 -3
View File
@@ -83,19 +83,29 @@ export const revetKeys = (side: "inlet" | "outlet"): Record<string, string> => (
});
/** 세월교 · 박스 유입 · 유출 흙막이 칸(79-7) — 높이 빈 칸 = 자동(`heightHint` · 횡단도가 셈) ·
* 유입만 절토부 앞 수평공간 칸(`inlet_revet_berm_m` · 유출은 없음 · 89-4)을 더함. */
export function bodyGuardItems(side: "inlet" | "outlet", heightHint: string): SpecItem[] {
* 유입만 절토부 앞 수평공간 칸(`inlet_revet_berm_m` · 유출은 없음 · 89-4)을 더함 · `wingBerm` = 세월교
* 유입 날개벽에도 같은 칸(수평 여유 · 107-3). */
export function bodyGuardItems(
side: "inlet" | "outlet",
heightHint: string,
wingBerm = false,
): SpecItem[] {
const items = guardItems({ 흙막이: revetKeys(side) }, undefined, true).map((item) =>
item.id === "height" ? { ...item, default: undefined, hint: heightHint } : item,
);
if (side === "outlet") return items;
const branch = { key: `${side}_revet_berm_m` };
const berm: SpecItem = {
id: "berm",
label: "수평공간 (m)",
kind: "number",
step: 0.1,
default: "1",
by: { item: "structure", map: { 흙막이: { key: `${side}_revet_berm_m` } } },
// 세월교 유입 날개벽 = 같은 칸 · 같은 키(끝이 묻히면 수평 여유 뒤 절토 · 면적 밖)
by: {
item: "structure",
map: wingBerm ? { 흙막이: branch, 날개벽: branch } : { 흙막이: branch },
},
};
return [...items, berm];
}