@fileverse-dev/fortune-core 1.2.64 → 1.2.66
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 +118 -27
- package/es/locale/en.d.ts +1 -0
- package/es/locale/en.js +2 -1
- package/es/locale/index.d.ts +1 -0
- package/es/locale/zh.d.ts +1 -0
- package/es/locale/zh.js +2 -1
- package/es/modules/cell.js +28 -4
- package/es/modules/merge.js +89 -90
- package/lib/events/paste.js +118 -27
- package/lib/locale/en.d.ts +1 -0
- package/lib/locale/en.js +2 -1
- package/lib/locale/index.d.ts +1 -0
- package/lib/locale/zh.d.ts +1 -0
- package/lib/locale/zh.js +2 -1
- package/lib/modules/cell.js +28 -4
- package/lib/modules/merge.js +89 -90
- package/package.json +1 -1
package/es/events/paste.js
CHANGED
|
@@ -354,12 +354,21 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
354
354
|
expandRowsAndColumns(d, addr, addc);
|
|
355
355
|
}
|
|
356
356
|
if (!d) return;
|
|
357
|
+
var getUrlFromText = function getUrlFromText(text) {
|
|
358
|
+
var t = String(text).trim();
|
|
359
|
+
if (!t || /[\s\r\n]/.test(t)) return null;
|
|
360
|
+
if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
|
|
361
|
+
return t.startsWith("http") ? t : "https://".concat(t);
|
|
362
|
+
};
|
|
357
363
|
for (var r = 0; r < rlen; r += 1) {
|
|
358
364
|
var x = d[r + curR];
|
|
359
365
|
for (var c = 0; c < clen; c += 1) {
|
|
360
366
|
var originCell = x[c + curC];
|
|
361
367
|
var value = dataChe[r][c];
|
|
362
|
-
|
|
368
|
+
var originalValueStr = String(value);
|
|
369
|
+
var url = getUrlFromText(originalValueStr);
|
|
370
|
+
var isUrl = url !== null;
|
|
371
|
+
if (!isUrl && isRealNum(value)) {
|
|
363
372
|
if (originCell && originCell.ct && originCell.ct.fa === "@") {
|
|
364
373
|
value = String(value);
|
|
365
374
|
} else if (!/^0x?[a-fA-F0-9]+$/.test(value)) {
|
|
@@ -367,26 +376,59 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
367
376
|
}
|
|
368
377
|
}
|
|
369
378
|
if (originCell) {
|
|
370
|
-
originCell.v = value;
|
|
379
|
+
originCell.v = isUrl ? originalValueStr : value;
|
|
371
380
|
if (originCell.ct != null && originCell.ct.fa != null) {
|
|
372
|
-
originCell.m = update(originCell.ct.fa,
|
|
381
|
+
originCell.m = update(originCell.ct.fa, originCell.v);
|
|
373
382
|
} else {
|
|
374
|
-
originCell.m =
|
|
383
|
+
originCell.m = typeof originCell.v === "boolean" ? String(originCell.v) : originCell.v;
|
|
375
384
|
}
|
|
376
385
|
if (originCell.f != null && originCell.f.length > 0) {
|
|
377
386
|
originCell.f = "";
|
|
378
387
|
}
|
|
388
|
+
if (isUrl && url) {
|
|
389
|
+
var targetRow = r + curR;
|
|
390
|
+
var targetCol = c + curC;
|
|
391
|
+
saveHyperlink(ctx, targetRow, targetCol, url, "webpage", originalValueStr);
|
|
392
|
+
originCell.hl = {
|
|
393
|
+
r: targetRow,
|
|
394
|
+
c: targetCol,
|
|
395
|
+
id: ctx.currentSheetId
|
|
396
|
+
};
|
|
397
|
+
originCell.fc = originCell.fc || "rgb(0, 0, 255)";
|
|
398
|
+
originCell.un = originCell.un !== undefined ? originCell.un : 1;
|
|
399
|
+
}
|
|
379
400
|
} else {
|
|
380
401
|
var cell = {};
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
cell.m = value;
|
|
402
|
+
if (isUrl) {
|
|
403
|
+
cell.v = originalValueStr;
|
|
404
|
+
cell.m = originalValueStr;
|
|
385
405
|
cell.ct = {
|
|
386
406
|
fa: "@",
|
|
387
407
|
t: "s"
|
|
388
408
|
};
|
|
389
|
-
|
|
409
|
+
} else {
|
|
410
|
+
var mask = genarate(value);
|
|
411
|
+
_a = mask, cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
|
|
412
|
+
if (/^0x?[a-fA-F0-9]+$/.test(value)) {
|
|
413
|
+
cell.m = value;
|
|
414
|
+
cell.ct = {
|
|
415
|
+
fa: "@",
|
|
416
|
+
t: "s"
|
|
417
|
+
};
|
|
418
|
+
cell.v = value;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
if (isUrl && url) {
|
|
422
|
+
var targetRow = r + curR;
|
|
423
|
+
var targetCol = c + curC;
|
|
424
|
+
saveHyperlink(ctx, targetRow, targetCol, url, "webpage", originalValueStr);
|
|
425
|
+
cell.hl = {
|
|
426
|
+
r: targetRow,
|
|
427
|
+
c: targetCol,
|
|
428
|
+
id: ctx.currentSheetId
|
|
429
|
+
};
|
|
430
|
+
cell.fc = cell.fc || "rgb(0, 0, 255)";
|
|
431
|
+
cell.un = cell.un !== undefined ? cell.un : 1;
|
|
390
432
|
}
|
|
391
433
|
x[c + curC] = cell;
|
|
392
434
|
}
|
|
@@ -786,7 +828,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
786
828
|
}
|
|
787
829
|
}
|
|
788
830
|
function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
789
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
831
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
790
832
|
var allowEdit = isAllowEdit(ctx);
|
|
791
833
|
if (!allowEdit || ctx.isFlvReadOnly) return;
|
|
792
834
|
if (!copyRange) return;
|
|
@@ -1085,21 +1127,64 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1085
1127
|
file.luckysheet_conditionformat_save = cdformat;
|
|
1086
1128
|
file.dataVerification = __assign(__assign({}, file.dataVerification), dataVerification);
|
|
1087
1129
|
if (((_l = ctx.luckysheet_select_save) === null || _l === void 0 ? void 0 : _l.length) === 1 && ((_m = ctx.luckysheet_copy_save) === null || _m === void 0 ? void 0 : _m.copyRange.length) === 1) {
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1130
|
+
var srcIndex = getSheetIndex(ctx, (_o = ctx.luckysheet_copy_save) === null || _o === void 0 ? void 0 : _o.dataSheetId);
|
|
1131
|
+
var targetSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
|
|
1132
|
+
var srcHyperlinks = ctx.luckysheetfile[srcIndex].hyperlink;
|
|
1133
|
+
var srcData = ctx.luckysheetfile[srcIndex].data;
|
|
1134
|
+
if (!ctx.luckysheetfile[targetSheetIndex].hyperlink) {
|
|
1135
|
+
ctx.luckysheetfile[targetSheetIndex].hyperlink = {};
|
|
1136
|
+
}
|
|
1137
|
+
var targetHyperlinks = ctx.luckysheetfile[targetSheetIndex].hyperlink;
|
|
1138
|
+
var isSingleCell = copyh === 1 && copyc === 1;
|
|
1139
|
+
var cachedSrcLinkKey = isSingleCell ? "".concat(c_r1, "_").concat(c_c1) : null;
|
|
1140
|
+
var cachedSrcLink = isSingleCell && srcHyperlinks ? srcHyperlinks[cachedSrcLinkKey] : null;
|
|
1141
|
+
var cachedSrcCell = isSingleCell && srcData ? (_p = srcData[c_r1]) === null || _p === void 0 ? void 0 : _p[c_c1] : null;
|
|
1142
|
+
for (var th = 1; th <= timesH; th += 1) {
|
|
1143
|
+
for (var tc = 1; tc <= timesC; tc += 1) {
|
|
1144
|
+
var linkMth = minh + (th - 1) * copyh;
|
|
1145
|
+
var linkMtc = minc + (tc - 1) * copyc;
|
|
1146
|
+
var linkMaxRow = minh + th * copyh;
|
|
1147
|
+
var linkMaxCol = minc + tc * copyc;
|
|
1148
|
+
for (var h = linkMth; h < linkMaxRow; h += 1) {
|
|
1149
|
+
for (var c = linkMtc; c < linkMaxCol; c += 1) {
|
|
1150
|
+
var srcLink = void 0;
|
|
1151
|
+
if (isSingleCell && cachedSrcLink) {
|
|
1152
|
+
srcLink = cachedSrcLink;
|
|
1153
|
+
} else {
|
|
1154
|
+
var srcRow = c_r1 + (h - linkMth);
|
|
1155
|
+
var srcCol = c_c1 + (c - linkMtc);
|
|
1156
|
+
srcLink = srcHyperlinks === null || srcHyperlinks === void 0 ? void 0 : srcHyperlinks["".concat(srcRow, "_").concat(srcCol)];
|
|
1157
|
+
}
|
|
1158
|
+
if (!srcLink) continue;
|
|
1159
|
+
var targetKey = "".concat(h, "_").concat(c);
|
|
1160
|
+
targetHyperlinks[targetKey] = srcLink;
|
|
1161
|
+
var cell = (_q = d[h]) === null || _q === void 0 ? void 0 : _q[c];
|
|
1162
|
+
if (cell) {
|
|
1163
|
+
var srcCell = void 0;
|
|
1164
|
+
if (isSingleCell && cachedSrcCell) {
|
|
1165
|
+
srcCell = cachedSrcCell;
|
|
1166
|
+
} else {
|
|
1167
|
+
var srcRow = c_r1 + (h - linkMth);
|
|
1168
|
+
var srcCol = c_c1 + (c - linkMtc);
|
|
1169
|
+
srcCell = (_r = srcData === null || srcData === void 0 ? void 0 : srcData[srcRow]) === null || _r === void 0 ? void 0 : _r[srcCol];
|
|
1170
|
+
}
|
|
1171
|
+
cell.hl = {
|
|
1172
|
+
r: h,
|
|
1173
|
+
c: c,
|
|
1174
|
+
id: ctx.currentSheetId
|
|
1175
|
+
};
|
|
1176
|
+
if (srcCell) {
|
|
1177
|
+
if (srcCell.fc) cell.fc = srcCell.fc;
|
|
1178
|
+
if (srcCell.un !== undefined) cell.un = srcCell.un;
|
|
1179
|
+
} else {
|
|
1180
|
+
cell.fc = cell.fc || "rgb(0, 0, 255)";
|
|
1181
|
+
cell.un = cell.un !== undefined ? cell.un : 1;
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1100
1185
|
}
|
|
1101
1186
|
}
|
|
1102
|
-
}
|
|
1187
|
+
}
|
|
1103
1188
|
}
|
|
1104
1189
|
if (copyRowlChange || addr > 0 || addc > 0) {
|
|
1105
1190
|
jfrefreshgrid(ctx, d, ctx.luckysheet_select_save);
|
|
@@ -1136,11 +1221,17 @@ export function parseAsLinkIfUrl(txtdata, ctx) {
|
|
|
1136
1221
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
1137
1222
|
var urlRegex = /^(https?:\/\/[^\s]+)/;
|
|
1138
1223
|
if (urlRegex.test(txtdata)) {
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
var
|
|
1142
|
-
var colIndex = (_g = (_e = last.column_focus) !== null && _e !== void 0 ? _e : (_f = last.column) === null || _f === void 0 ? void 0 : _f[0]) !== null && _g !== void 0 ? _g : 0;
|
|
1224
|
+
if (ctx.luckysheetCellUpdate.length === 2) {
|
|
1225
|
+
var rowIndex = ctx.luckysheetCellUpdate[0];
|
|
1226
|
+
var colIndex = ctx.luckysheetCellUpdate[1];
|
|
1143
1227
|
saveHyperlink(ctx, rowIndex, colIndex, txtdata, "webpage", txtdata);
|
|
1228
|
+
} else {
|
|
1229
|
+
var last = (_a = ctx.luckysheet_select_save) === null || _a === void 0 ? void 0 : _a[ctx.luckysheet_select_save.length - 1];
|
|
1230
|
+
if (last) {
|
|
1231
|
+
var rowIndex = (_d = (_b = last.row_focus) !== null && _b !== void 0 ? _b : (_c = last.row) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : 0;
|
|
1232
|
+
var colIndex = (_g = (_e = last.column_focus) !== null && _e !== void 0 ? _e : (_f = last.column) === null || _f === void 0 ? void 0 : _f[0]) !== null && _g !== void 0 ? _g : 0;
|
|
1233
|
+
saveHyperlink(ctx, rowIndex, colIndex, txtdata, "webpage", txtdata);
|
|
1234
|
+
}
|
|
1144
1235
|
}
|
|
1145
1236
|
}
|
|
1146
1237
|
}
|
package/es/locale/en.d.ts
CHANGED
package/es/locale/en.js
CHANGED
|
@@ -9610,7 +9610,8 @@ export default {
|
|
|
9610
9610
|
noHide: "Can't hide, at least keep one sheet tag",
|
|
9611
9611
|
chartEditNoOpt: "This operation is not allowed in chart editing mode!",
|
|
9612
9612
|
sheetNameSpecCharError: "The name cannot contain:[ ] : ? * / ' \"",
|
|
9613
|
-
sheetNamecannotIsEmptyError: "Sheet name cannot be empty!"
|
|
9613
|
+
sheetNamecannotIsEmptyError: "Sheet name cannot be empty!",
|
|
9614
|
+
confirmMerge: "Merging cells will only preserve the top-leftmost value. Merge anyway?"
|
|
9614
9615
|
},
|
|
9615
9616
|
conditionformat: {
|
|
9616
9617
|
conditionformat_greaterThan: "Conditional format - Greater than",
|
package/es/locale/index.d.ts
CHANGED
package/es/locale/zh.d.ts
CHANGED
package/es/locale/zh.js
CHANGED
|
@@ -10083,7 +10083,8 @@ export default {
|
|
|
10083
10083
|
noHide: "不能隐藏, 至少保留一个sheet标签",
|
|
10084
10084
|
chartEditNoOpt: "图表编辑模式下不允许该操作!",
|
|
10085
10085
|
sheetNameSpecCharError: "名称不能超过31个字符,首尾不能是' 且名称不能包含:\r\n[ ] : \\ ? * /",
|
|
10086
|
-
sheetNamecannotIsEmptyError: "名称不能为空!"
|
|
10086
|
+
sheetNamecannotIsEmptyError: "名称不能为空!",
|
|
10087
|
+
confirmMerge: "合并单元格将仅保留左上角单元格的值。是否继续?"
|
|
10087
10088
|
},
|
|
10088
10089
|
conditionformat: {
|
|
10089
10090
|
conditionformat_greaterThan: "条件格式——大于",
|
package/es/modules/cell.js
CHANGED
|
@@ -538,7 +538,7 @@ export function cancelNormalSelected(ctx) {
|
|
|
538
538
|
ctx.formulaCache.rangedrag_row_start = false;
|
|
539
539
|
}
|
|
540
540
|
export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
541
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
541
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
542
542
|
if (ctx.allowEdit === false || ctx.isFlvReadOnly) return;
|
|
543
543
|
var inputText = $input === null || $input === void 0 ? void 0 : $input.innerText;
|
|
544
544
|
var inputHtml = $input === null || $input === void 0 ? void 0 : $input.innerHTML;
|
|
@@ -546,6 +546,13 @@ export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
546
546
|
if (!flowdata) return;
|
|
547
547
|
var index = getSheetIndex(ctx, ctx.currentSheetId);
|
|
548
548
|
var dataVerification = ctx.luckysheetfile[index].dataVerification;
|
|
549
|
+
var sheetFile = ctx.luckysheetfile[index];
|
|
550
|
+
var getUrlFromText = function getUrlFromText(text) {
|
|
551
|
+
var t = (text !== null && text !== void 0 ? text : "").trim();
|
|
552
|
+
if (!t || /[\s\r\n]/.test(t)) return null;
|
|
553
|
+
if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
|
|
554
|
+
return t.startsWith("http") ? t : "https://".concat(t);
|
|
555
|
+
};
|
|
549
556
|
if (!_.isNil(dataVerification)) {
|
|
550
557
|
var dvItem = dataVerification["".concat(r, "_").concat(c)];
|
|
551
558
|
if (!_.isNil(dvItem) && dvItem.prohibitInput && !validateCellData(ctx, dvItem, inputText)) {
|
|
@@ -803,13 +810,30 @@ export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
803
810
|
} catch (e) {
|
|
804
811
|
console.log("[updateCell] spill failed; falling back", e);
|
|
805
812
|
}
|
|
813
|
+
var url = getUrlFromText($input === null || $input === void 0 ? void 0 : $input.innerText);
|
|
814
|
+
if (url && _typeof(value) === "object" && value) {
|
|
815
|
+
value.hl = 1;
|
|
816
|
+
if (!sheetFile.hyperlink) sheetFile.hyperlink = {};
|
|
817
|
+
sheetFile.hyperlink["".concat(r, "_").concat(c)] = {
|
|
818
|
+
linkType: "webpage",
|
|
819
|
+
linkAddress: url
|
|
820
|
+
};
|
|
821
|
+
if (typeof value.v !== "string") {
|
|
822
|
+
value.v = (_r = $input === null || $input === void 0 ? void 0 : $input.innerText) !== null && _r !== void 0 ? _r : url;
|
|
823
|
+
}
|
|
824
|
+
if (value.m == null) {
|
|
825
|
+
value.m = value.v;
|
|
826
|
+
}
|
|
827
|
+
if (value.fc == null) value.fc = "rgb(0, 0, 255)";
|
|
828
|
+
if (value.un == null) value.un = 1;
|
|
829
|
+
}
|
|
806
830
|
setCellValue(ctx, r, c, d, value);
|
|
807
831
|
cancelNormalSelected(ctx);
|
|
808
832
|
if ((curv === null || curv === void 0 ? void 0 : curv.tb) === "2" && curv.v || isInlineStringCell(d[r][c])) {
|
|
809
833
|
var defaultrowlen = ctx.defaultrowlen;
|
|
810
834
|
var cfg = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].config || {};
|
|
811
|
-
if (!(((
|
|
812
|
-
var cellWidth = ((
|
|
835
|
+
if (!(((_s = cfg.columnlen) === null || _s === void 0 ? void 0 : _s[c]) && ((_t = cfg.rowlen) === null || _t === void 0 ? void 0 : _t[r]))) {
|
|
836
|
+
var cellWidth = ((_u = cfg.columnlen) === null || _u === void 0 ? void 0 : _u[c]) || ctx.defaultcollen;
|
|
813
837
|
var textInfo = canvas ? getCellTextInfo(d[r][c], canvas, ctx, {
|
|
814
838
|
r: r,
|
|
815
839
|
c: c,
|
|
@@ -820,7 +844,7 @@ export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
820
844
|
currentRowLen = textInfo.textHeightAll + 2;
|
|
821
845
|
}
|
|
822
846
|
var previousRowHeight = getRowHeight(ctx, [r])[r];
|
|
823
|
-
if (currentRowLen > defaultrowlen && !((
|
|
847
|
+
if (currentRowLen > defaultrowlen && !((_v = cfg.customHeight) === null || _v === void 0 ? void 0 : _v[r]) && previousRowHeight < currentRowLen) {
|
|
824
848
|
if (_.isNil(cfg.rowlen)) cfg.rowlen = {};
|
|
825
849
|
cfg.rowlen[r] = currentRowLen;
|
|
826
850
|
}
|
package/es/modules/merge.js
CHANGED
|
@@ -97,115 +97,114 @@ export function mergeCells(ctx, sheetId, ranges, type) {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
100
|
+
}
|
|
101
|
+
for (var i = 0; i < ranges.length; i += 1) {
|
|
102
|
+
var range = ranges[i];
|
|
103
|
+
var r1 = range.row[0];
|
|
104
|
+
var r2 = range.row[1];
|
|
105
|
+
var c1 = range.column[0];
|
|
106
|
+
var c2 = range.column[1];
|
|
107
|
+
if (r1 === r2 && c1 === c2) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (type === "merge-all") {
|
|
111
|
+
var fv = {};
|
|
112
|
+
var isfirst = false;
|
|
113
|
+
for (var r = r1; r <= r2; r += 1) {
|
|
114
|
+
for (var c = c1; c <= c2; c += 1) {
|
|
115
|
+
var cell = d[r][c];
|
|
116
|
+
if (cell != null && (isInlineStringCT(cell.ct) || !_.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_a = cell.ct.s) === null || _a === void 0 ? void 0 : _a.length)) && !isfirst) {
|
|
117
|
+
fv = _.cloneDeep(cell);
|
|
118
|
+
isfirst = true;
|
|
119
|
+
}
|
|
120
|
+
d[r][c] = {
|
|
121
|
+
mc: {
|
|
122
|
+
r: r1,
|
|
123
|
+
c: c1
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
109
127
|
}
|
|
110
|
-
|
|
128
|
+
d[r1][c1] = fv;
|
|
129
|
+
var a = d[r1][c1];
|
|
130
|
+
if (!a) return;
|
|
131
|
+
a.mc = {
|
|
132
|
+
r: r1,
|
|
133
|
+
c: c1,
|
|
134
|
+
rs: r2 - r1 + 1,
|
|
135
|
+
cs: c2 - c1 + 1
|
|
136
|
+
};
|
|
137
|
+
cfg.merge["".concat(r1, "_").concat(c1)] = {
|
|
138
|
+
r: r1,
|
|
139
|
+
c: c1,
|
|
140
|
+
rs: r2 - r1 + 1,
|
|
141
|
+
cs: c2 - c1 + 1
|
|
142
|
+
};
|
|
143
|
+
} else if (type === "merge-vertical") {
|
|
144
|
+
for (var c = c1; c <= c2; c += 1) {
|
|
111
145
|
var fv = {};
|
|
112
146
|
var isfirst = false;
|
|
113
147
|
for (var r = r1; r <= r2; r += 1) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
isfirst = true;
|
|
119
|
-
}
|
|
120
|
-
d[r][c] = {
|
|
121
|
-
mc: {
|
|
122
|
-
r: r1,
|
|
123
|
-
c: c1
|
|
124
|
-
}
|
|
125
|
-
};
|
|
148
|
+
var cell = d[r][c];
|
|
149
|
+
if (cell != null && (isInlineStringCT(cell.ct) || !_.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_b = cell.ct.s) === null || _b === void 0 ? void 0 : _b.length)) && !isfirst) {
|
|
150
|
+
fv = _.cloneDeep(cell);
|
|
151
|
+
isfirst = true;
|
|
126
152
|
}
|
|
153
|
+
d[r][c] = {
|
|
154
|
+
mc: {
|
|
155
|
+
r: r1,
|
|
156
|
+
c: c
|
|
157
|
+
}
|
|
158
|
+
};
|
|
127
159
|
}
|
|
128
|
-
d[r1][
|
|
129
|
-
var a = d[r1][
|
|
160
|
+
d[r1][c] = fv;
|
|
161
|
+
var a = d[r1][c];
|
|
130
162
|
if (!a) return;
|
|
131
163
|
a.mc = {
|
|
132
164
|
r: r1,
|
|
133
|
-
c:
|
|
165
|
+
c: c,
|
|
134
166
|
rs: r2 - r1 + 1,
|
|
135
|
-
cs:
|
|
167
|
+
cs: 1
|
|
136
168
|
};
|
|
137
|
-
cfg.merge["".concat(r1, "_").concat(
|
|
169
|
+
cfg.merge["".concat(r1, "_").concat(c)] = {
|
|
138
170
|
r: r1,
|
|
139
|
-
c:
|
|
171
|
+
c: c,
|
|
140
172
|
rs: r2 - r1 + 1,
|
|
141
|
-
cs:
|
|
173
|
+
cs: 1
|
|
142
174
|
};
|
|
143
|
-
}
|
|
175
|
+
}
|
|
176
|
+
} else if (type === "merge-horizontal") {
|
|
177
|
+
for (var r = r1; r <= r2; r += 1) {
|
|
178
|
+
var fv = {};
|
|
179
|
+
var isfirst = false;
|
|
144
180
|
for (var c = c1; c <= c2; c += 1) {
|
|
145
|
-
var
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if (cell != null && (isInlineStringCT(cell.ct) || !_.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_b = cell.ct.s) === null || _b === void 0 ? void 0 : _b.length)) && !isfirst) {
|
|
150
|
-
fv = _.cloneDeep(cell);
|
|
151
|
-
isfirst = true;
|
|
152
|
-
}
|
|
153
|
-
d[r][c] = {
|
|
154
|
-
mc: {
|
|
155
|
-
r: r1,
|
|
156
|
-
c: c
|
|
157
|
-
}
|
|
158
|
-
};
|
|
181
|
+
var cell = d[r][c];
|
|
182
|
+
if (cell != null && (isInlineStringCT(cell.ct) || !_.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_c = cell.ct.s) === null || _c === void 0 ? void 0 : _c.length)) && !isfirst) {
|
|
183
|
+
fv = _.cloneDeep(cell);
|
|
184
|
+
isfirst = true;
|
|
159
185
|
}
|
|
160
|
-
d[
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
r: r1,
|
|
165
|
-
c: c,
|
|
166
|
-
rs: r2 - r1 + 1,
|
|
167
|
-
cs: 1
|
|
168
|
-
};
|
|
169
|
-
cfg.merge["".concat(r1, "_").concat(c)] = {
|
|
170
|
-
r: r1,
|
|
171
|
-
c: c,
|
|
172
|
-
rs: r2 - r1 + 1,
|
|
173
|
-
cs: 1
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
} else if (type === "merge-horizontal") {
|
|
177
|
-
for (var r = r1; r <= r2; r += 1) {
|
|
178
|
-
var fv = {};
|
|
179
|
-
var isfirst = false;
|
|
180
|
-
for (var c = c1; c <= c2; c += 1) {
|
|
181
|
-
var cell = d[r][c];
|
|
182
|
-
if (cell != null && (isInlineStringCT(cell.ct) || !_.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_c = cell.ct.s) === null || _c === void 0 ? void 0 : _c.length)) && !isfirst) {
|
|
183
|
-
fv = _.cloneDeep(cell);
|
|
184
|
-
isfirst = true;
|
|
186
|
+
d[r][c] = {
|
|
187
|
+
mc: {
|
|
188
|
+
r: r,
|
|
189
|
+
c: c1
|
|
185
190
|
}
|
|
186
|
-
d[r][c] = {
|
|
187
|
-
mc: {
|
|
188
|
-
r: r,
|
|
189
|
-
c: c1
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
d[r][c1] = fv;
|
|
194
|
-
var a = d[r][c1];
|
|
195
|
-
if (!a) return;
|
|
196
|
-
a.mc = {
|
|
197
|
-
r: r,
|
|
198
|
-
c: c1,
|
|
199
|
-
rs: 1,
|
|
200
|
-
cs: c2 - c1 + 1
|
|
201
|
-
};
|
|
202
|
-
cfg.merge["".concat(r, "_").concat(c1)] = {
|
|
203
|
-
r: r,
|
|
204
|
-
c: c1,
|
|
205
|
-
rs: 1,
|
|
206
|
-
cs: c2 - c1 + 1
|
|
207
191
|
};
|
|
208
192
|
}
|
|
193
|
+
d[r][c1] = fv;
|
|
194
|
+
var a = d[r][c1];
|
|
195
|
+
if (!a) return;
|
|
196
|
+
a.mc = {
|
|
197
|
+
r: r,
|
|
198
|
+
c: c1,
|
|
199
|
+
rs: 1,
|
|
200
|
+
cs: c2 - c1 + 1
|
|
201
|
+
};
|
|
202
|
+
cfg.merge["".concat(r, "_").concat(c1)] = {
|
|
203
|
+
r: r,
|
|
204
|
+
c: c1,
|
|
205
|
+
rs: 1,
|
|
206
|
+
cs: c2 - c1 + 1
|
|
207
|
+
};
|
|
209
208
|
}
|
|
210
209
|
}
|
|
211
210
|
}
|
package/lib/events/paste.js
CHANGED
|
@@ -367,12 +367,21 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
367
367
|
(0, _sheet.expandRowsAndColumns)(d, addr, addc);
|
|
368
368
|
}
|
|
369
369
|
if (!d) return;
|
|
370
|
+
var getUrlFromText = function getUrlFromText(text) {
|
|
371
|
+
var t = String(text).trim();
|
|
372
|
+
if (!t || /[\s\r\n]/.test(t)) return null;
|
|
373
|
+
if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
|
|
374
|
+
return t.startsWith("http") ? t : "https://".concat(t);
|
|
375
|
+
};
|
|
370
376
|
for (var r = 0; r < rlen; r += 1) {
|
|
371
377
|
var x = d[r + curR];
|
|
372
378
|
for (var c = 0; c < clen; c += 1) {
|
|
373
379
|
var originCell = x[c + curC];
|
|
374
380
|
var value = dataChe[r][c];
|
|
375
|
-
|
|
381
|
+
var originalValueStr = String(value);
|
|
382
|
+
var url = getUrlFromText(originalValueStr);
|
|
383
|
+
var isUrl = url !== null;
|
|
384
|
+
if (!isUrl && (0, _validation.isRealNum)(value)) {
|
|
376
385
|
if (originCell && originCell.ct && originCell.ct.fa === "@") {
|
|
377
386
|
value = String(value);
|
|
378
387
|
} else if (!/^0x?[a-fA-F0-9]+$/.test(value)) {
|
|
@@ -380,26 +389,59 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
380
389
|
}
|
|
381
390
|
}
|
|
382
391
|
if (originCell) {
|
|
383
|
-
originCell.v = value;
|
|
392
|
+
originCell.v = isUrl ? originalValueStr : value;
|
|
384
393
|
if (originCell.ct != null && originCell.ct.fa != null) {
|
|
385
|
-
originCell.m = (0, _format.update)(originCell.ct.fa,
|
|
394
|
+
originCell.m = (0, _format.update)(originCell.ct.fa, originCell.v);
|
|
386
395
|
} else {
|
|
387
|
-
originCell.m =
|
|
396
|
+
originCell.m = typeof originCell.v === "boolean" ? String(originCell.v) : originCell.v;
|
|
388
397
|
}
|
|
389
398
|
if (originCell.f != null && originCell.f.length > 0) {
|
|
390
399
|
originCell.f = "";
|
|
391
400
|
}
|
|
401
|
+
if (isUrl && url) {
|
|
402
|
+
var targetRow = r + curR;
|
|
403
|
+
var targetCol = c + curC;
|
|
404
|
+
(0, _modules.saveHyperlink)(ctx, targetRow, targetCol, url, "webpage", originalValueStr);
|
|
405
|
+
originCell.hl = {
|
|
406
|
+
r: targetRow,
|
|
407
|
+
c: targetCol,
|
|
408
|
+
id: ctx.currentSheetId
|
|
409
|
+
};
|
|
410
|
+
originCell.fc = originCell.fc || "rgb(0, 0, 255)";
|
|
411
|
+
originCell.un = originCell.un !== undefined ? originCell.un : 1;
|
|
412
|
+
}
|
|
392
413
|
} else {
|
|
393
414
|
var cell = {};
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
cell.m = value;
|
|
415
|
+
if (isUrl) {
|
|
416
|
+
cell.v = originalValueStr;
|
|
417
|
+
cell.m = originalValueStr;
|
|
398
418
|
cell.ct = {
|
|
399
419
|
fa: "@",
|
|
400
420
|
t: "s"
|
|
401
421
|
};
|
|
402
|
-
|
|
422
|
+
} else {
|
|
423
|
+
var mask = (0, _format.genarate)(value);
|
|
424
|
+
_a = mask, cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
|
|
425
|
+
if (/^0x?[a-fA-F0-9]+$/.test(value)) {
|
|
426
|
+
cell.m = value;
|
|
427
|
+
cell.ct = {
|
|
428
|
+
fa: "@",
|
|
429
|
+
t: "s"
|
|
430
|
+
};
|
|
431
|
+
cell.v = value;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
if (isUrl && url) {
|
|
435
|
+
var targetRow = r + curR;
|
|
436
|
+
var targetCol = c + curC;
|
|
437
|
+
(0, _modules.saveHyperlink)(ctx, targetRow, targetCol, url, "webpage", originalValueStr);
|
|
438
|
+
cell.hl = {
|
|
439
|
+
r: targetRow,
|
|
440
|
+
c: targetCol,
|
|
441
|
+
id: ctx.currentSheetId
|
|
442
|
+
};
|
|
443
|
+
cell.fc = cell.fc || "rgb(0, 0, 255)";
|
|
444
|
+
cell.un = cell.un !== undefined ? cell.un : 1;
|
|
403
445
|
}
|
|
404
446
|
x[c + curC] = cell;
|
|
405
447
|
}
|
|
@@ -799,7 +841,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
799
841
|
}
|
|
800
842
|
}
|
|
801
843
|
function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
802
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
844
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
803
845
|
var allowEdit = (0, _utils.isAllowEdit)(ctx);
|
|
804
846
|
if (!allowEdit || ctx.isFlvReadOnly) return;
|
|
805
847
|
if (!copyRange) return;
|
|
@@ -1098,21 +1140,64 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1098
1140
|
file.luckysheet_conditionformat_save = cdformat;
|
|
1099
1141
|
file.dataVerification = __assign(__assign({}, file.dataVerification), dataVerification);
|
|
1100
1142
|
if (((_l = ctx.luckysheet_select_save) === null || _l === void 0 ? void 0 : _l.length) === 1 && ((_m = ctx.luckysheet_copy_save) === null || _m === void 0 ? void 0 : _m.copyRange.length) === 1) {
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1143
|
+
var srcIndex = (0, _utils.getSheetIndex)(ctx, (_o = ctx.luckysheet_copy_save) === null || _o === void 0 ? void 0 : _o.dataSheetId);
|
|
1144
|
+
var targetSheetIndex = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
|
|
1145
|
+
var srcHyperlinks = ctx.luckysheetfile[srcIndex].hyperlink;
|
|
1146
|
+
var srcData = ctx.luckysheetfile[srcIndex].data;
|
|
1147
|
+
if (!ctx.luckysheetfile[targetSheetIndex].hyperlink) {
|
|
1148
|
+
ctx.luckysheetfile[targetSheetIndex].hyperlink = {};
|
|
1149
|
+
}
|
|
1150
|
+
var targetHyperlinks = ctx.luckysheetfile[targetSheetIndex].hyperlink;
|
|
1151
|
+
var isSingleCell = copyh === 1 && copyc === 1;
|
|
1152
|
+
var cachedSrcLinkKey = isSingleCell ? "".concat(c_r1, "_").concat(c_c1) : null;
|
|
1153
|
+
var cachedSrcLink = isSingleCell && srcHyperlinks ? srcHyperlinks[cachedSrcLinkKey] : null;
|
|
1154
|
+
var cachedSrcCell = isSingleCell && srcData ? (_p = srcData[c_r1]) === null || _p === void 0 ? void 0 : _p[c_c1] : null;
|
|
1155
|
+
for (var th = 1; th <= timesH; th += 1) {
|
|
1156
|
+
for (var tc = 1; tc <= timesC; tc += 1) {
|
|
1157
|
+
var linkMth = minh + (th - 1) * copyh;
|
|
1158
|
+
var linkMtc = minc + (tc - 1) * copyc;
|
|
1159
|
+
var linkMaxRow = minh + th * copyh;
|
|
1160
|
+
var linkMaxCol = minc + tc * copyc;
|
|
1161
|
+
for (var h = linkMth; h < linkMaxRow; h += 1) {
|
|
1162
|
+
for (var c = linkMtc; c < linkMaxCol; c += 1) {
|
|
1163
|
+
var srcLink = void 0;
|
|
1164
|
+
if (isSingleCell && cachedSrcLink) {
|
|
1165
|
+
srcLink = cachedSrcLink;
|
|
1166
|
+
} else {
|
|
1167
|
+
var srcRow = c_r1 + (h - linkMth);
|
|
1168
|
+
var srcCol = c_c1 + (c - linkMtc);
|
|
1169
|
+
srcLink = srcHyperlinks === null || srcHyperlinks === void 0 ? void 0 : srcHyperlinks["".concat(srcRow, "_").concat(srcCol)];
|
|
1170
|
+
}
|
|
1171
|
+
if (!srcLink) continue;
|
|
1172
|
+
var targetKey = "".concat(h, "_").concat(c);
|
|
1173
|
+
targetHyperlinks[targetKey] = srcLink;
|
|
1174
|
+
var cell = (_q = d[h]) === null || _q === void 0 ? void 0 : _q[c];
|
|
1175
|
+
if (cell) {
|
|
1176
|
+
var srcCell = void 0;
|
|
1177
|
+
if (isSingleCell && cachedSrcCell) {
|
|
1178
|
+
srcCell = cachedSrcCell;
|
|
1179
|
+
} else {
|
|
1180
|
+
var srcRow = c_r1 + (h - linkMth);
|
|
1181
|
+
var srcCol = c_c1 + (c - linkMtc);
|
|
1182
|
+
srcCell = (_r = srcData === null || srcData === void 0 ? void 0 : srcData[srcRow]) === null || _r === void 0 ? void 0 : _r[srcCol];
|
|
1183
|
+
}
|
|
1184
|
+
cell.hl = {
|
|
1185
|
+
r: h,
|
|
1186
|
+
c: c,
|
|
1187
|
+
id: ctx.currentSheetId
|
|
1188
|
+
};
|
|
1189
|
+
if (srcCell) {
|
|
1190
|
+
if (srcCell.fc) cell.fc = srcCell.fc;
|
|
1191
|
+
if (srcCell.un !== undefined) cell.un = srcCell.un;
|
|
1192
|
+
} else {
|
|
1193
|
+
cell.fc = cell.fc || "rgb(0, 0, 255)";
|
|
1194
|
+
cell.un = cell.un !== undefined ? cell.un : 1;
|
|
1195
|
+
}
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1113
1198
|
}
|
|
1114
1199
|
}
|
|
1115
|
-
}
|
|
1200
|
+
}
|
|
1116
1201
|
}
|
|
1117
1202
|
if (copyRowlChange || addr > 0 || addc > 0) {
|
|
1118
1203
|
(0, _refresh.jfrefreshgrid)(ctx, d, ctx.luckysheet_select_save);
|
|
@@ -1149,11 +1234,17 @@ function parseAsLinkIfUrl(txtdata, ctx) {
|
|
|
1149
1234
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
1150
1235
|
var urlRegex = /^(https?:\/\/[^\s]+)/;
|
|
1151
1236
|
if (urlRegex.test(txtdata)) {
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
var
|
|
1155
|
-
var colIndex = (_g = (_e = last.column_focus) !== null && _e !== void 0 ? _e : (_f = last.column) === null || _f === void 0 ? void 0 : _f[0]) !== null && _g !== void 0 ? _g : 0;
|
|
1237
|
+
if (ctx.luckysheetCellUpdate.length === 2) {
|
|
1238
|
+
var rowIndex = ctx.luckysheetCellUpdate[0];
|
|
1239
|
+
var colIndex = ctx.luckysheetCellUpdate[1];
|
|
1156
1240
|
(0, _modules.saveHyperlink)(ctx, rowIndex, colIndex, txtdata, "webpage", txtdata);
|
|
1241
|
+
} else {
|
|
1242
|
+
var last = (_a = ctx.luckysheet_select_save) === null || _a === void 0 ? void 0 : _a[ctx.luckysheet_select_save.length - 1];
|
|
1243
|
+
if (last) {
|
|
1244
|
+
var rowIndex = (_d = (_b = last.row_focus) !== null && _b !== void 0 ? _b : (_c = last.row) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : 0;
|
|
1245
|
+
var colIndex = (_g = (_e = last.column_focus) !== null && _e !== void 0 ? _e : (_f = last.column) === null || _f === void 0 ? void 0 : _f[0]) !== null && _g !== void 0 ? _g : 0;
|
|
1246
|
+
(0, _modules.saveHyperlink)(ctx, rowIndex, colIndex, txtdata, "webpage", txtdata);
|
|
1247
|
+
}
|
|
1157
1248
|
}
|
|
1158
1249
|
}
|
|
1159
1250
|
}
|
package/lib/locale/en.d.ts
CHANGED
package/lib/locale/en.js
CHANGED
|
@@ -9616,7 +9616,8 @@ var _default = exports.default = {
|
|
|
9616
9616
|
noHide: "Can't hide, at least keep one sheet tag",
|
|
9617
9617
|
chartEditNoOpt: "This operation is not allowed in chart editing mode!",
|
|
9618
9618
|
sheetNameSpecCharError: "The name cannot contain:[ ] : ? * / ' \"",
|
|
9619
|
-
sheetNamecannotIsEmptyError: "Sheet name cannot be empty!"
|
|
9619
|
+
sheetNamecannotIsEmptyError: "Sheet name cannot be empty!",
|
|
9620
|
+
confirmMerge: "Merging cells will only preserve the top-leftmost value. Merge anyway?"
|
|
9620
9621
|
},
|
|
9621
9622
|
conditionformat: {
|
|
9622
9623
|
conditionformat_greaterThan: "Conditional format - Greater than",
|
package/lib/locale/index.d.ts
CHANGED
package/lib/locale/zh.d.ts
CHANGED
package/lib/locale/zh.js
CHANGED
|
@@ -10089,7 +10089,8 @@ var _default = exports.default = {
|
|
|
10089
10089
|
noHide: "不能隐藏, 至少保留一个sheet标签",
|
|
10090
10090
|
chartEditNoOpt: "图表编辑模式下不允许该操作!",
|
|
10091
10091
|
sheetNameSpecCharError: "名称不能超过31个字符,首尾不能是' 且名称不能包含:\r\n[ ] : \\ ? * /",
|
|
10092
|
-
sheetNamecannotIsEmptyError: "名称不能为空!"
|
|
10092
|
+
sheetNamecannotIsEmptyError: "名称不能为空!",
|
|
10093
|
+
confirmMerge: "合并单元格将仅保留左上角单元格的值。是否继续?"
|
|
10093
10094
|
},
|
|
10094
10095
|
conditionformat: {
|
|
10095
10096
|
conditionformat_greaterThan: "条件格式——大于",
|
package/lib/modules/cell.js
CHANGED
|
@@ -571,7 +571,7 @@ function cancelNormalSelected(ctx) {
|
|
|
571
571
|
ctx.formulaCache.rangedrag_row_start = false;
|
|
572
572
|
}
|
|
573
573
|
function updateCell(ctx, r, c, $input, value, canvas) {
|
|
574
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
574
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
575
575
|
if (ctx.allowEdit === false || ctx.isFlvReadOnly) return;
|
|
576
576
|
var inputText = $input === null || $input === void 0 ? void 0 : $input.innerText;
|
|
577
577
|
var inputHtml = $input === null || $input === void 0 ? void 0 : $input.innerHTML;
|
|
@@ -579,6 +579,13 @@ function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
579
579
|
if (!flowdata) return;
|
|
580
580
|
var index = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
|
|
581
581
|
var dataVerification = ctx.luckysheetfile[index].dataVerification;
|
|
582
|
+
var sheetFile = ctx.luckysheetfile[index];
|
|
583
|
+
var getUrlFromText = function getUrlFromText(text) {
|
|
584
|
+
var t = (text !== null && text !== void 0 ? text : "").trim();
|
|
585
|
+
if (!t || /[\s\r\n]/.test(t)) return null;
|
|
586
|
+
if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
|
|
587
|
+
return t.startsWith("http") ? t : "https://".concat(t);
|
|
588
|
+
};
|
|
582
589
|
if (!_lodash.default.isNil(dataVerification)) {
|
|
583
590
|
var dvItem = dataVerification["".concat(r, "_").concat(c)];
|
|
584
591
|
if (!_lodash.default.isNil(dvItem) && dvItem.prohibitInput && !(0, _dataVerification.validateCellData)(ctx, dvItem, inputText)) {
|
|
@@ -836,13 +843,30 @@ function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
836
843
|
} catch (e) {
|
|
837
844
|
console.log("[updateCell] spill failed; falling back", e);
|
|
838
845
|
}
|
|
846
|
+
var url = getUrlFromText($input === null || $input === void 0 ? void 0 : $input.innerText);
|
|
847
|
+
if (url && _typeof(value) === "object" && value) {
|
|
848
|
+
value.hl = 1;
|
|
849
|
+
if (!sheetFile.hyperlink) sheetFile.hyperlink = {};
|
|
850
|
+
sheetFile.hyperlink["".concat(r, "_").concat(c)] = {
|
|
851
|
+
linkType: "webpage",
|
|
852
|
+
linkAddress: url
|
|
853
|
+
};
|
|
854
|
+
if (typeof value.v !== "string") {
|
|
855
|
+
value.v = (_r = $input === null || $input === void 0 ? void 0 : $input.innerText) !== null && _r !== void 0 ? _r : url;
|
|
856
|
+
}
|
|
857
|
+
if (value.m == null) {
|
|
858
|
+
value.m = value.v;
|
|
859
|
+
}
|
|
860
|
+
if (value.fc == null) value.fc = "rgb(0, 0, 255)";
|
|
861
|
+
if (value.un == null) value.un = 1;
|
|
862
|
+
}
|
|
839
863
|
setCellValue(ctx, r, c, d, value);
|
|
840
864
|
cancelNormalSelected(ctx);
|
|
841
865
|
if ((curv === null || curv === void 0 ? void 0 : curv.tb) === "2" && curv.v || (0, _inlineString.isInlineStringCell)(d[r][c])) {
|
|
842
866
|
var defaultrowlen = ctx.defaultrowlen;
|
|
843
867
|
var cfg = ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, ctx.currentSheetId)].config || {};
|
|
844
|
-
if (!(((
|
|
845
|
-
var cellWidth = ((
|
|
868
|
+
if (!(((_s = cfg.columnlen) === null || _s === void 0 ? void 0 : _s[c]) && ((_t = cfg.rowlen) === null || _t === void 0 ? void 0 : _t[r]))) {
|
|
869
|
+
var cellWidth = ((_u = cfg.columnlen) === null || _u === void 0 ? void 0 : _u[c]) || ctx.defaultcollen;
|
|
846
870
|
var textInfo = canvas ? (0, _text.getCellTextInfo)(d[r][c], canvas, ctx, {
|
|
847
871
|
r: r,
|
|
848
872
|
c: c,
|
|
@@ -853,7 +877,7 @@ function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
853
877
|
currentRowLen = textInfo.textHeightAll + 2;
|
|
854
878
|
}
|
|
855
879
|
var previousRowHeight = (0, _api.getRowHeight)(ctx, [r])[r];
|
|
856
|
-
if (currentRowLen > defaultrowlen && !((
|
|
880
|
+
if (currentRowLen > defaultrowlen && !((_v = cfg.customHeight) === null || _v === void 0 ? void 0 : _v[r]) && previousRowHeight < currentRowLen) {
|
|
857
881
|
if (_lodash.default.isNil(cfg.rowlen)) cfg.rowlen = {};
|
|
858
882
|
cfg.rowlen[r] = currentRowLen;
|
|
859
883
|
}
|
package/lib/modules/merge.js
CHANGED
|
@@ -104,115 +104,114 @@ function mergeCells(ctx, sheetId, ranges, type) {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
107
|
+
}
|
|
108
|
+
for (var i = 0; i < ranges.length; i += 1) {
|
|
109
|
+
var range = ranges[i];
|
|
110
|
+
var r1 = range.row[0];
|
|
111
|
+
var r2 = range.row[1];
|
|
112
|
+
var c1 = range.column[0];
|
|
113
|
+
var c2 = range.column[1];
|
|
114
|
+
if (r1 === r2 && c1 === c2) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (type === "merge-all") {
|
|
118
|
+
var fv = {};
|
|
119
|
+
var isfirst = false;
|
|
120
|
+
for (var r = r1; r <= r2; r += 1) {
|
|
121
|
+
for (var c = c1; c <= c2; c += 1) {
|
|
122
|
+
var cell = d[r][c];
|
|
123
|
+
if (cell != null && ((0, _inlineString.isInlineStringCT)(cell.ct) || !_lodash.default.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_a = cell.ct.s) === null || _a === void 0 ? void 0 : _a.length)) && !isfirst) {
|
|
124
|
+
fv = _lodash.default.cloneDeep(cell);
|
|
125
|
+
isfirst = true;
|
|
126
|
+
}
|
|
127
|
+
d[r][c] = {
|
|
128
|
+
mc: {
|
|
129
|
+
r: r1,
|
|
130
|
+
c: c1
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
}
|
|
116
134
|
}
|
|
117
|
-
|
|
135
|
+
d[r1][c1] = fv;
|
|
136
|
+
var a = d[r1][c1];
|
|
137
|
+
if (!a) return;
|
|
138
|
+
a.mc = {
|
|
139
|
+
r: r1,
|
|
140
|
+
c: c1,
|
|
141
|
+
rs: r2 - r1 + 1,
|
|
142
|
+
cs: c2 - c1 + 1
|
|
143
|
+
};
|
|
144
|
+
cfg.merge["".concat(r1, "_").concat(c1)] = {
|
|
145
|
+
r: r1,
|
|
146
|
+
c: c1,
|
|
147
|
+
rs: r2 - r1 + 1,
|
|
148
|
+
cs: c2 - c1 + 1
|
|
149
|
+
};
|
|
150
|
+
} else if (type === "merge-vertical") {
|
|
151
|
+
for (var c = c1; c <= c2; c += 1) {
|
|
118
152
|
var fv = {};
|
|
119
153
|
var isfirst = false;
|
|
120
154
|
for (var r = r1; r <= r2; r += 1) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
isfirst = true;
|
|
126
|
-
}
|
|
127
|
-
d[r][c] = {
|
|
128
|
-
mc: {
|
|
129
|
-
r: r1,
|
|
130
|
-
c: c1
|
|
131
|
-
}
|
|
132
|
-
};
|
|
155
|
+
var cell = d[r][c];
|
|
156
|
+
if (cell != null && ((0, _inlineString.isInlineStringCT)(cell.ct) || !_lodash.default.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_b = cell.ct.s) === null || _b === void 0 ? void 0 : _b.length)) && !isfirst) {
|
|
157
|
+
fv = _lodash.default.cloneDeep(cell);
|
|
158
|
+
isfirst = true;
|
|
133
159
|
}
|
|
160
|
+
d[r][c] = {
|
|
161
|
+
mc: {
|
|
162
|
+
r: r1,
|
|
163
|
+
c: c
|
|
164
|
+
}
|
|
165
|
+
};
|
|
134
166
|
}
|
|
135
|
-
d[r1][
|
|
136
|
-
var a = d[r1][
|
|
167
|
+
d[r1][c] = fv;
|
|
168
|
+
var a = d[r1][c];
|
|
137
169
|
if (!a) return;
|
|
138
170
|
a.mc = {
|
|
139
171
|
r: r1,
|
|
140
|
-
c:
|
|
172
|
+
c: c,
|
|
141
173
|
rs: r2 - r1 + 1,
|
|
142
|
-
cs:
|
|
174
|
+
cs: 1
|
|
143
175
|
};
|
|
144
|
-
cfg.merge["".concat(r1, "_").concat(
|
|
176
|
+
cfg.merge["".concat(r1, "_").concat(c)] = {
|
|
145
177
|
r: r1,
|
|
146
|
-
c:
|
|
178
|
+
c: c,
|
|
147
179
|
rs: r2 - r1 + 1,
|
|
148
|
-
cs:
|
|
180
|
+
cs: 1
|
|
149
181
|
};
|
|
150
|
-
}
|
|
182
|
+
}
|
|
183
|
+
} else if (type === "merge-horizontal") {
|
|
184
|
+
for (var r = r1; r <= r2; r += 1) {
|
|
185
|
+
var fv = {};
|
|
186
|
+
var isfirst = false;
|
|
151
187
|
for (var c = c1; c <= c2; c += 1) {
|
|
152
|
-
var
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
if (cell != null && ((0, _inlineString.isInlineStringCT)(cell.ct) || !_lodash.default.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_b = cell.ct.s) === null || _b === void 0 ? void 0 : _b.length)) && !isfirst) {
|
|
157
|
-
fv = _lodash.default.cloneDeep(cell);
|
|
158
|
-
isfirst = true;
|
|
159
|
-
}
|
|
160
|
-
d[r][c] = {
|
|
161
|
-
mc: {
|
|
162
|
-
r: r1,
|
|
163
|
-
c: c
|
|
164
|
-
}
|
|
165
|
-
};
|
|
188
|
+
var cell = d[r][c];
|
|
189
|
+
if (cell != null && ((0, _inlineString.isInlineStringCT)(cell.ct) || !_lodash.default.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_c = cell.ct.s) === null || _c === void 0 ? void 0 : _c.length)) && !isfirst) {
|
|
190
|
+
fv = _lodash.default.cloneDeep(cell);
|
|
191
|
+
isfirst = true;
|
|
166
192
|
}
|
|
167
|
-
d[
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
r: r1,
|
|
172
|
-
c: c,
|
|
173
|
-
rs: r2 - r1 + 1,
|
|
174
|
-
cs: 1
|
|
175
|
-
};
|
|
176
|
-
cfg.merge["".concat(r1, "_").concat(c)] = {
|
|
177
|
-
r: r1,
|
|
178
|
-
c: c,
|
|
179
|
-
rs: r2 - r1 + 1,
|
|
180
|
-
cs: 1
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
} else if (type === "merge-horizontal") {
|
|
184
|
-
for (var r = r1; r <= r2; r += 1) {
|
|
185
|
-
var fv = {};
|
|
186
|
-
var isfirst = false;
|
|
187
|
-
for (var c = c1; c <= c2; c += 1) {
|
|
188
|
-
var cell = d[r][c];
|
|
189
|
-
if (cell != null && ((0, _inlineString.isInlineStringCT)(cell.ct) || !_lodash.default.isEmpty(cell.v) || cell.f != null || cell.s != null || cell.ct && ((_c = cell.ct.s) === null || _c === void 0 ? void 0 : _c.length)) && !isfirst) {
|
|
190
|
-
fv = _lodash.default.cloneDeep(cell);
|
|
191
|
-
isfirst = true;
|
|
193
|
+
d[r][c] = {
|
|
194
|
+
mc: {
|
|
195
|
+
r: r,
|
|
196
|
+
c: c1
|
|
192
197
|
}
|
|
193
|
-
d[r][c] = {
|
|
194
|
-
mc: {
|
|
195
|
-
r: r,
|
|
196
|
-
c: c1
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
d[r][c1] = fv;
|
|
201
|
-
var a = d[r][c1];
|
|
202
|
-
if (!a) return;
|
|
203
|
-
a.mc = {
|
|
204
|
-
r: r,
|
|
205
|
-
c: c1,
|
|
206
|
-
rs: 1,
|
|
207
|
-
cs: c2 - c1 + 1
|
|
208
|
-
};
|
|
209
|
-
cfg.merge["".concat(r, "_").concat(c1)] = {
|
|
210
|
-
r: r,
|
|
211
|
-
c: c1,
|
|
212
|
-
rs: 1,
|
|
213
|
-
cs: c2 - c1 + 1
|
|
214
198
|
};
|
|
215
199
|
}
|
|
200
|
+
d[r][c1] = fv;
|
|
201
|
+
var a = d[r][c1];
|
|
202
|
+
if (!a) return;
|
|
203
|
+
a.mc = {
|
|
204
|
+
r: r,
|
|
205
|
+
c: c1,
|
|
206
|
+
rs: 1,
|
|
207
|
+
cs: c2 - c1 + 1
|
|
208
|
+
};
|
|
209
|
+
cfg.merge["".concat(r, "_").concat(c1)] = {
|
|
210
|
+
r: r,
|
|
211
|
+
c: c1,
|
|
212
|
+
rs: 1,
|
|
213
|
+
cs: c2 - c1 + 1
|
|
214
|
+
};
|
|
216
215
|
}
|
|
217
216
|
}
|
|
218
217
|
}
|