@rowsncolumns/spreadsheet-state 28.0.73 → 28.0.74

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 (133) 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/goal-seek.d.ts +29 -0
  5. package/dist/cjs/api/goal-seek.d.ts.map +1 -0
  6. package/dist/cjs/api/goal-seek.js +131 -0
  7. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  8. package/dist/cjs/api/immer-utils.js +1 -0
  9. package/dist/cjs/api/paint-format.d.ts +41 -0
  10. package/dist/cjs/api/paint-format.d.ts.map +1 -0
  11. package/dist/cjs/api/paint-format.js +115 -0
  12. package/dist/cjs/api/split-text.d.ts +12 -0
  13. package/dist/cjs/api/split-text.d.ts.map +1 -1
  14. package/dist/cjs/api/split-text.js +41 -0
  15. package/dist/cjs/api/subtotal.d.ts +85 -0
  16. package/dist/cjs/api/subtotal.d.ts.map +1 -0
  17. package/dist/cjs/api/subtotal.js +250 -0
  18. package/dist/cjs/commands.d.ts +8 -0
  19. package/dist/cjs/commands.d.ts.map +1 -1
  20. package/dist/cjs/components/editors/data-validation-rule-editor.d.ts.map +1 -1
  21. package/dist/cjs/components/editors/data-validation-rule-editor.js +83 -16
  22. package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
  23. package/dist/cjs/hooks/use-calculation-worker.js +1 -0
  24. package/dist/cjs/hooks/use-on-advanced-filter.d.ts +21 -0
  25. package/dist/cjs/hooks/use-on-advanced-filter.d.ts.map +1 -0
  26. package/dist/cjs/hooks/use-on-advanced-filter.js +42 -0
  27. package/dist/cjs/hooks/use-on-goal-seek.d.ts +30 -0
  28. package/dist/cjs/hooks/use-on-goal-seek.d.ts.map +1 -0
  29. package/dist/cjs/hooks/use-on-goal-seek.js +140 -0
  30. package/dist/cjs/hooks/use-on-import-excel.d.ts +10 -1
  31. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
  32. package/dist/cjs/hooks/use-on-import-excel.js +8 -4
  33. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  34. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +53 -34
  35. package/dist/cjs/hooks/use-on-subtotal.d.ts +26 -0
  36. package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -0
  37. package/dist/cjs/hooks/use-on-subtotal.js +53 -0
  38. package/dist/cjs/hooks/use-paint-format.d.ts +19 -3
  39. package/dist/cjs/hooks/use-paint-format.d.ts.map +1 -1
  40. package/dist/cjs/hooks/use-paint-format.js +85 -31
  41. package/dist/cjs/hooks/use-sheet-properties.d.ts +2 -0
  42. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  43. package/dist/cjs/hooks/use-sheet-properties.js +4 -0
  44. package/dist/cjs/hooks/use-split-text-to-columns.d.ts +2 -1
  45. package/dist/cjs/hooks/use-split-text-to-columns.d.ts.map +1 -1
  46. package/dist/cjs/hooks/use-split-text-to-columns.js +3 -2
  47. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +50 -36
  48. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  49. package/dist/cjs/hooks/use-spreadsheet-state.js +97 -18
  50. package/dist/cjs/index.d.ts +8 -0
  51. package/dist/cjs/index.d.ts.map +1 -1
  52. package/dist/cjs/index.js +8 -0
  53. package/dist/cjs/interface/change-batch-stream.d.ts.map +1 -1
  54. package/dist/cjs/interface/change-batch-stream.js +12 -6
  55. package/dist/cjs/interface/change-batch.d.ts.map +1 -1
  56. package/dist/cjs/interface/change-batch.js +17 -9
  57. package/dist/cjs/interface/change-formatting.d.ts.map +1 -1
  58. package/dist/cjs/interface/change-formatting.js +30 -11
  59. package/dist/cjs/interface/split-text.d.ts +2 -1
  60. package/dist/cjs/interface/split-text.d.ts.map +1 -1
  61. package/dist/cjs/interface/split-text.js +7 -3
  62. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  63. package/dist/cjs/interface/spreadsheet-interface.js +2 -2
  64. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  65. package/dist/cjs/sheet-cell.js +7 -0
  66. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  67. package/dist/esm/api/advanced-filter.d.ts +72 -0
  68. package/dist/esm/api/advanced-filter.d.ts.map +1 -0
  69. package/dist/esm/api/advanced-filter.js +0 -0
  70. package/dist/esm/api/goal-seek.d.ts +29 -0
  71. package/dist/esm/api/goal-seek.d.ts.map +1 -0
  72. package/dist/esm/api/goal-seek.js +108 -0
  73. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  74. package/dist/esm/api/immer-utils.js +1 -0
  75. package/dist/esm/api/paint-format.d.ts +41 -0
  76. package/dist/esm/api/paint-format.d.ts.map +1 -0
  77. package/dist/esm/api/paint-format.js +77 -0
  78. package/dist/esm/api/split-text.d.ts +12 -0
  79. package/dist/esm/api/split-text.d.ts.map +1 -1
  80. package/dist/esm/api/split-text.js +28 -0
  81. package/dist/esm/api/subtotal.d.ts +85 -0
  82. package/dist/esm/api/subtotal.d.ts.map +1 -0
  83. package/dist/esm/api/subtotal.js +181 -0
  84. package/dist/esm/commands.d.ts +8 -0
  85. package/dist/esm/commands.d.ts.map +1 -1
  86. package/dist/esm/components/editors/data-validation-rule-editor.d.ts.map +1 -1
  87. package/dist/esm/components/editors/data-validation-rule-editor.js +52 -4
  88. package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
  89. package/dist/esm/hooks/use-calculation-worker.js +1 -0
  90. package/dist/esm/hooks/use-on-advanced-filter.d.ts +21 -0
  91. package/dist/esm/hooks/use-on-advanced-filter.d.ts.map +1 -0
  92. package/dist/esm/hooks/use-on-advanced-filter.js +41 -0
  93. package/dist/esm/hooks/use-on-goal-seek.d.ts +30 -0
  94. package/dist/esm/hooks/use-on-goal-seek.d.ts.map +1 -0
  95. package/dist/esm/hooks/use-on-goal-seek.js +82 -0
  96. package/dist/esm/hooks/use-on-import-excel.d.ts +10 -1
  97. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
  98. package/dist/esm/hooks/use-on-import-excel.js +8 -4
  99. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  100. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +13 -13
  101. package/dist/esm/hooks/use-on-subtotal.d.ts +26 -0
  102. package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -0
  103. package/dist/esm/hooks/use-on-subtotal.js +48 -0
  104. package/dist/esm/hooks/use-paint-format.d.ts +19 -3
  105. package/dist/esm/hooks/use-paint-format.d.ts.map +1 -1
  106. package/dist/esm/hooks/use-paint-format.js +71 -29
  107. package/dist/esm/hooks/use-sheet-properties.d.ts +2 -0
  108. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  109. package/dist/esm/hooks/use-sheet-properties.js +4 -0
  110. package/dist/esm/hooks/use-split-text-to-columns.d.ts +2 -1
  111. package/dist/esm/hooks/use-split-text-to-columns.d.ts.map +1 -1
  112. package/dist/esm/hooks/use-split-text-to-columns.js +3 -2
  113. package/dist/esm/hooks/use-spreadsheet-state.d.ts +50 -36
  114. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  115. package/dist/esm/hooks/use-spreadsheet-state.js +88 -16
  116. package/dist/esm/index.d.ts +8 -0
  117. package/dist/esm/index.d.ts.map +1 -1
  118. package/dist/esm/index.js +8 -0
  119. package/dist/esm/interface/change-batch-stream.d.ts.map +1 -1
  120. package/dist/esm/interface/change-batch-stream.js +12 -6
  121. package/dist/esm/interface/change-batch.d.ts.map +1 -1
  122. package/dist/esm/interface/change-batch.js +15 -9
  123. package/dist/esm/interface/change-formatting.d.ts.map +1 -1
  124. package/dist/esm/interface/change-formatting.js +28 -11
  125. package/dist/esm/interface/split-text.d.ts +2 -1
  126. package/dist/esm/interface/split-text.d.ts.map +1 -1
  127. package/dist/esm/interface/split-text.js +6 -3
  128. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  129. package/dist/esm/interface/spreadsheet-interface.js +2 -2
  130. package/dist/esm/sheet-cell.d.ts.map +1 -1
  131. package/dist/esm/sheet-cell.js +7 -0
  132. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  133. package/package.json +18 -18
