@fileverse-dev/fortune-core 1.1.11-patch-5 → 1.1.13

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.
@@ -33,15 +33,6 @@ var __assign = void 0 && (void 0).__assign || function () {
33
33
  };
34
34
  return __assign.apply(this, arguments);
35
35
  };
36
- var __spreadArray = void 0 && (void 0).__spreadArray || function (to, from, pack) {
37
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
- if (ar || !(i in from)) {
39
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
- ar[i] = from[i];
41
- }
42
- }
43
- return to.concat(ar || Array.prototype.slice.call(from));
44
- };
45
36
  function postPasteCut(ctx, source, target, RowlChange) {
46
37
  var execF_rc = {};
47
38
  ctx.formulaCache.execFunctionExist = [];
@@ -321,11 +312,9 @@ function setCellHyperlink(ctx, id, r, c, link) {
321
312
  }
322
313
  function pasteHandlerOfCutPaste(ctx, copyRange) {
323
314
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
324
- console.log("BRRAAA");
325
315
  var allowEdit = (0, _utils.isAllowEdit)(ctx);
326
316
  if (!allowEdit) return;
327
317
  if (!copyRange) return;
328
- console.log("pasteHandlerOfCutPaste");
329
318
  var cfg = ctx.config || {};
330
319
  if (cfg.merge == null) {
331
320
  cfg.merge = {};
@@ -899,25 +888,15 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
899
888
  }
900
889
  var funcV = (0, _formula.execfunction)(ctx, func, h, c, undefined, undefined, true);
901
890
  var afterUpdateCell = ctx.hooks.afterUpdateCell;
902
- console.log("REACHED HERE FINALLY", afterUpdateCell, __assign(__assign({}, value), {
903
- v: arr.length === 1 ? funcV[1] : value.v,
904
- m: arr.length === 1 ? "[object Promise]" : funcV[1] instanceof Promise ? "[object Promise]" : funcV[1]
905
- }));
906
891
  if (afterUpdateCell) {
907
892
  afterUpdateCell(h, c, null, __assign(__assign({}, value), {
908
893
  v: arr.length === 1 ? funcV[1] : value.v,
909
- m: arr.length === 1 ? "[object Promise]" : funcV[1] instanceof Promise ? "[object Promise]" : funcV[1]
894
+ m: funcV[1] instanceof Promise ? "[object Promise]" : funcV[1]
910
895
  }));
911
896
  }
912
897
  if (!_lodash.default.isNil(value.spl)) {}
913
898
  }
914
899
  x[c] = _lodash.default.cloneDeep(value);
915
- console.log({
916
- d: d,
917
- c: c,
918
- x: x,
919
- h: h
920
- });
921
900
  if (value != null && copyHasMC && ((_g = x === null || x === void 0 ? void 0 : x[c]) === null || _g === void 0 ? void 0 : _g.mc)) {
922
901
  if (((_j = (_h = x === null || x === void 0 ? void 0 : x[c]) === null || _h === void 0 ? void 0 : _h.mc) === null || _j === void 0 ? void 0 : _j.rs) != null) {
923
902
  x[c].mc.r = h;
@@ -1004,7 +983,6 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1004
983
  }
1005
984
  }
1006
985
  function handleFormulaStringPaste(ctx, formulaStr) {
1007
- console.log("aaaaaa");
1008
986
  var r = ctx.luckysheet_select_save[0].row[0];
1009
987
  var c = ctx.luckysheet_select_save[0].column[0];
1010
988
  var funcV = (0, _formula.execfunction)(ctx, formulaStr, r, c, undefined, undefined, true);
@@ -1024,7 +1002,6 @@ function handleFormulaStringPaste(ctx, formulaStr) {
1024
1002
  cellTemp.m = isDataBlockRespose ? "Loading..." : val.toString();
1025
1003
  cellTemp.v = val;
1026
1004
  cellTemp.f = formulaStr;
1027
- console.log("HERERERE");
1028
1005
  var afterUpdateCell = ctx.hooks.afterUpdateCell;
1029
1006
  if (afterUpdateCell && isDataBlockRespose) {
1030
1007
  afterUpdateCell(r, c, null, cellTemp);
@@ -1042,517 +1019,379 @@ function parseAsLinkIfUrl(txtdata, ctx) {
1042
1019
  }
1043
1020
  }
1044
1021
  }
1045
- var ENABLE_PASTE_DEBUG = true;
1046
- function dbg() {
1047
- var args = [];
1048
- for (var _i = 0; _i < arguments.length; _i++) {
1049
- args[_i] = arguments[_i];
1050
- }
1051
- if (!ENABLE_PASTE_DEBUG) return;
1052
- console.log.apply(console, __spreadArray(['[Paste]'], args, false));
1053
- }
1054
- function dbgGroup(label) {
1055
- if (!ENABLE_PASTE_DEBUG) return function () {};
1056
- console.log("[Paste] ".concat(label));
1057
- return function () {
1058
- console.log("ended");
1059
- };
1060
- }
1061
1022
  function handlePaste(ctx, e) {
1062
- 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, _6, _7;
1063
- var _8, _9;
1064
- var endAll = dbgGroup('handlePaste(root)');
1065
- var t0 = performance.now();
1023
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
1066
1024
  var allowEdit = (0, _utils.isAllowEdit)(ctx);
1067
- dbg('allowEdit?', allowEdit);
1068
- if (!allowEdit) {
1069
- endAll();
1070
- return;
1071
- }
1072
- dbg('selectionCache.isPasteAction?', _selection.selectionCache.isPasteAction);
1073
- dbg('ctx.luckysheetCellUpdate.length', (_b = (_a = ctx.luckysheetCellUpdate) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
1025
+ if (!allowEdit) return;
1074
1026
  if (_selection.selectionCache.isPasteAction) {
1075
- var endGrid = dbgGroup('Grid paste branch');
1076
1027
  ctx.luckysheetCellUpdate = [];
1077
1028
  _selection.selectionCache.isPasteAction = false;
1078
1029
  var clipboardData = e.clipboardData;
1079
1030
  if (!clipboardData) {
1080
1031
  clipboardData = window.clipboardData;
1081
- dbg('Using IE clipboardData fallback?', !!clipboardData);
1082
1032
  }
1083
- if (!clipboardData) {
1084
- dbg('No clipboardData found → abort');
1085
- endGrid();
1086
- endAll();
1087
- return;
1088
- }
1089
- var textPlain = clipboardData.getData('text/plain') || '';
1090
- var textHtml = clipboardData.getData('text/html') || '';
1091
- dbg('clipboard text/plain length', textPlain.length);
1092
- dbg('clipboard text/html length', textHtml.length);
1093
- if (textPlain) {
1094
- var endParseLink = dbgGroup('parseAsLinkIfUrl');
1095
- try {
1096
- parseAsLinkIfUrl(textPlain, ctx);
1097
- } finally {
1098
- endParseLink();
1099
- }
1033
+ if (!clipboardData) return;
1034
+ var text = clipboardData.getData("text/plain");
1035
+ if (text) {
1036
+ parseAsLinkIfUrl(text, ctx);
1100
1037
  }
1101
- var txtdata = textHtml || textPlain;
1102
- dbg('txtdata source', textHtml ? 'html' : 'plain');
1103
- dbg('txtdata length', txtdata.length);
1038
+ var txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
1104
1039
  var isEqual = true;
1105
- var hasInternalSignature = txtdata.indexOf('fortune-copy-action-table') > -1;
1106
- var hasCopyRange = !!((_c = ctx.luckysheet_copy_save) === null || _c === void 0 ? void 0 : _c.copyRange) && ctx.luckysheet_copy_save.copyRange.length > 0;
1107
- dbg('hasInternalSignature?', hasInternalSignature);
1108
- dbg('hasCopyRange?', hasCopyRange);
1109
- if (hasInternalSignature && hasCopyRange) {
1110
- var endInternal = dbgGroup('Internal-copy equality check');
1111
- var tInt0 = performance.now();
1112
- try {
1113
- var cpDataArr = [];
1114
- var reg = /<tr.*?>(.*?)<\/tr>/g;
1115
- var reg2 = /<td.*?>(.*?)<\/td>/g;
1116
- var regArr = txtdata.match(reg) || [];
1117
- dbg('rows found in html table', regArr.length);
1118
- for (var i = 0; i < regArr.length; i += 1) {
1119
- var cpRowArr = [];
1120
- var reg2Arr = regArr[i].match(reg2);
1121
- if (!_lodash.default.isNil(reg2Arr)) {
1122
- for (var j = 0; j < reg2Arr.length; j += 1) {
1123
- var cpValue = reg2Arr[j].replace(/<td.*?>/g, '').replace(/<\/td>/g, '');
1124
- cpRowArr.push(cpValue);
1125
- }
1126
- }
1127
- cpDataArr.push(cpRowArr);
1128
- }
1129
- dbg('cpDataArr shape', {
1130
- rows: cpDataArr.length,
1131
- cols: (_e = (_d = cpDataArr[0]) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0
1132
- });
1133
- var copy_r1 = ctx.luckysheet_copy_save.copyRange[0].row[0];
1134
- var copy_r2 = ctx.luckysheet_copy_save.copyRange[0].row[1];
1135
- var copy_c1 = ctx.luckysheet_copy_save.copyRange[0].column[0];
1136
- var copy_c2 = ctx.luckysheet_copy_save.copyRange[0].column[1];
1137
- var copy_index = ctx.luckysheet_copy_save.dataSheetId;
1138
- dbg('copyRange', {
1139
- copy_r1: copy_r1,
1140
- copy_r2: copy_r2,
1141
- copy_c1: copy_c1,
1142
- copy_c2: copy_c2,
1143
- copy_index: copy_index
1144
- });
1145
- var d = void 0;
1146
- if (copy_index === ctx.currentSheetId) {
1147
- d = (0, _context.getFlowdata)(ctx);
1148
- dbg('flowdata from current sheet');
1149
- } else {
1150
- var index = (0, _utils.getSheetIndex)(ctx, copy_index);
1151
- if (_lodash.default.isNil(index)) {
1152
- dbg('copy sheet index not found → abort equality check');
1153
- endInternal();
1154
- endGrid();
1155
- endAll();
1156
- return;
1040
+ 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) {
1041
+ var cpDataArr = [];
1042
+ var reg = /<tr.*?>(.*?)<\/tr>/g;
1043
+ var reg2 = /<td.*?>(.*?)<\/td>/g;
1044
+ var regArr = txtdata.match(reg) || [];
1045
+ for (var i = 0; i < regArr.length; i += 1) {
1046
+ var cpRowArr = [];
1047
+ var reg2Arr = regArr[i].match(reg2);
1048
+ if (!_lodash.default.isNil(reg2Arr)) {
1049
+ for (var j = 0; j < reg2Arr.length; j += 1) {
1050
+ var cpValue = reg2Arr[j].replace(/<td.*?>/g, "").replace(/<\/td>/g, "");
1051
+ cpRowArr.push(cpValue);
1157
1052
  }
1158
- d = ctx.luckysheetfile[index].data;
1159
- dbg('flowdata from other sheet index', index);
1160
1053
  }
1161
- if (!d) {
1162
- dbg('no flowdata → abort equality check');
1163
- endInternal();
1164
- endGrid();
1165
- endAll();
1166
- return;
1054
+ cpDataArr.push(cpRowArr);
1055
+ }
1056
+ var copy_r1 = ctx.luckysheet_copy_save.copyRange[0].row[0];
1057
+ var copy_r2 = ctx.luckysheet_copy_save.copyRange[0].row[1];
1058
+ var copy_c1 = ctx.luckysheet_copy_save.copyRange[0].column[0];
1059
+ var copy_c2 = ctx.luckysheet_copy_save.copyRange[0].column[1];
1060
+ var copy_index = ctx.luckysheet_copy_save.dataSheetId;
1061
+ var d = void 0;
1062
+ if (copy_index === ctx.currentSheetId) {
1063
+ d = (0, _context.getFlowdata)(ctx);
1064
+ } else {
1065
+ var index = (0, _utils.getSheetIndex)(ctx, copy_index);
1066
+ if (_lodash.default.isNil(index)) return;
1067
+ d = ctx.luckysheetfile[index].data;
1068
+ }
1069
+ if (!d) return;
1070
+ for (var r = copy_r1; r <= copy_r2; r += 1) {
1071
+ if (r - copy_r1 > cpDataArr.length - 1) {
1072
+ break;
1167
1073
  }
1168
- outerR: for (var r = copy_r1; r <= copy_r2; r += 1) {
1169
- if (r - copy_r1 > cpDataArr.length - 1) {
1170
- dbg('cpDataArr rows exhausted at r', r);
1171
- break;
1074
+ for (var c = copy_c1; c <= copy_c2; c += 1) {
1075
+ var cell = d[r][c];
1076
+ var isInlineStr = false;
1077
+ if (!_lodash.default.isNil(cell) && !_lodash.default.isNil(cell.mc) && _lodash.default.isNil(cell.mc.rs)) {
1078
+ continue;
1172
1079
  }
1173
- for (var c = copy_c1; c <= copy_c2; c += 1) {
1174
- var cell = (_f = d[r]) === null || _f === void 0 ? void 0 : _f[c];
1175
- if (!_lodash.default.isNil(cell) && !_lodash.default.isNil(cell.mc) && _lodash.default.isNil(cell.mc.rs)) {
1176
- dbg('skip merged follower at', {
1177
- r: r,
1178
- c: c
1179
- });
1180
- continue;
1181
- }
1182
- var v = void 0;
1183
- if (!_lodash.default.isNil(cell)) {
1184
- if (((_j = (_h = (_g = cell.ct) === null || _g === void 0 ? void 0 : _g.fa) === null || _h === void 0 ? void 0 : _h.indexOf('w')) !== null && _j !== void 0 ? _j : -1) > -1) {
1185
- v = (_l = (_k = d[r]) === null || _k === void 0 ? void 0 : _k[c]) === null || _l === void 0 ? void 0 : _l.v;
1186
- } else {
1187
- v = (_o = (_m = d[r]) === null || _m === void 0 ? void 0 : _m[c]) === null || _o === void 0 ? void 0 : _o.m;
1188
- }
1080
+ var v = void 0;
1081
+ if (!_lodash.default.isNil(cell)) {
1082
+ if (((_d = (_c = (_b = cell.ct) === null || _b === void 0 ? void 0 : _b.fa) === null || _c === void 0 ? void 0 : _c.indexOf("w")) !== null && _d !== void 0 ? _d : -1) > -1) {
1083
+ v = (_f = (_e = d[r]) === null || _e === void 0 ? void 0 : _e[c]) === null || _f === void 0 ? void 0 : _f.v;
1189
1084
  } else {
1190
- v = '';
1191
- }
1192
- var isInlineStr = false;
1193
- if (_lodash.default.isNil(v) && ((_r = (_q = (_p = d[r]) === null || _p === void 0 ? void 0 : _p[c]) === null || _q === void 0 ? void 0 : _q.ct) === null || _r === void 0 ? void 0 : _r.t) === 'inlineStr') {
1194
- v = d[r][c].ct.s.map(function (val) {
1195
- return val.v;
1196
- }).join('');
1197
- isInlineStr = true;
1085
+ v = (_h = (_g = d[r]) === null || _g === void 0 ? void 0 : _g[c]) === null || _h === void 0 ? void 0 : _h.m;
1198
1086
  }
1199
- if (_lodash.default.isNil(v)) v = '';
1200
- if (!isInlineStr) {
1201
- var a = _lodash.default.trim((_s = cpDataArr[r - copy_r1][c - copy_c1]) !== null && _s !== void 0 ? _s : '');
1202
- var b = _lodash.default.trim(v !== null && v !== void 0 ? v : '');
1203
- if (a !== b) {
1204
- dbg('mismatch at', {
1205
- r: r,
1206
- c: c,
1207
- a: a,
1208
- b: b
1209
- });
1210
- isEqual = false;
1211
- break outerR;
1212
- }
1213
- } else {
1214
- dbg('inlineStr encountered at', {
1215
- r: r,
1216
- c: c,
1217
- note: 'equality skipped'
1218
- });
1087
+ } else {
1088
+ v = "";
1089
+ }
1090
+ if (_lodash.default.isNil(v) && ((_l = (_k = (_j = d[r]) === null || _j === void 0 ? void 0 : _j[c]) === null || _k === void 0 ? void 0 : _k.ct) === null || _l === void 0 ? void 0 : _l.t) === "inlineStr") {
1091
+ v = d[r][c].ct.s.map(function (val) {
1092
+ return val.v;
1093
+ }).join("");
1094
+ isInlineStr = true;
1095
+ }
1096
+ if (_lodash.default.isNil(v)) {
1097
+ v = "";
1098
+ }
1099
+ if (isInlineStr) {} else {
1100
+ if (_lodash.default.trim(cpDataArr[r - copy_r1][c - copy_c1]) !== _lodash.default.trim(v)) {
1101
+ isEqual = false;
1102
+ break;
1219
1103
  }
1220
1104
  }
1221
1105
  }
1222
- dbg('isEqual?', isEqual);
1223
- } finally {
1224
- dbg('internal equality time(ms)', Math.round(performance.now() - tInt0));
1225
- endInternal();
1226
1106
  }
1227
1107
  }
1228
1108
  var locale_fontjson_1 = (0, _locale.locale)(ctx).fontjson;
1229
- dbg('locale fontjson keys', Object.keys(locale_fontjson_1).length);
1230
- var hookResult = (_u = (_t = ctx.hooks).beforePaste) === null || _u === void 0 ? void 0 : _u.call(_t, ctx.luckysheet_select_save, txtdata);
1231
- dbg('beforePaste hook returned', hookResult);
1232
- if (hookResult === false) {
1233
- dbg('beforePaste veto → abort');
1234
- endGrid();
1235
- endAll();
1109
+ if (((_o = (_m = ctx.hooks).beforePaste) === null || _o === void 0 ? void 0 : _o.call(_m, ctx.luckysheet_select_save, txtdata)) === false) {
1236
1110
  return;
1237
1111
  }
1238
- if (hasInternalSignature && hasCopyRange && isEqual) {
1239
- var endInternalPaste = dbgGroup('Internal copy paste');
1240
- dbg('ctx.luckysheet_paste_iscut?', ctx.luckysheet_paste_iscut);
1112
+ if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((_p = ctx.luckysheet_copy_save) === null || _p === void 0 ? void 0 : _p.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0 && isEqual) {
1241
1113
  if (ctx.luckysheet_paste_iscut) {
1242
1114
  ctx.luckysheet_paste_iscut = false;
1243
- dbg('→ pasteHandlerOfCutPaste');
1244
1115
  pasteHandlerOfCutPaste(ctx, ctx.luckysheet_copy_save);
1245
1116
  ctx.luckysheet_selection_range = [];
1246
1117
  } else {
1247
- dbg(' pasteHandlerOfCopyPaste');
1248
1118
  pasteHandlerOfCopyPaste(ctx, ctx.luckysheet_copy_save);
1249
1119
  }
1250
- endInternalPaste();
1251
- } else if (txtdata.indexOf('fortune-copy-action-image') > -1) {
1252
- dbg('Image signature detected (paste image) – currently no-op');
1253
- } else {
1254
- var endElse = dbgGroup('Else branch (table/image/plain)');
1255
- try {
1256
- console.log({
1257
- txtdata: txtdata
1120
+ } else if (txtdata.indexOf("fortune-copy-action-image") > -1) {} else {
1121
+ if (txtdata.indexOf("table") > -1) {
1122
+ var ele = document.createElement("div");
1123
+ ele.innerHTML = txtdata;
1124
+ var trList = ele.querySelectorAll("table tr");
1125
+ if (trList.length === 0) {
1126
+ ele.remove();
1127
+ return;
1128
+ }
1129
+ var data_1 = new Array(trList.length);
1130
+ var colLen_1 = 0;
1131
+ _lodash.default.forEach(trList[0].querySelectorAll("td"), function (td) {
1132
+ var colspan = td.colSpan;
1133
+ if (Number.isNaN(colspan)) {
1134
+ colspan = 1;
1135
+ }
1136
+ colLen_1 += colspan;
1258
1137
  });
1259
- if (txtdata.indexOf('table') > -1) {
1260
- var endTable = dbgGroup('HTML table paste');
1261
- var tTbl0 = performance.now();
1262
- try {
1263
- var ele = document.createElement('div');
1264
- ele.innerHTML = txtdata;
1265
- var trList = ele.querySelectorAll('table tr');
1266
- dbg('tr count', trList.length);
1267
- if (trList.length === 0) {
1268
- ele.remove();
1269
- dbg('no rows abort table paste');
1270
- endTable();
1271
- endElse();
1272
- endGrid();
1273
- endAll();
1274
- return;
1138
+ for (var i = 0; i < data_1.length; i += 1) {
1139
+ data_1[i] = new Array(colLen_1);
1140
+ }
1141
+ var r_1 = 0;
1142
+ var borderInfo_1 = {};
1143
+ var styleInner = ((_q = ele.querySelectorAll("style")[0]) === null || _q === void 0 ? void 0 : _q.innerHTML) || "";
1144
+ var patternReg = /{([^}]*)}/g;
1145
+ var patternStyle = styleInner.match(patternReg);
1146
+ var nameReg = /^[^\t].*/gm;
1147
+ var patternName = _lodash.default.initial(styleInner.match(nameReg));
1148
+ var allStyleList_1 = patternName.length === (patternStyle === null || patternStyle === void 0 ? void 0 : patternStyle.length) && _typeof(patternName) === _typeof(patternStyle) ? _lodash.default.fromPairs(_lodash.default.zip(patternName, patternStyle)) : {};
1149
+ var index_1 = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
1150
+ if (!_lodash.default.isNil(index_1)) {
1151
+ if (_lodash.default.isNil(ctx.luckysheetfile[index_1].config)) {
1152
+ ctx.luckysheetfile[index_1].config = {};
1153
+ }
1154
+ if (_lodash.default.isNil(ctx.luckysheetfile[index_1].config.rowlen)) {
1155
+ ctx.luckysheetfile[index_1].config.rowlen = {};
1156
+ }
1157
+ var rowHeightList_1 = ctx.luckysheetfile[index_1].config.rowlen;
1158
+ _lodash.default.forEach(trList, function (tr) {
1159
+ var c = 0;
1160
+ var targetR = ctx.luckysheet_select_save[0].row[0] + r_1;
1161
+ var targetRowHeight = !_lodash.default.isNil(tr.getAttribute("height")) ? parseInt(tr.getAttribute("height"), 10) : null;
1162
+ if (_lodash.default.has(ctx.luckysheetfile[index_1].config.rowlen, targetR) && ctx.luckysheetfile[index_1].config.rowlen[targetR] !== targetRowHeight || !_lodash.default.has(ctx.luckysheetfile[index_1].config.rowlen, targetR) && ctx.luckysheetfile[index_1].defaultRowHeight !== targetRowHeight) {
1163
+ rowHeightList_1[targetR] = targetRowHeight;
1275
1164
  }
1276
- var data_1 = new Array(trList.length);
1277
- var colLen_1 = 0;
1278
- _lodash.default.forEach(trList[0].querySelectorAll('td'), function (td) {
1279
- var colspan = td.colSpan;
1280
- if (Number.isNaN(colspan)) colspan = 1;
1281
- colLen_1 += colspan;
1282
- });
1283
- dbg('table colLen computed', colLen_1);
1284
- for (var i = 0; i < data_1.length; i += 1) data_1[i] = new Array(colLen_1);
1285
- var r_1 = 0;
1286
- var borderInfo_1 = {};
1287
- var styleInner = ((_v = ele.querySelectorAll('style')[0]) === null || _v === void 0 ? void 0 : _v.innerHTML) || '';
1288
- var patternReg = /{([^}]*)}/g;
1289
- var patternStyle = styleInner.match(patternReg);
1290
- var nameReg = /^[^\t].*/gm;
1291
- var patternName = _lodash.default.initial(styleInner.match(nameReg));
1292
- var allStyleList_1 = patternName.length === (patternStyle === null || patternStyle === void 0 ? void 0 : patternStyle.length) && _typeof(patternName) === _typeof(patternStyle) ? _lodash.default.fromPairs(_lodash.default.zip(patternName, patternStyle)) : {};
1293
- dbg('allStyleList keys', Object.keys(allStyleList_1).length);
1294
- var index_1 = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
1295
- if (!_lodash.default.isNil(index_1)) {
1296
- (_w = (_8 = ctx.luckysheetfile[index_1]).config) !== null && _w !== void 0 ? _w : _8.config = {};
1297
- (_x = (_9 = ctx.luckysheetfile[index_1].config).rowlen) !== null && _x !== void 0 ? _x : _9.rowlen = {};
1298
- var rowHeightList_1 = ctx.luckysheetfile[index_1].config.rowlen;
1299
- _lodash.default.forEach(trList, function (tr) {
1300
- var c = 0;
1301
- var targetR = ctx.luckysheet_select_save[0].row[0] + r_1;
1302
- var targetRowHeight = !_lodash.default.isNil(tr.getAttribute('height')) ? parseInt(tr.getAttribute('height'), 10) : null;
1303
- var hasExisting = _lodash.default.has(ctx.luckysheetfile[index_1].config.rowlen, targetR);
1304
- var existingVal = hasExisting ? ctx.luckysheetfile[index_1].config.rowlen[targetR] : ctx.luckysheetfile[index_1].defaultRowHeight;
1305
- if (existingVal !== targetRowHeight) {
1306
- rowHeightList_1[targetR] = targetRowHeight;
1307
- dbg('set row height', {
1308
- targetR: targetR,
1309
- height: targetRowHeight
1310
- });
1165
+ _lodash.default.forEach(tr.querySelectorAll("td"), function (td) {
1166
+ var className = td.className;
1167
+ var cell = {};
1168
+ var txt = td.innerText || td.innerHTML;
1169
+ if (_lodash.default.trim(txt).length === 0) {
1170
+ cell.v = undefined;
1171
+ cell.m = "";
1172
+ } else {
1173
+ var mask = (0, _format.genarate)(txt);
1174
+ cell.m = mask[0], cell.ct = mask[1], cell.v = mask[2];
1175
+ if (/^0x?[a-fA-F0-9]+$/.test(txt)) {
1176
+ cell.ct = {
1177
+ fa: "@",
1178
+ t: "s"
1179
+ };
1180
+ cell.m = txt;
1181
+ cell.v = txt;
1311
1182
  }
1312
- _lodash.default.forEach(tr.querySelectorAll('td'), function (td) {
1313
- var _a, _b, _c, _d, _e;
1314
- var _f, _g, _h, _j;
1315
- var className = td.className;
1316
- var cell = {};
1317
- var txt = td.innerText || td.innerHTML;
1318
- if (_lodash.default.trim(txt).length === 0) {
1319
- cell.v = undefined;
1320
- cell.m = '';
1321
- } else {
1322
- var mask = (0, _format.genarate)(txt);
1323
- cell.m = mask[0], cell.ct = mask[1], cell.v = mask[2];
1324
- if (/^0x?[a-fA-F0-9]+$/.test(txt)) {
1325
- cell.ct = {
1326
- fa: '@',
1327
- t: 's'
1328
- };
1329
- cell.m = txt;
1330
- cell.v = txt;
1331
- }
1332
- }
1333
- var styleString = typeof allStyleList_1[".".concat(className)] === 'string' ? allStyleList_1[".".concat(className)].substring(1, allStyleList_1[".".concat(className)].length - 1).split('\n\t') : [];
1334
- var styles = {};
1335
- _lodash.default.forEach(styleString, function (s) {
1336
- var styleList = s.split(':');
1337
- styles[styleList[0]] = styleList === null || styleList === void 0 ? void 0 : styleList[1].replace(';', '');
1338
- });
1339
- if (!_lodash.default.isNil(styles.border)) td.style.border = styles.border;
1340
- var bg = td.style.backgroundColor || styles.background;
1341
- if (bg === 'rgba(0, 0, 0, 0)' || _lodash.default.isEmpty(bg)) bg = undefined;
1342
- cell.bg = bg;
1343
- var fontWight = td.style.fontWeight;
1344
- cell.bl = (fontWight.toString() === '400' || fontWight === 'normal' || _lodash.default.isEmpty(fontWight)) && !_lodash.default.includes(styles['font-style'], 'bold') && (!styles['font-weight'] || styles['font-weight'] === '400') ? 0 : 1;
1345
- cell.it = (td.style.fontStyle === 'normal' || _lodash.default.isEmpty(td.style.fontStyle)) && !_lodash.default.includes(styles['font-style'], 'italic') ? 0 : 1;
1346
- cell.un = !_lodash.default.includes(styles['text-decoration'], 'underline') ? undefined : 1;
1347
- cell.cl = !_lodash.default.includes(td.innerHTML, '<s>') ? undefined : 1;
1348
- var ff = td.style.fontFamily || styles['font-family'] || '';
1349
- var ffs = ff.split(',');
1350
- for (var i = 0; i < ffs.length; i += 1) {
1351
- var fa = _lodash.default.trim(ffs[i].toLowerCase());
1352
- fa = locale_fontjson_1[fa];
1353
- if (_lodash.default.isNil(fa)) {
1354
- cell.ff = 0;
1355
- } else {
1356
- cell.ff = fa;
1357
- break;
1358
- }
1359
- }
1360
- var fs = Math.round(styles['font-size'] ? parseInt(styles['font-size'].replace('pt', ''), 10) : parseInt(td.style.fontSize || '13', 10) * 72 / 96);
1361
- cell.fs = fs;
1362
- cell.fc = td.style.color || styles.color;
1363
- var ht = td.style.textAlign || styles['text-align'] || 'left';
1364
- cell.ht = ht === 'center' ? 0 : ht === 'right' ? 2 : 1;
1365
- var regex = /vertical-align:\s*(.*?);/;
1366
- var vt = td.style.verticalAlign || styles['vertical-align'] || !_lodash.default.isNil(allStyleList_1.td) && ((_a = allStyleList_1.td.match(regex)) === null || _a === void 0 ? void 0 : _a.length) > 0 && allStyleList_1.td.match(regex)[1] || 'top';
1367
- cell.vt = vt === 'middle' ? 0 : vt === 'top' || vt === 'text-top' ? 1 : 2;
1368
- if ('mso-rotate' in styles) {
1369
- var rt = styles['mso-rotate'];
1370
- cell.rt = parseFloat(rt);
1371
- }
1372
- while (c < colLen_1 && !_lodash.default.isNil(data_1[r_1][c])) c += 1;
1373
- if (c === colLen_1) return true;
1374
- if (_lodash.default.isNil(data_1[r_1][c])) {
1375
- data_1[r_1][c] = cell;
1376
- var rowspan = parseInt(td.getAttribute('rowspan'), 10);
1377
- var colspan = parseInt(td.getAttribute('colspan'), 10);
1378
- if (Number.isNaN(rowspan)) rowspan = 1;
1379
- if (Number.isNaN(colspan)) colspan = 1;
1380
- var r_ab = ctx.luckysheet_select_save[0].row[0] + r_1;
1381
- var c_ab = ctx.luckysheet_select_save[0].column[0] + c;
1382
- for (var rp = 0; rp < rowspan; rp += 1) {
1383
- for (var cp = 0; cp < colspan; cp += 1) {
1384
- if (rp === 0) {
1385
- var bt = td.style.borderTop;
1386
- if (!_lodash.default.isEmpty(bt) && bt.substring(0, 3).toLowerCase() !== '0px') {
1387
- var width = td.style.borderTopWidth;
1388
- var type = td.style.borderTopStyle;
1389
- var color = td.style.borderTopColor;
1390
- var borderconfig = (0, _cell.getQKBorder)(width, type, color);
1391
- (_b = borderInfo_1[_f = "".concat(r_1 + rp, "_").concat(c + cp)]) !== null && _b !== void 0 ? _b : borderInfo_1[_f] = {};
1392
- borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)].t = {
1393
- style: borderconfig[0],
1394
- color: borderconfig[1]
1395
- };
1396
- }
1183
+ }
1184
+ var styleString = typeof allStyleList_1[".".concat(className)] === "string" ? allStyleList_1[".".concat(className)].substring(1, allStyleList_1[".".concat(className)].length - 1).split("\n\t") : [];
1185
+ var styles = {};
1186
+ _lodash.default.forEach(styleString, function (s) {
1187
+ var styleList = s.split(":");
1188
+ styles[styleList[0]] = styleList === null || styleList === void 0 ? void 0 : styleList[1].replace(";", "");
1189
+ });
1190
+ if (!_lodash.default.isNil(styles.border)) td.style.border = styles.border;
1191
+ var bg = td.style.backgroundColor || styles.background;
1192
+ if (bg === "rgba(0, 0, 0, 0)" || _lodash.default.isEmpty(bg)) {
1193
+ bg = undefined;
1194
+ }
1195
+ cell.bg = bg;
1196
+ var fontWight = td.style.fontWeight;
1197
+ cell.bl = (fontWight.toString() === "400" || fontWight === "normal" || _lodash.default.isEmpty(fontWight)) && !_lodash.default.includes(styles["font-style"], "bold") && (!styles["font-weight"] || styles["font-weight"] === "400") ? 0 : 1;
1198
+ cell.it = (td.style.fontStyle === "normal" || _lodash.default.isEmpty(td.style.fontStyle)) && !_lodash.default.includes(styles["font-style"], "italic") ? 0 : 1;
1199
+ cell.un = !_lodash.default.includes(styles["text-decoration"], "underline") ? undefined : 1;
1200
+ cell.cl = !_lodash.default.includes(td.innerHTML, "<s>") ? undefined : 1;
1201
+ var ff = td.style.fontFamily || styles["font-family"] || "";
1202
+ var ffs = ff.split(",");
1203
+ for (var i = 0; i < ffs.length; i += 1) {
1204
+ var fa = _lodash.default.trim(ffs[i].toLowerCase());
1205
+ fa = locale_fontjson_1[fa];
1206
+ if (_lodash.default.isNil(fa)) {
1207
+ cell.ff = 0;
1208
+ } else {
1209
+ cell.ff = fa;
1210
+ break;
1211
+ }
1212
+ }
1213
+ var fs = Math.round(styles["font-size"] ? parseInt(styles["font-size"].replace("pt", ""), 10) : parseInt(td.style.fontSize || "13", 10) * 72 / 96);
1214
+ cell.fs = fs;
1215
+ cell.fc = td.style.color || styles.color;
1216
+ var ht = td.style.textAlign || styles["text-align"] || "left";
1217
+ if (ht === "center") {
1218
+ cell.ht = 0;
1219
+ } else if (ht === "right") {
1220
+ cell.ht = 2;
1221
+ } else {
1222
+ cell.ht = 1;
1223
+ }
1224
+ var regex = /vertical-align:\s*(.*?);/;
1225
+ var vt = td.style.verticalAlign || styles["vertical-align"] || !_lodash.default.isNil(allStyleList_1.td) && allStyleList_1.td.match(regex).length > 0 && allStyleList_1.td.match(regex)[1] || "top";
1226
+ if (vt === "middle") {
1227
+ cell.vt = 0;
1228
+ } else if (vt === "top" || vt === "text-top") {
1229
+ cell.vt = 1;
1230
+ } else {
1231
+ cell.vt = 2;
1232
+ }
1233
+ if ("mso-rotate" in styles) {
1234
+ var rt = styles["mso-rotate"];
1235
+ cell.rt = parseFloat(rt);
1236
+ }
1237
+ while (c < colLen_1 && !_lodash.default.isNil(data_1[r_1][c])) {
1238
+ c += 1;
1239
+ }
1240
+ if (c === colLen_1) {
1241
+ return true;
1242
+ }
1243
+ if (_lodash.default.isNil(data_1[r_1][c])) {
1244
+ data_1[r_1][c] = cell;
1245
+ var rowspan = parseInt(td.getAttribute("rowspan"), 10);
1246
+ var colspan = parseInt(td.getAttribute("colspan"), 10);
1247
+ if (Number.isNaN(rowspan)) {
1248
+ rowspan = 1;
1249
+ }
1250
+ if (Number.isNaN(colspan)) {
1251
+ colspan = 1;
1252
+ }
1253
+ var r_ab = ctx.luckysheet_select_save[0].row[0] + r_1;
1254
+ var c_ab = ctx.luckysheet_select_save[0].column[0] + c;
1255
+ for (var rp = 0; rp < rowspan; rp += 1) {
1256
+ for (var cp = 0; cp < colspan; cp += 1) {
1257
+ if (rp === 0) {
1258
+ var bt = td.style.borderTop;
1259
+ if (!_lodash.default.isEmpty(bt) && bt.substring(0, 3).toLowerCase() !== "0px") {
1260
+ var width = td.style.borderTopWidth;
1261
+ var type = td.style.borderTopStyle;
1262
+ var color = td.style.borderTopColor;
1263
+ var borderconfig = (0, _cell.getQKBorder)(width, type, color);
1264
+ if (!borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)]) {
1265
+ borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)] = {};
1397
1266
  }
1398
- if (rp === rowspan - 1) {
1399
- var bb = td.style.borderBottom;
1400
- if (!_lodash.default.isEmpty(bb) && bb.substring(0, 3).toLowerCase() !== '0px') {
1401
- var width = td.style.borderBottomWidth;
1402
- var type = td.style.borderBottomStyle;
1403
- var color = td.style.borderBottomColor;
1404
- var borderconfig = (0, _cell.getQKBorder)(width, type, color);
1405
- (_c = borderInfo_1[_g = "".concat(r_1 + rp, "_").concat(c + cp)]) !== null && _c !== void 0 ? _c : borderInfo_1[_g] = {};
1406
- borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)].b = {
1407
- style: borderconfig[0],
1408
- color: borderconfig[1]
1409
- };
1410
- }
1267
+ borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)].t = {
1268
+ style: borderconfig[0],
1269
+ color: borderconfig[1]
1270
+ };
1271
+ }
1272
+ }
1273
+ if (rp === rowspan - 1) {
1274
+ var bb = td.style.borderBottom;
1275
+ if (!_lodash.default.isEmpty(bb) && bb.substring(0, 3).toLowerCase() !== "0px") {
1276
+ var width = td.style.borderBottomWidth;
1277
+ var type = td.style.borderBottomStyle;
1278
+ var color = td.style.borderBottomColor;
1279
+ var borderconfig = (0, _cell.getQKBorder)(width, type, color);
1280
+ if (!borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)]) {
1281
+ borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)] = {};
1411
1282
  }
1412
- if (cp === 0) {
1413
- var bl = td.style.borderLeft;
1414
- if (!_lodash.default.isEmpty(bl) && bl.substring(0, 3).toLowerCase() !== '0px') {
1415
- var width = td.style.borderLeftWidth;
1416
- var type = td.style.borderLeftStyle;
1417
- var color = td.style.borderLeftColor;
1418
- var borderconfig = (0, _cell.getQKBorder)(width, type, color);
1419
- (_d = borderInfo_1[_h = "".concat(r_1 + rp, "_").concat(c + cp)]) !== null && _d !== void 0 ? _d : borderInfo_1[_h] = {};
1420
- borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)].l = {
1421
- style: borderconfig[0],
1422
- color: borderconfig[1]
1423
- };
1424
- }
1283
+ borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)].b = {
1284
+ style: borderconfig[0],
1285
+ color: borderconfig[1]
1286
+ };
1287
+ }
1288
+ }
1289
+ if (cp === 0) {
1290
+ var bl = td.style.borderLeft;
1291
+ if (!_lodash.default.isEmpty(bl) && bl.substring(0, 3).toLowerCase() !== "0px") {
1292
+ var width = td.style.borderLeftWidth;
1293
+ var type = td.style.borderLeftStyle;
1294
+ var color = td.style.borderLeftColor;
1295
+ var borderconfig = (0, _cell.getQKBorder)(width, type, color);
1296
+ if (!borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)]) {
1297
+ borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)] = {};
1425
1298
  }
1426
- if (cp === colspan - 1) {
1427
- var br = td.style.borderLeft;
1428
- if (!_lodash.default.isEmpty(br) && br.substring(0, 3).toLowerCase() !== '0px') {
1429
- var width = td.style.borderRightWidth;
1430
- var type = td.style.borderRightStyle;
1431
- var color = td.style.borderRightColor;
1432
- var borderconfig = (0, _cell.getQKBorder)(width, type, color);
1433
- (_e = borderInfo_1[_j = "".concat(r_1 + rp, "_").concat(c + cp)]) !== null && _e !== void 0 ? _e : borderInfo_1[_j] = {};
1434
- borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)].r = {
1435
- style: borderconfig[0],
1436
- color: borderconfig[1]
1437
- };
1438
- }
1299
+ borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)].l = {
1300
+ style: borderconfig[0],
1301
+ color: borderconfig[1]
1302
+ };
1303
+ }
1304
+ }
1305
+ if (cp === colspan - 1) {
1306
+ var br = td.style.borderLeft;
1307
+ if (!_lodash.default.isEmpty(br) && br.substring(0, 3).toLowerCase() !== "0px") {
1308
+ var width = td.style.borderRightWidth;
1309
+ var type = td.style.borderRightStyle;
1310
+ var color = td.style.borderRightColor;
1311
+ var borderconfig = (0, _cell.getQKBorder)(width, type, color);
1312
+ if (!borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)]) {
1313
+ borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)] = {};
1439
1314
  }
1440
- if (rp === 0 && cp === 0) continue;
1441
- data_1[r_1 + rp][c + cp] = {
1442
- mc: {
1443
- r: r_ab,
1444
- c: c_ab
1445
- }
1315
+ borderInfo_1["".concat(r_1 + rp, "_").concat(c + cp)].r = {
1316
+ style: borderconfig[0],
1317
+ color: borderconfig[1]
1446
1318
  };
1447
1319
  }
1448
1320
  }
1449
- if (rowspan > 1 || colspan > 1) {
1450
- var first = {
1451
- rs: rowspan,
1452
- cs: colspan,
1321
+ if (rp === 0 && cp === 0) {
1322
+ continue;
1323
+ }
1324
+ data_1[r_1 + rp][c + cp] = {
1325
+ mc: {
1453
1326
  r: r_ab,
1454
1327
  c: c_ab
1455
- };
1456
- data_1[r_1][c].mc = first;
1457
- dbg('merged cell', {
1458
- r: r_1,
1459
- c: c,
1460
- first: first
1461
- });
1462
- }
1328
+ }
1329
+ };
1463
1330
  }
1464
- c += 1;
1465
- if (c === colLen_1) return true;
1466
- return true;
1467
- });
1468
- r_1 += 1;
1469
- });
1470
- (0, _api.setRowHeight)(ctx, rowHeightList_1);
1471
- }
1472
- ctx.luckysheet_selection_range = [];
1473
- dbg('→ pasteHandler(ctx, data, borderInfo)', {
1474
- rows: data_1.length,
1475
- cols: (_z = (_y = data_1[0]) === null || _y === void 0 ? void 0 : _y.length) !== null && _z !== void 0 ? _z : 0,
1476
- borders: Object.keys(borderInfo_1).length
1477
- });
1478
- pasteHandler(ctx, data_1, borderInfo_1);
1479
- ele.remove();
1480
- } finally {
1481
- dbg('table paste time(ms)', Math.round(performance.now() - tTbl0));
1482
- endTable();
1483
- }
1484
- } else if (clipboardData.files.length === 1 && clipboardData.files[0].type.indexOf('image') > -1) {
1485
- dbg('Image file detected in clipboard – currently no-op');
1486
- } else {
1487
- var endPlain = dbgGroup('Plain text / Formula paste');
1488
- try {
1489
- txtdata = clipboardData.getData('text/plain');
1490
- var isExcelFormula = txtdata.startsWith('=');
1491
- dbg('isExcelFormula?', isExcelFormula, 'len', txtdata.length);
1492
- if (isExcelFormula) {
1493
- dbg('→ handleFormulaStringPaste');
1494
- handleFormulaStringPaste(ctx, txtdata);
1495
- } else {
1496
- dbg('→ pasteHandler(ctx, txtdata)');
1497
- pasteHandler(ctx, txtdata);
1498
- var _txtdata = clipboardData.getData('text/html') || clipboardData.getData('text/plain');
1499
- var embedUrl = (0, _modules.sanitizeDuneUrl)(_txtdata);
1500
- dbg('sanitizeDuneUrl found?', !!embedUrl);
1501
- if (embedUrl) {
1502
- var last = (_0 = ctx.luckysheet_select_save) === null || _0 === void 0 ? void 0 : _0[ctx.luckysheet_select_save.length - 1];
1503
- if (last) {
1504
- var rowIndex = (_3 = (_1 = last.row_focus) !== null && _1 !== void 0 ? _1 : (_2 = last.row) === null || _2 === void 0 ? void 0 : _2[0]) !== null && _3 !== void 0 ? _3 : 0;
1505
- var colIndex = (_6 = (_4 = last.column_focus) !== null && _4 !== void 0 ? _4 : (_5 = last.column) === null || _5 === void 0 ? void 0 : _5[0]) !== null && _6 !== void 0 ? _6 : 0;
1506
- var left = colIndex === 0 ? 0 : ctx.visibledatacolumn[colIndex - 1];
1507
- var top_1 = rowIndex === 0 ? 0 : ctx.visibledatarow[rowIndex + 5];
1508
- ctx.showDunePreview = {
1509
- url: txtdata,
1510
- position: {
1511
- left: left,
1512
- top: top_1
1513
- }
1331
+ }
1332
+ if (rowspan > 1 || colspan > 1) {
1333
+ var first = {
1334
+ rs: rowspan,
1335
+ cs: colspan,
1336
+ r: r_ab,
1337
+ c: c_ab
1514
1338
  };
1515
- dbg('Show Dune preview at', {
1516
- rowIndex: rowIndex,
1517
- colIndex: colIndex,
1518
- left: left,
1519
- top: top_1
1520
- });
1521
- } else {
1522
- dbg('No selection to anchor Dune preview');
1339
+ data_1[r_1][c].mc = first;
1523
1340
  }
1524
1341
  }
1342
+ c += 1;
1343
+ if (c === colLen_1) {
1344
+ return true;
1345
+ }
1346
+ return true;
1347
+ });
1348
+ r_1 += 1;
1349
+ });
1350
+ (0, _api.setRowHeight)(ctx, rowHeightList_1);
1351
+ }
1352
+ ctx.luckysheet_selection_range = [];
1353
+ pasteHandler(ctx, data_1, borderInfo_1);
1354
+ ele.remove();
1355
+ } else if (clipboardData.files.length === 1 && clipboardData.files[0].type.indexOf("image") > -1) {} else {
1356
+ txtdata = clipboardData.getData("text/plain");
1357
+ var isExcelFormula = txtdata.startsWith("=");
1358
+ if (isExcelFormula) {
1359
+ handleFormulaStringPaste(ctx, txtdata);
1360
+ } else {
1361
+ pasteHandler(ctx, txtdata);
1362
+ var _txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
1363
+ var embedUrl = (0, _modules.sanitizeDuneUrl)(_txtdata);
1364
+ if (embedUrl) {
1365
+ var last = (_r = ctx.luckysheet_select_save) === null || _r === void 0 ? void 0 : _r[ctx.luckysheet_select_save.length - 1];
1366
+ if (last) {
1367
+ var rowIndex = (_u = (_s = last.row_focus) !== null && _s !== void 0 ? _s : (_t = last.row) === null || _t === void 0 ? void 0 : _t[0]) !== null && _u !== void 0 ? _u : 0;
1368
+ var colIndex = (_x = (_v = last.column_focus) !== null && _v !== void 0 ? _v : (_w = last.column) === null || _w === void 0 ? void 0 : _w[0]) !== null && _x !== void 0 ? _x : 0;
1369
+ var left = colIndex === 0 ? 0 : ctx.visibledatacolumn[colIndex - 1];
1370
+ var top_1 = rowIndex === 0 ? 0 : ctx.visibledatarow[rowIndex + 5];
1371
+ ctx.showDunePreview = {
1372
+ url: txtdata,
1373
+ position: {
1374
+ left: left,
1375
+ top: top_1
1376
+ }
1377
+ };
1525
1378
  }
1526
- } finally {
1527
- endPlain();
1528
1379
  }
1529
1380
  }
1530
- } finally {
1531
- endElse();
1532
1381
  }
1533
1382
  }
1534
- endGrid();
1535
1383
  } else if (ctx.luckysheetCellUpdate.length > 0) {
1536
- var endInline = dbgGroup('Inline editor paste branch');
1537
1384
  e.preventDefault();
1538
1385
  var clipboardData = e.clipboardData;
1539
1386
  if (!clipboardData) {
1540
1387
  clipboardData = window.clipboardData;
1541
- dbg('Using IE clipboardData fallback (inline)?', !!clipboardData);
1542
1388
  }
1543
- var text = (_7 = clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.getData('text/plain')) !== null && _7 !== void 0 ? _7 : '';
1544
- dbg('inline paste text length', text.length);
1389
+ var text = clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.getData("text/plain");
1545
1390
  if (text) {
1546
- document.execCommand('insertText', false, text);
1547
- dbg('→ execCommand(insertText)');
1391
+ document.execCommand("insertText", false, text);
1548
1392
  parseAsLinkIfUrl(text, ctx);
1549
1393
  }
1550
- endInline();
1551
- } else {
1552
- dbg('No grid paste, no inline editor → noop');
1553
1394
  }
1554
- dbg('handlePaste total time(ms)', Math.round(performance.now() - t0));
1555
- endAll();
1556
1395
  }
1557
1396
  function handlePasteByClick(ctx, clipboardData, triggerType) {
1558
1397
  var _a, _b, _c;