@rowsncolumns/spreadsheet-state 29.1.3 → 29.1.6

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 (221) hide show
  1. package/dist/cjs/api/circular-reference.d.ts +31 -0
  2. package/dist/cjs/api/circular-reference.d.ts.map +1 -0
  3. package/dist/cjs/api/circular-reference.js +85 -0
  4. package/dist/cjs/api/copy-paste.d.ts +6 -0
  5. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  6. package/dist/cjs/api/copy-paste.js +24 -15
  7. package/dist/cjs/api/datatype.d.ts +2 -0
  8. package/dist/cjs/api/datatype.d.ts.map +1 -1
  9. package/dist/cjs/api/datatype.js +50 -27
  10. package/dist/cjs/api/decimals.d.ts +10 -0
  11. package/dist/cjs/api/decimals.d.ts.map +1 -1
  12. package/dist/cjs/api/decimals.js +34 -11
  13. package/dist/cjs/api/dependency.d.ts +19 -1
  14. package/dist/cjs/api/dependency.d.ts.map +1 -1
  15. package/dist/cjs/api/dependency.js +30 -14
  16. package/dist/cjs/api/filter-condition.d.ts +58 -0
  17. package/dist/cjs/api/filter-condition.d.ts.map +1 -0
  18. package/dist/cjs/api/filter-condition.js +157 -0
  19. package/dist/cjs/api/formula.d.ts.map +1 -1
  20. package/dist/cjs/api/formula.js +9 -7
  21. package/dist/cjs/api/image-embed.d.ts +41 -0
  22. package/dist/cjs/api/image-embed.d.ts.map +1 -0
  23. package/dist/cjs/api/image-embed.js +55 -0
  24. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  25. package/dist/cjs/api/immer-utils.js +43 -15
  26. package/dist/cjs/api/named-range-structural.d.ts +29 -3
  27. package/dist/cjs/api/named-range-structural.d.ts.map +1 -1
  28. package/dist/cjs/api/named-range-structural.js +36 -11
  29. package/dist/cjs/api/parse-html.d.ts.map +1 -1
  30. package/dist/cjs/api/parse-html.js +11 -5
  31. package/dist/cjs/api/structural-formula-update.d.ts +20 -1
  32. package/dist/cjs/api/structural-formula-update.d.ts.map +1 -1
  33. package/dist/cjs/api/structural-formula-update.js +264 -90
  34. package/dist/cjs/api/structural-guards.d.ts +11 -0
  35. package/dist/cjs/api/structural-guards.d.ts.map +1 -1
  36. package/dist/cjs/api/structural-guards.js +45 -1
  37. package/dist/cjs/api/structural-table-refs.d.ts +15 -2
  38. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
  39. package/dist/cjs/api/structural-table-refs.js +79 -35
  40. package/dist/cjs/commands.d.ts +17 -3
  41. package/dist/cjs/commands.d.ts.map +1 -1
  42. package/dist/cjs/components/editors/conditional-format-rule-editor.d.ts.map +1 -1
  43. package/dist/cjs/components/editors/conditional-format-rule-editor.js +19 -7
  44. package/dist/cjs/constants.d.ts +4 -1
  45. package/dist/cjs/constants.d.ts.map +1 -1
  46. package/dist/cjs/constants.js +4 -0
  47. package/dist/cjs/helpers/sheet-title.d.ts +2 -1
  48. package/dist/cjs/helpers/sheet-title.d.ts.map +1 -1
  49. package/dist/cjs/helpers/sheet-title.js +3 -1
  50. package/dist/cjs/hooks/use-can-edit-cellrange.d.ts +1 -1
  51. package/dist/cjs/hooks/use-can-edit-cellrange.d.ts.map +1 -1
  52. package/dist/cjs/hooks/use-can-edit-cellrange.js +1 -1
  53. package/dist/cjs/hooks/use-on-calculation-success.d.ts +5 -1
  54. package/dist/cjs/hooks/use-on-calculation-success.d.ts.map +1 -1
  55. package/dist/cjs/hooks/use-on-calculation-success.js +20 -3
  56. package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -1
  57. package/dist/cjs/hooks/use-on-copy.js +23 -25
  58. package/dist/cjs/hooks/use-on-create-sheet.d.ts.map +1 -1
  59. package/dist/cjs/hooks/use-on-create-sheet.js +11 -1
  60. package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
  61. package/dist/cjs/hooks/use-on-delete.js +15 -3
  62. package/dist/cjs/hooks/use-on-drag-n-drop.d.ts +5 -0
  63. package/dist/cjs/hooks/use-on-drag-n-drop.d.ts.map +1 -1
  64. package/dist/cjs/hooks/use-on-drag-n-drop.js +6 -5
  65. package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
  66. package/dist/cjs/hooks/use-on-filter-table.js +6 -1
  67. package/dist/cjs/hooks/use-on-find-replace.d.ts.map +1 -1
  68. package/dist/cjs/hooks/use-on-find-replace.js +111 -23
  69. package/dist/cjs/hooks/use-on-insert-image.d.ts.map +1 -1
  70. package/dist/cjs/hooks/use-on-insert-image.js +20 -33
  71. package/dist/cjs/hooks/use-on-paste.d.ts +2 -1
  72. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  73. package/dist/cjs/hooks/use-on-paste.js +53 -24
  74. package/dist/cjs/hooks/use-on-rename-sheet.d.ts +3 -1
  75. package/dist/cjs/hooks/use-on-rename-sheet.d.ts.map +1 -1
  76. package/dist/cjs/hooks/use-on-rename-sheet.js +19 -9
  77. package/dist/cjs/hooks/use-on-sort-column.d.ts +7 -1
  78. package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
  79. package/dist/cjs/hooks/use-on-sort-column.js +25 -8
  80. package/dist/cjs/hooks/use-on-sort-range.d.ts +16 -2
  81. package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
  82. package/dist/cjs/hooks/use-on-sort-range.js +72 -40
  83. package/dist/cjs/hooks/use-on-sort-table.d.ts +7 -2
  84. package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
  85. package/dist/cjs/hooks/use-on-sort-table.js +25 -4
  86. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +5 -3
  87. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  88. package/dist/cjs/hooks/use-spreadsheet-state.js +7 -0
  89. package/dist/cjs/hooks/utils/sort-rows.d.ts +15 -0
  90. package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
  91. package/dist/cjs/hooks/utils/sort-rows.js +16 -0
  92. package/dist/cjs/index.d.ts +3 -0
  93. package/dist/cjs/index.d.ts.map +1 -1
  94. package/dist/cjs/index.js +3 -0
  95. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  96. package/dist/cjs/interface/delete-column.js +254 -101
  97. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  98. package/dist/cjs/interface/delete-row.js +233 -81
  99. package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
  100. package/dist/cjs/interface/duplicate-sheet.js +4 -9
  101. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  102. package/dist/cjs/interface/insert-column.js +1 -1
  103. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  104. package/dist/cjs/interface/insert-row.js +1 -1
  105. package/dist/cjs/interface/new-sheet.d.ts.map +1 -1
  106. package/dist/cjs/interface/new-sheet.js +6 -13
  107. package/dist/cjs/sheet-cell.d.ts +9 -0
  108. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  109. package/dist/cjs/sheet-cell.js +46 -9
  110. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  111. package/dist/esm/api/circular-reference.d.ts +31 -0
  112. package/dist/esm/api/circular-reference.d.ts.map +1 -0
  113. package/dist/esm/api/circular-reference.js +55 -0
  114. package/dist/esm/api/copy-paste.d.ts +6 -0
  115. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  116. package/dist/esm/api/copy-paste.js +26 -14
  117. package/dist/esm/api/datatype.d.ts +2 -0
  118. package/dist/esm/api/datatype.d.ts.map +1 -1
  119. package/dist/esm/api/datatype.js +50 -27
  120. package/dist/esm/api/decimals.d.ts +10 -0
  121. package/dist/esm/api/decimals.d.ts.map +1 -1
  122. package/dist/esm/api/decimals.js +31 -10
  123. package/dist/esm/api/dependency.d.ts +19 -1
  124. package/dist/esm/api/dependency.d.ts.map +1 -1
  125. package/dist/esm/api/dependency.js +15 -10
  126. package/dist/esm/api/filter-condition.d.ts +58 -0
  127. package/dist/esm/api/filter-condition.d.ts.map +1 -0
  128. package/dist/esm/api/filter-condition.js +146 -0
  129. package/dist/esm/api/formula.d.ts.map +1 -1
  130. package/dist/esm/api/formula.js +9 -7
  131. package/dist/esm/api/image-embed.d.ts +41 -0
  132. package/dist/esm/api/image-embed.d.ts.map +1 -0
  133. package/dist/esm/api/image-embed.js +52 -0
  134. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  135. package/dist/esm/api/immer-utils.js +43 -14
  136. package/dist/esm/api/named-range-structural.d.ts +29 -3
  137. package/dist/esm/api/named-range-structural.d.ts.map +1 -1
  138. package/dist/esm/api/named-range-structural.js +35 -11
  139. package/dist/esm/api/parse-html.d.ts.map +1 -1
  140. package/dist/esm/api/parse-html.js +14 -5
  141. package/dist/esm/api/structural-formula-update.d.ts +20 -1
  142. package/dist/esm/api/structural-formula-update.d.ts.map +1 -1
  143. package/dist/esm/api/structural-formula-update.js +151 -55
  144. package/dist/esm/api/structural-guards.d.ts +11 -0
  145. package/dist/esm/api/structural-guards.d.ts.map +1 -1
  146. package/dist/esm/api/structural-guards.js +31 -0
  147. package/dist/esm/api/structural-table-refs.d.ts +15 -2
  148. package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
  149. package/dist/esm/api/structural-table-refs.js +49 -18
  150. package/dist/esm/commands.d.ts +17 -3
  151. package/dist/esm/commands.d.ts.map +1 -1
  152. package/dist/esm/components/editors/conditional-format-rule-editor.d.ts.map +1 -1
  153. package/dist/esm/components/editors/conditional-format-rule-editor.js +18 -7
  154. package/dist/esm/constants.d.ts +4 -1
  155. package/dist/esm/constants.d.ts.map +1 -1
  156. package/dist/esm/constants.js +4 -0
  157. package/dist/esm/helpers/sheet-title.d.ts +2 -1
  158. package/dist/esm/helpers/sheet-title.d.ts.map +1 -1
  159. package/dist/esm/helpers/sheet-title.js +3 -1
  160. package/dist/esm/hooks/use-can-edit-cellrange.d.ts +1 -1
  161. package/dist/esm/hooks/use-can-edit-cellrange.d.ts.map +1 -1
  162. package/dist/esm/hooks/use-can-edit-cellrange.js +1 -1
  163. package/dist/esm/hooks/use-on-calculation-success.d.ts +5 -1
  164. package/dist/esm/hooks/use-on-calculation-success.d.ts.map +1 -1
  165. package/dist/esm/hooks/use-on-calculation-success.js +19 -3
  166. package/dist/esm/hooks/use-on-copy.d.ts.map +1 -1
  167. package/dist/esm/hooks/use-on-copy.js +17 -17
  168. package/dist/esm/hooks/use-on-create-sheet.d.ts.map +1 -1
  169. package/dist/esm/hooks/use-on-create-sheet.js +11 -1
  170. package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
  171. package/dist/esm/hooks/use-on-delete.js +15 -3
  172. package/dist/esm/hooks/use-on-drag-n-drop.d.ts +5 -0
  173. package/dist/esm/hooks/use-on-drag-n-drop.d.ts.map +1 -1
  174. package/dist/esm/hooks/use-on-drag-n-drop.js +7 -4
  175. package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
  176. package/dist/esm/hooks/use-on-filter-table.js +13 -2
  177. package/dist/esm/hooks/use-on-find-replace.d.ts.map +1 -1
  178. package/dist/esm/hooks/use-on-find-replace.js +111 -23
  179. package/dist/esm/hooks/use-on-insert-image.d.ts.map +1 -1
  180. package/dist/esm/hooks/use-on-insert-image.js +15 -25
  181. package/dist/esm/hooks/use-on-paste.d.ts +2 -1
  182. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  183. package/dist/esm/hooks/use-on-paste.js +46 -15
  184. package/dist/esm/hooks/use-on-rename-sheet.d.ts +3 -1
  185. package/dist/esm/hooks/use-on-rename-sheet.d.ts.map +1 -1
  186. package/dist/esm/hooks/use-on-rename-sheet.js +19 -9
  187. package/dist/esm/hooks/use-on-sort-column.d.ts +7 -1
  188. package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
  189. package/dist/esm/hooks/use-on-sort-column.js +18 -1
  190. package/dist/esm/hooks/use-on-sort-range.d.ts +16 -2
  191. package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
  192. package/dist/esm/hooks/use-on-sort-range.js +30 -3
  193. package/dist/esm/hooks/use-on-sort-table.d.ts +7 -2
  194. package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
  195. package/dist/esm/hooks/use-on-sort-table.js +25 -4
  196. package/dist/esm/hooks/use-spreadsheet-state.d.ts +5 -3
  197. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  198. package/dist/esm/hooks/use-spreadsheet-state.js +7 -0
  199. package/dist/esm/hooks/utils/sort-rows.d.ts +15 -0
  200. package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
  201. package/dist/esm/hooks/utils/sort-rows.js +15 -0
  202. package/dist/esm/index.d.ts +3 -0
  203. package/dist/esm/index.d.ts.map +1 -1
  204. package/dist/esm/index.js +3 -0
  205. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  206. package/dist/esm/interface/delete-column.js +111 -80
  207. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  208. package/dist/esm/interface/delete-row.js +91 -59
  209. package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
  210. package/dist/esm/interface/duplicate-sheet.js +4 -9
  211. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  212. package/dist/esm/interface/insert-column.js +1 -1
  213. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  214. package/dist/esm/interface/insert-row.js +1 -1
  215. package/dist/esm/interface/new-sheet.d.ts.map +1 -1
  216. package/dist/esm/interface/new-sheet.js +6 -13
  217. package/dist/esm/sheet-cell.d.ts +9 -0
  218. package/dist/esm/sheet-cell.d.ts.map +1 -1
  219. package/dist/esm/sheet-cell.js +46 -7
  220. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  221. package/package.json +15 -15
