@whitesev/domutils 1.3.4 → 1.3.5
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/dist/index.amd.js +425 -98
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +425 -98
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +425 -98
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +425 -98
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +425 -98
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +425 -98
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/DOMUtils.d.ts +60 -39
- package/dist/types/src/DOMUtilsEvent.d.ts +14 -13
- package/dist/types/src/types/global.d.ts +6 -0
- package/package.json +1 -1
- package/src/DOMUtils.ts +459 -166
- package/src/DOMUtilsEvent.ts +105 -42
- package/src/types/global.d.ts +6 -0
package/src/DOMUtilsEvent.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { isNodeList } from "./DOMUtils";
|
|
1
2
|
import { DOMUtilsCommonUtils } from "./DOMUtilsCommonUtils";
|
|
2
3
|
import { DOMUtilsData } from "./DOMUtilsData";
|
|
3
4
|
import { OriginPrototype } from "./DOMUtilsOriginPrototype";
|
|
5
|
+
import type { DOMUtilsTargetElementType } from "./types/global";
|
|
4
6
|
import { UtilsWindowApiOption, WindowApi } from "./WindowApi";
|
|
5
7
|
|
|
6
8
|
export type DOMUtilsEventObject<T extends Node> = Event & {
|
|
@@ -913,7 +915,12 @@ export class DOMUtilsEvent {
|
|
|
913
915
|
* DOMUtils.trigger("a.xx",["click","tap","hover"])
|
|
914
916
|
*/
|
|
915
917
|
trigger(
|
|
916
|
-
element:
|
|
918
|
+
element:
|
|
919
|
+
| DOMUtilsTargetElementType
|
|
920
|
+
| any[]
|
|
921
|
+
| typeof globalThis
|
|
922
|
+
| Window
|
|
923
|
+
| Document,
|
|
917
924
|
eventType: string,
|
|
918
925
|
details?: object,
|
|
919
926
|
useDispatchToTriggerEvent?: boolean
|
|
@@ -1022,20 +1029,30 @@ export class DOMUtilsEvent {
|
|
|
1022
1029
|
* })
|
|
1023
1030
|
* */
|
|
1024
1031
|
click(
|
|
1025
|
-
element:
|
|
1032
|
+
element: DOMUtilsTargetElementType | typeof globalThis | Window,
|
|
1026
1033
|
handler?: (event: DOMUtils_Event["click"]) => void,
|
|
1027
1034
|
details?: any,
|
|
1028
1035
|
useDispatchToTriggerEvent?: boolean
|
|
1029
1036
|
) {
|
|
1030
1037
|
let DOMUtilsContext = this;
|
|
1031
1038
|
if (typeof element === "string") {
|
|
1032
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1033
|
-
element
|
|
1034
|
-
) as HTMLElement;
|
|
1039
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1035
1040
|
}
|
|
1036
1041
|
if (element == null) {
|
|
1037
1042
|
return;
|
|
1038
1043
|
}
|
|
1044
|
+
if (isNodeList(element)) {
|
|
1045
|
+
// 设置
|
|
1046
|
+
element.forEach(($ele) => {
|
|
1047
|
+
DOMUtilsContext.click(
|
|
1048
|
+
$ele as HTMLElement,
|
|
1049
|
+
handler,
|
|
1050
|
+
details,
|
|
1051
|
+
useDispatchToTriggerEvent
|
|
1052
|
+
);
|
|
1053
|
+
});
|
|
1054
|
+
return;
|
|
1055
|
+
}
|
|
1039
1056
|
if (handler == null) {
|
|
1040
1057
|
DOMUtilsContext.trigger(
|
|
1041
1058
|
element,
|
|
@@ -1062,7 +1079,7 @@ export class DOMUtilsEvent {
|
|
|
1062
1079
|
* })
|
|
1063
1080
|
* */
|
|
1064
1081
|
blur(
|
|
1065
|
-
element:
|
|
1082
|
+
element: DOMUtilsTargetElementType | typeof globalThis | Window,
|
|
1066
1083
|
handler?: (event: DOMUtils_Event["blur"]) => void,
|
|
1067
1084
|
details?: object,
|
|
1068
1085
|
useDispatchToTriggerEvent?: boolean
|
|
@@ -1076,6 +1093,18 @@ export class DOMUtilsEvent {
|
|
|
1076
1093
|
if (element == null) {
|
|
1077
1094
|
return;
|
|
1078
1095
|
}
|
|
1096
|
+
if (isNodeList(element)) {
|
|
1097
|
+
// 设置
|
|
1098
|
+
element.forEach(($ele) => {
|
|
1099
|
+
DOMUtilsContext.focus(
|
|
1100
|
+
$ele as HTMLElement,
|
|
1101
|
+
handler,
|
|
1102
|
+
details,
|
|
1103
|
+
useDispatchToTriggerEvent
|
|
1104
|
+
);
|
|
1105
|
+
});
|
|
1106
|
+
return;
|
|
1107
|
+
}
|
|
1079
1108
|
if (handler === null) {
|
|
1080
1109
|
DOMUtilsContext.trigger(
|
|
1081
1110
|
element,
|
|
@@ -1107,20 +1136,30 @@ export class DOMUtilsEvent {
|
|
|
1107
1136
|
* })
|
|
1108
1137
|
* */
|
|
1109
1138
|
focus(
|
|
1110
|
-
element:
|
|
1139
|
+
element: DOMUtilsTargetElementType | typeof globalThis | Window,
|
|
1111
1140
|
handler?: (event: DOMUtils_Event["focus"]) => void,
|
|
1112
1141
|
details?: object,
|
|
1113
1142
|
useDispatchToTriggerEvent?: boolean
|
|
1114
1143
|
) {
|
|
1115
1144
|
let DOMUtilsContext = this;
|
|
1116
1145
|
if (typeof element === "string") {
|
|
1117
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1118
|
-
element
|
|
1119
|
-
) as HTMLElement;
|
|
1146
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1120
1147
|
}
|
|
1121
1148
|
if (element == null) {
|
|
1122
1149
|
return;
|
|
1123
1150
|
}
|
|
1151
|
+
if (isNodeList(element)) {
|
|
1152
|
+
// 设置
|
|
1153
|
+
element.forEach(($ele) => {
|
|
1154
|
+
DOMUtilsContext.focus(
|
|
1155
|
+
$ele as HTMLElement,
|
|
1156
|
+
handler,
|
|
1157
|
+
details,
|
|
1158
|
+
useDispatchToTriggerEvent
|
|
1159
|
+
);
|
|
1160
|
+
});
|
|
1161
|
+
return;
|
|
1162
|
+
}
|
|
1124
1163
|
if (handler == null) {
|
|
1125
1164
|
DOMUtilsContext.trigger(
|
|
1126
1165
|
element,
|
|
@@ -1147,26 +1186,31 @@ export class DOMUtilsEvent {
|
|
|
1147
1186
|
* })
|
|
1148
1187
|
*/
|
|
1149
1188
|
hover(
|
|
1150
|
-
element:
|
|
1189
|
+
element: DOMUtilsTargetElementType,
|
|
1151
1190
|
handler: (event: DOMUtils_Event["hover"]) => void,
|
|
1152
1191
|
option?: boolean | AddEventListenerOptions
|
|
1153
1192
|
) {
|
|
1154
1193
|
let DOMUtilsContext = this;
|
|
1155
1194
|
if (typeof element === "string") {
|
|
1156
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1157
|
-
element
|
|
1158
|
-
) as HTMLElement;
|
|
1195
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1159
1196
|
}
|
|
1160
1197
|
if (element == null) {
|
|
1161
1198
|
return;
|
|
1162
1199
|
}
|
|
1200
|
+
if (isNodeList(element)) {
|
|
1201
|
+
// 设置
|
|
1202
|
+
element.forEach(($ele) => {
|
|
1203
|
+
DOMUtilsContext.hover($ele as HTMLElement, handler, option);
|
|
1204
|
+
});
|
|
1205
|
+
return;
|
|
1206
|
+
}
|
|
1163
1207
|
DOMUtilsContext.on(element, "mouseenter", null, handler, option);
|
|
1164
1208
|
DOMUtilsContext.on(element, "mouseleave", null, handler, option);
|
|
1165
1209
|
}
|
|
1166
1210
|
/**
|
|
1167
1211
|
* 当按键松开时触发事件
|
|
1168
1212
|
* keydown - > keypress - > keyup
|
|
1169
|
-
* @param
|
|
1213
|
+
* @param element 当前元素
|
|
1170
1214
|
* @param handler 事件处理函数
|
|
1171
1215
|
* @param option 配置
|
|
1172
1216
|
* @example
|
|
@@ -1179,25 +1223,30 @@ export class DOMUtilsEvent {
|
|
|
1179
1223
|
* })
|
|
1180
1224
|
*/
|
|
1181
1225
|
keyup(
|
|
1182
|
-
|
|
1226
|
+
element: DOMUtilsTargetElementType | Window | typeof globalThis,
|
|
1183
1227
|
handler: (event: DOMUtils_Event["keyup"]) => void,
|
|
1184
1228
|
option?: boolean | AddEventListenerOptions
|
|
1185
1229
|
) {
|
|
1186
1230
|
let DOMUtilsContext = this;
|
|
1187
|
-
if (
|
|
1231
|
+
if (element == null) {
|
|
1188
1232
|
return;
|
|
1189
1233
|
}
|
|
1190
|
-
if (typeof
|
|
1191
|
-
|
|
1192
|
-
target
|
|
1193
|
-
) as HTMLElement;
|
|
1234
|
+
if (typeof element === "string") {
|
|
1235
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1194
1236
|
}
|
|
1195
|
-
|
|
1237
|
+
if (isNodeList(element)) {
|
|
1238
|
+
// 设置
|
|
1239
|
+
element.forEach(($ele) => {
|
|
1240
|
+
DOMUtilsContext.keyup($ele as HTMLElement, handler, option);
|
|
1241
|
+
});
|
|
1242
|
+
return;
|
|
1243
|
+
}
|
|
1244
|
+
DOMUtilsContext.on(element, "keyup", null, handler, option);
|
|
1196
1245
|
}
|
|
1197
1246
|
/**
|
|
1198
1247
|
* 当按键按下时触发事件
|
|
1199
1248
|
* keydown - > keypress - > keyup
|
|
1200
|
-
* @param
|
|
1249
|
+
* @param element 目标
|
|
1201
1250
|
* @param handler 事件处理函数
|
|
1202
1251
|
* @param option 配置
|
|
1203
1252
|
* @example
|
|
@@ -1210,25 +1259,30 @@ export class DOMUtilsEvent {
|
|
|
1210
1259
|
* })
|
|
1211
1260
|
*/
|
|
1212
1261
|
keydown(
|
|
1213
|
-
|
|
1262
|
+
element: DOMUtilsTargetElementType | Window | typeof globalThis,
|
|
1214
1263
|
handler: (event: DOMUtils_Event["keydown"]) => void,
|
|
1215
1264
|
option?: boolean | AddEventListenerOptions
|
|
1216
1265
|
) {
|
|
1217
1266
|
let DOMUtilsContext = this;
|
|
1218
|
-
if (
|
|
1267
|
+
if (element == null) {
|
|
1219
1268
|
return;
|
|
1220
1269
|
}
|
|
1221
|
-
if (typeof
|
|
1222
|
-
|
|
1223
|
-
target
|
|
1224
|
-
) as HTMLElement;
|
|
1270
|
+
if (typeof element === "string") {
|
|
1271
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1225
1272
|
}
|
|
1226
|
-
|
|
1273
|
+
if (isNodeList(element)) {
|
|
1274
|
+
// 设置
|
|
1275
|
+
element.forEach(($ele) => {
|
|
1276
|
+
DOMUtilsContext.keydown($ele as HTMLElement, handler, option);
|
|
1277
|
+
});
|
|
1278
|
+
return;
|
|
1279
|
+
}
|
|
1280
|
+
DOMUtilsContext.on(element, "keydown", null, handler, option);
|
|
1227
1281
|
}
|
|
1228
1282
|
/**
|
|
1229
1283
|
* 当按键按下时触发事件
|
|
1230
1284
|
* keydown - > keypress - > keyup
|
|
1231
|
-
* @param
|
|
1285
|
+
* @param element 目标
|
|
1232
1286
|
* @param handler 事件处理函数
|
|
1233
1287
|
* @param option 配置
|
|
1234
1288
|
* @example
|
|
@@ -1241,26 +1295,31 @@ export class DOMUtilsEvent {
|
|
|
1241
1295
|
* })
|
|
1242
1296
|
*/
|
|
1243
1297
|
keypress(
|
|
1244
|
-
|
|
1298
|
+
element: DOMUtilsTargetElementType | Window | typeof globalThis,
|
|
1245
1299
|
handler: (event: DOMUtils_Event["keypress"]) => void,
|
|
1246
1300
|
option?: boolean | AddEventListenerOptions
|
|
1247
1301
|
) {
|
|
1248
1302
|
let DOMUtilsContext = this;
|
|
1249
|
-
if (
|
|
1303
|
+
if (element == null) {
|
|
1250
1304
|
return;
|
|
1251
1305
|
}
|
|
1252
|
-
if (typeof
|
|
1253
|
-
|
|
1254
|
-
target
|
|
1255
|
-
) as HTMLElement;
|
|
1306
|
+
if (typeof element === "string") {
|
|
1307
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1256
1308
|
}
|
|
1257
|
-
|
|
1309
|
+
if (isNodeList(element)) {
|
|
1310
|
+
// 设置
|
|
1311
|
+
element.forEach(($ele) => {
|
|
1312
|
+
DOMUtilsContext.keypress($ele as HTMLElement, handler, option);
|
|
1313
|
+
});
|
|
1314
|
+
return;
|
|
1315
|
+
}
|
|
1316
|
+
DOMUtilsContext.on(element, "keypress", null, handler, option);
|
|
1258
1317
|
}
|
|
1259
1318
|
|
|
1260
1319
|
/**
|
|
1261
1320
|
* 监听某个元素键盘按键事件或window全局按键事件
|
|
1262
1321
|
* 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
|
|
1263
|
-
* @param
|
|
1322
|
+
* @param element 需要监听的对象,可以是全局Window或者某个元素
|
|
1264
1323
|
* @param eventName 事件名,默认keypress
|
|
1265
1324
|
* @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
|
|
1266
1325
|
* @param options 监听事件的配置
|
|
@@ -1321,7 +1380,7 @@ export class DOMUtilsEvent {
|
|
|
1321
1380
|
收藏 171
|
|
1322
1381
|
**/
|
|
1323
1382
|
listenKeyboard(
|
|
1324
|
-
|
|
1383
|
+
element: DOMUtilsTargetElementType | Window | Node | typeof globalThis,
|
|
1325
1384
|
eventName: "keyup" | "keypress" | "keydown" = "keypress",
|
|
1326
1385
|
callback: (
|
|
1327
1386
|
keyName: string,
|
|
@@ -1333,6 +1392,10 @@ export class DOMUtilsEvent {
|
|
|
1333
1392
|
): {
|
|
1334
1393
|
removeListen(): void;
|
|
1335
1394
|
} {
|
|
1395
|
+
let DOMUtilsContext = this;
|
|
1396
|
+
if (typeof element === "string") {
|
|
1397
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1398
|
+
}
|
|
1336
1399
|
let keyboardEventCallBack = function (event: KeyboardEvent) {
|
|
1337
1400
|
/** 键名 */
|
|
1338
1401
|
let keyName = event.key || event.code;
|
|
@@ -1356,10 +1419,10 @@ export class DOMUtilsEvent {
|
|
|
1356
1419
|
callback(keyName, keyValue, otherCodeList, event);
|
|
1357
1420
|
}
|
|
1358
1421
|
};
|
|
1359
|
-
|
|
1422
|
+
DOMUtilsContext.on(element, eventName, keyboardEventCallBack, options);
|
|
1360
1423
|
return {
|
|
1361
1424
|
removeListen: () => {
|
|
1362
|
-
|
|
1425
|
+
DOMUtilsContext.off(element, eventName, keyboardEventCallBack, options);
|
|
1363
1426
|
},
|
|
1364
1427
|
};
|
|
1365
1428
|
}
|