@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.
Files changed (65) hide show
  1. package/dist/cjs/api/datatype.d.ts.map +1 -1
  2. package/dist/cjs/api/datatype.js +8 -1
  3. package/dist/cjs/api/fill-series-spec.d.ts +35 -0
  4. package/dist/cjs/api/fill-series-spec.d.ts.map +1 -0
  5. package/dist/cjs/api/fill-series-spec.js +164 -0
  6. package/dist/cjs/api/fill.d.ts +95 -3
  7. package/dist/cjs/api/fill.d.ts.map +1 -1
  8. package/dist/cjs/api/fill.js +1186 -418
  9. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  10. package/dist/cjs/api/immer-utils.js +20 -15
  11. package/dist/cjs/api/intl.d.ts.map +1 -1
  12. package/dist/cjs/api/paint-format.d.ts +15 -1
  13. package/dist/cjs/api/paint-format.d.ts.map +1 -1
  14. package/dist/cjs/api/paint-format.js +69 -10
  15. package/dist/cjs/commands.d.ts +11 -1
  16. package/dist/cjs/commands.d.ts.map +1 -1
  17. package/dist/cjs/hooks/use-calculation.d.ts +1 -1
  18. package/dist/cjs/hooks/use-on-fill.d.ts +13 -4
  19. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
  20. package/dist/cjs/hooks/use-on-fill.js +28 -7
  21. package/dist/cjs/hooks/use-paint-format.d.ts.map +1 -1
  22. package/dist/cjs/hooks/use-paint-format.js +10 -7
  23. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +1 -1
  24. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  25. package/dist/cjs/hooks/use-spreadsheet-state.js +12 -1
  26. package/dist/cjs/interface/apply-fill.d.ts +3 -3
  27. package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
  28. package/dist/cjs/interface/apply-fill.js +100 -53
  29. package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
  30. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  31. package/dist/cjs/sheet-cell.js +30 -6
  32. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  33. package/dist/esm/api/datatype.d.ts.map +1 -1
  34. package/dist/esm/api/datatype.js +8 -1
  35. package/dist/esm/api/fill-series-spec.d.ts +35 -0
  36. package/dist/esm/api/fill-series-spec.d.ts.map +1 -0
  37. package/dist/esm/api/fill-series-spec.js +160 -0
  38. package/dist/esm/api/fill.d.ts +95 -3
  39. package/dist/esm/api/fill.d.ts.map +1 -1
  40. package/dist/esm/api/fill.js +1158 -418
  41. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  42. package/dist/esm/api/immer-utils.js +20 -15
  43. package/dist/esm/api/intl.d.ts.map +1 -1
  44. package/dist/esm/api/paint-format.d.ts +15 -1
  45. package/dist/esm/api/paint-format.d.ts.map +1 -1
  46. package/dist/esm/api/paint-format.js +46 -1
  47. package/dist/esm/commands.d.ts +11 -1
  48. package/dist/esm/commands.d.ts.map +1 -1
  49. package/dist/esm/hooks/use-calculation.d.ts +1 -1
  50. package/dist/esm/hooks/use-on-fill.d.ts +13 -4
  51. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
  52. package/dist/esm/hooks/use-on-fill.js +24 -4
  53. package/dist/esm/hooks/use-paint-format.d.ts.map +1 -1
  54. package/dist/esm/hooks/use-paint-format.js +10 -7
  55. package/dist/esm/hooks/use-spreadsheet-state.d.ts +1 -1
  56. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  57. package/dist/esm/hooks/use-spreadsheet-state.js +12 -1
  58. package/dist/esm/interface/apply-fill.d.ts +3 -3
  59. package/dist/esm/interface/apply-fill.d.ts.map +1 -1
  60. package/dist/esm/interface/apply-fill.js +93 -48
  61. package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
  62. package/dist/esm/sheet-cell.d.ts.map +1 -1
  63. package/dist/esm/sheet-cell.js +30 -6
  64. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  65. 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 { AutoFillType } from "../api/fill";
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,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG/E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAU3D,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,sQAe5D,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,kBA0Q1B,CAAC"}
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) { return __awaiter(void 0, void 0, void 0, function () {
23
- var finalSelections, selection, saveHistory, fillBounds, direction, recalcCells, dataValidationTargets, fillValues, sheetCell, getFillValue;
24
- return __generator(this, function (_a) {
25
- switch (_a.label) {
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
- fillType: fillType,
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 = _a.sent();
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 fillValue = fillValues[rowIndex][columnIndex];
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 = fillBounds.endRowIndex;
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
- var newSheet = createSheetDraft(draft, sheetId, i);
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 = fillBounds.startRowIndex;
163
+ var end = targetBounds.startRowIndex;
111
164
  for (var i = start; i >= end; i--) {
112
- var rollingRowIndex = i - fillBounds.startRowIndex;
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
- var newSheet = createSheetDraft(draft, sheetId, i);
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 = fillBounds.endColumnIndex;
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
- var newSheet = createSheetDraft(draft, sheetId, rowIndex);
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 = fillBounds.startColumnIndex;
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 - fillBounds.startColumnIndex;
168
- var newSheet = createSheetDraft(draft, sheetId, rowIndex);
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 | Date | FormulaError | import("@rowsncolumns/fast-formula-parser").FormulaResultArray | import("@rowsncolumns/fast-formula-parser").RecursiveFormula | import("@rowsncolumns/calculator").DataSource | {
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":"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"}
1
+ {"version":3,"file":"sheet-cell.d.ts","sourceRoot":"","sources":["../../sheet-cell.ts"],"names":[],"mappings":"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"}
@@ -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
- var numberFormatType = value === null || value === void 0 ? void 0 : value.type;
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", value);
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, value, !hasUserEnteredValue);
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, value, preserveUserEnteredText, !hasUserEnteredValue);
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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"}
@@ -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
- detectNumberFormatPattern(value, numberValue, "NUMBER", locale),
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"}