@fileverse-dev/fortune-core 1.2.64-linkPasteFix-patch-1 → 1.2.64-linkPasteFix-patch-2
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 +51 -9
- package/lib/events/paste.js +51 -9
- 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
|
}
|
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
|
}
|