@@ -1,5 +1,5 @@
1
1
  import type { CalculatorConfig } from "@rowsncolumns/calculator";
2
- import type { IterativeCalculationOptions, SelectionArea, Citation, CellFormat } from "@rowsncolumns/common-types";
2
+ import type { CellInterface, GridRange, IterativeCalculationOptions, SelectionArea, Citation, CellFormat, NamedCellStyle } from "@rowsncolumns/common-types";
3
3
  import type { BandedDefinition, BandedRange, CanvasGridProps, CellData, ColorMode, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, EmbeddedObject, NamedRange, PivotTable, ProtectedRange, SelectionAttributes, Sheet, SpreadsheetTheme, TableView, Slicer } from "@rowsncolumns/spreadsheet";
4
4
  import type { Patch } from "immer";
5
5
  import { getAutoFillValues as defaultGetAutoFillValues } from "../api/fill";
@@ -24,6 +24,12 @@ export type UseSpreadsheetProps<T extends CellData = CellData, S extends Sheet =
24
24
  * Active theme of the spreadsheet
25
25
  */
26
26
  theme?: SpreadsheetTheme;
27
+ /**
28
+ * Workbook named cell styles (imported `<cellStyles>`; "Heading 1",
29
+ * "Good", "Accent 1", …). Feeds the toolbar "Workbook styles" gallery and
30
+ * the xlsx exporter's `namedCellStyles` argument.
31
+ */
32
+ namedCellStyles?: NamedCellStyle[];
27
33
  /**
28
34
  * Sheet data
29
35
  */
@@ -101,6 +107,10 @@ export type UseSpreadsheetProps<T extends CellData = CellData, S extends Sheet =
101
107
  * Callback when table state is changed
102
108
  */
103
109
  onChangeTheme?: React.Dispatch<React.SetStateAction<SpreadsheetTheme>>;
110
+ /**
111
+ * Callback when an Excel import supplies workbook named cell styles
112
+ */
113
+ onChangeNamedCellStyles?: React.Dispatch<React.SetStateAction<NamedCellStyle[]>>;
104
114
  /**
105
115
  * Callback when cell formatting changes
106
116
  */
@@ -369,7 +379,8 @@ export declare const deriveBuiltInTableBanding: (table: TableView) => BandedDefi
369
379
  * @param param0
370
380
  * @returns
371
381
  */
