@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.
@@ -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
- if (isRealNum(value)) {
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, value);
381
+ originCell.m = update(originCell.ct.fa, originCell.v);
373
382
  } else {
374
- originCell.m = value;
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
- var mask = genarate(value);
382
- _a = mask, cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
383
- if (/^0x?[a-fA-F0-9]+$/.test(value)) {
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
- cell.v = value;
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
  }
@@ -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
- if ((0, _validation.isRealNum)(value)) {
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, value);
394
+ originCell.m = (0, _format.update)(originCell.ct.fa, originCell.v);
386
395
  } else {
387
- originCell.m = value;
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
- var mask = (0, _format.genarate)(value);
395
- _a = mask, cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
396
- if (/^0x?[a-fA-F0-9]+$/.test(value)) {
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
- cell.v = value;
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fileverse-dev/fortune-core",
3
- "version": "1.2.64-linkPasteFix-patch-1",
3
+ "version": "1.2.64-linkPasteFix-patch-2",
4
4
  "main": "lib/index.js",
5
5
  "module": "es/index.js",
6
6
  "typings": "lib/index.d.ts",