@rowsncolumns/spreadsheet-state 28.0.73 → 28.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/datatype.d.ts.map +1 -1
- package/dist/cjs/api/datatype.js +8 -1
- package/dist/cjs/api/fill-series-spec.d.ts +35 -0
- package/dist/cjs/api/fill-series-spec.d.ts.map +1 -0
- package/dist/cjs/api/fill-series-spec.js +164 -0
- package/dist/cjs/api/fill.d.ts +95 -3
- package/dist/cjs/api/fill.d.ts.map +1 -1
- package/dist/cjs/api/fill.js +1186 -418
- 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 +21 -15
- package/dist/cjs/api/intl.d.ts.map +1 -1
- package/dist/cjs/api/paint-format.d.ts +55 -0
- package/dist/cjs/api/paint-format.d.ts.map +1 -0
- package/dist/cjs/api/paint-format.js +174 -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 +19 -1
- 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-calculation.d.ts +1 -1
- 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-fill.d.ts +13 -4
- package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-fill.js +28 -7
- 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 +89 -32
- 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 +109 -19
- 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/apply-fill.d.ts +3 -3
- package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
- package/dist/cjs/interface/apply-fill.js +100 -53
- 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 +1 -1
- 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 +37 -6
- 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/datatype.d.ts.map +1 -1
- package/dist/esm/api/datatype.js +8 -1
- package/dist/esm/api/fill-series-spec.d.ts +35 -0
- package/dist/esm/api/fill-series-spec.d.ts.map +1 -0
- package/dist/esm/api/fill-series-spec.js +160 -0
- package/dist/esm/api/fill.d.ts +95 -3
- package/dist/esm/api/fill.d.ts.map +1 -1
- package/dist/esm/api/fill.js +1158 -418
- 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 +21 -15
- package/dist/esm/api/intl.d.ts.map +1 -1
- package/dist/esm/api/paint-format.d.ts +55 -0
- package/dist/esm/api/paint-format.d.ts.map +1 -0
- package/dist/esm/api/paint-format.js +122 -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 +19 -1
- 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-calculation.d.ts +1 -1
- 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-fill.d.ts +13 -4
- package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-fill.js +24 -4
- 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 +75 -30
- 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 +100 -17
- 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/apply-fill.d.ts +3 -3
- package/dist/esm/interface/apply-fill.d.ts.map +1 -1
- package/dist/esm/interface/apply-fill.js +93 -48
- 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 +1 -1
- 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 +37 -6
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-split-text-to-columns.d.ts","sourceRoot":"","sources":["../../../hooks/use-split-text-to-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-split-text-to-columns.d.ts","sourceRoot":"","sources":["../../../hooks/use-split-text-to-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,kBAAkB,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC3E,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,qHAQxE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,eAGpB,MAAM,cACH,aAAa,eACZ,aAAa,CAAC,mBAAmB,CAAC,EAAE,gCAEvC,gBAAgB,SA+B/B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
2
|
import { splitText } from "../interface/split-text";
|
|
3
3
|
export const useSplitTextToColumns = ({ locale, getFormattedValue, onChangeSheetData, enqueueCalculation, createHistory, onChangeSelections, onCommand, }) => {
|
|
4
|
-
return useCallback((sheetId, activeCell, selections, delimiter = ",") => {
|
|
4
|
+
return useCallback((sheetId, activeCell, selections, delimiter = ",", options) => {
|
|
5
5
|
splitText({
|
|
6
6
|
locale,
|
|
7
7
|
getFormattedValue,
|
|
@@ -9,7 +9,7 @@ export const useSplitTextToColumns = ({ locale, getFormattedValue, onChangeSheet
|
|
|
9
9
|
onChangeSheetData,
|
|
10
10
|
createHistory,
|
|
11
11
|
onChangeSelections,
|
|
12
|
-
})(sheetId, activeCell, selections, delimiter);
|
|
12
|
+
})(sheetId, activeCell, selections, delimiter, options);
|
|
13
13
|
// Stream the semantic command so an engine consumer re-splits + recomputes.
|
|
14
14
|
onCommand?.({
|
|
15
15
|
command: "split-text-to-columns",
|
|
@@ -17,6 +17,7 @@ export const useSplitTextToColumns = ({ locale, getFormattedValue, onChangeSheet
|
|
|
17
17
|
activeCell,
|
|
18
18
|
selections: selections ?? [],
|
|
19
19
|
delimiter,
|
|
20
|
+
columnBreaks: options?.columnBreaks,
|
|
20
21
|
});
|
|
21
22
|
}, [
|
|
22
23
|
locale,
|
|
@@ -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, options?: import("@rowsncolumns/spreadsheet").FillOptions) => 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":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,2BAA2B,EAC3B,aAAa,EACb,QAAQ,EACR,UAAU,EACV,cAAc,EACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,QAAQ,EACR,SAAS,EACT,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,MAAM,EACP,MAAM,2BAA2B,CAAC;AAyBnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAInC,OAAO,EAAE,iBAAiB,IAAI,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAqH7D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AASrE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAC3D,MAAM,GAAG,MAAM,EACf,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAC1D,CAAC;AACF,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,QAAQ,GAAG,IAAI,GAAG,SAAS,IAAI;IAC3D,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;CACd,CAAC;AAGF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,QAAQ,GAAG,IAAI,GAAG,SAAS,IAAI;IACpE,MAAM,EAAE,CAAC,EAAE,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,KAAK,GAAG,KAAK,IACrB;IACF;;OAEG;IACH,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAC5C;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACrD;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACxE;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACvE;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnE;;OAEG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACzE;;OAEG;IACH,0BAA0B,CAAC,EAAE,KAAK,CAAC,QAAQ,CACzC,KAAK,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,CAC9C,CAAC;IACF;;OAEG;IACH,uBAAuB,CAAC,EAAE,KAAK,CAAC,QAAQ,CACtC,KAAK,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,CACjD,CAAC;IACF;;OAEG;IACH,uBAAuB,CAAC,EAAE,KAAK,CAAC,QAAQ,CACtC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CACvC,CAAC;IACF;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC3E;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvE;;OAEG;IACH,uBAAuB,CAAC,EAAE,KAAK,CAAC,QAAQ,CACtC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CACvC,CAAC;IACF;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,QAAQ,CAC9B,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CACjD,CAAC;IACF;;OAEG;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5E;;OAEG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACzE;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjE;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrE;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;OAEG;IACH,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C;;OAEG;IACH,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC7C;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC1C;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,uBAAuB,CAAC,EAAE,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;IACzE;;;;OAIG;IACH,eAAe,CAAC,CACd,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,EAAE,GACrE,IAAI,CAAC;IACR;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,wBAAwB,CAAC;IACpD;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACjC;;;;;;OAMG;IACH,2BAA2B,CAAC,CAC1B,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,EACpE,QAAQ,CAAC,EAAE,MAAM,OAAO,eAAe,GACtC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAEzC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CACnB,CAAC,SACG,OAAO,GACP,OAAO,GACP,oBAAoB,GACpB,iBAAiB,GACjB,OAAO,GACP,aAAa,GACb,OAAO,GACP,aAAa,GACb,iBAAiB,GACjB,OAAO,EAEX,IAAI,EAAE,CAAC,KACJ,CAAC,SAAS,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClD;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACxE;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,MAAM,CAAC;IACvC;;;OAGG;IACH,eAAe,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACtC;;OAEG;IACH,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD;;;OAGG;IACH,6BAA6B,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C;;OAEG;IACH,gBAAgB,CAAC,EAAE,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAC/D,IAAI,CAAC;IACV;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;;OAGG;IACH,SAAS,CAAC,EAAE,CACV,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,KACE,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,KACE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC,CAAC;AAOF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,SAAS,KACf,gBAAgB,GAAG,SAmCrB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,stCA+IC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAi5Bb,MAAM,cACH,aAAa,CAAC,mBAAmB,CAAC,EAAE,sBAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA3SnB,MAAM,sBAAsB,MAAM;;;;;;;;;;;;;;;;;CA6jD/C,CAAC"}
|
|
@@ -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,
|
|
@@ -960,7 +998,16 @@ sanitizeHtml, }) => {
|
|
|
960
998
|
...props,
|
|
961
999
|
customAutofillLists: props.customAutofillLists ?? customAutofillLists,
|
|
962
1000
|
}), [rawGetAutoFillValues, customAutofillLists]);
|
|
963
|
-
// Fill
|
|
1001
|
+
// Fill. A merged seed lands one merged block per target block (Excel replicates the merge
|
|
1002
|
+
// shape); the target's own merges give way, and the snapped fill extent stays selected.
|
|
1003
|
+
const onFillMerges = useCallback((sheetId, activeCell, clearRange, fillMerges, selectRange) => {
|
|
1004
|
+
onUnMergeCells(sheetId, activeCell, [{ range: clearRange }]);
|
|
1005
|
+
if (fillMerges.length) {
|
|
1006
|
+
onMergeCells(sheetId, activeCell, fillMerges.map((range) => ({ range })));
|
|
1007
|
+
}
|
|
1008
|
+
// `onMergeCells` clears the selection; the filled range stays selected like Excel.
|
|
1009
|
+
onChangeSelections?.(sheetId, [{ range: selectRange }]);
|
|
1010
|
+
}, [onUnMergeCells, onMergeCells, onChangeSelections]);
|
|
964
1011
|
const onFill = useOnFill({
|
|
965
1012
|
locale,
|
|
966
1013
|
cellXfsRegistry,
|
|
@@ -977,6 +1024,8 @@ sanitizeHtml, }) => {
|
|
|
977
1024
|
onChangeDataValidations,
|
|
978
1025
|
createHistory,
|
|
979
1026
|
onCommand,
|
|
1027
|
+
getMerges: getPaintMerges,
|
|
1028
|
+
onFillMerges,
|
|
980
1029
|
});
|
|
981
1030
|
// Delete row
|
|
982
1031
|
const onDeleteRow = useOnDeleteRow({
|
|
@@ -1662,6 +1711,7 @@ sanitizeHtml, }) => {
|
|
|
1662
1711
|
onChangeDataValidations,
|
|
1663
1712
|
onCreateDataValidationRule,
|
|
1664
1713
|
onChangeTheme,
|
|
1714
|
+
onChangeNamedCellStyles,
|
|
1665
1715
|
onClearHistory,
|
|
1666
1716
|
evaluateConditionalFormatting,
|
|
1667
1717
|
evaluateDataValidations,
|
|
@@ -1748,6 +1798,34 @@ sanitizeHtml, }) => {
|
|
|
1748
1798
|
getFormattedValue,
|
|
1749
1799
|
onCommand,
|
|
1750
1800
|
});
|
|
1801
|
+
// Goal Seek — scratch-evaluates through the calculator, commits via onChange
|
|
1802
|
+
const onGoalSeek = useOnGoalSeek({
|
|
1803
|
+
getFormulaValue,
|
|
1804
|
+
getEffectiveValue,
|
|
1805
|
+
onRequestCalculate: onRequestCalculateWithoutFormatting,
|
|
1806
|
+
getDependents,
|
|
1807
|
+
onChange,
|
|
1808
|
+
});
|
|
1809
|
+
// Data → Subtotal (outline of SUBTOTAL rows) over the row/write/group callbacks
|
|
1810
|
+
const onSubtotal = useOnSubtotal({
|
|
1811
|
+
getEffectiveValue,
|
|
1812
|
+
getFormattedValue,
|
|
1813
|
+
getFormulaValue,
|
|
1814
|
+
getRowOutlineLevel,
|
|
1815
|
+
onDeleteRow,
|
|
1816
|
+
onInsertRow,
|
|
1817
|
+
onChangeBatch,
|
|
1818
|
+
onGroupRows,
|
|
1819
|
+
onUngroupRows,
|
|
1820
|
+
});
|
|
1821
|
+
// Data → Advanced filter (criteria range) over the hide/show/write callbacks
|
|
1822
|
+
const onAdvancedFilter = useOnAdvancedFilter({
|
|
1823
|
+
getEffectiveValue,
|
|
1824
|
+
getFormattedValue,
|
|
1825
|
+
onHideRow,
|
|
1826
|
+
onShowRow,
|
|
1827
|
+
onChangeBatch,
|
|
1828
|
+
});
|
|
1751
1829
|
// Trace dependents and precedents
|
|
1752
1830
|
const { arrows, onRemoveArrows, onTraceDependents, onTracePrecedents } = useOnTraceDependentsPrecedents({
|
|
1753
1831
|
getDependents,
|
|
@@ -1767,6 +1845,7 @@ sanitizeHtml, }) => {
|
|
|
1767
1845
|
locale,
|
|
1768
1846
|
});
|
|
1769
1847
|
return {
|
|
1848
|
+
namedCellStyles,
|
|
1770
1849
|
activeCellBySheetId,
|
|
1771
1850
|
selectionsBySheetId,
|
|
1772
1851
|
activeCell,
|
|
@@ -1983,6 +2062,10 @@ sanitizeHtml, }) => {
|
|
|
1983
2062
|
onSplitTextToColumns,
|
|
1984
2063
|
// Remove duplicates
|
|
1985
2064
|
onRemoveDuplicates,
|
|
2065
|
+
// Data tools
|
|
2066
|
+
onGoalSeek,
|
|
2067
|
+
onSubtotal,
|
|
2068
|
+
onAdvancedFilter,
|
|
1986
2069
|
// Add rows
|
|
1987
2070
|
onRequestAddRows,
|
|
1988
2071
|
// 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,6 +1,6 @@
|
|
|
1
1
|
import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
|
|
2
|
-
import type { CellData, SelectionAttributes, Sheet } from "@rowsncolumns/spreadsheet";
|
|
3
|
-
import type
|
|
2
|
+
import type { CellData, FillOptions, SelectionAttributes, Sheet } from "@rowsncolumns/spreadsheet";
|
|
3
|
+
import { type AutoFillType } from "../api/fill";
|
|
4
4
|
import type { UseOnFillProps } from "../hooks/use-on-fill";
|
|
5
|
-
export declare const applyFill: <T extends CellData, S extends Sheet>({ locale, cellXfsRegistry, sharedStringRegistry, getDataValidationById, getCellData, getEffectiveValue, getFormattedValue, getAutoFillValues, getSheetName, enqueueCalculation, enqueueStructureChange, onChangeSheetData, createHistory, onChangeDataValidations, }: UseOnFillProps<T, S>) => (sheetId: number, activeCell: CellInterface, fillSelection: SelectionArea, selections: SelectionArea<SelectionAttributes>[], fillableSelections?: SelectionArea<SelectionAttributes>[], fillType?: AutoFillType) => Promise<void>;
|
|
5
|
+
export declare const applyFill: <T extends CellData, S extends Sheet>({ locale, cellXfsRegistry, sharedStringRegistry, getDataValidationById, getCellData, getEffectiveValue, getFormattedValue, getAutoFillValues, getSheetName, enqueueCalculation, enqueueStructureChange, onChangeSheetData, createHistory, onChangeDataValidations, getMerges, onFillMerges, }: UseOnFillProps<T, S>) => (sheetId: number, activeCell: CellInterface, fillSelection: SelectionArea, selections: SelectionArea<SelectionAttributes>[], fillableSelections?: SelectionArea<SelectionAttributes>[], fillType?: AutoFillType, options?: FillOptions) => Promise<void>;
|
|
6
6
|
//# sourceMappingURL=apply-fill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-fill.d.ts","sourceRoot":"","sources":["../../../interface/apply-fill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"apply-fill.d.ts","sourceRoot":"","sources":["../../../interface/apply-fill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,aAAa,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAW3D,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,+RAiB5D,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,MAGnB,SAAS,MAAM,EAEf,YAAY,aAAa,EAEzB,eAAe,aAAa,EAE5B,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,EAChD,qBAAqB,aAAa,CAAC,mBAAmB,CAAC,EAAE,EAEzD,WAAW,YAAY,EAEvB,UAAU,WAAW,kBA+SxB,CAAC"}
|