@@ -6,11 +6,12 @@ import { produceWithPatches } from "immer";
6
6
  import { useCallback } from "react";
7
7
  import { createSheetCellIdentifier } from "../api/formula";
8
8
  import { getCellSortValue } from "../api/sort";
9
+ import { getSortMergeRefusal } from "../api/structural-guards";
9
10
  import { createSheetDraft } from "../api/immer-utils";
10
11
  import { useShowError } from "../atoms/error-state.atom";
11
12
  import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
12
13
  import { SheetCell } from "../sheet-cell";
13
- import { sortRowEntriesByFrozenState, } from "./utils/sort-rows";
14
+ import { resolveSortKeyColumnIndex, sortRowEntriesByFrozenState, } from "./utils/sort-rows";
14
15
  /**
15
16
  * Sorts a column range.
16
17
  * This does not expand the selection
@@ -18,7 +19,7 @@ import { sortRowEntriesByFrozenState, } from "./utils/sort-rows";
18
19
  * @returns
19
20
  */
20
21
  export var useOnSortRange = function (_a) {
21
- var locale = _a.locale, sharedStringRegistry = _a.sharedStringRegistry, createHistory = _a.createHistory, enqueueStructureChange = _a.enqueueStructureChange, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, getCellData = _a.getCellData, getDependents = _a.getDependents, isHiddenRow = _a.isHiddenRow, isManuallyHiddenRow = _a.isManuallyHiddenRow, getFrozenRowCount = _a.getFrozenRowCount, getSheetName = _a.getSheetName, getEffectiveFormat = _a.getEffectiveFormat, theme = _a.theme, onCommand = _a.onCommand;
22
+ var locale = _a.locale, sharedStringRegistry = _a.sharedStringRegistry, createHistory = _a.createHistory, enqueueStructureChange = _a.enqueueStructureChange, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, getCellData = _a.getCellData, getDependents = _a.getDependents, isHiddenRow = _a.isHiddenRow, isManuallyHiddenRow = _a.isManuallyHiddenRow, getFrozenRowCount = _a.getFrozenRowCount, getSheetName = _a.getSheetName, getMerges = _a.getMerges, getEffectiveFormat = _a.getEffectiveFormat, theme = _a.theme, onCommand = _a.onCommand, getActiveCell = _a.getActiveCell;
22
23
  var canEditCellRange = useCanEditCellRange();
23
24
  var canPerformSheetAction = useCanPerformSheetAction();
24
25
  var showError = useShowError();
@@ -31,7 +32,8 @@ export var useOnSortRange = function (_a) {
31
32
  * legacy uniform-direction behavior is preserved exactly.
32
33
  */
33
34
  specs) {
34
- var _a, _b, _c, _d;
35
+ var e_1, _a;
36
+ var _b, _c, _d, _e;
35
37
  var activeSheetName = getSheetName(sheetId);
36
38
  // We need to track this for history. Precedent cells
37
39
  var recalcCells = new Map();
@@ -56,6 +58,14 @@ export var useOnSortRange = function (_a) {
56
58
  console.debug("This range is protected, users cannot sort this cell range.");
57
59
  return;
58
60
  }
61
+ var mergeRefusal = getSortMergeRefusal({
62
+ range: selection.range,
63
+ merges: getMerges === null || getMerges === void 0 ? void 0 : getMerges(sheetId),
64
+ });
65
+ if (mergeRefusal) {
66
+ showError(mergeRefusal);
67
+ return;
68
+ }
59
69
  enqueueStructureChange === null || enqueueStructureChange === void 0 ? void 0 : enqueueStructureChange({
60
70
  kind: "invalidate-range",
61
71
  sheetId: sheetId,
@@ -68,6 +78,21 @@ export var useOnSortRange = function (_a) {
68
78
  var endRowIndex = selection.range.endRowIndex;
69
79
  var startColumnIndex = selection.range.startColumnIndex;
70
80
  var endColumnIndex = selection.range.endColumnIndex;
81
+ var activeCell = getActiveCell === null || getActiveCell === void 0 ? void 0 : getActiveCell();
82
+ // Keyed on the cursor's column when it is inside the range (Excel / Sheets);
83
+ // per-column `specs` keep their positional, every-column semantics.
84
+ var keyColumnIndex = specs
85
+ ? undefined
86
+ : resolveSortKeyColumnIndex({ range: selection.range, activeCell: activeCell });
87
+ var keyColumns = [];
88
+ if (keyColumnIndex != null) {
89
+ keyColumns.push(keyColumnIndex);
90
+ }
91
+ else {
92
+ for (var c = startColumnIndex; c <= endColumnIndex; c++) {
93
+ keyColumns.push(c);
94
+ }
95
+ }
71
96
  var frozenRowCount = getFrozenRowCount(sheetId);
72
97
  var isPinnedRow = function (rowIndex) {
73
98
  return isManuallyHiddenRow
@@ -82,30 +107,40 @@ export var useOnSortRange = function (_a) {
82
107
  continue;
83
108
  }
84
109
  var sortValues = [];
85
- for (var columnIndex = startColumnIndex; columnIndex <= endColumnIndex; columnIndex++) {
86
- var sheetCell = new SheetCell(sheetId, { rowIndex: rowIndex, columnIndex: columnIndex }, getCellData(sheetId, rowIndex, columnIndex), { locale: locale, sharedStringRegistry: sharedStringRegistry });
87
- var fallbackValue = getCellSortValue(sheetCell);
88
- // When the per-column spec sorts by color/icon, swap the
89
- // value for the matching attribute from the cell's
90
- // effective format so sort-rows.ts can compare it.
91
- var spec = specs === null || specs === void 0 ? void 0 : specs[columnIndex - startColumnIndex];
92
- var sortBy = (_a = spec === null || spec === void 0 ? void 0 : spec.sortBy) !== null && _a !== void 0 ? _a : "value";
93
- var fmt = sortBy === "cellColor" || sortBy === "fontColor" || sortBy === "icon"
94
- ? getEffectiveFormat === null || getEffectiveFormat === void 0 ? void 0 : getEffectiveFormat(sheetId, rowIndex, columnIndex)
95
- : undefined;
96
- var sortValue = sortBy === "cellColor"
97
- ? getStringifiedColor(fmt === null || fmt === void 0 ? void 0 : fmt.backgroundColor, theme)
98
- : sortBy === "fontColor"
99
- ? getStringifiedColor((_b = fmt === null || fmt === void 0 ? void 0 : fmt.textFormat) === null || _b === void 0 ? void 0 : _b.color, theme)
100
- : sortBy === "icon"
101
- ? (fmt === null || fmt === void 0 ? void 0 : fmt.conditionalIcon)
102
- ? {
103
- iconSet: fmt.conditionalIcon.iconSet,
104
- iconId: fmt.conditionalIcon.iconId,
105
- }
106
- : undefined
107
- : fallbackValue;
108
- sortValues.push(sortValue);
110
+ try {
111
+ for (var keyColumns_1 = (e_1 = void 0, __values(keyColumns)), keyColumns_1_1 = keyColumns_1.next(); !keyColumns_1_1.done; keyColumns_1_1 = keyColumns_1.next()) {
112
+ var columnIndex = keyColumns_1_1.value;
113
+ var sheetCell = new SheetCell(sheetId, { rowIndex: rowIndex, columnIndex: columnIndex }, getCellData(sheetId, rowIndex, columnIndex), { locale: locale, sharedStringRegistry: sharedStringRegistry });
114
+ var fallbackValue = getCellSortValue(sheetCell);
115
+ // When the per-column spec sorts by color/icon, swap the
116
+ // value for the matching attribute from the cell's
117
+ // effective format so sort-rows.ts can compare it.
118
+ var spec = specs === null || specs === void 0 ? void 0 : specs[columnIndex - startColumnIndex];
119
+ var sortBy = (_b = spec === null || spec === void 0 ? void 0 : spec.sortBy) !== null && _b !== void 0 ? _b : "value";
120
+ var fmt = sortBy === "cellColor" || sortBy === "fontColor" || sortBy === "icon"
121
+ ? getEffectiveFormat === null || getEffectiveFormat === void 0 ? void 0 : getEffectiveFormat(sheetId, rowIndex, columnIndex)
122
+ : undefined;
123
+ var sortValue = sortBy === "cellColor"
124
+ ? getStringifiedColor(fmt === null || fmt === void 0 ? void 0 : fmt.backgroundColor, theme)
125
+ : sortBy === "fontColor"
126
+ ? getStringifiedColor((_c = fmt === null || fmt === void 0 ? void 0 : fmt.textFormat) === null || _c === void 0 ? void 0 : _c.color, theme)
127
+ : sortBy === "icon"
128
+ ? (fmt === null || fmt === void 0 ? void 0 : fmt.conditionalIcon)
129
+ ? {
130
+ iconSet: fmt.conditionalIcon.iconSet,
131
+ iconId: fmt.conditionalIcon.iconId,
132
+ }
133
+ : undefined
134
+ : fallbackValue;
135
+ sortValues.push(sortValue);
136
+ }
137
+ }
138
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
139
+ finally {
140
+ try {
141
+ if (keyColumns_1_1 && !keyColumns_1_1.done && (_a = keyColumns_1.return)) _a.call(keyColumns_1);
142
+ }
143
+ finally { if (e_1) throw e_1.error; }
109
144
  }
110
145
  rowEntries.push({ rowIndex: rowIndex, sortValues: sortValues });
111
146
  }
@@ -119,7 +154,7 @@ export var useOnSortRange = function (_a) {
119
154
  // `sortedEntries[i]` is the row that lands on `destRows[i]`.
120
155
  var sortSpecs = specs
121
156
  ? specs.map(function (spec) { return (__assign(__assign({}, spec), { sortColor: getStringifiedColor(spec.sortColor, theme) })); })
122
- : new Array((_d = (_c = rowEntries[0]) === null || _c === void 0 ? void 0 : _c.sortValues.length) !== null && _d !== void 0 ? _d : 0).fill(sortOrder);
157
+ : new Array((_e = (_d = rowEntries[0]) === null || _d === void 0 ? void 0 : _d.sortValues.length) !== null && _e !== void 0 ? _e : 0).fill(sortOrder);
123
158
  var sortedEntries = sortRowEntriesByFrozenState(rowEntries, frozenRowCount, sortSpecs);
124
159
  // Carry each row's `hiddenByFilter` flag to the row's destination: a
125
160
  // sort does not re-evaluate the filter, so the hidden set follows the
@@ -153,7 +188,7 @@ export var useOnSortRange = function (_a) {
153
188
  // Update sheet data
154
189
  onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
155
190
  var _a = __read(produceWithPatches(prevSheetData, function (draft) {
156
- var e_1, _a, e_2, _b;
191
+ var e_2, _a, e_3, _b;
157
192
  var _c, _d, _e, _f;
158
193
  var sheet = createSheetDraft(draft, sheetId);
159
194
  var rowSnapshots = new Map();
@@ -163,12 +198,12 @@ export var useOnSortRange = function (_a) {
163
198
  rowSnapshots.set(rowIndex, ((_d = (_c = sheet[rowIndex]) === null || _c === void 0 ? void 0 : _c.values) !== null && _d !== void 0 ? _d : []).slice());
164
199
  }
165
200
  }
166
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
201
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
167
202
  finally {
168
203
  try {
169
204
  if (destRows_1_1 && !destRows_1_1.done && (_a = destRows_1.return)) _a.call(destRows_1);
170
205
  }
171
- finally { if (e_1) throw e_1.error; }
206
+ finally { if (e_2) throw e_2.error; }
172
207
  }
173
208
  for (var index = 0; index < destRows.length; index++) {
174
209
  var rowIndex = destRows[index];
@@ -221,7 +256,7 @@ export var useOnSortRange = function (_a) {
221
256
  });
222
257
  }
223
258
  try {
224
- for (var dependents_1 = (e_2 = void 0, __values(dependents)), dependents_1_1 = dependents_1.next(); !dependents_1_1.done; dependents_1_1 = dependents_1.next()) {
259
+ for (var dependents_1 = (e_3 = void 0, __values(dependents)), dependents_1_1 = dependents_1.next(); !dependents_1_1.done; dependents_1_1 = dependents_1.next()) {
225
260
  var dependent = dependents_1_1.value;
226
261
  if (isStaticNode(dependent)) {
227
262
  continue;
@@ -241,12 +276,12 @@ export var useOnSortRange = function (_a) {
241
276
  recalcCells.set(createSheetCellIdentifier(dependent.position.sheetId, dependent.position.rowIndex, dependent.position.columnIndex), dependent.position);
242
277
  }
243
278
  }
244
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
279
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
245
280
  finally {
246
281
  try {
247
282
  if (dependents_1_1 && !dependents_1_1.done && (_b = dependents_1.return)) _b.call(dependents_1);
248
283
  }
249
- finally { if (e_2) throw e_2.error; }
284
+ finally { if (e_3) throw e_3.error; }
250
285
  }
251
286
  // Update
252
287
  if (sheetCell) {
@@ -268,15 +303,11 @@ export var useOnSortRange = function (_a) {
268
303
  });
269
304
  return nextState;
270
305
  });
271
- onCommand === null || onCommand === void 0 ? void 0 : onCommand({
272
- command: "sort-range",
273
- sheetId: sheetId,
274
- selections: selections,
275
- sortOrder: sortOrder,
276
- });
306
+ onCommand === null || onCommand === void 0 ? void 0 : onCommand(__assign(__assign({ command: "sort-range", sheetId: sheetId }, (activeCell ? { activeCell: activeCell } : {})), { selections: selections, sortOrder: sortOrder }));
277
307
  }, [
278
308
  locale,
279
309
  createHistory,
310
+ getActiveCell,
280
311
  enqueueStructureChange,
281
312
  getDependents,
282
313
  enqueueGraphOperation,
@@ -288,6 +319,7 @@ export var useOnSortRange = function (_a) {
288
319
  isManuallyHiddenRow,
289
320
  getFrozenRowCount,
290
321
  getSheetName,
322
+ getMerges,
291
323
  getEffectiveFormat,
292
324
  theme,
293
325
  onCommand,
@@ -1,4 +1,4 @@
1
- import type { CellInterface } from "@rowsncolumns/common-types";
1
+ import type { CellInterface, GridRange } from "@rowsncolumns/common-types";
2
2
  import type { CellData, FilterView, Sheet, SortOrder, SortSpecs, TableView } from "@rowsncolumns/spreadsheet";
3
3
  import type { SpreadsheetTheme } from "@rowsncolumns/spreadsheet";
4
4
  import type { OnCommand } from "../commands";
@@ -50,6 +50,11 @@ type UseOnSortTableProps<T extends CellData, S extends Sheet> = {
50
50
  * like Excel.
51
51
  */
52
52
  isManuallyHiddenRow?(sheetId: number, rowIndex: number): boolean;
53
+ /**
54
+ * The sheet's merged regions. Excel refuses a sort over merged cells that
55
+ * are not laid out identically on every body row of the table / filter.
56
+ */
57
+ getMerges?(sheetId: number): GridRange[] | null | undefined;
53
58
  getDependents: ReturnType<typeof useCalculation>["getDependents"];
54
59
  getActiveCell: () => CellInterface;
55
60
  getFrozenRowCount(sheetId: number): number;
@@ -71,6 +76,6 @@ type UseOnSortTableProps<T extends CellData, S extends Sheet> = {
71
76
  * @param param0
72
77
  * @returns
73
78
  */
74
- export declare const useOnSortTable: <T extends CellData, S extends Sheet>({ locale, sharedStringRegistry, createHistory, enqueueCalculation, enqueueStructureChange, enqueueGraphOperation, onChangeSheetData, onChangeTables, onChangeSheets, getCellData, getDependents, isHiddenRow, isManuallyHiddenRow, getActiveCell, getFrozenRowCount, getSheetName, getEffectiveFormat, theme, enableSortTimingLogs, onCommand, }: UseOnSortTableProps<T, S>) => OnSortTable;
79
+ export declare const useOnSortTable: <T extends CellData, S extends Sheet>({ locale, sharedStringRegistry, createHistory, enqueueCalculation, enqueueStructureChange, enqueueGraphOperation, onChangeSheetData, onChangeTables, onChangeSheets, getCellData, getDependents, isHiddenRow, isManuallyHiddenRow, getMerges, getActiveCell, getFrozenRowCount, getSheetName, getEffectiveFormat, theme, enableSortTimingLogs, onCommand, }: UseOnSortTableProps<T, S>) => OnSortTable;
75
80
  export {};
76
81
  //# sourceMappingURL=use-on-sort-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-sort-table.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-sort-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-on-sort-table.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-sort-table.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { produceWithPatches } from "immer";
6
6
  import set from "lodash/set";
7
7
  import { useCallback } from "react";
8
8
  import { createSheetCellIdentifier } from "../api/formula";
9
+ import { getSortMergeRefusal } from "../api/structural-guards";
9
10
  import { getCellSortValue } from "../api/sort";
10
11
  import { createSheetDraft } from "../api/immer-utils";
11
12
  import { SheetCell } from "../sheet-cell";
@@ -18,7 +19,7 @@ import { sortRowEntriesByFrozenState, } from "./utils/sort-rows";
18
19
  * @returns
19
20
  */
20
21
  export var useOnSortTable = function (_a) {
21
- var locale = _a.locale, sharedStringRegistry = _a.sharedStringRegistry, createHistory = _a.createHistory, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, enqueueGraphOperation = _a.enqueueGraphOperation, onChangeSheetData = _a.onChangeSheetData, onChangeTables = _a.onChangeTables, onChangeSheets = _a.onChangeSheets, getCellData = _a.getCellData, getDependents = _a.getDependents, isHiddenRow = _a.isHiddenRow, isManuallyHiddenRow = _a.isManuallyHiddenRow, getActiveCell = _a.getActiveCell, getFrozenRowCount = _a.getFrozenRowCount, getSheetName = _a.getSheetName, getEffectiveFormat = _a.getEffectiveFormat, theme = _a.theme, enableSortTimingLogs = _a.enableSortTimingLogs, onCommand = _a.onCommand;
22
+ var locale = _a.locale, sharedStringRegistry = _a.sharedStringRegistry, createHistory = _a.createHistory, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, enqueueGraphOperation = _a.enqueueGraphOperation, onChangeSheetData = _a.onChangeSheetData, onChangeTables = _a.onChangeTables, onChangeSheets = _a.onChangeSheets, getCellData = _a.getCellData, getDependents = _a.getDependents, isHiddenRow = _a.isHiddenRow, isManuallyHiddenRow = _a.isManuallyHiddenRow, getMerges = _a.getMerges, getActiveCell = _a.getActiveCell, getFrozenRowCount = _a.getFrozenRowCount, getSheetName = _a.getSheetName, getEffectiveFormat = _a.getEffectiveFormat, theme = _a.theme, enableSortTimingLogs = _a.enableSortTimingLogs, onCommand = _a.onCommand;
22
23
  var canEditCellRange = useCanEditCellRange();
23
24
  var canPerformSheetAction = useCanPerformSheetAction();
24
25
  var showError = useShowError();
@@ -62,6 +63,28 @@ export var useOnSortTable = function (_a) {
62
63
  if (!primarySpec) {
63
64
  return;
64
65
  }
66
+ var _a = filter, range = _a.range, _b = _a.headerRow, headerRow = _b === void 0 ? true : _b, totalRow = _a.totalRow;
67
+ // Excel sorts only the body: the header stays on top and the totals row
68
+ // at the bottom, untouched.
69
+ var startRowIndex = range.startRowIndex + (headerRow ? 1 : 0);
70
+ var endRowIndex = range.endRowIndex - (totalRow ? 1 : 0);
71
+ // Excel refuses to sort a block whose merged cells differ in layout
72
+ // between rows — the anchor values would move while the merge outlines
73
+ // stayed behind. Judged on the body rows before anything (the persisted
74
+ // sortSpecs included) is written; merges beside the range never move.
75
+ var mergeRefusal = getSortMergeRefusal({
76
+ range: {
77
+ startRowIndex: startRowIndex,
78
+ endRowIndex: endRowIndex,
79
+ startColumnIndex: range.startColumnIndex,
80
+ endColumnIndex: range.endColumnIndex,
81
+ },
82
+ merges: getMerges === null || getMerges === void 0 ? void 0 : getMerges(sheetId),
83
+ });
84
+ if (mergeRefusal) {
85
+ showError(mergeRefusal);
86
+ return;
87
+ }
65
88
  enqueueStructureChange === null || enqueueStructureChange === void 0 ? void 0 : enqueueStructureChange({
66
89
  kind: "invalidate-range",
67
90
  sheetId: sheetId,
@@ -90,9 +113,6 @@ export var useOnSortTable = function (_a) {
90
113
  return prevTables;
91
114
  }
92
115
  });
93
- var _a = filter, range = _a.range, _b = _a.headerRow, headerRow = _b === void 0 ? true : _b, totalRow = _a.totalRow;
94
- var startRowIndex = range.startRowIndex + (headerRow ? 1 : 0);
95
- var endRowIndex = range.endRowIndex - (totalRow ? 1 : 0);
96
116
  var frozenRowCount = getFrozenRowCount(sheetId);
97
117
  var isPinnedRow = function (rowIndex) {
98
118
  return isManuallyHiddenRow
@@ -359,6 +379,7 @@ export var useOnSortTable = function (_a) {
359
379
  getDependents,
360
380
  isHiddenRow,
361
381
  isManuallyHiddenRow,
382
+ getMerges,
362
383
  getFrozenRowCount,
363
384
  getSheetName,
364
385
  getEffectiveFormat,
@@ -386,9 +386,11 @@ export type UseSpreadsheetProps<T extends CellData = CellData, S extends Sheet =
386
386
  cancelText?: string;
387
387
  }) => Promise<string | null>;
388
388
  /**
389
- * Optional HTML sanitizer for clipboard paste operations.
390
- * Called before parsing HTML from clipboard to prevent XSS attacks.
391
- * Use with DOMPurify or similar library.
389
+ * Optional ADDITIONAL HTML sanitizer for clipboard paste operations.
390
+ * Clipboard HTML is always parsed inertly and stripped of scripts, event
391
+ * handlers, frames/embeds and `javascript:`/`data:` URLs before it reaches
392
+ * the DOM (`mountClipboardHtml`); this hook runs on the raw string first and
393
+ * can only tighten that result (e.g. DOMPurify with a stricter profile).
392
394
  * @example
393
395
  * import DOMPurify from 'dompurify';
394
396
  * <Spreadsheet sanitizeHtml={(html) => DOMPurify.sanitize(html)} />
@@ -1 +1 @@
1
- {"version":3,"file":"use-spreadsheet-state.d.ts","sourceRoot":"","sources":["../../../hooks/use-spreadsheet-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-spreadsheet-state.d.ts","sourceRoot":"","sources":["../../../hooks/use-spreadsheet-state.ts"],"names":[],"mappings":"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"}
@@ -490,6 +490,8 @@ export var useSpreadsheetState = function (_a) {
490
490
  sharedStringRegistry: sharedStringRegistry,
491
491
  getDataValidationById: getDataValidationById,
492
492
  onChangeSheetData: onChangeSheetData,
493
+ getSheetName: getSheetName,
494
+ getSheetCount: getSheetCount,
493
495
  getPrecedents: function (source) {
494
496
  return getPrecedents(source);
495
497
  },
@@ -692,6 +694,7 @@ export var useSpreadsheetState = function (_a) {
692
694
  // Sheet name
693
695
  var onRenameSheet = useOnRenameSheet({
694
696
  locale: locale,
697
+ sheets: sheets,
695
698
  createHistory: createHistory,
696
699
  onChangeSheets: onChangeSheets,
697
700
  onChangeSheetData: onChangeSheetData,
@@ -1549,6 +1552,7 @@ export var useSpreadsheetState = function (_a) {
1549
1552
  createHistory: createHistory,
1550
1553
  getCellData: getCellData,
1551
1554
  getDataRowCount: getDataRowCount,
1555
+ getMerges: getPaintMerges,
1552
1556
  isHiddenRow: isHiddenRow,
1553
1557
  isManuallyHiddenRow: isManuallyHiddenRow,
1554
1558
  getDependents: getDependents,
@@ -1574,6 +1578,7 @@ export var useSpreadsheetState = function (_a) {
1574
1578
  getActiveCell: getActiveCell,
1575
1579
  isHiddenRow: isHiddenRow,
1576
1580
  isManuallyHiddenRow: isManuallyHiddenRow,
1581
+ getMerges: getPaintMerges,
1577
1582
  getFrozenRowCount: getFrozenRowCount,
1578
1583
  getSheetName: getSheetName,
1579
1584
  getEffectiveFormat: getEffectiveFormat,
@@ -1931,6 +1936,7 @@ export var useSpreadsheetState = function (_a) {
1931
1936
  onChangeSheetData: onChangeSheetData,
1932
1937
  onChangeSheets: onChangeSheets,
1933
1938
  getCellData: getCellData,
1939
+ getMerges: getPaintMerges,
1934
1940
  getDependents: getDependents,
1935
1941
  isHiddenRow: isHiddenRow,
1936
1942
  isManuallyHiddenRow: isManuallyHiddenRow,
@@ -1938,6 +1944,7 @@ export var useSpreadsheetState = function (_a) {
1938
1944
  getSheetName: getSheetName,
1939
1945
  getEffectiveFormat: getEffectiveFormat,
1940
1946
  theme: theme,
1947
+ getActiveCell: getActiveCell,
1941
1948
  });
1942
1949
  // Protect range
1943
1950
  var _14 = useOnProtectRange({
@@ -22,6 +22,21 @@ export type DimensionSortSpec = {
22
22
  /** Custom sort order. Strings define the position; case-insensitive. */
23
23
  customList?: string[] | null;
24
24
  };
25
+ /**
26
+ * The column a one-click range sort keys on. Excel / Sheets sort the range by the
27
+ * column the ACTIVE cell is in, not by its leftmost column — so "Sort Z to A" with
28
+ * the cursor in D orders A:J by D. Returns `undefined` when there is no cursor or it
29
+ * stands outside the range's columns (the caller keeps its leftmost-column default).
30
+ */
31
+ export declare const resolveSortKeyColumnIndex: ({ range, activeCell, }: {
32
+ range: {
33
+ startColumnIndex: number;
34
+ endColumnIndex: number;
35
+ };
36
+ activeCell: {
37
+ columnIndex: number;
38
+ } | null | undefined;
39
+ }) => number | undefined;
25
40
  export declare const sortRowEntriesByFrozenState: (rowEntries: RowSortEntry[], frozenRowCount: number,
26
41
  /**
27
42
  * Sort specifications per dimension. Accepts either the legacy
@@ -1 +1 @@
1
- {"version":3,"file":"sort-rows.d.ts","sourceRoot":"","sources":["../../../../hooks/utils/sort-rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7D,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACtD,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC9B,CAAC;AA+HF,eAAO,MAAM,2BAA2B,GACtC,YAAY,YAAY,EAAE,EAC1B,gBAAgB,MAAM;AACtB;;;;GAIG;AACH,WAAW,SAAS,EAAE,GAAG,iBAAiB,EAAE,mBAuB7C,CAAC"}
1
+ {"version":3,"file":"sort-rows.d.ts","sourceRoot":"","sources":["../../../../hooks/utils/sort-rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7D,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACtD,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GAAI,wBAGvC;IACD,KAAK,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;CACxD,KAAG,MAAM,GAAG,SAOZ,CAAC;AA+HF,eAAO,MAAM,2BAA2B,GACtC,YAAY,YAAY,EAAE,EAC1B,gBAAgB,MAAM;AACtB;;;;GAIG;AACH,WAAW,SAAS,EAAE,GAAG,iBAAiB,EAAE,mBAuB7C,CAAC"}
@@ -1,5 +1,21 @@
1
1
  import { __read, __spreadArray } from "tslib";
2
2
  import { cellValueSorter, isSortErrorValue, } from "../../api/sort";
3
+ /**
4
+ * The column a one-click range sort keys on. Excel / Sheets sort the range by the
5
+ * column the ACTIVE cell is in, not by its leftmost column — so "Sort Z to A" with
6
+ * the cursor in D orders A:J by D. Returns `undefined` when there is no cursor or it
7
+ * stands outside the range's columns (the caller keeps its leftmost-column default).
8
+ */
9
+ export var resolveSortKeyColumnIndex = function (_a) {
10
+ var range = _a.range, activeCell = _a.activeCell;
11
+ if (!activeCell)
12
+ return undefined;
13
+ var columnIndex = activeCell.columnIndex;
14
+ return columnIndex >= range.startColumnIndex &&
15
+ columnIndex <= range.endColumnIndex
16
+ ? columnIndex
17
+ : undefined;
18
+ };
3
19
  var toSortableValue = function (value) {
4
20
  if (typeof value === "string" ||
5
21
  typeof value === "number" ||
@@ -4,8 +4,10 @@ export * from "./hooks/use-spreadsheet-state";
4
4
  export * from "./hooks/use-on-copy";
5
5
  export * from "./hooks/use-on-undo-calculated-column";
6
6
  export { generateDataFromClipboard, pickFormatting, pickFormula, pickValue, transpose, } from "./api/copy-paste";
7
+ export { createImageEmbed, type CreateImageEmbedOptions, DEFAULT_IMAGE_EMBED_MAX_DIMENSION, fitImageToViewport, type ImageEmbedSize, type ImageViewport, } from "./api/image-embed";
7
8
  export { applyPasteOperation, isBlankClipboardCell, normalizePasteSpecialOptions, PASTE_SPECIAL_OPTIONS_KEY, PASTE_SPECIAL_TYPE_KEY, resolvePasteSpecialOptions, type ResolvedPasteSpecialOptions, } from "./api/paste-special";
8
9
  export * from "./hooks/use-calculation";
10
+ export * from "./api/filter-condition";
9
11
  export * from "./hooks/use-on-change-batch-stream";
10
12
  export * from "./hooks/use-on-trace-dependents-precedents";
11
13
  export * from "./hooks/use-structured-reference";
@@ -27,6 +29,7 @@ export * from "./api/range";
27
29
  export * from "./api/anchored-objects";
28
30
  export * from "./atoms";
29
31
  export * from "./api/formula";
32
+ export * from "./api/circular-reference";
30
33
  export * from "./api/structural-guards";
31
34
  export * from "./constants";
32
35
  export * from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uCAAuC,CAAC;AACtD,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,2BAA2B,GACjC,MAAM,qBAAqB,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAG7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uCAAuC,CAAC;AACtD,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,iCAAiC,EACjC,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,2BAA2B,GACjC,MAAM,qBAAqB,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAG7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -4,8 +4,10 @@ export * from "./hooks/use-spreadsheet-state";
4
4
  export * from "./hooks/use-on-copy";
5
5
  export * from "./hooks/use-on-undo-calculated-column";
6
6
  export { generateDataFromClipboard, pickFormatting, pickFormula, pickValue, transpose, } from "./api/copy-paste";
7
+ export { createImageEmbed, DEFAULT_IMAGE_EMBED_MAX_DIMENSION, fitImageToViewport, } from "./api/image-embed";
7
8
  export { applyPasteOperation, isBlankClipboardCell, normalizePasteSpecialOptions, PASTE_SPECIAL_OPTIONS_KEY, PASTE_SPECIAL_TYPE_KEY, resolvePasteSpecialOptions, } from "./api/paste-special";
8
9
  export * from "./hooks/use-calculation";
10
+ export * from "./api/filter-condition";
9
11
  export * from "./hooks/use-on-change-batch-stream";
10
12
  export * from "./hooks/use-on-trace-dependents-precedents";
11
13
  export * from "./hooks/use-structured-reference";
@@ -27,6 +29,7 @@ export * from "./api/range";
27
29
  export * from "./api/anchored-objects";
28
30
  export * from "./atoms";
29
31
  export * from "./api/formula";
32
+ export * from "./api/circular-reference";
30
33
  export * from "./api/structural-guards";
31
34
  export * from "./constants";
32
35
  export * from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"delete-column.d.ts","sourceRoot":"","sources":["../../../interface/delete-column.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAwBjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2iBAgC/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,SAsdjD,CAAC"}
1
+ {"version":3,"file":"delete-column.d.ts","sourceRoot":"","sources":["../../../interface/delete-column.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AA2BjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2iBAgC/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,SAkfjD,CAAC"}