From 7dd59dfc6c0001c1881d88f06f480cbedb393c34 Mon Sep 17 00:00:00 2001 From: ypshim Date: Mon, 26 Oct 2026 10:41:21 +0900 Subject: [PATCH] =?UTF-8?q?fix(ground):=20one=20=EC=9C=84=EC=B9=98=20contr?= =?UTF-8?q?ol=20on=20the=20card=20and=20clearer=20layer=20labels?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - The 위치 buttons duplicated the 형상 옵션 chips above the card. The chips stay the one place for 위치 (only the default is selectable until Q6). - The water-level row lays out as a flex row, so its label and input do not overlap. - The 연암 상면 caption sits just under the line instead of over the band label. Co-Authored-By: Claude Haiku 5.5 --- src/main.ts | 17 ++++++----------- src/view/ground-svg.ts | 3 ++- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/main.ts b/src/main.ts index 42d88d0..6b9baf6 100644 --- a/src/main.ts +++ b/src/main.ts @@ -17,7 +17,7 @@ import { DEFAULT_MATERIAL, FCK_MEMBERS, fyOf, GRADE_CHOICES, isAssumedMaterial, import { buildQuantity, quantityRows, type Quantity, type QuantityLine } from './core/rebar/quantity'; import { parseDrawingRows } from './core/drawing-import'; import { groundElFor, parseGroundModel, strataRowsFor, type GroundModelFile } from './core/ground-model'; -import { GROUND_POSITIONS, STRATA_NAMES } from './core/ground'; +import { STRATA_NAMES } from './core/ground'; import { groundSectionSvg } from './view/ground-svg'; import { parseBearingElevationTable, parseSolplateTable, readDxfTexts } from './core/dxf-table'; import { columnDiameterIssues } from './core/column-check'; @@ -1550,19 +1550,14 @@ function renderGroundModel(box: HTMLDivElement, pier: Pier): void { const d = pier.draft; const wrap = el('div', undefined, 'ground-model'); - wrap.appendChild(el('p', '위치', 'lbl')); - const positions = el('div', undefined, 'opts'); - for (const v of GROUND_POSITIONS) { - const b = el('button', v, 'btn small'); - b.type = 'button'; - b.setAttribute('aria-pressed', String((d.groundPosition ?? '육상') === v)); - b.addEventListener('click', () => editGround(name, 'groundPosition', v)); - positions.appendChild(b); - } - wrap.appendChild(positions); + // 위치 is the 형상 옵션 of this member (the chips above the card); only the default is selectable until Q6. wrap.appendChild(el('p', '지하수위', 'lbl')); const water = el('div', undefined, 'ground-water'); + water.style.display = 'flex'; + water.style.flexWrap = 'wrap'; + water.style.alignItems = 'center'; + water.style.gap = '8px'; const check = el('input'); check.type = 'checkbox'; check.checked = d.groundWaterOn === true; diff --git a/src/view/ground-svg.ts b/src/view/ground-svg.ts index b1e756f..3bd464b 100644 --- a/src/view/ground-svg.ts +++ b/src/view/ground-svg.ts @@ -38,7 +38,8 @@ export function groundSectionSvg(input: PierInput, model: PierModel): string { parts.push(`${escapeText(row.name)}`); if (row.name === SUPPORT_STRATUM) { parts.push(``); - parts.push(`연암층 상면 EL ${upper.toFixed(3)}`); + // Caption just under the line, so it does not collide with the label of the band above. + parts.push(`연암층 상면 EL ${upper.toFixed(3)}`); } upper = row.bottomEl; });