scroll: { scrollTop: number; firstRow: number; lastRow: number };
edit-begin
"edit-begin": { addr: CellAddressinterface CellAddress {
sheet: SheetId;
row: number;
col: number;
}interfaceCellAddress {sheet:SheetId;row:number;col:number;}interfaceCellAddress {sheet:SheetId;row:number;col:number;}Zero-based address of one cell on a stable sheet ID.API reference → };
edit-commit
"edit-commit": { addr: CellAddressinterface CellAddress {
sheet: SheetId;
row: number;
col: number;
}interfaceCellAddress {sheet:SheetId;row:number;col:number;}interfaceCellAddress {sheet:SheetId;row:number;col:number;}Zero-based address of one cell on a stable sheet ID.API reference →; value: CellValuetype CellValue =
| { kind: "literal"; value: CellScalar }
| { kind: "ref"; target: CellAddress }
| { kind: "formula"; src: string };typeCellValue=| { kind:"literal"; value:CellScalar }| { kind:"ref"; target:CellAddress }| { kind:"formula"; src:string };typeCellValue=| {kind:"literal";value:CellScalar;}| {kind:"ref";target:CellAddress;}| {kind:"formula";src:string;};A cell's persisted input: a literal, a cross-reference, or a formula. References resolve through the store's reference graph; formulas resolve in the WASM calculation engine.API reference → };
search
search: SearchResultinterface SearchResult {
query: string;
matches: CellAddress[];
active: number;
}interfaceSearchResult {query:string;matches:CellAddress[];active:number;}interfaceSearchResult {query:string;matches:CellAddress[];active:number;}Ordered matches and active index produced by a grid search.API reference →;
mutation-rejected
"mutation-rejected": { issues: MutationIssuetype MutationIssue =
| {
kind: "validation";
severity: "error" | "warning";
ruleId: string;
addr: CellAddress;
value: CellValue;
message: string;
operationIndex: number;
}
| {
kind: "protection";
severity: "error";
protectedRangeId: string;
range: Range;
// … 16 more lines — see the API reference
}typeMutationIssue=| {kind:"validation";severity:"error"|"warning";ruleId:string;addr:CellAddress;value:CellValue;message:string;operationIndex:number;}| {kind:"protection";severity:"error";protectedRangeId:string;range:Range;// … 16 more lines — see the API reference}typeMutationIssue=| {kind:"validation";severity:"error"|"warning";ruleId:string;addr:CellAddress;value:CellValue;message:string;operationIndex:number;}| {kind:"protection";severity:"error";protectedRangeId:string;range:Range;operationIndex:number;message:string;}// … 13 more lines — see the API reference}Structured warning or rejection produced while applying an operation.API reference →[] };
active-sheetEmitted after the visible sheet changes (direct call or cross-sheet scroll).
"active-sheet": { sheet: SheetIdtype SheetId = string;typeSheetId=string;typeSheetId=string;Stable identifier used to address a workbook sheet.API reference → };
renderer-fallbackEmitted once when the worker renderer could not be constructed and the grid fell back to the main-thread canvas renderer.
addr:CellAddressinterface CellAddress {
sheet: SheetId;
row: number;
col: number;
}interfaceCellAddress {sheet:SheetId;row:number;col:number;}interfaceCellAddress {sheet:SheetId;row:number;col:number;}Zero-based address of one cell on a stable sheet ID.API reference →;
};
"edit-commit": {
addr:CellAddressinterface CellAddress {
sheet: SheetId;
row: number;
col: number;
}interfaceCellAddress {sheet:SheetId;row:number;col:number;}interfaceCellAddress {sheet:SheetId;row:number;col:number;}Zero-based address of one cell on a stable sheet ID.API reference →;
value:CellValuetype CellValue =
| { kind: "literal"; value: CellScalar }
| { kind: "ref"; target: CellAddress }
| { kind: "formula"; src: string };typeCellValue=| { kind:"literal"; value:CellScalar }| { kind:"ref"; target:CellAddress }| { kind:"formula"; src:string };typeCellValue=| {kind:"literal";value:CellScalar;}| {kind:"ref";target:CellAddress;}| {kind:"formula";src:string;};A cell's persisted input: a literal, a cross-reference, or a formula. References resolve through the store's reference graph; formulas resolve in the WASM calculation engine.API reference →;
};
search:SearchResultinterface SearchResult {
query: string;
matches: CellAddress[];
active: number;
}interfaceSearchResult {query:string;matches:CellAddress[];active:number;}interfaceSearchResult {query:string;matches:CellAddress[];active:number;}Ordered matches and active index produced by a grid search.API reference →;
"mutation-rejected": {
issues:MutationIssuetype MutationIssue =
| {
kind: "validation";
severity: "error" | "warning";
ruleId: string;
addr: CellAddress;
value: CellValue;
message: string;
operationIndex: number;
}
| {
kind: "protection";
severity: "error";
protectedRangeId: string;
range: Range;
// … 16 more lines — see the API reference
}typeMutationIssue=| {kind:"validation";severity:"error"|"warning";ruleId:string;addr:CellAddress;value:CellValue;message:string;operationIndex:number;}| {kind:"protection";severity:"error";protectedRangeId:string;range:Range;// … 16 more lines — see the API reference}typeMutationIssue=| {kind:"validation";severity:"error"|"warning";ruleId:string;addr:CellAddress;value:CellValue;message:string;operationIndex:number;}| {kind:"protection";severity:"error";protectedRangeId:string;range:Range;operationIndex:number;message:string;}// … 13 more lines — see the API reference}Structured warning or rejection produced while applying an operation.API reference →[];
};
"active-sheet": {
sheet:SheetIdtype SheetId = string;typeSheetId=string;typeSheetId=string;Stable identifier used to address a workbook sheet.API reference →;
};
"renderer-fallback": {
requested:"worker";
error:unknown;
};
"datasource-error": {
request:Omit<DataSourceRequestinterface DataSourceRequest {
sheet: SheetId;
start: number;
end: number;
signal: AbortSignal;
revision: number;
}interfaceDataSourceRequest {sheet:SheetId;start:number;end:number;signal:AbortSignal;revision:number;}interfaceDataSourceRequest {sheet:SheetId;start:number;end:number;signal:AbortSignal;revision:number;}Cancellable sheet and row interval requested from a DataSource.API reference →, "signal">;