@fileverse-dev/fortune-core 1.3.12-mixed-a → 1.3.13-create-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.
@@ -1,6 +1,6 @@
1
1
  import _ from "lodash";
2
2
  import { getFlowdata } from "../context";
3
- import { cancelActiveImgItem, cancelPaintModel, functionHTMLGenerate, israngeseleciton, rangeHightlightselected, rangeSetValue, onCommentBoxMove, onCommentBoxMoveEnd, onCommentBoxResize, onCommentBoxResizeEnd, onImageMove, onImageMoveEnd, onImageResize, onImageResizeEnd, removeEditingComment, removeOverShowComment, rangeDrag, onFormulaRangeDragEnd, createFormulaRangeSelect, createRangeHightlight, onCellsMoveEnd, onCellsMove, cellFocus, editComment, onIframeMoveEnd, onIframeResizeEnd, overShowError } from "../modules";
3
+ import { cancelActiveImgItem, cancelPaintModel, functionHTMLGenerate, israngeseleciton, maybeRecoverDirtyRangeSelection, rangeHightlightselected, rangeSetValue, getFormulaEditorOwner, onCommentBoxMove, onCommentBoxMoveEnd, onCommentBoxResize, onCommentBoxResizeEnd, onImageMove, onImageMoveEnd, onImageResize, onImageResizeEnd, removeEditingComment, removeOverShowComment, rangeDrag, onFormulaRangeDragEnd, createFormulaRangeSelect, createRangeHightlight, onCellsMoveEnd, onCellsMove, cellFocus, editComment, onIframeMoveEnd, onIframeResizeEnd, overShowError } from "../modules";
4
4
  import { getFrozenHandleLeft, getFrozenHandleTop, scrollToFrozenRowCol } from "../modules/freeze";
5
5
  import { cancelFunctionrangeSelected, mergeBorder, mergeMoveMain, updateCell, luckysheetUpdateCell } from "../modules/cell";
6
6
  import { colLocation, colLocationByIndex, rowLocation, rowLocationByIndex } from "../modules/location";
@@ -106,7 +106,7 @@ export function fixPositionOnFrozenCells(freeze, x, y, mouseX, mouseY) {
106
106
  }
107
107
  export function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxInput, canvas) {
108
108
  var _a, _b;
109
- var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
109
+ var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
110
110
  if (!(fxInput === null || fxInput === void 0 ? void 0 : fxInput.innerHTML) && ctx) {
111
111
  ctx.defaultCandidates = [];
112
112
  }
@@ -125,11 +125,11 @@ export function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, containe
125
125
  return;
126
126
  }
127
127
  var freeze = (_c = globalCache.freezen) === null || _c === void 0 ? void 0 : _c[ctx.currentSheetId];
128
- var _q = fixPositionOnFrozenCells(freeze, _x, _y, mouseX, mouseY),
129
- x = _q.x,
130
- y = _q.y,
131
- inHorizontalFreeze = _q.inHorizontalFreeze,
132
- inVerticalFreeze = _q.inVerticalFreeze;
128
+ var _p = fixPositionOnFrozenCells(freeze, _x, _y, mouseX, mouseY),
129
+ x = _p.x,
130
+ y = _p.y,
131
+ inHorizontalFreeze = _p.inHorizontalFreeze,
132
+ inVerticalFreeze = _p.inVerticalFreeze;
133
133
  var row_location = rowLocation(y, ctx.visibledatarow);
134
134
  var row = row_location[1];
135
135
  var row_pre = row_location[0];
@@ -174,12 +174,8 @@ export function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, containe
174
174
  }
175
175
  ctx.luckysheet_scroll_status = true;
