@fileverse-dev/fortune-core 1.3.10 → 1.3.11-input-ref-1

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 (43) hide show
  1. package/es/api/range.js +20 -0
  2. package/es/api/sheet.js +30 -2
  3. package/es/events/keyboard.js +50 -15
  4. package/es/events/mouse.js +62 -40
  5. package/es/events/paste.js +77 -28
  6. package/es/modules/cell.js +60 -2
  7. package/es/modules/comment.js +129 -24
  8. package/es/modules/dataVerification.js +34 -1
  9. package/es/modules/dropCell.js +65 -1
  10. package/es/modules/formula.d.ts +11 -0
  11. package/es/modules/formula.js +390 -47
  12. package/es/modules/hyperlink.js +52 -5
  13. package/es/modules/merge.js +93 -1
  14. package/es/modules/moveCells.js +35 -9
  15. package/es/modules/rowcol.js +75 -2
  16. package/es/modules/searchReplace.js +58 -2
  17. package/es/modules/selection.js +152 -42
  18. package/es/modules/sort.js +74 -9
  19. package/es/modules/splitColumn.js +21 -0
  20. package/es/modules/toolbar.js +46 -3
  21. package/es/settings.d.ts +5 -0
  22. package/lib/api/range.js +20 -0
  23. package/lib/api/sheet.js +29 -1
  24. package/lib/events/keyboard.js +49 -14
  25. package/lib/events/mouse.js +61 -39
  26. package/lib/events/paste.js +77 -28
  27. package/lib/modules/cell.js +60 -2
  28. package/lib/modules/comment.js +129 -24
  29. package/lib/modules/dataVerification.js +34 -1
  30. package/lib/modules/dropCell.js +65 -1
  31. package/lib/modules/formula.d.ts +11 -0
  32. package/lib/modules/formula.js +399 -47
  33. package/lib/modules/hyperlink.js +52 -5
  34. package/lib/modules/merge.js +93 -1
  35. package/lib/modules/moveCells.js +35 -9
  36. package/lib/modules/rowcol.js +75 -2
  37. package/lib/modules/searchReplace.js +58 -2
  38. package/lib/modules/selection.js +152 -42
  39. package/lib/modules/sort.js +74 -9
  40. package/lib/modules/splitColumn.js +21 -0
  41. package/lib/modules/toolbar.js +46 -3
  42. package/lib/settings.d.ts +5 -0
  43. package/package.json +1 -1
@@ -216,19 +216,19 @@ var handleFormulaOnPaste = function handleFormulaOnPaste(ctx, d) {
216
216
  cell.f = f;
217
217
  cell.m = v.toString();
218
218
  x[c] = cell;
219
+ changes.push({
220
+ sheetId: ctx.currentSheetId,
221
+ path: ["celldata"],
222
+ value: {
223
+ r: r,
224
+ c: c,
225
+ v: d[r][c]
226
+ },
227
+ key: "".concat(r, "_").concat(c),
228
+ type: "update"
229
+ });
219
230
  }
220
231
  d[r] = x;
221
- changes.push({
222
- sheetId: ctx.currentSheetId,
223
- path: ["celldata"],
224
- value: {
225
- r: r,
226
- c: c,
227
- v: d[r][c]
228
- },
229
- key: "".concat(r, "_").concat(c),
230
- type: "update"
231
- });
232
232
  }
233
233
  }
234
234
  if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _b === void 0 ? void 0 : _b.updateCellYdoc) {
@@ -362,7 +362,9 @@ function pasteHandler(ctx, data, borderInfo) {
362
362
  ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, ctx.currentSheetId)].config = cfg;
363
363
  }
364
364
  (0, _refresh.jfrefreshgrid)(ctx, null, undefined);
365
- handleFormulaOnPaste(ctx, d);
365
+ if (data.includes("=")) {
366
+ handleFormulaOnPaste(ctx, d);
367
+ }
366
368
  } else {
367
369
  data = data.replace(/\r/g, "");
368
370
  var dataChe = [];
@@ -492,17 +494,17 @@ function pasteHandler(ctx, data, borderInfo) {
492
494
  }
493
495
  x[c + curC] = cell;
494
496
  }
