@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.
- package/dist/cjs/api/advanced-filter.d.ts +72 -0
- package/dist/cjs/api/advanced-filter.d.ts.map +1 -0
- package/dist/cjs/api/advanced-filter.js +0 -0
- package/dist/cjs/api/goal-seek.d.ts +29 -0
- package/dist/cjs/api/goal-seek.d.ts.map +1 -0
- package/dist/cjs/api/goal-seek.js +131 -0
- package/dist/cjs/api/immer-utils.d.ts.map +1 -1
- package/dist/cjs/api/immer-utils.js +1 -0
- package/dist/cjs/api/paint-format.d.ts +41 -0
- package/dist/cjs/api/paint-format.d.ts.map +1 -0
- package/dist/cjs/api/paint-format.js +115 -0
- package/dist/cjs/api/split-text.d.ts +12 -0
- package/dist/cjs/api/split-text.d.ts.map +1 -1
- package/dist/cjs/api/split-text.js +41 -0
- package/dist/cjs/api/subtotal.d.ts +85 -0
- package/dist/cjs/api/subtotal.d.ts.map +1 -0
- package/dist/cjs/api/subtotal.js +250 -0
- package/dist/cjs/commands.d.ts +8 -0
- package/dist/cjs/commands.d.ts.map +1 -1
- package/dist/cjs/components/editors/data-validation-rule-editor.d.ts.map +1 -1
- package/dist/cjs/components/editors/data-validation-rule-editor.js +83 -16
- package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation-worker.js +1 -0
- package/dist/cjs/hooks/use-on-advanced-filter.d.ts +21 -0
- package/dist/cjs/hooks/use-on-advanced-filter.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-advanced-filter.js +42 -0
- package/dist/cjs/hooks/use-on-goal-seek.d.ts +30 -0
- package/dist/cjs/hooks/use-on-goal-seek.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-goal-seek.js +140 -0
- package/dist/cjs/hooks/use-on-import-excel.d.ts +10 -1
- package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-import-excel.js +8 -4
- package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +53 -34
- package/dist/cjs/hooks/use-on-subtotal.d.ts +26 -0
- package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-subtotal.js +53 -0
- package/dist/cjs/hooks/use-paint-format.d.ts +19 -3
- package/dist/cjs/hooks/use-paint-format.d.ts.map +1 -1
- package/dist/cjs/hooks/use-paint-format.js +85 -31
- package/dist/cjs/hooks/use-sheet-properties.d.ts +2 -0
- package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/cjs/hooks/use-sheet-properties.js +4 -0
- package/dist/cjs/hooks/use-split-text-to-columns.d.ts +2 -1
- package/dist/cjs/hooks/use-split-text-to-columns.d.ts.map +1 -1
- package/dist/cjs/hooks/use-split-text-to-columns.js +3 -2
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts +50 -36
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.js +97 -18
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/interface/change-batch-stream.d.ts.map +1 -1
- package/dist/cjs/interface/change-batch-stream.js +12 -6
- package/dist/cjs/interface/change-batch.d.ts.map +1 -1
- package/dist/cjs/interface/change-batch.js +17 -9
- package/dist/cjs/interface/change-formatting.d.ts.map +1 -1
- package/dist/cjs/interface/change-formatting.js +30 -11
- package/dist/cjs/interface/split-text.d.ts +2 -1
- package/dist/cjs/interface/split-text.d.ts.map +1 -1
- package/dist/cjs/interface/split-text.js +7 -3
- package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/cjs/interface/spreadsheet-interface.js +2 -2
- package/dist/cjs/sheet-cell.d.ts.map +1 -1
- package/dist/cjs/sheet-cell.js +7 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/api/advanced-filter.d.ts +72 -0
- package/dist/esm/api/advanced-filter.d.ts.map +1 -0
- package/dist/esm/api/advanced-filter.js +0 -0
- package/dist/esm/api/goal-seek.d.ts +29 -0
- package/dist/esm/api/goal-seek.d.ts.map +1 -0
- package/dist/esm/api/goal-seek.js +108 -0
- package/dist/esm/api/immer-utils.d.ts.map +1 -1
- package/dist/esm/api/immer-utils.js +1 -0
- package/dist/esm/api/paint-format.d.ts +41 -0
- package/dist/esm/api/paint-format.d.ts.map +1 -0
- package/dist/esm/api/paint-format.js +77 -0
- package/dist/esm/api/split-text.d.ts +12 -0
- package/dist/esm/api/split-text.d.ts.map +1 -1
- package/dist/esm/api/split-text.js +28 -0
- package/dist/esm/api/subtotal.d.ts +85 -0
- package/dist/esm/api/subtotal.d.ts.map +1 -0
- package/dist/esm/api/subtotal.js +181 -0
- package/dist/esm/commands.d.ts +8 -0
- package/dist/esm/commands.d.ts.map +1 -1
- package/dist/esm/components/editors/data-validation-rule-editor.d.ts.map +1 -1
- package/dist/esm/components/editors/data-validation-rule-editor.js +52 -4
- package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation-worker.js +1 -0
- package/dist/esm/hooks/use-on-advanced-filter.d.ts +21 -0
- package/dist/esm/hooks/use-on-advanced-filter.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-advanced-filter.js +41 -0
- package/dist/esm/hooks/use-on-goal-seek.d.ts +30 -0
- package/dist/esm/hooks/use-on-goal-seek.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-goal-seek.js +82 -0
- package/dist/esm/hooks/use-on-import-excel.d.ts +10 -1
- package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-import-excel.js +8 -4
- package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-merge-unmerge-cells.js +13 -13
- package/dist/esm/hooks/use-on-subtotal.d.ts +26 -0
- package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-subtotal.js +48 -0
- package/dist/esm/hooks/use-paint-format.d.ts +19 -3
- package/dist/esm/hooks/use-paint-format.d.ts.map +1 -1
- package/dist/esm/hooks/use-paint-format.js +71 -29
- package/dist/esm/hooks/use-sheet-properties.d.ts +2 -0
- package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/esm/hooks/use-sheet-properties.js +4 -0
- package/dist/esm/hooks/use-split-text-to-columns.d.ts +2 -1
- package/dist/esm/hooks/use-split-text-to-columns.d.ts.map +1 -1
- package/dist/esm/hooks/use-split-text-to-columns.js +3 -2
- package/dist/esm/hooks/use-spreadsheet-state.d.ts +50 -36
- package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.js +88 -16
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +8 -0
- package/dist/esm/interface/change-batch-stream.d.ts.map +1 -1
- package/dist/esm/interface/change-batch-stream.js +12 -6
- package/dist/esm/interface/change-batch.d.ts.map +1 -1
- package/dist/esm/interface/change-batch.js +15 -9
- package/dist/esm/interface/change-formatting.d.ts.map +1 -1
- package/dist/esm/interface/change-formatting.js +28 -11
- package/dist/esm/interface/split-text.d.ts +2 -1
- package/dist/esm/interface/split-text.d.ts.map +1 -1
- package/dist/esm/interface/split-text.js +6 -3
- package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/esm/interface/spreadsheet-interface.js +2 -2
- package/dist/esm/sheet-cell.d.ts.map +1 -1
- package/dist/esm/sheet-cell.js +7 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- 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:
|
|
459
|
-
onChangeBatch: (sheetId: number, ranges:
|
|
460
|
-
onChangeBatchStream: (sheetId: number, range:
|
|
461
|
-
onChangeFormatting: (...args: [sheetId: number, activeCell:
|
|
462
|
-
onRepeatFormatting: (sheetId: number, activeCell:
|
|
463
|
-
onClearFormatting: (sheetId: number, activeCell:
|
|
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:
|
|
468
|
-
onChangeDecimals: (sheetId: number, activeCell:
|
|
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:
|
|
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:
|
|
496
|
-
onFillRange: (sheetId: number, activeCell:
|
|
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:
|
|
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?:
|
|
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:
|
|
549
|
-
onInsertNote: (sheetId: number, cell:
|
|
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:
|
|
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:
|
|
558
|
-
onDecreaseIndent: (sheetId: number, activeCell:
|
|
559
|
-
onChangeIndent: (sheetId: number, activeCell:
|
|
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:
|
|
569
|
-
onInsertLink: (sheetId: number, activeCell:
|
|
570
|
-
onRemoveLink: (sheetId: number, activeCell:
|
|
571
|
-
onSelectLink: (sheetId: number, activeCell:
|
|
572
|
-
onRequestInsertImage: (sheetId: number, activeCell:
|
|
573
|
-
onInsertImage: (fileOrUrl: File | string, sheetId: number, activeCell:
|
|
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:
|
|
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?:
|
|
599
|
-
importCSVFileLegacy: (file: File, sheetId?: number, activeCell?:
|
|
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:
|
|
612
|
+
onSavePaintFormat: (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
|
|
602
613
|
isPaintFormatActive: boolean;
|
|
603
|
-
onApplyPaintFormat: (sheetId: number, activeCell:
|
|
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:
|
|
609
|
-
onRemoveDuplicates: (sheetId: number, activeCell:
|
|
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:
|
|
618
|
-
onTracePrecedents: (sheetId: number, cell:
|
|
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":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EACV,2BAA2B,EAC3B,aAAa,EACb,QAAQ,EACR,UAAU,
|
|
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
|
-
//
|
|
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
|
package/dist/esm/index.d.ts
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
|
export * from "./hooks/use-on-request-resize";
|
|
34
42
|
export * from "./hooks/use-on-request-edit-table";
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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 ||
|
|
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 &&
|
|
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.
|
|
259
|
-
?
|
|
260
|
-
:
|
|
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,
|
|
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
|
|
178
|
+
shouldUpdateRowHeights = formatting.some((row) => row.some((cellFormat) => affectsRowHeight(cellFormat)));
|
|
174
179
|
}
|
|
175
180
|
else {
|
|
176
|
-
shouldUpdateRowHeights =
|
|
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.
|
|
224
|
-
?
|
|
225
|
-
:
|
|
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;
|
|
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"}
|