@fileverse-dev/fortune-core 1.3.10 → 1.3.11

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/es/api/range.js CHANGED
@@ -78,6 +78,7 @@ export function setSelection(ctx, range, options) {
78
78
  }
79
79
  }
80
80
  export function setCellValuesByRange(ctx, data, range, cellInput, options, callAfterUpdate) {
81
+ var _a, _b, _c, _d, _e;
81
82
  if (options === void 0) {
82
83
  options = {};
83
84
  }
@@ -95,13 +96,32 @@ export function setCellValuesByRange(ctx, data, range, cellInput, options, callA
95
96
  if (data.length !== rowCount || data[0].length !== columnCount) {
96
97
  throw new Error("data size does not match range");
97
98
  }
99
+ var sheet = getSheet(ctx, options);
100
+ var sheetId = sheet.id || ctx.currentSheetId;
101
+ var cellChanges = [];
98
102
  for (var i = 0; i < rowCount; i += 1) {
99
103
  for (var j = 0; j < columnCount; j += 1) {
100
104
  var row = range.row[0] + i;
101
105
  var column = range.column[0] + j;
102
106
  setCellValue(ctx, row, column, data[i][j], cellInput, options, callAfterUpdate);
107
+ if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _a === void 0 ? void 0 : _a.updateCellYdoc) && sheet.data) {
108
+ cellChanges.push({
109
+ sheetId: sheetId,
110
+ path: ["celldata"],
111
+ value: {
112
+ r: row,
113
+ c: column,
114
+ v: (_d = (_c = (_b = sheet.data) === null || _b === void 0 ? void 0 : _b[row]) === null || _c === void 0 ? void 0 : _c[column]) !== null && _d !== void 0 ? _d : null
115
+ },
116
+ key: "".concat(row, "_").concat(column),
117
+ type: "update"
118
+ });
119
+ }
103
120
  }
104
121
  }
122
+ if (cellChanges.length > 0 && ((_e = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _e === void 0 ? void 0 : _e.updateCellYdoc)) {
123
+ ctx.hooks.updateCellYdoc(cellChanges);
124
+ }
105
125
  }