495
- changes.push(changes.push({
497
+ changes.push({
496
498
  sheetId: ctx.currentSheetId,
497
499
  path: ["celldata"],
498
500
  value: {
499
- r: r,
500
- c: c,
501
- v: d[r][c]
501
+ r: r + curR,
502
+ c: c + curC,
503
+ v: d[r + curR][c + curC]
502
504
  },
503
- key: "".concat(r, "_").concat(c),
505
+ key: "".concat(r + curR, "_").concat(c + curC),
504
506
  type: "update"
505
- }));
507
+ });
506
508
  }
507
509
  d[r + curR] = x;
508
510
  }
@@ -512,7 +514,9 @@ function pasteHandler(ctx, data, borderInfo) {
512
514
  last.row = [curR, curR + rlen - 1];
513
515
  last.column = [curC, curC + clen - 1];
514
516
  (0, _refresh.jfrefreshgrid)(ctx, null, undefined);
515
- handleFormulaOnPaste(ctx, d);
517
+ if (data.includes("=")) {
518
+ handleFormulaOnPaste(ctx, d);
519
+ }
516
520
  }
517
521
  }
518
522
  function setCellHyperlink(ctx, id, r, c, link) {
@@ -523,7 +527,7 @@ function setCellHyperlink(ctx, id, r, c, link) {
523
527
  ctx.luckysheetfile[index].hyperlink["".concat(r, "_").concat(c)] = link;
524
528
  }
525
529
  function pasteHandlerOfCutPaste(ctx, copyRange) {
526
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
530
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
527
531
  var allowEdit = (0, _utils.isAllowEdit)(ctx);
528
532
  if (!allowEdit || ctx.isFlvReadOnly) return;
529
533
  if (!copyRange) return;
@@ -566,6 +570,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
566
570
  if (addr > 0 || addc > 0) {
567
571
  (0, _sheet.expandRowsAndColumns)(d, addr, addc);
568
572
  }
573
+ var changes = [];
569
574
  var borderInfoCompute = (0, _border.getBorderInfoCompute)(ctx, copySheetId);
570
575
  var c_dataVerification = _lodash.default.cloneDeep(ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, copySheetId)].dataVerification) || {};
571
576
  var dataVerification = _lodash.default.cloneDeep(ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, ctx.currentSheetId)].dataVerification) || {};
@@ -597,6 +602,17 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
597
602
  delete cell.mc;
598
603
  }
599
604
  d[i][j] = null;
605
+ changes.push({
606
+ sheetId: ctx.currentSheetId,
607
+ path: ["celldata"],
608
+ value: {
609
+ r: i,
610
+ c: j,
611
+ v: null
612
+ },
613
+ key: "".concat(i, "_").concat(j),
614
+ type: "update"
615
+ });
600
616
  delete dataVerification["".concat(i, "_").concat(j)];
601
617
  (_f = ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, ctx.currentSheetId)].hyperlink) === null || _f === void 0 ? true : delete _f["".concat(i, "_").concat(j)];
602
618
  }
@@ -696,6 +712,17 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
696
712
  value = copyData[h - minh][c - minc];
697
713
  }
698
714
  x[c] = _lodash.default.cloneDeep(value);
715
+ changes.push({
716
+ sheetId: ctx.currentSheetId,
717
+ path: ["celldata"],
718
+ value: {
719
+ r: h,
720
+ c: c,
721
+ v: d[h][c]
722
+ },
723
+ key: "".concat(h, "_").concat(c),
724
+ type: "update"
725
+ });
699
726
  if (value != null && copyHasMC && ((_k = x[c]) === null || _k === void 0 ? void 0 : _k.mc)) {
700
727
  if (x[c].mc.rs != null) {
701
728
  x[c].mc.r = h;
@@ -716,6 +743,9 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
716
743
  }
717
744
  last.row = [minh, maxh];
718
745
  last.column = [minc, maxc];
746
+ if (changes.length > 0 && ((_l = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _l === void 0 ? void 0 : _l.updateCellYdoc)) {
747
+ ctx.hooks.updateCellYdoc(changes);
748
+ }
719
749
  if (copyRowlChange) {}
720
750
  var source;
721
751
  var target;
@@ -798,7 +828,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
798
828
  }
799
829
  source_curCdformat[i].cellrange = emptyRange;
800
830
  if (emptyRange2.length > 0) {
801
- var ruleObj = (_l = source_curCdformat[i]) !== null && _l !== void 0 ? _l : {};
831
+ var ruleObj = (_m = source_curCdformat[i]) !== null && _m !== void 0 ? _m : {};
802
832
  ruleObj.cellrange = emptyRange2;
803
833
  ruleArr.push(ruleObj);
804
834
  }
@@ -902,7 +932,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
902
932
  }
