perf(spreadsheet): D — sub6 조건부 서식 · 초록 세모 받은 뒤 크기 예산 맞춤

- 골라 붙여넣기 몸통을 고를 때 불러옴 · 조건부 서식 창은 격자가 이미 끌어오므로 바로 import(정적 끌어옴 시험)
- M02 [스프레드시트 시험] ORCA: 조건부 서식 색(3 · 2 칠함 · 1 안 칠함 · 고치면 다시 칠함) · #DIV/0! 초록 세모 · 필터 행 숨김 수치 확인
- 크기 시험 통과 — 화면 27.6 KB · 합 61.5 KB

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6KXAabDTenEU7hrDQmCKY
This commit is contained in:
2026-09-27 21:54:35 +09:00
co-authored by Claude Opus 5.5
parent a3fa9f152a
commit a144d4019e
2 changed files with 8 additions and 10 deletions
@@ -16,6 +16,7 @@ import { parseRange, rangeToA1, toA1 } from "./spreadsheet_address";
import { autoSumRange } from "./spreadsheet_autosum";
import { isError } from "./spreadsheet_eval";
import type { FilterHandle } from "./spreadsheet_filter";
import { createCondFmtPanel } from "./spreadsheet_condfmt";
import { createNameManagerPanel } from "./spreadsheet_names";
import { createSheetExtraPanel } from "./spreadsheet_sheet_extra";
import { mountActions } from "./spreadsheet_actions";
@@ -171,13 +172,7 @@ export function mountDataMenu(ctx: SpreadsheetContext, back: () => void): DataMe
const items: MapContextMenuItem[] = [
[TEXT.sort, () => void sortDialog()],
[TEXT.filterItem, () => (toggleFilter(), back())],
[
TEXT.condfmt,
() =>
void openPanel(TEXT.condfmt, () =>
import("./spreadsheet_condfmt").then((m) => m.createCondFmtPanel),
),
],
[TEXT.condfmt, () => void openPanel(TEXT.condfmt, async () => createCondFmtPanel)],
[TEXT.validation, () => void openPanel(TEXT.validation, async () => createValidationPanel)],
[TEXT.names, () => void openPanel(TEXT.names, async () => createNameManagerPanel)],
[TEXT.sheets, () => void openPanel(TEXT.sheets, async () => createSheetExtraPanel)],
+6 -3
View File
@@ -16,7 +16,7 @@ import type { FindPanelHandle } from "./spreadsheet_find_panel";
import { createFormatPainter } from "./spreadsheet_format_painter";
import type { KeyHooks } from "./spreadsheet_keys";
import type { MouseHooks } from "./spreadsheet_mouse";
import { pasteSpecial, type PasteSpecialMode } from "./spreadsheet_paste_special";
import type { PasteSpecialMode } from "./spreadsheet_paste_special";
import type { PartHandle, SpreadsheetContext } from "./spreadsheet_view_types";
const TEXT = {
@@ -162,8 +162,11 @@ export function attachExtras(
});
b.addEventListener("click", () => {
picker.setAttribute("hidden", "");
pasteSpecial(ctx, block, at, mode, source);
back();
// 늦게 — 크기 예산
void import("./spreadsheet_paste_special").then((m) => {
m.pasteSpecial(ctx, block, at, mode, source);
back();
});
});
return b;
}),