@rowsncolumns/spreadsheet-state 28.0.73 → 28.0.75

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.
Files changed (167) hide show
  1. package/dist/cjs/api/advanced-filter.d.ts +72 -0
  2. package/dist/cjs/api/advanced-filter.d.ts.map +1 -0
  3. package/dist/cjs/api/advanced-filter.js +0 -0
  4. package/dist/cjs/api/datatype.d.ts.map +1 -1
  5. package/dist/cjs/api/datatype.js +8 -1
  6. package/dist/cjs/api/fill-series-spec.d.ts +35 -0
  7. package/dist/cjs/api/fill-series-spec.d.ts.map +1 -0
  8. package/dist/cjs/api/fill-series-spec.js +164 -0
  9. package/dist/cjs/api/fill.d.ts +95 -3
  10. package/dist/cjs/api/fill.d.ts.map +1 -1
  11. package/dist/cjs/api/fill.js +1186 -418
  12. package/dist/cjs/api/goal-seek.d.ts +29 -0
  13. package/dist/cjs/api/goal-seek.d.ts.map +1 -0
  14. package/dist/cjs/api/goal-seek.js +131 -0
  15. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  16. package/dist/cjs/api/immer-utils.js +21 -15
  17. package/dist/cjs/api/intl.d.ts.map +1 -1
  18. package/dist/cjs/api/paint-format.d.ts +55 -0
  19. package/dist/cjs/api/paint-format.d.ts.map +1 -0
  20. package/dist/cjs/api/paint-format.js +174 -0
  21. package/dist/cjs/api/split-text.d.ts +12 -0
  22. package/dist/cjs/api/split-text.d.ts.map +1 -1
  23. package/dist/cjs/api/split-text.js +41 -0
  24. package/dist/cjs/api/subtotal.d.ts +85 -0
  25. package/dist/cjs/api/subtotal.d.ts.map +1 -0
  26. package/dist/cjs/api/subtotal.js +250 -0
  27. package/dist/cjs/commands.d.ts +19 -1
  28. package/dist/cjs/commands.d.ts.map +1 -1
  29. package/dist/cjs/components/editors/data-validation-rule-editor.d.ts.map +1 -1
  30. package/dist/cjs/components/editors/data-validation-rule-editor.js +83 -16
  31. package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
  32. package/dist/cjs/hooks/use-calculation-worker.js +1 -0
  33. package/dist/cjs/hooks/use-calculation.d.ts +1 -1
  34. package/dist/cjs/hooks/use-on-advanced-filter.d.ts +21 -0
  35. package/dist/cjs/hooks/use-on-advanced-filter.d.ts.map +1 -0
  36. package/dist/cjs/hooks/use-on-advanced-filter.js +42 -0
  37. package/dist/cjs/hooks/use-on-fill.d.ts +13 -4
  38. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
  39. package/dist/cjs/hooks/use-on-fill.js +28 -7
  40. package/dist/cjs/hooks/use-on-goal-seek.d.ts +30 -0
  41. package/dist/cjs/hooks/use-on-goal-seek.d.ts.map +1 -0
  42. package/dist/cjs/hooks/use-on-goal-seek.js +140 -0
  43. package/dist/cjs/hooks/use-on-import-excel.d.ts +10 -1
  44. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
  45. package/dist/cjs/hooks/use-on-import-excel.js +8 -4
  46. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  47. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +53 -34
  48. package/dist/cjs/hooks/use-on-subtotal.d.ts +26 -0
  49. package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -0
  50. package/dist/cjs/hooks/use-on-subtotal.js +53 -0
  51. package/dist/cjs/hooks/use-paint-format.d.ts +19 -3
  52. package/dist/cjs/hooks/use-paint-format.d.ts.map +1 -1
  53. package/dist/cjs/hooks/use-paint-format.js +89 -32
  54. package/dist/cjs/hooks/use-sheet-properties.d.ts +2 -0
  55. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  56. package/dist/cjs/hooks/use-sheet-properties.js +4 -0
  57. package/dist/cjs/hooks/use-split-text-to-columns.d.ts +2 -1
  58. package/dist/cjs/hooks/use-split-text-to-columns.d.ts.map +1 -1
  59. package/dist/cjs/hooks/use-split-text-to-columns.js +3 -2
  60. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +50 -36
  61. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  62. package/dist/cjs/hooks/use-spreadsheet-state.js +109 -19
  63. package/dist/cjs/index.d.ts +8 -0
  64. package/dist/cjs/index.d.ts.map +1 -1
  65. package/dist/cjs/index.js +8 -0
  66. package/dist/cjs/interface/apply-fill.d.ts +3 -3
  67. package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
  68. package/dist/cjs/interface/apply-fill.js +100 -53
  69. package/dist/cjs/interface/change-batch-stream.d.ts.map +1 -1
  70. package/dist/cjs/interface/change-batch-stream.js +12 -6
  71. package/dist/cjs/interface/change-batch.d.ts.map +1 -1
  72. package/dist/cjs/interface/change-batch.js +17 -9
  73. package/dist/cjs/interface/change-formatting.d.ts.map +1 -1
  74. package/dist/cjs/interface/change-formatting.js +30 -11
  75. package/dist/cjs/interface/split-text.d.ts +2 -1
  76. package/dist/cjs/interface/split-text.d.ts.map +1 -1
  77. package/dist/cjs/interface/split-text.js +7 -3
  78. package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
  79. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  80. package/dist/cjs/interface/spreadsheet-interface.js +2 -2
  81. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  82. package/dist/cjs/sheet-cell.js +37 -6
  83. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  84. package/dist/esm/api/advanced-filter.d.ts +72 -0
  85. package/dist/esm/api/advanced-filter.d.ts.map +1 -0
  86. package/dist/esm/api/advanced-filter.js +0 -0
  87. package/dist/esm/api/datatype.d.ts.map +1 -1
  88. package/dist/esm/api/datatype.js +8 -1
  89. package/dist/esm/api/fill-series-spec.d.ts +35 -0
  90. package/dist/esm/api/fill-series-spec.d.ts.map +1 -0
  91. package/dist/esm/api/fill-series-spec.js +160 -0
  92. package/dist/esm/api/fill.d.ts +95 -3
  93. package/dist/esm/api/fill.d.ts.map +1 -1
  94. package/dist/esm/api/fill.js +1158 -418
  95. package/dist/esm/api/goal-seek.d.ts +29 -0
  96. package/dist/esm/api/goal-seek.d.ts.map +1 -0
  97. package/dist/esm/api/goal-seek.js +108 -0
  98. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  99. package/dist/esm/api/immer-utils.js +21 -15
  100. package/dist/esm/api/intl.d.ts.map +1 -1
  101. package/dist/esm/api/paint-format.d.ts +55 -0
  102. package/dist/esm/api/paint-format.d.ts.map +1 -0
  103. package/dist/esm/api/paint-format.js +122 -0
  104. package/dist/esm/api/split-text.d.ts +12 -0
  105. package/dist/esm/api/split-text.d.ts.map +1 -1
  106. package/dist/esm/api/split-text.js +28 -0
  107. package/dist/esm/api/subtotal.d.ts +85 -0
  108. package/dist/esm/api/subtotal.d.ts.map +1 -0
  109. package/dist/esm/api/subtotal.js +181 -0
  110. package/dist/esm/commands.d.ts +19 -1
  111. package/dist/esm/commands.d.ts.map +1 -1
  112. package/dist/esm/components/editors/data-validation-rule-editor.d.ts.map +1 -1
  113. package/dist/esm/components/editors/data-validation-rule-editor.js +52 -4
  114. package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
  115. package/dist/esm/hooks/use-calculation-worker.js +1 -0
  116. package/dist/esm/hooks/use-calculation.d.ts +1 -1
  117. package/dist/esm/hooks/use-on-advanced-filter.d.ts +21 -0
  118. package/dist/esm/hooks/use-on-advanced-filter.d.ts.map +1 -0
  119. package/dist/esm/hooks/use-on-advanced-filter.js +41 -0
  120. package/dist/esm/hooks/use-on-fill.d.ts +13 -4
  121. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
  122. package/dist/esm/hooks/use-on-fill.js +24 -4
  123. package/dist/esm/hooks/use-on-goal-seek.d.ts +30 -0
  124. package/dist/esm/hooks/use-on-goal-seek.d.ts.map +1 -0
  125. package/dist/esm/hooks/use-on-goal-seek.js +82 -0
  126. package/dist/esm/hooks/use-on-import-excel.d.ts +10 -1
  127. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
  128. package/dist/esm/hooks/use-on-import-excel.js +8 -4
  129. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  130. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +13 -13
  131. package/dist/esm/hooks/use-on-subtotal.d.ts +26 -0
  132. package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -0
  133. package/dist/esm/hooks/use-on-subtotal.js +48 -0
  134. package/dist/esm/hooks/use-paint-format.d.ts +19 -3
  135. package/dist/esm/hooks/use-paint-format.d.ts.map +1 -1
  136. package/dist/esm/hooks/use-paint-format.js +75 -30
  137. package/dist/esm/hooks/use-sheet-properties.d.ts +2 -0
  138. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  139. package/dist/esm/hooks/use-sheet-properties.js +4 -0
  140. package/dist/esm/hooks/use-split-text-to-columns.d.ts +2 -1
  141. package/dist/esm/hooks/use-split-text-to-columns.d.ts.map +1 -1
  142. package/dist/esm/hooks/use-split-text-to-columns.js +3 -2
  143. package/dist/esm/hooks/use-spreadsheet-state.d.ts +50 -36
  144. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  145. package/dist/esm/hooks/use-spreadsheet-state.js +100 -17
  146. package/dist/esm/index.d.ts +8 -0
  147. package/dist/esm/index.d.ts.map +1 -1
  148. package/dist/esm/index.js +8 -0
  149. package/dist/esm/interface/apply-fill.d.ts +3 -3
  150. package/dist/esm/interface/apply-fill.d.ts.map +1 -1
  151. package/dist/esm/interface/apply-fill.js +93 -48
  152. package/dist/esm/interface/change-batch-stream.d.ts.map +1 -1
  153. package/dist/esm/interface/change-batch-stream.js +12 -6
  154. package/dist/esm/interface/change-batch.d.ts.map +1 -1
  155. package/dist/esm/interface/change-batch.js +15 -9
  156. package/dist/esm/interface/change-formatting.d.ts.map +1 -1
  157. package/dist/esm/interface/change-formatting.js +28 -11
  158. package/dist/esm/interface/split-text.d.ts +2 -1
  159. package/dist/esm/interface/split-text.d.ts.map +1 -1
  160. package/dist/esm/interface/split-text.js +6 -3
  161. package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
  162. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  163. package/dist/esm/interface/spreadsheet-interface.js +2 -2
  164. package/dist/esm/sheet-cell.d.ts.map +1 -1
  165. package/dist/esm/sheet-cell.js +37 -6
  166. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  167. package/package.json +20 -20