903
933
  }
904
934
  function pasteHandlerOfCopyPaste(ctx, copyRange) {
905
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
935
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
906
936
  var allowEdit = (0, _utils.isAllowEdit)(ctx);
907
937
  if (!allowEdit || ctx.isFlvReadOnly) return;
908
938
  if (!copyRange) return;
@@ -993,6 +1023,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
993
1023
  if (addr > 0 || addc > 0) {
994
1024
  (0, _sheet.expandRowsAndColumns)(d, addr, addc);
995
1025
  }
1026
+ var changes = [];
996
1027
  var borderInfoCompute = (0, _border.getBorderInfoCompute)(ctx, copySheetIndex);
997
1028
  var c_dataVerification = _lodash.default.cloneDeep(ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, copySheetIndex)].dataVerification) || {};
998
1029
  var dataVerification = null;
@@ -1082,6 +1113,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1082
1113
  value.m = "Loading...";
1083
1114
  }
1084
1115
  }
1116
+ var afterHookCalled = false;
1085
1117
  if (!_lodash.default.isNil(value) && !_lodash.default.isNil(value.f)) {
1086
1118
  var adjustedFormula = value.f;
1087
1119
  var isError = false;
@@ -1134,6 +1166,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1134
1166
  v: arr.length === 1 ? funcV[1] : value.v,
1135
1167
  m: funcV[1] instanceof Promise ? "[object Promise]" : funcV[1]
1136
1168
  }));
1169
+ afterHookCalled = true;
1137
1170
  }
1138
1171
  }
1139
1172
  if (!_lodash.default.isNil(value.spl)) {}
@@ -1154,6 +1187,19 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1154
1187
  };
1155
1188
  }
1156
1189
  }
1190
+ if (!(((_k = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _k === void 0 ? void 0 : _k.afterUpdateCell) && afterHookCalled)) {
1191
+ changes.push({
1192
+ sheetId: ctx.currentSheetId,
1193
+ path: ["celldata"],
1194
+ value: {
1195
+ r: h,
1196
+ c: c,
1197
+ v: d[h][c]
1198
+ },
1199
+ key: "".concat(h, "_").concat(c),
1200
+ type: "update"
1201
+ });
1202
+ }
1157
1203
  }
1158
1204
  d[h] = x;
1159
1205
  }
@@ -1165,7 +1211,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1165
1211
  var a_file = ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, ctx.currentSheetId)];
1166
1212
  var ruleArr_cf = _lodash.default.cloneDeep(c_file.luckysheet_conditionformat_save);
