@rowsncolumns/spreadsheet-state 28.0.74 → 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/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/immer-utils.d.ts.map +1 -1
- package/dist/cjs/api/immer-utils.js +20 -15
- package/dist/cjs/api/intl.d.ts.map +1 -1
- package/dist/cjs/api/paint-format.d.ts +15 -1
- package/dist/cjs/api/paint-format.d.ts.map +1 -1
- package/dist/cjs/api/paint-format.js +69 -10
- package/dist/cjs/commands.d.ts +11 -1
- package/dist/cjs/commands.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation.d.ts +1 -1
- 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-paint-format.d.ts.map +1 -1
- package/dist/cjs/hooks/use-paint-format.js +10 -7
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.js +12 -1
- 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/spreadsheet-interface.d.ts +1 -1
- package/dist/cjs/sheet-cell.d.ts.map +1 -1
- package/dist/cjs/sheet-cell.js +30 -6
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- 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/immer-utils.d.ts.map +1 -1
- package/dist/esm/api/immer-utils.js +20 -15
- package/dist/esm/api/intl.d.ts.map +1 -1
- package/dist/esm/api/paint-format.d.ts +15 -1
- package/dist/esm/api/paint-format.d.ts.map +1 -1
- package/dist/esm/api/paint-format.js +46 -1
- package/dist/esm/commands.d.ts +11 -1
- package/dist/esm/commands.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation.d.ts +1 -1
- 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-paint-format.d.ts.map +1 -1
- package/dist/esm/hooks/use-paint-format.js +10 -7
- package/dist/esm/hooks/use-spreadsheet-state.d.ts +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.js +12 -1
- 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/spreadsheet-interface.d.ts +1 -1
- package/dist/esm/sheet-cell.d.ts.map +1 -1
- package/dist/esm/sheet-cell.js +30 -6
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +10 -10
|
@@ -1033,7 +1033,16 @@ export var useSpreadsheetState = function (_a) {
|
|
|
1033
1033
|
var _a;
|
|
1034
1034
|
return rawGetAutoFillValues(__assign(__assign({}, props), { customAutofillLists: (_a = props.customAutofillLists) !== null && _a !== void 0 ? _a : customAutofillLists }));
|
|
1035
1035
|
}, [rawGetAutoFillValues, customAutofillLists]);
|
|
1036
|
-
// Fill
|
|
1036
|
+
// Fill. A merged seed lands one merged block per target block (Excel replicates the merge
|
|
1037
|
+
// shape); the target's own merges give way, and the snapped fill extent stays selected.
|
|
1038
|
+
var onFillMerges = useCallback(function (sheetId, activeCell, clearRange, fillMerges, selectRange) {
|
|
1039
|
+
onUnMergeCells(sheetId, activeCell, [{ range: clearRange }]);
|
|
1040
|
+
if (fillMerges.length) {
|
|
1041
|
+
onMergeCells(sheetId, activeCell, fillMerges.map(function (range) { return ({ range: range }); }));
|
|
1042
|
+
}
|
|
1043
|
+
// `onMergeCells` clears the selection; the filled range stays selected like Excel.
|
|
1044
|
+
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(sheetId, [{ range: selectRange }]);
|
|
1045
|
+
}, [onUnMergeCells, onMergeCells, onChangeSelections]);
|
|
1037
1046
|
var onFill = useOnFill({
|
|
1038
1047
|
locale: locale,
|
|
1039
1048
|
cellXfsRegistry: cellXfsRegistry,
|
|
@@ -1050,6 +1059,8 @@ export var useSpreadsheetState = function (_a) {
|
|
|
1050
1059
|
onChangeDataValidations: onChangeDataValidations,
|
|
1051
1060
|
createHistory: createHistory,
|
|
1052
1061
|
onCommand: onCommand,
|
|
1062
|
+
getMerges: getPaintMerges,
|
|
1063
|
+
onFillMerges: onFillMerges,
|
|
1053
1064
|
});
|
|
1054
1065
|
// Delete row
|
|
1055
1066
|
var onDeleteRow = useOnDeleteRow({
|
|
@@ -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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { __awaiter, __generator, __read } from "tslib";
|
|
1
|
+
import { __assign, __awaiter, __generator, __read, __values } from "tslib";
|
|
2
2
|
import { Direction } from "@rowsncolumns/common-types";
|
|
3
3
|
import { selectionFromActiveCell } from "@rowsncolumns/utils";
|
|
4
4
|
import { produceWithPatches } from "immer";
|
|
5
|
+
import { FILL_UNTOUCHED } from "../api/fill";
|
|
5
6
|
import { createSheetCellIdentifier } from "../api/formula";
|
|
6
7
|
import { createSheetDraft } from "../api/immer-utils";
|
|
7
8
|
import { defaultCellCoords, defaultSheetId, SheetCell } from "../sheet-cell";
|
|
8
9
|
import { getFillDirection } from "./../api/selection";
|
|
9
10
|
import { collectDataValidationTarget, extendDataValidationRanges, } from "./data-validation-utils";
|
|
10
11
|
export var applyFill = function (_a) {
|
|
11
|
-
var locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDataValidationById = _a.getDataValidationById, getCellData = _a.getCellData, getEffectiveValue = _a.getEffectiveValue, getFormattedValue = _a.getFormattedValue, getAutoFillValues = _a.getAutoFillValues, getSheetName = _a.getSheetName, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, createHistory = _a.createHistory, onChangeDataValidations = _a.onChangeDataValidations;
|
|
12
|
+
var locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDataValidationById = _a.getDataValidationById, getCellData = _a.getCellData, getEffectiveValue = _a.getEffectiveValue, getFormattedValue = _a.getFormattedValue, getAutoFillValues = _a.getAutoFillValues, getSheetName = _a.getSheetName, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, createHistory = _a.createHistory, onChangeDataValidations = _a.onChangeDataValidations, getMerges = _a.getMerges, onFillMerges = _a.onFillMerges;
|
|
12
13
|
return function (
|
|
13
14
|
// Active sheet ID
|
|
14
15
|
sheetId,
|
|
@@ -19,10 +20,13 @@ export var applyFill = function (_a) {
|
|
|
19
20
|
// Current selections of the user
|
|
20
21
|
selections, fillableSelections,
|
|
21
22
|
// Fill type - if not specified, will auto-detect
|
|
22
|
-
fillType
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
fillType,
|
|
24
|
+
// Ctrl/Cmd toggle held on the fill handle and/or Series-dialog parameters
|
|
25
|
+
options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
26
|
+
var finalSelections, selection, saveHistory, fillBounds, direction, recalcCells, dataValidationTargets, fillValues, targetBounds, filledArea, sheetCell, getFillValue, writeCell, writeFilledCell, fillMerges;
|
|
27
|
+
var _a;
|
|
28
|
+
return __generator(this, function (_b) {
|
|
29
|
+
switch (_b.label) {
|
|
26
30
|
case 0:
|
|
27
31
|
finalSelections = selections.length
|
|
28
32
|
? selections
|
|
@@ -45,13 +49,47 @@ export var applyFill = function (_a) {
|
|
|
45
49
|
locale: locale,
|
|
46
50
|
cellXfsRegistry: cellXfsRegistry,
|
|
47
51
|
getDataValidationById: getDataValidationById,
|
|
48
|
-
|
|
52
|
+
merges: getMerges === null || getMerges === void 0 ? void 0 : getMerges(sheetId),
|
|
53
|
+
fillType: fillType !== null && fillType !== void 0 ? fillType : options === null || options === void 0 ? void 0 : options.fillType,
|
|
54
|
+
modifier: options === null || options === void 0 ? void 0 : options.modifier,
|
|
55
|
+
series: options === null || options === void 0 ? void 0 : options.series,
|
|
49
56
|
})];
|
|
50
57
|
case 1:
|
|
51
|
-
fillValues =
|
|
58
|
+
fillValues = _b.sent();
|
|
59
|
+
targetBounds = (_a = fillValues.snappedFillBounds) !== null && _a !== void 0 ? _a : fillBounds;
|
|
60
|
+
filledArea = direction === Direction.Down
|
|
61
|
+
? {
|
|
62
|
+
startRowIndex: selection.range.endRowIndex + 1,
|
|
63
|
+
endRowIndex: targetBounds.endRowIndex,
|
|
64
|
+
startColumnIndex: selection.range.startColumnIndex,
|
|
65
|
+
endColumnIndex: selection.range.endColumnIndex,
|
|
66
|
+
}
|
|
67
|
+
: direction === Direction.Up
|
|
68
|
+
? {
|
|
69
|
+
startRowIndex: targetBounds.startRowIndex,
|
|
70
|
+
endRowIndex: selection.range.startRowIndex - 1,
|
|
71
|
+
startColumnIndex: selection.range.startColumnIndex,
|
|
72
|
+
endColumnIndex: selection.range.endColumnIndex,
|
|
73
|
+
}
|
|
74
|
+
: direction === Direction.Right
|
|
75
|
+
? {
|
|
76
|
+
startRowIndex: selection.range.startRowIndex,
|
|
77
|
+
endRowIndex: selection.range.endRowIndex,
|
|
78
|
+
startColumnIndex: selection.range.endColumnIndex + 1,
|
|
79
|
+
endColumnIndex: targetBounds.endColumnIndex,
|
|
80
|
+
}
|
|
81
|
+
: {
|
|
82
|
+
startRowIndex: selection.range.startRowIndex,
|
|
83
|
+
endRowIndex: selection.range.endRowIndex,
|
|
84
|
+
startColumnIndex: targetBounds.startColumnIndex,
|
|
85
|
+
endColumnIndex: selection.range.startColumnIndex - 1,
|
|
86
|
+
};
|
|
52
87
|
sheetCell = new SheetCell(defaultSheetId, defaultCellCoords, undefined, { locale: locale, cellXfsRegistry: cellXfsRegistry, getDataValidationById: getDataValidationById });
|
|
53
88
|
getFillValue = function (rowIndex, columnIndex) {
|
|
54
|
-
var
|
|
89
|
+
var _a;
|
|
90
|
+
var fillValue = (_a = fillValues[rowIndex]) === null || _a === void 0 ? void 0 : _a[columnIndex];
|
|
91
|
+
if (fillValue === FILL_UNTOUCHED)
|
|
92
|
+
return FILL_UNTOUCHED;
|
|
55
93
|
if (typeof fillValue !== "object") {
|
|
56
94
|
sheetCell.setUserEnteredValue(fillValue);
|
|
57
95
|
sharedStringRegistry === null || sharedStringRegistry === void 0 ? void 0 : sharedStringRegistry.registerCell(sheetCell);
|
|
@@ -60,6 +98,28 @@ export var applyFill = function (_a) {
|
|
|
60
98
|
}
|
|
61
99
|
return fillValue;
|
|
62
100
|
};
|
|
101
|
+
writeCell = function (draft, rowIndex, columnIndex, cellData) {
|
|
102
|
+
var newSheet = createSheetDraft(draft, sheetId, rowIndex);
|
|
103
|
+
newSheet[rowIndex].values[columnIndex] = cellData;
|
|
104
|
+
collectDataValidationTarget(dataValidationTargets, sheetId, rowIndex, columnIndex, cellData);
|
|
105
|
+
enqueueCalculation({
|
|
106
|
+
position: { rowIndex: rowIndex, columnIndex: columnIndex, sheetId: sheetId },
|
|
107
|
+
type: "add",
|
|
108
|
+
force: true,
|
|
109
|
+
});
|
|
110
|
+
recalcCells.set(createSheetCellIdentifier(sheetId, rowIndex, columnIndex), {
|
|
111
|
+
rowIndex: rowIndex,
|
|
112
|
+
columnIndex: columnIndex,
|
|
113
|
+
sheetId: sheetId,
|
|
114
|
+
force: true,
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
writeFilledCell = function (draft, rowIndex, columnIndex, rollingRowIndex, rollingColumnIndex) {
|
|
118
|
+
var cellData = getFillValue(rollingRowIndex, rollingColumnIndex);
|
|
119
|
+
if (cellData === FILL_UNTOUCHED)
|
|
120
|
+
return;
|
|
121
|
+
writeCell(draft, rowIndex, columnIndex, cellData);
|
|
122
|
+
};
|
|
63
123
|
// Fill writes through `onChangeSheetData` directly. The calculator
|
|
64
124
|
// only invalidates `rangeCache` for cells it recomputes, so the
|
|
65
125
|
// freshly-filled positions stay cached until we tell it otherwise.
|
|
@@ -76,10 +136,12 @@ export var applyFill = function (_a) {
|
|
|
76
136
|
// Copy sheetdata
|
|
77
137
|
onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
|
|
78
138
|
var _a = __read(produceWithPatches(prevSheetData, function (draft) {
|
|
139
|
+
var e_1, _a;
|
|
140
|
+
var _b;
|
|
79
141
|
switch (direction) {
|
|
80
142
|
case Direction.Down: {
|
|
81
143
|
var start = selection.range.endRowIndex + 1;
|
|
82
|
-
var end =
|
|
144
|
+
var end = targetBounds.endRowIndex;
|
|
83
145
|
var counter = 0;
|
|
84
146
|
for (var i = start; i <= end; i++) {
|
|
85
147
|
var rowIndex = selection.range.startRowIndex + counter;
|
|
@@ -90,16 +152,7 @@ export var applyFill = function (_a) {
|
|
|
90
152
|
var rollingRowIndex = i - start;
|
|
91
153
|
for (var columnIndex = selection.range.startColumnIndex; columnIndex <= selection.range.endColumnIndex; columnIndex++) {
|
|
92
154
|
var rollingColumnIndex = columnIndex - selection.range.startColumnIndex;
|
|
93
|
-
|
|
94
|
-
var newCellData = getFillValue(rollingRowIndex, rollingColumnIndex);
|
|
95
|
-
newSheet[i].values[columnIndex] = newCellData;
|
|
96
|
-
collectDataValidationTarget(dataValidationTargets, sheetId, i, columnIndex, newCellData);
|
|
97
|
-
enqueueCalculation({
|
|
98
|
-
position: { rowIndex: i, columnIndex: columnIndex, sheetId: sheetId },
|
|
99
|
-
type: "add",
|
|
100
|
-
force: true,
|
|
101
|
-
});
|
|
102
|
-
recalcCells.set(createSheetCellIdentifier(sheetId, i, columnIndex), { rowIndex: i, columnIndex: columnIndex, sheetId: sheetId, force: true });
|
|
155
|
+
writeFilledCell(draft, i, columnIndex, rollingRowIndex, rollingColumnIndex);
|
|
103
156
|
}
|
|
104
157
|
counter++;
|
|
105
158
|
}
|
|
@@ -107,20 +160,12 @@ export var applyFill = function (_a) {
|
|
|
107
160
|
}
|
|
108
161
|
case Direction.Up: {
|
|
109
162
|
var start = selection.range.startRowIndex - 1;
|
|
110
|
-
var end =
|
|
163
|
+
var end = targetBounds.startRowIndex;
|
|
111
164
|
for (var i = start; i >= end; i--) {
|
|
112
|
-
var rollingRowIndex = i -
|
|
165
|
+
var rollingRowIndex = i - targetBounds.startRowIndex;
|
|
113
166
|
for (var columnIndex = selection.range.startColumnIndex; columnIndex <= selection.range.endColumnIndex; columnIndex++) {
|
|
114
167
|
var rollingColumnIndex = columnIndex - selection.range.startColumnIndex;
|
|
115
|
-
|
|
116
|
-
newSheet[i].values[columnIndex] = getFillValue(rollingRowIndex, rollingColumnIndex);
|
|
117
|
-
collectDataValidationTarget(dataValidationTargets, sheetId, i, columnIndex, newSheet[i].values[columnIndex]);
|
|
118
|
-
enqueueCalculation({
|
|
119
|
-
position: { rowIndex: i, columnIndex: columnIndex, sheetId: sheetId },
|
|
120
|
-
type: "add",
|
|
121
|
-
force: true,
|
|
122
|
-
});
|
|
123
|
-
recalcCells.set(createSheetCellIdentifier(sheetId, i, columnIndex), { rowIndex: i, columnIndex: columnIndex, sheetId: sheetId, force: true });
|
|
168
|
+
writeFilledCell(draft, i, columnIndex, rollingRowIndex, rollingColumnIndex);
|
|
124
169
|
}
|
|
125
170
|
}
|
|
126
171
|
break;
|
|
@@ -128,7 +173,7 @@ export var applyFill = function (_a) {
|
|
|
128
173
|
case Direction.Right: {
|
|
129
174
|
for (var rowIndex = selection.range.startRowIndex; rowIndex <= selection.range.endRowIndex; rowIndex++) {
|
|
130
175
|
var start = selection.range.endColumnIndex + 1;
|
|
131
|
-
var end =
|
|
176
|
+
var end = targetBounds.endColumnIndex;
|
|
132
177
|
var counter = 0;
|
|
133
178
|
var rollingRowIndex = rowIndex - selection.range.startRowIndex;
|
|
134
179
|
for (var j = start; j <= end; j++) {
|
|
@@ -138,15 +183,7 @@ export var applyFill = function (_a) {
|
|
|
138
183
|
columnIndex = selection.range.startColumnIndex;
|
|
139
184
|
}
|
|
140
185
|
var rollingColumnIndex = j - start;
|
|
141
|
-
|
|
142
|
-
newSheet[rowIndex].values[j] = getFillValue(rollingRowIndex, rollingColumnIndex);
|
|
143
|
-
collectDataValidationTarget(dataValidationTargets, sheetId, rowIndex, j, newSheet[rowIndex].values[j]);
|
|
144
|
-
enqueueCalculation({
|
|
145
|
-
position: { rowIndex: rowIndex, columnIndex: j, sheetId: sheetId },
|
|
146
|
-
type: "add",
|
|
147
|
-
force: true,
|
|
148
|
-
});
|
|
149
|
-
recalcCells.set(createSheetCellIdentifier(sheetId, rowIndex, j), { rowIndex: rowIndex, columnIndex: j, sheetId: sheetId, force: true });
|
|
186
|
+
writeFilledCell(draft, rowIndex, j, rollingRowIndex, rollingColumnIndex);
|
|
150
187
|
counter++;
|
|
151
188
|
}
|
|
152
189
|
}
|
|
@@ -155,7 +192,7 @@ export var applyFill = function (_a) {
|
|
|
155
192
|
case Direction.Left: {
|
|
156
193
|
for (var rowIndex = selection.range.startRowIndex; rowIndex <= selection.range.endRowIndex; rowIndex++) {
|
|
157
194
|
var start = selection.range.startColumnIndex - 1;
|
|
158
|
-
var end =
|
|
195
|
+
var end = targetBounds.startColumnIndex;
|
|
159
196
|
var rollingRowIndex = rowIndex - selection.range.startRowIndex;
|
|
160
197
|
var counter = 0;
|
|
161
198
|
for (var j = start; j >= end; j--) {
|
|
@@ -164,22 +201,28 @@ export var applyFill = function (_a) {
|
|
|
164
201
|
counter = 0;
|
|
165
202
|
columnIndex = selection.range.endColumnIndex;
|
|
166
203
|
}
|
|
167
|
-
var rollingColumnIndex = j -
|
|
168
|
-
|
|
169
|
-
newSheet[rowIndex].values[j] = getFillValue(rollingRowIndex, rollingColumnIndex);
|
|
170
|
-
collectDataValidationTarget(dataValidationTargets, sheetId, rowIndex, j, newSheet[rowIndex].values[j]);
|
|
171
|
-
enqueueCalculation({
|
|
172
|
-
position: { rowIndex: rowIndex, columnIndex: j, sheetId: sheetId },
|
|
173
|
-
type: "add",
|
|
174
|
-
force: true,
|
|
175
|
-
});
|
|
176
|
-
recalcCells.set(createSheetCellIdentifier(sheetId, rowIndex, j), { rowIndex: rowIndex, columnIndex: j, sheetId: sheetId, force: true });
|
|
204
|
+
var rollingColumnIndex = j - targetBounds.startColumnIndex;
|
|
205
|
+
writeFilledCell(draft, rowIndex, j, rollingRowIndex, rollingColumnIndex);
|
|
177
206
|
counter--;
|
|
178
207
|
}
|
|
179
208
|
}
|
|
180
209
|
break;
|
|
181
210
|
}
|
|
182
211
|
}
|
|
212
|
+
try {
|
|
213
|
+
// Series-dialog Trend: the seed cells Excel replaces with the fitted values.
|
|
214
|
+
for (var _c = __values((_b = fillValues.seedCells) !== null && _b !== void 0 ? _b : []), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
215
|
+
var seed = _d.value;
|
|
216
|
+
writeCell(draft, seed.rowIndex, seed.columnIndex, seed.cell);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
220
|
+
finally {
|
|
221
|
+
try {
|
|
222
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
223
|
+
}
|
|
224
|
+
finally { if (e_1) throw e_1.error; }
|
|
225
|
+
}
|
|
183
226
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
184
227
|
// Save history
|
|
185
228
|
saveHistory({
|
|
@@ -189,13 +232,17 @@ export var applyFill = function (_a) {
|
|
|
189
232
|
activeCell: { undo: activeCell, redo: activeCell },
|
|
190
233
|
selections: {
|
|
191
234
|
undo: fillableSelections !== null && fillableSelections !== void 0 ? fillableSelections : selections,
|
|
192
|
-
redo: [fillSelection],
|
|
235
|
+
redo: [__assign(__assign({}, fillSelection), { range: targetBounds })],
|
|
193
236
|
},
|
|
194
237
|
});
|
|
195
238
|
extendDataValidationRanges(dataValidationTargets, onChangeDataValidations, saveHistory);
|
|
196
239
|
sharedStringRegistry === null || sharedStringRegistry === void 0 ? void 0 : sharedStringRegistry.getPatches(saveHistory);
|
|
197
240
|
return nextState;
|
|
198
241
|
});
|
|
242
|
+
fillMerges = fillValues.fillMerges;
|
|
243
|
+
if (fillMerges === null || fillMerges === void 0 ? void 0 : fillMerges.length) {
|
|
244
|
+
onFillMerges === null || onFillMerges === void 0 ? void 0 : onFillMerges(sheetId, activeCell, filledArea, fillMerges, targetBounds);
|
|
245
|
+
}
|
|
199
246
|
return [2 /*return*/];
|
|
200
247
|
}
|
|
201
248
|
});
|
|
@@ -212,7 +212,7 @@ export declare class Spreadsheet<T extends CellData = CellData, S extends Sheet
|
|
|
212
212
|
* @param variableName
|
|
213
213
|
* @returns
|
|
214
214
|
*/
|
|
215
|
-
getSelectionFromNamedRange: (variableName: string) => string | number | boolean | import("@rowsncolumns/common-types").HyperlinkResult | import("@rowsncolumns/common-types").SparkLineResult | import("@rowsncolumns/common-types").ImageResult | import("@rowsncolumns/common-types").ExtensibleStructuredResult |
|
|
215
|
+
getSelectionFromNamedRange: (variableName: string) => string | number | boolean | Date | import("@rowsncolumns/common-types").HyperlinkResult | import("@rowsncolumns/common-types").SparkLineResult | import("@rowsncolumns/common-types").ImageResult | import("@rowsncolumns/common-types").ExtensibleStructuredResult | FormulaError | import("@rowsncolumns/fast-formula-parser").FormulaResultArray | import("@rowsncolumns/fast-formula-parser").RecursiveFormula | import("@rowsncolumns/calculator").DataSource | {
|
|
216
216
|
range: SheetRange;
|
|
217
217
|
sheetName: string | undefined;
|
|
218
218
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet-cell.d.ts","sourceRoot":"","sources":["../../sheet-cell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,SAAS,EACT,cAAc,EACf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EACV,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2BtD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAuBnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sheet-cell.d.ts","sourceRoot":"","sources":["../../sheet-cell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,SAAS,EACT,cAAc,EACf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EACV,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2BtD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAuBnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAUvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,iBAAiB,EAAE,aAA+C,CAAC;AAEhF,KAAK,gBAAgB,GAAG;IACtB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,cAAc,EAAE,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,qBAAqB,CAAC,EAAE,CACtB,EAAE,EAAE,wBAAwB,CAAC,IAAI,CAAC,KAC/B,wBAAwB,GAAG,SAAS,CAAC;CAC3C,CAAC;AAGF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,cAAc,CAEhE;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,eAAe,CAAC;AAsF1C,qBAAa,SAAS,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IAClD,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAmC;IACtE,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAS;IAC9C,OAAO,EAAG,MAAM,CAAC;IACjB,MAAM,EAAG,aAAa,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC;IACnD,cAAc,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAChD,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1C,cAAc,EAAE,aAAa,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IACnD,iBAAiB,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD,gBAAgB,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,kBAAkB,EAAE,wBAAwB,GAAG,SAAS,GAAG,kBAAkB,CAAC;IAC9E,+BAA+B,EAC3B,CAAC,CAAC,iCAAiC,CAAC,GACpC,SAAS,CAAC;IACd,oBAAoB,EAAE,CAAC,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;IAC5D,cAAc,EAAG,MAAM,CAAC;IACxB,YAAY,EAAG,MAAM,CAAC;IACtB,SAAS,EAAG,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,cAAc,EAAE,CAAC;IACvD,MAAM,EAAG,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAG,OAAO,GAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,OAAO,GAAG,SAAS,CAAC;IACtC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1C,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;IAC7C,oBAAoB,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACvD,aAAa,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC;IAChD,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/C,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,yBAAyB,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1E,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAQpC,iBAAiB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC5D,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAGtC,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI;IAGnE,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,OAAO;gBAI/C,OAAO,GAAE,MAAuB,EAChC,MAAM,GAAE,aAAiC,EACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,EAC1C,OAAO,CAAC,EAAE,gBAAgB;IAM5B,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM;IAIzB,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO;IAI5B,MAAM,CACJ,OAAO,GAAE,MAAuB,EAChC,MAAM,GAAE,aAAiC,EACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,EAC1C,OAAO,CAAC,EAAE,gBAAgB,GACzB,IAAI;IAsGP,IAAI,GAAG,WAMN;IAED,mBAAmB;IAOnB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAInC,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIlE,oBAAoB;IAIpB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS;IAI/C,eAAe;IAIf,MAAM,CAAC,eAAe,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM;IAQrB;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE;QACvB,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B;IAyED,uBAAuB;IAKvB;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,IAAI;IAOpE,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAUpD,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAUlD,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAU1D,UAAU;IAOV,WAAW;IAIX,IAAI,OAAO,uBAEV;IAED,IAAI,KAAK,QAER;IAED;;;;;;;;;;;;;;;OAeG;IACH,IAAI,uBAAuB,IAAI,OAAO,CAwCrC;IAED,MAAM,CAAC,kBAAkB,CACvB,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,aAAa,EACjB,eAAe,SAAK,EACpB,cAAc,CAAC,EAAE,SAAS,EAC1B,cAAc,UAAQ,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,OAAO;IAc7B,WAAW,CACT,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,aAAa,EACjB,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,iCAAiC;IAqE7C,SAAS;IAIT,4BAA4B;IAK5B,SAAS;IAKT,OAAO;IAIP,YAAY,CAAC,CAAC,SAAS,gBAAgB,EACrC,OAAO,EAAE,CAAC,GAAG,SAAS,GACrB,OAAO,IAAI,CAAC;IAWf,cAAc,CAAC,KAAK,SAAI;IA6DxB,gBAAgB;IAGhB,gBAAgB;IAIhB,SAAS,CAAC,QAAQ,EAAE,MAAM,OAAO,EAAE,MAAM,EAAE,MAAM;IAuBjD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,OAAO,EAAE,MAAM,EAAE,MAAM;IAuB5D,aAAa,CAAC,MAAM,EAAE,MAAM;IAc5B,eAAe;IAMf,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAOzB,WAAW;IAIX;;;OAGG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAIlD,mBAAmB,CACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,EAC1D,cAAc,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,EACvC,OAAO,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE;IAmI9C,OAAO,CAAC,qBAAqB;IAUtB,6BAA6B;IAOpC,OAAO,CAAC,yBAAyB;IAwCjC,OAAO,CAAC,8BAA8B;IAStC,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;IAgFtB,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,uBAAuB;IA0BxB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,mBAAmB,UAAQ;IAkExE,OAAO,CAAC,cAAc;IAkCtB,wBAAwB;IAOxB;;;;;OAKG;IACH,uBAAuB,IAAI,aAAa,EAAE,GAAG,SAAS;IAOtD,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAiDhD,oBAAoB;IAIpB,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAI9C,sBAAsB;IAItB,OAAO,CAAC,wBAAwB;IAqDhC,QAAQ;IA0DR,0BAA0B,CACxB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,KAAK,EAAE,iBAAiB;IAQ1B,6BAA6B;IAI7B,uBAAuB,CAAC,KAAK,EAAE,iBAAiB;IAOhD;;;OAGG;IACH,qBAAqB;IAgCrB,iBAAiB,CACf,KAAK,EAAE,iBAAiB,EACxB,SAAS,UAAQ,EACjB,qBAAqB,UAAQ;IA0F/B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;IAIjB,kBAAkB,CACvB,eAAe,EAAE,WAAW,CAC1B,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CACpD;IAkCH,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,wBAAwB;IAWhC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAoCtE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAIzC,SAAS;IAYT,iBAAiB,CACf,gBAAgB,EAAE,wBAAwB,CAAC,IAAI,CAAC,EAChD,kBAAkB,CAAC,EAAE,wBAAwB;IAa/C,oBAAoB;IAQpB,sBAAsB;IAKtB,oBAAoB,CAAC,CAAC,SAAS,cAAc,EAC3C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;IAa3B,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,eAAe;IA8CvB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,cAAc;IAiFtB,iBAAiB;IAWjB,mBAAmB;IAYnB,eAAe;IAIf,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAwBrC,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IASpD,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAMxD,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAMpD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IAanD,YAAY,CAAC,IAAI,GAAE,MAAU;IAQ7B,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI;IAI5D,MAAM;IAIN,QAAQ;IAIR,aAAa,CAAC,UAAU,EAAE,OAAO;IAIjC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjD,oBAAoB;IAOpB,oBAAoB,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAAG,IAAI;IAM1E,sBAAsB;IAOtB,cAAc;IAId,cAAc;IAId,eAAe;IAKf,cAAc;IAKd,eAAe,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;IAIzD,eAAe;IAcf,cAAc,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS;IAShD,oBAAoB;IAUpB;;;;;;;;;OASG;IACH,sBAAsB,IAAI,UAAU,GAAG,SAAS;IAahD,cAAc,CAAC,eAAe,CAAC,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;qBAnmCnB,CAAC;uBAGX,CAAC;sBAIA,CAAC;;;;;wBAEA,CAAC;2BAA8B,CAAC;yBAI3C,CAHH;;;;;;;;;;IA+mCC,IAAI,UAAU,YAEb;IAED,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE;CA6GpD"}
|
package/dist/cjs/sheet-cell.js
CHANGED
|
@@ -8,7 +8,7 @@ import { isDataValidationFormulaRule } from "./api/data-validation";
|
|
|
8
8
|
import { checkBooleanRule } from "./api/validation";
|
|
9
9
|
import { createFormattedValue, createNumberValue, detectNumberFormatPattern, detectNumberFormatType, detectValueType, detectValueTypeAndPattern, isMultiline, isNumber, isValidURLorEmail, } from "./api/datatype";
|
|
10
10
|
import { changeDecimals, getDecimalPlaces, pattern_number, pattern_number_thousands, } from "./api/decimals";
|
|
11
|
-
import { formulaToRelativeReference, updateColumnName, updateNamedRangeName, updateSheetName, } from "./api/formula";
|
|
11
|
+
import { ERROR_REFERENCE, formulaToRelativeReference, updateColumnName, updateNamedRangeName, updateSheetName, } from "./api/formula";
|
|
12
12
|
import { getLocaleSeparators } from "./api/intl";
|
|
13
13
|
import { AWAITING_CALCULATION } from "./helpers";
|
|
14
14
|
export var defaultSheetId = 1;
|
|
@@ -70,6 +70,14 @@ var hasGeneralPattern = function (format) {
|
|
|
70
70
|
* format is preserved as-is.
|
|
71
71
|
*/
|
|
72
72
|
var isGeneralNumberFormat = function (format) { return !format || (hasGeneralType(format) && hasGeneralPattern(format)); };
|
|
73
|
+
/**
|
|
74
|
+
* The explicit "General" format (Excel numFmtId 0). Written when the user
|
|
75
|
+
* picks General so the cell stops deriving a format from its formula.
|
|
76
|
+
*/
|
|
77
|
+
var GENERAL_NUMBER_FORMAT = {
|
|
78
|
+
type: "GENERAL",
|
|
79
|
+
pattern: "General",
|
|
80
|
+
};
|
|
73
81
|
var stripExcelTextPrefix = function (value) { return value.slice(1); };
|
|
74
82
|
var getHyperlinkTarget = function (hyperlink) {
|
|
75
83
|
if (typeof hyperlink === "string") {
|
|
@@ -478,6 +486,13 @@ var SheetCell = /** @class */ (function () {
|
|
|
478
486
|
catch (err) {
|
|
479
487
|
console.log("Error moving formula", err, this.formula, from, to);
|
|
480
488
|
if (err instanceof FormulaError) {
|
|
489
|
+
// A relative reference pushed off the grid has no address: Excel writes the `#REF!`
|
|
490
|
+
// token into the formula itself (`=A2` filled left from B2 becomes `=#REF!`). The error
|
|
491
|
+
// carries that rewritten text — keeping the unshifted source would leave a formula that
|
|
492
|
+
// silently references the wrong (here: its own) cell.
|
|
493
|
+
if (err.message === ERROR_REFERENCE && typeof err.details === "string") {
|
|
494
|
+
this.userEnteredValue = { fv: err.details };
|
|
495
|
+
}
|
|
481
496
|
this.effectiveValue = {
|
|
482
497
|
ev: {
|
|
483
498
|
type: "Error",
|
|
@@ -1460,25 +1475,34 @@ var SheetCell = /** @class */ (function () {
|
|
|
1460
1475
|
SheetCell.prototype.setNumberFormat = function (value) {
|
|
1461
1476
|
var _a, _b;
|
|
1462
1477
|
var previousFormatType = (_b = (_a = this.userEnteredFormat) === null || _a === void 0 ? void 0 : _a.numberFormat) === null || _b === void 0 ? void 0 : _b.type;
|
|
1463
|
-
|
|
1478
|
+
// A nullish patch means "the user chose General" (the toolbar's General
|
|
1479
|
+
// item, programmatic callers). Persist it as the explicit General
|
|
1480
|
+
// sentinel rather than deleting the slot: with NO `numberFormat` a
|
|
1481
|
+
// formula cell keeps deriving its format from the formula (`=DATE()` →
|
|
1482
|
+
// date), so General could never win over the derived date. Excel stamps
|
|
1483
|
+
// numFmtId 0 and shows the serial. `isGeneralNumberFormat` still treats
|
|
1484
|
+
// the sentinel as General, so typed input keeps auto-formatting.
|
|
1485
|
+
var numberFormat = value !== null && value !== void 0 ? value : __assign({}, GENERAL_NUMBER_FORMAT);
|
|
1486
|
+
var numberFormatType = numberFormat.type;
|
|
1464
1487
|
var hasUserEnteredValue = this.getUserEnteredValue() !== undefined;
|
|
1465
1488
|
if (!isNil(this.sharedStringIndex) &&
|
|
1466
1489
|
numberFormatType &&
|
|
1467
|
-
numberFormatType !== "TEXT"
|
|
1490
|
+
numberFormatType !== "TEXT" &&
|
|
1491
|
+
numberFormatType !== "GENERAL") {
|
|
1468
1492
|
return;
|
|
1469
1493
|
}
|
|
1470
|
-
set(this, "userEnteredFormat.numberFormat",
|
|
1494
|
+
set(this, "userEnteredFormat.numberFormat", numberFormat);
|
|
1471
1495
|
var effectiveValue = this.getEffectiveValue();
|
|
1472
1496
|
if (effectiveValue === null || effectiveValue === undefined) {
|
|
1473
1497
|
return;
|
|
1474
1498
|
}
|
|
1475
1499
|
if (numberFormatType === "TEXT") {
|
|
1476
1500
|
var userValue = this.getUserEnteredValue();
|
|
1477
|
-
this.formatAsText(userValue !== null && userValue !== void 0 ? userValue : effectiveValue,
|
|
1501
|
+
this.formatAsText(userValue !== null && userValue !== void 0 ? userValue : effectiveValue, numberFormat, !hasUserEnteredValue);
|
|
1478
1502
|
}
|
|
1479
1503
|
else {
|
|
1480
1504
|
var preserveUserEnteredText = previousFormatType === "TEXT";
|
|
1481
|
-
this.formatAsNumber(effectiveValue,
|
|
1505
|
+
this.formatAsNumber(effectiveValue, numberFormat, preserveUserEnteredText, !hasUserEnteredValue);
|
|
1482
1506
|
}
|
|
1483
1507
|
};
|
|
1484
1508
|
SheetCell.prototype.formatAsText = function (effectiveValue, numberFormat, keepUserEnteredUnset) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../cellxfs-registry.ts","../../commands.ts","../../generated-names.ts","../../helpers.ts","../../index.ts","../../server-utils.ts","../../server.browser.ts","../../server.ts","../../shared-string-registry.ts","../../sheet-cell.ts","../../test-setup.ts","../../types.ts","../../vitest.config.ts","../../api/advanced-filter.ts","../../api/border.ts","../../api/conditional-format.ts","../../api/copy-paste.ts","../../api/data-validation.ts","../../api/datatype.ts","../../api/date.ts","../../api/decimals.ts","../../api/dependency.ts","../../api/fill.ts","../../api/filter-range.ts","../../api/filter.ts","../../api/format-caches.ts","../../api/formula.ts","../../api/goal-seek.ts","../../api/immer-utils.ts","../../api/intl.ts","../../api/merges.ts","../../api/outline.ts","../../api/paint-format.ts","../../api/parse-html.ts","../../api/paste-special.ts","../../api/patches.ts","../../api/pivot-range.ts","../../api/range-rule-helpers.ts","../../api/range.ts","../../api/rename-sheet.ts","../../api/selection.ts","../../api/sort.ts","../../api/split-text.ts","../../api/structural-formula-update.ts","../../api/subtotal.ts","../../api/table.ts","../../api/validation.ts","../../api/xlsx-source.ts","../../atoms/delete-sheet-atom.ts","../../atoms/dialog-state.atom.ts","../../atoms/editing-data-validation-id.atom.ts","../../atoms/editing-embed.atom.ts","../../atoms/editing-table.atom.ts","../../atoms/error-state.atom.ts","../../atoms/index.ts","../../atoms/insert-image-state.atom.ts","../../atoms/named-range.atom.ts","../../atoms/resize-dimension.atom.ts","../../atoms/sheet-observer.atom.ts","../../components/index.tsx","../../components/dialogs/delete-sheet-confirmation.tsx","../../components/dialogs/error-state.tsx","../../components/editors/cell-format-editor.tsx","../../components/editors/conditional-format-editor.tsx","../../components/editors/conditional-format-rule-editor.tsx","../../components/editors/data-validation-editor.tsx","../../components/editors/data-validation-rule-editor.tsx","../../components/editors/embed-editor.tsx","../../components/editors/insert-image-editor.tsx","../../components/editors/insert-link-editor.tsx","../../components/editors/named-range-editor.tsx","../../components/editors/resize-dimension-editor.tsx","../../components/editors/sheet-filter.tsx","../../components/editors/table-editor.tsx","../../helpers/iterative-calculation.ts","../../helpers/sheet-title.ts","../../hooks/use-async-datasource.ts","../../hooks/use-calculation-initialize.ts","../../hooks/use-calculation-process-array.ts","../../hooks/use-calculation-queue.ts","../../hooks/use-calculation-worker.ts","../../hooks/use-calculation.ts","../../hooks/use-can-edit-cellrange.ts","../../hooks/use-cellxfs-registry.ts","../../hooks/use-citations.ts","../../hooks/use-comments.ts","../../hooks/use-conditional-formatting-rules.ts","../../hooks/use-data-validation-rules.ts","../../hooks/use-deferred-calculation-flush.ts","../../hooks/use-idle-scheduler.ts","../../hooks/use-indent.ts","../../hooks/use-named-range.ts","../../hooks/use-on-adjust-row-height.ts","../../hooks/use-on-advanced-filter.ts","../../hooks/use-on-autoresize.ts","../../hooks/use-on-banded-ranges.ts","../../hooks/use-on-calculation-begin.ts","../../hooks/use-on-calculation-success.ts","../../hooks/use-on-change-batch-stream.ts","../../hooks/use-on-change-batch.ts","../../hooks/use-on-change-calculated-column.ts","../../hooks/use-on-change-decimals.ts","../../hooks/use-on-change-formatting.ts","../../hooks/use-on-change-sheet-tabcolor.ts","../../hooks/use-on-change-table-column.ts","../../hooks/use-on-change-theme.ts","../../hooks/use-on-change.ts","../../hooks/use-on-clear-formatting.ts","../../hooks/use-on-collapse-column-group.ts","../../hooks/use-on-collapse-row-group.ts","../../hooks/use-on-copy.ts","../../hooks/use-on-create-named-range.ts","../../hooks/use-on-create-sheet.ts","../../hooks/use-on-delete-cells-shift-left.ts","../../hooks/use-on-delete-cells-shift-up.ts","../../hooks/use-on-delete-column.ts","../../hooks/use-on-delete-named-range.ts","../../hooks/use-on-delete-row.ts","../../hooks/use-on-delete-sheet.ts","../../hooks/use-on-delete-table-row.ts","../../hooks/use-on-delete.ts","../../hooks/use-on-drag-n-drop.ts","../../hooks/use-on-duplicate-sheet.ts","../../hooks/use-on-embeds.ts","../../hooks/use-on-expand-column-group.ts","../../hooks/use-on-expand-row-group.ts","../../hooks/use-on-fill-range.ts","../../hooks/use-on-fill.ts","../../hooks/use-on-filter-table.ts","../../hooks/use-on-find-replace.ts","../../hooks/use-on-freeze.ts","../../hooks/use-on-goal-seek.ts","../../hooks/use-on-group-columns.ts","../../hooks/use-on-group-rows.ts","../../hooks/use-on-hide-column.ts","../../hooks/use-on-hide-row.ts","../../hooks/use-on-hide-show-sheet.ts","../../hooks/use-on-import-csv-legacy.ts","../../hooks/use-on-import-csv.ts","../../hooks/use-on-import-excel.ts","../../hooks/use-on-insert-autosum.ts","../../hooks/use-on-insert-cells-shift-down.ts","../../hooks/use-on-insert-cells-shift-right.ts","../../hooks/use-on-insert-checkbox.ts","../../hooks/use-on-insert-column.ts","../../hooks/use-on-insert-date-time.ts","../../hooks/use-on-insert-date.ts","../../hooks/use-on-insert-image.ts","../../hooks/use-on-insert-link.ts","../../hooks/use-on-insert-note.ts","../../hooks/use-on-insert-row.ts","../../hooks/use-on-insert-table-row.ts","../../hooks/use-on-insert-time.ts","../../hooks/use-on-locale-change.ts","../../hooks/use-on-merge-unmerge-cells.ts","../../hooks/use-on-move-columns.ts","../../hooks/use-on-move-rows.ts","../../hooks/use-on-move-selection.ts","../../hooks/use-on-move-sheet.ts","../../hooks/use-on-move-table-columns.ts","../../hooks/use-on-paste.ts","../../hooks/use-on-protect-range.ts","../../hooks/use-on-protect-sheet.ts","../../hooks/use-on-remove-duplicates.ts","../../hooks/use-on-rename-sheet.ts","../../hooks/use-on-request-calculate-wrapper.ts","../../hooks/use-on-request-conditional-format.ts","../../hooks/use-on-request-data-validation.ts","../../hooks/use-on-request-define-named-range.ts","../../hooks/use-on-request-delete-sheet.ts","../../hooks/use-on-request-edit-table.ts","../../hooks/use-on-request-format-cells.ts","../../hooks/use-on-request-insert-image.ts","../../hooks/use-on-request-insert-link.ts","../../hooks/use-on-request-resize.ts","../../hooks/use-on-request-update-named-range.ts","../../hooks/use-on-resize-table.ts","../../hooks/use-on-resize.ts","../../hooks/use-on-set-outline-depth.ts","../../hooks/use-on-show-column.ts","../../hooks/use-on-show-row.ts","../../hooks/use-on-sort-column.ts","../../hooks/use-on-sort-range.ts","../../hooks/use-on-sort-table.ts","../../hooks/use-on-subtotal.ts","../../hooks/use-on-table.ts","../../hooks/use-on-trace-dependents-precedents.tsx","../../hooks/use-on-ungroup-columns.ts","../../hooks/use-on-ungroup-rows.ts","../../hooks/use-on-update-named-range.ts","../../hooks/use-on-update-note.ts","../../hooks/use-on-update-sheet.ts","../../hooks/use-paint-format.ts","../../hooks/use-search.ts","../../hooks/use-select-next-prev-sheet.ts","../../hooks/use-sheet-observer.ts","../../hooks/use-sheet-properties.ts","../../hooks/use-sheet-state.ts","../../hooks/use-sheetdata-subscriber.ts","../../hooks/use-slicers.ts","../../hooks/use-split-text-to-columns.ts","../../hooks/use-spreadsheet-state.ts","../../hooks/use-ss-registry.ts","../../hooks/use-structured-reference.ts","../../hooks/use-undo-redo-actions.ts","../../hooks/use-undo-redo.ts","../../hooks/utils/frozen-sort.ts","../../hooks/utils/sort-rows.ts","../../interface/apply-fill.ts","../../interface/auto-resize.ts","../../interface/calculation-interface.ts","../../interface/change-batch-stream.ts","../../interface/change-batch.ts","../../interface/change-border.ts","../../interface/change-calculated-column.ts","../../interface/change-decimals.ts","../../interface/change-formatting.ts","../../interface/change-sheet-tabcolor.ts","../../interface/change-table-column.ts","../../interface/change-theme.ts","../../interface/chart-extensions.ts","../../interface/citations.ts","../../interface/clear-formatting.ts","../../interface/conditional-formatting-rules.ts","../../interface/create-table.ts","../../interface/data-validation-rules.ts","../../interface/data-validation-utils.ts","../../interface/delete-cells-shift-left.ts","../../interface/delete-cells-shift-up.ts","../../interface/delete-cells.ts","../../interface/delete-column.ts","../../interface/delete-row.ts","../../interface/delete-sheet.ts","../../interface/delete-table-column.ts","../../interface/delete-table-row.ts","../../interface/duplicate-sheet.ts","../../interface/embeds.ts","../../interface/freeze.ts","../../interface/helpers.ts","../../interface/hide-column.ts","../../interface/hide-row.ts","../../interface/indent.ts","../../interface/insert-cells-shift-down.ts","../../interface/insert-cells-shift-right.ts","../../interface/insert-column.ts","../../interface/insert-note.ts","../../interface/insert-row.ts","../../interface/insert-table-row.ts","../../interface/interface-cli.ts","../../interface/named-range-operations.ts","../../interface/new-sheet.ts","../../interface/pivot-extensions.ts","../../interface/remove-duplicates.ts","../../interface/remove-table.ts","../../interface/resize-utils.ts","../../interface/resize.ts","../../interface/slicers.ts","../../interface/split-text.ts","../../interface/spreadsheet-interface.ts","../../interface/table-totalrow.ts","../../interface/table-utils.ts","../../interface/update-sheet.ts","../../interface/update-table.ts","../../validation-schema/table.schema.ts"],"version":"5.8.3"}
|
|
1
|
+
{"root":["../../cellxfs-registry.ts","../../commands.ts","../../generated-names.ts","../../helpers.ts","../../index.ts","../../server-utils.ts","../../server.browser.ts","../../server.ts","../../shared-string-registry.ts","../../sheet-cell.ts","../../test-setup.ts","../../types.ts","../../vitest.config.ts","../../api/advanced-filter.ts","../../api/border.ts","../../api/conditional-format.ts","../../api/copy-paste.ts","../../api/data-validation.ts","../../api/datatype.ts","../../api/date.ts","../../api/decimals.ts","../../api/dependency.ts","../../api/fill-series-spec.ts","../../api/fill.ts","../../api/filter-range.ts","../../api/filter.ts","../../api/format-caches.ts","../../api/formula.ts","../../api/goal-seek.ts","../../api/immer-utils.ts","../../api/intl.ts","../../api/merges.ts","../../api/outline.ts","../../api/paint-format.ts","../../api/parse-html.ts","../../api/paste-special.ts","../../api/patches.ts","../../api/pivot-range.ts","../../api/range-rule-helpers.ts","../../api/range.ts","../../api/rename-sheet.ts","../../api/selection.ts","../../api/sort.ts","../../api/split-text.ts","../../api/structural-formula-update.ts","../../api/subtotal.ts","../../api/table.ts","../../api/validation.ts","../../api/xlsx-source.ts","../../atoms/delete-sheet-atom.ts","../../atoms/dialog-state.atom.ts","../../atoms/editing-data-validation-id.atom.ts","../../atoms/editing-embed.atom.ts","../../atoms/editing-table.atom.ts","../../atoms/error-state.atom.ts","../../atoms/index.ts","../../atoms/insert-image-state.atom.ts","../../atoms/named-range.atom.ts","../../atoms/resize-dimension.atom.ts","../../atoms/sheet-observer.atom.ts","../../components/index.tsx","../../components/dialogs/delete-sheet-confirmation.tsx","../../components/dialogs/error-state.tsx","../../components/editors/cell-format-editor.tsx","../../components/editors/conditional-format-editor.tsx","../../components/editors/conditional-format-rule-editor.tsx","../../components/editors/data-validation-editor.tsx","../../components/editors/data-validation-rule-editor.tsx","../../components/editors/embed-editor.tsx","../../components/editors/insert-image-editor.tsx","../../components/editors/insert-link-editor.tsx","../../components/editors/named-range-editor.tsx","../../components/editors/resize-dimension-editor.tsx","../../components/editors/sheet-filter.tsx","../../components/editors/table-editor.tsx","../../helpers/iterative-calculation.ts","../../helpers/sheet-title.ts","../../hooks/use-async-datasource.ts","../../hooks/use-calculation-initialize.ts","../../hooks/use-calculation-process-array.ts","../../hooks/use-calculation-queue.ts","../../hooks/use-calculation-worker.ts","../../hooks/use-calculation.ts","../../hooks/use-can-edit-cellrange.ts","../../hooks/use-cellxfs-registry.ts","../../hooks/use-citations.ts","../../hooks/use-comments.ts","../../hooks/use-conditional-formatting-rules.ts","../../hooks/use-data-validation-rules.ts","../../hooks/use-deferred-calculation-flush.ts","../../hooks/use-idle-scheduler.ts","../../hooks/use-indent.ts","../../hooks/use-named-range.ts","../../hooks/use-on-adjust-row-height.ts","../../hooks/use-on-advanced-filter.ts","../../hooks/use-on-autoresize.ts","../../hooks/use-on-banded-ranges.ts","../../hooks/use-on-calculation-begin.ts","../../hooks/use-on-calculation-success.ts","../../hooks/use-on-change-batch-stream.ts","../../hooks/use-on-change-batch.ts","../../hooks/use-on-change-calculated-column.ts","../../hooks/use-on-change-decimals.ts","../../hooks/use-on-change-formatting.ts","../../hooks/use-on-change-sheet-tabcolor.ts","../../hooks/use-on-change-table-column.ts","../../hooks/use-on-change-theme.ts","../../hooks/use-on-change.ts","../../hooks/use-on-clear-formatting.ts","../../hooks/use-on-collapse-column-group.ts","../../hooks/use-on-collapse-row-group.ts","../../hooks/use-on-copy.ts","../../hooks/use-on-create-named-range.ts","../../hooks/use-on-create-sheet.ts","../../hooks/use-on-delete-cells-shift-left.ts","../../hooks/use-on-delete-cells-shift-up.ts","../../hooks/use-on-delete-column.ts","../../hooks/use-on-delete-named-range.ts","../../hooks/use-on-delete-row.ts","../../hooks/use-on-delete-sheet.ts","../../hooks/use-on-delete-table-row.ts","../../hooks/use-on-delete.ts","../../hooks/use-on-drag-n-drop.ts","../../hooks/use-on-duplicate-sheet.ts","../../hooks/use-on-embeds.ts","../../hooks/use-on-expand-column-group.ts","../../hooks/use-on-expand-row-group.ts","../../hooks/use-on-fill-range.ts","../../hooks/use-on-fill.ts","../../hooks/use-on-filter-table.ts","../../hooks/use-on-find-replace.ts","../../hooks/use-on-freeze.ts","../../hooks/use-on-goal-seek.ts","../../hooks/use-on-group-columns.ts","../../hooks/use-on-group-rows.ts","../../hooks/use-on-hide-column.ts","../../hooks/use-on-hide-row.ts","../../hooks/use-on-hide-show-sheet.ts","../../hooks/use-on-import-csv-legacy.ts","../../hooks/use-on-import-csv.ts","../../hooks/use-on-import-excel.ts","../../hooks/use-on-insert-autosum.ts","../../hooks/use-on-insert-cells-shift-down.ts","../../hooks/use-on-insert-cells-shift-right.ts","../../hooks/use-on-insert-checkbox.ts","../../hooks/use-on-insert-column.ts","../../hooks/use-on-insert-date-time.ts","../../hooks/use-on-insert-date.ts","../../hooks/use-on-insert-image.ts","../../hooks/use-on-insert-link.ts","../../hooks/use-on-insert-note.ts","../../hooks/use-on-insert-row.ts","../../hooks/use-on-insert-table-row.ts","../../hooks/use-on-insert-time.ts","../../hooks/use-on-locale-change.ts","../../hooks/use-on-merge-unmerge-cells.ts","../../hooks/use-on-move-columns.ts","../../hooks/use-on-move-rows.ts","../../hooks/use-on-move-selection.ts","../../hooks/use-on-move-sheet.ts","../../hooks/use-on-move-table-columns.ts","../../hooks/use-on-paste.ts","../../hooks/use-on-protect-range.ts","../../hooks/use-on-protect-sheet.ts","../../hooks/use-on-remove-duplicates.ts","../../hooks/use-on-rename-sheet.ts","../../hooks/use-on-request-calculate-wrapper.ts","../../hooks/use-on-request-conditional-format.ts","../../hooks/use-on-request-data-validation.ts","../../hooks/use-on-request-define-named-range.ts","../../hooks/use-on-request-delete-sheet.ts","../../hooks/use-on-request-edit-table.ts","../../hooks/use-on-request-format-cells.ts","../../hooks/use-on-request-insert-image.ts","../../hooks/use-on-request-insert-link.ts","../../hooks/use-on-request-resize.ts","../../hooks/use-on-request-update-named-range.ts","../../hooks/use-on-resize-table.ts","../../hooks/use-on-resize.ts","../../hooks/use-on-set-outline-depth.ts","../../hooks/use-on-show-column.ts","../../hooks/use-on-show-row.ts","../../hooks/use-on-sort-column.ts","../../hooks/use-on-sort-range.ts","../../hooks/use-on-sort-table.ts","../../hooks/use-on-subtotal.ts","../../hooks/use-on-table.ts","../../hooks/use-on-trace-dependents-precedents.tsx","../../hooks/use-on-ungroup-columns.ts","../../hooks/use-on-ungroup-rows.ts","../../hooks/use-on-update-named-range.ts","../../hooks/use-on-update-note.ts","../../hooks/use-on-update-sheet.ts","../../hooks/use-paint-format.ts","../../hooks/use-search.ts","../../hooks/use-select-next-prev-sheet.ts","../../hooks/use-sheet-observer.ts","../../hooks/use-sheet-properties.ts","../../hooks/use-sheet-state.ts","../../hooks/use-sheetdata-subscriber.ts","../../hooks/use-slicers.ts","../../hooks/use-split-text-to-columns.ts","../../hooks/use-spreadsheet-state.ts","../../hooks/use-ss-registry.ts","../../hooks/use-structured-reference.ts","../../hooks/use-undo-redo-actions.ts","../../hooks/use-undo-redo.ts","../../hooks/utils/frozen-sort.ts","../../hooks/utils/sort-rows.ts","../../interface/apply-fill.ts","../../interface/auto-resize.ts","../../interface/calculation-interface.ts","../../interface/change-batch-stream.ts","../../interface/change-batch.ts","../../interface/change-border.ts","../../interface/change-calculated-column.ts","../../interface/change-decimals.ts","../../interface/change-formatting.ts","../../interface/change-sheet-tabcolor.ts","../../interface/change-table-column.ts","../../interface/change-theme.ts","../../interface/chart-extensions.ts","../../interface/citations.ts","../../interface/clear-formatting.ts","../../interface/conditional-formatting-rules.ts","../../interface/create-table.ts","../../interface/data-validation-rules.ts","../../interface/data-validation-utils.ts","../../interface/delete-cells-shift-left.ts","../../interface/delete-cells-shift-up.ts","../../interface/delete-cells.ts","../../interface/delete-column.ts","../../interface/delete-row.ts","../../interface/delete-sheet.ts","../../interface/delete-table-column.ts","../../interface/delete-table-row.ts","../../interface/duplicate-sheet.ts","../../interface/embeds.ts","../../interface/freeze.ts","../../interface/helpers.ts","../../interface/hide-column.ts","../../interface/hide-row.ts","../../interface/indent.ts","../../interface/insert-cells-shift-down.ts","../../interface/insert-cells-shift-right.ts","../../interface/insert-column.ts","../../interface/insert-note.ts","../../interface/insert-row.ts","../../interface/insert-table-row.ts","../../interface/interface-cli.ts","../../interface/named-range-operations.ts","../../interface/new-sheet.ts","../../interface/pivot-extensions.ts","../../interface/remove-duplicates.ts","../../interface/remove-table.ts","../../interface/resize-utils.ts","../../interface/resize.ts","../../interface/slicers.ts","../../interface/split-text.ts","../../interface/spreadsheet-interface.ts","../../interface/table-totalrow.ts","../../interface/table-utils.ts","../../interface/update-sheet.ts","../../interface/update-table.ts","../../validation-schema/table.schema.ts"],"version":"5.8.3"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datatype.d.ts","sourceRoot":"","sources":["../../../api/datatype.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"datatype.d.ts","sourceRoot":"","sources":["../../../api/datatype.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/api/datatype.js
CHANGED
|
@@ -574,11 +574,18 @@ export const detectValueTypeAndPattern = (value, locale, lenientGrouping = true,
|
|
|
574
574
|
const percentValue = convertToNumber(value, locale, lenientGrouping) / 100;
|
|
575
575
|
return ["numberValue", "PERCENT", percentValue, pattern];
|
|
576
576
|
}
|
|
577
|
+
// A JS number carries no typed digits: its decimal expansion is float
|
|
578
|
+
// noise (0.1 + 0.2, the 5.333333333333333 of a fitted trend), never a
|
|
579
|
+
// format the user asked for. Excel keeps a computed or programmatic
|
|
580
|
+
// number General and clips it to General's significant digits, so only
|
|
581
|
+
// TEXT entry infers a decimal pattern from what was typed.
|
|
577
582
|
return [
|
|
578
583
|
"numberValue",
|
|
579
584
|
"NUMBER",
|
|
580
585
|
convertToNumber(value, locale, lenientGrouping),
|
|
581
|
-
|
|
586
|
+
typeof value === "number"
|
|
587
|
+
? "General"
|
|
588
|
+
: detectNumberFormatPattern(value, numberValue, "NUMBER", locale),
|
|
582
589
|
];
|
|
583
590
|
}
|
|
584
591
|
// Date time (check before date to catch time-only formats like "1:00 AM")
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { FillSeriesSpec } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
/** One fill line's Series-dialog result (see {@link generateSeriesSpecValues}). */
|
|
3
|
+
export type SeriesSpecLine = {
|
|
4
|
+
/**
|
|
5
|
+
* Trend only: the fitted value of every numeric seed as `{ index, value }`
|
|
6
|
+
* (`index` into the caller's `sourceValues`) — Excel replaces the starting
|
|
7
|
+
* values with the trend it fitted through them. Empty for every other spec.
|
|
8
|
+
*/
|
|
9
|
+
seeds: {
|
|
10
|
+
index: number;
|
|
11
|
+
value: number;
|
|
12
|
+
}[];
|
|
13
|
+
/**
|
|
14
|
+
* The target values in fill order. SHORTER than the requested count when
|
|
15
|
+
* `stop` ends the series early — the targets past it are left untouched
|
|
16
|
+
* (Excel writes nothing there).
|
|
17
|
+
*/
|
|
18
|
+
values: unknown[];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Value generator behind Excel's Series dialog (Home > Fill > Series…). The
|
|
22
|
+
* spec is explicit user intent, so unlike drag auto-fill nothing is detected:
|
|
23
|
+
* Linear adds `step`, Growth multiplies by `step`, Date advances `step`
|
|
24
|
+
* `dateUnit`s (weekday skips Sat/Sun, month clamps to month-end). `trend` fits
|
|
25
|
+
* a least-squares line (Linear) / exponential (Growth) through the seeds and,
|
|
26
|
+
* as Excel does, REWRITES the seeds with the fitted values before continuing
|
|
27
|
+
* the fit (a lone seed fits a flat line — the value repeats). A `stop` value
|
|
28
|
+
* ends the series at the last value that does not pass it: the line comes
|
|
29
|
+
* back shorter and the remaining selected cells are left alone. Returns
|
|
30
|
+
* `undefined` when the spec does not apply (AutoFill type, or seeds that are
|
|
31
|
+
* not numbers/dates) so the caller falls back to the regular fill-type
|
|
32
|
+
* generator.
|
|
33
|
+
*/
|
|
34
|
+
export declare const generateSeriesSpecValues: (sourceValues: unknown[], spec: FillSeriesSpec, count: number, locale?: string) => SeriesSpecLine | undefined;
|
|
35
|
+
//# sourceMappingURL=fill-series-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fill-series-spec.d.ts","sourceRoot":"","sources":["../../../api/fill-series-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;OAIG;IACH,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C;;;;OAIG;IACH,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,GACnC,cAAc,OAAO,EAAE,EACvB,MAAM,cAAc,EACpB,OAAO,MAAM,EACb,SAAS,MAAM,KACd,cAAc,GAAG,SAqDnB,CAAC"}
|