176
176
  if (ctx.luckysheetCellUpdate.length > 0) {
177
- var parser = new DOMParser();
178
- var doc = parser.parseFromString("<div>".concat((_g = document.getElementById("luckysheet-rich-text-editor")) === null || _g === void 0 ? void 0 : _g.innerHTML, "</div>"), "text/html");
179
- var spans = doc.querySelectorAll("span");
180
- var firstSpan = spans[0];
181
- var lastSpan = spans[spans.length - 1];
182
- if ((ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start || israngeseleciton(ctx) || (firstSpan === null || firstSpan === void 0 ? void 0 : firstSpan.innerText.includes("=")) && !(lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.innerText.includes(")"))) && lastSpan && ctx.luckysheetCellUpdate.length === 2) {
177
+ if (ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start || israngeseleciton(ctx)) {
178
+ var formulaEditorForCmdComma = getFormulaEditorOwner(ctx) === "fx" && fxInput ? fxInput : cellInput;
183
179
  var rowseleted = [row_index, row_index_ed];
184
180
  var columnseleted = [col_index, col_index_ed];
185
181
  var left = col_pre;
@@ -246,13 +242,14 @@ export function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, containe
246
242
  last.top_move = top_1;
247
243
  last.height_move = height;
248
244
  ctx.formulaCache.func_selectedrange = last;
249
- } else if (e.ctrlKey && ((_h = _.last(cellInput.querySelectorAll("span"))) === null || _h === void 0 ? void 0 : _h.innerText) !== ",") {
250
- var vText = cellInput.innerText;
245
+ } else if ((e.ctrlKey || e.metaKey) && ((_g = _.last(formulaEditorForCmdComma.querySelectorAll("span"))) === null || _g === void 0 ? void 0 : _g.innerText) !== ",") {
246
+ var didCmdCommaFormulaHtml = false;
247
+ var vText = formulaEditorForCmdComma.innerText;
251
248
  if (vText[vText.length - 1] === ")") {
252
249
  vText = vText.substring(0, vText.length - 1);
253
250
  }
254
251
  if (vText.length > 0) {
255
- var lastWord = vText.substring(vText.length - 1, 1);
252
+ var lastWord = vText.slice(-1);
256
253
  if (lastWord !== "," && lastWord !== "=" && lastWord !== "(") {
257
254
  vText += ",";
258
255
  }
@@ -262,21 +259,27 @@ export function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, containe
262
259
  if (window.getSelection) {
263
260
  var currSelection = window.getSelection();
264
261
  if (currSelection == null) return;
265
- ctx.formulaCache.functionRangeIndex = [_.indexOf((_l = (_k = (_j = currSelection.anchorNode) === null || _j === void 0 ? void 0 : _j.parentNode) === null || _k === void 0 ? void 0 : _k.parentNode) === null || _l === void 0 ? void 0 : _l.childNodes, (_m = currSelection.anchorNode) === null || _m === void 0 ? void 0 : _m.parentNode), currSelection.anchorOffset];
262
+ ctx.formulaCache.functionRangeIndex = [_.indexOf((_k = (_j = (_h = currSelection.anchorNode) === null || _h === void 0 ? void 0 : _h.parentNode) === null || _j === void 0 ? void 0 : _j.parentNode) === null || _k === void 0 ? void 0 : _k.childNodes, (_l = currSelection.anchorNode) === null || _l === void 0 ? void 0 : _l.parentNode), currSelection.anchorOffset];
266
263
  } else {
267
264
  var textRange = document.selection.createRange();
268
265
  ctx.formulaCache.functionRangeIndex = textRange;
269
266
  }
270
267
  cellInput.innerHTML = vText;
268
+ if (fxInput) fxInput.innerHTML = vText;
271
269
  cancelFunctionrangeSelected(ctx);
272
270
  createRangeHightlight(ctx, vText);
271
+ didCmdCommaFormulaHtml = true;
273
272
  }
274
273
  ctx.formulaCache.rangestart = false;
275
274
  ctx.formulaCache.rangedrag_column_start = false;
276
275
  ctx.formulaCache.rangedrag_row_start = false;
277
- if (fxInput) fxInput.innerHTML = vText;
278
- rangeHightlightselected(ctx, cellInput);
276
+ rangeHightlightselected(ctx, formulaEditorForCmdComma);
279
277
  israngeseleciton(ctx);
278
+ if (didCmdCommaFormulaHtml) {
279
+ ctx.formulaCache.rangechangeindex = undefined;
280
+ var ch = formulaEditorForCmdComma.childNodes;
281
+ ctx.formulaCache.rangeSetValueTo = ch.length > 0 ? ch[ch.length - 1] : undefined;
282
+ }
280
283
  ctx.formulaCache.func_selectedrange = {
281
284
  left: left,
282
285
  width: width,
@@ -307,13 +310,15 @@ export function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, containe
307
310
  column_focus: col_index
308
311
  };
309
312
  }
313
+ ctx.formulaCache.rangestart = true;
314
+ ctx.formulaCache.rangedrag_column_start = false;
315
+ ctx.formulaCache.rangedrag_row_start = false;
316
+ ctx.formulaCache.rangeSelectionActive = true;
310
317
  rangeSetValue(ctx, cellInput, {
311
318
  row: rowseleted,
312
319
  column: columnseleted
313
320
  }, fxInput);
314
- ctx.formulaCache.rangestart = true;
315
- ctx.formulaCache.rangedrag_column_start = false;
316
- ctx.formulaCache.rangedrag_row_start = false;
321
+ rangeHightlightselected(ctx, cellInput);
317
322
  ctx.formulaCache.selectingRangeIndex = ctx.formulaCache.rangechangeindex;
318
323
  if (ctx.formulaCache.rangechangeindex > ctx.formulaRangeHighlight.length) {
319
324
  createRangeHightlight(ctx, cellInput.innerHTML, ctx.formulaCache.rangechangeindex);
@@ -336,7 +341,7 @@ export function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, containe
336
341
  }
337
342
  if (ctx.luckysheet_select_status) {
338
343
  if (e.shiftKey) {
339
- var last = (_o = ctx.luckysheet_select_save) === null || _o === void 0 ? void 0 : _o[ctx.luckysheet_select_save.length - 1];
344
+ var last = (_m = ctx.luckysheet_select_save) === null || _m === void 0 ? void 0 : _m[ctx.luckysheet_select_save.length - 1];
340
345
  if (last && last.top != null && last.left != null && last.height != null && last.width != null && last.row_focus != null && last.column_focus != null) {
341
346
  var top_2 = 0;
342
347
  var height = 0;
@@ -395,7 +400,7 @@ export function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, containe
395
400
  ctx.luckysheet_select_save[ctx.luckysheet_select_save.length - 1] = last;
396
401
  }
397
402
  } else if (e.ctrlKey || e.metaKey) {
398
- (_p = ctx.luckysheet_select_save) === null || _p === void 0 ? void 0 : _p.push({
403
+ (_o = ctx.luckysheet_select_save) === null || _o === void 0 ? void 0 : _o.push({
399
404
  left: col_pre,
400
405
  width: col - col_pre - 1,
401
406
  top: row_pre,
@@ -488,6 +493,7 @@ export function handleCellAreaDoubleClick(ctx, globalCache, settings, e, contain
488
493
  col_index = column_focus;
489
494
  }
490
495
  globalCache.enteredEditByTyping = false;
496
+ delete globalCache.pendingTypeOverCell;
491
497
  luckysheetUpdateCell(ctx, row_index, col_index);
492
498
  }
493
499
  export function handleContextMenu(ctx, settings, e, workbookContainer, container, area) {
@@ -828,10 +834,28 @@ export function mouseRender(ctx, globalCache, e, cellInput, scrollX, scrollY, co
828
834
  ctx.luckysheet_select_save[ctx.luckysheet_select_save.length - 1] = last;
829
835
  scrollToFrozenRowCol(ctx, (_d = globalCache.freezen) === null || _d === void 0 ? void 0 : _d[ctx.currentSheetId]);
830
836
  } else if (ctx.formulaCache.rangestart) {
837
+ if (ctx.formulaCache.rangeSelectionActive === false && !maybeRecoverDirtyRangeSelection(ctx)) {
838
+ if (ctx.luckysheetCellUpdate.length > 0) {
839
+ updateCell(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput);
840
+ }
841
+ return;
842
+ }
831
843
  rangeDrag(ctx, e, cellInput, scrollX.scrollLeft, scrollY.scrollTop, container, fxInput);
832
844
  } else if (ctx.formulaCache.rangedrag_row_start) {
845
+ if (ctx.formulaCache.rangeSelectionActive === false && !maybeRecoverDirtyRangeSelection(ctx)) {
846
+ if (ctx.luckysheetCellUpdate.length > 0) {
847
+ updateCell(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput);
848
+ }
849
+ return;
850
+ }
833
851
  rangeDragRow(ctx, e, cellInput, scrollX.scrollLeft, scrollY.scrollTop, container, fxInput);
834
852
  } else if (ctx.formulaCache.rangedrag_column_start) {
853
+ if (ctx.formulaCache.rangeSelectionActive === false && !maybeRecoverDirtyRangeSelection(ctx)) {
854
+ if (ctx.luckysheetCellUpdate.length > 0) {
855
+ updateCell(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput);
856
+ }
857
+ return;
858
+ }
835
859
  rangeDragColumn(ctx, e, cellInput, scrollX.scrollLeft, scrollY.scrollTop, container, fxInput);
836
860
  } else if (ctx.luckysheet_rows_selected_status) {} else if (ctx.luckysheet_cols_selected_status) {} else if (ctx.luckysheet_cell_selected_move) {} else if (ctx.luckysheet_cell_selected_extend) {
837
861
  onDropCellSelect(ctx, e, scrollX, scrollY, container);
@@ -937,7 +961,7 @@ export function handleOverlayMouseMove(ctx, globalCache, e, cellInput, scrollX,
937
961
  }
938
962
  }
939
963
  export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollbarY, container, cellInput, fxInput) {
940
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
964
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
941
965
  var rect = container.getBoundingClientRect();
942
966
  onImageMoveEnd(ctx, globalCache);
943
967
  onImageResizeEnd(ctx, globalCache);
@@ -950,11 +974,17 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
950
974
  onRangeSelectionModalMoveEnd(globalCache);
951
975
  onCellsMoveEnd(ctx, globalCache, e, scrollbarX, scrollbarY, container);
952
976
  if (ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start) {
953
- if (((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.id) === "luckysheet-functionbox-cell") {
977
+ if (getFormulaEditorOwner(ctx) === "fx") {
954
978
  handleFormulaInput(ctx, cellInput, fxInput, 0, undefined, false);
955
979
  } else {
956
980
  handleFormulaInput(ctx, fxInput, cellInput, 0, undefined, false);
957
981
  }
982
+ ctx.luckysheet_select_status = false;
983
+ ctx.luckysheet_scroll_status = false;
984
+ ctx.luckysheet_rows_selected_status = false;
985
+ ctx.luckysheet_cols_selected_status = false;
986
+ e.preventDefault();
987
+ return;
958
988
  }
959
989
  if (ctx.luckysheet_select_status) {
960
990
  if (ctx.luckysheetPaintModelOn) {
@@ -996,10 +1026,10 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
996
1026
  cfg_1.customHeight[ctx.luckysheet_rows_change_size_start[1]] = 1;
997
1027
  var changeRowIndex_1 = ctx.luckysheet_rows_change_size_start[1];
998
1028
  var changeRowSelected_1 = false;
999
- if (((_c = (_b = ctx.luckysheet_select_save) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0) {
1000
- (_e = (_d = ctx.luckysheet_select_save) === null || _d === void 0 ? void 0 : _d.filter(function (select) {
1029
+ if (((_b = (_a = ctx.luckysheet_select_save) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0) {
1030
+ (_d = (_c = ctx.luckysheet_select_save) === null || _c === void 0 ? void 0 : _c.filter(function (select) {
1001
1031
  return select.row_select;
1002
- })) === null || _e === void 0 ? void 0 : _e.some(function (select) {
1032
+ })) === null || _d === void 0 ? void 0 : _d.some(function (select) {
1003
1033
  if (changeRowIndex_1 >= select.row[0] && changeRowIndex_1 <= select.row[1]) {
1004
1034
  changeRowSelected_1 = true;
1005
1035
  }
@@ -1008,9 +1038,9 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
1008
1038
  }
1009
1039
  if (changeRowSelected_1) {
1010
1040
  cfg_1.rowlen || (cfg_1.rowlen = {});
1011
- (_g = (_f = ctx.luckysheet_select_save) === null || _f === void 0 ? void 0 : _f.filter(function (select) {
1041
+ (_f = (_e = ctx.luckysheet_select_save) === null || _e === void 0 ? void 0 : _e.filter(function (select) {
1012
1042
  return select.row_select;
1013
- })) === null || _g === void 0 ? void 0 : _g.forEach(function (select) {
1043
+ })) === null || _f === void 0 ? void 0 : _f.forEach(function (select) {
1014
1044
  for (var r = select.row[0]; r <= select.row[1]; r += 1) {
1015
1045
  cfg_1.rowlen[r] = Math.ceil(size_1 / ctx.zoomRatio);
1016
1046
  }
@@ -1054,10 +1084,10 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
1054
1084
  cfg_2.customWidth[ctx.luckysheet_cols_change_size_start[1]] = 1;
1055
1085
  var changeColumnIndex_1 = ctx.luckysheet_cols_change_size_start[1];
1056
1086
  var changeColumnSelected_1 = false;
1057
- if (((_j = (_h = ctx.luckysheet_select_save) === null || _h === void 0 ? void 0 : _h.length) !== null && _j !== void 0 ? _j : 0) > 0) {
1058
- (_l = (_k = ctx.luckysheet_select_save) === null || _k === void 0 ? void 0 : _k.filter(function (select) {
1087
+ if (((_h = (_g = ctx.luckysheet_select_save) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0) > 0) {
1088
+ (_k = (_j = ctx.luckysheet_select_save) === null || _j === void 0 ? void 0 : _j.filter(function (select) {
1059
1089
  return select.column_select;
1060
- })) === null || _l === void 0 ? void 0 : _l.some(function (select) {
1090
+ })) === null || _k === void 0 ? void 0 : _k.some(function (select) {
1061
1091
  if (changeColumnIndex_1 >= select.column[0] && changeColumnIndex_1 <= select.column[1]) {
1062
1092
  changeColumnSelected_1 = true;
1063
1093
  }
@@ -1066,9 +1096,9 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
1066
1096
  }
1067
1097
  if (changeColumnSelected_1) {
1068
1098
  cfg_2.columnlen || (cfg_2.columnlen = {});
1069
- (_o = (_m = ctx.luckysheet_select_save) === null || _m === void 0 ? void 0 : _m.filter(function (select) {
1099
+ (_m = (_l = ctx.luckysheet_select_save) === null || _l === void 0 ? void 0 : _l.filter(function (select) {
1070
1100
  return select.column_select;
1071
- })) === null || _o === void 0 ? void 0 : _o.forEach(function (select) {
1101
+ })) === null || _m === void 0 ? void 0 : _m.forEach(function (select) {
1072
1102
  for (var r = select.column[0]; r <= select.column[1]; r += 1) {
1073
1103
  cfg_2.columnlen[r] = Math.ceil(size_2 / ctx.zoomRatio);
1074
1104
  }
@@ -1085,10 +1115,10 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
1085
1115
  ctx.luckysheet_cols_freeze_drag = false;
1086
1116
  var scrollLeft = ctx.scrollLeft;
1087
1117
  var x = e.pageX - rect.left - ctx.rowHeaderWidth + scrollLeft - window.scrollX;
1088
- var _p = colLocation(x, ctx.visibledatacolumn),
1089
- col_pre = _p[0],
1090
- col_curr = _p[1],
1091
- col_index_curr = _p[2];
1118
+ var _o = colLocation(x, ctx.visibledatacolumn),
1119
+ col_pre = _o[0],
1120
+ col_curr = _o[1],
1121
+ col_index_curr = _o[2];
1092
1122
  var col_index = x > (col_curr + col_pre) / 2 ? col_index_curr : col_index_curr - 1;
1093
1123
  var idx = getSheetIndex(ctx, ctx.currentSheetId);
1094
1124
  if (idx == null) return;
@@ -1136,10 +1166,10 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
1136
1166
  ctx.luckysheet_rows_freeze_drag = false;
1137
1167
  var scrollTop = ctx.scrollTop;
1138
1168
  var y = e.pageY - rect.top - ctx.columnHeaderHeight + scrollTop - window.scrollY;
1139
- var _q = rowLocation(y, ctx.visibledatarow),
1140
- row_pre = _q[0],
1141
- row_curr = _q[1],
1142
- row_index_curr = _q[2];
1169
+ var _p = rowLocation(y, ctx.visibledatarow),
1170
+ row_pre = _p[0],
1171
+ row_curr = _p[1],
1172
+ row_index_curr = _p[2];
1143
1173
  var row_index = y > (row_curr + row_pre) / 2 ? row_index_curr : row_index_curr - 1;
1144
1174
  var idx = getSheetIndex(ctx, ctx.currentSheetId);
1145
1175
  if (idx == null) return;
@@ -1318,10 +1348,12 @@ export function handleRowHeaderMouseDown(ctx, globalCache, e, container, cellInp
1318
1348
  row: rowseleted,
1319
1349
  column: [null, null]
1320
1350
  }, fxInput);
1351
+ rangeHightlightselected(ctx, cellInput);
1321
1352
  }
1322
1353
  ctx.formulaCache.rangedrag_row_start = true;
1323
1354
  ctx.formulaCache.rangestart = false;
1324
1355
  ctx.formulaCache.rangedrag_column_start = false;
1356
+ ctx.formulaCache.rangeSelectionActive = true;
1325
1357
  ctx.formulaCache.selectingRangeIndex = ctx.formulaCache.rangechangeindex;
1326
1358
  if (ctx.formulaCache.rangechangeindex > ctx.formulaRangeHighlight.length) {
1327
1359
  createRangeHightlight(ctx, cellInput.innerHTML, ctx.formulaCache.rangechangeindex);
@@ -1549,10 +1581,12 @@ export function handleColumnHeaderMouseDown(ctx, globalCache, e, container, cell
1549
1581
  row: [null, null],
1550
1582
  column: columnseleted
1551
1583
  }, fxInput);
1584
+ rangeHightlightselected(ctx, cellInput);
1552
1585
  }
1553
1586
  ctx.formulaCache.rangedrag_column_start = true;
1554
1587
  ctx.formulaCache.rangestart = false;
1555
1588
  ctx.formulaCache.rangedrag_row_start = false;
1589
+ ctx.formulaCache.rangeSelectionActive = true;
1556
1590
  ctx.formulaCache.selectingRangeIndex = ctx.formulaCache.rangechangeindex;
1557
1591
  if (ctx.formulaCache.rangechangeindex > ctx.formulaRangeHighlight.length) {
1558
1592
  createRangeHightlight(ctx, cellInput.innerHTML, ctx.formulaCache.rangechangeindex);
@@ -355,13 +355,21 @@ function pasteHandler(ctx, data, borderInfo) {
355
355
  } else {
356
356
  data = data.replace(/\r/g, "");
357
357
  var dataChe = [];
358
- var che = data.split("\n");
359
- var colchelen = che[0].split("\t").length;
360
- for (var i = 0; i < che.length; i += 1) {
361
- if (che[i].split("\t").length < colchelen) {
362
- continue;
358
+ if (data.startsWith('"') && data.endsWith('"') && data.length > 1) {
359
+ var inner = data.slice(1, -1);
360
+ if (inner.includes("\n") && !inner.includes("\t")) {
361
+ dataChe.push([inner.replace(/""/g, '"')]);
362
+ }
363
+ }
364
+ if (dataChe.length === 0) {
365
+ var che = data.split("\n");
366
+ var colchelen = che[0].split("\t").length;
367
+ for (var i = 0; i < che.length; i += 1) {
368
+ if (che[i].split("\t").length < colchelen) {
369
+ continue;
370
+ }
371
+ dataChe.push(che[i].split("\t"));
363
372
  }
364
- dataChe.push(che[i].split("\t"));
365
373
  }
366
374
  var d = getFlowdata(ctx);
367
375
  if (!d) return;
@@ -390,6 +398,28 @@ function pasteHandler(ctx, data, borderInfo) {
390
398
  if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
391
399
  return t.startsWith("http") ? t : "https://".concat(t);
392
400
  };
401
+ var applyMultilineTextToCell = function applyMultilineTextToCell(cell, text) {
402
+ var _a;
403
+ var normalizedText = text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
404
+ var inlineStringSegment = {
405
+ v: normalizedText
406
+ };
407
+ ["fs", "fc", "ff", "bl", "it", "un", "cl"].forEach(function (key) {
408
+ var typedKey = key;
409
+ var currentValue = cell[typedKey];
410
+ if (currentValue != null) {
411
+ inlineStringSegment[typedKey] = currentValue;
412
+ }
413
+ });
414
+ cell.v = normalizedText;
415
+ cell.m = normalizedText;
416
+ cell.ct = {
417
+ fa: ((_a = cell.ct) === null || _a === void 0 ? void 0 : _a.fa) === "@" ? "@" : "General",
418
+ t: "inlineStr",
419
+ s: [inlineStringSegment]
420
+ };
421
+ cell.tb = "2";
422
+ };
393
423
  var changes = [];
394
424
  for (var r = 0; r < rlen; r += 1) {
395
425
  var x = d[r + curR];
@@ -397,9 +427,11 @@ function pasteHandler(ctx, data, borderInfo) {
397
427
  var originCell = x[c + curC];
398
428
  var value = dataChe[r][c];
399
429
  var originalValueStr = String(value);
400
- var url = getUrlFromText(originalValueStr);
430
+ var normalizedValueStr = originalValueStr.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
431
+ var isMultilineValue = normalizedValueStr.includes("\n");
432
+ var url = getUrlFromText(normalizedValueStr);
401
433
  var isUrl = url !== null;
402
- if (!isUrl && isRealNum(value)) {
434
+ if (!isUrl && !isMultilineValue && isRealNum(value)) {
403
435
  if (originCell && originCell.ct && originCell.ct.fa === "@") {
404
436
  value = String(value);
405
437
  } else if (!/^0x?[a-fA-F0-9]+$/.test(value)) {
@@ -407,7 +439,9 @@ function pasteHandler(ctx, data, borderInfo) {
407
439
  }
408
440
  }
409
441
  if (originCell) {
410
- if (!isUrl) {
442
+ if (!isUrl && isMultilineValue) {
443
+ applyMultilineTextToCell(originCell, normalizedValueStr);
444
+ } else if (!isUrl) {
411
445
  var generated = genarate(originalValueStr);
412
446
  if (generated) {
413
447
  var genM = generated[0],
@@ -465,6 +499,8 @@ function pasteHandler(ctx, data, borderInfo) {
465
499
  fa: "@",
466
500
  t: "s"
467
501
  };
502
+ } else if (isMultilineValue) {
503
+ applyMultilineTextToCell(cell, normalizedValueStr);
468
504
  } else {
469
505
  if (/^0x?[a-fA-F0-9]+$/.test(value)) {
470
506
  cell.v = value;
@@ -498,6 +534,9 @@ function pasteHandler(ctx, data, borderInfo) {
498
534
  cell.fc = cell.fc || "rgb(0, 0, 255)";
499
535
  cell.un = cell.un !== undefined ? cell.un : 1;
500
536
  }
537
+ if (cell.tb == null) {
538
+ cell.tb = "1";
539
+ }
501
540
  x[c + curC] = cell;
502
541
  }
503
542
  changes.push({
@@ -937,8 +976,11 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
937
976
  postPasteCut(ctx, source, target, copyRowlChange);
938
977
  }
939
978
  }
940
- function pasteHandlerOfCopyPaste(ctx, copyRange) {
979
+ function pasteHandlerOfCopyPaste(ctx, copyRange, valuesOnly) {
941
980
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
981
+ if (valuesOnly === void 0) {
982
+ valuesOnly = false;
983
+ }
942
984
  var allowEdit = isAllowEdit(ctx);
943
985
  if (!allowEdit || ctx.isFlvReadOnly) return;
944
986
  if (!copyRange) return;
@@ -987,6 +1029,28 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
987
1029
  });
988
1030
  }
989
1031
  var copyData = _.cloneDeep(arr);
1032
+ if (valuesOnly) {
1033
+ for (var i = 0; i < copyData.length; i += 1) {
1034
+ for (var j = 0; j < copyData[i].length; j += 1) {
1035
+ var cell = copyData[i][j];
1036
+ if (!cell) continue;
1037
+ delete cell.f;
1038
+ delete cell.spl;
1039
+ delete cell.bl;
1040
+ delete cell.it;
1041
+ delete cell.ff;
1042
+ delete cell.fs;
1043
+ delete cell.fc;
1044
+ delete cell.ht;
1045
+ delete cell.vt;
1046
+ delete cell.tb;
1047
+ delete cell.cl;
1048
+ delete cell.un;
1049
+ delete cell.tr;
1050
+ delete cell.bg;
1051
+ }
1052
+ }
1053
+ }
990
1054
  if (copyRange.copyRange.length > 1) {
991
1055
  for (var i = 0; i < copyData.length; i += 1) {
992
1056
  for (var j = 0; j < copyData[i].length; j += 1) {
@@ -1378,8 +1442,35 @@ function resizePastedCellsToContent(ctx) {
1378
1442
  if (sheetIdx == null) return;
1379
1443
  updateSheetCellSizes(ctx, sheetIdx, rangeCellSize);
1380
1444
  }
1445
+ function shouldHandleNonTableHtml(html) {
1446
+ if (!html || /<table[\s/>]/i.test(html)) return false;
1447
+ return /<[a-z]/i.test(html);
1448
+ }
1449
+ function convertNonTableHtmlToTable(html) {
1450
+ var container = document.createElement("div");
1451
+ container.innerHTML = html;
1452
+ var rows = [];
1453
+ container.querySelectorAll("p").forEach(function (p) {
1454
+ var _a;
1455
+ if ((_a = p.textContent) === null || _a === void 0 ? void 0 : _a.trim()) {
1456
+ rows.push("<tr><td>".concat(p.innerHTML, "</td></tr>"));
1457
+ }
1458
+ });
1459
+ if (rows.length === 0) {
1460
+ container.querySelectorAll("li").forEach(function (li) {
1461
+ var _a;
1462
+ if (!li.querySelector("p") && ((_a = li.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
1463
+ rows.push("<tr><td>".concat(li.innerHTML, "</td></tr>"));
1464
+ }
1465
+ });
1466
+ }
1467
+ if (rows.length > 0) {
1468
+ return "<table>".concat(rows.join(""), "</table>");
1469
+ }
1470
+ return "<table><tr><td>".concat(html, "</td></tr></table>");
1471
+ }
1381
1472
  export function handlePaste(ctx, e) {
1382
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
1473
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5;
1383
1474
  var allowEdit = isAllowEdit(ctx);
1384
1475
  if (!allowEdit || ctx.isFlvReadOnly) return;
1385
1476
  if (!selectionCache.isPasteAction) {
@@ -1388,6 +1479,8 @@ export function handlePaste(ctx, e) {
1388
1479
  if (selectionCache.isPasteAction) {
1389
1480
  ctx.luckysheetCellUpdate = [];
1390
1481
  selectionCache.isPasteAction = false;
1482
+ var pasteValuesOnly = selectionCache.isPasteValuesOnly;
1483
+ selectionCache.isPasteValuesOnly = false;
1391
1484
  var clipboardData = e.clipboardData;
1392
1485
  if (!clipboardData) {
1393
1486
  clipboardData = window.clipboardData;
@@ -1398,8 +1491,11 @@ export function handlePaste(ctx, e) {
1398
1491
  parseAsLinkIfUrl(text, ctx);
1399
1492
  }
1400
1493
  var txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
1494
+ if (pasteValuesOnly && txtdata.indexOf("fortune-copy-action-table") === -1 && txtdata.indexOf("fortune-copy-action-span") === -1) {
1495
+ txtdata = clipboardData.getData("text/plain");
1496
+ }
1401
1497
  var isEqual = true;
1402
- if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((_a = ctx.luckysheet_copy_save) === null || _a === void 0 ? void 0 : _a.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0) {
1498
+ if (txtdata.indexOf("fortune-copy-action-span") > -1 && ((_a = ctx.luckysheet_copy_save) === null || _a === void 0 ? void 0 : _a.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length === 1) {} else if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((_b = ctx.luckysheet_copy_save) === null || _b === void 0 ? void 0 : _b.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0) {
1403
1499
  var cpDataArr = [];
1404
1500
  var reg = /<tr.*?>(.*?)<\/tr>/g;
1405
1501
  var reg2 = /<td.*?>(.*?)<\/td>/g;
@@ -1415,10 +1511,10 @@ export function handlePaste(ctx, e) {
1415
1511
  }
1416
1512
  cpDataArr.push(cpRowArr);
1417
1513
  }
1418
- var copy_r1 = (_c = (_b = ctx.luckysheet_copy_save) === null || _b === void 0 ? void 0 : _b.copyRange[0]) === null || _c === void 0 ? void 0 : _c.row[0];
1419
- var copy_r2 = (_e = (_d = ctx.luckysheet_copy_save) === null || _d === void 0 ? void 0 : _d.copyRange[0]) === null || _e === void 0 ? void 0 : _e.row[1];
1420
- var copy_c1 = (_g = (_f = ctx.luckysheet_copy_save) === null || _f === void 0 ? void 0 : _f.copyRange[0]) === null || _g === void 0 ? void 0 : _g.column[0];
1421
- var copy_c2 = (_j = (_h = ctx.luckysheet_copy_save) === null || _h === void 0 ? void 0 : _h.copyRange[0]) === null || _j === void 0 ? void 0 : _j.column[1];
1514
+ var copy_r1 = (_d = (_c = ctx.luckysheet_copy_save) === null || _c === void 0 ? void 0 : _c.copyRange[0]) === null || _d === void 0 ? void 0 : _d.row[0];
1515
+ var copy_r2 = (_f = (_e = ctx.luckysheet_copy_save) === null || _e === void 0 ? void 0 : _e.copyRange[0]) === null || _f === void 0 ? void 0 : _f.row[1];
1516
+ var copy_c1 = (_h = (_g = ctx.luckysheet_copy_save) === null || _g === void 0 ? void 0 : _g.copyRange[0]) === null || _h === void 0 ? void 0 : _h.column[0];
1517
+ var copy_c2 = (_k = (_j = ctx.luckysheet_copy_save) === null || _j === void 0 ? void 0 : _j.copyRange[0]) === null || _k === void 0 ? void 0 : _k.column[1];
1422
1518
  var copy_index = ctx.luckysheet_copy_save.dataSheetId || ctx.currentSheetId;
1423
1519
  var d = void 0;
1424
1520
  if (copy_index === ctx.currentSheetId) {
@@ -1441,15 +1537,15 @@ export function handlePaste(ctx, e) {
1441
1537
  }
1442
1538
  var v = void 0;
1443
1539
  if (!_.isNil(cell)) {
1444
- if (((_m = (_l = (_k = cell.ct) === null || _k === void 0 ? void 0 : _k.fa) === null || _l === void 0 ? void 0 : _l.indexOf("w")) !== null && _m !== void 0 ? _m : -1) > -1) {
1445
- v = (_p = (_o = d[r]) === null || _o === void 0 ? void 0 : _o[c]) === null || _p === void 0 ? void 0 : _p.v;
1540
+ if (((_o = (_m = (_l = cell.ct) === null || _l === void 0 ? void 0 : _l.fa) === null || _m === void 0 ? void 0 : _m.indexOf("w")) !== null && _o !== void 0 ? _o : -1) > -1) {
1541
+ v = (_q = (_p = d[r]) === null || _p === void 0 ? void 0 : _p[c]) === null || _q === void 0 ? void 0 : _q.v;
1446
1542
  } else {
1447
- v = (_r = (_q = d[r]) === null || _q === void 0 ? void 0 : _q[c]) === null || _r === void 0 ? void 0 : _r.m;
1543
+ v = (_s = (_r = d[r]) === null || _r === void 0 ? void 0 : _r[c]) === null || _s === void 0 ? void 0 : _s.m;
1448
1544
  }
1449
1545
  } else {
1450
1546
  v = "";
1451
1547
  }
1452
- if (_.isNil(v) && ((_u = (_t = (_s = d[r]) === null || _s === void 0 ? void 0 : _s[c]) === null || _t === void 0 ? void 0 : _t.ct) === null || _u === void 0 ? void 0 : _u.t) === "inlineStr") {
1548
+ if (_.isNil(v) && ((_v = (_u = (_t = d[r]) === null || _t === void 0 ? void 0 : _t[c]) === null || _u === void 0 ? void 0 : _u.ct) === null || _v === void 0 ? void 0 : _v.t) === "inlineStr") {
1453
1549
  v = d[r][c].ct.s.map(function (val) {
1454
1550
  return val.v;
1455
1551
  }).join("");
@@ -1467,21 +1563,27 @@ export function handlePaste(ctx, e) {
1467
1563
  }
1468
1564
  }
1469
1565
  }
1470
- if (((_w = (_v = ctx.hooks).beforePaste) === null || _w === void 0 ? void 0 : _w.call(_v, ctx.luckysheet_select_save, txtdata)) === false) {
1566
+ if (((_x = (_w = ctx.hooks).beforePaste) === null || _x === void 0 ? void 0 : _x.call(_w, ctx.luckysheet_select_save, txtdata)) === false) {
1471
1567
  return;
1472
1568
  }
1473
- if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((_x = ctx.luckysheet_copy_save) === null || _x === void 0 ? void 0 : _x.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0 && isEqual) {
1569
+ if ((txtdata.indexOf("fortune-copy-action-table") > -1 || txtdata.indexOf("fortune-copy-action-span") > -1) && ((_y = ctx.luckysheet_copy_save) === null || _y === void 0 ? void 0 : _y.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0 && isEqual) {
1474
1570
  if (ctx.luckysheet_paste_iscut) {
1475
1571
  ctx.luckysheet_paste_iscut = false;
1476
1572
  pasteHandlerOfCutPaste(ctx, ctx.luckysheet_copy_save);
1477
1573
  ctx.luckysheet_selection_range = [];
1478
1574
  } else {
1479
- pasteHandlerOfCopyPaste(ctx, ctx.luckysheet_copy_save);
1575
+ pasteHandlerOfCopyPaste(ctx, ctx.luckysheet_copy_save, pasteValuesOnly);
1480
1576
  }
1481
1577
  resizePastedCellsToContent(ctx);
1482
1578
  } else if (txtdata.indexOf("fortune-copy-action-image") > -1) {} else {
1483
- if (txtdata.indexOf("table") > -1) {
1484
- handlePastedTable(ctx, txtdata, pasteHandler);
1579
+ var shouldHandleAsHtml = /<table[\s/>]/i.test(txtdata) || shouldHandleNonTableHtml(txtdata);
1580
+ if (shouldHandleAsHtml) {
1581
+ var hasNativeTable = /<table[\s/>]/i.test(txtdata);
1582
+ var converted = hasNativeTable ? txtdata : convertNonTableHtmlToTable(txtdata);
1583
+ handlePastedTable(ctx, converted, pasteHandler);
1584
+ if (hasNativeTable) {
1585
+ resizePastedCellsToContent(ctx);
1586
+ }
1485
1587
  } else if (clipboardData.files.length === 1 && clipboardData.files[0].type.indexOf("image") > -1) {} else {
1486
1588
  txtdata = clipboardData.getData("text/plain");
1487
1589
  var isExcelFormula = txtdata.startsWith("=");
@@ -1492,10 +1594,10 @@ export function handlePaste(ctx, e) {
1492
1594
  var _txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
1493
1595
  var embedUrl = sanitizeDuneUrl(_txtdata);
1494
1596
  if (embedUrl) {
1495
- var last = (_y = ctx.luckysheet_select_save) === null || _y === void 0 ? void 0 : _y[ctx.luckysheet_select_save.length - 1];
1597
+ var last = (_z = ctx.luckysheet_select_save) === null || _z === void 0 ? void 0 : _z[ctx.luckysheet_select_save.length - 1];
1496
1598
  if (last) {
1497
- var rowIndex = (_1 = (_z = last.row_focus) !== null && _z !== void 0 ? _z : (_0 = last.row) === null || _0 === void 0 ? void 0 : _0[0]) !== null && _1 !== void 0 ? _1 : 0;
1498
- var colIndex = (_4 = (_2 = last.column_focus) !== null && _2 !== void 0 ? _2 : (_3 = last.column) === null || _3 === void 0 ? void 0 : _3[0]) !== null && _4 !== void 0 ? _4 : 0;
1599
+ var rowIndex = (_2 = (_0 = last.row_focus) !== null && _0 !== void 0 ? _0 : (_1 = last.row) === null || _1 === void 0 ? void 0 : _1[0]) !== null && _2 !== void 0 ? _2 : 0;
1600
+ var colIndex = (_5 = (_3 = last.column_focus) !== null && _3 !== void 0 ? _3 : (_4 = last.column) === null || _4 === void 0 ? void 0 : _4[0]) !== null && _5 !== void 0 ? _5 : 0;
1499
1601
  var left = colIndex === 0 ? 0 : ctx.visibledatacolumn[colIndex - 1];
1500
1602
  var top_1 = rowIndex === 0 ? 0 : ctx.visibledatarow[rowIndex + 5];
1501
1603
  ctx.showDunePreview = {
@@ -1539,7 +1641,7 @@ export function handlePasteByClick(ctx, clipboardData, triggerType) {
1539
1641
  if (((_b = (_a = ctx.hooks).beforePaste) === null || _b === void 0 ? void 0 : _b.call(_a, ctx.luckysheet_select_save, data)) === false) {
1540
1642
  return;
1541
1643
  }
1542
- if (data.indexOf("fortune-copy-action-table") > -1 && ((_c = ctx.luckysheet_copy_save) === null || _c === void 0 ? void 0 : _c.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0) {
1644
+ if ((data.indexOf("fortune-copy-action-table") > -1 || data.indexOf("fortune-copy-action-span") > -1) && ((_c = ctx.luckysheet_copy_save) === null || _c === void 0 ? void 0 : _c.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0) {
1543
1645
  if (ctx.luckysheet_paste_iscut) {
1544
1646
  ctx.luckysheet_paste_iscut = false;
1545
1647
  pasteHandlerOfCutPaste(ctx, ctx.luckysheet_copy_save);
@@ -25,7 +25,10 @@ export declare function getRangeByTxt(ctx: Context, txt: string): any[];
25
25
  export declare function isAllSelectedCellsInStatus(ctx: Context, attr: keyof Cell, status: any): boolean;
26
26
  export declare function getFontStyleByCell(cell: Cell | null | undefined, checksAF?: any[], checksCF?: any, isCheck?: boolean): any;
27
27
  export declare function getStyleByCell(ctx: Context, d: CellMatrix, r: number, c: number): any;
28
- export declare function getInlineStringHTML(r: number, c: number, data: CellMatrix): string;
28
+ export declare function getInlineStringHTML(r: number, c: number, data: CellMatrix, options?: {
29
+ useSemanticMarkup?: boolean;
30
+ inheritedStyle?: Record<string, string>;
31
+ }): string;
29
32
  export declare function getQKBorder(width: string, type: string, color: string): (string | number)[];
30
33
  export declare function getdatabyselection(ctx: Context, range: Selection | undefined, sheetId: string): (Cell | null)[][];
31
34
  export declare function luckysheetUpdateCell(ctx: Context, row_index: number, col_index: number): void;