1167
1213
  if (!_lodash.default.isNil(ruleArr_cf) && ruleArr_cf.length > 0) {
1168
- cdformat = (_k = _lodash.default.cloneDeep(a_file.luckysheet_conditionformat_save)) !== null && _k !== void 0 ? _k : [];
1214
+ cdformat = (_l = _lodash.default.cloneDeep(a_file.luckysheet_conditionformat_save)) !== null && _l !== void 0 ? _l : [];
1169
1215
  for (var i = 0; i < ruleArr_cf.length; i += 1) {
1170
1216
  var cf_range = ruleArr_cf[i].cellrange;
1171
1217
  var emptyRange = [];
@@ -1201,8 +1247,8 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1201
1247
  file.config = cfg;
1202
1248
  file.luckysheet_conditionformat_save = cdformat;
1203
1249
  file.dataVerification = __assign(__assign({}, file.dataVerification), dataVerification);
1204
- 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) {
1205
- var srcIndex = (0, _utils.getSheetIndex)(ctx, (_o = ctx.luckysheet_copy_save) === null || _o === void 0 ? void 0 : _o.dataSheetId);
1250
+ 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) {
1251
+ var srcIndex = (0, _utils.getSheetIndex)(ctx, (_p = ctx.luckysheet_copy_save) === null || _p === void 0 ? void 0 : _p.dataSheetId);
1206
1252
  var targetSheetIndex = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
1207
1253
  var srcHyperlinks = ctx.luckysheetfile[srcIndex].hyperlink;
1208
1254
  var srcData = ctx.luckysheetfile[srcIndex].data;
@@ -1213,7 +1259,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1213
1259
  var isSingleCell = copyh === 1 && copyc === 1;
1214
1260
  var cachedSrcLinkKey = isSingleCell ? "".concat(c_r1, "_").concat(c_c1) : null;
1215
1261
  var cachedSrcLink = isSingleCell && srcHyperlinks ? srcHyperlinks[cachedSrcLinkKey] : null;
1216
- var cachedSrcCell = isSingleCell && srcData ? (_p = srcData[c_r1]) === null || _p === void 0 ? void 0 : _p[c_c1] : null;
1262
+ var cachedSrcCell = isSingleCell && srcData ? (_q = srcData[c_r1]) === null || _q === void 0 ? void 0 : _q[c_c1] : null;
1217
1263
  for (var th = 1; th <= timesH; th += 1) {
1218
1264
  for (var tc = 1; tc <= timesC; tc += 1) {
1219
1265
  var linkMth = minh + (th - 1) * copyh;
@@ -1233,7 +1279,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1233
1279
  if (!srcLink) continue;
1234
1280
  var targetKey = "".concat(h, "_").concat(c);
1235
1281
  targetHyperlinks[targetKey] = srcLink;
1236
- var cell = (_q = d[h]) === null || _q === void 0 ? void 0 : _q[c];
1282
+ var cell = (_r = d[h]) === null || _r === void 0 ? void 0 : _r[c];
1237
1283
  if (cell) {
1238
1284
  var srcCell = void 0;
1239
1285
  if (isSingleCell && cachedSrcCell) {
@@ -1241,7 +1287,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1241
1287
  } else {
1242
1288
  var srcRow = c_r1 + (h - linkMth);
1243
1289
  var srcCol = c_c1 + (c - linkMtc);
1244
- srcCell = (_r = srcData === null || srcData === void 0 ? void 0 : srcData[srcRow]) === null || _r === void 0 ? void 0 : _r[srcCol];
1290
+ srcCell = (_s = srcData === null || srcData === void 0 ? void 0 : srcData[srcRow]) === null || _s === void 0 ? void 0 : _s[srcCol];
1245
1291
  }
1246
1292
  cell.hl = {
1247
1293
  r: h,
@@ -1261,6 +1307,9 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1261
1307
  }
1262
1308
  }
1263
1309
  }
1310
+ if (changes.length > 0 && ((_t = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _t === void 0 ? void 0 : _t.updateCellYdoc)) {
1311
+ ctx.hooks.updateCellYdoc(changes);
1312
+ }
1264
1313
  if (copyRowlChange || addr > 0 || addc > 0) {
1265
1314
  (0, _refresh.jfrefreshgrid)(ctx, d, ctx.luckysheet_select_save);
1266
1315
  } else {
@@ -574,6 +574,8 @@ function cancelNormalSelected(ctx) {
574
574
  ctx.formulaCache.rangestart = false;
575
575
  ctx.formulaCache.rangedrag_column_start = false;
576
576
  ctx.formulaCache.rangedrag_row_start = false;
577
+ ctx.formulaCache.rangeSelectionActive = null;
578
+ ctx.formulaCache.formulaEditorOwner = null;
577
579
  }
578
580
  function updateCell(ctx, r, c, $input, value, canvas) {
579
581
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
@@ -842,7 +844,7 @@ function updateCell(ctx, r, c, $input, value, canvas) {
842
844
  var newValue_1 = _lodash.default.cloneDeep(d[r][c]);
843
845
  setTimeout(function () {
844
846
  var _a, _b;
845
- return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, null, newValue_1);
847
+ return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, oldValue_1, newValue_1);
846
848
  });
847
849
  }
848
850
  ctx.formulaCache.execFunctionGlobalData = null;
@@ -1295,13 +1297,16 @@ function keepOnlyValueParts(cell) {
1295
1297
  } : null;
1296
1298
  }
1297
1299
  function clearSelectedCellFormat(ctx) {
1300
+ var _a;
1298
1301
  var activeSheetIndex = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
1299
1302
  if (activeSheetIndex == null) return;
1303
+ var changeMap = new Map();
1300
1304
  var activeSheetFile = ctx.luckysheetfile[activeSheetIndex];
1301
1305
  var selectedRanges = ctx.luckysheet_select_save;
1302
1306
  if (!activeSheetFile || !selectedRanges) return;
1303
1307
  var sheetData = activeSheetFile.data;
1304
1308
  selectedRanges.forEach(function (_a) {
1309
+ var _b;
1305
1310
  var rowRange = _a.row,
1306
1311
  columnRange = _a.column;
1307
1312
  var startRow = rowRange[0],
@@ -1314,20 +1319,38 @@ function clearSelectedCellFormat(ctx) {
1314
1319
  for (var columnIndex = startColumn; columnIndex <= endColumn; columnIndex++) {
1315
1320
  if (rowCells[columnIndex] === undefined) continue;
1316
1321
  rowCells[columnIndex] = keepOnlyValueParts(rowCells[columnIndex]);
1322
+ var v = (_b = rowCells[columnIndex]) !== null && _b !== void 0 ? _b : null;
1323
+ var key = "".concat(rowIndex, "_").concat(columnIndex);
1324
+ changeMap.set(key, {
1325
+ sheetId: ctx.currentSheetId,
1326
+ path: ["celldata"],
1327
+ key: key,
1328
+ value: {
1329
+ r: rowIndex,
1330
+ c: columnIndex,
1331
+ v: v
1332
+ },
1333
+ type: v == null ? "delete" : "update"
1334
+ });
1317
1335
  }
1318
1336
  }
1319
1337
  });
1338
+ if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _a === void 0 ? void 0 : _a.updateCellYdoc) && changeMap.size > 0) {
1339
+ ctx.hooks.updateCellYdoc(Array.from(changeMap.values()));
1340
+ }
1320
1341
  }
1321
1342
  function clearRowsCellsFormat(ctx) {
1322
- var _a, _b;
1343
+ var _a, _b, _c;
1323
1344
  var activeSheetIndex = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
1324
1345
  if (activeSheetIndex == null) return;
1346
+ var changeMap = new Map();
1325
1347
  var activeSheetFile = ctx.luckysheetfile[activeSheetIndex];
1326
1348
  var selectedRanges = ctx.luckysheet_select_save;
1327
1349
  if (!activeSheetFile || !selectedRanges) return;
1328
1350
  var sheetData = activeSheetFile.data;
1329
1351
  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;
1330
1352
  selectedRanges.forEach(function (_a) {
1353
+ var _b;
1331
1354
  var rowRange = _a.row;
1332
1355
  var startRow = rowRange[0],
1333
1356
  endRow = rowRange[1];
@@ -1337,19 +1360,38 @@ function clearRowsCellsFormat(ctx) {
1337
1360
  for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) {
1338
1361
  if (rowCells[columnIndex] === undefined) continue;
1339
1362
  rowCells[columnIndex] = keepOnlyValueParts(rowCells[columnIndex]);
1363
+ var v = (_b = rowCells[columnIndex]) !== null && _b !== void 0 ? _b : null;
1364
+ var key = "".concat(rowIndex, "_").concat(columnIndex);
1365
+ changeMap.set(key, {
1366
+ sheetId: ctx.currentSheetId,
1367
+ path: ["celldata"],
1368
+ key: key,
1369
+ value: {
1370
+ r: rowIndex,
1371
+ c: columnIndex,
1372
+ v: v
1373
+ },
1374
+ type: v == null ? "delete" : "update"
1375
+ });
1340
1376
  }
1341
1377
  }
1342
1378
  });
1379
+ if (((_c = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc) && changeMap.size > 0) {
1380
+ ctx.hooks.updateCellYdoc(Array.from(changeMap.values()));
1381
+ }
1343
1382
  }
1344
1383
  function clearColumnsCellsFormat(ctx) {
1384
+ var _a;
1345
1385
  var activeSheetIndex = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
1346
1386
  if (activeSheetIndex == null) return;
1387
+ var changeMap = new Map();
1347
1388
  var activeSheetFile = ctx.luckysheetfile[activeSheetIndex];
1348
1389
  var selectedRanges = ctx.luckysheet_select_save;
1349
1390
  if (!activeSheetFile || !selectedRanges) return;
1350
1391
  var sheetData = activeSheetFile.data;
1351
1392
  var rowCount = sheetData.length;
1352
1393
  selectedRanges.forEach(function (_a) {
1394
+ var _b;
1353
1395
  var columnRange = _a.column;
1354
1396
  var startColumn = columnRange[0],
1355
1397
  endColumn = columnRange[1];
@@ -1359,7 +1401,23 @@ function clearColumnsCellsFormat(ctx) {
1359
1401
  for (var columnIndex = startColumn; columnIndex <= endColumn; columnIndex++) {
1360
1402
  if (rowCells[columnIndex] === undefined) continue;
1361
1403
  rowCells[columnIndex] = keepOnlyValueParts(rowCells[columnIndex]);
1404
+ var v = (_b = rowCells[columnIndex]) !== null && _b !== void 0 ? _b : null;
1405
+ var key = "".concat(rowIndex, "_").concat(columnIndex);
1406
+ changeMap.set(key, {
1407
+ sheetId: ctx.currentSheetId,
1408
+ path: ["celldata"],
1409
+ key: key,
1410
+ value: {
1411
+ r: rowIndex,
1412
+ c: columnIndex,
1413
+ v: v
1414
+ },
1415
+ type: v == null ? "delete" : "update"
1416
+ });
1362
1417
  }
1363
1418
  }
1364
1419
  });
1420
+ if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _a === void 0 ? void 0 : _a.updateCellYdoc) && changeMap.size > 0) {
1421
+ ctx.hooks.updateCellYdoc(Array.from(changeMap.values()));
1422
+ }
1365
1423
  }