106
126
  export function setCellFormatByRange(ctx, attr, value, range, options) {
107
127
  if (options === void 0) {
package/es/api/sheet.js CHANGED
@@ -13,7 +13,7 @@ import _ from "lodash";
13
13
  import { v4 as uuidv4 } from "uuid";
14
14
  import { dataToCelldata, getSheet } from "./common";
15
15
  import { getSheetIndex } from "../utils";
16
- import { api, execfunction, getFlowdata, insertUpdateFunctionGroup, locale, spillSortResult } from "..";
16
+ import { api, changeSheet, execfunction, getFlowdata, insertUpdateFunctionGroup, locale, spillSortResult } from "..";
17
17
  function isCellReferenced(formulaString, cell) {
18
18
  function colToNumber(col) {
19
19
  var num = 0;
@@ -146,7 +146,7 @@ function generateCopySheetName(ctx, sheetId) {
146
146
  return sheetCopyName;
147
147
  }
148
148
  export function copySheet(ctx, sheetId) {
149
- var _a, _b, _c;
149
+ var _a, _b, _c, _d, _e;
150
150
  var index = getSheetIndex(ctx, sheetId);
151
151
  var order = ctx.luckysheetfile[index].order + 1;
152
152
  var sheetName = generateCopySheetName(ctx, sheetId);
@@ -183,6 +183,34 @@ export function copySheet(ctx, sheetId) {
183
183
  var sheetOrderList = {};
184
184
  sheetOrderList[newSheetId] = order;
185
185
  api.setSheetOrder(ctx, sheetOrderList);
186
+ changeSheet(ctx, newSheetId, undefined, true, true);
187
+ if ((_d = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _d === void 0 ? void 0 : _d.updateAllCell) {
188
+ ctx.hooks.updateAllCell(newSheetId);
189
+ } else if ((_e = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _e === void 0 ? void 0 : _e.updateCellYdoc) {
190
+ var changes_1 = [];
191
+ var celldata = newSheet.celldata || dataToCelldata(newSheet.data);
192
+ if (Array.isArray(celldata)) {
193
+ celldata.forEach(function (d) {
194
+ var _a;
195
+ if (d == null) return;
196
+ var r = d.r;
197
+ var c = d.c;
198
+ if (!_.isNumber(r) || !_.isNumber(c)) return;
199
+ changes_1.push({
200
+ sheetId: newSheetId,
201
+ path: ["celldata"],
202
+ key: "".concat(r, "_").concat(c),
203
+ value: {
204
+ r: r,
205
+ c: c,
206
+ v: (_a = d.v) !== null && _a !== void 0 ? _a : null
207
+ },
208
+ type: d.v == null ? "delete" : "update"
209
+ });
210
+ });
211
+ }
212
+ if (changes_1.length > 0) ctx.hooks.updateCellYdoc(changes_1);
213
+ }
186
214
  }
187
215
  export function calculateSheetFromula(ctx, id) {
188
216
  var _a, _b, _c;
@@ -380,7 +380,7 @@ export function handleArrowKey(ctx, e) {
380
380
  export function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, handleRedo, canvas) {
381
381
  var _a, _b, _c;
382
382
  return __awaiter(this, void 0, void 0, function () {
383
- var kcode, kstr, allowEdit, isFxInput, ignoredKeys, restCod, last, row_index, col_index, last, row_index, col_index;
383
+ var handledFlvShortcut, kcode, kstr, allowEdit, isFxInput, ignoredKeys, restCod, last, row_index, col_index, last, row_index, col_index;
384
384
  return __generator(this, function (_d) {
385
385
  if (e.shiftKey && e.code === "Space") {
386
386
  e.stopImmediatePropagation();
@@ -388,27 +388,41 @@ export function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUnd
388
388
  e.preventDefault();
389
389
  return [2];
390
390
  }
391
+ handledFlvShortcut = false;
391
392
  if ((e.ctrlKey || e.metaKey && e.shiftKey) && e.code === "KeyE") {
392
393
  textFormat(ctx, "center");
394
+ handledFlvShortcut = true;
393
395
  } else if ((e.ctrlKey || e.metaKey && e.shiftKey) && e.code === "KeyL") {
394
396
  textFormat(ctx, "left");
397
+ handledFlvShortcut = true;
395
398
  } else if ((e.ctrlKey || e.metaKey && e.shiftKey) && e.code === "KeyR") {
396
399
  textFormat(ctx, "right");
400
+ handledFlvShortcut = true;
397
401
  }
398
402
  if ((e.metaKey || e.ctrlKey) && e.code === "KeyK") {
399
403
  handleLink(ctx, cellInput);
400
404
  }
401
405
  if ((e.metaKey || e.ctrlKey) && !e.shiftKey && e.code === "Semicolon") {
402
406
  fillDate(ctx);
407
+ handledFlvShortcut = true;
403
408
  }
404
409
  if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.code === "Semicolon") {
405
410
  fillTime(ctx);
411
+ handledFlvShortcut = true;
406
412
  }
407
413
  if ((e.metaKey || e.ctrlKey) && !e.shiftKey && e.code === "KeyR") {
408
414
  fillRightData(ctx);
415
+ handledFlvShortcut = true;
409
416
  }
410
417
  if ((e.metaKey || e.ctrlKey) && e.code === "KeyD") {
411
418
  fillDownData(ctx);
419
+ handledFlvShortcut = true;
420
+ }
421
+ if (handledFlvShortcut) {
422
+ jfrefreshgrid(ctx, null, undefined);
423
+ e.stopPropagation();
424
+ e.preventDefault();
425
+ return [2];
412
426
  }
413
427
  ctx.luckysheet_select_status = false;
414
428
  kcode = e.keyCode;
@@ -203,19 +203,19 @@ var handleFormulaOnPaste = function handleFormulaOnPaste(ctx, d) {
203
203
  cell.f = f;
204
204
  cell.m = v.toString();
205
205
  x[c] = cell;
206
+ changes.push({
207
+ sheetId: ctx.currentSheetId,
208
+ path: ["celldata"],
209
+ value: {
210
+ r: r,
211
+ c: c,
212
+ v: d[r][c]
213
+ },
214
+ key: "".concat(r, "_").concat(c),
215
+ type: "update"
216
+ });
206
217
  }
207
218
  d[r] = x;
208
- changes.push({
209
- sheetId: ctx.currentSheetId,
210
- path: ["celldata"],
211
- value: {
212
- r: r,
213
- c: c,
214
- v: d[r][c]
215
- },
216
- key: "".concat(r, "_").concat(c),
217
- type: "update"
218
- });
219
219
  }
220
220
  }
221
221
  if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _b === void 0 ? void 0 : _b.updateCellYdoc) {
@@ -349,7 +349,9 @@ function pasteHandler(ctx, data, borderInfo) {
349
349
  ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].config = cfg;
350
350
  }
351
351
  jfrefreshgrid(ctx, null, undefined);
352
- handleFormulaOnPaste(ctx, d);
352
+ if (data.includes("=")) {
353
+ handleFormulaOnPaste(ctx, d);
354
+ }
353
355
  } else {
354
356
  data = data.replace(/\r/g, "");
355
357
  var dataChe = [];
@@ -479,17 +481,17 @@ function pasteHandler(ctx, data, borderInfo) {
479
481
  }
480
482
  x[c + curC] = cell;
481
483
  }
482
- changes.push(changes.push({
484
+ changes.push({
483
485
  sheetId: ctx.currentSheetId,
484
486
  path: ["celldata"],
485
487
  value: {
486
- r: r,
487
- c: c,
488
- v: d[r][c]
488
+ r: r + curR,
489
+ c: c + curC,
490
+ v: d[r + curR][c + curC]
489
491
  },
490
- key: "".concat(r, "_").concat(c),
492
+ key: "".concat(r + curR, "_").concat(c + curC),
491
493
  type: "update"
492
- }));
494
+ });
493
495
  }
494
496
  d[r + curR] = x;
495
497
  }
@@ -499,7 +501,9 @@ function pasteHandler(ctx, data, borderInfo) {
499
501
  last.row = [curR, curR + rlen - 1];
500
502
  last.column = [curC, curC + clen - 1];
501
503
  jfrefreshgrid(ctx, null, undefined);
502
- handleFormulaOnPaste(ctx, d);
504
+ if (data.includes("=")) {
505
+ handleFormulaOnPaste(ctx, d);
506
+ }
503
507
  }
504
508
  }
505
509
  function setCellHyperlink(ctx, id, r, c, link) {
@@ -510,7 +514,7 @@ function setCellHyperlink(ctx, id, r, c, link) {
510
514
  ctx.luckysheetfile[index].hyperlink["".concat(r, "_").concat(c)] = link;
511
515
  }
512
516
  function pasteHandlerOfCutPaste(ctx, copyRange) {
513
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
517
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
514
518
  var allowEdit = isAllowEdit(ctx);
515
519
  if (!allowEdit || ctx.isFlvReadOnly) return;
516
520
  if (!copyRange) return;
@@ -553,6 +557,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
553
557
  if (addr > 0 || addc > 0) {
554
558
  expandRowsAndColumns(d, addr, addc);
555
559
  }
560
+ var changes = [];
556
561
  var borderInfoCompute = getBorderInfoCompute(ctx, copySheetId);
557
562
  var c_dataVerification = _.cloneDeep(ctx.luckysheetfile[getSheetIndex(ctx, copySheetId)].dataVerification) || {};
558
563
  var dataVerification = _.cloneDeep(ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].dataVerification) || {};
@@ -584,6 +589,17 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
584
589
  delete cell.mc;
585
590
  }
586
591
  d[i][j] = null;
592
+ changes.push({
593
+ sheetId: ctx.currentSheetId,
594
+ path: ["celldata"],
595
+ value: {
596
+ r: i,
597
+ c: j,
598
+ v: null
599
+ },
600
+ key: "".concat(i, "_").concat(j),
601
+ type: "update"
602
+ });
587
603
  delete dataVerification["".concat(i, "_").concat(j)];
588
604
  (_f = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].hyperlink) === null || _f === void 0 ? true : delete _f["".concat(i, "_").concat(j)];
589
605
  }
@@ -683,6 +699,17 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
683
699
  value = copyData[h - minh][c - minc];
684
700
  }
685
701
  x[c] = _.cloneDeep(value);
702
+ changes.push({
703
+ sheetId: ctx.currentSheetId,
704
+ path: ["celldata"],
705
+ value: {
706
+ r: h,
707
+ c: c,
708
+ v: d[h][c]
709
+ },
710
+ key: "".concat(h, "_").concat(c),
711
+ type: "update"
712
+ });
686
713
  if (value != null && copyHasMC && ((_k = x[c]) === null || _k === void 0 ? void 0 : _k.mc)) {
687
714
  if (x[c].mc.rs != null) {
688
715
  x[c].mc.r = h;
@@ -703,6 +730,9 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
703
730
  }
704
731
  last.row = [minh, maxh];
705
732
  last.column = [minc, maxc];
733
+ if (changes.length > 0 && ((_l = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _l === void 0 ? void 0 : _l.updateCellYdoc)) {
734
+ ctx.hooks.updateCellYdoc(changes);
735
+ }
706
736
  if (copyRowlChange) {}
707
737
  var source;
708
738
  var target;
@@ -785,7 +815,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
785
815
  }
786
816
  source_curCdformat[i].cellrange = emptyRange;
787
817
  if (emptyRange2.length > 0) {
788
- var ruleObj = (_l = source_curCdformat[i]) !== null && _l !== void 0 ? _l : {};
818
+ var ruleObj = (_m = source_curCdformat[i]) !== null && _m !== void 0 ? _m : {};
789
819
  ruleObj.cellrange = emptyRange2;
790
820
  ruleArr.push(ruleObj);
791
821
  }
@@ -889,7 +919,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
889
919
  }
890
920
  }
891
921
  function pasteHandlerOfCopyPaste(ctx, copyRange) {
892
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
922
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
893
923
  var allowEdit = isAllowEdit(ctx);
894
924
  if (!allowEdit || ctx.isFlvReadOnly) return;
895
925
  if (!copyRange) return;
@@ -980,6 +1010,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
980
1010
  if (addr > 0 || addc > 0) {
981
1011
  expandRowsAndColumns(d, addr, addc);
982
1012
  }
1013
+ var changes = [];
983
1014
  var borderInfoCompute = getBorderInfoCompute(ctx, copySheetIndex);
984
1015
  var c_dataVerification = _.cloneDeep(ctx.luckysheetfile[getSheetIndex(ctx, copySheetIndex)].dataVerification) || {};
985
1016
  var dataVerification = null;
@@ -1069,6 +1100,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1069
1100
  value.m = "Loading...";
1070
1101
  }
1071
1102
  }
