@rowsncolumns/rnc-engine 0.11.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/command-handlers.d.ts +57 -13
- package/dist/esm/command-handlers.d.ts.map +1 -1
- package/dist/esm/command-handlers.js +153 -14
- package/dist/esm/fold.d.ts.map +1 -1
- package/dist/esm/fold.js +7 -1
- package/dist/esm/index.d.ts +37 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/use-engine-core.d.ts +38 -3
- package/dist/esm/use-engine-core.d.ts.map +1 -1
- package/dist/esm/use-engine-core.js +249 -40
- package/dist/esm/use-spreadsheet-engine.d.ts +10 -1
- package/dist/esm/use-spreadsheet-engine.d.ts.map +1 -1
- package/dist/esm/use-spreadsheet-engine.js +67 -1
- package/dist/esm/use-spreadsheet-ui.d.ts +2 -2
- package/dist/esm/use-spreadsheet-ui.d.ts.map +1 -1
- package/dist/esm/use-spreadsheet-ui.js +19 -0
- package/dist/esm/wasm/rnc_wasm_bg.wasm +0 -0
- package/package.json +12 -10
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* a renderer — see `__tests__/command-handlers.spec.ts`.
|
|
10
10
|
*/
|
|
11
11
|
import type { CellInterface, Color, Direction, GridRange, SelectionArea, SheetRange, SortOrder } from "@rowsncolumns/common-types";
|
|
12
|
-
import type { AXIS, BandedDefinition, BandedRange, BorderLocation, BorderStyle, ColorFilterCriteria, ConditionType, ConditionValue,
|
|
13
|
-
import type
|
|
14
|
-
import type { Command, CommandOf, CommitResult } from "./index";
|
|
12
|
+
import type { AXIS, BandedDefinition, BandedRange, BorderLocation, BorderStyle, ColorFilterCriteria, ConditionType, ConditionValue, CreateTableOptions, EmbeddedChart, EmbeddedObject, OverlayToAnchor, ZOrderChange, FilterView, IconFilterCriteria, NamedRange, PivotTable, ProtectedRange, SelectionAttributes, Sheet, Slicer, SpreadsheetTheme, TableAutoExpansion, CalculatedColumnFill, TableTheme, TableView, TextFormatRun, BooleanCondition, FilterConditionJoin, CustomTableStyle } from "@rowsncolumns/spreadsheet";
|
|
13
|
+
import { type useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
|
|
14
|
+
import type { Command, CommandOf, CommandRejection, CommitResult } from "./index";
|
|
15
15
|
/** The reference hook's return type — used to borrow exact signatures (e.g. `onFillRange`) so the
|
|
16
16
|
* engine handlers are drop-in for what CanvasGrid passes. Type-only; erased at runtime. */
|
|
17
17
|
type SS = ReturnType<typeof useSpreadsheetState>;
|
|
@@ -56,9 +56,14 @@ export interface EngineSpreadsheetHandlers {
|
|
|
56
56
|
onInsertColumn: (sheetId: number, referenceColumnIndex: number, numColumns?: number) => void;
|
|
57
57
|
onDeleteRow: (sheetId: number, rowIndexes: number[]) => void;
|
|
58
58
|
onDeleteColumn: (sheetId: number, columnIndexes: number[]) => void;
|
|
59
|
-
onMoveRows: (sheetId: number, rows: number[], referenceRowIndex: number
|
|
60
|
-
|
|
59
|
+
onMoveRows: (sheetId: number, rows: number[], referenceRowIndex: number, options?: {
|
|
60
|
+
insertBefore?: boolean;
|
|
61
|
+
}) => void;
|
|
62
|
+
onMoveColumns: (sheetId: number, columns: number[], referenceColumnIndex: number, options?: {
|
|
63
|
+
insertBefore?: boolean;
|
|
64
|
+
}) => void;
|
|
61
65
|
onMoveSelection: (sheetId: number, from: SelectionArea<SelectionAttributes>, to: SelectionArea<SelectionAttributes>) => void;
|
|
66
|
+
onInsertCutCells: (sheetId: number, from: SelectionArea<SelectionAttributes>, to: SelectionArea<SelectionAttributes>) => void;
|
|
62
67
|
onHideRow: (sheetId: number, rowIndexes: number[]) => void;
|
|
63
68
|
onShowRow: (sheetId: number, rowIndexes: number[]) => void;
|
|
64
69
|
onHideColumn: (sheetId: number, columnIndexes: number[]) => void;
|
|
@@ -90,23 +95,36 @@ export interface EngineSpreadsheetHandlers {
|
|
|
90
95
|
onChangeSheetTabColor: (sheetId: number, color: Color | undefined) => void;
|
|
91
96
|
onSortColumn: (sheetId: number, sortedColumnIndex: number, sortOrder: SortOrder) => void;
|
|
92
97
|
onSortRange: (sheetId: number, selections: Selections, sortOrder: SortOrder) => void;
|
|
93
|
-
onSortTable:
|
|
98
|
+
onSortTable: SS["onSortTable"];
|
|
94
99
|
onFilterTable: (sheetId: number, filter: TableView | FilterView, columnIndex: number, conditionType: ConditionType | undefined, conditionValue: ConditionValue[] | undefined, visibleValues: string[] | undefined | null,
|
|
95
100
|
/** Color / icon criteria — same extras contract as `createFilterSpecs` (absent = carry
|
|
96
101
|
* forward, `null` = clear). The filter-box passes these on every submit. */
|
|
97
102
|
extras?: {
|
|
98
103
|
colorFilter?: ColorFilterCriteria | null;
|
|
99
104
|
iconFilter?: IconFilterCriteria | null;
|
|
105
|
+
condition2?: BooleanCondition | null;
|
|
106
|
+
conditionJoin?: FilterConditionJoin | null;
|
|
100
107
|
}) => void;
|
|
101
|
-
|
|
108
|
+
/**
|
|
109
|
+
* With `columnIndex` (filter-relative, like `onFilterTable`'s) clears only
|
|
110
|
+
* that column's criteria — Excel's "Clear Filter From <column>", what the
|
|
111
|
+
* legacy `onDeleteFilter` does; without it removes the whole filter.
|
|
112
|
+
*/
|
|
113
|
+
onDeleteFilter: (sheetId: number, filter: TableView | FilterView, columnIndex?: number) => void;
|
|
102
114
|
onCreateBasicFilter: (sheetId: number, activeCell: CellInterface, selections: Selections, basicFilterSpec?: Partial<FilterView>) => void;
|
|
103
|
-
onCreateTable: (sheetId: number, activeCell: CellInterface, selections: Selections, tableSpec?: Partial<TableView>, theme?: TableTheme, bandedRange?: BandedDefinition) => void;
|
|
115
|
+
onCreateTable: (sheetId: number, activeCell: CellInterface, selections: Selections, tableSpec?: Partial<TableView>, theme?: TableTheme, bandedRange?: BandedDefinition, options?: CreateTableOptions) => void;
|
|
104
116
|
onRemoveTable: (tableView: TableView) => void;
|
|
105
117
|
onUpdateTable: (sheetId: number, tableId: TableView["id"], updatedTable: Partial<TableView>) => void;
|
|
106
118
|
onResizeTable: (sheetId: number, table: TableView, range: GridRange) => void;
|
|
119
|
+
/** The AutoCorrect smart tag's "Undo Table AutoExpansion": resize back + clear the growth's writes. */
|
|
120
|
+
onUndoTableAutoExpansion: (expansion: TableAutoExpansion) => void;
|
|
121
|
+
/** The AutoCorrect smart tag's "Undo Calculated Column": restore the cells the fill overwrote, drop the column formula. */
|
|
122
|
+
onUndoCalculatedColumn: (fill: CalculatedColumnFill) => void;
|
|
123
|
+
/** The AutoCorrect smart tag's "Overwrite all cells in this column with this formula". */
|
|
124
|
+
onOverwriteCalculatedColumn: (fill: CalculatedColumnFill) => void;
|
|
107
125
|
onInsertTableRow: (tableView: TableView, relativeRowIndex?: number, rowData?: CommandOf<"insert-table-row">["rowData"]) => void;
|
|
108
126
|
onDeleteTableRow: (tableView: TableView, rowIndexes: number[]) => void;
|
|
109
|
-
onInsertTableColumn: (tableView: TableView, dimensionIndex: number, direction: CommandOf<"insert-table-column">["direction"]) => void;
|
|
127
|
+
onInsertTableColumn: (tableView: TableView, dimensionIndex: number, direction: CommandOf<"insert-table-column">["direction"], count?: number) => void;
|
|
110
128
|
onDeleteTableColumn: (tableView: TableView, dimensionIndex: number) => void;
|
|
111
129
|
onMoveTableColumns: (sheetId: number, tableId: TableView["id"], columns: number[], referenceColumnIndex: number) => void;
|
|
112
130
|
onChangeTableColumn: (sheetId: number, tableId: TableView["id"], columnIndex: number, name: string) => void;
|
|
@@ -135,22 +153,26 @@ export interface EngineSpreadsheetHandlers {
|
|
|
135
153
|
onDeleteDataValidationRule: SS["onDeleteDataValidationRule"];
|
|
136
154
|
onAddBandedRange: (sheetId: number, bandedRange: BandedRange) => void;
|
|
137
155
|
onRemoveBandedRange: (sheetId: number, bandedRange: BandedRange) => void;
|
|
156
|
+
/** Excel's New Table Style — stores a workbook-level custom table style (#668 T-103). */
|
|
157
|
+
onCreateCustomTableStyle: (style: CustomTableStyle) => void;
|
|
138
158
|
onProtectRange: (sheetId: number, activeCell: CellInterface, selections: Selections | undefined) => void;
|
|
139
159
|
onUnProtectRange: (sheetId: number, protectedRangeId: ProtectedRange["protectedRangeId"]) => void;
|
|
140
160
|
onProtectSheet: (sheetId: number) => void;
|
|
141
161
|
onUnProtectSheet: (sheetId: number) => void;
|
|
142
162
|
onCreateEmbed: (spec: EmbeddedObject) => void;
|
|
143
163
|
onUpdateEmbed: (embed: EmbeddedObject) => void;
|
|
144
|
-
onMoveEmbed: (embedId: EmbeddedObject["embedId"], sheetId: number, anchorCell: CellInterface, offsetXPixels: number, offsetYPixels: number) => void;
|
|
145
|
-
onResizeEmbed: (embedId: EmbeddedObject["embedId"], sheetId: number, anchorCell: CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number) => void;
|
|
164
|
+
onMoveEmbed: (embedId: EmbeddedObject["embedId"], sheetId: number, anchorCell: CellInterface, offsetXPixels: number, offsetYPixels: number, toAnchor?: OverlayToAnchor) => void;
|
|
165
|
+
onResizeEmbed: (embedId: EmbeddedObject["embedId"], sheetId: number, anchorCell: CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number, toAnchor?: OverlayToAnchor) => void;
|
|
146
166
|
onDeleteEmbed: (embedId: EmbeddedObject["embedId"]) => void;
|
|
147
167
|
onCreateSlicer: (slicer: Slicer) => void;
|
|
148
168
|
onUpdateSlicer: (slicer: Slicer) => void;
|
|
149
|
-
onMoveSlicer: (slicerId: Slicer["slicerId"], sheetId: number, anchorCell: CellInterface, offsetXPixels: number, offsetYPixels: number) => void;
|
|
150
|
-
onResizeSlicer: (slicerId: Slicer["slicerId"], sheetId: number, anchorCell: CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number) => void;
|
|
169
|
+
onMoveSlicer: (slicerId: Slicer["slicerId"], sheetId: number, anchorCell: CellInterface, offsetXPixels: number, offsetYPixels: number, toAnchor?: OverlayToAnchor) => void;
|
|
170
|
+
onResizeSlicer: (slicerId: Slicer["slicerId"], sheetId: number, anchorCell: CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number, toAnchor?: OverlayToAnchor) => void;
|
|
151
171
|
onDeleteSlicer: (slicerId: Slicer["slicerId"]) => void;
|
|
152
172
|
onCreateChart: (spec: EmbeddedChart) => void;
|
|
153
173
|
onUpdateChart: (chart: EmbeddedChart) => void;
|
|
174
|
+
/** Excel's Arrange menu — the planned z-order rewrites, ONE undo step (a `batch`). */
|
|
175
|
+
onChangeZOrder: (changes: ZOrderChange[]) => void;
|
|
154
176
|
onDeleteChart: (chartId: EmbeddedChart["chartId"]) => void;
|
|
155
177
|
onCreatePivotTable: (pivotTable: PivotTable) => void;
|
|
156
178
|
onUpdatePivotTable: (pivotId: PivotTable["pivotId"], pivotTable: PivotTable) => void;
|
|
@@ -188,7 +210,29 @@ export type CreateCommandHandlersOptions = {
|
|
|
188
210
|
* A getter (not a value) so a changed prop never rebuilds the handler surface.
|
|
189
211
|
*/
|
|
190
212
|
getCustomAutofillLists?: () => string[][] | undefined;
|
|
213
|
+
/**
|
|
214
|
+
* Read the host's `autoExpandTables` option at emit time. `false` rides every value-writing
|
|
215
|
+
* command (`set-value`, `change-batch`, `fill`) as `autoExpandTables: false`, so the engine never
|
|
216
|
+
* grows a table over the written cells; `true` / `undefined` (the default) adds nothing.
|
|
217
|
+
*/
|
|
218
|
+
getAutoExpandTables?: () => boolean | undefined;
|
|
219
|
+
/**
|
|
220
|
+
* Read the host's `autoCalculatedColumns` option at emit time. `false` rides `set-value` /
|
|
221
|
+
* `change-batch` / `fill` as `autoCalculatedColumns: false`, so the engine never fills a table
|
|
222
|
+
* column from a typed formula; `true` / `undefined` (the default) adds nothing.
|
|
223
|
+
*/
|
|
224
|
+
getAutoCalculatedColumns?: () => boolean | undefined;
|
|
191
225
|
};
|
|
226
|
+
/**
|
|
227
|
+
* The error dialog `useEngineCore.onCommand` opens for a refusal — the same `useShowError` dialog
|
|
228
|
+
* the legacy engine's hooks open for it, and its ONLY surfacing: `createCommandHandlers` keeps its
|
|
229
|
+
* `error()` channel for the rest. `null` for a refusal that has no dialog (a fill over unequal
|
|
230
|
+
* merged blocks, which the legacy fill hook also reports through `error()`).
|
|
231
|
+
*/
|
|
232
|
+
export declare const rejectionDialog: (rejection: CommandRejection) => {
|
|
233
|
+
title?: string;
|
|
234
|
+
message: string;
|
|
235
|
+
} | null;
|
|
192
236
|
export declare function createCommandHandlers(sink: (command: Command) => CommitResult | undefined | void, options?: CreateCommandHandlersOptions): EngineSpreadsheetHandlers;
|
|
193
237
|
export {};
|
|
194
238
|
//# sourceMappingURL=command-handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-handlers.d.ts","sourceRoot":"","sources":["../../src/command-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-handlers.d.ts","sourceRoot":"","sources":["../../src/command-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { STRUCTURAL_REFUSAL_MESSAGES, STRUCTURAL_REFUSAL_TITLE, } from "@rowsncolumns/spreadsheet-state";
|
|
1
2
|
import { error } from "@rowsncolumns/utils";
|
|
2
3
|
/** Two-digit zero-pad for the ISO date/time literals below. */
|
|
3
4
|
const pad2 = (n) => String(n).padStart(2, "0");
|
|
@@ -31,21 +32,65 @@ const normalizeFormatPatch = (cellFormat) => {
|
|
|
31
32
|
const isoDate = (d) => `${d.getFullYear()}-${pad2(d.getMonth() + 1)}-${pad2(d.getDate())}`;
|
|
32
33
|
/** Local wall-clock as `HH:MM:SS` — the engine infers it as a time. */
|
|
33
34
|
const isoTime = (d) => `${pad2(d.getHours())}:${pad2(d.getMinutes())}:${pad2(d.getSeconds())}`;
|
|
35
|
+
/**
|
|
36
|
+
* The error dialog `useEngineCore.onCommand` opens for a refusal — the same `useShowError` dialog
|
|
37
|
+
* the legacy engine's hooks open for it, and its ONLY surfacing: `createCommandHandlers` keeps its
|
|
38
|
+
* `error()` channel for the rest. `null` for a refusal that has no dialog (a fill over unequal
|
|
39
|
+
* merged blocks, which the legacy fill hook also reports through `error()`).
|
|
40
|
+
*/
|
|
41
|
+
export const rejectionDialog = (rejection) => {
|
|
42
|
+
// Excel's structural refusals (rowsncolumns/spreadsheet#647): the codes the legacy engine's
|
|
43
|
+
// `constants.ts` defines, shown under Excel's dialog title.
|
|
44
|
+
if (rejection.code in STRUCTURAL_REFUSAL_MESSAGES) {
|
|
45
|
+
return { title: STRUCTURAL_REFUSAL_TITLE, message: rejection.message };
|
|
46
|
+
}
|
|
47
|
+
switch (rejection.code) {
|
|
48
|
+
// A refused move / cut + paste ("We can't do that to a merged cell.") — the legacy engine's
|
|
49
|
+
// move / paste hooks open the shared error dialog for it.
|
|
50
|
+
case "merged-cell-move":
|
|
51
|
+
return { message: rejection.message };
|
|
52
|
+
// A table create / rename with a name Excel would refuse (or another table / defined name
|
|
53
|
+
// already holds), or a defined name spelled like a table — the legacy engine's `useOnTable` /
|
|
54
|
+
// named-range hooks show the same text under "Error".
|
|
55
|
+
case "invalid-table-name":
|
|
56
|
+
case "invalid-defined-name":
|
|
57
|
+
case "duplicate-table-id":
|
|
58
|
+
return { title: "Error", message: rejection.message };
|
|
59
|
+
default:
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
34
63
|
export function createCommandHandlers(sink, options = {}) {
|
|
35
64
|
const customLists = () => options.getCustomAutofillLists?.();
|
|
65
|
+
const expansionFlag = () => ({
|
|
66
|
+
...(options.getAutoExpandTables?.() === false ? { autoExpandTables: false } : {}),
|
|
67
|
+
...(options.getAutoCalculatedColumns?.() === false ? { autoCalculatedColumns: false } : {}),
|
|
68
|
+
});
|
|
36
69
|
const onCommand = (command) => {
|
|
37
70
|
const commit = sink(command) ?? undefined;
|
|
38
71
|
// The engine wrote nothing for a refused command; show the user Excel's message (the legacy
|
|
39
|
-
// engine reports its `MergedFillSizeError` through this same `error()` channel)
|
|
72
|
+
// engine reports its `MergedFillSizeError` through this same `error()` channel) — unless the
|
|
73
|
+
// sink (`useEngineCore.onCommand`) already showed it as a dialog: one refusal, one surfacing.
|
|
40
74
|
for (const rejection of commit?.rejections ?? []) {
|
|
41
|
-
|
|
75
|
+
if (!rejectionDialog(rejection)) {
|
|
76
|
+
error(rejection.message);
|
|
77
|
+
}
|
|
42
78
|
}
|
|
43
79
|
return commit;
|
|
44
80
|
};
|
|
45
81
|
return {
|
|
46
82
|
// Cell values
|
|
47
|
-
onChange: (sheetId, coords, value, textFormatRuns) => onCommand({ command: "set-value", sheetId, coords, value, textFormatRuns }),
|
|
48
|
-
onChangeBatch: (sheetId, ranges, values, formatting, citations, options) => onCommand({
|
|
83
|
+
onChange: (sheetId, coords, value, textFormatRuns) => onCommand({ command: "set-value", sheetId, coords, value, textFormatRuns, ...expansionFlag() }),
|
|
84
|
+
onChangeBatch: (sheetId, ranges, values, formatting, citations, options) => onCommand({
|
|
85
|
+
command: "change-batch",
|
|
86
|
+
sheetId,
|
|
87
|
+
ranges,
|
|
88
|
+
values,
|
|
89
|
+
formatting,
|
|
90
|
+
citations,
|
|
91
|
+
options,
|
|
92
|
+
...expansionFlag(),
|
|
93
|
+
}),
|
|
49
94
|
onDelete: (sheetId, activeCell, selections, clearType) => onCommand({ command: "delete-cells", sheetId, activeCell, selections, clearType }),
|
|
50
95
|
// `SS["onFill"]` is async (returns `Promise<void>`); the command is emitted synchronously.
|
|
51
96
|
// `options` carries the fill handle's Ctrl/Cmd toggle (`modifier`) and the Series dialog's
|
|
@@ -62,6 +107,7 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
62
107
|
modifier: options?.modifier,
|
|
63
108
|
series: options?.series,
|
|
64
109
|
customLists: customLists(),
|
|
110
|
+
...expansionFlag(),
|
|
65
111
|
});
|
|
66
112
|
},
|
|
67
113
|
// Range fill (CanvasGrid's Cmd+D / Cmd+R shortcuts, plus UP/LEFT for callers that send them).
|
|
@@ -113,6 +159,8 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
113
159
|
fillableSelections: selections,
|
|
114
160
|
fillType: "FillCopy",
|
|
115
161
|
customLists: customLists(),
|
|
162
|
+
...expansionFlag(),
|
|
163
|
+
...expansionFlag(),
|
|
116
164
|
});
|
|
117
165
|
}
|
|
118
166
|
else if (dir === "UP") {
|
|
@@ -139,6 +187,8 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
139
187
|
fillableSelections: fillSelections,
|
|
140
188
|
fillType: "FillCopy",
|
|
141
189
|
customLists: customLists(),
|
|
190
|
+
...expansionFlag(),
|
|
191
|
+
...expansionFlag(),
|
|
142
192
|
});
|
|
143
193
|
}
|
|
144
194
|
else if (dir === "RIGHT") {
|
|
@@ -170,6 +220,8 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
170
220
|
fillableSelections: fillSelections,
|
|
171
221
|
fillType: "FillCopy",
|
|
172
222
|
customLists: customLists(),
|
|
223
|
+
...expansionFlag(),
|
|
224
|
+
...expansionFlag(),
|
|
173
225
|
});
|
|
174
226
|
}
|
|
175
227
|
else if (dir === "LEFT") {
|
|
@@ -199,6 +251,8 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
199
251
|
fillableSelections: fillSelections,
|
|
200
252
|
fillType: "FillCopy",
|
|
201
253
|
customLists: customLists(),
|
|
254
|
+
...expansionFlag(),
|
|
255
|
+
...expansionFlag(),
|
|
202
256
|
});
|
|
203
257
|
}
|
|
204
258
|
},
|
|
@@ -290,9 +344,28 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
290
344
|
onInsertColumn: (sheetId, referenceColumnIndex, numColumns) => onCommand({ command: "insert-column", sheetId, referenceColumnIndex, numColumns }),
|
|
291
345
|
onDeleteRow: (sheetId, rowIndexes) => onCommand({ command: "delete-row", sheetId, rowIndexes }),
|
|
292
346
|
onDeleteColumn: (sheetId, columnIndexes) => onCommand({ command: "delete-column", sheetId, columnIndexes }),
|
|
293
|
-
onMoveRows: (sheetId, rows, referenceRowIndex) => onCommand({
|
|
294
|
-
|
|
347
|
+
onMoveRows: (sheetId, rows, referenceRowIndex, options) => onCommand({
|
|
348
|
+
command: "move-rows",
|
|
349
|
+
sheetId,
|
|
350
|
+
rows,
|
|
351
|
+
referenceRowIndex,
|
|
352
|
+
insertBefore: options?.insertBefore,
|
|
353
|
+
}),
|
|
354
|
+
onMoveColumns: (sheetId, columns, referenceColumnIndex, options) => onCommand({
|
|
355
|
+
command: "move-columns",
|
|
356
|
+
sheetId,
|
|
357
|
+
columns,
|
|
358
|
+
referenceColumnIndex,
|
|
359
|
+
insertBefore: options?.insertBefore,
|
|
360
|
+
}),
|
|
295
361
|
onMoveSelection: (sheetId, from, to) => onCommand({ command: "move-range", sheetId, from: from.range, to: to.range }),
|
|
362
|
+
onInsertCutCells: (sheetId, from, to) => onCommand({
|
|
363
|
+
command: "move-range",
|
|
364
|
+
sheetId,
|
|
365
|
+
from: from.range,
|
|
366
|
+
to: to.range,
|
|
367
|
+
insert: true,
|
|
368
|
+
}),
|
|
296
369
|
onHideRow: (sheetId, rowIndexes) => onCommand({ command: "hide-row", sheetId, rowIndexes }),
|
|
297
370
|
onShowRow: (sheetId, rowIndexes) => onCommand({ command: "show-row", sheetId, rowIndexes }),
|
|
298
371
|
onHideColumn: (sheetId, columnIndexes) => onCommand({ command: "hide-column", sheetId, columnIndexes }),
|
|
@@ -334,7 +407,33 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
334
407
|
// Sort & Filter
|
|
335
408
|
onSortColumn: (sheetId, sortedColumnIndex, sortOrder) => onCommand({ command: "sort-column", sheetId, sortedColumnIndex, sortOrder }),
|
|
336
409
|
onSortRange: (sheetId, selections, sortOrder) => onCommand({ command: "sort-range", sheetId, selections, sortOrder }),
|
|
337
|
-
onSortTable: (sheetId, filter,
|
|
410
|
+
onSortTable: ((sheetId, filter, dimensionIndexOrSpecs, sortOrder, options) => {
|
|
411
|
+
// Normalize both call forms into one ordered level list (primary first) — the same shape the
|
|
412
|
+
// legacy hook persists as `table.sortSpecs`. The engine sorts by every level and persists them.
|
|
413
|
+
const sortSpecs = Array.isArray(dimensionIndexOrSpecs)
|
|
414
|
+
? dimensionIndexOrSpecs
|
|
415
|
+
: [
|
|
416
|
+
{
|
|
417
|
+
dimensionIndex: dimensionIndexOrSpecs,
|
|
418
|
+
sortOrder: sortOrder ?? "ASCENDING",
|
|
419
|
+
...(options?.sortBy ? { sortBy: options.sortBy } : {}),
|
|
420
|
+
...(options?.sortColor ? { sortColor: options.sortColor } : {}),
|
|
421
|
+
...(options?.sortIcon ? { sortIcon: options.sortIcon } : {}),
|
|
422
|
+
...(options?.customList ? { customList: options.customList } : {}),
|
|
423
|
+
},
|
|
424
|
+
];
|
|
425
|
+
const primary = sortSpecs[0];
|
|
426
|
+
if (!primary)
|
|
427
|
+
return;
|
|
428
|
+
onCommand({
|
|
429
|
+
command: "sort-table",
|
|
430
|
+
sheetId,
|
|
431
|
+
filter,
|
|
432
|
+
dimensionIndex: primary.dimensionIndex,
|
|
433
|
+
sortOrder: primary.sortOrder,
|
|
434
|
+
sortSpecs,
|
|
435
|
+
});
|
|
436
|
+
}),
|
|
338
437
|
onFilterTable: (sheetId, filter, columnIndex, conditionType, conditionValue, visibleValues, extras) => onCommand({
|
|
339
438
|
command: "filter-table",
|
|
340
439
|
sheetId,
|
|
@@ -347,17 +446,50 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
347
446
|
// `null` survives as the explicit clear marker. Mirrors `createFilterSpecs` extras.
|
|
348
447
|
colorFilter: extras?.colorFilter,
|
|
349
448
|
iconFilter: extras?.iconFilter,
|
|
449
|
+
condition2: extras?.condition2,
|
|
450
|
+
conditionJoin: extras?.conditionJoin,
|
|
451
|
+
}),
|
|
452
|
+
onDeleteFilter: (sheetId, filter, columnIndex) => onCommand({
|
|
453
|
+
command: "delete-filter",
|
|
454
|
+
sheetId,
|
|
455
|
+
filter,
|
|
456
|
+
// An `undefined` key drops out of the JSON command → whole-filter clear.
|
|
457
|
+
...(columnIndex === undefined ? {} : { columnIndex }),
|
|
350
458
|
}),
|
|
351
|
-
onDeleteFilter: (sheetId, filter, columnIndex) => onCommand({ command: "delete-filter", sheetId, filter, columnIndex }),
|
|
352
459
|
onCreateBasicFilter: (sheetId, activeCell, selections, basicFilterSpec) => onCommand({ command: "create-basic-filter", sheetId, activeCell, selections, basicFilterSpec }),
|
|
353
460
|
// Tables
|
|
354
|
-
onCreateTable: (sheetId, activeCell, selections, tableSpec, theme, bandedRange) => onCommand({
|
|
461
|
+
onCreateTable: (sheetId, activeCell, selections, tableSpec, theme, bandedRange, options) => onCommand({
|
|
462
|
+
command: "create-table",
|
|
463
|
+
sheetId,
|
|
464
|
+
activeCell,
|
|
465
|
+
selections,
|
|
466
|
+
tableSpec,
|
|
467
|
+
theme,
|
|
468
|
+
bandedRange,
|
|
469
|
+
hasHeaders: options?.hasHeaders,
|
|
470
|
+
}),
|
|
355
471
|
onRemoveTable: (tableView) => onCommand({ command: "remove-table", tableView }),
|
|
356
472
|
onUpdateTable: (sheetId, tableId, updatedTable) => onCommand({ command: "update-table", sheetId, tableId, updatedTable }),
|
|
357
473
|
onResizeTable: (sheetId, table, range) => onCommand({ command: "resize-table", sheetId, table, range }),
|
|
474
|
+
onUndoTableAutoExpansion: ({ sheetId, tableId, previousRange, writes }) => onCommand({
|
|
475
|
+
command: "undo-table-auto-expansion",
|
|
476
|
+
sheetId,
|
|
477
|
+
tableId,
|
|
478
|
+
previousRange,
|
|
479
|
+
writes,
|
|
480
|
+
}),
|
|
481
|
+
onUndoCalculatedColumn: ({ sheetId, tableId, columnIndex, previous }) => onCommand({ command: "undo-calculated-column", sheetId, tableId, columnIndex, previous }),
|
|
482
|
+
onOverwriteCalculatedColumn: ({ sheetId, tableId, columnIndex, formula, anchor }) => onCommand({
|
|
483
|
+
command: "calculated-column",
|
|
484
|
+
sheetId,
|
|
485
|
+
tableId,
|
|
486
|
+
columnIndex,
|
|
487
|
+
formula,
|
|
488
|
+
fromRowIndex: anchor.rowIndex,
|
|
489
|
+
}),
|
|
358
490
|
onInsertTableRow: (tableView, relativeRowIndex, rowData) => onCommand({ command: "insert-table-row", tableView, relativeRowIndex, rowData }),
|
|
359
491
|
onDeleteTableRow: (tableView, rowIndexes) => onCommand({ command: "delete-table-row", tableView, rowIndexes }),
|
|
360
|
-
onInsertTableColumn: (tableView, dimensionIndex, direction) => onCommand({ command: "insert-table-column", tableView, dimensionIndex, direction }),
|
|
492
|
+
onInsertTableColumn: (tableView, dimensionIndex, direction, count) => onCommand({ command: "insert-table-column", tableView, dimensionIndex, direction, count }),
|
|
361
493
|
onDeleteTableColumn: (tableView, dimensionIndex) => onCommand({ command: "delete-table-column", tableView, dimensionIndex }),
|
|
362
494
|
onMoveTableColumns: (sheetId, tableId, columns, referenceColumnIndex) => onCommand({ command: "move-table-columns", sheetId, tableId, columns, referenceColumnIndex }),
|
|
363
495
|
onChangeTableColumn: (sheetId, tableId, columnIndex, name) => onCommand({ command: "change-table-column", sheetId, tableId, columnIndex, name }),
|
|
@@ -411,6 +543,7 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
411
543
|
// Banded Ranges
|
|
412
544
|
onAddBandedRange: (sheetId, bandedRange) => onCommand({ command: "add-banded-range", sheetId, bandedRange }),
|
|
413
545
|
onRemoveBandedRange: (sheetId, bandedRange) => onCommand({ command: "remove-banded-range", sheetId, bandedRange }),
|
|
546
|
+
onCreateCustomTableStyle: (style) => onCommand({ command: "create-table-style", style }),
|
|
414
547
|
// Protected Ranges
|
|
415
548
|
onProtectRange: (sheetId, activeCell, selections) => onCommand({ command: "protect-range", sheetId, activeCell, selections }),
|
|
416
549
|
onUnProtectRange: (sheetId, protectedRangeId) => onCommand({ command: "unprotect-range", sheetId, protectedRangeId }),
|
|
@@ -419,18 +552,24 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
419
552
|
// Embeds
|
|
420
553
|
onCreateEmbed: (spec) => onCommand({ command: "create-embed", spec }),
|
|
421
554
|
onUpdateEmbed: (embed) => onCommand({ command: "update-embed", embed }),
|
|
422
|
-
onMoveEmbed: (embedId, sheetId, anchorCell, offsetXPixels, offsetYPixels) => onCommand({ command: "move-embed", embedId, sheetId, anchorCell, offsetXPixels, offsetYPixels }),
|
|
423
|
-
onResizeEmbed: (embedId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height) => onCommand({ command: "resize-embed", embedId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height }),
|
|
555
|
+
onMoveEmbed: (embedId, sheetId, anchorCell, offsetXPixels, offsetYPixels, toAnchor) => onCommand({ command: "move-embed", embedId, sheetId, anchorCell, offsetXPixels, offsetYPixels, ...toAnchor }),
|
|
556
|
+
onResizeEmbed: (embedId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height, toAnchor) => onCommand({ command: "resize-embed", embedId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height, ...toAnchor }),
|
|
424
557
|
onDeleteEmbed: (embedId) => onCommand({ command: "delete-embed", embedId }),
|
|
425
558
|
// Slicers
|
|
426
559
|
onCreateSlicer: (slicer) => onCommand({ command: "create-slicer", slicer }),
|
|
427
560
|
onUpdateSlicer: (slicer) => onCommand({ command: "update-slicer", slicer }),
|
|
428
|
-
onMoveSlicer: (slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels) => onCommand({ command: "move-slicer", slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels }),
|
|
429
|
-
onResizeSlicer: (slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height) => onCommand({ command: "resize-slicer", slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height }),
|
|
561
|
+
onMoveSlicer: (slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels, toAnchor) => onCommand({ command: "move-slicer", slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels, ...toAnchor }),
|
|
562
|
+
onResizeSlicer: (slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height, toAnchor) => onCommand({ command: "resize-slicer", slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height, ...toAnchor }),
|
|
430
563
|
onDeleteSlicer: (slicerId) => onCommand({ command: "delete-slicer", slicerId }),
|
|
431
564
|
// Charts (onMoveChart / onResizeChart are hook-exposed — they read the active sheet from view state)
|
|
432
565
|
onCreateChart: (spec) => onCommand({ command: "create-chart", spec }),
|
|
433
566
|
onUpdateChart: (chart) => onCommand({ command: "update-chart", chart }),
|
|
567
|
+
onChangeZOrder: (changes) => onCommand({
|
|
568
|
+
command: "batch",
|
|
569
|
+
commands: changes.map((change) => change.kind === "chart"
|
|
570
|
+
? { command: "update-chart", chart: change.chart }
|
|
571
|
+
: { command: "update-embed", embed: change.embed }),
|
|
572
|
+
}),
|
|
434
573
|
onDeleteChart: (chartId) => onCommand({ command: "delete-chart", chartId }),
|
|
435
574
|
// Pivot tables
|
|
436
575
|
onCreatePivotTable: (pivotTable) => onCommand({ command: "create-pivot-table", pivotTable }),
|
package/dist/esm/fold.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fold.d.ts","sourceRoot":"","sources":["../../src/fold.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fold.d.ts","sourceRoot":"","sources":["../../src/fold.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EAEV,SAAS,EACV,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,KAAK,EACN,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACf,MAAM,SAAS,CAAC;AAGjB;;yGAEyG;AACzG,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/B,yEAAyE;IACzE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC;;;yGAGqG;IACrG,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAKxC,iCAAiC;IACjC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,yGAAyG;IACzG,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;IACrD,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;CACrD;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,KAAK,EAAO,GAAG,iBAAiB,CAUxE;AAED,gFAAgF;AAChF,wBAAgB,OAAO,CACrB,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EACzB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,GAChC,SAAS,CAAC,QAAQ,CAAC,CAQrB;AAED;;;;;;0EAM0E;AAC1E,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,GAAG,QAAQ,CAiCpE;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EACzB,OAAO,EAAE,UAAU,EAAE,GACpB,SAAS,CAAC,QAAQ,CAAC,CAQrB;AAED;uFACuF;AACvF,wBAAgB,UAAU,CACxB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B,MAAM,EAAE,UAAU,EAAE,GACnB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CASzB;AAED;qGACqG;AACrG,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EACzB,IAAI,EAAE,gBAAgB,EAAE,GACvB,SAAS,CAAC,QAAQ,CAAC,CAUrB;AAED,0DAA0D;AAC1D,wBAAgB,SAAS,CACvB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACzB,KAAK,EAAE,SAAS,EAAE,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrB;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,CAAC,EAC3B,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,EAC7B,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,EAAE,GAChD,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAQzB;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,KAAK,EAAE,EACb,UAAU,GAAE,eAAe,EAAO,EAClC,aAAa,GAAE,eAAe,EAAO,GACpC,KAAK,EAAE,CAoBT;AAED,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,GAAE,WAAW,EAAO,GAAG,KAAK,EAAE,CAwB9E;AAED;;;;;;;;;;0GAU0G;AAC1G,wBAAgB,eAAe,CAC7B,IAAI,EAAE,KAAK,EAAE,EACb,YAAY,EAAE,WAAW,EAAE,GAC1B,KAAK,EAAE,CAkDT;AAUD;;;;;;;;;4FAS4F;AAC5F,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,UAAU,GAAG,QAAQ,CAa5D;AAED;;+CAE+C;AAC/C,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EACzB,QAAQ,EAAE,cAAc,GACvB,SAAS,CAAC,QAAQ,CAAC,CAarB;AAED;;+EAE+E;AAC/E,wBAAgB,cAAc,CAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B,QAAQ,EAAE,cAAc,GACvB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAUzB;AAED;;;wDAGwD;AACxD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B,QAAQ,EAAE,cAAc,GACvB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAUzB;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,cAAc,GACvB,iBAAiB,CAEnB;AAsBD;;;;;;;;;;;;+BAY+B;AAC/B,wBAAgB,WAAW,CACzB,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,cAAc,EAAE,GAC1B,iBAAiB,CA2FnB;AAED,iFAAiF;AACjF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAaF;;;;;;;yFAOyF;AACzF,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,WAAW,EACd,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,GACxB,WAAW,EAAE,CAqCf;AAED;;;;;;wCAMwC;AACxC,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,YAAY,GACnB,iBAAiB,CA8BnB;AAED;;uCAEuC;AACvC,wBAAgB,UAAU,CACxB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,YAAY,GACnB,iBAAiB,CA8BnB"}
|
package/dist/esm/fold.js
CHANGED
|
@@ -214,6 +214,9 @@ export function reconcileSheets(prev, engineSheets) {
|
|
|
214
214
|
zoomScale: es.zoomScale,
|
|
215
215
|
rightToLeft: es.rightToLeft,
|
|
216
216
|
defaultRowHeight: es.defaultRowHeight,
|
|
217
|
+
defaultColumnWidth: es.defaultColumnWidth,
|
|
218
|
+
type: es.type,
|
|
219
|
+
chartId: es.chartId,
|
|
217
220
|
};
|
|
218
221
|
// Detect churn: order changed, a new sheet, or an identity/view facet changed on a survivor.
|
|
219
222
|
if (!existing ||
|
|
@@ -226,7 +229,10 @@ export function reconcileSheets(prev, engineSheets) {
|
|
|
226
229
|
existing.showZeros !== es.showZeros ||
|
|
227
230
|
existing.zoomScale !== es.zoomScale ||
|
|
228
231
|
existing.rightToLeft !== es.rightToLeft ||
|
|
229
|
-
existing.defaultRowHeight !== es.defaultRowHeight
|
|
232
|
+
existing.defaultRowHeight !== es.defaultRowHeight ||
|
|
233
|
+
existing.defaultColumnWidth !== es.defaultColumnWidth ||
|
|
234
|
+
existing.type !== es.type ||
|
|
235
|
+
existing.chartId !== es.chartId) {
|
|
230
236
|
changed = true;
|
|
231
237
|
return merged;
|
|
232
238
|
}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* (nightly Rust — the `--features collab` engine pulls yrs 0.27).
|
|
15
15
|
*/
|
|
16
16
|
import type { CellData, CellFormat, CellInterface, Citation, DataValidationRule, ExtendedValue, SheetCoordinate, SheetRange } from "@rowsncolumns/common-types";
|
|
17
|
-
import type { BandedRange, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, EmbeddedObject, FilterView, NamedRange, PivotTable, ProtectedRange, Sheet, Slicer, TableView } from "@rowsncolumns/spreadsheet";
|
|
17
|
+
import type { BandedRange, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, EmbeddedObject, FilterView, NamedRange, PivotTable, ProtectedRange, Sheet, CalculatedColumnFill, Slicer, TableAutoExpansion, TableView, CustomTableStyle } from "@rowsncolumns/spreadsheet";
|
|
18
18
|
import type { Command, CommandOf, CommandType } from "@rowsncolumns/spreadsheet-state";
|
|
19
19
|
import { CollabSpreadsheetEngine } from "./wasm/rnc_wasm.js";
|
|
20
20
|
export type { Command, CommandOf, CommandType };
|
|
@@ -157,6 +157,16 @@ export interface CommitResult {
|
|
|
157
157
|
* sized."). `createCommandHandlers` surfaces each `message` the way the legacy engine's fill hook
|
|
158
158
|
* does; hosts that want a toast read it here. Absent when the command executed. */
|
|
159
159
|
rejections?: CommandRejection[];
|
|
160
|
+
/** A table this value-writing command grew over the written cells (Excel's auto-expansion) — the
|
|
161
|
+
* record behind the AutoCorrect smart tag: the table's range before / after, the written cell the
|
|
162
|
+
* tag anchors to, and the cells the growth itself wrote (`writes`), which "Undo Table
|
|
163
|
+
* AutoExpansion" clears with the resize. Absent when no table grew. */
|
|
164
|
+
tableAutoExpansion?: TableAutoExpansion;
|
|
165
|
+
/** A formula this `set-value` / `change-batch` typed into a table column that filled it (Excel's
|
|
166
|
+
* calculated column) or could not because the column holds other cells — the record behind the
|
|
167
|
+
* AutoCorrect smart tag ("Undo Calculated Column" / "Overwrite all cells in this column with this
|
|
168
|
+
* formula"). Absent when no calculated column was involved. */
|
|
169
|
+
calculatedColumnFill?: CalculatedColumnFill;
|
|
160
170
|
}
|
|
161
171
|
/** A command the engine refused — mirrors rnc-store `CommandRejection`. `command` is the wire name
|
|
162
172
|
* (`"fill"`), `code` a stable key to branch on (`"merged-fill-size"`), `message` Excel's own wording. */
|
|
@@ -222,6 +232,13 @@ export interface EngineSheet {
|
|
|
222
232
|
/** Sheet default row height in px (from the imported `<sheetFormatPr defaultRowHeight>`): what a
|
|
223
233
|
* row with no `rowMetadata` entry renders at. Absent = renderer default. */
|
|
224
234
|
defaultRowHeight?: number;
|
|
235
|
+
/** Sheet default column width in px (from the imported `<sheetFormatPr defaultColWidth>`): what a
|
|
236
|
+
* column with no `columnMetadata` entry renders at. Absent = renderer default. */
|
|
237
|
+
defaultColumnWidth?: number;
|
|
238
|
+
/** `"chartsheet"` for an Excel chart sheet (the tab is one chart, no cells). Absent = worksheet. */
|
|
239
|
+
type?: Sheet["type"];
|
|
240
|
+
/** Chartsheets only — the id of the chart that fills the sheet. */
|
|
241
|
+
chartId?: Sheet["chartId"];
|
|
225
242
|
}
|
|
226
243
|
/** Initial document to hydrate the engine from (e.g. an API response / saved snapshot). */
|
|
227
244
|
export interface LoadDocument {
|
|
@@ -244,12 +261,29 @@ export interface LoadDocument {
|
|
|
244
261
|
charts?: EmbeddedChart[];
|
|
245
262
|
pivotTables?: PivotTable[];
|
|
246
263
|
tables?: TableView[];
|
|
247
|
-
|
|
264
|
+
/** Either named-range shape loads — the client `NamedRange` or the engine's persisted
|
|
265
|
+
* {@link LoadDocumentNamedRangeDef} (what `importXlsx` on the wasm engine emits) (#668 T-121). */
|
|
266
|
+
namedRanges?: Array<NamedRange | LoadDocumentNamedRangeDef>;
|
|
248
267
|
embeds?: EmbeddedObject[];
|
|
249
268
|
slicers?: Slicer[];
|
|
250
269
|
bandedRanges?: BandedRange[];
|
|
270
|
+
/** Custom table styles (Excel's New Table Style), keyed by name (#668 T-103). */
|
|
271
|
+
customTableStyles?: CustomTableStyle[];
|
|
251
272
|
citations?: Citation[];
|
|
252
273
|
}
|
|
274
|
+
/** The engine's persisted named-range definition (rnc-store `NamedRangeDef`, snake_case): the shape
|
|
275
|
+
* `rnc-import` emits in its `LoadDocument` JSON and the store snapshots. `range` is a bare grid range
|
|
276
|
+
* with the sheet beside it; for a value name `sheet_id` is the sheet its unqualified references
|
|
277
|
+
* resolve on. {@link LoadDocument.namedRanges} accepts it alongside the client `NamedRange`. */
|
|
278
|
+
export interface LoadDocumentNamedRangeDef {
|
|
279
|
+
id: string | number;
|
|
280
|
+
name: string;
|
|
281
|
+
sheet_id: number;
|
|
282
|
+
range?: Omit<SheetRange, "sheetId">;
|
|
283
|
+
value?: NamedRange["value"];
|
|
284
|
+
hidden?: boolean;
|
|
285
|
+
scope_sheet_id?: number;
|
|
286
|
+
}
|
|
253
287
|
/** One stored data-validation rule + the ranges it covers — the hook resolves a cell's rule by
|
|
254
288
|
* testing membership in `ranges` (`getDataValidation(sheetId,row,col)`). Mirrors rnc-store `DvDef`. */
|
|
255
289
|
export interface DataValidationEntry {
|
|
@@ -274,6 +308,7 @@ export interface DocumentFacets {
|
|
|
274
308
|
embeds: EmbeddedObject[];
|
|
275
309
|
slicers: Slicer[];
|
|
276
310
|
bandedRanges: BandedRange[];
|
|
311
|
+
customTableStyles: CustomTableStyle[];
|
|
277
312
|
protectedRanges: ProtectedRange[];
|
|
278
313
|
basicFilters: Array<{
|
|
279
314
|
sheetId: number;
|