372
- export declare const useSpreadsheetState: <T extends CellData = CellData, S extends Sheet = Sheet>({ sheets, onChangeSheets, theme, functions, onDemandFormulaPattern, enableLazyCalculation, conditionalFormats, dataValidations, tables, namedRanges, enableExcelImportHistory, enableExcelfileDragDrop, onChangeTables, onChangeNamedRanges, onChangeCharts, onChangeEmbeds, onChangeProtectedRanges, onChangeConditionalFormats, onChangeDataValidations, onChangeBandedRanges, onChangePivotTables, sheetData, onChangeSheetData, onChangeDependencyGraph, onChangeHistory, onCommand: onCommandProp, onChangeTheme, onError, getAutoFillValues: rawGetAutoFillValues, customAutofillLists, getEffectiveStructuredValue, darkThemeClassName, colorMode, fonts, enableDragnDrop, enabledUndoRedo, locale, generatedNames: generatedNamesProp, enableAtFormula, preserveFormattingOnPaste, recalculateOnOpen, protectFormulas, maxRowCount, maxColumnCount, maxSheetCount, idCreationStrategy, fileSizeLimit, cellXfs, cellStyles, onChangeCellXfs, sharedStrings, onChangeSharedStrings, onRequestFonts, onChangeSlicers, citations, onChangeCitations, createCalculationWorker, calculationMode, iterativeCalculation, onIterativeCalculationEnabled, onStreamStart, onStreamProgress, onStreamEnd, onConfirm, onPrompt, sanitizeHtml, }: UseSpreadsheetProps<T, S>) => {
382
+ export declare const useSpreadsheetState: <T extends CellData = CellData, S extends Sheet = Sheet>({ sheets, onChangeSheets, theme, functions, onDemandFormulaPattern, enableLazyCalculation, conditionalFormats, dataValidations, tables, namedRanges, enableExcelImportHistory, enableExcelfileDragDrop, onChangeTables, onChangeNamedRanges, onChangeCharts, onChangeEmbeds, onChangeProtectedRanges, onChangeConditionalFormats, onChangeDataValidations, onChangeBandedRanges, onChangePivotTables, sheetData, onChangeSheetData, onChangeDependencyGraph, onChangeHistory, onCommand: onCommandProp, onChangeTheme, namedCellStyles, onChangeNamedCellStyles, onError, getAutoFillValues: rawGetAutoFillValues, customAutofillLists, getEffectiveStructuredValue, darkThemeClassName, colorMode, fonts, enableDragnDrop, enabledUndoRedo, locale, generatedNames: generatedNamesProp, enableAtFormula, preserveFormattingOnPaste, recalculateOnOpen, protectFormulas, maxRowCount, maxColumnCount, maxSheetCount, idCreationStrategy, fileSizeLimit, cellXfs, cellStyles, onChangeCellXfs, sharedStrings, onChangeSharedStrings, onRequestFonts, onChangeSlicers, citations, onChangeCitations, createCalculationWorker, calculationMode, iterativeCalculation, onIterativeCalculationEnabled, onStreamStart, onStreamProgress, onStreamEnd, onConfirm, onPrompt, sanitizeHtml, }: UseSpreadsheetProps<T, S>) => {
383
+ namedCellStyles: NamedCellStyle[] | undefined;
373
384
  activeCellBySheetId: Record<number, import("@rowsncolumns/grid").CellInterface>;
374
385
  selectionsBySheetId: Record<number, import("@rowsncolumns/grid").SelectionArea<SelectionAttributes>[]>;
375
386
  activeCell: import("@rowsncolumns/grid").CellInterface;
@@ -455,22 +466,22 @@ export declare const useSpreadsheetState: <T extends CellData = CellData, S exte
455
466
  onChangeActiveSheet: (sheetId: number) => void;
456
467
  onSelectNextSheet: (sheetId: number, e?: React.KeyboardEvent<HTMLDivElement>) => void;
457
468
  onSelectPreviousSheet: (sheetId: number, e?: React.KeyboardEvent<HTMLDivElement>) => void;
458
- onChange: (sheetId: number, coords: import("@rowsncolumns/common-types").CellInterface, value: string, textFormatRuns: import("@rowsncolumns/common-types").TextFormatRun[] | undefined | null, previousValue?: string | boolean | undefined, isDirty?: boolean, previousTextFormatRuns?: import("@rowsncolumns/common-types").TextFormatRun[] | undefined | null) => void;
459
- onChangeBatch: (sheetId: number, ranges: import("@rowsncolumns/common-types").GridRange[] | import("@rowsncolumns/common-types").GridRange, values: (string | boolean | number | null | undefined)[][] | string | boolean | number | null | undefined, formatting?: CellFormat | (CellFormat | null | undefined)[][] | null | undefined, citations?: (string | undefined | null)[][] | string | null | undefined, changeBatchOptions?: import("../interface/change-batch").ChangeBatchOptions) => void;
460
- onChangeBatchStream: (sheetId: number, range: import("@rowsncolumns/common-types").GridRange, stream: import("../types").ChangeBatchStreamInput, options?: import("@rowsncolumns/spreadsheet").ChangeBatchStreamOptions) => Promise<void> | undefined;
461
- onChangeFormatting: (...args: [sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[], cellFormatOrCellFormatArray: import("@rowsncolumns/spreadsheet").CellFormat | (import("@rowsncolumns/spreadsheet").CellFormat | null | undefined)[][] | null | undefined, options?: import("./use-on-change-formatting").FormattingChangeOptions | undefined] | [sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[], type: keyof import("@rowsncolumns/spreadsheet").CellFormat, value: import("@rowsncolumns/spreadsheet").FormattingValue<keyof import("@rowsncolumns/spreadsheet").CellFormat>, options?: import("./use-on-change-formatting").FormattingChangeOptions | undefined]) => void;
462
- onRepeatFormatting: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
463
- onClearFormatting: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
469
+ onChange: (sheetId: number, coords: CellInterface, value: string, textFormatRuns: import("@rowsncolumns/common-types").TextFormatRun[] | undefined | null, previousValue?: string | boolean | undefined, isDirty?: boolean, previousTextFormatRuns?: import("@rowsncolumns/common-types").TextFormatRun[] | undefined | null) => void;
470
+ onChangeBatch: (sheetId: number, ranges: GridRange[] | GridRange, values: (string | boolean | number | null | undefined)[][] | string | boolean | number | null | undefined, formatting?: CellFormat | (CellFormat | null | undefined)[][] | null | undefined, citations?: (string | undefined | null)[][] | string | null | undefined, changeBatchOptions?: import("../interface/change-batch").ChangeBatchOptions) => void;
471
+ onChangeBatchStream: (sheetId: number, range: GridRange, stream: import("../types").ChangeBatchStreamInput, options?: import("@rowsncolumns/spreadsheet").ChangeBatchStreamOptions) => Promise<void> | undefined;
472
+ onChangeFormatting: (...args: [sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], cellFormatOrCellFormatArray: import("@rowsncolumns/spreadsheet").CellFormat | (import("@rowsncolumns/spreadsheet").CellFormat | null | undefined)[][] | null | undefined, options?: import("./use-on-change-formatting").FormattingChangeOptions | undefined] | [sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], type: keyof import("@rowsncolumns/spreadsheet").CellFormat, value: import("@rowsncolumns/spreadsheet").FormattingValue<keyof import("@rowsncolumns/spreadsheet").CellFormat>, options?: import("./use-on-change-formatting").FormattingChangeOptions | undefined]) => void;
473
+ onRepeatFormatting: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
474
+ onClearFormatting: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
464
475
  onMergeCells: (sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, selections: import("@rowsncolumns/grid").SelectionArea<SelectionAttributes>[], direction?: import("@rowsncolumns/grid").Direction) => void;
465
476
  onUnMergeCells: (sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, currentSelections: import("@rowsncolumns/grid").SelectionArea<SelectionAttributes>[]) => void;
466
477
  onResize: (sheetId: number, indexes: number[], dimension: number, axis: import("@rowsncolumns/spreadsheet").AXIS, autoFit?: boolean) => void;
467
- onChangeBorder: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[], location: import("@rowsncolumns/spreadsheet").BorderLocation, color: import("@rowsncolumns/spreadsheet").Color | undefined, style?: import("@rowsncolumns/spreadsheet").BorderStyle | undefined) => void;
468
- onChangeDecimals: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[], type: "increment" | "decrement") => void;
478
+ onChangeBorder: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], location: import("@rowsncolumns/spreadsheet").BorderLocation, color: import("@rowsncolumns/spreadsheet").Color | undefined, style?: import("@rowsncolumns/spreadsheet").BorderStyle | undefined) => void;
479
+ onChangeDecimals: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], type: "increment" | "decrement") => void;
469
480
  onChangeSheetTabColor: (sheetId: number, color: import("@rowsncolumns/spreadsheet").Color | undefined) => void;
470
481
  onRenameSheet: (sheetId: number, name: string, oldName: string) => void;
471
482
  onRequestDeleteSheet: (sheetId: number) => void;
472
483
  onDeleteSheet: (sheetId: number) => void;
473
- onDelete: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[], clearType?: import("..").ClearType) => void;
484
+ onDelete: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], clearType?: import("..").ClearType) => void;
474
485
  onHideSheet: (sheetId: number) => void;
475
486
  onShowSheet: (sheetId: number) => void;
476
487
  onProtectSheet: (sheetId: number) => void;
@@ -492,8 +503,8 @@ export declare const useSpreadsheetState: <T extends CellData = CellData, S exte
492
503
  onCollapseColumnGroup: (sheetId: number, summaryColumnIndex: number) => void;
493
504
  onExpandColumnGroup: (sheetId: number, summaryColumnIndex: number) => void;
494
505
  onSetOutlineDepth: (sheetId: number, axis: "row" | "column", depth: number) => void;
495
- onFill: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, fillSelection: SelectionArea, selections: SelectionArea<SelectionAttributes>[], fillableSelections?: SelectionArea<SelectionAttributes>[], fillType?: import("../api/fill").AutoFillType) => Promise<void>;
496
- onFillRange: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[], direction: import("@rowsncolumns/grid").Direction | undefined) => void;
506
+ onFill: (sheetId: number, activeCell: CellInterface, fillSelection: SelectionArea, selections: SelectionArea<SelectionAttributes>[], fillableSelections?: SelectionArea<SelectionAttributes>[], fillType?: import("../api/fill").AutoFillType) => Promise<void>;
507
+ onFillRange: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], direction: import("@rowsncolumns/grid").Direction | undefined) => void;
497
508
  onMoveEmbed: (embedId: string | number, sheetId: number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number) => void;
