@ai-table/grid 0.0.46 → 0.0.47
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/esm2022/utils/clipboard/extract.mjs +29 -10
- package/esm2022/utils/field/model/link.mjs +3 -3
- package/fesm2022/ai-table-grid.mjs +30 -11
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/package.json +1 -1
- package/utils/clipboard/extract.d.ts +1 -1
- package/utils/clipboard/extract.d.ts.map +1 -1
@@ -1,19 +1,38 @@
|
|
1
1
|
export function extractText(text) {
|
2
|
-
|
2
|
+
if (!text)
|
3
|
+
return '';
|
4
|
+
// 如果文本包含HTML链接标签,提取链接文本
|
3
5
|
if (text.includes('<a')) {
|
4
6
|
const aTagMatch = text.match(/<a[^>]*>(.*?)<\/a>/i);
|
5
|
-
if (aTagMatch
|
6
|
-
|
7
|
+
if (aTagMatch?.[1]?.trim()) {
|
8
|
+
return aTagMatch[1].trim();
|
7
9
|
}
|
8
10
|
}
|
9
|
-
return
|
11
|
+
return text;
|
10
12
|
}
|
11
|
-
export function
|
12
|
-
|
13
|
+
export function extractLinkUrl(text) {
|
14
|
+
if (!text)
|
15
|
+
return null;
|
16
|
+
// 1. 从HTML链接标签中提取URL,比如 https://mail.qq.com
|
13
17
|
const hrefMatch = text.match(/href="([^"]+)"/);
|
14
|
-
if (hrefMatch
|
15
|
-
|
18
|
+
if (hrefMatch?.[1]) {
|
19
|
+
return hrefMatch[1];
|
16
20
|
}
|
17
|
-
|
21
|
+
// 2. 匹配完整的URL(带协议),比如 https://mail.qq.com
|
22
|
+
const protocolAndDomainMatch = text.match(/^(?:\w+:)?\/\/(\S+)$/);
|
23
|
+
if (protocolAndDomainMatch?.[0]) {
|
24
|
+
return protocolAndDomainMatch[0];
|
25
|
+
}
|
26
|
+
// 3. 匹配localhost格式,比如 localhost:6100
|
27
|
+
const localhostDomainMatch = text.match(/^localhost[\:?\d]*(?:[^\:?\d]\S*)?$/);
|
28
|
+
if (localhostDomainMatch?.[0]) {
|
29
|
+
return `http://${localhostDomainMatch[0]}`;
|
30
|
+
}
|
31
|
+
// 4. 匹配普通域名,比如 www.baidu.com
|
32
|
+
const ordinaryDomainMatch = text.match(/^[^\s\.]+\.\S{2,}$/);
|
33
|
+
if (ordinaryDomainMatch?.[0]) {
|
34
|
+
return `http://${ordinaryDomainMatch[0]}`;
|
35
|
+
}
|
36
|
+
return null;
|
18
37
|
}
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3V0aWxzL2NsaXBib2FyZC9leHRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUNwQyxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXJCLHdCQUF3QjtJQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEQsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWTtJQUN2QyxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXZCLDRDQUE0QztJQUM1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0MsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbEUsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQy9FLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sVUFBVSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDN0QsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0IsT0FBTyxVQUFVLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZXh0cmFjdFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXRleHQpIHJldHVybiAnJztcblxuICAgIC8vIOWmguaenOaWh+acrOWMheWQq0hUTUzpk77mjqXmoIfnrb7vvIzmj5Dlj5bpk77mjqXmlofmnKxcbiAgICBpZiAodGV4dC5pbmNsdWRlcygnPGEnKSkge1xuICAgICAgICBjb25zdCBhVGFnTWF0Y2ggPSB0ZXh0Lm1hdGNoKC88YVtePl0qPiguKj8pPFxcL2E+L2kpO1xuICAgICAgICBpZiAoYVRhZ01hdGNoPy5bMV0/LnRyaW0oKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFUYWdNYXRjaFsxXS50cmltKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RMaW5rVXJsKHRleHQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGV4dCkgcmV0dXJuIG51bGw7XG5cbiAgICAvLyAxLiDku45IVE1M6ZO+5o6l5qCH562+5Lit5o+Q5Y+WVVJM77yM5q+U5aaCIGh0dHBzOi8vbWFpbC5xcS5jb21cbiAgICBjb25zdCBocmVmTWF0Y2ggPSB0ZXh0Lm1hdGNoKC9ocmVmPVwiKFteXCJdKylcIi8pO1xuICAgIGlmIChocmVmTWF0Y2g/LlsxXSkge1xuICAgICAgICByZXR1cm4gaHJlZk1hdGNoWzFdO1xuICAgIH1cblxuICAgIC8vIDIuIOWMuemFjeWujOaVtOeahFVSTO+8iOW4puWNj+iuru+8ie+8jOavlOWmgiBodHRwczovL21haWwucXEuY29tXG4gICAgY29uc3QgcHJvdG9jb2xBbmREb21haW5NYXRjaCA9IHRleHQubWF0Y2goL14oPzpcXHcrOik/XFwvXFwvKFxcUyspJC8pO1xuICAgIGlmIChwcm90b2NvbEFuZERvbWFpbk1hdGNoPy5bMF0pIHtcbiAgICAgICAgcmV0dXJuIHByb3RvY29sQW5kRG9tYWluTWF0Y2hbMF07XG4gICAgfVxuXG4gICAgLy8gMy4g5Yy56YWNbG9jYWxob3N05qC85byP77yM5q+U5aaCIGxvY2FsaG9zdDo2MTAwXG4gICAgY29uc3QgbG9jYWxob3N0RG9tYWluTWF0Y2ggPSB0ZXh0Lm1hdGNoKC9ebG9jYWxob3N0W1xcOj9cXGRdKig/OlteXFw6P1xcZF1cXFMqKT8kLyk7XG4gICAgaWYgKGxvY2FsaG9zdERvbWFpbk1hdGNoPy5bMF0pIHtcbiAgICAgICAgcmV0dXJuIGBodHRwOi8vJHtsb2NhbGhvc3REb21haW5NYXRjaFswXX1gO1xuICAgIH1cblxuICAgIC8vIDQuIOWMuemFjeaZrumAmuWfn+WQje+8jOavlOWmgiB3d3cuYmFpZHUuY29tXG4gICAgY29uc3Qgb3JkaW5hcnlEb21haW5NYXRjaCA9IHRleHQubWF0Y2goL15bXlxcc1xcLl0rXFwuXFxTezIsfSQvKTtcbiAgICBpZiAob3JkaW5hcnlEb21haW5NYXRjaD8uWzBdKSB7XG4gICAgICAgIHJldHVybiBgaHR0cDovLyR7b3JkaW5hcnlEb21haW5NYXRjaFswXX1gO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuIl19
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { AITableFieldType } from '../../../core';
|
2
2
|
import { AITableFilterOperation } from '../../../types';
|
3
|
-
import { extractText,
|
3
|
+
import { extractText, extractLinkUrl } from '../../clipboard';
|
4
4
|
import { isEmpty } from '../../common';
|
5
5
|
import { compareString, stringInclude } from '../operate';
|
6
6
|
import { Field } from './field';
|
@@ -40,7 +40,7 @@ export function toLinkFieldValue(plainText, targetField, originData) {
|
|
40
40
|
}
|
41
41
|
}
|
42
42
|
else {
|
43
|
-
const url =
|
43
|
+
const url = extractLinkUrl(plainText);
|
44
44
|
const text = extractText(plainText);
|
45
45
|
if (url && text) {
|
46
46
|
return {
|
@@ -54,4 +54,4 @@ export function toLinkFieldValue(plainText, targetField, originData) {
|
|
54
54
|
function cellValueToSortValue(cellValue) {
|
55
55
|
return (cellValue && cellValue.text && cellValue.text.trim()) || null;
|
56
56
|
}
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3V0aWxzL2ZpZWxkL21vZGVsL2xpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixnQkFBZ0IsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUEwQixzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxTQUFVLFNBQVEsS0FBSztJQUN2QixZQUFZLENBQUMsU0FBeUMsRUFBRSxTQUFxQjtRQUNsRixNQUFNLGFBQWEsR0FBRyxTQUFTLEVBQUUsSUFBSSxDQUFDO1FBQ3RDLFFBQVEsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLEtBQUssc0JBQXNCLENBQUMsS0FBSztnQkFDN0IsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEMsS0FBSyxzQkFBc0IsQ0FBQyxNQUFNO2dCQUM5QixPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25DLEtBQUssc0JBQXNCLENBQUMsT0FBTztnQkFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxhQUFhLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRjtnQkFDSSxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDTCxDQUFDO0lBRVEsT0FBTyxDQUFDLFVBQXNCLEVBQUUsVUFBc0I7UUFDM0QsT0FBTyxhQUFhLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEVBQUUsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRVEsWUFBWSxDQUFDLGNBQThCO1FBQ2hELElBQUksS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRVEsWUFBWSxDQUNqQixTQUFpQixFQUNqQixXQUF5QixFQUN6QixVQUFrRTtRQUVsRSxPQUFPLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM1QixTQUFpQixFQUNqQixXQUF5QixFQUN6QixVQUFrRTtJQUVsRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2IsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDeEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDZCxPQUFPO2dCQUNILEdBQUc7Z0JBQ0gsSUFBSTthQUNQLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLFNBQXlCO0lBQ25ELE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVRhYmxlRmllbGQsIEFJVGFibGVGaWVsZFR5cGUsIEZpZWxkVmFsdWUsIExpbmtGaWVsZFZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uLCBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZXh0cmFjdFRleHQsIGV4dHJhY3RMaW5rVXJsIH0gZnJvbSAnLi4vLi4vY2xpcGJvYXJkJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgY29tcGFyZVN0cmluZywgc3RyaW5nSW5jbHVkZSB9IGZyb20gJy4uL29wZXJhdGUnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcblxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZCBleHRlbmRzIEZpZWxkIHtcbiAgICBvdmVycmlkZSBpc01lZXRGaWx0ZXIoY29uZGl0aW9uOiBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uPHN0cmluZz4sIGNlbGxWYWx1ZTogRmllbGRWYWx1ZSkge1xuICAgICAgICBjb25zdCBjZWxsVGV4dFZhbHVlID0gY2VsbFZhbHVlPy50ZXh0O1xuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi5vcGVyYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5lbXB0eTpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNFbXB0eShjZWxsVGV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5leGlzdHM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0VtcHR5KGNlbGxUZXh0VmFsdWUpO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmNvbnRhaW46XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0VtcHR5KGNlbGxUZXh0VmFsdWUpICYmIHN0cmluZ0luY2x1ZGUoY2VsbFRleHRWYWx1ZSwgY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmlzTWVldEZpbHRlcihjb25kaXRpb24sIGNlbGxUZXh0VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY29tcGFyZShjZWxsVmFsdWUxOiBGaWVsZFZhbHVlLCBjZWxsVmFsdWUyOiBGaWVsZFZhbHVlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVTdHJpbmcoY2VsbFZhbHVlVG9Tb3J0VmFsdWUoY2VsbFZhbHVlMSksIGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTIpKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBjZWxsRnVsbFRleHQodHJhbnNmb3JtVmFsdWU6IExpbmtGaWVsZFZhbHVlKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgdGV4dHM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmICghaXNFbXB0eSh0cmFuc2Zvcm1WYWx1ZT8udGV4dCkpIHtcbiAgICAgICAgICAgIHRleHRzLnB1c2godHJhbnNmb3JtVmFsdWUudGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHRzO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHRvRmllbGRWYWx1ZShcbiAgICAgICAgcGxhaW5UZXh0OiBzdHJpbmcsXG4gICAgICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgICAgIG9yaWdpbkRhdGE/OiB7IGZpZWxkOiBBSVRhYmxlRmllbGQ7IGNlbGxWYWx1ZTogRmllbGRWYWx1ZSB9IHwgbnVsbFxuICAgICk6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRvTGlua0ZpZWxkVmFsdWUocGxhaW5UZXh0LCB0YXJnZXRGaWVsZCwgb3JpZ2luRGF0YSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9MaW5rRmllbGRWYWx1ZShcbiAgICBwbGFpblRleHQ6IHN0cmluZyxcbiAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgIG9yaWdpbkRhdGE/OiB7IGZpZWxkOiBBSVRhYmxlRmllbGQ7IGNlbGxWYWx1ZTogRmllbGRWYWx1ZSB9IHwgbnVsbFxuKTogRmllbGRWYWx1ZSB8IG51bGwge1xuICAgIGlmIChvcmlnaW5EYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgZmllbGQsIGNlbGxWYWx1ZSB9ID0gb3JpZ2luRGF0YTtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUubGluaykge1xuICAgICAgICAgICAgcmV0dXJuIGNlbGxWYWx1ZTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGV4dHJhY3RMaW5rVXJsKHBsYWluVGV4dCk7XG4gICAgICAgIGNvbnN0IHRleHQgPSBleHRyYWN0VGV4dChwbGFpblRleHQpO1xuICAgICAgICBpZiAodXJsICYmIHRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIHRleHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTogTGlua0ZpZWxkVmFsdWUpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gKGNlbGxWYWx1ZSAmJiBjZWxsVmFsdWUudGV4dCAmJiBjZWxsVmFsdWUudGV4dC50cmltKCkpIHx8IG51bGw7XG59XG4iXX0=
|
@@ -2614,22 +2614,41 @@ const readFromClipboard = async () => {
|
|
2614
2614
|
};
|
2615
2615
|
|
2616
2616
|
function extractText(text) {
|
2617
|
-
|
2617
|
+
if (!text)
|
2618
|
+
return '';
|
2619
|
+
// 如果文本包含HTML链接标签,提取链接文本
|
2618
2620
|
if (text.includes('<a')) {
|
2619
2621
|
const aTagMatch = text.match(/<a[^>]*>(.*?)<\/a>/i);
|
2620
|
-
if (aTagMatch
|
2621
|
-
|
2622
|
+
if (aTagMatch?.[1]?.trim()) {
|
2623
|
+
return aTagMatch[1].trim();
|
2622
2624
|
}
|
2623
2625
|
}
|
2624
|
-
return
|
2626
|
+
return text;
|
2625
2627
|
}
|
2626
|
-
function
|
2627
|
-
|
2628
|
+
function extractLinkUrl(text) {
|
2629
|
+
if (!text)
|
2630
|
+
return null;
|
2631
|
+
// 1. 从HTML链接标签中提取URL,比如 https://mail.qq.com
|
2628
2632
|
const hrefMatch = text.match(/href="([^"]+)"/);
|
2629
|
-
if (hrefMatch
|
2630
|
-
|
2633
|
+
if (hrefMatch?.[1]) {
|
2634
|
+
return hrefMatch[1];
|
2635
|
+
}
|
2636
|
+
// 2. 匹配完整的URL(带协议),比如 https://mail.qq.com
|
2637
|
+
const protocolAndDomainMatch = text.match(/^(?:\w+:)?\/\/(\S+)$/);
|
2638
|
+
if (protocolAndDomainMatch?.[0]) {
|
2639
|
+
return protocolAndDomainMatch[0];
|
2631
2640
|
}
|
2632
|
-
|
2641
|
+
// 3. 匹配localhost格式,比如 localhost:6100
|
2642
|
+
const localhostDomainMatch = text.match(/^localhost[\:?\d]*(?:[^\:?\d]\S*)?$/);
|
2643
|
+
if (localhostDomainMatch?.[0]) {
|
2644
|
+
return `http://${localhostDomainMatch[0]}`;
|
2645
|
+
}
|
2646
|
+
// 4. 匹配普通域名,比如 www.baidu.com
|
2647
|
+
const ordinaryDomainMatch = text.match(/^[^\s\.]+\.\S{2,}$/);
|
2648
|
+
if (ordinaryDomainMatch?.[0]) {
|
2649
|
+
return `http://${ordinaryDomainMatch[0]}`;
|
2650
|
+
}
|
2651
|
+
return null;
|
2633
2652
|
}
|
2634
2653
|
|
2635
2654
|
const zhIntlCollator = typeof Intl !== 'undefined' ? new Intl.Collator('zh-CN') : undefined;
|
@@ -2932,7 +2951,7 @@ function toLinkFieldValue(plainText, targetField, originData) {
|
|
2932
2951
|
}
|
2933
2952
|
}
|
2934
2953
|
else {
|
2935
|
-
const url =
|
2954
|
+
const url = extractLinkUrl(plainText);
|
2936
2955
|
const text = extractText(plainText);
|
2937
2956
|
if (url && text) {
|
2938
2957
|
return {
|
@@ -9706,5 +9725,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
9706
9725
|
* Generated bundle index. Do not edit.
|
9707
9726
|
*/
|
9708
9727
|
|
9709
|
-
export { AITable, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableCheckType, AITableContextMenu, AITableDomGrid, AITableFieldIsSameOptionPipe, AITableFieldSetting, AITableFieldType, AITableFilterOperation, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridI18nKey, AITableGridSelectionService, AITableMemberType, AITableMouseDownType, AITableQueries, AITableRenderer, AITableRowColumnType, AITableRowType, AITableSelectAllState, AITableSelectOptionStyle, AITableStatType, AI_TABLE_ACTION_COMMON_RADIUS, AI_TABLE_ACTION_COMMON_RIGHT_PADDING, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_ATTACHMENT_ADD, AI_TABLE_CELL_ATTACHMENT_FILE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_FIELD_ITEM_HEIGHT, AI_TABLE_CELL_MAX_ROW_COUNT, AI_TABLE_CELL_MEMBER_ITEM_HEIGHT, AI_TABLE_CELL_MEMBER_ITEM_PADDING, AI_TABLE_CELL_MEMBER_MAX_HEIGHT, AI_TABLE_CELL_MULTI_DOT_RADIUS, AI_TABLE_CELL_MULTI_ITEM_MARGIN_LEFT, AI_TABLE_CELL_MULTI_ITEM_MARGIN_TOP, AI_TABLE_CELL_MULTI_ITEM_MIN_WIDTH, AI_TABLE_CELL_MULTI_PADDING_LEFT, AI_TABLE_CELL_MULTI_PADDING_TOP, AI_TABLE_CELL_PADDING, AI_TABLE_COMMON_FONT_SIZE, AI_TABLE_DEFAULT_COLUMN_WIDTH, AI_TABLE_DOT_RADIUS, AI_TABLE_FIELD_ADD_BUTTON, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_HEIGHT, AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE, AI_TABLE_FIELD_HEAD_MORE, AI_TABLE_FIELD_HEAD_OPACITY_LINE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_FIELD_ITEM_MARGIN_RIGHT, AI_TABLE_FIELD_MAX_WIDTH, AI_TABLE_FIELD_MIDDLE_WIDTH, AI_TABLE_FIELD_MINI_WIDTH, AI_TABLE_FIELD_MIN_WIDTH, AI_TABLE_FILE_ICON_ITEM_HEIGHT, AI_TABLE_FILE_ICON_SIZE, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_MEMBER_AVATAR_SIZE, AI_TABLE_MEMBER_ITEM_AVATAR_MARGIN_RIGHT, AI_TABLE_MEMBER_ITEM_PADDING_RIGHT, AI_TABLE_MIN_TEXT_WIDTH, AI_TABLE_OFFSET, AI_TABLE_OPTION_ITEM_FONT_SIZE, AI_TABLE_OPTION_ITEM_HEIGHT, AI_TABLE_OPTION_ITEM_PADDING, AI_TABLE_OPTION_ITEM_RADIUS, AI_TABLE_PIECE_RADIUS, AI_TABLE_PIECE_WIDTH, AI_TABLE_POPOVER_LEFT_OFFSET, AI_TABLE_PREVENT_CLEAR_SELECTION_CLASS, AI_TABLE_PROGRESS_BAR_HEIGHT, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_Width, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AbstractEditCellEditor, AddOutlinedPath, AttachmentPath, Check, Colors, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate, DBL_CLICK_EDIT_TYPE, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_FONT_STYLE, DEFAULT_FONT_WEIGHT, DEFAULT_ICON_SHAPE, DEFAULT_ICON_SIZE, DEFAULT_POINT_POSITION, DEFAULT_SCROLL_STATE, DEFAULT_TEXT_ALIGN_CENTER, DEFAULT_TEXT_ALIGN_LEFT, DEFAULT_TEXT_ALIGN_RIGHT, DEFAULT_TEXT_DECORATION, DEFAULT_TEXT_ELLIPSIS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_LINE_HEIGHT, DEFAULT_TEXT_LISTENING, DEFAULT_TEXT_MAX_CACHE, DEFAULT_TEXT_MAX_HEIGHT, DEFAULT_TEXT_SCALE, DEFAULT_TEXT_TRANSFORMS_ENABLED, DEFAULT_TEXT_VERTICAL_ALIGN_MIDDLE, DEFAULT_TEXT_VERTICAL_ALIGN_TOP, DEFAULT_TEXT_WRAP, DEFAULT_WRAP_TEXT_MAX_ROW, DateCellEditorComponent, DepartmentOutlinedPath, Direction, DragType, FONT_SIZE_SM, FieldModelMap, GRID_CELL_EDITOR_MAP, IsSelectRecordPipe, LinkCellEditorComponent, MIN_COLUMN_WIDTH, MOUSEOVER_EDIT_TYPE, MemberSettingPipe, MoreStandOutlinedPath, NumberCellEditorComponent, ProgressEditorComponent, RatingCellEditorComponent, RendererContext, RowHeight, SelectCellEditorComponent, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, StarFill, TextCellEditorComponent, TextMeasure, Unchecked, UserPipe, WebOutlinedPath, aiTableFragmentAttribute, buildClipboardData, buildGridData, buildGridLinearRows, castToString, compareNumber, compareString, createAITable, createActiveCellBorder, createCells, createDefaultField, createDefaultFieldName,
|
9728
|
+
export { AITable, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableCheckType, AITableContextMenu, AITableDomGrid, AITableFieldIsSameOptionPipe, AITableFieldSetting, AITableFieldType, AITableFilterOperation, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridI18nKey, AITableGridSelectionService, AITableMemberType, AITableMouseDownType, AITableQueries, AITableRenderer, AITableRowColumnType, AITableRowType, AITableSelectAllState, AITableSelectOptionStyle, AITableStatType, AI_TABLE_ACTION_COMMON_RADIUS, AI_TABLE_ACTION_COMMON_RIGHT_PADDING, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_ATTACHMENT_ADD, AI_TABLE_CELL_ATTACHMENT_FILE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_FIELD_ITEM_HEIGHT, AI_TABLE_CELL_MAX_ROW_COUNT, AI_TABLE_CELL_MEMBER_ITEM_HEIGHT, AI_TABLE_CELL_MEMBER_ITEM_PADDING, AI_TABLE_CELL_MEMBER_MAX_HEIGHT, AI_TABLE_CELL_MULTI_DOT_RADIUS, AI_TABLE_CELL_MULTI_ITEM_MARGIN_LEFT, AI_TABLE_CELL_MULTI_ITEM_MARGIN_TOP, AI_TABLE_CELL_MULTI_ITEM_MIN_WIDTH, AI_TABLE_CELL_MULTI_PADDING_LEFT, AI_TABLE_CELL_MULTI_PADDING_TOP, AI_TABLE_CELL_PADDING, AI_TABLE_COMMON_FONT_SIZE, AI_TABLE_DEFAULT_COLUMN_WIDTH, AI_TABLE_DOT_RADIUS, AI_TABLE_FIELD_ADD_BUTTON, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_HEIGHT, AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE, AI_TABLE_FIELD_HEAD_MORE, AI_TABLE_FIELD_HEAD_OPACITY_LINE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_FIELD_ITEM_MARGIN_RIGHT, AI_TABLE_FIELD_MAX_WIDTH, AI_TABLE_FIELD_MIDDLE_WIDTH, AI_TABLE_FIELD_MINI_WIDTH, AI_TABLE_FIELD_MIN_WIDTH, AI_TABLE_FILE_ICON_ITEM_HEIGHT, AI_TABLE_FILE_ICON_SIZE, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_MEMBER_AVATAR_SIZE, AI_TABLE_MEMBER_ITEM_AVATAR_MARGIN_RIGHT, AI_TABLE_MEMBER_ITEM_PADDING_RIGHT, AI_TABLE_MIN_TEXT_WIDTH, AI_TABLE_OFFSET, AI_TABLE_OPTION_ITEM_FONT_SIZE, AI_TABLE_OPTION_ITEM_HEIGHT, AI_TABLE_OPTION_ITEM_PADDING, AI_TABLE_OPTION_ITEM_RADIUS, AI_TABLE_PIECE_RADIUS, AI_TABLE_PIECE_WIDTH, AI_TABLE_POPOVER_LEFT_OFFSET, AI_TABLE_PREVENT_CLEAR_SELECTION_CLASS, AI_TABLE_PROGRESS_BAR_HEIGHT, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_Width, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AbstractEditCellEditor, AddOutlinedPath, AttachmentPath, Check, Colors, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate, DBL_CLICK_EDIT_TYPE, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_FONT_STYLE, DEFAULT_FONT_WEIGHT, DEFAULT_ICON_SHAPE, DEFAULT_ICON_SIZE, DEFAULT_POINT_POSITION, DEFAULT_SCROLL_STATE, DEFAULT_TEXT_ALIGN_CENTER, DEFAULT_TEXT_ALIGN_LEFT, DEFAULT_TEXT_ALIGN_RIGHT, DEFAULT_TEXT_DECORATION, DEFAULT_TEXT_ELLIPSIS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_LINE_HEIGHT, DEFAULT_TEXT_LISTENING, DEFAULT_TEXT_MAX_CACHE, DEFAULT_TEXT_MAX_HEIGHT, DEFAULT_TEXT_SCALE, DEFAULT_TEXT_TRANSFORMS_ENABLED, DEFAULT_TEXT_VERTICAL_ALIGN_MIDDLE, DEFAULT_TEXT_VERTICAL_ALIGN_TOP, DEFAULT_TEXT_WRAP, DEFAULT_WRAP_TEXT_MAX_ROW, DateCellEditorComponent, DepartmentOutlinedPath, Direction, DragType, FONT_SIZE_SM, FieldModelMap, GRID_CELL_EDITOR_MAP, IsSelectRecordPipe, LinkCellEditorComponent, MIN_COLUMN_WIDTH, MOUSEOVER_EDIT_TYPE, MemberSettingPipe, MoreStandOutlinedPath, NumberCellEditorComponent, ProgressEditorComponent, RatingCellEditorComponent, RendererContext, RowHeight, SelectCellEditorComponent, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, StarFill, TextCellEditorComponent, TextMeasure, Unchecked, UserPipe, WebOutlinedPath, aiTableFragmentAttribute, buildClipboardData, buildGridData, buildGridLinearRows, castToString, compareNumber, compareString, createAITable, createActiveCellBorder, createCells, createDefaultField, createDefaultFieldName, extractLinkUrl, extractText, generateNewName, generateTargetName, getAvatarBgColor, getAvatarShortName, getCellEditorBorderSpace, getCellHorizontalPosition, getColumnIndicesSizeMap, getDefaultFieldValue, getDefaultI18nTextByKey, getDetailByTargetName, getEditorBoxOffset, getEditorSpace, getFieldOptionByField, getFieldOptions, getFieldValue, getHoverCell, getHoverEditorBoxOffset, getHoverEditorSpace, getI18nTextByKey, getMousePosition, getPlaceHolderCellsConfigs, getSystemFieldValue, getTargetName, getTextWidth, getVisibleRangeInfo, handleMouseStyle, hasIntersect, idCreator, idsCreator, imageCache, isArrayField, isCellMatchKeywords, isClipboardReadSupported, isClipboardReadTextSupported, isClipboardWriteSupported, isClipboardWriteTextSupported, isEmpty, isMac, isNumberFiled, isSameFieldOption, isSelectedField, isSystemField, isWindows, isWindowsOS, isWithinFrozenColumnBoundary, readFromClipboard, scrollMax, setMouseStyle, shortIdCreator, shortIdsCreator, stringInclude, textDataCache, transformCellValue, writeToAITable, writeToClipboard, zhIntlCollator };
|
9710
9729
|
//# sourceMappingURL=ai-table-grid.mjs.map
|