@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.
@@ -127,7 +127,7 @@ function fixPositionOnFrozenCells(freeze, x, y, mouseX, mouseY) {
127
127
  }
128
128
  function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxInput, canvas) {
129
129
  var _a, _b;
130
- var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
130
+ var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
131
131
  if (!(fxInput === null || fxInput === void 0 ? void 0 : fxInput.innerHTML) && ctx) {
132
132
  ctx.defaultCandidates = [];
133
133
  }
@@ -146,11 +146,11 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
146
146
  return;
147
147
  }
148
148
  var freeze = (_c = globalCache.freezen) === null || _c === void 0 ? void 0 : _c[ctx.currentSheetId];
149
- var _q = fixPositionOnFrozenCells(freeze, _x, _y, mouseX, mouseY),
150
- x = _q.x,
151
- y = _q.y,
152
- inHorizontalFreeze = _q.inHorizontalFreeze,
153
- inVerticalFreeze = _q.inVerticalFreeze;
149
+ var _p = fixPositionOnFrozenCells(freeze, _x, _y, mouseX, mouseY),
150
+ x = _p.x,
151
+ y = _p.y,
152
+ inHorizontalFreeze = _p.inHorizontalFreeze,
153
+ inVerticalFreeze = _p.inVerticalFreeze;
154
154
  var row_location = (0, _location.rowLocation)(y, ctx.visibledatarow);
155
155
  var row = row_location[1];
156
156
  var row_pre = row_location[0];
@@ -195,12 +195,8 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
195
195
  }
196
196
  ctx.luckysheet_scroll_status = true;
