/* ============================================================================= * spreadsheet_refshift.ts (주인 A) * 참조 옮김 — 행열 넣기 · 지우기 · 잘라 붙이기 · 시트 이름 바꾸기 때 식 글을 고쳐 적음(엑셀 규칙) · * 복사 · 채우기 때 상대 참조만 옮김 · 구글 R1C1 식 → A1. * 지운 칸 · 격자 밖으로 나간 참조는 `#REF!` · 범위는 남은 만큼 줄어듦(끝까지 지우면 `#REF!`). * 0 계약 머리 — 몸은 A 가 채움. * ========================================================================== */ import type { CellAddress, Command, Workbook } from "./spreadsheet_types"; const todo = (): never => { throw new Error("spreadsheet_refshift: 아직 없음(A)"); }; /** 행열 · 옮기기 · 시트이름 명령에 맞춰 식 글 고침(식이 든 시트 id = `host`) — 안 바뀌면 같은 글 */ export function shiftForCommand( _formula: string, _host: string, _command: Command, _book: Workbook, ): string { return todo(); } /** 복사 · 채우기 — 상대 참조만 (dr, dc) 옮김 · 격자 밖은 `#REF!` */ export function moveFormula(_formula: string, _dr: number, _dc: number): string { return todo(); } /** 구글 `data-sheets-formula`(`=2*R[0]C[-1]`) → 붙일 자리 기준 A1 식(앞 `=` 뺌) */ export function r1c1ToA1(_formula: string, _at: CellAddress): string { return todo(); }