@@ -0,0 +1,181 @@
1
+ import { SUBTOTAL_FUNCTIONS, } from "@rowsncolumns/spreadsheet";
2
+ import { number2Alpha } from "@rowsncolumns/utils";
3
+ export { SUBTOTAL_FUNCTIONS };
4
+ /**
5
+ * The `SUBTOTAL(function_num, …)` code each "Use function" entry writes.
6
+ * Codes 1–11 (not 101–111): the subtotal rows Excel inserts count manually
7
+ * hidden rows.
8
+ */
9
+ export const SUBTOTAL_FUNCTION_NUMBERS = {
10
+ AVERAGE: 1,
11
+ COUNT: 2,
12
+ COUNTA: 3,
13
+ MAX: 4,
14
+ MIN: 5,
15
+ PRODUCT: 6,
16
+ STDEV: 7,
17
+ STDEVP: 8,
18
+ SUM: 9,
19
+ VAR: 10,
20
+ VARP: 11,
21
+ };
22
+ /** Excel's total-row labels: "<group> Total" per group, "Grand Total" at the bottom. */
23
+ export const SUBTOTAL_GRAND_TOTAL_LABEL = "Grand Total";
24
+ export const subtotalGroupLabel = (groupValue) => groupValue ? `${groupValue} Total` : "Total";
25
+ const isSubtotalFormula = (formula) => !!formula && /^=\s*(_xlfn\.)?SUBTOTAL\s*\(/i.test(formula);
26
+ /** What a cell shows: booleans display as `TRUE`/`FALSE` (Excel's label is "TRUE Total"). */
27
+ const displayValue = (value) => {
28
+ if (value === null || value === undefined)
29
+ return "";
30
+ if (typeof value === "boolean")
31
+ return value ? "TRUE" : "FALSE";
32
+ return String(value);
33
+ };
34
+ const columnLetters = (columnIndex) => number2Alpha(columnIndex - 1);
35
+ /**
36
+ * Plans Excel's Subtotal command over `options.range`. Consecutive rows with
37
+ * the same group-column value form a group (Excel does not sort — it expects
38
+ * the data sorted and totals each run of equal values). Each group gets a
39
+ * total row right below it holding "<value> Total" in the group column and
40
+ * `=SUBTOTAL(n, first:last)` over the group's data rows in every aggregate
41
+ * column; a grand-total row closes the range with `SUBTOTAL` over the whole
42
+ * data block (SUBTOTAL ignores the nested subtotal rows, like Excel). With
43
+ * `replaceCurrent` the range's existing outline is cleared too, so a re-apply
44
+ * yields Excel's fresh detail 2 / subtotal 1 / grand total 0 levels instead
45
+ * of nesting deeper; without it the new levels stack on the old ones (Excel's
46
+ * nested subtotals). Returns `undefined` when the range has no data rows.
47
+ */
48
+ export const planSubtotals = (options, reader) => {
49
+ const { range, groupByColumnIndex, aggregateColumnIndices, fn = "SUM", hasHeader = true, replaceCurrent = true, } = options;
50
+ const functionNumber = SUBTOTAL_FUNCTION_NUMBERS[fn];
51
+ const aggregates = [...new Set(aggregateColumnIndices)]
52
+ .filter((columnIndex) => columnIndex >= range.startColumnIndex &&
53
+ columnIndex <= range.endColumnIndex)
54
+ .sort((a, b) => a - b);
55
+ const firstDataRow = hasHeader ? range.startRowIndex + 1 : range.startRowIndex;
56
+ if (firstDataRow > range.endRowIndex)
57
+ return undefined;
58
+ // Existing subtotal rows (any aggregate column, or the group column's
59
+ // "… Total" label next to a SUBTOTAL anywhere in the range) are dropped
60
+ // first when replacing.
61
+ const deleteRows = [];
62
+ const dataRows = [];
63
+ for (let rowIndex = firstDataRow; rowIndex <= range.endRowIndex; rowIndex++) {
64
+ let isTotalRow = false;
65
+ if (replaceCurrent) {
66
+ for (let columnIndex = range.startColumnIndex; columnIndex <= range.endColumnIndex && !isTotalRow; columnIndex++) {
67
+ isTotalRow = isSubtotalFormula(reader.getFormula(rowIndex, columnIndex));
68
+ }
69
+ }
70
+ if (isTotalRow)
71
+ deleteRows.push(rowIndex);
72
+ else
73
+ dataRows.push(rowIndex);
74
+ }
75
+ if (dataRows.length === 0)
76
+ return undefined;
77
+ deleteRows.sort((a, b) => b - a);
78
+ // Runs of equal group values over the surviving data rows.
79
+ const groups = [];
80
+ for (const rowIndex of dataRows) {
81
+ const label = displayValue(reader.getValue(rowIndex, groupByColumnIndex));
82
+ const last = groups[groups.length - 1];
83
+ if (last && last.label === label)
84
+ last.size++;
85
+ else
86
+ groups.push({ label, size: 1 });
87
+ }
88
+ // Lay out the final rows: data rows are compacted (deleted rows gone),
89
+ // then each group is followed by its total row.
90
+ const insertRows = [];
91
+ const writes = [];
92
+ const detailRows = [];
93
+ const startColumn = Math.min(groupByColumnIndex, ...aggregates);
94
+ const endColumn = Math.max(groupByColumnIndex, ...aggregates);
95
+ const totalRowValues = (label, firstRow, lastRow) => {
96
+ const values = [];
97
+ for (let columnIndex = startColumn; columnIndex <= endColumn; columnIndex++) {
98
+ if (columnIndex === groupByColumnIndex) {
99
+ values.push(label);
100
+ }
101
+ else if (aggregates.includes(columnIndex)) {
102
+ const letters = columnLetters(columnIndex);
103
+ values.push(`=SUBTOTAL(${functionNumber},${letters}${firstRow}:${letters}${lastRow})`);
104
+ }
105
+ else {
106
+ values.push(null);
107
+ }
108
+ }
109
+ return values;
110
+ };
111
+ // "Replace current subtotals": the surviving data rows carry the previous
112
+ // outline (detail rows at 2, or deeper after repeated applies) into their
113
+ // final positions — the inserted total rows arrive at level 0 — so record
114
+ // how many ungroup steps each needs before the fresh levels go on.
115
+ const ungroupRows = [];
116
+ let dataRowCursor = 0;
117
+ let cursor = firstDataRow;
118
+ for (const group of groups) {
119
+ const groupStart = cursor;
120
+ for (let i = 0; i < group.size; i++) {
121
+ const originalRow = dataRows[dataRowCursor++];
122
+ const level = replaceCurrent ? (reader.getOutlineLevel?.(originalRow) ?? 0) : 0;
123
+ for (let pass = 0; pass < level; pass++) {
124
+ (ungroupRows[pass] ??= []).push(cursor);
125
+ }
126
+ detailRows.push(cursor++);
127
+ }
128
+ const groupEnd = cursor - 1;
129
+ insertRows.push(cursor);
130
+ writes.push({
131
+ rowIndex: cursor,
132
+ startColumnIndex: startColumn,
133
+ values: totalRowValues(subtotalGroupLabel(group.label), groupStart, groupEnd),
134
+ });
135
+ cursor++;
136
+ }
137
+ const lastRowBeforeGrand = cursor - 1;
138
+ insertRows.push(cursor);
139
+ writes.push({
140
+ rowIndex: cursor,
141
+ startColumnIndex: startColumn,
142
+ values: totalRowValues(SUBTOTAL_GRAND_TOTAL_LABEL, firstDataRow, lastRowBeforeGrand),
143
+ });
144
+ const level1 = [];
145
+ for (let rowIndex = firstDataRow; rowIndex <= lastRowBeforeGrand; rowIndex++) {
146
+ level1.push(rowIndex);
147
+ }
148
+ return {
149
+ deleteRows,
150
+ insertRows,
151
+ writes,
152
+ ungroupRows,
153
+ outlineGroups: [level1, detailRows],
154
+ groupCount: groups.length,
155
+ resultRange: { ...range, endRowIndex: cursor },
156
+ };
157
+ };
158
+ /** Applies a {@link SubtotalPlan} in its documented order. */
159
+ export const applySubtotalPlan = (sheetId, plan, executor) => {
160
+ if (plan.deleteRows.length)
161
+ executor.onDeleteRow(sheetId, plan.deleteRows);
162
+ for (const rowIndex of plan.insertRows) {
163
+ executor.onInsertRow(sheetId, rowIndex, 1);
164
+ }
165
+ for (const write of plan.writes) {
166
+ executor.onChangeBatch(sheetId, {
167
+ startRowIndex: write.rowIndex,
168
+ endRowIndex: write.rowIndex,
169
+ startColumnIndex: write.startColumnIndex,
170
+ endColumnIndex: write.startColumnIndex + write.values.length - 1,
171
+ }, [write.values]);
172
+ }
173
+ for (const rows of plan.ungroupRows) {
174
+ if (rows.length)
175
+ executor.onUngroupRows(sheetId, rows);
176
+ }
177
+ for (const rows of plan.outlineGroups) {
178
+ if (rows.length)
179
+ executor.onGroupRows(sheetId, rows);
180
+ }
181
+ };
@@ -1,5 +1,5 @@
1
1
  import type { CellData, CellInterface, Citation, Color, Direction, GridRange, SelectionArea, SheetRange, SortOrder } from "@rowsncolumns/common-types";
2
- import type { AXIS, BandedDefinition, BandedRange, BorderLocation, BorderStyle, CellFormat, ColorFilterCriteria, ConditionalFormatRule, ConditionType, ConditionValue, IconFilterCriteria, DataValidationRuleRecord, EmbeddedChart, EmbeddedObject, FilterView, NamedRange, PivotTable, ProtectedRange, SelectionAttributes, Sheet, Slicer, SpreadsheetTheme, TableTheme, TableView, TextFormatRun } from "@rowsncolumns/spreadsheet";
2
+ import type { AXIS, BandedDefinition, BandedRange, BorderLocation, BorderStyle, CellFormat, ColorFilterCriteria, ConditionalFormatRule, ConditionType, ConditionValue, DataValidationRuleRecord, EmbeddedChart, EmbeddedObject, FillModifier, FillSeriesSpec, FilterView, IconFilterCriteria, NamedRange, PivotTable, ProtectedRange, SelectionAttributes, Sheet, Slicer, SpreadsheetTheme, TableTheme, TableView, TextFormatRun } from "@rowsncolumns/spreadsheet";
3
3
  import type { AutoFillType } from "./api/fill";
4
4
  import type { ChangeBatchOptions } from "./interface/change-batch";
5
5
  import type { ClearType } from "./interface/delete-cells";
@@ -73,6 +73,16 @@ export type Command = {
73
73
  selections: SelectionArea<SelectionAttributes>[];
74
74
  fillableSelections?: SelectionArea<SelectionAttributes>[];
75
75
  fillType?: AutoFillType;
76
+ /** Ctrl/Cmd held on the fill handle at release — inverts the auto-detected copy↔series decision. */
77
+ modifier?: FillModifier;
78
+ /** Excel Series-dialog parameters (step/stop/trend/date unit). */
79
+ series?: FillSeriesSpec;
80
+ /**
81
+ * The host's user-defined autofill lists (`useSpreadsheetState({ customAutofillLists })`,
82
+ * Excel's *Edit Custom Lists*). Consulted before the locale month/weekday lists by an
83
+ * engine that executes the command (the legacy engine resolves them in-process).
84
+ */
85
+ customLists?: string[][];
76
86
  } | {
77
87
  command: "remove-duplicates";
78
88
  sheetId: number;
@@ -86,6 +96,14 @@ export type Command = {
86
96
  activeCell: CellInterface;
87
97
  selections: SelectionArea<SelectionAttributes>[];
88
98
  delimiter: string;
99
+ /** Fixed-width mode: character positions of the column breaks (wins over `delimiter`). */
100
+ columnBreaks?: number[];
101
+ } | {
102
+ command: "goal-seek";
103
+ sheetId: number;
104
+ setCell: CellInterface;
105
+ targetValue: number;
106
+ changingCell: CellInterface;
89
107
  } | {
90
108
  command: "find-replace";
91
109
  ranges: SheetRange[];
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-validation-rule-editor.d.ts","sourceRoot":"","sources":["../../../../components/editors/data-validation-rule-editor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,wBAAwB,EAEzB,MAAM,2BAA2B,CAAC;AAyBnC,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,wBAAwB,CAAC;IAC7C,oBAAoB,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAC/D;;OAEG;IACH,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;IAC/D,QAAQ,CAAC,CACP,IAAI,EAAE,wBAAwB,EAC9B,YAAY,EAAE,wBAAwB,GACrC,IAAI,CAAC;IACR,QAAQ,CAAC,IAAI,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,gGAOtC,6BAA6B,sBA+W/B,CAAC"}
1
+ {"version":3,"file":"data-validation-rule-editor.d.ts","sourceRoot":"","sources":["../../../../components/editors/data-validation-rule-editor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,wBAAwB,EAEzB,MAAM,2BAA2B,CAAC;AAkCnC,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,wBAAwB,CAAC;IAC7C,oBAAoB,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAC/D;;OAEG;IACH,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;IAC/D,QAAQ,CAAC,CACP,IAAI,EAAE,wBAAwB,EAC9B,YAAY,EAAE,wBAAwB,GACrC,IAAI,CAAC;IACR,QAAQ,CAAC,IAAI,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,gGAOtC,6BAA6B,sBA8d/B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { CrossCircledIcon } from "@rowsncolumns/icons";
2
- import { CONDITION_NONE, FormulaInput, shouldShowFromValue, shouldShowToValue, useFormulaInputState, useGetNamedRanges, VALIDATION_CONDITION_LABELS, } from "@rowsncolumns/spreadsheet";
2
+ import { buildExcelValidationRule, CONDITION_NONE, EXCEL_VALIDATION_KIND_LABELS, EXCEL_VALIDATION_OPERATOR_LABELS, FormulaInput, getValidationAnchor, isTwoSidedOperator, readExcelValidationSpec, shouldShowFromValue, shouldShowToValue, useFormulaInputState, useGetNamedRanges, VALIDATION_CONDITION_LABELS, } from "@rowsncolumns/spreadsheet";
3
3
  import { Button, IconButton, Input, Select, SelectContent, SelectItem, SelectPortal, SelectTrigger, SelectValue, Stack, useIsomorphicLayoutEffect, } from "@rowsncolumns/ui";
4
4
  import { uuid } from "@rowsncolumns/utils";
5
5
  import { useFormik } from "formik";
@@ -14,9 +14,20 @@ export const DataValidationRuleEditor = ({ sheetId, dataValidationRule, function
14
14
  return trimmed.startsWith("=") ? trimmed : `=${trimmed}`;
15
15
  };
16
16
  const getNamedRanges = useGetNamedRanges();
17
+ // Excel's Whole number / Time / Text length kinds live outside the
18
+ // ConditionType union; the select shows them as `EXCEL_KIND_*` entries and
19
+ // the rule is composed on save (see `buildExcelValidationRule`).
20
+ const [excelSpec, setExcelSpec] = useState(() => readExcelValidationSpec(dataValidationRule));
17
21
  const { values, handleSubmit, resetForm, setFieldValue } = useFormik({
18
22
  initialValues: dataValidationRule,
19
23
  onSubmit(values) {
24
+ if (excelSpec) {
25
+ const composed = buildExcelValidationRule(excelSpec, getValidationAnchor(values.ranges[0]));
26
+ if (!composed)
27
+ return;
28
+ onSubmit?.({ ...values, ...composed }, dataValidationRule);
29
+ return;
30
+ }
20
31
  onSubmit?.(values, dataValidationRule);
21
32
  },
22
33
  });
@@ -31,6 +42,11 @@ export const DataValidationRuleEditor = ({ sheetId, dataValidationRule, function
31
42
  const toValue = values?.condition?.values?.[1]?.userEnteredValue;
32
43
  const updateDataValidationInputs = (nextFromValue, nextToValue, nextType = values?.condition?.type, includeToValue = showToValue, includeFromValue = showFromValue) => {
33
44
  const shouldIncludeFrom = includeFromValue && nextFromValue !== undefined;
45
+ // The condition no longer matches the imported Excel description — drop
46
+ // it so the exporter synthesizes from `condition` instead of replaying
47
+ // the stale source rule.
48
+ if (values.xlsxSource)
49
+ setFieldValue("xlsxSource", undefined);
34
50
  if (nextType === "CUSTOM_FORMULA") {
35
51
  setFieldValue("condition.values", [
36
52
  ...(shouldIncludeFrom
@@ -98,7 +114,20 @@ export const DataValidationRuleEditor = ({ sheetId, dataValidationRule, function
98
114
  }, type: "button", className: "cursor-pointer" }, "Add range"))),
99
115
  React.createElement(Stack, { direction: "vertical", className: "gap-1 pb-1" },
100
116
  React.createElement("label", { className: "font-system text-sm" }, "Format rules"),
101
- React.createElement(Select, { value: values?.condition?.type ?? CONDITION_NONE, onValueChange: (value) => {
117
+ React.createElement(Select, { value: excelSpec
118
+ ? `${EXCEL_KIND_PREFIX}${excelSpec.kind}`
119
+ : values?.condition?.type ?? CONDITION_NONE, onValueChange: (value) => {
120
+ if (value.startsWith(EXCEL_KIND_PREFIX)) {
121
+ const kind = value.slice(EXCEL_KIND_PREFIX.length);
122
+ setExcelSpec((prev) => ({
123
+ kind,
124
+ operator: prev?.operator ?? "between",
125
+ formula1: prev?.kind === kind ? prev.formula1 : undefined,
126
+ formula2: prev?.kind === kind ? prev.formula2 : undefined,
127
+ }));
128
+ return;
129
+ }
130
+ setExcelSpec(undefined);
102
131
  const nextShowTo = shouldShowToValue(value);
103
132
  const nextShowFrom = shouldShowFromValue(value);
104
133
  setFieldValue("condition.type", value);
@@ -114,13 +143,30 @@ export const DataValidationRuleEditor = ({ sheetId, dataValidationRule, function
114
143
  React.createElement(SelectPortal, null,
115
144
  React.createElement(SelectContent, null,
116
145
  React.createElement(SelectItem, { value: CONDITION_NONE }, "None"),
146
+ EXCEL_VALIDATION_KIND_LABELS.map(({ kind, label }) => (React.createElement(SelectItem, { key: kind, value: `${EXCEL_KIND_PREFIX}${kind}` }, label))),
117
147
  VALIDATION_CONDITION_LABELS.map(({ condition, label }) => {
118
148
  return (React.createElement(SelectItem, { key: condition, value: condition }, label));
119
149
  }))))),
150
+ excelSpec ? (React.createElement(Stack, { direction: "vertical", className: "gap-1 pb-3" },
151
+ React.createElement(Select, { value: excelSpec.operator, onValueChange: (operator) => setExcelSpec((prev) => (prev ? { ...prev, operator } : prev)) },
152
+ React.createElement(SelectTrigger, { className: "mb-1 text-sm", "aria-label": "Data" },
153
+ React.createElement(SelectValue, { placeholder: "between" })),
154
+ React.createElement(SelectPortal, null,
155
+ React.createElement(SelectContent, null, EXCEL_VALIDATION_OPERATOR_LABELS.map(({ operator, label }) => (React.createElement(SelectItem, { key: operator, value: operator }, label)))))),
156
+ React.createElement(Input, { value: excelSpec.formula1 ?? "", type: "text", name: "excelFormula1", onChange: (e) => setExcelSpec((prev) => prev ? { ...prev, formula1: e.target.value } : prev), className: "text-xs", placeholder: isTwoSidedOperator(excelSpec.operator)
157
+ ? excelSpec.kind === "time"
158
+ ? "Start time"
159
+ : "Minimum"
160
+ : excelSpec.kind === "time"
161
+ ? "Time"
162
+ : excelSpec.kind === "textLength"
163
+ ? "Length"
164
+ : "Value" }),
165
+ isTwoSidedOperator(excelSpec.operator) ? (React.createElement(Input, { value: excelSpec.formula2 ?? "", type: "text", name: "excelFormula2", onChange: (e) => setExcelSpec((prev) => prev ? { ...prev, formula2: e.target.value } : prev), className: "text-xs", placeholder: excelSpec.kind === "time" ? "End time" : "Maximum" })) : null)) : null,
120
166
  React.createElement(Stack, { direction: "vertical", className: "gap-1 pb-3" },
121
- showFromValue ? (values.condition?.type === "CUSTOM_FORMULA" ||
167
+ !excelSpec && showFromValue ? (values.condition?.type === "CUSTOM_FORMULA" ||
122
168
  values.condition?.type === "ONE_OF_RANGE" ? (React.createElement(FormulaInput, { onChange: (value) => updateDataValidationInputs(value, undefined, values.condition?.type ?? undefined, false, true), value: fromValue ?? "=", required: true, placeholder: "Enter a formula", autoFocus: true, functionDescriptions: functionDescriptions, getNamedRanges: getNamedRanges })) : (React.createElement(Input, { value: fromValue, type: "text", name: "fromValue", onChange: (e) => updateDataValidationInputs(e.target.value, toValue), className: "text-xs", placeholder: "Value or formula" }))) : null,
123
- showToValue ? (React.createElement(Input, { value: toValue, type: "text", name: "toValue", onChange: (e) => updateDataValidationInputs(fromValue, e.target.value), className: "text-xs", placeholder: "Value or formula" })) : null),
169
+ !excelSpec && showToValue ? (React.createElement(Input, { value: toValue, type: "text", name: "toValue", onChange: (e) => updateDataValidationInputs(fromValue, e.target.value), className: "text-xs", placeholder: "Value or formula" })) : null),
124
170
  React.createElement(Stack, { direction: "vertical", className: "gap-1 pb-1 flex-row" },
125
171
  React.createElement("input", { type: "checkbox", checked: values.allowBlank ?? undefined, onChange: (e) => {
126
172
  setFieldValue("allowBlank", e.target.checked);
@@ -154,6 +200,8 @@ export const DataValidationRuleEditor = ({ sheetId, dataValidationRule, function
154
200
  React.createElement(Button, { type: "submit", variant: "primary", size: "xs" }, "Save"),
155
201
  React.createElement(Button, { size: "xs", onClick: onCancelForm, type: "button" }, "Cancel"))));
156
202
  };
203
+ /** Select values for the Excel kinds (kept out of the ConditionType union). */
204
+ const EXCEL_KIND_PREFIX = "EXCEL_KIND_";
157
205
  const DataValidationRangeInput = ({ sheetId, range, autoFocus, onValidRange, }) => {
158
206
  const formulaInput = useFormulaInputState(sheetId, range);
159
207
  return (React.createElement(FormulaInput, { onChange: (value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-calculation-worker.d.ts","sourceRoot":"","sources":["../../../hooks/use-calculation-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,8BAA8B,EAQ9B,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAU1C,OAAO,KAAK,EACV,2BAA2B,EAE5B,MAAM,4BAA4B,CAAC;AAmBpC,OAAO,KAAK,EAEV,UAAU,EACV,SAAS,EACV,MAAM,2BAA2B,CAAC;AAgBnC,OAAO,KAAK,EAKV,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,KAAK,wBAAwB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EACD,OAAO,GACP,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,yBAAyB,GACzB,cAAc,GACd,UAAU,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAyEF,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAC5D,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD,kBAAkB,CAAC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAClD,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AA8KF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,yBAAyB,KAC/B,wBA8/DF,CAAC"}
1
+ {"version":3,"file":"use-calculation-worker.d.ts","sourceRoot":"","sources":["../../../hooks/use-calculation-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,8BAA8B,EAQ9B,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAU1C,OAAO,KAAK,EACV,2BAA2B,EAE5B,MAAM,4BAA4B,CAAC;AAmBpC,OAAO,KAAK,EAEV,UAAU,EACV,SAAS,EACV,MAAM,2BAA2B,CAAC;AAgBnC,OAAO,KAAK,EAKV,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,KAAK,wBAAwB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EACD,OAAO,GACP,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,yBAAyB,GACzB,cAAc,GACd,UAAU,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAyEF,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAC5D,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD,kBAAkB,CAAC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAClD,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AA8KF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,yBAAyB,KAC/B,wBA+/DF,CAAC"}
@@ -1629,6 +1629,7 @@ export const useCalculationWorker = (props) => {
1629
1629
  position,
1630
1630
  formula,
1631
1631
  precedents: dependencies,
1632
+ cellFormulas: graph.collectCellFormulas(formula, dependencies),
1632
1633
  isPreview: !disablePreview,
1633
1634
  },
1634
1635
  ],
@@ -148,7 +148,7 @@ export declare const useCalculation: ({ locale, functions, iterativeCalculation,
148
148
  disablePreview?: boolean;
149
149
  overrides?: CalculationOverrides;
150
150
  skipOnDemand?: boolean;
151
- }) => Promise<string | number | boolean | StructuredResult | Date | FormulaError | FormulaResultArray | import("@rowsncolumns/fast-formula-parser").RecursiveFormula | DataSource | null | undefined>;
151
+ }) => Promise<string | number | boolean | Date | StructuredResult | FormulaError | FormulaResultArray | import("@rowsncolumns/fast-formula-parser").RecursiveFormula | DataSource | null | undefined>;
152
152
  getGraphNodes: () => Map<string, CellNode | StaticNode | CellRangeNode>;
153
153
  getGraphNodesInSheet: (sheetId: number) => ReadonlyMap<string, CellNode | CellRangeNode> | undefined;
154
154
  addStaticReference: (source: StaticReference, sourcePosition: CellCoordinate | CellCoordinateRange) => Calculator<any>;
@@ -0,0 +1,21 @@
1
+ import type { GridRange } from "@rowsncolumns/common-types";
2
+ import { type AdvancedFilterOptions, type AdvancedFilterPlan, type AdvancedFilterPlanExecutor } from "../api/advanced-filter";
3
+ import type { useSheetProperties } from "./use-sheet-properties";
4
+ export type { AdvancedFilterOptions, AdvancedFilterPlan };
5
+ export type UseOnAdvancedFilterProps = {
6
+ getEffectiveValue: ReturnType<typeof useSheetProperties>["getEffectiveValue"];
7
+ getFormattedValue: ReturnType<typeof useSheetProperties>["getFormattedValue"];
8
+ onHideRow: AdvancedFilterPlanExecutor["onHideRow"];
9
+ onShowRow: AdvancedFilterPlanExecutor["onShowRow"];
10
+ onChangeBatch: (sheetId: number, ranges: GridRange, values: (string | number | boolean | null)[][]) => void;
11
+ };
12
+ /**
13
+ * Excel's Data → Sort & Filter → Advanced, composed over the existing
14
+ * hide/show-row and batch-write callbacks so both engines execute it through
15
+ * the same streamed commands. Records are compared by their effective value
16
+ * (numbers stay numeric) and fall back to the displayed text. Returns the
17
+ * applied plan, or `undefined` when the list has no records, the copy
18
+ * destination is missing / protected, or the sheet cannot be edited.
19
+ */
20
+ export declare const useOnAdvancedFilter: ({ getEffectiveValue, getFormattedValue, onHideRow, onShowRow, onChangeBatch, }: UseOnAdvancedFilterProps) => (sheetId: number, options: AdvancedFilterOptions) => AdvancedFilterPlan | undefined;
21
+ //# sourceMappingURL=use-on-advanced-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-on-advanced-filter.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-advanced-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAGhC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;AAE1D,MAAM,MAAM,wBAAwB,GAAG;IACrC,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,SAAS,EAAE,0BAA0B,CAAC,WAAW,CAAC,CAAC;IACnD,SAAS,EAAE,0BAA0B,CAAC,WAAW,CAAC,CAAC;IACnD,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,KAC3C,IAAI,CAAC;CACX,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,gFAMjC,wBAAwB,eAKb,MAAM,WAAW,qBAAqB,KAAG,kBAAkB,GAAG,SA2B3E,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { useCallback } from "react";
2
+ import { applyAdvancedFilterPlan, planAdvancedFilter, } from "../api/advanced-filter";
3
+ import { useCanEditCellRange, useCanEditSheet } from "./use-can-edit-cellrange";
4
+ /**
5
+ * Excel's Data → Sort & Filter → Advanced, composed over the existing
6
+ * hide/show-row and batch-write callbacks so both engines execute it through
7
+ * the same streamed commands. Records are compared by their effective value
8
+ * (numbers stay numeric) and fall back to the displayed text. Returns the
9
+ * applied plan, or `undefined` when the list has no records, the copy
10
+ * destination is missing / protected, or the sheet cannot be edited.
11
+ */
12
+ export const useOnAdvancedFilter = ({ getEffectiveValue, getFormattedValue, onHideRow, onShowRow, onChangeBatch, }) => {
13
+ const canEditCellRange = useCanEditCellRange();
14
+ const canEditSheet = useCanEditSheet();
15
+ return useCallback((sheetId, options) => {
16
+ if (!canEditSheet(sheetId)) {
17
+ console.debug("This sheet is protected, users cannot filter it.");
18
+ return undefined;
19
+ }
20
+ const plan = planAdvancedFilter(options, (rowIndex, columnIndex) => {
21
+ const value = getEffectiveValue(sheetId, rowIndex, columnIndex);
22
+ return value ?? getFormattedValue(sheetId, rowIndex, columnIndex);
23
+ });
24
+ if (!plan)
25
+ return undefined;
26
+ if (plan.copy && !canEditCellRange(sheetId, plan.copy.range)) {
27
+ console.debug("This range is protected, users cannot edit this cell range.");
28
+ return undefined;
29
+ }
30
+ applyAdvancedFilterPlan(sheetId, plan, { onHideRow, onShowRow, onChangeBatch });
31
+ return plan;
32
+ }, [
33
+ canEditSheet,
34
+ canEditCellRange,
35
+ getEffectiveValue,
36
+ getFormattedValue,
37
+ onHideRow,
38
+ onShowRow,
39
+ onChangeBatch,
40
+ ]);
41
+ };
@@ -1,6 +1,6 @@
1
- import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
2
- import { type CellData, type SelectionAttributes, type Sheet } from "@rowsncolumns/spreadsheet";
3
- import type { AutoFillType } from "../api/fill";
1
+ import type { CellInterface, GridRange, SelectionArea } from "@rowsncolumns/common-types";
2
+ import { type CellData, type FillOptions, type SelectionAttributes, type Sheet } from "@rowsncolumns/spreadsheet";
3
+ import { type AutoFillType } from "../api/fill";
4
4
  import type { OnCommand } from "../commands";
5
5
  import type { CalculationOperation, useCalculation } from "./use-calculation";
6
6
  import type { CellXfsRegistry } from "./use-cellxfs-registry";
@@ -24,6 +24,15 @@ export type UseOnFillProps<T extends CellData, S extends Sheet> = {
24
24
  getAutoFillValues: NonNullable<UseSpreadsheetProps<T, S>["getAutoFillValues"]>;
25
25
  getSheetName(sheetId: number): string;
26
26
  onCommand?: OnCommand;
27
+ /**
28
+ * The sheet's merged ranges — a source tiled by identically sized merges fills block by block.
29
+ */
30
+ getMerges?(sheetId: number): GridRange[] | null | undefined;
31
+ /**
32
+ * Land the merge blocks a merged-seed fill produced: the target's own merges in `clearRange`
33
+ * give way, `merges` are created, and `selectRange` (the snapped fill extent) is re-selected.
34
+ */
35
+ onFillMerges?(sheetId: number, activeCell: CellInterface, clearRange: GridRange, merges: GridRange[], selectRange: GridRange): void;
27
36
  };
28
- export declare const useOnFill: <T extends CellData, S extends Sheet>({ locale, cellXfsRegistry, sharedStringRegistry, getCellData, getDataValidationById, getEffectiveValue, getFormattedValue, getAutoFillValues, getSheetName, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeDataValidations, createHistory, onCommand, }: UseOnFillProps<T, S>) => (sheetId: number, activeCell: CellInterface, fillSelection: SelectionArea, selections: SelectionArea<SelectionAttributes>[], fillableSelections?: SelectionArea<SelectionAttributes>[], fillType?: AutoFillType) => Promise<void>;
37
+ export declare const useOnFill: <T extends CellData, S extends Sheet>({ locale, cellXfsRegistry, sharedStringRegistry, getCellData, getDataValidationById, getEffectiveValue, getFormattedValue, getAutoFillValues, getSheetName, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeDataValidations, createHistory, onCommand, getMerges, onFillMerges, }: UseOnFillProps<T, S>) => (sheetId: number, activeCell: CellInterface, fillSelection: SelectionArea, selections: SelectionArea<SelectionAttributes>[], fillableSelections?: SelectionArea<SelectionAttributes>[], fillType?: AutoFillType, options?: FillOptions) => Promise<void>;
29
38
  //# sourceMappingURL=use-on-fill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-fill.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-fill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,KAAK,EAEX,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,WAAW,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACrE,qBAAqB,CAAC,EAAE,UAAU,CAChC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAC7B,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,UAAU,CAC3B,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAC7B,CAAC,mBAAmB,CAAC,CAAC;IACvB,iBAAiB,EAAE,UAAU,CAC3B,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAC7B,CAAC,mBAAmB,CAAC,CAAC;IACvB,kBAAkB,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1D,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,uBAAuB,CAAC,EAAE,mBAAmB,CAC3C,CAAC,EACD,CAAC,CACF,CAAC,yBAAyB,CAAC,CAAC;IAC7B,aAAa,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,iBAAiB,EAAE,WAAW,CAC5B,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAC/C,CAAC;IACF,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,iRAgB5D,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,eAKR,MAAM,cACH,aAAa,iBACV,aAAa,cAChB,aAAa,CAAC,mBAAmB,CAAC,EAAE,uBAC3B,aAAa,CAAC,mBAAmB,CAAC,EAAE,aAC9C,YAAY,kBAwE5B,CAAC"}
1
+ {"version":3,"file":"use-on-fill.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-fill.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,17 @@
1
1
  import { useLoadingIndicator, } from "@rowsncolumns/spreadsheet";
2
+ import { error } from "@rowsncolumns/utils";
2
3
  import { useCallback } from "react";
4
+ import { MergedFillSizeError } from "../api/fill";
3
5
  import { applyFill } from "../interface/apply-fill";
4
6
  import { useCanEditCellRange } from "./use-can-edit-cellrange";
5
- export const useOnFill = ({ locale, cellXfsRegistry, sharedStringRegistry, getCellData, getDataValidationById, getEffectiveValue, getFormattedValue, getAutoFillValues, getSheetName, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeDataValidations, createHistory, onCommand, }) => {
7
+ export const useOnFill = ({ locale, cellXfsRegistry, sharedStringRegistry, getCellData, getDataValidationById, getEffectiveValue, getFormattedValue, getAutoFillValues, getSheetName, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeDataValidations, createHistory, onCommand, getMerges, onFillMerges, }) => {
6
8
  const canEditCellRange = useCanEditCellRange();
7
9
  const [showLoader, hideLoader] = useLoadingIndicator();
8
- return useCallback(async (sheetId, activeCell, fillSelection, selections, fillableSelections, fillType) => {
10
+ return useCallback(async (sheetId, activeCell, fillSelection, selections, fillableSelections, fillType,
11
+ // Modifier held on the fill handle / Series-dialog parameters. The
12
+ // positional `fillType` keeps working; `options.fillType` is a fallback.
13
+ options) => {
14
+ const resolvedFillType = fillType ?? options?.fillType;
9
15
  if (!canEditCellRange(sheetId, fillSelection.range)) {
10
16
  console.debug("This range is protected, users cannot edit this cell range.");
11
17
  return;
@@ -29,7 +35,17 @@ export const useOnFill = ({ locale, cellXfsRegistry, sharedStringRegistry, getCe
29
35
  onChangeSheetData,
30
36
  onChangeDataValidations,
31
37
  createHistory,
32
- })(sheetId, activeCell, fillSelection, selections, fillableSelections, fillType);
38
+ getMerges,
39
+ onFillMerges,
40
+ })(sheetId, activeCell, fillSelection, selections, fillableSelections, resolvedFillType, options);
41
+ }
42
+ catch (err) {
43
+ // Excel refuses a fill whose source mixes unequal merged blocks; nothing was written.
44
+ if (err instanceof MergedFillSizeError) {
45
+ error(err.message);
46
+ return;
47
+ }
48
+ throw err;
33
49
  }
34
50
  finally {
35
51
  hideLoader();
@@ -41,7 +57,9 @@ export const useOnFill = ({ locale, cellXfsRegistry, sharedStringRegistry, getCe
41
57
  fillSelection,
42
58
  selections,
43
59
  fillableSelections,
44
- fillType,
60
+ fillType: resolvedFillType,
61
+ modifier: options?.modifier,
62
+ series: options?.series,
45
63
  });
46
64
  }, [
47
65
  locale,
@@ -62,5 +80,7 @@ export const useOnFill = ({ locale, cellXfsRegistry, sharedStringRegistry, getCe
62
80
  onChangeDataValidations,
63
81
  getSheetName,
64
82
  onCommand,
83
+ getMerges,
84
+ onFillMerges,
65
85
  ]);
66
86
  };