@@ -191,7 +191,7 @@ function setEditingComment(ctx, flowdata, r, c) {
191
191
  ctx.editingCommentBox = getCommentBoxByRC(ctx, flowdata, r, c);
192
192
  }
193
193
  function removeEditingComment(ctx, globalCache) {
194
- var _a, _b;
194
+ var _a, _b, _c;
195
195
  var editingCommentBoxEle = globalCache.editingCommentBoxEle;
196
196
  ctx.editingCommentBox = undefined;
197
197
  var r = editingCommentBoxEle === null || editingCommentBoxEle === void 0 ? void 0 : editingCommentBoxEle.dataset.r;
@@ -215,6 +215,19 @@ function removeEditingComment(ctx, globalCache) {
215
215
  return v.rc !== "".concat(r, "_").concat(c);
216
216
  });
217
217
  }
218
+ if ((_c = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc) {
219
+ ctx.hooks.updateCellYdoc([{
220
+ sheetId: ctx.currentSheetId,
221
+ path: ["celldata"],
222
+ value: {
223
+ r: r,
224
+ c: c,
225
+ v: cell
226
+ },
227
+ key: "".concat(r, "_").concat(c),
228
+ type: "update"
229
+ }]);
230
+ }
218
231
  if (ctx.hooks.afterUpdateComment) {
219
232
  setTimeout(function () {
220
233
  var _a, _b;
@@ -223,7 +236,7 @@ function removeEditingComment(ctx, globalCache) {
223
236
  }
224
237
  }
225
238
  function newComment(ctx, globalCache, r, c) {
226
- var _a, _b;
239
+ var _a, _b, _c, _d;
227
240
  if (((_b = (_a = ctx.hooks).beforeInsertComment) === null || _b === void 0 ? void 0 : _b.call(_a, r, c)) === false) {
228
241
  return;
229
242
  }
@@ -248,6 +261,19 @@ function newComment(ctx, globalCache, r, c) {
248
261
  ctx.editingCommentBox = __assign(__assign({}, getCommentBoxByRC(ctx, flowdata, r, c)), {
249
262
  autoFocus: true
250
263
  });
264
+ if ((_c = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc) {
265
+ ctx.hooks.updateCellYdoc([{
266
+ sheetId: ctx.currentSheetId,
267
+ path: ["celldata"],
268
+ value: {
269
+ r: r,
270
+ c: c,
271
+ v: (_d = flowdata[r][c]) !== null && _d !== void 0 ? _d : null
272
+ },
273
+ key: "".concat(r, "_").concat(c),
274
+ type: "update"
275
+ }]);
276
+ }
251
277
  if (ctx.hooks.afterInsertComment) {
252
278
  setTimeout(function () {
253
279
  var _a, _b;
@@ -274,7 +300,7 @@ function editComment(ctx, globalCache, r, c) {
274
300
  }
275
301
  }
276
302
  function deleteComment(ctx, globalCache, r, c) {
277
- var _a, _b;
303
+ var _a, _b, _c;
278
304
  var allowEdit = (0, _utils.isAllowEdit)(ctx);
279
305
  if (!allowEdit) return;
280
306
  if (((_b = (_a = ctx.hooks).beforeDeleteComment) === null || _b === void 0 ? void 0 : _b.call(_a, r, c)) === false) {
@@ -285,6 +311,19 @@ function deleteComment(ctx, globalCache, r, c) {
285
311
  var cell = flowdata[r][c];
286
312
  if (!cell) return;
287
313
  cell.ps = undefined;
314
+ if ((_c = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc) {
315
+ ctx.hooks.updateCellYdoc([{
316
+ sheetId: ctx.currentSheetId,
317
+ path: ["celldata"],
318
+ value: {
319
+ r: r,
320
+ c: c,
321
+ v: cell
322
+ },
323
+ key: "".concat(r, "_").concat(c),
324
+ type: "update"
325
+ }]);
326
+ }
288
327
  if (ctx.hooks.afterDeleteComment) {
289
328
  setTimeout(function () {
290
329
  var _a, _b;
@@ -304,7 +343,7 @@ function showComments(ctx, commentShowCells) {
304
343
  }
305
344
  }
306
345
  function showHideComment(ctx, globalCache, r, c) {
307
- var _a;
346
+ var _a, _b, _c;
308
347
  var flowdata = (0, _context.getFlowdata)(ctx);
309
348
  var comment = (_a = flowdata === null || flowdata === void 0 ? void 0 : flowdata[r][c]) === null || _a === void 0 ? void 0 : _a.ps;
310
349
  if (!comment) return;
@@ -318,9 +357,23 @@ function showHideComment(ctx, globalCache, r, c) {
318
357
  } else {
319
358
  comment.isShow = true;
320
359
  }
360
+ var cell = (_b = flowdata === null || flowdata === void 0 ? void 0 : flowdata[r]) === null || _b === void 0 ? void 0 : _b[c];
361
+ if (cell && ((_c = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc)) {
362
+ ctx.hooks.updateCellYdoc([{
363
+ sheetId: ctx.currentSheetId,
364
+ path: ["celldata"],
365
+ value: {
366
+ r: r,
367
+ c: c,
368
+ v: cell
369
+ },
370
+ key: "".concat(r, "_").concat(c),
371
+ type: "update"
372
+ }]);
373
+ }
321
374
  }
322
375
  function showHideAllComments(ctx) {
323
- var _a, _b;
376
+ var _a, _b, _c, _d, _e;
324
377
  var flowdata = (0, _context.getFlowdata)(ctx);
325
378
  if (!flowdata) return;
326
379
  var isAllShow = true;
@@ -341,29 +394,55 @@ function showHideAllComments(ctx) {
341
394
  }
342
395
  var rcs = [];
343
396
  if (allComments.length > 0) {
397
+ var cellChanges = [];
344
398
  if (isAllShow) {
345
399
  for (var i = 0; i < allComments.length; i += 1) {
346
- var _c = allComments[i],
347
- r = _c.r,
348
- c = _c.c;
400
+ var _f = allComments[i],
401
+ r = _f.r,
402
+ c = _f.c;
349
403
  var comment = (_a = flowdata[r][c]) === null || _a === void 0 ? void 0 : _a.ps;
350
404
  if (comment === null || comment === void 0 ? void 0 : comment.isShow) {
351
405
  comment.isShow = false;
352
406
  rcs.push("".concat(r, "_").concat(c));
407
+ cellChanges.push({
408
+ sheetId: ctx.currentSheetId,
409
+ path: ["celldata"],
410
+ value: {
411
+ r: r,
412
+ c: c,
413
+ v: (_b = flowdata[r][c]) !== null && _b !== void 0 ? _b : null
414
+ },
415
+ key: "".concat(r, "_").concat(c),
416
+ type: "update"
417
+ });
353
418
  }
354
419
  }
355
420
  ctx.commentBoxes = [];
356
421
  } else {
357
422
  for (var i = 0; i < allComments.length; i += 1) {
358
- var _d = allComments[i],
359
- r = _d.r,
360
- c = _d.c;
361
- var comment = (_b = flowdata[r][c]) === null || _b === void 0 ? void 0 : _b.ps;
423
+ var _g = allComments[i],
424
+ r = _g.r,
425
+ c = _g.c;
426
+ var comment = (_c = flowdata[r][c]) === null || _c === void 0 ? void 0 : _c.ps;
362
427
  if (comment && !comment.isShow) {
363
428
  comment.isShow = true;
429
+ cellChanges.push({
430
+ sheetId: ctx.currentSheetId,
431
+ path: ["celldata"],
432
+ value: {
433
+ r: r,
434
+ c: c,
435
+ v: (_d = flowdata[r][c]) !== null && _d !== void 0 ? _d : null
436
+ },
437
+ key: "".concat(r, "_").concat(c),
438
+ type: "update"
439
+ });
364
440
  }
365
441
  }
366
442
  }
443
+ if (cellChanges.length > 0 && ((_e = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _e === void 0 ? void 0 : _e.updateCellYdoc)) {
444
+ ctx.hooks.updateCellYdoc(cellChanges);
445
+ }
367
446
  }
368
447
  }
369
448
  function removeOverShowComment(ctx) {
@@ -525,13 +604,13 @@ function onCommentBoxResize(ctx, globalCache, e) {
525
604
  return false;
526
605
  }
527
606
  function onCommentBoxResizeEnd(ctx, globalCache) {
528
- var _a;
607
+ var _a, _b;
529
608
  if ((_a = globalCache.commentBox) === null || _a === void 0 ? void 0 : _a.resizingId) {
530
- var _b = globalCache.commentBox,
531
- resizingId = _b.resizingId,
532
- _c = _b.commentRC,
533
- r = _c.r,
534
- c = _c.c;
609
+ var _c = globalCache.commentBox,
610
+ resizingId = _c.resizingId,
611
+ _d = _c.commentRC,
612
+ r = _d.r,
613
+ c = _d.c;
535
614
  globalCache.commentBox.resizingId = undefined;
536
615
  var position = getCommentBoxPosition(resizingId);
537
616
  if (position) {
@@ -547,6 +626,19 @@ function onCommentBoxResizeEnd(ctx, globalCache) {
547
626
  cell.ps.width = width / ctx.zoomRatio;
548
627
  cell.ps.height = height / ctx.zoomRatio;
549
628
  setEditingComment(ctx, flowdata, r, c);
629
+ if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _b === void 0 ? void 0 : _b.updateCellYdoc) {
630
+ ctx.hooks.updateCellYdoc([{
631
+ sheetId: ctx.currentSheetId,
632
+ path: ["celldata"],
633
+ value: {
634
+ r: r,
635
+ c: c,
636
+ v: cell
637
+ },
638
+ key: "".concat(r, "_").concat(c),
639
+ type: "update"
640
+ }]);
641
+ }
550
642
  }
551
643
  }
552
644
  }
@@ -598,13 +690,13 @@ function onCommentBoxMove(ctx, globalCache, e) {
598
690
  return false;
599
691
  }
600
692
  function onCommentBoxMoveEnd(ctx, globalCache) {
601
- var _a;
693
+ var _a, _b;
602
694
  if ((_a = globalCache.commentBox) === null || _a === void 0 ? void 0 : _a.movingId) {
603
- var _b = globalCache.commentBox,
604
- movingId = _b.movingId,
605
- _c = _b.commentRC,
606
- r = _c.r,
607
- c = _c.c;
695
+ var _c = globalCache.commentBox,
696
+ movingId = _c.movingId,
697
+ _d = _c.commentRC,
698
+ r = _d.r,
699
+ c = _d.c;
608
700
  globalCache.commentBox.movingId = undefined;
609
701
  var position = getCommentBoxPosition(movingId);
610
702
  if (position) {
@@ -616,6 +708,19 @@ function onCommentBoxMoveEnd(ctx, globalCache) {
616
708
  cell.ps.left = left / ctx.zoomRatio;
617
709
  cell.ps.top = top_5 / ctx.zoomRatio;
618
710
  setEditingComment(ctx, flowdata, r, c);
711
+ if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _b === void 0 ? void 0 : _b.updateCellYdoc) {
712
+ ctx.hooks.updateCellYdoc([{
713
+ sheetId: ctx.currentSheetId,
714
+ path: ["celldata"],
715
+ value: {
716
+ r: r,
717
+ c: c,
718
+ v: cell
719
+ },
720
+ key: "".concat(r, "_").concat(c),
721
+ type: "update"
722
+ }]);
723
+ }
619
724
  }
620
725
  }
621
726
  }