From 14547d4f2002467edf3787c22995252ce277e9a9 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Thu, 1 Oct 2026 23:35:09 +0900 Subject: [PATCH] =?UTF-8?q?fix(M02):=20=ED=9D=90=EB=A6=84=EB=8F=84=20?= =?UTF-8?q?=ED=8C=A8=EB=84=90=20=E2=80=94=20=ED=81=AC=EA=B2=8C=20=EB=B3=B4?= =?UTF-8?q?=EA=B8=B0=EB=A5=BC=20=EB=8B=AB=EC=9C=BC=EB=A9=B4=20=ED=8C=90?= =?UTF-8?q?=EC=9D=84=20=EC=B2=98=EC=9D=8C=20=EC=B0=A8=EB=A1=80=EB=A1=9C=20?= =?UTF-8?q?=EB=90=98=EB=8F=8C=EB=A0=A4=20=EB=81=BC=EC=9B=80=20=C2=B7=20?= =?UTF-8?q?=EB=A7=8C=EB=93=A4=20=EB=95=8C=20=EB=B3=80=EC=88=98=20=EC=B0=A8?= =?UTF-8?q?=EB=A1=80=20=C2=B7=20=EC=A2=81=EC=9D=80=20=ED=8C=A8=EB=84=90=20?= =?UTF-8?q?=EB=A7=9E=EC=B6=A4=20=EB=B0=94=EB=8B=A5=200.25(PLAN=2036-3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ORCA(5183): 540px 칸 상자 11 모두 판 안(0.288) · 머리 끌기 → onChange 새 객체 1 번 · 크게 보기 0.9 · 닫으면 패널 0.288 · 고친 자리 그대로 · 실행 취소 → onChange 되돌린 객체 · 접기 띠 「흐름도 ▸」 onResize 40 · 펴기 · 가장자리 끌기 +120 → onResize 764 · localStorage · 보기만: 더하기 0 · 끌기 onChange 0 · 고르기 됨 · 판 칸 막힘 · 여러 조건 이름표 · 밝음 · 어두움 - resources/master_data 안 바뀜(git status) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Ly2oHAaTDYRjcniAmHR81z --- M02_MasterTemplete/DataFlow/M02_DF_Panel.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/M02_MasterTemplete/DataFlow/M02_DF_Panel.ts b/M02_MasterTemplete/DataFlow/M02_DF_Panel.ts index ade890724..de5d49f87 100644 --- a/M02_MasterTemplete/DataFlow/M02_DF_Panel.ts +++ b/M02_MasterTemplete/DataFlow/M02_DF_Panel.ts @@ -53,7 +53,7 @@ export interface FlowPanel { export const PANEL_MIN = 320; export const STRIP_WIDTH = 40; /** 좁은 패널에서 저절로 맞출 때 가장 작은 확대 */ -export const PANEL_FIT_MIN = 0.5; +export const PANEL_FIT_MIN = 0.25; const WIDTH_KEY = "m02.dfpanel.width"; const FOLD_KEY = "m02.dfpanel.folded"; @@ -87,6 +87,8 @@ const writeStore = (key: string, value: string): void => { /* ── 패널 ───────────────────────────────────────────────────────────── */ export function mountFlowPanel(host: HTMLElement, opts: FlowPanelOpts): FlowPanel { + /** 크게 보기 화면 — 열려 있을 때만 */ + let full: HTMLElement | null = null; const paper = createPaper({ logic: opts.logic, readOnly: opts.readOnly, @@ -98,7 +100,6 @@ export function mountFlowPanel(host: HTMLElement, opts: FlowPanelOpts): FlowPane const { diagram, detail, summary, note, undo } = paper.parts; let width = storedWidth(readStore(WIDTH_KEY)); let folded = readStore(FOLD_KEY) === "1"; - let full: HTMLElement | null = null; const tell = (): void => opts.onResize?.(folded ? STRIP_WIDTH : (width ?? host.clientWidth)); const sm = (label: string, onClick: () => void, variant: "ghost" | "filled" = "ghost") => @@ -241,10 +242,16 @@ export function mountFlowPanel(host: HTMLElement, opts: FlowPanelOpts): FlowPane full.remove(); full = null; tools.append(undo); - open.insertBefore(note, diagram); - open.insertBefore(diagram, detail); - open.insertBefore(detail, costBox); costBox.append(summary); + // 머리 · 실행 취소 줄 뒤에 판을 처음 차례대로 되돌려 끼움 + open.replaceChildren( + open.firstElementChild as HTMLElement, + tools, + note, + diagram, + detail, + costBox, + ); paper.refit(); };