498
509
  onResizeEmbed: (embedId: string | number, sheetId: number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number) => void;
499
510
  onDeleteEmbed: (embedId: string | number) => void;
@@ -532,31 +543,31 @@ export declare const useSpreadsheetState: <T extends CellData = CellData, S exte
532
543
  onRemoveTable: (tableView: TableView) => void;
533
544
  onRequestEditTable: (table: TableView) => void;
534
545
  onUpdateTable: (sheetId: number, tableId: TableView["id"], updatedTable: Partial<TableView>) => void;
535
- onRequestDefineNamedRange: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
546
+ onRequestDefineNamedRange: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
536
547
  onRequestUpdateNamedRange: (sheetId: number, namedRange: NamedRange) => void;
537
548
  onUpdateNamedRange: (sheetId: number, namedRange: NamedRange, previousNamedRange: NamedRange) => void;
538
549
  onCreateNamedRange: (sheetId: number, namedRange: NamedRange) => void;
539
550
  onDeleteNamedRange: (id: NamedRange["namedRangeId"]) => void;
540
551
  onDragOver: (e: React.DragEvent<HTMLDivElement>) => void;
541
552
  onDrop: (e: React.DragEvent<HTMLDivElement>) => Promise<void>;
542
- onInsertFile: (file: File, sheetIdToInsert?: number, activeCell?: import("@rowsncolumns/common-types").CellInterface, options?: import("./use-on-drag-n-drop").InsertFileOptions) => Promise<void>;
553
+ onInsertFile: (file: File, sheetIdToInsert?: number, activeCell?: CellInterface, options?: import("./use-on-drag-n-drop").InsertFileOptions) => Promise<void>;
543
554
  onFreezeColumn: (sheetId: number, columnIndex: number) => void;
544
555
  onFreezeRow: (sheetId: number, rowIndex: number) => void;
545
556
  onChangeSpreadsheetTheme: (theme: SpreadsheetTheme) => Promise<void>;
546
557
  onAddBandedRange: (sheetId: number, bandedRange: BandedRange) => void;
547
558
  onRemoveBandedRange: (sheetId: number, bandedRange: BandedRange) => void;
548
- onUpdateNote: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, note?: string) => void;
549
- onInsertNote: (sheetId: number, cell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
559
+ onUpdateNote: (sheetId: number, activeCell: CellInterface, note?: string) => void;
560
+ onInsertNote: (sheetId: number, cell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
550
561
  onSortRange: (sheetId: number, selections: SelectionArea<SelectionAttributes>[], sortOrder: import("@rowsncolumns/common-types").SortOrder, specs?: import("./utils/sort-rows").DimensionSortSpec[]) => void;
551
- onProtectRange: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[] | undefined) => void;
562
+ onProtectRange: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[] | undefined) => void;
552
563
  onUnProtectRange: (sheetId: number, protectedRangeId: number | string) => void;
553
564
  getNonEmptyRowCount: (sheetId: number) => number | undefined;
554
565
  getNonEmptyColumnCount: (sheetId: number, rowIndex: number) => number | undefined;
555
566
  getSheetRowCount: (sheetId: number) => number;
556
567
  getSheetColumnCount: (sheetId: number) => number;
557
- onIncreaseIndent: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
558
- onDecreaseIndent: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
559
- onChangeIndent: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[], shouldIncrease: boolean) => void;
568
+ onIncreaseIndent: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
569
+ onDecreaseIndent: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
570
+ onChangeIndent: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], shouldIncrease: boolean) => void;
560
571
  onRequestResize: (sheetId: number, indexes: number[], axis: import("@rowsncolumns/spreadsheet").AXIS) => void;
561
572
  onAutoResize: (sheetId: number, indexes: number[], axis: import("@rowsncolumns/spreadsheet").AXIS) => void;
562
573
  getColumnarDataFromRange: (sheetRange: import("@rowsncolumns/common-types").SheetRange) => {
@@ -565,15 +576,15 @@ export declare const useSpreadsheetState: <T extends CellData = CellData, S exte
565
576
  onInsertTime: (sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, selections: import("@rowsncolumns/grid").SelectionArea<SelectionAttributes>[]) => void;
566
577
  onInsertDate: (sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, selections: import("@rowsncolumns/grid").SelectionArea<SelectionAttributes>[]) => void;
567
578
  onInsertDateTime: (sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, selections: import("@rowsncolumns/grid").SelectionArea<SelectionAttributes>[]) => void;
568
- onRequestInsertLink: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
569
- onInsertLink: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[] | undefined, url: string, title?: string) => void;
570
- onRemoveLink: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections?: SelectionArea<SelectionAttributes>[]) => void;
571
- onSelectLink: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, hyperlink: T["hyperlink"]) => void;
572
- onRequestInsertImage: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, insertOverCells?: boolean) => void;
573
- onInsertImage: (fileOrUrl: File | string, sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, options?: (import("./use-on-drag-n-drop").InsertFileOptions & {
579
+ onRequestInsertLink: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
580
+ onInsertLink: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[] | undefined, url: string, title?: string) => void;
581
+ onRemoveLink: (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[]) => void;
582
+ onSelectLink: (sheetId: number, activeCell: CellInterface, hyperlink: T["hyperlink"]) => void;
583
+ onRequestInsertImage: (sheetId: number, activeCell: CellInterface, insertOverCells?: boolean) => void;
584
+ onInsertImage: (fileOrUrl: File | string, sheetId: number, activeCell: CellInterface, options?: (import("./use-on-drag-n-drop").InsertFileOptions & {
574
585
  embedId?: string | number;
575
586
  }) | undefined) => Promise<void>;
576
- onInsertCheckbox: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
587
+ onInsertCheckbox: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
577
588
  onRequestFormatCells: () => void;
578
589
  onRequestConditionalFormat: () => void;
579
590
  onCreateConditionalFormattingRule: (rule: ConditionalFormatRule) => void;
@@ -595,18 +606,21 @@ export declare const useSpreadsheetState: <T extends CellData = CellData, S exte
595
606
  importExcelFile: (file: File | ArrayBuffer, options?: import("./use-on-import-excel").ExcelImportOptions) => Promise<import("./use-on-import-excel").ExcelImportResponse>;
596
607
  isImportingExcelfile: boolean;
597
608
  generateStatePatches: () => Promise<SpreadsheetPatch>;
598
- importCSVFile: (file: File, sheetId?: number, activeCell?: import("@rowsncolumns/common-types").CellInterface, options?: import("./use-on-drag-n-drop").InsertFileOptions) => Promise<void>;
599
- importCSVFileLegacy: (file: File, sheetId?: number, activeCell?: import("@rowsncolumns/common-types").CellInterface, options?: import("./use-on-drag-n-drop").InsertFileOptions) => Promise<void>;
609
+ importCSVFile: (file: File, sheetId?: number, activeCell?: CellInterface, options?: import("./use-on-drag-n-drop").InsertFileOptions) => Promise<void>;
610
+ importCSVFileLegacy: (file: File, sheetId?: number, activeCell?: CellInterface, options?: import("./use-on-drag-n-drop").InsertFileOptions) => Promise<void>;
600
611
  paintFormat: (sourceSheetRange: import("@rowsncolumns/common-types").SheetRange, targetSheetRange: import("@rowsncolumns/common-types").SheetRange) => void;
601
- onSavePaintFormat: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
612
+ onSavePaintFormat: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
602
613
  isPaintFormatActive: boolean;
603
- onApplyPaintFormat: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections?: SelectionArea<SelectionAttributes>[]) => void;
614
+ onApplyPaintFormat: (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[]) => void;
604
615
  getSheetProperties: (sheetId: number) => import("@rowsncolumns/calculator").SheetProperty | undefined;
605
616
  getEffectiveExtendedValue: (sheetId: number, rowIndex: number, columnIndex: number) => T["ev"];
606
617
  getUserEnteredExtendedValue: (sheetId: number, rowIndex: number, columnIndex: number) => T["ue"];
607
618
  getErrorValue: (sheetId: number, rowIndex: number, columnIndex: number) => any;
608
- onSplitTextToColumns: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections?: SelectionArea<SelectionAttributes>[], delimiter?: string) => void;
609
- onRemoveDuplicates: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections?: SelectionArea<SelectionAttributes>[], options?: import("@rowsncolumns/spreadsheet").RemoveDuplicatesOptions) => import("../interface/remove-duplicates").RemoveDuplicatesResult | undefined;
619
+ onSplitTextToColumns: (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[], delimiter?: string, options?: import("@rowsncolumns/spreadsheet").SplitTextOptions) => void;
620
+ onRemoveDuplicates: (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[], options?: import("@rowsncolumns/spreadsheet").RemoveDuplicatesOptions) => import("../interface/remove-duplicates").RemoveDuplicatesResult | undefined;
621
+ onGoalSeek: (sheetId: number, setCell: CellInterface, targetValue: number, changingCell: CellInterface) => Promise<import("@rowsncolumns/spreadsheet").GoalSeekResult | undefined>;
622
+ onSubtotal: (sheetId: number, options: import("@rowsncolumns/spreadsheet").SubtotalOptions) => import("./use-on-subtotal").SubtotalPlan | undefined;
623
+ onAdvancedFilter: (sheetId: number, options: import("@rowsncolumns/spreadsheet").AdvancedFilterOptions) => import("./use-on-advanced-filter").AdvancedFilterPlan | undefined;
610
624
  onRequestAddRows: (sheetId: number, additionalRowCount: number) => S | undefined;
