@kaitify/core 0.0.1-beta.10 → 0.0.1-beta.12
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/README.md +2 -2
- package/lib/kaitify-core.es.js +22 -30
- package/lib/kaitify-core.umd.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
##### 基于原生 JS 的富文本编辑器核心库
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> [@kaitify/core 官方文档](https://www.so-better.cn/docs/kaitify-core/)
|
package/lib/kaitify-core.es.js
CHANGED
|
@@ -67,7 +67,7 @@ const common = {
|
|
|
67
67
|
return /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/.test(text2);
|
|
68
68
|
}
|
|
69
69
|
if (param == "plate") {
|
|
70
|
-
return /^[
|
|
70
|
+
return /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$|^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}[D|F]{1}[A-Z0-9]{5,6}$/.test(text2);
|
|
71
71
|
}
|
|
72
72
|
return false;
|
|
73
73
|
},
|
|
@@ -573,10 +573,8 @@ const element = {
|
|
|
573
573
|
* @param {Object} selector 支持多选择器,等同于querySelectorAll的参数
|
|
574
574
|
*/
|
|
575
575
|
children(el, selector) {
|
|
576
|
-
const
|
|
577
|
-
return
|
|
578
|
-
return ele.parentNode === el;
|
|
579
|
-
});
|
|
576
|
+
const elements = Array.from(el.querySelectorAll(selector ?? "*"));
|
|
577
|
+
return Array.from(elements).filter((elm) => this.isParentNode(el, elm));
|
|
580
578
|
},
|
|
581
579
|
/**
|
|
582
580
|
* 查找某个元素下指定选择器的兄弟元素
|
|
@@ -587,10 +585,8 @@ const element = {
|
|
|
587
585
|
if (!el.parentNode) {
|
|
588
586
|
return [];
|
|
589
587
|
}
|
|
590
|
-
const
|
|
591
|
-
return
|
|
592
|
-
return ele.parentNode === el.parentNode && ele != el;
|
|
593
|
-
});
|
|
588
|
+
const elements = Array.from(el.parentNode.querySelectorAll(selector ?? "*"));
|
|
589
|
+
return elements.filter((elm) => elm.parentNode === el.parentNode && elm != el);
|
|
594
590
|
},
|
|
595
591
|
/**
|
|
596
592
|
* rem与px单位转换
|
|
@@ -918,20 +914,19 @@ const element = {
|
|
|
918
914
|
if (/^#{1}/.test(selector)) {
|
|
919
915
|
return {
|
|
920
916
|
type: "id",
|
|
921
|
-
value: selector.
|
|
917
|
+
value: selector.substring(1)
|
|
922
918
|
};
|
|
923
919
|
}
|
|
924
920
|
if (/^\./.test(selector)) {
|
|
925
921
|
return {
|
|
926
922
|
type: "class",
|
|
927
|
-
value: selector.
|
|
923
|
+
value: selector.substring(1)
|
|
928
924
|
};
|
|
929
925
|
}
|
|
930
926
|
if (/^\[(.+)\]$/.test(selector)) {
|
|
931
|
-
let type = "attribute";
|
|
932
927
|
let value = "";
|
|
933
|
-
|
|
934
|
-
|
|
928
|
+
const attribute = string.trim(selector, true).substring(1, string.trim(selector, true).length - 1);
|
|
929
|
+
const arry = attribute.split("=");
|
|
935
930
|
if (arry.length == 1) {
|
|
936
931
|
value = arry[0];
|
|
937
932
|
}
|
|
@@ -943,7 +938,7 @@ const element = {
|
|
|
943
938
|
};
|
|
944
939
|
}
|
|
945
940
|
return {
|
|
946
|
-
type,
|
|
941
|
+
type: "attribute",
|
|
947
942
|
value
|
|
948
943
|
};
|
|
949
944
|
}
|
|
@@ -980,7 +975,7 @@ const element = {
|
|
|
980
975
|
* @param {Object} el
|
|
981
976
|
*/
|
|
982
977
|
isElement(el) {
|
|
983
|
-
return el && el instanceof Node && el.nodeType === 1;
|
|
978
|
+
return !!el && el instanceof Node && el.nodeType === 1;
|
|
984
979
|
},
|
|
985
980
|
/**
|
|
986
981
|
* 字符串转dom
|
|
@@ -1112,7 +1107,7 @@ const event = {
|
|
|
1112
1107
|
};
|
|
1113
1108
|
const file = {
|
|
1114
1109
|
/**
|
|
1115
|
-
*
|
|
1110
|
+
* 根据文件获取本地可预览的图片路径
|
|
1116
1111
|
* @param {Object} file
|
|
1117
1112
|
*/
|
|
1118
1113
|
getImageUrl(file2) {
|
|
@@ -1249,7 +1244,7 @@ const platform = {
|
|
|
1249
1244
|
//是否edge浏览器
|
|
1250
1245
|
Edge: !!userAgent.match(/Edg\/([\d.]+)/),
|
|
1251
1246
|
//是否微信内置浏览器
|
|
1252
|
-
|
|
1247
|
+
Weixin: userAgent.includes("MicroMessenger"),
|
|
1253
1248
|
//是否QQ内置浏览器
|
|
1254
1249
|
QQ: userAgent.includes("QQ"),
|
|
1255
1250
|
//是否QQ浏览器
|
|
@@ -1261,7 +1256,7 @@ const platform = {
|
|
|
1261
1256
|
//是否火狐浏览器
|
|
1262
1257
|
Firefox: userAgent.includes("Firefox"),
|
|
1263
1258
|
//是否搜狗浏览器
|
|
1264
|
-
|
|
1259
|
+
Sougou: userAgent.toLocaleLowerCase().includes("se 2.x") || userAgent.toLocaleLowerCase().includes("metasr") || userAgent.toLocaleLowerCase().includes("sogou"),
|
|
1265
1260
|
//是否safari浏览器
|
|
1266
1261
|
Safari: userAgent.includes("Safari") && !userAgent.includes("Chrome")
|
|
1267
1262
|
};
|
|
@@ -1280,7 +1275,6 @@ const platform = {
|
|
|
1280
1275
|
if (userAgent.includes("Gecko") && !userAgent.includes("KHTML")) {
|
|
1281
1276
|
return "gecko";
|
|
1282
1277
|
}
|
|
1283
|
-
return "";
|
|
1284
1278
|
},
|
|
1285
1279
|
/**
|
|
1286
1280
|
* 获取操作系统数据
|
|
@@ -1291,31 +1285,29 @@ const platform = {
|
|
|
1291
1285
|
//是否Windows系统
|
|
1292
1286
|
Windows: userAgent.includes("Windows"),
|
|
1293
1287
|
//x64/x32
|
|
1294
|
-
|
|
1288
|
+
WindowsCPU: function() {
|
|
1295
1289
|
if (userAgent.toLocaleLowerCase().includes("win64") || userAgent.toLocaleLowerCase().includes("wow64")) {
|
|
1296
1290
|
return "x64";
|
|
1297
1291
|
} else if (userAgent.toLocaleLowerCase().includes("win32") || userAgent.toLocaleLowerCase().includes("wow32")) {
|
|
1298
1292
|
return "x32";
|
|
1299
1293
|
}
|
|
1300
|
-
return "";
|
|
1301
1294
|
}(),
|
|
1302
1295
|
//Windows版本
|
|
1303
|
-
|
|
1296
|
+
WindowsVersion: function() {
|
|
1304
1297
|
if (userAgent.includes("Windows NT 6.1") || userAgent.includes("Windows 7")) {
|
|
1305
|
-
return "
|
|
1298
|
+
return "win7";
|
|
1306
1299
|
}
|
|
1307
1300
|
if (userAgent.includes("Windows NT 6.3") || userAgent.includes("Windows NT 6.2") || userAgent.includes("Windows NT 8")) {
|
|
1308
|
-
return "
|
|
1301
|
+
return "win8";
|
|
1309
1302
|
}
|
|
1310
1303
|
if (userAgent.includes("Windows NT 10") || userAgent.includes("Windows NT 6.4")) {
|
|
1311
|
-
return "
|
|
1304
|
+
return "win10";
|
|
1312
1305
|
}
|
|
1313
|
-
return "";
|
|
1314
1306
|
}(),
|
|
1315
1307
|
//是否Mac
|
|
1316
1308
|
Mac: userAgent.includes("Macintosh"),
|
|
1317
1309
|
//Mac版本
|
|
1318
|
-
|
|
1310
|
+
MacVersion: function() {
|
|
1319
1311
|
if (userAgent.includes("Macintosh")) {
|
|
1320
1312
|
const matches = userAgent.match(/Mac OS X ([^\s]+)\)/);
|
|
1321
1313
|
if (matches && matches[1]) {
|
|
@@ -1327,7 +1319,7 @@ const platform = {
|
|
|
1327
1319
|
//是否ios系统
|
|
1328
1320
|
ios: !!userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
|
|
1329
1321
|
//ios系统版本
|
|
1330
|
-
|
|
1322
|
+
iosVersion: function() {
|
|
1331
1323
|
if (!!userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {
|
|
1332
1324
|
const matches = userAgent.match(/CPU.+OS ([^\s]+) like Mac OS X/);
|
|
1333
1325
|
if (matches && matches[1]) {
|
|
@@ -1339,7 +1331,7 @@ const platform = {
|
|
|
1339
1331
|
//是否Android系统
|
|
1340
1332
|
Android: userAgent.includes("Android"),
|
|
1341
1333
|
//Android系统版本
|
|
1342
|
-
|
|
1334
|
+
AndroidVersion: function() {
|
|
1343
1335
|
const matches = userAgent.match(/Android ([^\s]+);/);
|
|
1344
1336
|
if (matches && matches[1]) {
|
|
1345
1337
|
return matches[1].split(/_|\./).join(".");
|