@whitesev/utils 2.1.4 → 2.2.0

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.
@@ -944,71 +944,6 @@ declare class Utils {
944
944
  * > ['jsonToArray', 'Array']
945
945
  **/
946
946
  parseObjectToArray(target: AnyObject): any;
947
- /**
948
- * 监听某个元素键盘按键事件或window全局按键事件
949
- * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
950
- * @param target 需要监听的对象,可以是全局Window或者某个元素
951
- * @param eventName 事件名,默认keypress
952
- * @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
953
- * @example
954
- Utils.listenKeyboard(window,(keyName,keyValue,otherKey,event)=>{
955
- if(keyName === "Enter"){
956
- console.log("回车按键的值是:"+keyValue)
957
- }
958
- if(otherKey.indexOf("ctrl") && keyName === "Enter" ){
959
- console.log("Ctrl和回车键");
960
- }
961
- })
962
- * @example
963
- 字母和数字键的键码值(keyCode)
964
- 按键 键码 按键 键码 按键 键码 按键 键码
965
- A 65 J 74 S 83 1 49
966
- B 66 K 75 T 84 2 50
967
- C 67 L 76 U 85 3 51
968
- D 68 M 77 V 86 4 52
969
- E 69 N 78 W 87 5 53
970
- F 70 O 79 X 88 6 54
971
- G 71 P 80 Y 89 7 55
972
- H 72 Q 81 Z 90 8 56
973
- I 73 R 82 0 48 9 57
974
-
975
- 数字键盘上的键的键码值(keyCode)
976
- 功能键键码值(keyCode)
977
- 按键 键码 按键 键码 按键 键码 按键 键码
978
- 0 96 8 104 F1 112 F7 118
979
- 1 97 9 105 F2 113 F8 119
980
- 2 98 * 106 F3 114 F9 120
981
- 3 99 + 107 F4 115 F10 121
982
- 4 100 Enter 108 F5 116 F11 122
983
- 5 101 - 109 F6 117 F12 123
984
- 6 102 . 110
985
- 7 103 / 111
986
-
987
- 控制键键码值(keyCode)
988
- 按键 键码 按键 键码 按键 键码 按键 键码
989
- BackSpace 8 Esc 27 → 39 -_ 189
990
- Tab 9 Spacebar 32 ↓ 40 .> 190
991
- Clear 12 Page Up 33 Insert 45 /? 191
992
- Enter 13 Page Down 34 Delete 46 `~ 192
993
- Shift 16 End 35 Num Lock 144 [{ 219
994
- Control 17 Home 36 ;: 186 \| 220
995
- Alt 18 ← 37 =+ 187 ]} 221
996
- Cape Lock 20 ↑ 38 ,< 188 '" 222
997
-
998
- 多媒体键码值(keyCode)
999
- 按键 键码
1000
- 音量加 175
1001
- 音量减 174
1002
- 停止 179
1003
- 静音 173
1004
- 浏览器 172
1005
- 邮件 180
1006
- 搜索 170
1007
- 收藏 171
1008
- **/
1009
- listenKeyboard(target: Window | Node | HTMLElement | typeof globalThis, eventName: "keyup" | "keypress" | "keydown", callback: (keyName: string, keyValue: string, otherCodeList: string[], event: KeyboardEvent) => void): {
1010
- removeListen(): void;
1011
- };
1012
947
  /**
1013
948
  * 自动锁对象,用于循环判断运行的函数,在循环外new后使用,注意,如果函数内部存在异步操作,需要使用await
1014
949
  * @example
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/utils",
3
- "version": "2.1.4",
3
+ "version": "2.2.0",
4
4
  "description": "一个常用的工具库",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
package/src/Utils.ts CHANGED
@@ -52,7 +52,7 @@ class Utils {
52
52
  this.windowApi = new WindowApi(option);
53
53
  }
54
54
  /** 版本号 */
55
- version = "2024.7.24";
55
+ version = "2024.8.30";
56
56
 
57
57
  /**
58
58
  * 在页面中增加style元素,如果html节点存在子节点,添加子节点第一个,反之,添加到html节点的子节点最后一个
@@ -2304,128 +2304,6 @@ class Utils {
2304
2304
  return result;
2305
2305
  }
2306
2306
  /**
2307
- * 监听某个元素键盘按键事件或window全局按键事件
2308
- * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
2309
- * @param target 需要监听的对象,可以是全局Window或者某个元素
2310
- * @param eventName 事件名,默认keypress
2311
- * @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
2312
- * @example
2313
- Utils.listenKeyboard(window,(keyName,keyValue,otherKey,event)=>{
2314
- if(keyName === "Enter"){
2315
- console.log("回车按键的值是:"+keyValue)
2316
- }
2317
- if(otherKey.indexOf("ctrl") && keyName === "Enter" ){
2318
- console.log("Ctrl和回车键");
2319
- }
2320
- })
2321
- * @example
2322
- 字母和数字键的键码值(keyCode)
2323
- 按键 键码 按键 键码 按键 键码 按键 键码
2324
- A 65 J 74 S 83 1 49
2325
- B 66 K 75 T 84 2 50
2326
- C 67 L 76 U 85 3 51
2327
- D 68 M 77 V 86 4 52
2328
- E 69 N 78 W 87 5 53
2329
- F 70 O 79 X 88 6 54
2330
- G 71 P 80 Y 89 7 55
2331
- H 72 Q 81 Z 90 8 56
2332
- I 73 R 82 0 48 9 57
2333
-
2334
- 数字键盘上的键的键码值(keyCode)
2335
- 功能键键码值(keyCode)
2336
- 按键 键码 按键 键码 按键 键码 按键 键码
2337
- 0 96 8 104 F1 112 F7 118
2338
- 1 97 9 105 F2 113 F8 119
2339
- 2 98 * 106 F3 114 F9 120
2340
- 3 99 + 107 F4 115 F10 121
2341
- 4 100 Enter 108 F5 116 F11 122
2342
- 5 101 - 109 F6 117 F12 123
2343
- 6 102 . 110
2344
- 7 103 / 111
2345
-
2346
- 控制键键码值(keyCode)
2347
- 按键 键码 按键 键码 按键 键码 按键 键码
2348
- BackSpace 8 Esc 27 → 39 -_ 189
2349
- Tab 9 Spacebar 32 ↓ 40 .> 190
2350
- Clear 12 Page Up 33 Insert 45 /? 191
2351
- Enter 13 Page Down 34 Delete 46 `~ 192
2352
- Shift 16 End 35 Num Lock 144 [{ 219
2353
- Control 17 Home 36 ;: 186 \| 220
2354
- Alt 18 ← 37 =+ 187 ]} 221
2355
- Cape Lock 20 ↑ 38 ,< 188 '" 222
2356
-
2357
- 多媒体键码值(keyCode)
2358
- 按键 键码
2359
- 音量加 175
2360
- 音量减 174
2361
- 停止 179
2362
- 静音 173
2363
- 浏览器 172
2364
- 邮件 180
2365
- 搜索 170
2366
- 收藏 171
2367
- **/
2368
- listenKeyboard(
2369
- target: Window | Node | HTMLElement | typeof globalThis,
2370
- eventName: "keyup" | "keypress" | "keydown",
2371
- callback: (
2372
- keyName: string,
2373
- keyValue: string,
2374
- otherCodeList: string[],
2375
- event: KeyboardEvent
2376
- ) => void
2377
- ): {
2378
- removeListen(): void;
2379
- };
2380
- listenKeyboard(
2381
- target: Window | Node | HTMLElement | typeof globalThis,
2382
- eventName: "keyup" | "keypress" | "keydown" = "keypress",
2383
- callback: (
2384
- keyName: string,
2385
- keyValue: string,
2386
- otherCodeList: string[],
2387
- event: KeyboardEvent
2388
- ) => void
2389
- ): {
2390
- removeListen(): void;
2391
- } {
2392
- if (
2393
- typeof target !== "object" ||
2394
- (typeof target["addEventListener"] !== "function" &&
2395
- typeof target["removeEventListener"] !== "function")
2396
- ) {
2397
- throw new Error(
2398
- "Utils.listenKeyboard 参数 target 必须为 Window|HTMLElement 类型"
2399
- );
2400
- }
2401
- let keyEvent = function (event: KeyboardEvent) {
2402
- let keyName = event.key || event.code;
2403
- let keyValue = event.charCode || event.keyCode || event.which;
2404
- let otherCodeList = [];
2405
- if (event.ctrlKey) {
2406
- otherCodeList.push("ctrl");
2407
- }
2408
- if (event.altKey) {
2409
- otherCodeList.push("alt");
2410
- }
2411
- if (event.metaKey) {
2412
- otherCodeList.push("meta");
2413
- }
2414
- if (event.shiftKey) {
2415
- otherCodeList.push("shift");
2416
- }
2417
- if (typeof callback === "function") {
2418
- callback(keyName, keyValue.toString(), otherCodeList, event);
2419
- }
2420
- };
2421
- target.addEventListener(eventName, keyEvent as any);
2422
- return {
2423
- removeListen() {
2424
- target.removeEventListener(eventName, keyEvent as any);
2425
- },
2426
- };
2427
- }
2428
- /**
2429
2307
  * 自动锁对象,用于循环判断运行的函数,在循环外new后使用,注意,如果函数内部存在异步操作,需要使用await
2430
2308
  * @example
2431
2309
  let lock = new Utils.LockFunction(()=>{console.log(1)}))