611
625
  getDependents: ((source: import("@rowsncolumns/dag").CellCoordinate | import("@rowsncolumns/dag").CellCoordinateRange, includeSource?: boolean) => (import("@rowsncolumns/dag").CellNode | import("@rowsncolumns/dag").StaticNode)[]) | (() => never[]);
612
626
  getPrecedents: ((source: import("@rowsncolumns/dag").CellCoordinate | import("@rowsncolumns/dag").CellCoordinateRange, includeSource?: boolean) => (import("@rowsncolumns/dag").CellNode | import("@rowsncolumns/dag").StaticNode | import("@rowsncolumns/dag").CellRangeNode)[]) | (() => never[]);
@@ -614,8 +628,8 @@ export declare const useSpreadsheetState: <T extends CellData = CellData, S exte
614
628
  getDefaultHorizontalAlignment: (sheetId: number, rowIndex: number, columnIndex: number) => import("@rowsncolumns/common-types").HorizontalAlign | undefined;
615
629
  arrows: import("react").ReactNode[];
616
630
  onRemoveArrows: () => void;
617
- onTraceDependents: (sheetId: number, cell: import("@rowsncolumns/common-types").CellInterface) => void;
618
- onTracePrecedents: (sheetId: number, cell: import("@rowsncolumns/common-types").CellInterface) => void;
631
+ onTraceDependents: (sheetId: number, cell: CellInterface) => void;
632
+ onTracePrecedents: (sheetId: number, cell: CellInterface) => void;
619
633
  onClearHistory: () => void;
620
634
  onChangeLocale: (newLocale: string, oldLocale?: string) => void;
621
635
  onInsertComment: (sheetId: number, rowIndex: number, columnIndex: number, commentThreadId: string | number | undefined) => void;
@@ -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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"}
@@ -2,6 +2,7 @@ import { isCellNode } from "@rowsncolumns/dag";
2
2
  import { isCellWithinBounds } from "@rowsncolumns/grid";
3
3
  import { createNewSheet, DEFAULT_COLUMN_COUNT, DEFAULT_ROW_COUNT, useGetCellDimensions, useGetColumnWidth, useGetContentfulRangeAroundCell, useGetEffectiveValuesFromRange, useGetRowHeight, } from "@rowsncolumns/spreadsheet";
4
4
  import { useFonts } from "@rowsncolumns/spreadsheet";
5
+ import { getBandedCells } from "@rowsncolumns/spreadsheet";
5
6
  import { defaultSpreadsheetTheme, useCallbackRef, useSpreadsheetTheme, } from "@rowsncolumns/spreadsheet";
6
7
  import { findMatchingBandProperty, getCurrentLocale, isNil, setDefaultEnableAtFormula, uuid, } from "@rowsncolumns/utils";
7
8
  import { enableMapSet, enablePatches, setUseStrictShallowCopy } from "immer";
@@ -120,6 +121,9 @@ import { useSheetDataSubscriber } from "./use-sheetdata-subscriber";
120
121
  import { useSplitTextToColumns } from "./use-split-text-to-columns";
121
122
  import { useOnLocaleChange } from "./use-on-locale-change";
122
123
  import { useOnRemoveDuplicates } from "./use-on-remove-duplicates";
124
+ import { useOnGoalSeek } from "./use-on-goal-seek";
125
+ import { useOnSubtotal } from "./use-on-subtotal";
126
+ import { useOnAdvancedFilter } from "./use-on-advanced-filter";
123
127
  import { useSharedStringRegistry } from "./use-ss-registry";
124
128
  import { useStructuredReference } from "./use-structured-reference";
125
129
  import { useUndoRedo } from "./use-undo-redo";
@@ -202,7 +206,7 @@ onChangeHistory,
202
206
  // Semantic command stream
203
207
  onCommand: onCommandProp,
204
208
  // Theme
205
- onChangeTheme,
209
+ onChangeTheme, namedCellStyles, onChangeNamedCellStyles,
206
210
  // error handler
207
211
  onError,
208
212
  // Get auto fill values