197
197
  if (ctx.luckysheetCellUpdate.length > 0) {
198
- var parser = new DOMParser();
199
- var doc = parser.parseFromString("<div>".concat((_g = document.getElementById("luckysheet-rich-text-editor")) === null || _g === void 0 ? void 0 : _g.innerHTML, "</div>"), "text/html");
200
- var spans = doc.querySelectorAll("span");
201
- var firstSpan = spans[0];
202
- var lastSpan = spans[spans.length - 1];
203
- if ((ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start || (0, _modules.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) {
198
+ if (ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start || (0, _modules.israngeseleciton)(ctx)) {
199
+ var formulaEditorForCmdComma = (0, _modules.getFormulaEditorOwner)(ctx) === "fx" && fxInput ? fxInput : cellInput;
204
200
  var rowseleted = [row_index, row_index_ed];
205
201
  var columnseleted = [col_index, col_index_ed];
206
202
  var left = col_pre;
@@ -267,13 +263,14 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
267
263
  last.top_move = top_1;
268
264
  last.height_move = height;
269
265
  ctx.formulaCache.func_selectedrange = last;
270
- } else if (e.ctrlKey && ((_h = _lodash.default.last(cellInput.querySelectorAll("span"))) === null || _h === void 0 ? void 0 : _h.innerText) !== ",") {
271
- var vText = cellInput.innerText;
266
+ } else if ((e.ctrlKey || e.metaKey) && ((_g = _lodash.default.last(formulaEditorForCmdComma.querySelectorAll("span"))) === null || _g === void 0 ? void 0 : _g.innerText) !== ",") {
267
+ var didCmdCommaFormulaHtml = false;
268
+ var vText = formulaEditorForCmdComma.innerText;
272
269
  if (vText[vText.length - 1] === ")") {
273
270
  vText = vText.substring(0, vText.length - 1);
274
271
  }
275
272
  if (vText.length > 0) {
276
- var lastWord = vText.substring(vText.length - 1, 1);
273
+ var lastWord = vText.slice(-1);
277
274
  if (lastWord !== "," && lastWord !== "=" && lastWord !== "(") {
278
275
  vText += ",";
279
276
  }
@@ -283,21 +280,27 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
283
280
  if (window.getSelection) {
284
281
  var currSelection = window.getSelection();
285
282
  if (currSelection == null) return;
286
- ctx.formulaCache.functionRangeIndex = [_lodash.default.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];
283
+ ctx.formulaCache.functionRangeIndex = [_lodash.default.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];
287
284
  } else {
288
285
  var textRange = document.selection.createRange();
289
286
  ctx.formulaCache.functionRangeIndex = textRange;
290
287
  }
291
288
  cellInput.innerHTML = vText;
289
+ if (fxInput) fxInput.innerHTML = vText;
292
290
  (0, _cell.cancelFunctionrangeSelected)(ctx);
293
291
  (0, _modules.createRangeHightlight)(ctx, vText);
292
+ didCmdCommaFormulaHtml = true;
294
293
  }
295
294
  ctx.formulaCache.rangestart = false;
296
295
  ctx.formulaCache.rangedrag_column_start = false;
297
296
  ctx.formulaCache.rangedrag_row_start = false;
298
- if (fxInput) fxInput.innerHTML = vText;
299
- (0, _modules.rangeHightlightselected)(ctx, cellInput);
297
+ (0, _modules.rangeHightlightselected)(ctx, formulaEditorForCmdComma);
300
298
  (0, _modules.israngeseleciton)(ctx);
299
+ if (didCmdCommaFormulaHtml) {
300
+ ctx.formulaCache.rangechangeindex = undefined;
301
+ var ch = formulaEditorForCmdComma.childNodes;
302
+ ctx.formulaCache.rangeSetValueTo = ch.length > 0 ? ch[ch.length - 1] : undefined;
303
+ }
301
304
  ctx.formulaCache.func_selectedrange = {
302
305
  left: left,
303
306
  width: width,
@@ -328,13 +331,15 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
328
331
  column_focus: col_index
329
332
  };
330
333
  }
334
+ ctx.formulaCache.rangestart = true;
335
+ ctx.formulaCache.rangedrag_column_start = false;
336
+ ctx.formulaCache.rangedrag_row_start = false;
337
+ ctx.formulaCache.rangeSelectionActive = true;
331
338
  (0, _modules.rangeSetValue)(ctx, cellInput, {
332
339
  row: rowseleted,
333
340
  column: columnseleted
334
341
  }, fxInput);
335
- ctx.formulaCache.rangestart = true;
336
- ctx.formulaCache.rangedrag_column_start = false;
337
- ctx.formulaCache.rangedrag_row_start = false;
342
+ (0, _modules.rangeHightlightselected)(ctx, cellInput);
338
343
  ctx.formulaCache.selectingRangeIndex = ctx.formulaCache.rangechangeindex;
339
344
  if (ctx.formulaCache.rangechangeindex > ctx.formulaRangeHighlight.length) {
340
345
  (0, _modules.createRangeHightlight)(ctx, cellInput.innerHTML, ctx.formulaCache.rangechangeindex);
@@ -357,7 +362,7 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
357
362
  }
358
363
  if (ctx.luckysheet_select_status) {
359
364
  if (e.shiftKey) {
360
- var last = (_o = ctx.luckysheet_select_save) === null || _o === void 0 ? void 0 : _o[ctx.luckysheet_select_save.length - 1];
365
+ var last = (_m = ctx.luckysheet_select_save) === null || _m === void 0 ? void 0 : _m[ctx.luckysheet_select_save.length - 1];
361
366
  if (last && last.top != null && last.left != null && last.height != null && last.width != null && last.row_focus != null && last.column_focus != null) {
362
367
  var top_2 = 0;
363
368
  var height = 0;
@@ -416,7 +421,7 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
416
421
  ctx.luckysheet_select_save[ctx.luckysheet_select_save.length - 1] = last;
417
422
  }
418
423
  } else if (e.ctrlKey || e.metaKey) {
419
- (_p = ctx.luckysheet_select_save) === null || _p === void 0 ? void 0 : _p.push({
424
+ (_o = ctx.luckysheet_select_save) === null || _o === void 0 ? void 0 : _o.push({
420
425
  left: col_pre,
421
426
  width: col - col_pre - 1,
422
427
  top: row_pre,
@@ -509,6 +514,7 @@ function handleCellAreaDoubleClick(ctx, globalCache, settings, e, container) {
509
514
  col_index = column_focus;
510
515
  }
511
516
  globalCache.enteredEditByTyping = false;
517
+ delete globalCache.pendingTypeOverCell;
512
518
  (0, _cell.luckysheetUpdateCell)(ctx, row_index, col_index);
513
519
  }
514
520
  function handleContextMenu(ctx, settings, e, workbookContainer, container, area) {
@@ -849,10 +855,28 @@ function mouseRender(ctx, globalCache, e, cellInput, scrollX, scrollY, container
849
855
  ctx.luckysheet_select_save[ctx.luckysheet_select_save.length - 1] = last;
850
856
  (0, _freeze.scrollToFrozenRowCol)(ctx, (_d = globalCache.freezen) === null || _d === void 0 ? void 0 : _d[ctx.currentSheetId]);
851
857
  } else if (ctx.formulaCache.rangestart) {
858
+ if (ctx.formulaCache.rangeSelectionActive === false && !(0, _modules.maybeRecoverDirtyRangeSelection)(ctx)) {
859
+ if (ctx.luckysheetCellUpdate.length > 0) {
860
+ (0, _cell.updateCell)(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput);
861
+ }
862
+ return;
863
+ }
852
864
  (0, _modules.rangeDrag)(ctx, e, cellInput, scrollX.scrollLeft, scrollY.scrollTop, container, fxInput);
853
865
  } else if (ctx.formulaCache.rangedrag_row_start) {
866
+ if (ctx.formulaCache.rangeSelectionActive === false && !(0, _modules.maybeRecoverDirtyRangeSelection)(ctx)) {
867
+ if (ctx.luckysheetCellUpdate.length > 0) {
868
+ (0, _cell.updateCell)(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput);
869
+ }
870
+ return;
871
+ }
854
872
  (0, _formula.rangeDragRow)(ctx, e, cellInput, scrollX.scrollLeft, scrollY.scrollTop, container, fxInput);
855
873
  } else if (ctx.formulaCache.rangedrag_column_start) {
874
+ if (ctx.formulaCache.rangeSelectionActive === false && !(0, _modules.maybeRecoverDirtyRangeSelection)(ctx)) {
875
+ if (ctx.luckysheetCellUpdate.length > 0) {
876
+ (0, _cell.updateCell)(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput);
877
+ }
878
+ return;
879
+ }
856
880
  (0, _formula.rangeDragColumn)(ctx, e, cellInput, scrollX.scrollLeft, scrollY.scrollTop, container, fxInput);
857
881
  } 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) {
858
882
  (0, _dropCell.onDropCellSelect)(ctx, e, scrollX, scrollY, container);
@@ -958,7 +982,7 @@ function handleOverlayMouseMove(ctx, globalCache, e, cellInput, scrollX, scrollY
958
982
  }
959
983
  }
960
984
  function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollbarY, container, cellInput, fxInput) {
961
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
985
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
962
986
  var rect = container.getBoundingClientRect();
963
987
  (0, _modules.onImageMoveEnd)(ctx, globalCache);
964
988
  (0, _modules.onImageResizeEnd)(ctx, globalCache);
@@ -971,11 +995,17 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
971
995
  (0, _hyperlink.onRangeSelectionModalMoveEnd)(globalCache);
972
996
  (0, _modules.onCellsMoveEnd)(ctx, globalCache, e, scrollbarX, scrollbarY, container);
973
997
  if (ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start) {
974
- if (((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.id) === "luckysheet-functionbox-cell") {
998
+ if ((0, _modules.getFormulaEditorOwner)(ctx) === "fx") {
975
999
  (0, _formula.handleFormulaInput)(ctx, cellInput, fxInput, 0, undefined, false);
976
1000
  } else {
977
1001
  (0, _formula.handleFormulaInput)(ctx, fxInput, cellInput, 0, undefined, false);
978
1002
  }
1003
+ ctx.luckysheet_select_status = false;
1004
+ ctx.luckysheet_scroll_status = false;
1005
+ ctx.luckysheet_rows_selected_status = false;
1006
+ ctx.luckysheet_cols_selected_status = false;
1007
+ e.preventDefault();
1008
+ return;
979
1009
  }
980
1010
  if (ctx.luckysheet_select_status) {
981
1011
  if (ctx.luckysheetPaintModelOn) {
@@ -1017,10 +1047,10 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
1017
1047
  cfg_1.customHeight[ctx.luckysheet_rows_change_size_start[1]] = 1;
1018
1048
  var changeRowIndex_1 = ctx.luckysheet_rows_change_size_start[1];
1019
1049
  var changeRowSelected_1 = false;
1020
- if (((_c = (_b = ctx.luckysheet_select_save) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0) {
1021
- (_e = (_d = ctx.luckysheet_select_save) === null || _d === void 0 ? void 0 : _d.filter(function (select) {
1050
+ if (((_b = (_a = ctx.luckysheet_select_save) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0) {
1051
+ (_d = (_c = ctx.luckysheet_select_save) === null || _c === void 0 ? void 0 : _c.filter(function (select) {
1022
1052
  return select.row_select;
1023
- })) === null || _e === void 0 ? void 0 : _e.some(function (select) {
1053
+ })) === null || _d === void 0 ? void 0 : _d.some(function (select) {
1024
1054
  if (changeRowIndex_1 >= select.row[0] && changeRowIndex_1 <= select.row[1]) {
1025
1055
  changeRowSelected_1 = true;
1026
1056
  }
@@ -1029,9 +1059,9 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
1029
1059
  }
1030
1060
  if (changeRowSelected_1) {
1031
1061
  cfg_1.rowlen || (cfg_1.rowlen = {});
1032
- (_g = (_f = ctx.luckysheet_select_save) === null || _f === void 0 ? void 0 : _f.filter(function (select) {
1062
+ (_f = (_e = ctx.luckysheet_select_save) === null || _e === void 0 ? void 0 : _e.filter(function (select) {
1033
1063
  return select.row_select;
1034
- })) === null || _g === void 0 ? void 0 : _g.forEach(function (select) {
1064
+ })) === null || _f === void 0 ? void 0 : _f.forEach(function (select) {
1035
1065
  for (var r = select.row[0]; r <= select.row[1]; r += 1) {
1036
1066
  cfg_1.rowlen[r] = Math.ceil(size_1 / ctx.zoomRatio);
1037
1067
  }
@@ -1075,10 +1105,10 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
1075
1105
  cfg_2.customWidth[ctx.luckysheet_cols_change_size_start[1]] = 1;
1076
1106
  var changeColumnIndex_1 = ctx.luckysheet_cols_change_size_start[1];
1077
1107
  var changeColumnSelected_1 = false;
1078
- if (((_j = (_h = ctx.luckysheet_select_save) === null || _h === void 0 ? void 0 : _h.length) !== null && _j !== void 0 ? _j : 0) > 0) {
1079
- (_l = (_k = ctx.luckysheet_select_save) === null || _k === void 0 ? void 0 : _k.filter(function (select) {
1108
+ if (((_h = (_g = ctx.luckysheet_select_save) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0) > 0) {
1109
+ (_k = (_j = ctx.luckysheet_select_save) === null || _j === void 0 ? void 0 : _j.filter(function (select) {
1080
1110
  return select.column_select;
1081
- })) === null || _l === void 0 ? void 0 : _l.some(function (select) {
1111
+ })) === null || _k === void 0 ? void 0 : _k.some(function (select) {
1082
1112
  if (changeColumnIndex_1 >= select.column[0] && changeColumnIndex_1 <= select.column[1]) {
1083
1113
  changeColumnSelected_1 = true;
1084
1114
  }
@@ -1087,9 +1117,9 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
1087
1117
  }
1088
1118
  if (changeColumnSelected_1) {
1089
1119
  cfg_2.columnlen || (cfg_2.columnlen = {});
1090
- (_o = (_m = ctx.luckysheet_select_save) === null || _m === void 0 ? void 0 : _m.filter(function (select) {
1120
+ (_m = (_l = ctx.luckysheet_select_save) === null || _l === void 0 ? void 0 : _l.filter(function (select) {
1091
1121
  return select.column_select;
1092
- })) === null || _o === void 0 ? void 0 : _o.forEach(function (select) {
1122
+ })) === null || _m === void 0 ? void 0 : _m.forEach(function (select) {
1093
1123
  for (var r = select.column[0]; r <= select.column[1]; r += 1) {
1094
1124
  cfg_2.columnlen[r] = Math.ceil(size_2 / ctx.zoomRatio);
1095
1125
  }
@@ -1106,10 +1136,10 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
1106
1136
  ctx.luckysheet_cols_freeze_drag = false;
1107
1137
  var scrollLeft = ctx.scrollLeft;
1108
1138
  var x = e.pageX - rect.left - ctx.rowHeaderWidth + scrollLeft - window.scrollX;
1109
- var _p = (0, _location.colLocation)(x, ctx.visibledatacolumn),
1110
- col_pre = _p[0],
1111
- col_curr = _p[1],
1112
- col_index_curr = _p[2];
1139
+ var _o = (0, _location.colLocation)(x, ctx.visibledatacolumn),
1140
+ col_pre = _o[0],
1141
+ col_curr = _o[1],
1142
+ col_index_curr = _o[2];
1113
1143
  var col_index = x > (col_curr + col_pre) / 2 ? col_index_curr : col_index_curr - 1;
1114
1144
  var idx = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
1115
1145
  if (idx == null) return;
@@ -1157,10 +1187,10 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
1157
1187
  ctx.luckysheet_rows_freeze_drag = false;
1158
1188
  var scrollTop = ctx.scrollTop;
1159
1189
  var y = e.pageY - rect.top - ctx.columnHeaderHeight + scrollTop - window.scrollY;
1160
- var _q = (0, _location.rowLocation)(y, ctx.visibledatarow),
1161
- row_pre = _q[0],
1162
- row_curr = _q[1],
1163
- row_index_curr = _q[2];
1190
+ var _p = (0, _location.rowLocation)(y, ctx.visibledatarow),
1191
+ row_pre = _p[0],
1192
+ row_curr = _p[1],
1193
+ row_index_curr = _p[2];
1164
1194
  var row_index = y > (row_curr + row_pre) / 2 ? row_index_curr : row_index_curr - 1;
1165
1195
  var idx = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
1166
1196
  if (idx == null) return;
@@ -1339,10 +1369,12 @@ function handleRowHeaderMouseDown(ctx, globalCache, e, container, cellInput, fxI
1339
1369
  row: rowseleted,
1340
1370
  column: [null, null]
1341
1371
  }, fxInput);
1372
+ (0, _modules.rangeHightlightselected)(ctx, cellInput);
1342
1373
  }
1343
1374
  ctx.formulaCache.rangedrag_row_start = true;
1344
1375
  ctx.formulaCache.rangestart = false;
1345
1376
  ctx.formulaCache.rangedrag_column_start = false;
1377
+ ctx.formulaCache.rangeSelectionActive = true;
1346
1378
  ctx.formulaCache.selectingRangeIndex = ctx.formulaCache.rangechangeindex;
1347
1379
  if (ctx.formulaCache.rangechangeindex > ctx.formulaRangeHighlight.length) {
1348
1380
  (0, _modules.createRangeHightlight)(ctx, cellInput.innerHTML, ctx.formulaCache.rangechangeindex);
@@ -1570,10 +1602,12 @@ function handleColumnHeaderMouseDown(ctx, globalCache, e, container, cellInput,
1570
1602
  row: [null, null],
1571
1603
  column: columnseleted
1572
1604
  }, fxInput);
1605
+ (0, _modules.rangeHightlightselected)(ctx, cellInput);
1573
1606
  }
1574
1607
  ctx.formulaCache.rangedrag_column_start = true;
1575
1608
  ctx.formulaCache.rangestart = false;
1576
1609
  ctx.formulaCache.rangedrag_row_start = false;
1610
+ ctx.formulaCache.rangeSelectionActive = true;
1577
1611
  ctx.formulaCache.selectingRangeIndex = ctx.formulaCache.rangechangeindex;
1578
1612
  if (ctx.formulaCache.rangechangeindex > ctx.formulaRangeHighlight.length) {
1579
1613
  (0, _modules.createRangeHightlight)(ctx, cellInput.innerHTML, ctx.formulaCache.rangechangeindex);
@@ -368,13 +368,21 @@ function pasteHandler(ctx, data, borderInfo) {
368
368
  } else {
369
369
  data = data.replace(/\r/g, "");
370
370
  var dataChe = [];
371
- var che = data.split("\n");
372
- var colchelen = che[0].split("\t").length;
373
- for (var i = 0; i < che.length; i += 1) {
374
- if (che[i].split("\t").length < colchelen) {
375
- continue;
371
+ if (data.startsWith('"') && data.endsWith('"') && data.length > 1) {
372
+ var inner = data.slice(1, -1);
373
+ if (inner.includes("\n") && !inner.includes("\t")) {
374
+ dataChe.push([inner.replace(/""/g, '"')]);
375
+ }
376
+ }
377
+ if (dataChe.length === 0) {
378
+ var che = data.split("\n");
379
+ var colchelen = che[0].split("\t").length;
380
+ for (var i = 0; i < che.length; i += 1) {
381
+ if (che[i].split("\t").length < colchelen) {
382
+ continue;
383
+ }
384
+ dataChe.push(che[i].split("\t"));
376
385
  }
377
- dataChe.push(che[i].split("\t"));
378
386
  }
379
387
  var d = (0, _context.getFlowdata)(ctx);
380
388
  if (!d) return;
@@ -403,6 +411,28 @@ function pasteHandler(ctx, data, borderInfo) {
403
411
  if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
404
412
  return t.startsWith("http") ? t : "https://".concat(t);
405
413
  };
414
+ var applyMultilineTextToCell = function applyMultilineTextToCell(cell, text) {
415
+ var _a;
416
+ var normalizedText = text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
417
+ var inlineStringSegment = {
418
+ v: normalizedText
419
+ };
420
+ ["fs", "fc", "ff", "bl", "it", "un", "cl"].forEach(function (key) {
421
+ var typedKey = key;
422
+ var currentValue = cell[typedKey];
423
+ if (currentValue != null) {
424
+ inlineStringSegment[typedKey] = currentValue;
425
+ }
426
+ });
427
+ cell.v = normalizedText;
428
+ cell.m = normalizedText;
429
+ cell.ct = {
430
+ fa: ((_a = cell.ct) === null || _a === void 0 ? void 0 : _a.fa) === "@" ? "@" : "General",
431
+ t: "inlineStr",
432
+ s: [inlineStringSegment]
433
+ };
434
+ cell.tb = "2";
435
+ };
406
436
  var changes = [];
407
437
  for (var r = 0; r < rlen; r += 1) {
408
438
  var x = d[r + curR];
@@ -410,9 +440,11 @@ function pasteHandler(ctx, data, borderInfo) {
410
440
  var originCell = x[c + curC];
411
441
  var value = dataChe[r][c];
412
442
  var originalValueStr = String(value);
413
- var url = getUrlFromText(originalValueStr);
443
+ var normalizedValueStr = originalValueStr.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
444
+ var isMultilineValue = normalizedValueStr.includes("\n");
445
+ var url = getUrlFromText(normalizedValueStr);
414
446
  var isUrl = url !== null;
415
- if (!isUrl && (0, _validation.isRealNum)(value)) {
447
+ if (!isUrl && !isMultilineValue && (0, _validation.isRealNum)(value)) {
416
448
  if (originCell && originCell.ct && originCell.ct.fa === "@") {
417
449
  value = String(value);
418
450
  } else if (!/^0x?[a-fA-F0-9]+$/.test(value)) {
@@ -420,7 +452,9 @@ function pasteHandler(ctx, data, borderInfo) {
420
452
  }
421
453
  }
422
454
  if (originCell) {
423
- if (!isUrl) {
455
+ if (!isUrl && isMultilineValue) {
456
+ applyMultilineTextToCell(originCell, normalizedValueStr);
457
+ } else if (!isUrl) {
424
458
  var generated = (0, _format.genarate)(originalValueStr);
425
459
  if (generated) {
426
460
  var genM = generated[0],
@@ -478,6 +512,8 @@ function pasteHandler(ctx, data, borderInfo) {
478
512
  fa: "@",
479
513
  t: "s"
480
514
  };
515
+ } else if (isMultilineValue) {
516
+ applyMultilineTextToCell(cell, normalizedValueStr);
481
517
  } else {
482
518
  if (/^0x?[a-fA-F0-9]+$/.test(value)) {
483
519
  cell.v = value;
@@ -511,6 +547,9 @@ function pasteHandler(ctx, data, borderInfo) {
511
547
  cell.fc = cell.fc || "rgb(0, 0, 255)";
512
548
  cell.un = cell.un !== undefined ? cell.un : 1;
513
549
  }
550
+ if (cell.tb == null) {
551
+ cell.tb = "1";
552
+ }
514
553
  x[c + curC] = cell;
515
554
  }
516
555
  changes.push({
@@ -950,8 +989,11 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
950
989
  postPasteCut(ctx, source, target, copyRowlChange);
951
990
  }
952
991
  }
953
- function pasteHandlerOfCopyPaste(ctx, copyRange) {
992
+ function pasteHandlerOfCopyPaste(ctx, copyRange, valuesOnly) {
954
993
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
994
+ if (valuesOnly === void 0) {
995
+ valuesOnly = false;
996
+ }
955
997
  var allowEdit = (0, _utils.isAllowEdit)(ctx);
956
998
  if (!allowEdit || ctx.isFlvReadOnly) return;
957
999
  if (!copyRange) return;
@@ -1000,6 +1042,28 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1000
1042
  });
1001
1043
  }
1002
1044
  var copyData = _lodash.default.cloneDeep(arr);
1045
+ if (valuesOnly) {
1046
+ for (var i = 0; i < copyData.length; i += 1) {
1047
+ for (var j = 0; j < copyData[i].length; j += 1) {
1048
+ var cell = copyData[i][j];
1049
+ if (!cell) continue;
1050
+ delete cell.f;
1051
+ delete cell.spl;
1052
+ delete cell.bl;
1053
+ delete cell.it;
1054
+ delete cell.ff;
1055
+ delete cell.fs;
1056
+ delete cell.fc;
1057
+ delete cell.ht;
1058
+ delete cell.vt;
1059
+ delete cell.tb;
1060
+ delete cell.cl;
1061
+ delete cell.un;
1062
+ delete cell.tr;
1063
+ delete cell.bg;
1064
+ }
1065
+ }
1066
+ }
1003
1067
  if (copyRange.copyRange.length > 1) {
1004
1068
  for (var i = 0; i < copyData.length; i += 1) {
1005
1069
  for (var j = 0; j < copyData[i].length; j += 1) {
@@ -1391,8 +1455,35 @@ function resizePastedCellsToContent(ctx) {
1391
1455
  if (sheetIdx == null) return;
1392
1456
  (0, _calculateRangeCellSize.updateSheetCellSizes)(ctx, sheetIdx, rangeCellSize);
1393
1457
  }
1458
+ function shouldHandleNonTableHtml(html) {
1459
+ if (!html || /<table[\s/>]/i.test(html)) return false;
1460
+ return /<[a-z]/i.test(html);
1461
+ }
1462
+ function convertNonTableHtmlToTable(html) {
1463
+ var container = document.createElement("div");
1464
+ container.innerHTML = html;
1465
+ var rows = [];
1466
+ container.querySelectorAll("p").forEach(function (p) {
1467
+ var _a;
1468
+ if ((_a = p.textContent) === null || _a === void 0 ? void 0 : _a.trim()) {
1469
+ rows.push("<tr><td>".concat(p.innerHTML, "</td></tr>"));
1470
+ }
1471
+ });
1472
+ if (rows.length === 0) {
1473
+ container.querySelectorAll("li").forEach(function (li) {
1474
+ var _a;
1475
+ if (!li.querySelector("p") && ((_a = li.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
1476
+ rows.push("<tr><td>".concat(li.innerHTML, "</td></tr>"));
1477
+ }
1478
+ });
1479
+ }
1480
+ if (rows.length > 0) {
1481
+ return "<table>".concat(rows.join(""), "</table>");
1482
+ }
1483
+ return "<table><tr><td>".concat(html, "</td></tr></table>");
1484
+ }
1394
1485
  function handlePaste(ctx, e) {
1395
- 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;
1486
+ 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;
1396
1487
  var allowEdit = (0, _utils.isAllowEdit)(ctx);
1397
1488
  if (!allowEdit || ctx.isFlvReadOnly) return;
1398
1489
  if (!_selection.selectionCache.isPasteAction) {
@@ -1401,6 +1492,8 @@ function handlePaste(ctx, e) {
1401
1492
  if (_selection.selectionCache.isPasteAction) {
1402
1493
  ctx.luckysheetCellUpdate = [];
1403
1494
  _selection.selectionCache.isPasteAction = false;
1495
+ var pasteValuesOnly = _selection.selectionCache.isPasteValuesOnly;
1496
+ _selection.selectionCache.isPasteValuesOnly = false;
1404
1497
  var clipboardData = e.clipboardData;
1405
1498
  if (!clipboardData) {
1406
1499
  clipboardData = window.clipboardData;
@@ -1411,8 +1504,11 @@ function handlePaste(ctx, e) {
1411
1504
  parseAsLinkIfUrl(text, ctx);
1412
1505
  }
1413
1506
  var txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
1507
+ if (pasteValuesOnly && txtdata.indexOf("fortune-copy-action-table") === -1 && txtdata.indexOf("fortune-copy-action-span") === -1) {
1508
+ txtdata = clipboardData.getData("text/plain");
1509
+ }
1414
1510
  var isEqual = true;
1415
- 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) {
1511
+ 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) {
1416
1512
  var cpDataArr = [];
1417
1513
  var reg = /<tr.*?>(.*?)<\/tr>/g;
1418
1514
  var reg2 = /<td.*?>(.*?)<\/td>/g;
@@ -1428,10 +1524,10 @@ function handlePaste(ctx, e) {
1428
1524
  }
1429
1525
  cpDataArr.push(cpRowArr);
1430
1526
  }
1431
- 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];
1432
- 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];
1433
- 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];
1434
- 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];
1527
+ 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];
1528
+ 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];
1529
+ 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];
1530
+ 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];
1435
1531
  var copy_index = ctx.luckysheet_copy_save.dataSheetId || ctx.currentSheetId;
1436
1532
  var d = void 0;
1437
1533
  if (copy_index === ctx.currentSheetId) {
@@ -1454,15 +1550,15 @@ function handlePaste(ctx, e) {
1454
1550
  }
1455
1551
  var v = void 0;
1456
1552
  if (!_lodash.default.isNil(cell)) {
1457
- 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) {
1458
- v = (_p = (_o = d[r]) === null || _o === void 0 ? void 0 : _o[c]) === null || _p === void 0 ? void 0 : _p.v;
1553
+ 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) {
1554
+ v = (_q = (_p = d[r]) === null || _p === void 0 ? void 0 : _p[c]) === null || _q === void 0 ? void 0 : _q.v;
1459
1555
  } else {
1460
- v = (_r = (_q = d[r]) === null || _q === void 0 ? void 0 : _q[c]) === null || _r === void 0 ? void 0 : _r.m;
1556
+ v = (_s = (_r = d[r]) === null || _r === void 0 ? void 0 : _r[c]) === null || _s === void 0 ? void 0 : _s.m;
1461
1557
  }
1462
1558
  } else {
1463
1559
  v = "";
1464
1560
  }
1465
- if (_lodash.default.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") {
1561
+ if (_lodash.default.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") {
1466
1562
  v = d[r][c].ct.s.map(function (val) {
1467
1563
  return val.v;
1468
1564
  }).join("");
@@ -1480,21 +1576,27 @@ function handlePaste(ctx, e) {
1480
1576
  }
1481
1577
  }
1482
1578
  }
1483
- if (((_w = (_v = ctx.hooks).beforePaste) === null || _w === void 0 ? void 0 : _w.call(_v, ctx.luckysheet_select_save, txtdata)) === false) {
1579
+ if (((_x = (_w = ctx.hooks).beforePaste) === null || _x === void 0 ? void 0 : _x.call(_w, ctx.luckysheet_select_save, txtdata)) === false) {
1484
1580
  return;
1485
1581
  }
1486
- 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) {
1582
+ 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) {
1487
1583
  if (ctx.luckysheet_paste_iscut) {
1488
1584
  ctx.luckysheet_paste_iscut = false;
1489
1585
  pasteHandlerOfCutPaste(ctx, ctx.luckysheet_copy_save);
1490
1586
  ctx.luckysheet_selection_range = [];
1491
1587
  } else {
1492
- pasteHandlerOfCopyPaste(ctx, ctx.luckysheet_copy_save);
1588
+ pasteHandlerOfCopyPaste(ctx, ctx.luckysheet_copy_save, pasteValuesOnly);
1493
1589
  }
1494
1590
  resizePastedCellsToContent(ctx);
1495
1591
  } else if (txtdata.indexOf("fortune-copy-action-image") > -1) {} else {
1496
- if (txtdata.indexOf("table") > -1) {
1497
- (0, _pasteTableHelpers.handlePastedTable)(ctx, txtdata, pasteHandler);
1592
+ var shouldHandleAsHtml = /<table[\s/>]/i.test(txtdata) || shouldHandleNonTableHtml(txtdata);
1593
+ if (shouldHandleAsHtml) {
1594
+ var hasNativeTable = /<table[\s/>]/i.test(txtdata);
1595
+ var converted = hasNativeTable ? txtdata : convertNonTableHtmlToTable(txtdata);
1596
+ (0, _pasteTableHelpers.handlePastedTable)(ctx, converted, pasteHandler);
1597
+ if (hasNativeTable) {
1598
+ resizePastedCellsToContent(ctx);
1599
+ }
1498
1600
  } else if (clipboardData.files.length === 1 && clipboardData.files[0].type.indexOf("image") > -1) {} else {
1499
1601
  txtdata = clipboardData.getData("text/plain");
1500
1602
  var isExcelFormula = txtdata.startsWith("=");
@@ -1505,10 +1607,10 @@ function handlePaste(ctx, e) {
1505
1607
  var _txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
1506
1608
  var embedUrl = (0, _modules.sanitizeDuneUrl)(_txtdata);
1507
1609
  if (embedUrl) {
1508
- var last = (_y = ctx.luckysheet_select_save) === null || _y === void 0 ? void 0 : _y[ctx.luckysheet_select_save.length - 1];
1610
+ var last = (_z = ctx.luckysheet_select_save) === null || _z === void 0 ? void 0 : _z[ctx.luckysheet_select_save.length - 1];
1509
1611
  if (last) {
1510
- 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;
1511
- 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;
1612
+ 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;
1613
+ 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;
1512
1614
  var left = colIndex === 0 ? 0 : ctx.visibledatacolumn[colIndex - 1];
1513
1615
  var top_1 = rowIndex === 0 ? 0 : ctx.visibledatarow[rowIndex + 5];
1514
1616
  ctx.showDunePreview = {
@@ -1552,7 +1654,7 @@ function handlePasteByClick(ctx, clipboardData, triggerType) {
1552
1654
  if (((_b = (_a = ctx.hooks).beforePaste) === null || _b === void 0 ? void 0 : _b.call(_a, ctx.luckysheet_select_save, data)) === false) {
1553
1655
  return;
1554
1656
  }
1555
- 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) {
1657
+ 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) {
1556
1658
  if (ctx.luckysheet_paste_iscut) {
1557
1659
  ctx.luckysheet_paste_iscut = false;
1558
1660
  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;