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