@@ -396,7 +400,7 @@ sanitizeHtml, }) => {
396
400
  const getPrecedentsRef = useRef(undefined);
397
401
  const getPrecedentsForward = useCallback((cell) => getPrecedentsRef.current?.(cell) ?? [], []);
398
402
  // Sheet properties
399
- const { getDataRowCount, getNonEmptyRowCount, getNonEmptyColumnCount, getDataColumnCount, getSheetId, getSheetName, getSheetCount, getSheetIndex, getSheetNames, getSheetProperties, getCellData, getMentionsFromCell, getTextFormatRuns, getEffectiveValue, getEffectiveValueForCalculation, getUserEnteredValue, getUserEnteredValueStable, getConditionalFormatFormula, getDataValidationFormula, getDataValidation, getDefaultHorizontalAlignment, getDataValidationById, getActiveSheetId, getUserEnteredFormat, getEffectiveFormat, getFormattedValue, getSeriesValuesFromRange, getFormattingFromRange, getUserEnteredValuesFromRange, getFormulasFromRange, getDomainValuesFromRange, getColumnarDataFromRange, isColumnHidden, isHiddenRow, isHiddenByFilterRow, getSheetRowCount, getSheetColumnCount, getColumnWidth, getRowHeight, getEffectiveExtendedValue, getUserEnteredExtendedValue, getFrozenRowCount, getErrorValue, } = useSheetProperties({
403
+ const { getDataRowCount, getNonEmptyRowCount, getNonEmptyColumnCount, getDataColumnCount, getSheetId, getSheetName, getSheetCount, getSheetIndex, getSheetNames, getSheetProperties, getCellData, getMentionsFromCell, getTextFormatRuns, getEffectiveValue, getEffectiveValueForCalculation, getUserEnteredValue, getUserEnteredValueStable, getConditionalFormatFormula, getDataValidationFormula, getDataValidation, getDefaultHorizontalAlignment, getDataValidationById, getActiveSheetId, getUserEnteredFormat, getEffectiveFormat, getFormattedValue, getFormulaValue, getSeriesValuesFromRange, getFormattingFromRange, getUserEnteredValuesFromRange, getFormulasFromRange, getDomainValuesFromRange, getColumnarDataFromRange, isColumnHidden, isHiddenRow, isHiddenByFilterRow, getRowOutlineLevel, getSheetRowCount, getSheetColumnCount, getColumnWidth, getRowHeight, getEffectiveExtendedValue, getUserEnteredExtendedValue, getFrozenRowCount, getErrorValue, } = useSheetProperties({
400
404
  getEffectiveStructuredValue,
401
405
  conditionalFormats,
402
406
  sheetData,
@@ -883,11 +887,58 @@ sanitizeHtml, }) => {
883
887
  getRowHeight: getCurrentRowHeight,
884
888
  onCommand,
885
889
  });
886
- // Paint formatting
890
+ // Merge unmerge
891
+ const { onMergeCells, onUnMergeCells } = useOnMergeUnMergeCells({
892
+ locale,
893
+ merges,
894
+ cellXfsRegistry,
895
+ sharedStringRegistry,
896
+ onChangeSelections,
897
+ createHistory,
898
+ onChangeSheets,
899
+ onChangeSheetData,
900
+ enqueueCalculation,
901
+ onCommand,
902
+ });
903
+ // Paint formatting — carries the visible look of the source: effective formats layered over
904
+ // table banding (as static fills), plus the merges inside the source block, tiled onto the
905
+ // target (issue #620 — Google Sheets parity).
906
+ const getPaintMerges = useCallback((sheetId) => sheets.find((s) => s.sheetId === sheetId)?.merges, [sheets]);
907
+ const getPaintBandedCells = useCallback((sheetId) => {
908
+ const bands = [];
909
+ for (const table of tables ?? []) {
910
+ if (table.sheetId !== sheetId)
911
+ continue;
912
+ const banded = table.bandedRange ??
913
+ deriveBuiltInTableBanding(table);
914
+ if (isNil(banded))
915
+ continue;
916
+ bands.push({
917
+ bandedRangeId: `${table.id}-${table.theme}`,
918
+ range: { ...table.range, sheetId },
919
+ ...banded,
920
+ });
921
+ }
922
+ if (!bands.length)
923
+ return undefined;
924
+ return getBandedCells(bands, theme, sheetId, (rowIndex) => isHiddenRow(sheetId, rowIndex), (columnIndex) => isColumnHidden(sheetId, columnIndex));
925
+ }, [tables, theme, isHiddenRow, isColumnHidden]);
926
+ const onPaintMerges = useCallback((sheetId, activeCell, targetRange, paintedMerges) => {
927
+ // The target's own merges give way to the pattern's (the painter replaces the look).
928
+ onUnMergeCells(sheetId, activeCell, [{ range: targetRange }]);
929
+ if (paintedMerges.length) {
930
+ onMergeCells(sheetId, activeCell, paintedMerges.map((range) => ({ range })));
931
+ }
932
+ // `onMergeCells` clears the selection; the painted target stays selected like Excel.
933
+ onChangeSelections?.(sheetId, [{ range: targetRange }]);
934
+ }, [onUnMergeCells, onMergeCells, onChangeSelections]);
887
935
  const { isPaintFormatActive, paintFormat, onApplyPaintFormat, onSavePaintFormat, } = usePaintFormat({
888
936
  onChangeSelections,
889
937
  onChangeFormatting,
890
938
  getEffectiveFormat,
939
+ getMerges: getPaintMerges,
940
+ onPaintMerges,
941
+ getBandedCells: getPaintBandedCells,
891
942
  });
892
943
  // Selection interceptor
893
944
  // for paint format
@@ -919,19 +970,6 @@ sanitizeHtml, }) => {
919
970
  conditionalFormats,
920
971
  onChangeConditionalFormats,
921
972
  });
922
- // Merge unmerge
923
- const { onMergeCells, onUnMergeCells } = useOnMergeUnMergeCells({
924
- locale,
925
- merges,
926
- cellXfsRegistry,
927
- sharedStringRegistry,
928
- onChangeSelections,
929
- createHistory,
930
- onChangeSheets,
931
- onChangeSheetData,
932
- enqueueCalculation,
933
- onCommand,
934
- });
935
973
  // Resize
936
974
  const onResize = useOnResize({
937
975
  onChangeSheets,
@@ -1662,6 +1700,7 @@ sanitizeHtml, }) => {
1662
1700
  onChangeDataValidations,
1663
1701
  onCreateDataValidationRule,
1664
1702
  onChangeTheme,
1703
+ onChangeNamedCellStyles,
1665
1704
  onClearHistory,
1666
1705
  evaluateConditionalFormatting,
1667
1706
  evaluateDataValidations,
@@ -1748,6 +1787,34 @@ sanitizeHtml, }) => {
1748
1787
  getFormattedValue,
1749
1788
  onCommand,
1750
1789
  });
1790
+ // Goal Seek — scratch-evaluates through the calculator, commits via onChange
1791
+ const onGoalSeek = useOnGoalSeek({
1792
+ getFormulaValue,
1793
+ getEffectiveValue,
1794
+ onRequestCalculate: onRequestCalculateWithoutFormatting,
1795
+ getDependents,
1796
+ onChange,
1797
+ });
1798
+ // Data → Subtotal (outline of SUBTOTAL rows) over the row/write/group callbacks
1799
+ const onSubtotal = useOnSubtotal({
1800
+ getEffectiveValue,
1801
+ getFormattedValue,
1802
+ getFormulaValue,
1803
+ getRowOutlineLevel,
1804
+ onDeleteRow,
1805
+ onInsertRow,
1806
+ onChangeBatch,
1807
+ onGroupRows,
1808
+ onUngroupRows,
1809
+ });
1810
+ // Data → Advanced filter (criteria range) over the hide/show/write callbacks
1811
+ const onAdvancedFilter = useOnAdvancedFilter({
1812
+ getEffectiveValue,
1813
+ getFormattedValue,
1814
+ onHideRow,
1815
+ onShowRow,
1816
+ onChangeBatch,
1817
+ });
1751
1818
  // Trace dependents and precedents