1103
+ var afterHookCalled = false;
1072
1104
  if (!_.isNil(value) && !_.isNil(value.f)) {
1073
1105
  var adjustedFormula = value.f;
1074
1106
  var isError = false;
@@ -1121,6 +1153,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1121
1153
  v: arr.length === 1 ? funcV[1] : value.v,
1122
1154
  m: funcV[1] instanceof Promise ? "[object Promise]" : funcV[1]
1123
1155
  }));
1156
+ afterHookCalled = true;
1124
1157
  }
1125
1158
  }
1126
1159
  if (!_.isNil(value.spl)) {}
@@ -1141,6 +1174,19 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1141
1174
  };
1142
1175
  }
1143
1176
  }
1177
+ if (!(((_k = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _k === void 0 ? void 0 : _k.afterUpdateCell) && afterHookCalled)) {
1178
+ changes.push({
1179
+ sheetId: ctx.currentSheetId,
1180
+ path: ["celldata"],
1181
+ value: {
1182
+ r: h,
1183
+ c: c,
1184
+ v: d[h][c]
1185
+ },
1186
+ key: "".concat(h, "_").concat(c),
1187
+ type: "update"
1188
+ });
1189
+ }
1144
1190
  }
1145
1191
  d[h] = x;
1146
1192
  }
