@rowsncolumns/spreadsheet-state 28.0.72 → 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 +2 -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/paste-special.d.ts +48 -0
- package/dist/cjs/api/paste-special.d.ts.map +1 -0
- package/dist/cjs/api/paste-special.js +229 -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 +13 -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/components/editors/table-editor.js +7 -2
- package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation-worker.js +39 -8
- package/dist/cjs/hooks/use-calculation.d.ts +12 -2
- package/dist/cjs/hooks/use-calculation.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation.js +71 -35
- 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-paste.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-paste.js +82 -52
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +2 -1
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -3
- package/dist/cjs/hooks/use-on-show-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-show-column.js +2 -0
- package/dist/cjs/hooks/use-on-show-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-show-row.js +2 -0
- 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 +3 -0
- package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/cjs/hooks/use-sheet-properties.js +8 -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 +98 -18
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +9 -0
- package/dist/cjs/interface/calculation-interface.d.ts.map +1 -1
- package/dist/cjs/interface/calculation-interface.js +5 -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/hide-column.d.ts.map +1 -1
- package/dist/cjs/interface/hide-column.js +4 -0
- package/dist/cjs/interface/hide-row.d.ts.map +1 -1
- package/dist/cjs/interface/hide-row.js +4 -0
- package/dist/cjs/interface/remove-duplicates.d.ts +3 -2
- package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/interface/remove-duplicates.js +41 -7
- 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 +2 -1
- package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/cjs/interface/spreadsheet-interface.js +5 -5
- 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 +2 -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/paste-special.d.ts +48 -0
- package/dist/esm/api/paste-special.d.ts.map +1 -0
- package/dist/esm/api/paste-special.js +220 -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 +13 -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/components/editors/table-editor.js +7 -4
- package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation-worker.js +20 -2
- package/dist/esm/hooks/use-calculation.d.ts +12 -2
- package/dist/esm/hooks/use-calculation.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation.js +38 -7
- 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-paste.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-paste.js +49 -14
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts +2 -1
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-remove-duplicates.js +5 -3
- package/dist/esm/hooks/use-on-show-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-show-column.js +2 -0
- package/dist/esm/hooks/use-on-show-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-show-row.js +2 -0
- 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 +3 -0
- package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/esm/hooks/use-sheet-properties.js +8 -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 +89 -16
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +9 -0
- package/dist/esm/interface/calculation-interface.d.ts.map +1 -1
- package/dist/esm/interface/calculation-interface.js +3 -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/hide-column.d.ts.map +1 -1
- package/dist/esm/interface/hide-column.js +4 -0
- package/dist/esm/interface/hide-row.d.ts.map +1 -1
- package/dist/esm/interface/hide-row.js +4 -0
- package/dist/esm/interface/remove-duplicates.d.ts +3 -2
- package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/esm/interface/remove-duplicates.js +37 -6
- 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 +2 -1
- package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/esm/interface/spreadsheet-interface.js +5 -5
- 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
|
@@ -3,6 +3,7 @@ import { isCellNode } from "@rowsncolumns/dag";
|
|
|
3
3
|
import { isCellWithinBounds } from "@rowsncolumns/grid";
|
|
4
4
|
import { createNewSheet, DEFAULT_COLUMN_COUNT, DEFAULT_ROW_COUNT, useGetCellDimensions, useGetColumnWidth, useGetContentfulRangeAroundCell, useGetEffectiveValuesFromRange, useGetRowHeight, } from "@rowsncolumns/spreadsheet";
|
|
5
5
|
import { useFonts } from "@rowsncolumns/spreadsheet";
|
|
6
|
+
import { getBandedCells } from "@rowsncolumns/spreadsheet";
|
|
6
7
|
import { defaultSpreadsheetTheme, useCallbackRef, useSpreadsheetTheme, } from "@rowsncolumns/spreadsheet";
|
|
7
8
|
import { findMatchingBandProperty, getCurrentLocale, isNil, setDefaultEnableAtFormula, uuid, } from "@rowsncolumns/utils";
|
|
8
9
|
import { enableMapSet, enablePatches, setUseStrictShallowCopy } from "immer";
|
|
@@ -121,6 +122,9 @@ import { useSheetDataSubscriber } from "./use-sheetdata-subscriber";
|
|
|
121
122
|
import { useSplitTextToColumns } from "./use-split-text-to-columns";
|
|
122
123
|
import { useOnLocaleChange } from "./use-on-locale-change";
|
|
123
124
|
import { useOnRemoveDuplicates } from "./use-on-remove-duplicates";
|
|
125
|
+
import { useOnGoalSeek } from "./use-on-goal-seek";
|
|
126
|
+
import { useOnSubtotal } from "./use-on-subtotal";
|
|
127
|
+
import { useOnAdvancedFilter } from "./use-on-advanced-filter";
|
|
124
128
|
import { useSharedStringRegistry } from "./use-ss-registry";
|
|
125
129
|
import { useStructuredReference } from "./use-structured-reference";
|
|
126
130
|
import { useUndoRedo } from "./use-undo-redo";
|
|
@@ -206,7 +210,7 @@ export var useSpreadsheetState = function (_a) {
|
|
|
206
210
|
// Semantic command stream
|
|
207
211
|
onCommandProp = _a.onCommand,
|
|
208
212
|
// Theme
|
|
209
|
-
onChangeTheme = _a.onChangeTheme,
|
|
213
|
+
onChangeTheme = _a.onChangeTheme, namedCellStyles = _a.namedCellStyles, onChangeNamedCellStyles = _a.onChangeNamedCellStyles,
|
|
210
214
|
// error handler
|
|
211
215
|
onError = _a.onError,
|
|
212
216
|
// Get auto fill values
|
|
@@ -424,7 +428,7 @@ export var useSpreadsheetState = function (_a) {
|
|
|
424
428
|
sharedStrings: sharedStrings,
|
|
425
429
|
locale: locale,
|
|
426
430
|
getPrecedents: getPrecedentsForward,
|
|
427
|
-
}), getDataRowCount = _s.getDataRowCount, getNonEmptyRowCount = _s.getNonEmptyRowCount, getNonEmptyColumnCount = _s.getNonEmptyColumnCount, getDataColumnCount = _s.getDataColumnCount, getSheetId = _s.getSheetId, getSheetName = _s.getSheetName, getSheetCount = _s.getSheetCount, getSheetIndex = _s.getSheetIndex, getSheetProperties = _s.getSheetProperties, getCellData = _s.getCellData, getMentionsFromCell = _s.getMentionsFromCell, getTextFormatRuns = _s.getTextFormatRuns, getEffectiveValue = _s.getEffectiveValue, getEffectiveValueForCalculation = _s.getEffectiveValueForCalculation, getUserEnteredValue = _s.getUserEnteredValue, getUserEnteredValueStable = _s.getUserEnteredValueStable, getConditionalFormatFormula = _s.getConditionalFormatFormula, getDataValidationFormula = _s.getDataValidationFormula, getDataValidation = _s.getDataValidation, getDefaultHorizontalAlignment = _s.getDefaultHorizontalAlignment, getDataValidationById = _s.getDataValidationById, getActiveSheetId = _s.getActiveSheetId, getUserEnteredFormat = _s.getUserEnteredFormat, getEffectiveFormat = _s.getEffectiveFormat, getFormattedValue = _s.getFormattedValue, getSeriesValuesFromRange = _s.getSeriesValuesFromRange, getFormattingFromRange = _s.getFormattingFromRange, getUserEnteredValuesFromRange = _s.getUserEnteredValuesFromRange, getFormulasFromRange = _s.getFormulasFromRange, getDomainValuesFromRange = _s.getDomainValuesFromRange, getColumnarDataFromRange = _s.getColumnarDataFromRange, isColumnHidden = _s.isColumnHidden, isHiddenRow = _s.isHiddenRow, isHiddenByFilterRow = _s.isHiddenByFilterRow, getSheetRowCount = _s.getSheetRowCount, getSheetColumnCount = _s.getSheetColumnCount, getColumnWidth = _s.getColumnWidth, getRowHeight = _s.getRowHeight, getEffectiveExtendedValue = _s.getEffectiveExtendedValue, getUserEnteredExtendedValue = _s.getUserEnteredExtendedValue, getFrozenRowCount = _s.getFrozenRowCount, getErrorValue = _s.getErrorValue;
|
|
431
|
+
}), getDataRowCount = _s.getDataRowCount, getNonEmptyRowCount = _s.getNonEmptyRowCount, getNonEmptyColumnCount = _s.getNonEmptyColumnCount, getDataColumnCount = _s.getDataColumnCount, getSheetId = _s.getSheetId, getSheetName = _s.getSheetName, getSheetCount = _s.getSheetCount, getSheetIndex = _s.getSheetIndex, getSheetNames = _s.getSheetNames, getSheetProperties = _s.getSheetProperties, getCellData = _s.getCellData, getMentionsFromCell = _s.getMentionsFromCell, getTextFormatRuns = _s.getTextFormatRuns, getEffectiveValue = _s.getEffectiveValue, getEffectiveValueForCalculation = _s.getEffectiveValueForCalculation, getUserEnteredValue = _s.getUserEnteredValue, getUserEnteredValueStable = _s.getUserEnteredValueStable, getConditionalFormatFormula = _s.getConditionalFormatFormula, getDataValidationFormula = _s.getDataValidationFormula, getDataValidation = _s.getDataValidation, getDefaultHorizontalAlignment = _s.getDefaultHorizontalAlignment, getDataValidationById = _s.getDataValidationById, getActiveSheetId = _s.getActiveSheetId, getUserEnteredFormat = _s.getUserEnteredFormat, getEffectiveFormat = _s.getEffectiveFormat, getFormattedValue = _s.getFormattedValue, getFormulaValue = _s.getFormulaValue, getSeriesValuesFromRange = _s.getSeriesValuesFromRange, getFormattingFromRange = _s.getFormattingFromRange, getUserEnteredValuesFromRange = _s.getUserEnteredValuesFromRange, getFormulasFromRange = _s.getFormulasFromRange, getDomainValuesFromRange = _s.getDomainValuesFromRange, getColumnarDataFromRange = _s.getColumnarDataFromRange, isColumnHidden = _s.isColumnHidden, isHiddenRow = _s.isHiddenRow, isHiddenByFilterRow = _s.isHiddenByFilterRow, getRowOutlineLevel = _s.getRowOutlineLevel, getSheetRowCount = _s.getSheetRowCount, getSheetColumnCount = _s.getSheetColumnCount, getColumnWidth = _s.getColumnWidth, getRowHeight = _s.getRowHeight, getEffectiveExtendedValue = _s.getEffectiveExtendedValue, getUserEnteredExtendedValue = _s.getUserEnteredExtendedValue, getFrozenRowCount = _s.getFrozenRowCount, getErrorValue = _s.getErrorValue;
|
|
428
432
|
// Subscriber
|
|
429
433
|
useSheetDataSubscriber({ sheetData: sheetData });
|
|
430
434
|
var _t = useSelectNextPrevSheet({
|
|
@@ -524,6 +528,7 @@ export var useSpreadsheetState = function (_a) {
|
|
|
524
528
|
getEffectiveValue: getEffectiveValueForCalculation,
|
|
525
529
|
activeSheetId: activeSheetId,
|
|
526
530
|
getSheetIndex: getSheetIndex,
|
|
531
|
+
getSheetNames: getSheetNames,
|
|
527
532
|
getUserEnteredValue: getUserEnteredValueStable,
|
|
528
533
|
getConditionalFormatFormula: getConditionalFormatFormula,
|
|
529
534
|
getDataValidationFormula: getDataValidationFormula,
|
|
@@ -910,12 +915,66 @@ export var useSpreadsheetState = function (_a) {
|
|
|
910
915
|
getRowHeight: getCurrentRowHeight,
|
|
911
916
|
onCommand: onCommand,
|
|
912
917
|
}), onChangeFormatting = _0.onChangeFormatting, onChangeBorder = _0.onChangeBorder, onRepeatFormatting = _0.onRepeatFormatting;
|
|
913
|
-
//
|
|
914
|
-
var _1 =
|
|
918
|
+
// Merge unmerge
|
|
919
|
+
var _1 = useOnMergeUnMergeCells({
|
|
920
|
+
locale: locale,
|
|
921
|
+
merges: merges,
|
|
922
|
+
cellXfsRegistry: cellXfsRegistry,
|
|
923
|
+
sharedStringRegistry: sharedStringRegistry,
|
|
924
|
+
onChangeSelections: onChangeSelections,
|
|
925
|
+
createHistory: createHistory,
|
|
926
|
+
onChangeSheets: onChangeSheets,
|
|
927
|
+
onChangeSheetData: onChangeSheetData,
|
|
928
|
+
enqueueCalculation: enqueueCalculation,
|
|
929
|
+
onCommand: onCommand,
|
|
930
|
+
}), onMergeCells = _1.onMergeCells, onUnMergeCells = _1.onUnMergeCells;
|
|
931
|
+
// Paint formatting — carries the visible look of the source: effective formats layered over
|
|
932
|
+
// table banding (as static fills), plus the merges inside the source block, tiled onto the
|
|
933
|
+
// target (issue #620 — Google Sheets parity).
|
|
934
|
+
var getPaintMerges = useCallback(function (sheetId) { var _a; return (_a = sheets.find(function (s) { return s.sheetId === sheetId; })) === null || _a === void 0 ? void 0 : _a.merges; }, [sheets]);
|
|
935
|
+
var getPaintBandedCells = useCallback(function (sheetId) {
|
|
936
|
+
var e_2, _a;
|
|
937
|
+
var _b;
|
|
938
|
+
var bands = [];
|
|
939
|
+
try {
|
|
940
|
+
for (var _c = __values(tables !== null && tables !== void 0 ? tables : []), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
941
|
+
var table = _d.value;
|
|
942
|
+
if (table.sheetId !== sheetId)
|
|
943
|
+
continue;
|
|
944
|
+
var banded = (_b = table.bandedRange) !== null && _b !== void 0 ? _b : deriveBuiltInTableBanding(table);
|
|
945
|
+
if (isNil(banded))
|
|
946
|
+
continue;
|
|
947
|
+
bands.push(__assign({ bandedRangeId: "".concat(table.id, "-").concat(table.theme), range: __assign(__assign({}, table.range), { sheetId: sheetId }) }, banded));
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
951
|
+
finally {
|
|
952
|
+
try {
|
|
953
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
954
|
+
}
|
|
955
|
+
finally { if (e_2) throw e_2.error; }
|
|
956
|
+
}
|
|
957
|
+
if (!bands.length)
|
|
958
|
+
return undefined;
|
|
959
|
+
return getBandedCells(bands, theme, sheetId, function (rowIndex) { return isHiddenRow(sheetId, rowIndex); }, function (columnIndex) { return isColumnHidden(sheetId, columnIndex); });
|
|
960
|
+
}, [tables, theme, isHiddenRow, isColumnHidden]);
|
|
961
|
+
var onPaintMerges = useCallback(function (sheetId, activeCell, targetRange, paintedMerges) {
|
|
962
|
+
// The target's own merges give way to the pattern's (the painter replaces the look).
|
|
963
|
+
onUnMergeCells(sheetId, activeCell, [{ range: targetRange }]);
|
|
964
|
+
if (paintedMerges.length) {
|
|
965
|
+
onMergeCells(sheetId, activeCell, paintedMerges.map(function (range) { return ({ range: range }); }));
|
|
966
|
+
}
|
|
967
|
+
// `onMergeCells` clears the selection; the painted target stays selected like Excel.
|
|
968
|
+
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(sheetId, [{ range: targetRange }]);
|
|
969
|
+
}, [onUnMergeCells, onMergeCells, onChangeSelections]);
|
|
970
|
+
var _2 = usePaintFormat({
|
|
915
971
|
onChangeSelections: onChangeSelections,
|
|
916
972
|
onChangeFormatting: onChangeFormatting,
|
|
917
973
|
getEffectiveFormat: getEffectiveFormat,
|
|
918
|
-
|
|
974
|
+
getMerges: getPaintMerges,
|
|
975
|
+
onPaintMerges: onPaintMerges,
|
|
976
|
+
getBandedCells: getPaintBandedCells,
|
|
977
|
+
}), isPaintFormatActive = _2.isPaintFormatActive, paintFormat = _2.paintFormat, onApplyPaintFormat = _2.onApplyPaintFormat, onSavePaintFormat = _2.onSavePaintFormat;
|
|
919
978
|
// Selection interceptor
|
|
920
979
|
// for paint format
|
|
921
980
|
var onChangeSelectionsInterceptor = useCallback(function (sheetId, selections, finishedSelection) {
|
|
@@ -946,19 +1005,6 @@ export var useSpreadsheetState = function (_a) {
|
|
|
946
1005
|
conditionalFormats: conditionalFormats,
|
|
947
1006
|
onChangeConditionalFormats: onChangeConditionalFormats,
|
|
948
1007
|
});
|
|
949
|
-
// Merge unmerge
|
|
950
|
-
var _2 = useOnMergeUnMergeCells({
|
|
951
|
-
locale: locale,
|
|
952
|
-
merges: merges,
|
|
953
|
-
cellXfsRegistry: cellXfsRegistry,
|
|
954
|
-
sharedStringRegistry: sharedStringRegistry,
|
|
955
|
-
onChangeSelections: onChangeSelections,
|
|
956
|
-
createHistory: createHistory,
|
|
957
|
-
onChangeSheets: onChangeSheets,
|
|
958
|
-
onChangeSheetData: onChangeSheetData,
|
|
959
|
-
enqueueCalculation: enqueueCalculation,
|
|
960
|
-
onCommand: onCommand,
|
|
961
|
-
}), onMergeCells = _2.onMergeCells, onUnMergeCells = _2.onUnMergeCells;
|
|
962
1008
|
// Resize
|
|
963
1009
|
var onResize = useOnResize({
|
|
964
1010
|
onChangeSheets: onChangeSheets,
|
|
@@ -1689,6 +1735,7 @@ export var useSpreadsheetState = function (_a) {
|
|
|
1689
1735
|
onChangeDataValidations: onChangeDataValidations,
|
|
1690
1736
|
onCreateDataValidationRule: onCreateDataValidationRule,
|
|
1691
1737
|
onChangeTheme: onChangeTheme,
|
|
1738
|
+
onChangeNamedCellStyles: onChangeNamedCellStyles,
|
|
1692
1739
|
onClearHistory: onClearHistory,
|
|
1693
1740
|
evaluateConditionalFormatting: evaluateConditionalFormatting,
|
|
1694
1741
|
evaluateDataValidations: evaluateDataValidations,
|
|
@@ -1775,6 +1822,34 @@ export var useSpreadsheetState = function (_a) {
|
|
|
1775
1822
|
getFormattedValue: getFormattedValue,
|
|
1776
1823
|
onCommand: onCommand,
|
|
1777
1824
|
});
|
|
1825
|
+
// Goal Seek — scratch-evaluates through the calculator, commits via onChange
|
|
1826
|
+
var onGoalSeek = useOnGoalSeek({
|
|
1827
|
+
getFormulaValue: getFormulaValue,
|
|
1828
|
+
getEffectiveValue: getEffectiveValue,
|
|
1829
|
+
onRequestCalculate: onRequestCalculateWithoutFormatting,
|
|
1830
|
+
getDependents: getDependents,
|
|
1831
|
+
onChange: onChange,
|
|
1832
|
+
});
|
|
1833
|
+
// Data → Subtotal (outline of SUBTOTAL rows) over the row/write/group callbacks
|
|
1834
|
+
var onSubtotal = useOnSubtotal({
|
|
1835
|
+
getEffectiveValue: getEffectiveValue,
|
|
1836
|
+
getFormattedValue: getFormattedValue,
|
|
1837
|
+
getFormulaValue: getFormulaValue,
|
|
1838
|
+
getRowOutlineLevel: getRowOutlineLevel,
|
|
1839
|
+
onDeleteRow: onDeleteRow,
|
|
1840
|
+
onInsertRow: onInsertRow,
|
|
1841
|
+
onChangeBatch: onChangeBatch,
|
|
1842
|
+
onGroupRows: onGroupRows,
|
|
1843
|
+
onUngroupRows: onUngroupRows,
|
|
1844
|
+
});
|
|
1845
|
+
// Data → Advanced filter (criteria range) over the hide/show/write callbacks
|
|
1846
|
+
var onAdvancedFilter = useOnAdvancedFilter({
|
|
1847
|
+
getEffectiveValue: getEffectiveValue,
|
|
1848
|
+
getFormattedValue: getFormattedValue,
|
|
1849
|
+
onHideRow: onHideRow,
|
|
1850
|
+
onShowRow: onShowRow,
|
|
1851
|
+
onChangeBatch: onChangeBatch,
|
|
1852
|
+
});
|
|
1778
1853
|
// Trace dependents and precedents
|
|
1779
1854
|
var _16 = useOnTraceDependentsPrecedents({
|
|
1780
1855
|
getDependents: getDependents,
|
|
@@ -1794,6 +1869,7 @@ export var useSpreadsheetState = function (_a) {
|
|
|
1794
1869
|
locale: locale,
|
|
1795
1870
|
}), onCreateCitation = _18.onCreateCitation, onUpdateCitation = _18.onUpdateCitation, onRemoveCitationFromCell = _18.onRemoveCitationFromCell, onDeleteCitation = _18.onDeleteCitation;
|
|
1796
1871
|
return {
|
|
1872
|
+
namedCellStyles: namedCellStyles,
|
|
1797
1873
|
activeCellBySheetId: activeCellBySheetId,
|
|
1798
1874
|
selectionsBySheetId: selectionsBySheetId,
|
|
1799
1875
|
activeCell: activeCell,
|
|
@@ -2010,6 +2086,10 @@ export var useSpreadsheetState = function (_a) {
|
|
|
2010
2086
|
onSplitTextToColumns: onSplitTextToColumns,
|
|
2011
2087
|
// Remove duplicates
|
|
2012
2088
|
onRemoveDuplicates: onRemoveDuplicates,
|
|
2089
|
+
// Data tools
|
|
2090
|
+
onGoalSeek: onGoalSeek,
|
|
2091
|
+
onSubtotal: onSubtotal,
|
|
2092
|
+
onAdvancedFilter: onAdvancedFilter,
|
|
2013
2093
|
// Add rows
|
|
2014
2094
|
onRequestAddRows: onRequestAddRows,
|
|
2015
2095
|
// Dependents
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./generated-names";
|
|
|
2
2
|
export * from "./hooks/use-spreadsheet-state";
|
|
3
3
|
export * from "./hooks/use-on-copy";
|
|
4
4
|
export { generateDataFromClipboard, pickFormatting, pickFormula, pickValue, transpose, } from "./api/copy-paste";
|
|
5
|
+
export { applyPasteOperation, isBlankClipboardCell, normalizePasteSpecialOptions, PASTE_SPECIAL_OPTIONS_KEY, PASTE_SPECIAL_TYPE_KEY, resolvePasteSpecialOptions, type ResolvedPasteSpecialOptions, } from "./api/paste-special";
|
|
5
6
|
export * from "./hooks/use-calculation";
|
|
6
7
|
export * from "./hooks/use-on-change-batch-stream";
|
|
7
8
|
export * from "./hooks/use-on-trace-dependents-precedents";
|
|
@@ -28,6 +29,14 @@ export * from "./hooks/use-cellxfs-registry";
|
|
|
28
29
|
export * from "./hooks/use-ss-registry";
|
|
29
30
|
export * from "./hooks/use-sheet-properties";
|
|
30
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";
|
|
31
40
|
export * from "./hooks/use-on-locale-change";
|
|
32
41
|
export * from "./hooks/use-on-request-resize";
|
|
33
42
|
export * from "./hooks/use-on-request-edit-table";
|
package/dist/cjs/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,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/cjs/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./generated-names";
|
|
|
2
2
|
export * from "./hooks/use-spreadsheet-state";
|
|
3
3
|
export * from "./hooks/use-on-copy";
|
|
4
4
|
export { generateDataFromClipboard, pickFormatting, pickFormula, pickValue, transpose, } from "./api/copy-paste";
|
|
5
|
+
export { applyPasteOperation, isBlankClipboardCell, normalizePasteSpecialOptions, PASTE_SPECIAL_OPTIONS_KEY, PASTE_SPECIAL_TYPE_KEY, resolvePasteSpecialOptions, } from "./api/paste-special";
|
|
5
6
|
export * from "./hooks/use-calculation";
|
|
6
7
|
export * from "./hooks/use-on-change-batch-stream";
|
|
7
8
|
export * from "./hooks/use-on-trace-dependents-precedents";
|
|
@@ -28,6 +29,14 @@ export * from "./hooks/use-cellxfs-registry";
|
|
|
28
29
|
export * from "./hooks/use-ss-registry";
|
|
29
30
|
export * from "./hooks/use-sheet-properties";
|
|
30
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";
|
|
31
40
|
export * from "./hooks/use-on-locale-change";
|
|
32
41
|
// Dialog-opener hooks external engine chrome bridges to (they write the payload
|
|
33
42
|
// atoms the dialog hosts read; nothing else exports them).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculation-interface.d.ts","sourceRoot":"","sources":["../../../interface/calculation-interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"calculation-interface.d.ts","sourceRoot":"","sources":["../../../interface/calculation-interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAEL,KAAK,oBAAoB,EAS1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,UAAU,EACV,2BAA2B,EAC3B,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,iBAAiB;IACzB,UAAU,CAAC,EAAE,UAAU;CACxB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC;IACzC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAClD,SAAS,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,SAAS,IAAI,SAAS,EAAE,CAAC;IACzB,cAAc,IAAI,UAAU,EAAE,CAAC;IAC/B,wBAAwB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;IACvE,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,oBAAoB,CAAC;IACxB,2BAA2B,CAAC,CAC1B,eAAe,EAAE,gBAAgB,EACjC,QAAQ,CAAC,EAAE,MAAM,gBAAgB,GAChC,oBAAoB,GAAG,SAAS,CAAC;IACpC,SAAS,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC;IACnD,kBAAkB,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;CACzD,CAAC;AA2EF,qBAAa,oBAAoB;IAWnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,qBAAqB,CAAM;IACnC,OAAO,CAAC,YAAY,CAAoC;gBAE3B,OAAO,EAAE,2BAA2B;IAsDjE,kBAAkB,GAAI,WAAW,oBAAoB,UAEnD;IAEF,qBAAqB,GAAI,WAAW,oBAAoB,UAEtD;IAEF,sBAAsB,GAAI,SAAS,eAAe,UAGhD;IAEF,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,mBAAmB;IAI1D,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,mBAAmB;IAI1D,QAAQ;IAIR,eAAe,CAAC,OAAO,EAAE,MAAM;IAI/B,iBAAiB,aAEf;IAEI,KAAK;IAcL,gBAAgB;IAehB,SAAS,CAAC,UAAU,EAAE,oBAAoB,EAAE;IAOlD,YAAY,CAAC,UAAU,EAAE,oBAAoB,EAAE;IAqB/C,OAAO;IAIP,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;YAOhB,oBAAoB;IAelC,OAAO,CAAC,mBAAmB;YAcb,iBAAiB;IA0C/B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,YAAY;CAuDrB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import { resolveSheetSpan } from "@rowsncolumns/utils";
|
|
2
3
|
import { CalculationGraph, CalculationWorkerClient, createNamedRangeResolver, createStructuredReferenceResolver, enqueueCalculationOperations, mapOperationToGraphOperation, } from "@rowsncolumns/calculation-worker/server";
|
|
3
4
|
import { FormulaError } from "@rowsncolumns/fast-formula-parser";
|
|
4
5
|
var isSerializedFormulaError = function (value) {
|
|
@@ -115,6 +116,10 @@ var CalculationInterface = /** @class */ (function () {
|
|
|
115
116
|
depParserConfig: {
|
|
116
117
|
onStructuredReference: structuredReferenceResolver,
|
|
117
118
|
onVariable: namedRangeResolver,
|
|
119
|
+
// 3-D references depend on every sheet between the two endpoints
|
|
120
|
+
onSheetRange: function (first, last) {
|
|
121
|
+
return resolveSheetSpan(options.getSheets().map(function (sheet) { return sheet.title; }), first, last);
|
|
122
|
+
},
|
|
118
123
|
},
|
|
119
124
|
iterativeCalculation: options.iterativeCalculation,
|
|
120
125
|
});
|
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
import { __asyncValues, __awaiter, __generator, __read, __values } from "tslib";
|
|
2
2
|
import { makeKey } from "@rowsncolumns/dag";
|
|
3
|
-
import { isNil } from "@rowsncolumns/utils";
|
|
3
|
+
import { alignmentImpliesWrap, isNil } from "@rowsncolumns/utils";
|
|
4
4
|
import { produce } from "immer";
|
|
5
5
|
import { createSheetDraft } from "../api/immer-utils";
|
|
6
6
|
import { SheetCell } from "../sheet-cell";
|
|
@@ -268,7 +268,9 @@ export var changeBatchStream = function (_a) {
|
|
|
268
268
|
if (cellStyles) {
|
|
269
269
|
cellXfsRegistry === null || cellXfsRegistry === void 0 ? void 0 : cellXfsRegistry.registerCellXfs(sheetCell);
|
|
270
270
|
if (shouldUpdateRowHeights &&
|
|
271
|
-
(cellStyles.textFormat ||
|
|
271
|
+
(cellStyles.textFormat ||
|
|
272
|
+
cellStyles.wrapStrategy ||
|
|
273
|
+
alignmentImpliesWrap(cellStyles.horizontalAlignment))) {
|
|
272
274
|
var rowUpdates = (_c = rowStyleUpdates.get(position.rowIndex)) !== null && _c !== void 0 ? _c : [];
|
|
273
275
|
rowUpdates.push({
|
|
274
276
|
columnIndex: position.columnIndex,
|
|
@@ -321,7 +323,9 @@ export var changeBatchStream = function (_a) {
|
|
|
321
323
|
var update = updates_1_1.value;
|
|
322
324
|
var cellStyles = update.cellStyles;
|
|
323
325
|
if (!cellStyles ||
|
|
324
|
-
(!cellStyles.textFormat &&
|
|
326
|
+
(!cellStyles.textFormat &&
|
|
327
|
+
!cellStyles.wrapStrategy &&
|
|
328
|
+
!alignmentImpliesWrap(cellStyles.horizontalAlignment))) {
|
|
325
329
|
continue;
|
|
326
330
|
}
|
|
327
331
|
if ((isMergedCell === null || isMergedCell === void 0 ? void 0 : isMergedCell(sheetId, rowIndex, update.columnIndex)) ===
|
|
@@ -331,9 +335,11 @@ export var changeBatchStream = function (_a) {
|
|
|
331
335
|
var formattedValue = !isNil(update.overrideValue) && update.overrideValue !== ""
|
|
332
336
|
? String(update.overrideValue)
|
|
333
337
|
: getFormattedValue === null || getFormattedValue === void 0 ? void 0 : getFormattedValue(sheetId, rowIndex, update.columnIndex);
|
|
334
|
-
var shouldWrap = cellStyles.
|
|
335
|
-
?
|
|
336
|
-
:
|
|
338
|
+
var shouldWrap = alignmentImpliesWrap(cellStyles.horizontalAlignment)
|
|
339
|
+
? true
|
|
340
|
+
: cellStyles.wrapStrategy
|
|
341
|
+
? cellStyles.wrapStrategy === "wrap"
|
|
342
|
+
: undefined;
|
|
337
343
|
var fontSize = (_d = cellStyles.textFormat) === null || _d === void 0 ? void 0 : _d.fontSize;
|
|
338
344
|
var newCellDimension = getCellDimensions(sheetId, rowIndex, update.columnIndex, "x", {
|
|
339
345
|
textOverride: formattedValue !== null && formattedValue !== void 0 ? 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,6 +1,6 @@
|
|
|
1
1
|
import { __read, __values } from "tslib";
|
|
2
2
|
import { DEFAULT_COLUMN_COUNT, DEFAULT_ROW_COUNT, MAX_COLUMN_COUNT, MAX_ROW_COUNT, } from "@rowsncolumns/utils";
|
|
3
|
-
import { isNil } from "@rowsncolumns/utils";
|
|
3
|
+
import { alignmentImpliesWrap, isNil } from "@rowsncolumns/utils";
|
|
4
4
|
import { produceWithPatches } from "immer";
|
|
5
5
|
import { createSheetCellIdentifier } from "../api/formula";
|
|
6
6
|
import { createSheetDraft } from "../api/immer-utils";
|
|
@@ -195,15 +195,22 @@ export var changeBatch = function (_a) {
|
|
|
195
195
|
cellXfsRegistry === null || cellXfsRegistry === void 0 ? void 0 : cellXfsRegistry.getPatches(saveHistory);
|
|
196
196
|
// Save shared strings patches
|
|
197
197
|
sharedStringRegistry === null || sharedStringRegistry === void 0 ? void 0 : sharedStringRegistry.getPatches(saveHistory);
|
|
198
|
-
// Update row heights when text format or wrapping changes
|
|
198
|
+
// Update row heights when text format or wrapping changes (Excel's
|
|
199
|
+
// justify / distributed alignments wrap implicitly)
|
|
200
|
+
var affectsRowHeight = function (cellFormat) {
|
|
201
|
+
return !!cellFormat &&
|
|
202
|
+
!!(cellFormat.textFormat ||
|
|
203
|
+
cellFormat.wrapStrategy ||
|
|
204
|
+
alignmentImpliesWrap(cellFormat.horizontalAlignment));
|
|
205
|
+
};
|
|
199
206
|
var shouldUpdateRowHeights = false;
|
|
200
207
|
if (Array.isArray(formatting)) {
|
|
201
208
|
shouldUpdateRowHeights = formatting.some(function (row) {
|
|
202
|
-
return row.some(function (cellFormat) { return (cellFormat
|
|
209
|
+
return row.some(function (cellFormat) { return affectsRowHeight(cellFormat); });
|
|
203
210
|
});
|
|
204
211
|
}
|
|
205
212
|
else {
|
|
206
|
-
shouldUpdateRowHeights =
|
|
213
|
+
shouldUpdateRowHeights = affectsRowHeight(formatting);
|
|
207
214
|
}
|
|
208
215
|
if (shouldUpdateRowHeights) {
|
|
209
216
|
onChangeSheets(function (prevSheets) {
|
|
@@ -243,8 +250,7 @@ export var changeBatch = function (_a) {
|
|
|
243
250
|
var cellFormat = Array.isArray(formatting)
|
|
244
251
|
? formatting[rollingRowIndex][rollingColumnIndex]
|
|
245
252
|
: formatting;
|
|
246
|
-
if (!cellFormat
|
|
247
|
-
(!cellFormat.textFormat && !cellFormat.wrapStrategy)) {
|
|
253
|
+
if (!affectsRowHeight(cellFormat)) {
|
|
248
254
|
rollingColumnIndex++;
|
|
249
255
|
continue;
|
|
250
256
|
}
|
|
@@ -254,9 +260,11 @@ export var changeBatch = function (_a) {
|
|
|
254
260
|
var formattedValue = !isNil(overrideValue) && overrideValue !== ""
|
|
255
261
|
? String(overrideValue)
|
|
256
262
|
: getFormattedValue === null || getFormattedValue === void 0 ? void 0 : getFormattedValue(sheetId, rowIndex, columnIndex);
|
|
257
|
-
var shouldWrap = cellFormat.
|
|
258
|
-
?
|
|
259
|
-
:
|
|
263
|
+
var shouldWrap = alignmentImpliesWrap(cellFormat.horizontalAlignment)
|
|
264
|
+
? true
|
|
265
|
+
: cellFormat.wrapStrategy
|
|
266
|
+
? cellFormat.wrapStrategy === "wrap"
|
|
267
|
+
: undefined;
|
|
260
268
|
var fontSize = (_e = cellFormat.textFormat) === null || _e === void 0 ? void 0 : _e.fontSize;
|
|
261
269
|
var newCellDimension = getCellDimensions === null || getCellDimensions === void 0 ? void 0 : getCellDimensions(sheetId, rowIndex, columnIndex, "x", {
|
|
262
270
|
textOverride: formattedValue !== null && formattedValue !== void 0 ? 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"}
|
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
import { __read, __values } from "tslib";
|
|
2
|
-
import { isNil } from "@rowsncolumns/utils";
|
|
2
|
+
import { alignmentImpliesWrap, isNil } from "@rowsncolumns/utils";
|
|
3
3
|
import { produceWithPatches } from "immer";
|
|
4
4
|
import { createSheetDraft } from "../api/immer-utils";
|
|
5
5
|
import { SheetCell } from "../sheet-cell";
|
|
6
|
+
/**
|
|
7
|
+
* Text format, wrap strategy and Excel's implicitly wrapping alignments
|
|
8
|
+
* (justify / distributed) all change how tall a row needs to be.
|
|
9
|
+
*/
|
|
10
|
+
var affectsRowHeight = function (cellFormat) {
|
|
11
|
+
return !!cellFormat &&
|
|
12
|
+
!!(cellFormat.textFormat ||
|
|
13
|
+
cellFormat.wrapStrategy ||
|
|
14
|
+
alignmentImpliesWrap(cellFormat.horizontalAlignment));
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* `shouldWrapOverride` for the row measurement: the format being applied
|
|
18
|
+
* decides when it says anything about wrapping, otherwise the cell's stored
|
|
19
|
+
* format does (`undefined`).
|
|
20
|
+
*/
|
|
21
|
+
var wrapOverrideFor = function (cellFormat) {
|
|
22
|
+
if (alignmentImpliesWrap(cellFormat.horizontalAlignment))
|
|
23
|
+
return true;
|
|
24
|
+
return cellFormat.wrapStrategy
|
|
25
|
+
? cellFormat.wrapStrategy === "wrap"
|
|
26
|
+
: undefined;
|
|
27
|
+
};
|
|
6
28
|
export var changeFormatting = function (_a) {
|
|
7
29
|
var createHistory = _a.createHistory, getFormattedValue = _a.getFormattedValue, isMergedCell = _a.isMergedCell, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, getRowHeight = _a.getRowHeight, getCellDimensions = _a.getCellDimensions, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, getDataValidationById = _a.getDataValidationById;
|
|
8
30
|
return function () {
|
|
@@ -125,16 +147,16 @@ export var changeFormatting = function (_a) {
|
|
|
125
147
|
// Update row heights
|
|
126
148
|
// When text format and wrap changes,
|
|
127
149
|
// we have to resize the cells
|
|
128
|
-
// Check if any cellFormat has textFormat or
|
|
150
|
+
// Check if any cellFormat has textFormat, wrapStrategy or an alignment
|
|
151
|
+
// that wraps implicitly (Excel justify / distributed)
|
|
129
152
|
var shouldUpdateRowHeights = false;
|
|
130
153
|
if (Array.isArray(cellFormatOrCellFormatArray)) {
|
|
131
154
|
shouldUpdateRowHeights = cellFormatOrCellFormatArray.some(function (row) {
|
|
132
|
-
return row.some(function (cellFormat) { return (cellFormat
|
|
155
|
+
return row.some(function (cellFormat) { return affectsRowHeight(cellFormat); });
|
|
133
156
|
});
|
|
134
157
|
}
|
|
135
158
|
else {
|
|
136
|
-
shouldUpdateRowHeights =
|
|
137
|
-
(cellFormatOrCellFormatArray === null || cellFormatOrCellFormatArray === void 0 ? void 0 : cellFormatOrCellFormatArray.wrapStrategy));
|
|
159
|
+
shouldUpdateRowHeights = affectsRowHeight(cellFormatOrCellFormatArray);
|
|
138
160
|
}
|
|
139
161
|
if (shouldUpdateRowHeights) {
|
|
140
162
|
onChangeSheets(function (prevSheets) {
|
|
@@ -171,9 +193,8 @@ export var changeFormatting = function (_a) {
|
|
|
171
193
|
var cellFormat = Array.isArray(cellFormatOrCellFormatArray)
|
|
172
194
|
? cellFormatOrCellFormatArray[rollingRowIndex][rollingColumnIndex]
|
|
173
195
|
: cellFormatOrCellFormatArray;
|
|
174
|
-
// Skip if no cellFormat or
|
|
175
|
-
if (!cellFormat
|
|
176
|
-
(!cellFormat.textFormat && !cellFormat.wrapStrategy)) {
|
|
196
|
+
// Skip if no cellFormat or nothing that changes the height
|
|
197
|
+
if (!affectsRowHeight(cellFormat)) {
|
|
177
198
|
rollingColumnIndex++;
|
|
178
199
|
continue;
|
|
179
200
|
}
|
|
@@ -184,9 +205,7 @@ export var changeFormatting = function (_a) {
|
|
|
184
205
|
continue;
|
|
185
206
|
}
|
|
186
207
|
var formattedValue = getFormattedValue === null || getFormattedValue === void 0 ? void 0 : getFormattedValue(sheetId, rowIndex, columnIndex);
|
|
187
|
-
var shouldWrap = cellFormat
|
|
188
|
-
? cellFormat.wrapStrategy === "wrap"
|
|
189
|
-
: undefined;
|
|
208
|
+
var shouldWrap = wrapOverrideFor(cellFormat);
|
|
190
209
|
var fontSize = (_d = cellFormat.textFormat) === null || _d === void 0 ? void 0 : _d.fontSize;
|
|
191
210
|
var newCellDimension = getCellDimensions === null || getCellDimensions === void 0 ? void 0 : getCellDimensions(sheetId, rowIndex, columnIndex, "x", {
|
|
192
211
|
textOverride: formattedValue !== null && formattedValue !== void 0 ? formattedValue : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hide-column.d.ts","sourceRoot":"","sources":["../../../interface/hide-column.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAGR,KAAK,EACN,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,uJAU9D,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,MACnB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"hide-column.d.ts","sourceRoot":"","sources":["../../../interface/hide-column.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAGR,KAAK,EACN,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,uJAU9D,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,MACnB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,SA4EjD,CAAC"}
|
|
@@ -5,6 +5,10 @@ export var hideColumns = function (_a) {
|
|
|
5
5
|
var getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, onChangeActiveCell = _a.onChangeActiveCell, onChangeSelections = _a.onChangeSelections, onChangeSheets = _a.onChangeSheets, createHistory = _a.createHistory, rowCount = _a.rowCount, columnCount = _a.columnCount, getNextFocusableCell = _a.getNextFocusableCell;
|
|
6
6
|
return function (sheetId, columnIndexes) {
|
|
7
7
|
var _a;
|
|
8
|
+
// Nothing to hide: the next active cell / selection below would be
|
|
9
|
+
// computed from undefined bounds and land on NaN.
|
|
10
|
+
if (columnIndexes.length === 0)
|
|
11
|
+
return;
|
|
8
12
|
var saveHistory = createHistory();
|
|
9
13
|
var sortedColumnIndexes = __spreadArray([], __read(columnIndexes), false).sort(function (a, b) { return a - b; });
|
|
10
14
|
var firstColumnIndex = sortedColumnIndexes[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hide-row.d.ts","sourceRoot":"","sources":["../../../interface/hide-row.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAER,KAAK,EACN,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAC1D,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,MAcrB,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"hide-row.d.ts","sourceRoot":"","sources":["../../../interface/hide-row.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAER,KAAK,EACN,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAC1D,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,MAcrB,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,SAiE9C,CAAC"}
|
|
@@ -5,6 +5,10 @@ export var hideRows = function (deps) {
|
|
|
5
5
|
var getActiveCell = deps.getActiveCell, getSelections = deps.getSelections, onChangeActiveCell = deps.onChangeActiveCell, onChangeSelections = deps.onChangeSelections, onChangeSheets = deps.onChangeSheets, createHistory = deps.createHistory, columnCount = deps.columnCount, rowCount = deps.rowCount, getNextFocusableCell = deps.getNextFocusableCell;
|
|
6
6
|
return function (sheetId, rowIndexes) {
|
|
7
7
|
var _a;
|
|
8
|
+
// Nothing to hide: the next active cell / selection below would be
|
|
9
|
+
// computed from undefined bounds and land on NaN.
|
|
10
|
+
if (rowIndexes.length === 0)
|
|
11
|
+
return;
|
|
8
12
|
var saveHistory = createHistory();
|
|
9
13
|
var sortedRowIndexes = __spreadArray([], __read(rowIndexes), false).sort(function (a, b) { return a - b; });
|
|
10
14
|
var firstRowIndex = sortedRowIndexes[0];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
|
|
2
|
-
import type { CellData, SelectionAttributes } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
import type { CellData, RemoveDuplicatesOptions, SelectionAttributes } from "@rowsncolumns/spreadsheet";
|
|
3
3
|
import type { UseOnRemoveDuplicatesProps } from "../hooks/use-on-remove-duplicates";
|
|
4
4
|
export type RemoveDuplicatesResult = {
|
|
5
5
|
/** Number of duplicate rows found and removed */
|
|
@@ -7,5 +7,6 @@ export type RemoveDuplicatesResult = {
|
|
|
7
7
|
/** Number of unique rows that remain */
|
|
8
8
|
uniqueRemaining: number;
|
|
9
9
|
};
|
|
10
|
-
export
|
|
10
|
+
export type { RemoveDuplicatesOptions };
|
|
11
|
+
export declare const removeDuplicates: <T extends CellData>({ getFormattedValue, onChangeSheetData, enqueueCalculation, createHistory, }: UseOnRemoveDuplicatesProps<T>) => (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[], options?: RemoveDuplicatesOptions) => RemoveDuplicatesResult;
|
|
11
12
|
//# sourceMappingURL=remove-duplicates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-duplicates.d.ts","sourceRoot":"","sources":["../../../interface/remove-duplicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"remove-duplicates.d.ts","sourceRoot":"","sources":["../../../interface/remove-duplicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,QAAQ,EACR,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAGpF,MAAM,MAAM,sBAAsB,GAAG;IACnC,iDAAiD;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,YAAY,EAAE,uBAAuB,EAAE,CAAC;AAiCxC,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,8EAKlD,0BAA0B,CAAC,CAAC,CAAC,MAE5B,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,aAAa,aAAa,CAAC,mBAAmB,CAAC,EAAE,EACjD,UAAU,uBAAuB,KAChC,sBAyKJ,CAAC"}
|