@fileverse-dev/fortune-core 1.2.58 → 1.2.61
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 +39 -29
- package/es/modules/cell.js +20 -1
- package/es/modules/dropCell.js +39 -0
- package/es/modules/formula.js +1 -1
- package/es/modules/selection.js +10 -5
- package/es/paste-table-helpers.js +48 -11
- package/lib/events/paste.js +39 -29
- package/lib/modules/cell.js +20 -1
- package/lib/modules/dropCell.js +39 -0
- package/lib/modules/formula.js +1 -1
- package/lib/modules/selection.js +10 -5
- package/lib/paste-table-helpers.js +48 -11
- package/package.json +1 -1
package/es/events/paste.js
CHANGED
|
@@ -77,19 +77,26 @@ export function adjustFormulaForPaste(formula, srcCol, srcRow, destCol, destRow)
|
|
|
77
77
|
var colOffset = destCol - srcCol;
|
|
78
78
|
var rowOffset = destRow - srcRow;
|
|
79
79
|
var hadInvalid = false;
|
|
80
|
-
var
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (!
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var
|
|
88
|
-
var
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
80
|
+
var cellRefRegex = /\b(\$?)([A-Z]+)(\$?)(\d+)\b/g;
|
|
81
|
+
var stringOrCellRef = /"(?:\\.|[^"])*"|(?<!\$)([A-Z]+\d+\b)/g;
|
|
82
|
+
var result = formula.replace(stringOrCellRef, function (m, cellRef) {
|
|
83
|
+
if (!cellRef) return m;
|
|
84
|
+
if (cellRef.startsWith("$")) return m;
|
|
85
|
+
console.log(m, "cellRef", cellRef);
|
|
86
|
+
return cellRef.replace(cellRefRegex, function (__, absCol, colLetters, absRow, rowNum) {
|
|
87
|
+
var colIndex = columnLabelIndex(colLetters);
|
|
88
|
+
var rowIndex = parseInt(rowNum, 10);
|
|
89
|
+
if (!absCol) colIndex += colOffset;
|
|
90
|
+
if (!absRow) rowIndex += rowOffset;
|
|
91
|
+
if (colIndex < 0 || rowIndex <= 0) {
|
|
92
|
+
hadInvalid = true;
|
|
93
|
+
var invalidCol = colIndex < 0 ? "".concat(absCol ? "$" : "").concat(colLetters).concat(colIndex) : "".concat(absCol ? "$" : "").concat(indexToColumnLabel(colIndex));
|
|
94
|
+
var invalidRow = rowIndex.toString();
|
|
95
|
+
return "".concat(invalidCol).concat(invalidRow);
|
|
96
|
+
}
|
|
97
|
+
var newCol = indexToColumnLabel(colIndex);
|
|
98
|
+
return "".concat(absCol ? "$" : "").concat(newCol).concat(absRow ? "$" : "").concat(rowIndex);
|
|
99
|
+
});
|
|
93
100
|
});
|
|
94
101
|
if (hadInvalid) {
|
|
95
102
|
var brokenFormula = "=".concat(result.replace(/^=/, ""));
|
|
@@ -964,6 +971,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
964
971
|
var isError = false;
|
|
965
972
|
try {
|
|
966
973
|
adjustedFormula = adjustFormulaForPaste(value.f, c_c1, c_r1, c, h);
|
|
974
|
+
console.log("adjustedFormula", adjustedFormula);
|
|
967
975
|
} catch (error) {
|
|
968
976
|
isError = true;
|
|
969
977
|
value.error = {
|
|
@@ -1150,9 +1158,12 @@ function resizePastedCellsToContent(ctx) {
|
|
|
1150
1158
|
updateSheetCellSizes(ctx, sheetIdx, rangeCellSize);
|
|
1151
1159
|
}
|
|
1152
1160
|
export function handlePaste(ctx, e) {
|
|
1153
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
|
1161
|
+
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;
|
|
1154
1162
|
var allowEdit = isAllowEdit(ctx);
|
|
1155
1163
|
if (!allowEdit || ctx.isFlvReadOnly) return;
|
|
1164
|
+
if (!selectionCache.isPasteAction) {
|
|
1165
|
+
return;
|
|
1166
|
+
}
|
|
1156
1167
|
if (selectionCache.isPasteAction) {
|
|
1157
1168
|
ctx.luckysheetCellUpdate = [];
|
|
1158
1169
|
selectionCache.isPasteAction = false;
|
|
@@ -1183,11 +1194,11 @@ export function handlePaste(ctx, e) {
|
|
|
1183
1194
|
}
|
|
1184
1195
|
cpDataArr.push(cpRowArr);
|
|
1185
1196
|
}
|
|
1186
|
-
var copy_r1 = ctx.luckysheet_copy_save.copyRange[0].row[0];
|
|
1187
|
-
var copy_r2 = ctx.luckysheet_copy_save.copyRange[0].row[1];
|
|
1188
|
-
var copy_c1 = ctx.luckysheet_copy_save.copyRange[0].column[0];
|
|
1189
|
-
var copy_c2 = ctx.luckysheet_copy_save.copyRange[0].column[1];
|
|
1190
|
-
var copy_index = ctx.luckysheet_copy_save.dataSheetId;
|
|
1197
|
+
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];
|
|
1198
|
+
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];
|
|
1199
|
+
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];
|
|
1200
|
+
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];
|
|
1201
|
+
var copy_index = ctx.luckysheet_copy_save.dataSheetId || ctx.currentSheetId;
|
|
1191
1202
|
var d = void 0;
|
|
1192
1203
|
if (copy_index === ctx.currentSheetId) {
|
|
1193
1204
|
d = getFlowdata(ctx);
|
|
@@ -1209,15 +1220,15 @@ export function handlePaste(ctx, e) {
|
|
|
1209
1220
|
}
|
|
1210
1221
|
var v = void 0;
|
|
1211
1222
|
if (!_.isNil(cell)) {
|
|
1212
|
-
if (((
|
|
1213
|
-
v = (
|
|
1223
|
+
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) {
|
|
1224
|
+
v = (_p = (_o = d[r]) === null || _o === void 0 ? void 0 : _o[c]) === null || _p === void 0 ? void 0 : _p.v;
|
|
1214
1225
|
} else {
|
|
1215
|
-
v = (
|
|
1226
|
+
v = (_r = (_q = d[r]) === null || _q === void 0 ? void 0 : _q[c]) === null || _r === void 0 ? void 0 : _r.m;
|
|
1216
1227
|
}
|
|
1217
1228
|
} else {
|
|
1218
1229
|
v = "";
|
|
1219
1230
|
}
|
|
1220
|
-
if (_.isNil(v) && ((
|
|
1231
|
+
if (_.isNil(v) && ((_u = (_t = (_s = d[r]) === null || _s === void 0 ? void 0 : _s[c]) === null || _t === void 0 ? void 0 : _t.ct) === null || _u === void 0 ? void 0 : _u.t) === "inlineStr") {
|
|
1221
1232
|
v = d[r][c].ct.s.map(function (val) {
|
|
1222
1233
|
return val.v;
|
|
1223
1234
|
}).join("");
|
|
@@ -1235,10 +1246,10 @@ export function handlePaste(ctx, e) {
|
|
|
1235
1246
|
}
|
|
1236
1247
|
}
|
|
1237
1248
|
}
|
|
1238
|
-
if (((
|
|
1249
|
+
if (((_w = (_v = ctx.hooks).beforePaste) === null || _w === void 0 ? void 0 : _w.call(_v, ctx.luckysheet_select_save, txtdata)) === false) {
|
|
1239
1250
|
return;
|
|
1240
1251
|
}
|
|
1241
|
-
if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((
|
|
1252
|
+
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) {
|
|
1242
1253
|
if (ctx.luckysheet_paste_iscut) {
|
|
1243
1254
|
ctx.luckysheet_paste_iscut = false;
|
|
1244
1255
|
pasteHandlerOfCutPaste(ctx, ctx.luckysheet_copy_save);
|
|
@@ -1250,7 +1261,6 @@ export function handlePaste(ctx, e) {
|
|
|
1250
1261
|
} else if (txtdata.indexOf("fortune-copy-action-image") > -1) {} else {
|
|
1251
1262
|
if (txtdata.indexOf("table") > -1) {
|
|
1252
1263
|
handlePastedTable(ctx, txtdata, pasteHandler);
|
|
1253
|
-
resizePastedCellsToContent(ctx);
|
|
1254
1264
|
} else if (clipboardData.files.length === 1 && clipboardData.files[0].type.indexOf("image") > -1) {} else {
|
|
1255
1265
|
txtdata = clipboardData.getData("text/plain");
|
|
1256
1266
|
var isExcelFormula = txtdata.startsWith("=");
|
|
@@ -1261,10 +1271,10 @@ export function handlePaste(ctx, e) {
|
|
|
1261
1271
|
var _txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
|
|
1262
1272
|
var embedUrl = sanitizeDuneUrl(_txtdata);
|
|
1263
1273
|
if (embedUrl) {
|
|
1264
|
-
var last = (
|
|
1274
|
+
var last = (_y = ctx.luckysheet_select_save) === null || _y === void 0 ? void 0 : _y[ctx.luckysheet_select_save.length - 1];
|
|
1265
1275
|
if (last) {
|
|
1266
|
-
var rowIndex = (
|
|
1267
|
-
var colIndex = (
|
|
1276
|
+
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;
|
|
1277
|
+
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;
|
|
1268
1278
|
var left = colIndex === 0 ? 0 : ctx.visibledatacolumn[colIndex - 1];
|
|
1269
1279
|
var top_1 = rowIndex === 0 ? 0 : ctx.visibledatarow[rowIndex + 5];
|
|
1270
1280
|
ctx.showDunePreview = {
|
package/es/modules/cell.js
CHANGED
|
@@ -59,14 +59,18 @@ export function normalizedCellAttr(cell, attr, defaultFontSize) {
|
|
|
59
59
|
}
|
|
60
60
|
export function normalizedAttr(data, r, c, attr) {
|
|
61
61
|
if (!data || !data[r]) {
|
|
62
|
-
console.warn("cell (%d, %d) is null", r, c);
|
|
63
62
|
return null;
|
|
64
63
|
}
|
|
65
64
|
var cell = data[r][c];
|
|
66
65
|
if (!cell) return undefined;
|
|
67
66
|
return normalizedCellAttr(cell, attr);
|
|
68
67
|
}
|
|
68
|
+
function newlinesToBr(text) {
|
|
69
|
+
if (!text) return "";
|
|
70
|
+
return text.replace(/\r\n|\r|\n/g, "<br />");
|
|
71
|
+
}
|
|
69
72
|
export function getCellValue(r, c, data, attr) {
|
|
73
|
+
var _a;
|
|
70
74
|
if (!attr) {
|
|
71
75
|
attr = "v";
|
|
72
76
|
}
|
|
@@ -96,6 +100,9 @@ export function getCellValue(r, c, data, attr) {
|
|
|
96
100
|
} else if (d && d.ct && d.ct.t === "d") {
|
|
97
101
|
retv = d.m;
|
|
98
102
|
}
|
|
103
|
+
if ((d === null || d === void 0 ? void 0 : d.ct) && isInlineStringCT(d.ct) && (attr === "v" || attr === "m")) {
|
|
104
|
+
retv = newlinesToBr((_a = d.ct.s[0]) === null || _a === void 0 ? void 0 : _a.v);
|
|
105
|
+
}
|
|
99
106
|
}
|
|
100
107
|
if (retv === undefined) {
|
|
101
108
|
retv = null;
|
|
@@ -1039,6 +1046,8 @@ export function getStyleByCell(ctx, d, r, c) {
|
|
|
1039
1046
|
} else {
|
|
1040
1047
|
style.background = "".concat(value);
|
|
1041
1048
|
}
|
|
1049
|
+
} else {
|
|
1050
|
+
style.background = "".concat(value);
|
|
1042
1051
|
}
|
|
1043
1052
|
}
|
|
1044
1053
|
if ("ht" in cell) {
|
|
@@ -1047,8 +1056,18 @@ export function getStyleByCell(ctx, d, r, c) {
|
|
|
1047
1056
|
style.textAlign = "center";
|
|
1048
1057
|
} else if (Number(value) === 2) {
|
|
1049
1058
|
style.textAlign = "right";
|
|
1059
|
+
style.overflowWrap = "anywhere";
|
|
1050
1060
|
}
|
|
1051
1061
|
}
|
|
1062
|
+
if ("tb" in cell) {
|
|
1063
|
+
if (Number(cell.tb) === 2) {
|
|
1064
|
+
style.overflowWrap = "anywhere";
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
if ("ff" in cell) {
|
|
1068
|
+
var value = normalizedCellAttr(cell, "ff");
|
|
1069
|
+
style.fontFamily = value;
|
|
1070
|
+
}
|
|
1052
1071
|
if ("vt" in cell) {
|
|
1053
1072
|
var value = normalizedCellAttr(cell, "vt");
|
|
1054
1073
|
if (Number(value) === 0) {
|
package/es/modules/dropCell.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
var __assign = this && this.__assign || function () {
|
|
2
|
+
__assign = Object.assign || function (t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
6
|
+
}
|
|
7
|
+
return t;
|
|
8
|
+
};
|
|
9
|
+
return __assign.apply(this, arguments);
|
|
10
|
+
};
|
|
1
11
|
import _ from "lodash";
|
|
2
12
|
import dayjs from "dayjs";
|
|
3
13
|
import { getFlowdata } from "../context";
|
|
@@ -1814,6 +1824,13 @@ export function updateDropCell(ctx) {
|
|
|
1814
1824
|
var v = formula.execfunction(ctx, f, j, i);
|
|
1815
1825
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
1816
1826
|
cell.v = v[1], cell.f = v[2];
|
|
1827
|
+
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
1828
|
+
if (afterUpdateCell) {
|
|
1829
|
+
afterUpdateCell(j, i, null, __assign(__assign({}, cell), {
|
|
1830
|
+
v: v[1] instanceof Promise ? v[1] : cell.v,
|
|
1831
|
+
m: v[1] instanceof Promise ? "[object Promise]" : v[1]
|
|
1832
|
+
}));
|
|
1833
|
+
}
|
|
1817
1834
|
if (cell.spl != null) {
|
|
1818
1835
|
cell.spl = v[3].data;
|
|
1819
1836
|
} else if (cell.v != null) {
|
|
@@ -1893,6 +1910,13 @@ export function updateDropCell(ctx) {
|
|
|
1893
1910
|
var v = formula.execfunction(ctx, f, j, i);
|
|
1894
1911
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
1895
1912
|
cell.v = v[1], cell.f = v[2];
|
|
1913
|
+
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
1914
|
+
if (afterUpdateCell) {
|
|
1915
|
+
afterUpdateCell(j, i, null, __assign(__assign({}, cell), {
|
|
1916
|
+
v: v[1] instanceof Promise ? v[1] : cell.v,
|
|
1917
|
+
m: v[1] instanceof Promise ? "[object Promise]" : v[1]
|
|
1918
|
+
}));
|
|
1919
|
+
}
|
|
1896
1920
|
if (cell.spl != null) {
|
|
1897
1921
|
cell.spl = v[3].data;
|
|
1898
1922
|
} else if (cell.v != null) {
|
|
@@ -1973,6 +1997,14 @@ export function updateDropCell(ctx) {
|
|
|
1973
1997
|
var v = formula.execfunction(ctx, f, i, j);
|
|
1974
1998
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
1975
1999
|
cell.v = v[1], cell.f = v[2];
|
|
2000
|
+
console.log(j, i);
|
|
2001
|
+
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
2002
|
+
if (afterUpdateCell) {
|
|
2003
|
+
afterUpdateCell(i, j, null, __assign(__assign({}, cell), {
|
|
2004
|
+
v: v[1] instanceof Promise ? v[1] : cell.v,
|
|
2005
|
+
m: v[1] instanceof Promise ? "[object Promise]" : v[1]
|
|
2006
|
+
}));
|
|
2007
|
+
}
|
|
1976
2008
|
if (cell.spl != null) {
|
|
1977
2009
|
cell.spl = v[3].data;
|
|
1978
2010
|
} else if (cell.v != null) {
|
|
@@ -2046,6 +2078,13 @@ export function updateDropCell(ctx) {
|
|
|
2046
2078
|
var v = formula.execfunction(ctx, f, i, j);
|
|
2047
2079
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
2048
2080
|
cell.v = v[1], cell.f = v[2];
|
|
2081
|
+
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
2082
|
+
if (afterUpdateCell) {
|
|
2083
|
+
afterUpdateCell(i, j, null, __assign(__assign({}, cell), {
|
|
2084
|
+
v: v[1] instanceof Promise ? v[1] : cell.v,
|
|
2085
|
+
m: v[1] instanceof Promise ? "[object Promise]" : v[1]
|
|
2086
|
+
}));
|
|
2087
|
+
}
|
|
2049
2088
|
if (cell.spl != null) {
|
|
2050
2089
|
cell.spl = v[3].data;
|
|
2051
2090
|
} else if (cell.v != null) {
|
package/es/modules/formula.js
CHANGED
|
@@ -2385,7 +2385,7 @@ export function functionCopy(ctx, txt, mode, step) {
|
|
|
2385
2385
|
str += s;
|
|
2386
2386
|
}
|
|
2387
2387
|
if (i === funcstack.length - 1) {
|
|
2388
|
-
if (iscelldata(_.trim(str))) {
|
|
2388
|
+
if (iscelldata(_.trim(str)) && !_.trim(str).includes("$")) {
|
|
2389
2389
|
if (mode === "down") {
|
|
2390
2390
|
function_str += downparam(_.trim(str), step);
|
|
2391
2391
|
} else if (mode === "up") {
|
package/es/modules/selection.js
CHANGED
|
@@ -1129,7 +1129,7 @@ function getHtmlBorderStyle(type, color) {
|
|
|
1129
1129
|
return "".concat(style + color, ";");
|
|
1130
1130
|
}
|
|
1131
1131
|
export function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
1132
|
-
var _a, _b, _c;
|
|
1132
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
1133
1133
|
var idx = getSheetIndex(ctx, sheetId);
|
|
1134
1134
|
if (idx == null) return "";
|
|
1135
1135
|
var sheet = ctx.luckysheetfile[idx];
|
|
@@ -1162,11 +1162,12 @@ export function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1162
1162
|
var colgroup = "";
|
|
1163
1163
|
for (var i = 0; i < rowIndexArr.length; i += 1) {
|
|
1164
1164
|
var r = rowIndexArr[i];
|
|
1165
|
-
|
|
1165
|
+
var rowLen = (_e = (_d = (_c = sheet.config) === null || _c === void 0 ? void 0 : _c.rowlen) === null || _d === void 0 ? void 0 : _d[r.toString()]) !== null && _e !== void 0 ? _e : sheet.defaultRowHeight;
|
|
1166
|
+
cpdata += "<tr height=".concat(rowLen, "px >");
|
|
1166
1167
|
var _loop_3 = function _loop_3(j) {
|
|
1167
1168
|
var c = colIndexArr[j];
|
|
1168
1169
|
var column = '<td ${span} style="${style}">';
|
|
1169
|
-
var cell = (
|
|
1170
|
+
var cell = (_f = d[r]) === null || _f === void 0 ? void 0 : _f[c];
|
|
1170
1171
|
if (cell != null) {
|
|
1171
1172
|
var style = "";
|
|
1172
1173
|
var span = "";
|
|
@@ -1178,11 +1179,14 @@ export function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1178
1179
|
}
|
|
1179
1180
|
}
|
|
1180
1181
|
if (c === colIndexArr[0]) {
|
|
1181
|
-
|
|
1182
|
+
var rowLenValue = (_h = (_g = sheet.config) === null || _g === void 0 ? void 0 : _g.rowlen) === null || _h === void 0 ? void 0 : _h[r.toString()];
|
|
1183
|
+
var colLen = (_k = (_j = sheet.config) === null || _j === void 0 ? void 0 : _j.columnlen) === null || _k === void 0 ? void 0 : _k[c.toString()];
|
|
1184
|
+
if (_.isNil(rowLenValue)) {
|
|
1182
1185
|
style += "height:19px;";
|
|
1183
1186
|
} else {
|
|
1184
|
-
style += "height:".concat(
|
|
1187
|
+
style += "height:".concat(rowLenValue, "px;");
|
|
1185
1188
|
}
|
|
1189
|
+
style += "width:".concat(colLen !== null && colLen !== void 0 ? colLen : sheet.defaultColWidth, "px;");
|
|
1186
1190
|
}
|
|
1187
1191
|
var reg = /^(w|W)((0?)|(0\.0+))$/;
|
|
1188
1192
|
var c_value = void 0;
|
|
@@ -1485,6 +1489,7 @@ export function copy(ctx) {
|
|
|
1485
1489
|
HasMC: HasMC
|
|
1486
1490
|
};
|
|
1487
1491
|
var cpdata = rangeValueToHtml(ctx, ctx.currentSheetId, ctx.luckysheet_select_save);
|
|
1492
|
+
cpdata = cpdata === null ? cpdata : cpdata.replace('<td style="', '<td style="white-space: pre-line;"');
|
|
1488
1493
|
if (cpdata) {
|
|
1489
1494
|
ctx.iscopyself = true;
|
|
1490
1495
|
clipboard.writeHtml(cpdata);
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
var __assign = this && this.__assign || function () {
|
|
3
|
+
__assign = Object.assign || function (t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
2
12
|
import _ from "lodash";
|
|
3
13
|
import { locale } from "./locale";
|
|
4
14
|
import { getQKBorder, saveHyperlink } from "./modules";
|
|
5
15
|
import { genarate } from "./modules/format";
|
|
6
16
|
import { getSheetIndex } from "./utils";
|
|
17
|
+
import { setRowHeight, setColumnWidth } from "./api";
|
|
7
18
|
export var DEFAULT_FONT_SIZE = 12;
|
|
8
19
|
var parseStylesheetPairs = function parseStylesheetPairs(styleInner) {
|
|
9
20
|
var patternReg = /{([^}]*)}/g;
|
|
@@ -112,14 +123,28 @@ var detectHyperlink = function detectHyperlink(td) {
|
|
|
112
123
|
}
|
|
113
124
|
return null;
|
|
114
125
|
};
|
|
126
|
+
function brToNewline(str) {
|
|
127
|
+
return str.replace(/<br\s*\/?>/gi, "\n");
|
|
128
|
+
}
|
|
115
129
|
var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
|
|
116
130
|
var _a;
|
|
117
|
-
var _b, _c;
|
|
131
|
+
var _b, _c, _d, _e;
|
|
118
132
|
var cell = {};
|
|
119
133
|
var rawText = (td.innerText || td.innerHTML || "").trim();
|
|
134
|
+
var isLineBreak = rawText.includes("<br />");
|
|
120
135
|
if (!rawText) {
|
|
121
136
|
cell.v = undefined;
|
|
122
137
|
cell.m = "";
|
|
138
|
+
} else if (isLineBreak) {
|
|
139
|
+
var value = brToNewline(rawText);
|
|
140
|
+
cell = __assign(__assign({}, cell), {
|
|
141
|
+
ct: __assign(__assign({}, cell.ct), {
|
|
142
|
+
t: "inlineStr",
|
|
143
|
+
s: [{
|
|
144
|
+
v: value
|
|
145
|
+
}]
|
|
146
|
+
})
|
|
147
|
+
});
|
|
123
148
|
} else {
|
|
124
149
|
var mask = genarate(rawText);
|
|
125
150
|
_a = mask || [], cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
|
|
@@ -132,6 +157,13 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
|
|
|
132
157
|
cell.v = rawText;
|
|
133
158
|
}
|
|
134
159
|
}
|
|
160
|
+
if (((_b = td.style) === null || _b === void 0 ? void 0 : _b.alignItems) === "center") {
|
|
161
|
+
cell.vt = 0;
|
|
162
|
+
} else if (((_c = td.style) === null || _c === void 0 ? void 0 : _c.alignItems) === "flex-end") {
|
|
163
|
+
cell.vt = 2;
|
|
164
|
+
} else if (((_d = td.style) === null || _d === void 0 ? void 0 : _d.alignItems) === "flex-start") {
|
|
165
|
+
cell.vt = 1;
|
|
166
|
+
}
|
|
135
167
|
var styleBlock = typeof classStyles[".".concat(td.className)] === "string" ? classStyles[".".concat(td.className)] : "";
|
|
136
168
|
var styles = parseInlineStyleBlock(styleBlock);
|
|
137
169
|
if (!_.isNil(styles.border)) td.style.border = styles.border;
|
|
@@ -156,17 +188,11 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
|
|
|
156
188
|
} else {
|
|
157
189
|
cell.ht = 1;
|
|
158
190
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
var vt = td.style.verticalAlign || styles["vertical-align"] || vtStyle;
|
|
162
|
-
if (vt === "middle") {
|
|
163
|
-
cell.vt = 0;
|
|
164
|
-
} else if (vt === "top" || vt === "text-top") {
|
|
165
|
-
cell.vt = 1;
|
|
191
|
+
if (((_e = td === null || td === void 0 ? void 0 : td.style) === null || _e === void 0 ? void 0 : _e["overflow-wrap"]) === "anywhere") {
|
|
192
|
+
cell.tb = "2";
|
|
166
193
|
} else {
|
|
167
|
-
cell.
|
|
194
|
+
cell.tb = "2";
|
|
168
195
|
}
|
|
169
|
-
cell.tb = "1";
|
|
170
196
|
if ("mso-rotate" in styles) cell.rt = parseFloat(styles["mso-rotate"]);
|
|
171
197
|
var rowspan = parseInt(td.getAttribute("rowspan") || "1", 10);
|
|
172
198
|
var colspan = parseInt(td.getAttribute("colspan") || "1", 10);
|
|
@@ -184,6 +210,15 @@ export function handlePastedTable(ctx, html, pasteHandler) {
|
|
|
184
210
|
if (!html.includes("table")) return;
|
|
185
211
|
var containerDiv = document.createElement("div");
|
|
186
212
|
containerDiv.innerHTML = html;
|
|
213
|
+
var tableColGropup = containerDiv.querySelectorAll("colgroup");
|
|
214
|
+
tableColGropup.forEach(function (colGroup, index) {
|
|
215
|
+
var _a;
|
|
216
|
+
var colWidth = colGroup === null || colGroup === void 0 ? void 0 : colGroup.getAttribute("width");
|
|
217
|
+
var intColWidth = parseInt(colWidth || "0", 10);
|
|
218
|
+
var anchorCol = ctx.luckysheet_select_save[0].column[0];
|
|
219
|
+
var absoluteCol = anchorCol + index;
|
|
220
|
+
setColumnWidth(ctx, (_a = {}, _a[absoluteCol] = intColWidth, _a));
|
|
221
|
+
});
|
|
187
222
|
var tableRows = containerDiv.querySelectorAll("table tr");
|
|
188
223
|
if (tableRows.length === 0) {
|
|
189
224
|
containerDiv.remove();
|
|
@@ -218,17 +253,19 @@ export function handlePastedTable(ctx, html, pasteHandler) {
|
|
|
218
253
|
var localRowIndex = 0;
|
|
219
254
|
tableRows.forEach(function (tr) {
|
|
220
255
|
var _a;
|
|
256
|
+
var _b;
|
|
221
257
|
var localColIndex = 0;
|
|
222
258
|
var anchorRow = ctx.luckysheet_select_save[0].row[0];
|
|
223
259
|
var targetRowIndex = anchorRow + localRowIndex;
|
|
224
260
|
var explicitRowHeightAttr = tr.getAttribute("height");
|
|
225
261
|
if (!_.isNil(explicitRowHeightAttr)) {
|
|
226
262
|
var explicitRowHeight = parseInt(explicitRowHeightAttr, 10);
|
|
227
|
-
var hasCustomRowHeight = _.has((
|
|
263
|
+
var hasCustomRowHeight = _.has((_b = sheetFile.config) === null || _b === void 0 ? void 0 : _b.rowlen, targetRowIndex);
|
|
228
264
|
var currentRowHeight = hasCustomRowHeight ? sheetFile.config.rowlen[targetRowIndex] : sheetFile.defaultRowHeight;
|
|
229
265
|
if (currentRowHeight !== explicitRowHeight) {
|
|
230
266
|
rowHeightsConfig[targetRowIndex] = explicitRowHeight;
|
|
231
267
|
}
|
|
268
|
+
setRowHeight(ctx, (_a = {}, _a[String(targetRowIndex)] = explicitRowHeight, _a));
|
|
232
269
|
}
|
|
233
270
|
tr.querySelectorAll("td, th").forEach(function (node) {
|
|
234
271
|
var tdElement = node;
|
package/lib/events/paste.js
CHANGED
|
@@ -90,19 +90,26 @@ function adjustFormulaForPaste(formula, srcCol, srcRow, destCol, destRow) {
|
|
|
90
90
|
var colOffset = destCol - srcCol;
|
|
91
91
|
var rowOffset = destRow - srcRow;
|
|
92
92
|
var hadInvalid = false;
|
|
93
|
-
var
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (!
|
|
97
|
-
if (
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
var
|
|
101
|
-
var
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
93
|
+
var cellRefRegex = /\b(\$?)([A-Z]+)(\$?)(\d+)\b/g;
|
|
94
|
+
var stringOrCellRef = /"(?:\\.|[^"])*"|(?<!\$)([A-Z]+\d+\b)/g;
|
|
95
|
+
var result = formula.replace(stringOrCellRef, function (m, cellRef) {
|
|
96
|
+
if (!cellRef) return m;
|
|
97
|
+
if (cellRef.startsWith("$")) return m;
|
|
98
|
+
console.log(m, "cellRef", cellRef);
|
|
99
|
+
return cellRef.replace(cellRefRegex, function (__, absCol, colLetters, absRow, rowNum) {
|
|
100
|
+
var colIndex = columnLabelIndex(colLetters);
|
|
101
|
+
var rowIndex = parseInt(rowNum, 10);
|
|
102
|
+
if (!absCol) colIndex += colOffset;
|
|
103
|
+
if (!absRow) rowIndex += rowOffset;
|
|
104
|
+
if (colIndex < 0 || rowIndex <= 0) {
|
|
105
|
+
hadInvalid = true;
|
|
106
|
+
var invalidCol = colIndex < 0 ? "".concat(absCol ? "$" : "").concat(colLetters).concat(colIndex) : "".concat(absCol ? "$" : "").concat(indexToColumnLabel(colIndex));
|
|
107
|
+
var invalidRow = rowIndex.toString();
|
|
108
|
+
return "".concat(invalidCol).concat(invalidRow);
|
|
109
|
+
}
|
|
110
|
+
var newCol = indexToColumnLabel(colIndex);
|
|
111
|
+
return "".concat(absCol ? "$" : "").concat(newCol).concat(absRow ? "$" : "").concat(rowIndex);
|
|
112
|
+
});
|
|
106
113
|
});
|
|
107
114
|
if (hadInvalid) {
|
|
108
115
|
var brokenFormula = "=".concat(result.replace(/^=/, ""));
|
|
@@ -977,6 +984,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
977
984
|
var isError = false;
|
|
978
985
|
try {
|
|
979
986
|
adjustedFormula = adjustFormulaForPaste(value.f, c_c1, c_r1, c, h);
|
|
987
|
+
console.log("adjustedFormula", adjustedFormula);
|
|
980
988
|
} catch (error) {
|
|
981
989
|
isError = true;
|
|
982
990
|
value.error = {
|
|
@@ -1163,9 +1171,12 @@ function resizePastedCellsToContent(ctx) {
|
|
|
1163
1171
|
(0, _calculateRangeCellSize.updateSheetCellSizes)(ctx, sheetIdx, rangeCellSize);
|
|
1164
1172
|
}
|
|
1165
1173
|
function handlePaste(ctx, e) {
|
|
1166
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
|
1174
|
+
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;
|
|
1167
1175
|
var allowEdit = (0, _utils.isAllowEdit)(ctx);
|
|
1168
1176
|
if (!allowEdit || ctx.isFlvReadOnly) return;
|
|
1177
|
+
if (!_selection.selectionCache.isPasteAction) {
|
|
1178
|
+
return;
|
|
1179
|
+
}
|
|
1169
1180
|
if (_selection.selectionCache.isPasteAction) {
|
|
1170
1181
|
ctx.luckysheetCellUpdate = [];
|
|
1171
1182
|
_selection.selectionCache.isPasteAction = false;
|
|
@@ -1196,11 +1207,11 @@ function handlePaste(ctx, e) {
|
|
|
1196
1207
|
}
|
|
1197
1208
|
cpDataArr.push(cpRowArr);
|
|
1198
1209
|
}
|
|
1199
|
-
var copy_r1 = ctx.luckysheet_copy_save.copyRange[0].row[0];
|
|
1200
|
-
var copy_r2 = ctx.luckysheet_copy_save.copyRange[0].row[1];
|
|
1201
|
-
var copy_c1 = ctx.luckysheet_copy_save.copyRange[0].column[0];
|
|
1202
|
-
var copy_c2 = ctx.luckysheet_copy_save.copyRange[0].column[1];
|
|
1203
|
-
var copy_index = ctx.luckysheet_copy_save.dataSheetId;
|
|
1210
|
+
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];
|
|
1211
|
+
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];
|
|
1212
|
+
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];
|
|
1213
|
+
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];
|
|
1214
|
+
var copy_index = ctx.luckysheet_copy_save.dataSheetId || ctx.currentSheetId;
|
|
1204
1215
|
var d = void 0;
|
|
1205
1216
|
if (copy_index === ctx.currentSheetId) {
|
|
1206
1217
|
d = (0, _context.getFlowdata)(ctx);
|
|
@@ -1222,15 +1233,15 @@ function handlePaste(ctx, e) {
|
|
|
1222
1233
|
}
|
|
1223
1234
|
var v = void 0;
|
|
1224
1235
|
if (!_lodash.default.isNil(cell)) {
|
|
1225
|
-
if (((
|
|
1226
|
-
v = (
|
|
1236
|
+
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) {
|
|
1237
|
+
v = (_p = (_o = d[r]) === null || _o === void 0 ? void 0 : _o[c]) === null || _p === void 0 ? void 0 : _p.v;
|
|
1227
1238
|
} else {
|
|
1228
|
-
v = (
|
|
1239
|
+
v = (_r = (_q = d[r]) === null || _q === void 0 ? void 0 : _q[c]) === null || _r === void 0 ? void 0 : _r.m;
|
|
1229
1240
|
}
|
|
1230
1241
|
} else {
|
|
1231
1242
|
v = "";
|
|
1232
1243
|
}
|
|
1233
|
-
if (_lodash.default.isNil(v) && ((
|
|
1244
|
+
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") {
|
|
1234
1245
|
v = d[r][c].ct.s.map(function (val) {
|
|
1235
1246
|
return val.v;
|
|
1236
1247
|
}).join("");
|
|
@@ -1248,10 +1259,10 @@ function handlePaste(ctx, e) {
|
|
|
1248
1259
|
}
|
|
1249
1260
|
}
|
|
1250
1261
|
}
|
|
1251
|
-
if (((
|
|
1262
|
+
if (((_w = (_v = ctx.hooks).beforePaste) === null || _w === void 0 ? void 0 : _w.call(_v, ctx.luckysheet_select_save, txtdata)) === false) {
|
|
1252
1263
|
return;
|
|
1253
1264
|
}
|
|
1254
|
-
if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((
|
|
1265
|
+
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) {
|
|
1255
1266
|
if (ctx.luckysheet_paste_iscut) {
|
|
1256
1267
|
ctx.luckysheet_paste_iscut = false;
|
|
1257
1268
|
pasteHandlerOfCutPaste(ctx, ctx.luckysheet_copy_save);
|
|
@@ -1263,7 +1274,6 @@ function handlePaste(ctx, e) {
|
|
|
1263
1274
|
} else if (txtdata.indexOf("fortune-copy-action-image") > -1) {} else {
|
|
1264
1275
|
if (txtdata.indexOf("table") > -1) {
|
|
1265
1276
|
(0, _pasteTableHelpers.handlePastedTable)(ctx, txtdata, pasteHandler);
|
|
1266
|
-
resizePastedCellsToContent(ctx);
|
|
1267
1277
|
} else if (clipboardData.files.length === 1 && clipboardData.files[0].type.indexOf("image") > -1) {} else {
|
|
1268
1278
|
txtdata = clipboardData.getData("text/plain");
|
|
1269
1279
|
var isExcelFormula = txtdata.startsWith("=");
|
|
@@ -1274,10 +1284,10 @@ function handlePaste(ctx, e) {
|
|
|
1274
1284
|
var _txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
|
|
1275
1285
|
var embedUrl = (0, _modules.sanitizeDuneUrl)(_txtdata);
|
|
1276
1286
|
if (embedUrl) {
|
|
1277
|
-
var last = (
|
|
1287
|
+
var last = (_y = ctx.luckysheet_select_save) === null || _y === void 0 ? void 0 : _y[ctx.luckysheet_select_save.length - 1];
|
|
1278
1288
|
if (last) {
|
|
1279
|
-
var rowIndex = (
|
|
1280
|
-
var colIndex = (
|
|
1289
|
+
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;
|
|
1290
|
+
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;
|
|
1281
1291
|
var left = colIndex === 0 ? 0 : ctx.visibledatacolumn[colIndex - 1];
|
|
1282
1292
|
var top_1 = rowIndex === 0 ? 0 : ctx.visibledatarow[rowIndex + 5];
|
|
1283
1293
|
ctx.showDunePreview = {
|
package/lib/modules/cell.js
CHANGED
|
@@ -92,14 +92,18 @@ function normalizedCellAttr(cell, attr, defaultFontSize) {
|
|
|
92
92
|
}
|
|
93
93
|
function normalizedAttr(data, r, c, attr) {
|
|
94
94
|
if (!data || !data[r]) {
|
|
95
|
-
console.warn("cell (%d, %d) is null", r, c);
|
|
96
95
|
return null;
|
|
97
96
|
}
|
|
98
97
|
var cell = data[r][c];
|
|
99
98
|
if (!cell) return undefined;
|
|
100
99
|
return normalizedCellAttr(cell, attr);
|
|
101
100
|
}
|
|
101
|
+
function newlinesToBr(text) {
|
|
102
|
+
if (!text) return "";
|
|
103
|
+
return text.replace(/\r\n|\r|\n/g, "<br />");
|
|
104
|
+
}
|
|
102
105
|
function getCellValue(r, c, data, attr) {
|
|
106
|
+
var _a;
|
|
103
107
|
if (!attr) {
|
|
104
108
|
attr = "v";
|
|
105
109
|
}
|
|
@@ -129,6 +133,9 @@ function getCellValue(r, c, data, attr) {
|
|
|
129
133
|
} else if (d && d.ct && d.ct.t === "d") {
|
|
130
134
|
retv = d.m;
|
|
131
135
|
}
|
|
136
|
+
if ((d === null || d === void 0 ? void 0 : d.ct) && (0, _inlineString.isInlineStringCT)(d.ct) && (attr === "v" || attr === "m")) {
|
|
137
|
+
retv = newlinesToBr((_a = d.ct.s[0]) === null || _a === void 0 ? void 0 : _a.v);
|
|
138
|
+
}
|
|
132
139
|
}
|
|
133
140
|
if (retv === undefined) {
|
|
134
141
|
retv = null;
|
|
@@ -1072,6 +1079,8 @@ function getStyleByCell(ctx, d, r, c) {
|
|
|
1072
1079
|
} else {
|
|
1073
1080
|
style.background = "".concat(value);
|
|
1074
1081
|
}
|
|
1082
|
+
} else {
|
|
1083
|
+
style.background = "".concat(value);
|
|
1075
1084
|
}
|
|
1076
1085
|
}
|
|
1077
1086
|
if ("ht" in cell) {
|
|
@@ -1080,8 +1089,18 @@ function getStyleByCell(ctx, d, r, c) {
|
|
|
1080
1089
|
style.textAlign = "center";
|
|
1081
1090
|
} else if (Number(value) === 2) {
|
|
1082
1091
|
style.textAlign = "right";
|
|
1092
|
+
style.overflowWrap = "anywhere";
|
|
1083
1093
|
}
|
|
1084
1094
|
}
|
|
1095
|
+
if ("tb" in cell) {
|
|
1096
|
+
if (Number(cell.tb) === 2) {
|
|
1097
|
+
style.overflowWrap = "anywhere";
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
if ("ff" in cell) {
|
|
1101
|
+
var value = normalizedCellAttr(cell, "ff");
|
|
1102
|
+
style.fontFamily = value;
|
|
1103
|
+
}
|
|
1085
1104
|
if ("vt" in cell) {
|
|
1086
1105
|
var value = normalizedCellAttr(cell, "vt");
|
|
1087
1106
|
if (Number(value) === 0) {
|
package/lib/modules/dropCell.js
CHANGED
|
@@ -26,6 +26,16 @@ var _selection = require("./selection");
|
|
|
26
26
|
var _refresh = require("./refresh");
|
|
27
27
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
28
28
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
|
+
var __assign = void 0 && (void 0).__assign || function () {
|
|
30
|
+
__assign = Object.assign || function (t) {
|
|
31
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
32
|
+
s = arguments[i];
|
|
33
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
34
|
+
}
|
|
35
|
+
return t;
|
|
36
|
+
};
|
|
37
|
+
return __assign.apply(this, arguments);
|
|
38
|
+
};
|
|
29
39
|
function toPx(v) {
|
|
30
40
|
return "".concat(v, "px");
|
|
31
41
|
}
|
|
@@ -1830,6 +1840,13 @@ function updateDropCell(ctx) {
|
|
|
1830
1840
|
var v = formula.execfunction(ctx, f, j, i);
|
|
1831
1841
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
1832
1842
|
cell.v = v[1], cell.f = v[2];
|
|
1843
|
+
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
1844
|
+
if (afterUpdateCell) {
|
|
1845
|
+
afterUpdateCell(j, i, null, __assign(__assign({}, cell), {
|
|
1846
|
+
v: v[1] instanceof Promise ? v[1] : cell.v,
|
|
1847
|
+
m: v[1] instanceof Promise ? "[object Promise]" : v[1]
|
|
1848
|
+
}));
|
|
1849
|
+
}
|
|
1833
1850
|
if (cell.spl != null) {
|
|
1834
1851
|
cell.spl = v[3].data;
|
|
1835
1852
|
} else if (cell.v != null) {
|
|
@@ -1909,6 +1926,13 @@ function updateDropCell(ctx) {
|
|
|
1909
1926
|
var v = formula.execfunction(ctx, f, j, i);
|
|
1910
1927
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
1911
1928
|
cell.v = v[1], cell.f = v[2];
|
|
1929
|
+
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
1930
|
+
if (afterUpdateCell) {
|
|
1931
|
+
afterUpdateCell(j, i, null, __assign(__assign({}, cell), {
|
|
1932
|
+
v: v[1] instanceof Promise ? v[1] : cell.v,
|
|
1933
|
+
m: v[1] instanceof Promise ? "[object Promise]" : v[1]
|
|
1934
|
+
}));
|
|
1935
|
+
}
|
|
1912
1936
|
if (cell.spl != null) {
|
|
1913
1937
|
cell.spl = v[3].data;
|
|
1914
1938
|
} else if (cell.v != null) {
|
|
@@ -1989,6 +2013,14 @@ function updateDropCell(ctx) {
|
|
|
1989
2013
|
var v = formula.execfunction(ctx, f, i, j);
|
|
1990
2014
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
1991
2015
|
cell.v = v[1], cell.f = v[2];
|
|
2016
|
+
console.log(j, i);
|
|
2017
|
+
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
2018
|
+
if (afterUpdateCell) {
|
|
2019
|
+
afterUpdateCell(i, j, null, __assign(__assign({}, cell), {
|
|
2020
|
+
v: v[1] instanceof Promise ? v[1] : cell.v,
|
|
2021
|
+
m: v[1] instanceof Promise ? "[object Promise]" : v[1]
|
|
2022
|
+
}));
|
|
2023
|
+
}
|
|
1992
2024
|
if (cell.spl != null) {
|
|
1993
2025
|
cell.spl = v[3].data;
|
|
1994
2026
|
} else if (cell.v != null) {
|
|
@@ -2062,6 +2094,13 @@ function updateDropCell(ctx) {
|
|
|
2062
2094
|
var v = formula.execfunction(ctx, f, i, j);
|
|
2063
2095
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
2064
2096
|
cell.v = v[1], cell.f = v[2];
|
|
2097
|
+
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
2098
|
+
if (afterUpdateCell) {
|
|
2099
|
+
afterUpdateCell(i, j, null, __assign(__assign({}, cell), {
|
|
2100
|
+
v: v[1] instanceof Promise ? v[1] : cell.v,
|
|
2101
|
+
m: v[1] instanceof Promise ? "[object Promise]" : v[1]
|
|
2102
|
+
}));
|
|
2103
|
+
}
|
|
2065
2104
|
if (cell.spl != null) {
|
|
2066
2105
|
cell.spl = v[3].data;
|
|
2067
2106
|
} else if (cell.v != null) {
|
package/lib/modules/formula.js
CHANGED
|
@@ -2415,7 +2415,7 @@ function functionCopy(ctx, txt, mode, step) {
|
|
|
2415
2415
|
str += s;
|
|
2416
2416
|
}
|
|
2417
2417
|
if (i === funcstack.length - 1) {
|
|
2418
|
-
if (iscelldata(_lodash.default.trim(str))) {
|
|
2418
|
+
if (iscelldata(_lodash.default.trim(str)) && !_lodash.default.trim(str).includes("$")) {
|
|
2419
2419
|
if (mode === "down") {
|
|
2420
2420
|
function_str += downparam(_lodash.default.trim(str), step);
|
|
2421
2421
|
} else if (mode === "up") {
|
package/lib/modules/selection.js
CHANGED
|
@@ -1164,7 +1164,7 @@ function getHtmlBorderStyle(type, color) {
|
|
|
1164
1164
|
return "".concat(style + color, ";");
|
|
1165
1165
|
}
|
|
1166
1166
|
function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
1167
|
-
var _a, _b, _c;
|
|
1167
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
1168
1168
|
var idx = (0, _utils.getSheetIndex)(ctx, sheetId);
|
|
1169
1169
|
if (idx == null) return "";
|
|
1170
1170
|
var sheet = ctx.luckysheetfile[idx];
|
|
@@ -1197,11 +1197,12 @@ function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1197
1197
|
var colgroup = "";
|
|
1198
1198
|
for (var i = 0; i < rowIndexArr.length; i += 1) {
|
|
1199
1199
|
var r = rowIndexArr[i];
|
|
1200
|
-
|
|
1200
|
+
var rowLen = (_e = (_d = (_c = sheet.config) === null || _c === void 0 ? void 0 : _c.rowlen) === null || _d === void 0 ? void 0 : _d[r.toString()]) !== null && _e !== void 0 ? _e : sheet.defaultRowHeight;
|
|
1201
|
+
cpdata += "<tr height=".concat(rowLen, "px >");
|
|
1201
1202
|
var _loop_3 = function _loop_3(j) {
|
|
1202
1203
|
var c = colIndexArr[j];
|
|
1203
1204
|
var column = '<td ${span} style="${style}">';
|
|
1204
|
-
var cell = (
|
|
1205
|
+
var cell = (_f = d[r]) === null || _f === void 0 ? void 0 : _f[c];
|
|
1205
1206
|
if (cell != null) {
|
|
1206
1207
|
var style = "";
|
|
1207
1208
|
var span = "";
|
|
@@ -1213,11 +1214,14 @@ function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1213
1214
|
}
|
|
1214
1215
|
}
|
|
1215
1216
|
if (c === colIndexArr[0]) {
|
|
1216
|
-
|
|
1217
|
+
var rowLenValue = (_h = (_g = sheet.config) === null || _g === void 0 ? void 0 : _g.rowlen) === null || _h === void 0 ? void 0 : _h[r.toString()];
|
|
1218
|
+
var colLen = (_k = (_j = sheet.config) === null || _j === void 0 ? void 0 : _j.columnlen) === null || _k === void 0 ? void 0 : _k[c.toString()];
|
|
1219
|
+
if (_lodash.default.isNil(rowLenValue)) {
|
|
1217
1220
|
style += "height:19px;";
|
|
1218
1221
|
} else {
|
|
1219
|
-
style += "height:".concat(
|
|
1222
|
+
style += "height:".concat(rowLenValue, "px;");
|
|
1220
1223
|
}
|
|
1224
|
+
style += "width:".concat(colLen !== null && colLen !== void 0 ? colLen : sheet.defaultColWidth, "px;");
|
|
1221
1225
|
}
|
|
1222
1226
|
var reg = /^(w|W)((0?)|(0\.0+))$/;
|
|
1223
1227
|
var c_value = void 0;
|
|
@@ -1520,6 +1524,7 @@ function copy(ctx) {
|
|
|
1520
1524
|
HasMC: HasMC
|
|
1521
1525
|
};
|
|
1522
1526
|
var cpdata = rangeValueToHtml(ctx, ctx.currentSheetId, ctx.luckysheet_select_save);
|
|
1527
|
+
cpdata = cpdata === null ? cpdata : cpdata.replace('<td style="', '<td style="white-space: pre-line;"');
|
|
1523
1528
|
if (cpdata) {
|
|
1524
1529
|
ctx.iscopyself = true;
|
|
1525
1530
|
_clipboard.default.writeHtml(cpdata);
|
|
@@ -10,8 +10,19 @@ var _locale = require("./locale");
|
|
|
10
10
|
var _modules = require("./modules");
|
|
11
11
|
var _format = require("./modules/format");
|
|
12
12
|
var _utils = require("./utils");
|
|
13
|
+
var _api = require("./api");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
16
|
+
var __assign = void 0 && (void 0).__assign || function () {
|
|
17
|
+
__assign = Object.assign || function (t) {
|
|
18
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
19
|
+
s = arguments[i];
|
|
20
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
return __assign.apply(this, arguments);
|
|
25
|
+
};
|
|
15
26
|
var DEFAULT_FONT_SIZE = exports.DEFAULT_FONT_SIZE = 12;
|
|
16
27
|
var parseStylesheetPairs = function parseStylesheetPairs(styleInner) {
|
|
17
28
|
var patternReg = /{([^}]*)}/g;
|
|
@@ -120,14 +131,28 @@ var detectHyperlink = function detectHyperlink(td) {
|
|
|
120
131
|
}
|
|
121
132
|
return null;
|
|
122
133
|
};
|
|
134
|
+
function brToNewline(str) {
|
|
135
|
+
return str.replace(/<br\s*\/?>/gi, "\n");
|
|
136
|
+
}
|
|
123
137
|
var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
|
|
124
138
|
var _a;
|
|
125
|
-
var _b, _c;
|
|
139
|
+
var _b, _c, _d, _e;
|
|
126
140
|
var cell = {};
|
|
127
141
|
var rawText = (td.innerText || td.innerHTML || "").trim();
|
|
142
|
+
var isLineBreak = rawText.includes("<br />");
|
|
128
143
|
if (!rawText) {
|
|
129
144
|
cell.v = undefined;
|
|
130
145
|
cell.m = "";
|
|
146
|
+
} else if (isLineBreak) {
|
|
147
|
+
var value = brToNewline(rawText);
|
|
148
|
+
cell = __assign(__assign({}, cell), {
|
|
149
|
+
ct: __assign(__assign({}, cell.ct), {
|
|
150
|
+
t: "inlineStr",
|
|
151
|
+
s: [{
|
|
152
|
+
v: value
|
|
153
|
+
}]
|
|
154
|
+
})
|
|
155
|
+
});
|
|
131
156
|
} else {
|
|
132
157
|
var mask = (0, _format.genarate)(rawText);
|
|
133
158
|
_a = mask || [], cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
|
|
@@ -140,6 +165,13 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
|
|
|
140
165
|
cell.v = rawText;
|
|
141
166
|
}
|
|
142
167
|
}
|
|
168
|
+
if (((_b = td.style) === null || _b === void 0 ? void 0 : _b.alignItems) === "center") {
|
|
169
|
+
cell.vt = 0;
|
|
170
|
+
} else if (((_c = td.style) === null || _c === void 0 ? void 0 : _c.alignItems) === "flex-end") {
|
|
171
|
+
cell.vt = 2;
|
|
172
|
+
} else if (((_d = td.style) === null || _d === void 0 ? void 0 : _d.alignItems) === "flex-start") {
|
|
173
|
+
cell.vt = 1;
|
|
174
|
+
}
|
|
143
175
|
var styleBlock = typeof classStyles[".".concat(td.className)] === "string" ? classStyles[".".concat(td.className)] : "";
|
|
144
176
|
var styles = parseInlineStyleBlock(styleBlock);
|
|
145
177
|
if (!_lodash.default.isNil(styles.border)) td.style.border = styles.border;
|
|
@@ -164,17 +196,11 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
|
|
|
164
196
|
} else {
|
|
165
197
|
cell.ht = 1;
|
|
166
198
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
var vt = td.style.verticalAlign || styles["vertical-align"] || vtStyle;
|
|
170
|
-
if (vt === "middle") {
|
|
171
|
-
cell.vt = 0;
|
|
172
|
-
} else if (vt === "top" || vt === "text-top") {
|
|
173
|
-
cell.vt = 1;
|
|
199
|
+
if (((_e = td === null || td === void 0 ? void 0 : td.style) === null || _e === void 0 ? void 0 : _e["overflow-wrap"]) === "anywhere") {
|
|
200
|
+
cell.tb = "2";
|
|
174
201
|
} else {
|
|
175
|
-
cell.
|
|
202
|
+
cell.tb = "2";
|
|
176
203
|
}
|
|
177
|
-
cell.tb = "1";
|
|
178
204
|
if ("mso-rotate" in styles) cell.rt = parseFloat(styles["mso-rotate"]);
|
|
179
205
|
var rowspan = parseInt(td.getAttribute("rowspan") || "1", 10);
|
|
180
206
|
var colspan = parseInt(td.getAttribute("colspan") || "1", 10);
|
|
@@ -192,6 +218,15 @@ function handlePastedTable(ctx, html, pasteHandler) {
|
|
|
192
218
|
if (!html.includes("table")) return;
|
|
193
219
|
var containerDiv = document.createElement("div");
|
|
194
220
|
containerDiv.innerHTML = html;
|
|
221
|
+
var tableColGropup = containerDiv.querySelectorAll("colgroup");
|
|
222
|
+
tableColGropup.forEach(function (colGroup, index) {
|
|
223
|
+
var _a;
|
|
224
|
+
var colWidth = colGroup === null || colGroup === void 0 ? void 0 : colGroup.getAttribute("width");
|
|
225
|
+
var intColWidth = parseInt(colWidth || "0", 10);
|
|
226
|
+
var anchorCol = ctx.luckysheet_select_save[0].column[0];
|
|
227
|
+
var absoluteCol = anchorCol + index;
|
|
228
|
+
(0, _api.setColumnWidth)(ctx, (_a = {}, _a[absoluteCol] = intColWidth, _a));
|
|
229
|
+
});
|
|
195
230
|
var tableRows = containerDiv.querySelectorAll("table tr");
|
|
196
231
|
if (tableRows.length === 0) {
|
|
197
232
|
containerDiv.remove();
|
|
@@ -226,17 +261,19 @@ function handlePastedTable(ctx, html, pasteHandler) {
|
|
|
226
261
|
var localRowIndex = 0;
|
|
227
262
|
tableRows.forEach(function (tr) {
|
|
228
263
|
var _a;
|
|
264
|
+
var _b;
|
|
229
265
|
var localColIndex = 0;
|
|
230
266
|
var anchorRow = ctx.luckysheet_select_save[0].row[0];
|
|
231
267
|
var targetRowIndex = anchorRow + localRowIndex;
|
|
232
268
|
var explicitRowHeightAttr = tr.getAttribute("height");
|
|
233
269
|
if (!_lodash.default.isNil(explicitRowHeightAttr)) {
|
|
234
270
|
var explicitRowHeight = parseInt(explicitRowHeightAttr, 10);
|
|
235
|
-
var hasCustomRowHeight = _lodash.default.has((
|
|
271
|
+
var hasCustomRowHeight = _lodash.default.has((_b = sheetFile.config) === null || _b === void 0 ? void 0 : _b.rowlen, targetRowIndex);
|
|
236
272
|
var currentRowHeight = hasCustomRowHeight ? sheetFile.config.rowlen[targetRowIndex] : sheetFile.defaultRowHeight;
|
|
237
273
|
if (currentRowHeight !== explicitRowHeight) {
|
|
238
274
|
rowHeightsConfig[targetRowIndex] = explicitRowHeight;
|
|
239
275
|
}
|
|
276
|
+
(0, _api.setRowHeight)(ctx, (_a = {}, _a[String(targetRowIndex)] = explicitRowHeight, _a));
|
|
240
277
|
}
|
|
241
278
|
tr.querySelectorAll("td, th").forEach(function (node) {
|
|
242
279
|
var tdElement = node;
|