@@ -1152,7 +1198,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1152
1198
  var a_file = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)];
1153
1199
  var ruleArr_cf = _.cloneDeep(c_file.luckysheet_conditionformat_save);
1154
1200
  if (!_.isNil(ruleArr_cf) && ruleArr_cf.length > 0) {
1155
- cdformat = (_k = _.cloneDeep(a_file.luckysheet_conditionformat_save)) !== null && _k !== void 0 ? _k : [];
1201
+ cdformat = (_l = _.cloneDeep(a_file.luckysheet_conditionformat_save)) !== null && _l !== void 0 ? _l : [];
1156
1202
  for (var i = 0; i < ruleArr_cf.length; i += 1) {
1157
1203
  var cf_range = ruleArr_cf[i].cellrange;
1158
1204
  var emptyRange = [];
@@ -1188,8 +1234,8 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1188
1234
  file.config = cfg;
1189
1235
  file.luckysheet_conditionformat_save = cdformat;
1190
1236
  file.dataVerification = __assign(__assign({}, file.dataVerification), dataVerification);
1191
- if (((_l = ctx.luckysheet_select_save) === null || _l === void 0 ? void 0 : _l.length) === 1 && ((_m = ctx.luckysheet_copy_save) === null || _m === void 0 ? void 0 : _m.copyRange.length) === 1) {
1192
- var srcIndex = getSheetIndex(ctx, (_o = ctx.luckysheet_copy_save) === null || _o === void 0 ? void 0 : _o.dataSheetId);
1237
+ if (((_m = ctx.luckysheet_select_save) === null || _m === void 0 ? void 0 : _m.length) === 1 && ((_o = ctx.luckysheet_copy_save) === null || _o === void 0 ? void 0 : _o.copyRange.length) === 1) {
1238
+ var srcIndex = getSheetIndex(ctx, (_p = ctx.luckysheet_copy_save) === null || _p === void 0 ? void 0 : _p.dataSheetId);
1193
1239
  var targetSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
1194
1240
  var srcHyperlinks = ctx.luckysheetfile[srcIndex].hyperlink;
1195
1241
  var srcData = ctx.luckysheetfile[srcIndex].data;
@@ -1200,7 +1246,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1200
1246
  var isSingleCell = copyh === 1 && copyc === 1;
1201
1247
  var cachedSrcLinkKey = isSingleCell ? "".concat(c_r1, "_").concat(c_c1) : null;
1202
1248
  var cachedSrcLink = isSingleCell && srcHyperlinks ? srcHyperlinks[cachedSrcLinkKey] : null;
1203
- var cachedSrcCell = isSingleCell && srcData ? (_p = srcData[c_r1]) === null || _p === void 0 ? void 0 : _p[c_c1] : null;
1249
+ var cachedSrcCell = isSingleCell && srcData ? (_q = srcData[c_r1]) === null || _q === void 0 ? void 0 : _q[c_c1] : null;
1204
1250
  for (var th = 1; th <= timesH; th += 1) {
1205
1251
  for (var tc = 1; tc <= timesC; tc += 1) {
1206
1252
  var linkMth = minh + (th - 1) * copyh;
@@ -1220,7 +1266,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1220
1266
  if (!srcLink) continue;
1221
1267
  var targetKey = "".concat(h, "_").concat(c);
1222
1268
  targetHyperlinks[targetKey] = srcLink;
1223
- var cell = (_q = d[h]) === null || _q === void 0 ? void 0 : _q[c];
1269
+ var cell = (_r = d[h]) === null || _r === void 0 ? void 0 : _r[c];
1224
1270
  if (cell) {
1225
1271
  var srcCell = void 0;
1226
1272
  if (isSingleCell && cachedSrcCell) {
@@ -1228,7 +1274,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1228
1274
  } else {
1229
1275
  var srcRow = c_r1 + (h - linkMth);
1230
1276
  var srcCol = c_c1 + (c - linkMtc);
1231
- srcCell = (_r = srcData === null || srcData === void 0 ? void 0 : srcData[srcRow]) === null || _r === void 0 ? void 0 : _r[srcCol];
1277
+ srcCell = (_s = srcData === null || srcData === void 0 ? void 0 : srcData[srcRow]) === null || _s === void 0 ? void 0 : _s[srcCol];
1232
1278
  }
1233
1279
  cell.hl = {
1234
1280
  r: h,
@@ -1248,6 +1294,9 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1248
1294
  }
1249
1295
  }
1250
1296
  }
1297
+ if (changes.length > 0 && ((_t = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _t === void 0 ? void 0 : _t.updateCellYdoc)) {
1298
+ ctx.hooks.updateCellYdoc(changes);
1299
+ }
1251
1300
  if (copyRowlChange || addr > 0 || addc > 0) {
1252
1301
  jfrefreshgrid(ctx, d, ctx.luckysheet_select_save);
1253
1302
  } else {
@@ -809,7 +809,7 @@ export function updateCell(ctx, r, c, $input, value, canvas) {
809
809
  var newValue_1 = _.cloneDeep(d[r][c]);
810
810
  setTimeout(function () {
811
811
  var _a, _b;
812
- return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, null, newValue_1);
812
+ return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, oldValue_1, newValue_1);
813
813
  });
814
814
  }
815
815
  ctx.formulaCache.execFunctionGlobalData = null;
@@ -1262,13 +1262,16 @@ function keepOnlyValueParts(cell) {
1262
1262
  } : null;
1263
1263
  }
1264
1264
  export function clearSelectedCellFormat(ctx) {
1265
+ var _a;
1265
1266
  var activeSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
1266
1267
  if (activeSheetIndex == null) return;
1268
+ var changeMap = new Map();
1267
1269
  var activeSheetFile = ctx.luckysheetfile[activeSheetIndex];
1268
1270
  var selectedRanges = ctx.luckysheet_select_save;
1269
1271
  if (!activeSheetFile || !selectedRanges) return;
1270
1272
  var sheetData = activeSheetFile.data;
1271
1273
  selectedRanges.forEach(function (_a) {
1274
+ var _b;
1272
1275
  var rowRange = _a.row,
1273
1276
  columnRange = _a.column;
1274
1277
  var startRow = rowRange[0],
@@ -1281,20 +1284,38 @@ export function clearSelectedCellFormat(ctx) {
1281
1284
  for (var columnIndex = startColumn; columnIndex <= endColumn; columnIndex++) {
1282
1285
  if (rowCells[columnIndex] === undefined) continue;
1283
1286
  rowCells[columnIndex] = keepOnlyValueParts(rowCells[columnIndex]);
1287
+ var v = (_b = rowCells[columnIndex]) !== null && _b !== void 0 ? _b : null;
1288
+ var key = "".concat(rowIndex, "_").concat(columnIndex);
1289
+ changeMap.set(key, {
1290
+ sheetId: ctx.currentSheetId,
1291
+ path: ["celldata"],
1292
+ key: key,
1293
+ value: {
1294
+ r: rowIndex,
1295
+ c: columnIndex,
1296
+ v: v
1297
+ },
1298
+ type: v == null ? "delete" : "update"
1299
+ });
1284
1300
  }
1285
1301
  }
1286
1302
  });
1303
+ if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _a === void 0 ? void 0 : _a.updateCellYdoc) && changeMap.size > 0) {
1304
+ ctx.hooks.updateCellYdoc(Array.from(changeMap.values()));
1305
+ }
1287
1306
  }
1288
1307
  export function clearRowsCellsFormat(ctx) {
1289
- var _a, _b;
1308
+ var _a, _b, _c;
1290
1309
  var activeSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
1291
1310
  if (activeSheetIndex == null) return;
1311
+ var changeMap = new Map();
1292
1312
  var activeSheetFile = ctx.luckysheetfile[activeSheetIndex];
1293
1313
  var selectedRanges = ctx.luckysheet_select_save;
1294
1314
  if (!activeSheetFile || !selectedRanges) return;
1295
1315
  var sheetData = activeSheetFile.data;
1296
1316
  var columnCount = (_b = (_a = sheetData === null || sheetData === void 0 ? void 0 : sheetData[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
1297
1317
  selectedRanges.forEach(function (_a) {
1318
+ var _b;
1298
1319
  var rowRange = _a.row;
1299
1320
  var startRow = rowRange[0],
1300
1321
  endRow = rowRange[1];
@@ -1304,19 +1325,38 @@ export function clearRowsCellsFormat(ctx) {
1304
1325
  for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) {
1305
1326
  if (rowCells[columnIndex] === undefined) continue;
1306
1327
  rowCells[columnIndex] = keepOnlyValueParts(rowCells[columnIndex]);
1328
+ var v = (_b = rowCells[columnIndex]) !== null && _b !== void 0 ? _b : null;
1329
+ var key = "".concat(rowIndex, "_").concat(columnIndex);
1330
+ changeMap.set(key, {
1331
+ sheetId: ctx.currentSheetId,
1332
+ path: ["celldata"],
1333
+ key: key,
1334
+ value: {
1335
+ r: rowIndex,
1336
+ c: columnIndex,
1337
+ v: v
1338
+ },
1339
+ type: v == null ? "delete" : "update"
1340
+ });
1307
1341
  }
1308
1342
  }
1309
1343
  });
1344
+ if (((_c = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc) && changeMap.size > 0) {
1345
+ ctx.hooks.updateCellYdoc(Array.from(changeMap.values()));
1346
+ }
1310
1347
  }
1311
1348
  export function clearColumnsCellsFormat(ctx) {
1349
+ var _a;
1312
1350
  var activeSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
1313
1351
  if (activeSheetIndex == null) return;
1352
+ var changeMap = new Map();
1314
1353
  var activeSheetFile = ctx.luckysheetfile[activeSheetIndex];
1315
1354
  var selectedRanges = ctx.luckysheet_select_save;
1316
1355
  if (!activeSheetFile || !selectedRanges) return;
1317
1356
  var sheetData = activeSheetFile.data;
1318
1357
  var rowCount = sheetData.length;
1319
1358
  selectedRanges.forEach(function (_a) {
1359
+ var _b;
1320
1360
  var columnRange = _a.column;
1321
1361
  var startColumn = columnRange[0],
1322
1362
  endColumn = columnRange[1];
@@ -1326,7 +1366,23 @@ export function clearColumnsCellsFormat(ctx) {
1326
1366
  for (var columnIndex = startColumn; columnIndex <= endColumn; columnIndex++) {
1327
1367
  if (rowCells[columnIndex] === undefined) continue;
1328
1368
  rowCells[columnIndex] = keepOnlyValueParts(rowCells[columnIndex]);
1369
+ var v = (_b = rowCells[columnIndex]) !== null && _b !== void 0 ? _b : null;
1370
+ var key = "".concat(rowIndex, "_").concat(columnIndex);
1371
+ changeMap.set(key, {
1372
+ sheetId: ctx.currentSheetId,
1373
+ path: ["celldata"],
1374
+ key: key,
1375
+ value: {
1376
+ r: rowIndex,
1377
+ c: columnIndex,
1378
+ v: v
1379
+ },
1380
+ type: v == null ? "delete" : "update"
1381
+ });
1329
1382
  }
1330
1383
  }
1331
1384
  });
1385
+ if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _a === void 0 ? void 0 : _a.updateCellYdoc) && changeMap.size > 0) {
1386
+ ctx.hooks.updateCellYdoc(Array.from(changeMap.values()));
1387
+ }
1332
1388
  }