1752
1819
  const { arrows, onRemoveArrows, onTraceDependents, onTracePrecedents } = useOnTraceDependentsPrecedents({
1753
1820
  getDependents,
@@ -1767,6 +1834,7 @@ sanitizeHtml, }) => {
1767
1834
  locale,
1768
1835
  });
1769
1836
  return {
1837
+ namedCellStyles,
1770
1838
  activeCellBySheetId,
1771
1839
  selectionsBySheetId,
1772
1840
  activeCell,
@@ -1983,6 +2051,10 @@ sanitizeHtml, }) => {
1983
2051
  onSplitTextToColumns,
1984
2052
  // Remove duplicates
1985
2053
  onRemoveDuplicates,
2054
+ // Data tools
2055
+ onGoalSeek,
2056
+ onSubtotal,
2057
+ onAdvancedFilter,
1986
2058
  // Add rows
1987
2059
  onRequestAddRows,
1988
2060
  // Dependents
@@ -29,6 +29,14 @@ export * from "./hooks/use-cellxfs-registry";
29
29
  export * from "./hooks/use-ss-registry";
30
30
  export * from "./hooks/use-sheet-properties";
31
31
  export * from "./hooks/use-on-remove-duplicates";
32
+ export * from "./hooks/use-on-goal-seek";
33
+ export * from "./hooks/use-on-subtotal";
34
+ export * from "./hooks/use-on-advanced-filter";
35
+ export * from "./api/split-text";
36
+ export * from "./api/goal-seek";
37
+ export * from "./api/subtotal";
38
+ export * from "./api/advanced-filter";
39
+ export * from "./api/paint-format";
32
40
  export * from "./hooks/use-on-locale-change";
33
41
  export * from "./hooks/use-on-request-resize";
34
42
  export * from "./hooks/use-on-request-edit-table";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,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,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,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAG7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,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,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,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,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,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,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,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC"}
package/dist/esm/index.js CHANGED
@@ -29,6 +29,14 @@ export * from "./hooks/use-cellxfs-registry";
29
29
  export * from "./hooks/use-ss-registry";
30
30
  export * from "./hooks/use-sheet-properties";
31
31
  export * from "./hooks/use-on-remove-duplicates";
32
+ export * from "./hooks/use-on-goal-seek";
33
+ export * from "./hooks/use-on-subtotal";
34
+ export * from "./hooks/use-on-advanced-filter";
35
+ export * from "./api/split-text";
36
+ export * from "./api/goal-seek";
37
+ export * from "./api/subtotal";
38
+ export * from "./api/advanced-filter";
39
+ export * from "./api/paint-format";
32
40
  export * from "./hooks/use-on-locale-change";
33
41
  // Dialog-opener hooks external engine chrome bridges to (they write the payload
34
42
  // atoms the dialog hosts read; nothing else exports them).
@@ -1 +1 @@
1
- {"version":3,"file":"change-batch-stream.d.ts","sourceRoot":"","sources":["../../../interface/change-batch-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,KAAK,cAAc,EAAW,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EACV,QAAQ,EAER,wBAAwB,EAExB,WAAW,EACX,KAAK,EACN,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,MAAM,kCAAkC,GAAG,CAC/C,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,cAAc,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,sBAAsB,CAChC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,GAAG,KAAK,IACrB,IAAI,CACN,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,mBAAmB,GACnB,6BAA6B,GAC7B,QAAQ,GACR,uBAAuB,GACvB,oBAAoB,CACvB,GAAG;IACF,cAAc,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC/D,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACrE,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACrE,YAAY,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC3D,kBAAkB,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC7E,8BAA8B,CAAC,EAAE,UAAU,CACzC,OAAO,cAAc,CACtB,CAAC,gCAAgC,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,CAAC,EAAE,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,aAAa,GAAG,IAAI,KACnC,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,CAAC;AAyBF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,gTAkB5E,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE3B,SAAS,MAAM,EACf,OAAO,SAAS,EAChB,QAAQ,sBAAsB,EAC9B,gBAAgB,wBAAwB,kBA4W3C,CAAC"}
1
+ {"version":3,"file":"change-batch-stream.d.ts","sourceRoot":"","sources":["../../../interface/change-batch-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,KAAK,cAAc,EAAW,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EACV,QAAQ,EAER,wBAAwB,EAExB,WAAW,EACX,KAAK,EACN,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,MAAM,kCAAkC,GAAG,CAC/C,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,cAAc,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,sBAAsB,CAChC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,GAAG,KAAK,IACrB,IAAI,CACN,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,mBAAmB,GACnB,6BAA6B,GAC7B,QAAQ,GACR,uBAAuB,GACvB,oBAAoB,CACvB,GAAG;IACF,cAAc,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC/D,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACrE,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACrE,YAAY,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC3D,kBAAkB,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC7E,8BAA8B,CAAC,EAAE,UAAU,CACzC,OAAO,cAAc,CACtB,CAAC,gCAAgC,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,CAAC,EAAE,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,aAAa,GAAG,IAAI,KACnC,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,CAAC;AAyBF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,gTAkB5E,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE3B,SAAS,MAAM,EACf,OAAO,SAAS,EAChB,QAAQ,sBAAsB,EAC9B,gBAAgB,wBAAwB,kBAoX3C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { makeKey } from "@rowsncolumns/dag";
2
- import { isNil } from "@rowsncolumns/utils";
2
+ import { alignmentImpliesWrap, isNil } from "@rowsncolumns/utils";
3
3
  import { produce } from "immer";
4
4
  import { createSheetDraft } from "../api/immer-utils";
5
5
  import { SheetCell } from "../sheet-cell";
@@ -205,7 +205,9 @@ export const changeBatchStream = ({ locale, onChangeSheetData, onChangeSheets, g
205
205
  if (cellStyles) {
206
206
  cellXfsRegistry?.registerCellXfs(sheetCell);
207
207
  if (shouldUpdateRowHeights &&
208
- (cellStyles.textFormat || cellStyles.wrapStrategy)) {
208
+ (cellStyles.textFormat ||
209
+ cellStyles.wrapStrategy ||
210
+ alignmentImpliesWrap(cellStyles.horizontalAlignment))) {
209
211
  const rowUpdates = rowStyleUpdates.get(position.rowIndex) ?? [];
210
212
  rowUpdates.push({
211
213
  columnIndex: position.columnIndex,
@@ -245,7 +247,9 @@ export const changeBatchStream = ({ locale, onChangeSheetData, onChangeSheets, g
245
247
  for (const update of updates) {
246
248
  const cellStyles = update.cellStyles;
247
249
  if (!cellStyles ||
248
- (!cellStyles.textFormat && !cellStyles.wrapStrategy)) {
250
+ (!cellStyles.textFormat &&
251
+ !cellStyles.wrapStrategy &&
252
+ !alignmentImpliesWrap(cellStyles.horizontalAlignment))) {
249
253
  continue;
250
254
  }
251
255
  if (isMergedCell?.(sheetId, rowIndex, update.columnIndex) ===
@@ -255,9 +259,11 @@ export const changeBatchStream = ({ locale, onChangeSheetData, onChangeSheets, g
255
259
  const formattedValue = !isNil(update.overrideValue) && update.overrideValue !== ""
256
260
  ? String(update.overrideValue)
257
261
  : getFormattedValue?.(sheetId, rowIndex, update.columnIndex);
258
- const shouldWrap = cellStyles.wrapStrategy
259
- ? cellStyles.wrapStrategy === "wrap"
260
- : undefined;
262
+ const shouldWrap = alignmentImpliesWrap(cellStyles.horizontalAlignment)
263
+ ? true
264
+ : cellStyles.wrapStrategy
265
+ ? cellStyles.wrapStrategy === "wrap"
266
+ : undefined;
261
267
  const fontSize = cellStyles.textFormat?.fontSize;
262
268
  const newCellDimension = getCellDimensions(sheetId, rowIndex, update.columnIndex, "x", {
263
269
  textOverride: formattedValue ?? undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"change-batch.d.ts","sourceRoot":"","sources":["../../../interface/change-batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EACV,QAAQ,EAER,KAAK,EAEN,MAAM,2BAA2B,CAAC;AAiBnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,eAAO,MAAM,WAAW,GACtB,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,0VAoBC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE1B,SAAS,MAAM,EACf,QAAQ,SAAS,EAAE,GAAG,SAAS,EAC/B,QACI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAClD,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,IAAI,EACR,aAAa,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,EAC9D,YAAY,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACvE,UAAS,kBAAuB,SAoZnC,CAAC"}
1
+ {"version":3,"file":"change-batch.d.ts","sourceRoot":"","sources":["../../../interface/change-batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EACV,QAAQ,EAER,KAAK,EAEN,MAAM,2BAA2B,CAAC;AAiBnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,eAAO,MAAM,WAAW,GACtB,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,0VAoBC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE1B,SAAS,MAAM,EACf,QAAQ,SAAS,EAAE,GAAG,SAAS,EAC/B,QACI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAClD,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,IAAI,EACR,aAAa,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,EAC9D,YAAY,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACvE,UAAS,kBAAuB,SA2ZnC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { DEFAULT_COLUMN_COUNT, DEFAULT_ROW_COUNT, MAX_COLUMN_COUNT, MAX_ROW_COUNT, } from "@rowsncolumns/utils";
2
- import { isNil } from "@rowsncolumns/utils";
2
+ import { alignmentImpliesWrap, isNil } from "@rowsncolumns/utils";
3
3
  import { produceWithPatches } from "immer";
4
4
  import { createSheetCellIdentifier } from "../api/formula";
5
5
  import { createSheetDraft } from "../api/immer-utils";
@@ -167,13 +167,18 @@ export const changeBatch = ({ createHistory, enqueueCalculation, onChangeSheetDa
167
167
  cellXfsRegistry?.getPatches(saveHistory);
168
168
  // Save shared strings patches
169
169
  sharedStringRegistry?.getPatches(saveHistory);
170
- // Update row heights when text format or wrapping changes
170
+ // Update row heights when text format or wrapping changes (Excel's
171
+ // justify / distributed alignments wrap implicitly)
172
+ const affectsRowHeight = (cellFormat) => !!cellFormat &&
173
+ !!(cellFormat.textFormat ||
174
+ cellFormat.wrapStrategy ||
175
+ alignmentImpliesWrap(cellFormat.horizontalAlignment));
171
176
  let shouldUpdateRowHeights = false;
172
177
  if (Array.isArray(formatting)) {
173
- shouldUpdateRowHeights = formatting.some((row) => row.some((cellFormat) => cellFormat?.textFormat || cellFormat?.wrapStrategy));
178
+ shouldUpdateRowHeights = formatting.some((row) => row.some((cellFormat) => affectsRowHeight(cellFormat)));
174
179
  }
175
180
  else {
176
- shouldUpdateRowHeights = !!(formatting?.textFormat || formatting?.wrapStrategy);
181
+ shouldUpdateRowHeights = affectsRowHeight(formatting);
177
182
  }
178
183
  if (shouldUpdateRowHeights) {
179
184
  onChangeSheets((prevSheets) => {
@@ -209,8 +214,7 @@ export const changeBatch = ({ createHistory, enqueueCalculation, onChangeSheetDa
209
214
  const cellFormat = Array.isArray(formatting)
210
215
  ? formatting[rollingRowIndex][rollingColumnIndex]
211
216
  : formatting;
212
- if (!cellFormat ||
213
- (!cellFormat.textFormat && !cellFormat.wrapStrategy)) {
217
+ if (!affectsRowHeight(cellFormat)) {
214
218
  rollingColumnIndex++;
215
219
  continue;
216
220
  }
@@ -220,9 +224,11 @@ export const changeBatch = ({ createHistory, enqueueCalculation, onChangeSheetDa
220
224
  const formattedValue = !isNil(overrideValue) && overrideValue !== ""
221
225
  ? String(overrideValue)
222
226
  : getFormattedValue?.(sheetId, rowIndex, columnIndex);
223
- const shouldWrap = cellFormat.wrapStrategy
224
- ? cellFormat.wrapStrategy === "wrap"
225
- : undefined;
227
+ const shouldWrap = alignmentImpliesWrap(cellFormat.horizontalAlignment)
228
+ ? true
229
+ : cellFormat.wrapStrategy
230
+ ? cellFormat.wrapStrategy === "wrap"
231
+ : undefined;
226
232
  const fontSize = cellFormat.textFormat?.fontSize;
227
233
  const newCellDimension = getCellDimensions?.(sheetId, rowIndex, columnIndex, "x", {
228
234
  textOverride: formattedValue ?? undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"change-formatting.d.ts","sourceRoot":"","sources":["../../../interface/change-formatting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAER,cAAc,EACd,KAAK,EACN,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAEV,gCAAgC,EAChC,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAG3C,eAAO,MAAM,gBAAgB,GAC3B,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,cAAc,EACxB,yKAWC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,MAE/B,GAAG,MAAM,UAAU,CACjB,+BAA+B,CAAC,CAAC,CAAC,GAAG,gCAAgC,CACtE,SAiTJ,CAAC"}
1
+ {"version":3,"file":"change-formatting.d.ts","sourceRoot":"","sources":["../../../interface/change-formatting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAER,cAAc,EACd,KAAK,EACN,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAEV,gCAAgC,EAChC,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AA6B3C,eAAO,MAAM,gBAAgB,GAC3B,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,cAAc,EACxB,yKAWC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,MAE/B,GAAG,MAAM,UAAU,CACjB,+BAA+B,CAAC,CAAC,CAAC,GAAG,gCAAgC,CACtE,SAwSJ,CAAC"}