@ivujs/i-utils 1.1.1 → 1.1.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.
Files changed (140) hide show
  1. package/README.md +17 -19
  2. package/dist/cjs/id/index.cjs +26 -43
  3. package/dist/cjs/index.cjs +8 -398
  4. package/dist/es/id/index.d.ts +16 -0
  5. package/dist/es/id/index.mjs +28 -42
  6. package/dist/es/index.d.ts +2 -0
  7. package/dist/es/index.mjs +8 -58
  8. package/dist/index.d.ts +21 -0
  9. package/dist/lib/index.full.cjs.js +38 -0
  10. package/dist/lib/index.full.cjs.min.js +2 -0
  11. package/dist/lib/index.full.cjs.min.js.map +1 -0
  12. package/dist/lib/index.full.esm.js +35 -15822
  13. package/dist/lib/index.full.esm.min.js +2 -58
  14. package/dist/lib/index.full.esm.min.js.map +1 -0
  15. package/dist/lib/index.full.umd.js +39 -16176
  16. package/dist/lib/index.full.umd.min.js +2 -0
  17. package/dist/lib/index.full.umd.min.js.map +1 -0
  18. package/package.json +77 -54
  19. package/dist/cjs/ID-card/index.cjs +0 -122
  20. package/dist/cjs/array/index.cjs +0 -465
  21. package/dist/cjs/clipboard/index.cjs +0 -135
  22. package/dist/cjs/color/index.cjs +0 -210
  23. package/dist/cjs/constants/date.cjs +0 -186
  24. package/dist/cjs/constants/lang.cjs +0 -13
  25. package/dist/cjs/constants/math.cjs +0 -13
  26. package/dist/cjs/constants/regexp.cjs +0 -57
  27. package/dist/cjs/constants/sort.cjs +0 -15
  28. package/dist/cjs/cookie/index.cjs +0 -71
  29. package/dist/cjs/crypto/aes/aes.cjs +0 -533
  30. package/dist/cjs/crypto/aes/index.cjs +0 -28
  31. package/dist/cjs/crypto/base32/base32.cjs +0 -385
  32. package/dist/cjs/crypto/base32/index.cjs +0 -44
  33. package/dist/cjs/crypto/base64/base64.cjs +0 -433
  34. package/dist/cjs/crypto/base64/index.cjs +0 -64
  35. package/dist/cjs/crypto/des/des.cjs +0 -1054
  36. package/dist/cjs/crypto/des/index.cjs +0 -30
  37. package/dist/cjs/crypto/md5/index.cjs +0 -25
  38. package/dist/cjs/crypto/md5/md5.cjs +0 -944
  39. package/dist/cjs/crypto/sha/sha1/index.cjs +0 -25
  40. package/dist/cjs/crypto/sha/sha1/sha1.cjs +0 -602
  41. package/dist/cjs/crypto/sha/sha256/index.cjs +0 -46
  42. package/dist/cjs/crypto/sha/sha256/sha256.cjs +0 -654
  43. package/dist/cjs/crypto/sha/sha3/index.cjs +0 -44
  44. package/dist/cjs/crypto/sha/sha3/sha3.cjs +0 -747
  45. package/dist/cjs/crypto/sha/sha512/index.cjs +0 -88
  46. package/dist/cjs/crypto/sha/sha512/sha512.cjs +0 -1186
  47. package/dist/cjs/crypto/sm/lib/asn1.cjs +0 -167
  48. package/dist/cjs/crypto/sm/lib/ec.cjs +0 -352
  49. package/dist/cjs/crypto/sm/lib/jsbn.cjs +0 -1633
  50. package/dist/cjs/crypto/sm/lib/sm3.cjs +0 -173
  51. package/dist/cjs/crypto/sm/lib/utils.cjs +0 -198
  52. package/dist/cjs/crypto/sm/sm2/index.cjs +0 -122
  53. package/dist/cjs/crypto/sm/sm2/sm2.cjs +0 -269
  54. package/dist/cjs/crypto/sm/sm3/index.cjs +0 -15
  55. package/dist/cjs/crypto/sm/sm3/sm3.cjs +0 -103
  56. package/dist/cjs/crypto/sm/sm4/index.cjs +0 -28
  57. package/dist/cjs/crypto/sm/sm4/sm4.cjs +0 -362
  58. package/dist/cjs/crypto/tea/index.cjs +0 -26
  59. package/dist/cjs/crypto/tea/tea.cjs +0 -215
  60. package/dist/cjs/date/index.cjs +0 -1349
  61. package/dist/cjs/desensitized/index.cjs +0 -74
  62. package/dist/cjs/device/index.cjs +0 -159
  63. package/dist/cjs/dom/index.cjs +0 -176
  64. package/dist/cjs/file/index.cjs +0 -339
  65. package/dist/cjs/function/index.cjs +0 -67
  66. package/dist/cjs/keycode/index.cjs +0 -142
  67. package/dist/cjs/math/index.cjs +0 -284
  68. package/dist/cjs/number/index.cjs +0 -14
  69. package/dist/cjs/object/index.cjs +0 -216
  70. package/dist/cjs/pagination/index.cjs +0 -140
  71. package/dist/cjs/random/index.cjs +0 -25
  72. package/dist/cjs/regexp/index.cjs +0 -109
  73. package/dist/cjs/storage/index.cjs +0 -11
  74. package/dist/cjs/storage/localStorage.cjs +0 -40
  75. package/dist/cjs/storage/sessionStorage.cjs +0 -40
  76. package/dist/cjs/string/index.cjs +0 -338
  77. package/dist/cjs/url/index.cjs +0 -279
  78. package/dist/cjs/validate/index.cjs +0 -487
  79. package/dist/cjs/weapp/index.cjs +0 -151
  80. package/dist/es/ID-card/index.mjs +0 -116
  81. package/dist/es/array/index.mjs +0 -437
  82. package/dist/es/clipboard/index.mjs +0 -129
  83. package/dist/es/color/index.mjs +0 -200
  84. package/dist/es/constants/date.mjs +0 -184
  85. package/dist/es/constants/lang.mjs +0 -11
  86. package/dist/es/constants/math.mjs +0 -11
  87. package/dist/es/constants/regexp.mjs +0 -55
  88. package/dist/es/constants/sort.mjs +0 -13
  89. package/dist/es/cookie/index.mjs +0 -65
  90. package/dist/es/crypto/aes/aes.mjs +0 -529
  91. package/dist/es/crypto/aes/index.mjs +0 -25
  92. package/dist/es/crypto/base32/base32.mjs +0 -381
  93. package/dist/es/crypto/base32/index.mjs +0 -39
  94. package/dist/es/crypto/base64/base64.mjs +0 -427
  95. package/dist/es/crypto/base64/index.mjs +0 -57
  96. package/dist/es/crypto/des/des.mjs +0 -1050
  97. package/dist/es/crypto/des/index.mjs +0 -27
  98. package/dist/es/crypto/md5/index.mjs +0 -22
  99. package/dist/es/crypto/md5/md5.mjs +0 -941
  100. package/dist/es/crypto/sha/sha1/index.mjs +0 -22
  101. package/dist/es/crypto/sha/sha1/sha1.mjs +0 -599
  102. package/dist/es/crypto/sha/sha256/index.mjs +0 -41
  103. package/dist/es/crypto/sha/sha256/sha256.mjs +0 -649
  104. package/dist/es/crypto/sha/sha3/index.mjs +0 -39
  105. package/dist/es/crypto/sha/sha3/sha3.mjs +0 -742
  106. package/dist/es/crypto/sha/sha512/index.mjs +0 -79
  107. package/dist/es/crypto/sha/sha512/sha512.mjs +0 -1177
  108. package/dist/es/crypto/sm/lib/asn1.mjs +0 -164
  109. package/dist/es/crypto/sm/lib/ec.mjs +0 -349
  110. package/dist/es/crypto/sm/lib/jsbn.mjs +0 -1630
  111. package/dist/es/crypto/sm/lib/sm3.mjs +0 -170
  112. package/dist/es/crypto/sm/lib/utils.mjs +0 -186
  113. package/dist/es/crypto/sm/sm2/index.mjs +0 -111
  114. package/dist/es/crypto/sm/sm2/sm2.mjs +0 -258
  115. package/dist/es/crypto/sm/sm3/index.mjs +0 -13
  116. package/dist/es/crypto/sm/sm3/sm3.mjs +0 -99
  117. package/dist/es/crypto/sm/sm4/index.mjs +0 -25
  118. package/dist/es/crypto/sm/sm4/sm4.mjs +0 -359
  119. package/dist/es/crypto/tea/index.mjs +0 -23
  120. package/dist/es/crypto/tea/tea.mjs +0 -211
  121. package/dist/es/date/index.mjs +0 -1262
  122. package/dist/es/desensitized/index.mjs +0 -69
  123. package/dist/es/device/index.mjs +0 -145
  124. package/dist/es/dom/index.mjs +0 -164
  125. package/dist/es/file/index.mjs +0 -323
  126. package/dist/es/function/index.mjs +0 -63
  127. package/dist/es/keycode/index.mjs +0 -139
  128. package/dist/es/math/index.mjs +0 -274
  129. package/dist/es/number/index.mjs +0 -12
  130. package/dist/es/object/index.mjs +0 -203
  131. package/dist/es/pagination/index.mjs +0 -134
  132. package/dist/es/random/index.mjs +0 -22
  133. package/dist/es/regexp/index.mjs +0 -98
  134. package/dist/es/storage/index.mjs +0 -9
  135. package/dist/es/storage/localStorage.mjs +0 -35
  136. package/dist/es/storage/sessionStorage.mjs +0 -35
  137. package/dist/es/string/index.mjs +0 -321
  138. package/dist/es/url/index.mjs +0 -261
  139. package/dist/es/validate/index.mjs +0 -451
  140. package/dist/es/weapp/index.mjs +0 -140
@@ -1,339 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('../validate/index.cjs');
4
-
5
- /* 文件信息处理 */
6
- /**
7
- * 格式化文件大小自动转为 B,KB,MB,GB
8
- * @param {Number} size 文件的大小,单位byte字节
9
- * @returns {String} 返回格式化后的字符串
10
- */
11
- function formatFileSize(size) {
12
- if (index.isEmpty(size)) return "0B";
13
- if (size < 1024) {
14
- return size + "B";
15
- } else if (size < 1024 * 1024) {
16
- return (size / 1024).toFixed(2) + "KB";
17
- } else if (size < 1024 * 1024 * 1024) {
18
- return (size / (1024 * 1024)).toFixed(2) + "MB";
19
- } else {
20
- return (size / (1024 * 1024 * 1024)).toFixed(2) + "GB";
21
- }
22
- }
23
-
24
- /**
25
- * 获得文件名称
26
- * @param {String} fileName 文件的全名称,例如:测试图片.jpg
27
- * @returns {String} 返回文件的名称
28
- */
29
- function getFileName(fileName) {
30
- if (index.isEmpty(fileName)) return;
31
- return fileName.substring(0, fileName.lastIndexOf("."));
32
- }
33
-
34
- /**
35
- * 获得文件后缀名
36
- * @param {String} value 文件地址路径或者文件全名称,例如:http://xxx.com/mytest.jpg,测试图片.jpg
37
- * @returns {String} 返回文件后缀名
38
- */
39
- function getFileSuffix(value) {
40
- if (index.isEmpty(value)) return;
41
- return value.substring(value.lastIndexOf(".") + 1).toLowerCase();
42
- }
43
-
44
- /* 文件转换 */
45
- /**
46
- * file转blob
47
- * @param {File} file file文件
48
- * @returns {Promise} 返回Promise的blob
49
- */
50
- function fileToBlob(file) {
51
- return new Promise((resolve, reject) => {
52
- // 读取解析文件
53
- let reader = new FileReader();
54
- reader.readAsArrayBuffer(file);
55
-
56
- // 加载成功
57
- reader.onload = (e) => {
58
- const blob = new Blob([e.target.result], { type: file.type });
59
- resolve(blob);
60
- };
61
- // 加载失败
62
- reader.onerror = function (err) {
63
- console.error(err);
64
- reject(err);
65
- };
66
- });
67
- }
68
-
69
- /**
70
- * file转base64
71
- * @param {File} file file文件
72
- * @returns {Promise} 返回Promise的base64
73
- */
74
- function fileToBase64(file) {
75
- return new Promise((resolve, reject) => {
76
- // 读取解析文件
77
- let reader = new FileReader();
78
- reader.readAsDataURL(file);
79
-
80
- // 加载成功
81
- reader.onload = function (e) {
82
- resolve(e.target.result);
83
- };
84
- // 加载失败
85
- reader.onerror = function (err) {
86
- console.error(err);
87
- reject(err);
88
- };
89
- });
90
- }
91
-
92
- /**
93
- * file转url
94
- * @description 适用于本地上传图片并预览,需要注意 URL.revokeObjectURL(file) 内存释放
95
- * @param {File} file file文件
96
- * @returns {Promise} 返回Promise的url
97
- */
98
- function fileToUrl(file) {
99
- return new Promise((resolve, reject) => {
100
- try {
101
- resolve(URL.createObjectURL(file));
102
- } catch (err) {
103
- // 捕捉异常
104
- console.error(err);
105
- URL.revokeObjectURL(file);
106
- reject(err);
107
- }
108
- });
109
- }
110
-
111
- /**
112
- * url赚file
113
- * @param {String} url url地址
114
- * @returns {Promise} 返回Promise的file
115
- */
116
- function urlToFile(url) {
117
- return new Promise(async (resolve, reject) => {
118
- try {
119
- let res = await window.fetch(url);
120
- if (res.status === 200) {
121
- let blob = await res.blob();
122
- let file = await blobToFile(blob);
123
- resolve(file);
124
- }
125
- } catch (err) {
126
- console.error(err);
127
- reject(err);
128
- }
129
- });
130
- }
131
-
132
- /**
133
- * blob转file
134
- * @param {Blob} blob blob数据
135
- * @param {String} fileName 文件名称,默认以时间戳命名
136
- * @returns {Promise} 返回Promise的file
137
- */
138
- function blobToFile(blob, fileName = Date.now()) {
139
- return new Promise((resolve, reject) => {
140
- try {
141
- const mime = blob.type;
142
- const size = blob.size;
143
- const fileSuffix = mime.split("/")[1];
144
- const file = new File([blob], `${Date.now()}.${fileSuffix}`, {
145
- type: mime,
146
- size: size,
147
- name: `${fileName}.${fileSuffix}`,
148
- lastModified: Date.now(),
149
- lastModifiedDate: new Date(),
150
- });
151
- resolve(file);
152
- } catch (err) {
153
- // 捕捉异常
154
- console.error(err);
155
- reject(err);
156
- }
157
- });
158
- }
159
-
160
- /**
161
- * blob转文本
162
- * @param {Blob} blob blob数据
163
- * @returns {Promise} 返回Promise的文本
164
- */
165
- function blobToText(blob) {
166
- return new Promise((resolve, reject) => {
167
- const reader = new FileReader();
168
- reader.onload = function (event) {
169
- resolve(event.target.result);
170
- };
171
- reader.onerror = function (error) {
172
- reject(error);
173
- };
174
- reader.readAsText(blob);
175
- });
176
- }
177
-
178
- /**
179
- * blob转base64
180
- * @param {Blob} blob blob数据
181
- * @returns {Promise} 返回Promise的base64
182
- */
183
- function blobToBase64(blob) {
184
- return new Promise((resolve, reject) => {
185
- // 读取解析文件
186
- let reader = new FileReader();
187
- reader.readAsDataURL(blob);
188
-
189
- // 加载成功
190
- reader.onload = function (e) {
191
- resolve(e.target.result);
192
- };
193
- // 加载失败
194
- reader.onerror = function (err) {
195
- console.error(err);
196
- reject(err);
197
- };
198
- });
199
- }
200
-
201
- /**
202
- * base64转file
203
- * @param {String} base64 base64数据
204
- * @param {String} fileName 文件名称,默认以时间戳命名
205
- * @returns {Promise} 返回Promise的file
206
- */
207
- function base64ToFile(base64, fileName = Date.now()) {
208
- return new Promise((resolve, reject) => {
209
- try {
210
- const arr = base64.split(",");
211
- const mime = arr[0].match(/:(.*?);/)[1];
212
- const fileSuffix = mime.split("/")[1];
213
- const bstr = window.atob(arr[1]);
214
- let n = bstr.length;
215
- const u8arr = new Uint8Array(n);
216
-
217
- while (n--) {
218
- u8arr[n] = bstr.charCodeAt(n);
219
- }
220
- resolve(new File([u8arr], `${fileName}.${fileSuffix}`, { type: mime }));
221
- } catch (err) {
222
- // 捕捉异常
223
- console.error(err);
224
- reject(err);
225
- }
226
- });
227
- }
228
-
229
- /**
230
- * base64转成blob
231
- * @param {String} base64 base64数据
232
- * @returns {Promise} 返回Promise的blob
233
- */
234
- function base64ToBlob(base64) {
235
- return new Promise((resolve, reject) => {
236
- try {
237
- const arr = base64.split(",");
238
- const mime = arr[0].match(/:(.*?);/)[1];
239
- const bstr = window.atob(arr[1]);
240
- let n = bstr.length;
241
- const u8arr = new Uint8Array(n);
242
-
243
- while (n--) {
244
- u8arr[n] = bstr.charCodeAt(n);
245
- }
246
- resolve(new Blob([u8arr], { type: mime }));
247
- } catch (err) {
248
- // 捕捉异常
249
- console.error(err);
250
- reject(err);
251
- }
252
- });
253
- }
254
-
255
- /**
256
- * 图片url转base64
257
- * @param {String} imgUrl 图片url地址
258
- * @returns {Promise} 返回Promise的base64
259
- */
260
- function urlToBase64(imgUrl) {
261
- return new Promise((resolve, reject) => {
262
- // 设置图片
263
- const img = new Image();
264
- img.src = imgUrl;
265
-
266
- // 加载成功
267
- img.onload = function () {
268
- // 画图
269
- const canvas = document.createElement("canvas");
270
- const context = canvas.getContext("2d");
271
- canvas.width = img.width;
272
- canvas.height = img.height;
273
- context.drawImage(img, 0, 0, img.width, img.height);
274
- // 转为base64
275
- const base64 = canvas.toDataURL("image/png");
276
- resolve(base64);
277
- };
278
- // 加载失败
279
- img.onerror = function (err) {
280
- console.error(err);
281
- reject(err);
282
- };
283
- });
284
- }
285
-
286
- /* 下载文件 */
287
- /**
288
- * 下载blob格式的文件
289
- * @param {Blob} blob blob数据
290
- * @param {String} fileName 下载的文件名,不写后缀名则默认为原文件类型
291
- */
292
- function downloadBlobFile(blob, fileName) {
293
- try {
294
- const objUrl = window.URL.createObjectURL(blob);
295
- const link = window.document.createElement("a");
296
- link.download = fileName;
297
- link.href = objUrl;
298
- link.click();
299
- URL.revokeObjectURL(objUrl);
300
- } catch (error) {
301
- console.error(error);
302
- }
303
- }
304
-
305
- /**
306
- * 通过文件url地址下载
307
- * @param {String} fileUrl url文件地址
308
- * @param {String} fileName 下载的文件名,不写后缀名则默认为原文件类型
309
- */
310
- function downloadFileUrl(fileUrl, fileName) {
311
- try {
312
- const link = window.document.createElement("a");
313
- link.download = fileName;
314
- link.href = fileUrl;
315
- // 生成节点点击
316
- window.document.body.appendChild(link);
317
- link.click();
318
- // 点击后移除节点
319
- window.document.body.removeChild(link);
320
- } catch (error) {
321
- console.error(error);
322
- }
323
- }
324
-
325
- exports.base64ToBlob = base64ToBlob;
326
- exports.base64ToFile = base64ToFile;
327
- exports.blobToBase64 = blobToBase64;
328
- exports.blobToFile = blobToFile;
329
- exports.blobToText = blobToText;
330
- exports.downloadBlobFile = downloadBlobFile;
331
- exports.downloadFileUrl = downloadFileUrl;
332
- exports.fileToBase64 = fileToBase64;
333
- exports.fileToBlob = fileToBlob;
334
- exports.fileToUrl = fileToUrl;
335
- exports.formatFileSize = formatFileSize;
336
- exports.getFileName = getFileName;
337
- exports.getFileSuffix = getFileSuffix;
338
- exports.urlToBase64 = urlToBase64;
339
- exports.urlToFile = urlToFile;
@@ -1,67 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * 防抖函数
5
- * @description 事件执行后,在延迟时间内如果再次执行,会清空定时器重新延迟执行,举例:用户在输入框进行输入搜索,最终是会获取到最后一次输入,节约请求资源
6
- * @param {Function} fn 目标函数
7
- * @param {Number} delay 延迟时间,单位毫秒,默认 1*1000 毫秒
8
- * @param {Boolean} immediate 是否立即执行,默认true
9
- * @returns {Function} 返回function()
10
- */
11
- function debounce(fn, delay = 1 * 1000, immediate = true) {
12
- let timer;
13
- return function () {
14
- const _args = arguments;
15
- // 先关闭定时器
16
- if (timer) clearTimeout(timer);
17
- // 立即执行判断
18
- if (immediate) {
19
- // 如果需要立即执行
20
- // 开启新定时器防止短时间内再次触发
21
- const canExecute = !timer;
22
- timer = setTimeout(function () {
23
- timer = null;
24
- }, delay);
25
- if (canExecute) fn.apply(this, _args);
26
- } else {
27
- // 如果不需要立即执行
28
- // 每次触发开启新定时器即可
29
- timer = setTimeout(function () {
30
- fn.apply(this, _args);
31
- }, delay);
32
- }
33
- };
34
- }
35
-
36
- /**
37
- * 节流函数
38
- * @description 高频触发时,在指定时间间隔内只执行一次,举例:监听页面滚动,不会频繁触发,只会在固定时间内获取一次
39
- * @param {Function} fn 目标函数
40
- * @param {Number} interval 时间间隔,单位毫秒,默认1*1000毫秒
41
- * @returns {Function} 返回function()
42
- */
43
- function throttle(fn, interval = 1 * 1000) {
44
- let timer;
45
- return function () {
46
- const _args = arguments;
47
- // 有定时器则返回
48
- if (timer) return;
49
- timer = setTimeout(() => {
50
- timer = null;
51
- fn.apply(this, _args);
52
- }, interval);
53
- };
54
- }
55
-
56
- /**
57
- * 睡眠延迟执行
58
- * @description 需要配合 async/await 来达到延迟效果
59
- * @param {Number} delay 延迟时间,单位毫秒,默认1*1000毫秒
60
- */
61
- function sleep(delay = 1 * 1000) {
62
- return new Promise((resolve) => setTimeout(resolve, delay));
63
- }
64
-
65
- exports.debounce = debounce;
66
- exports.sleep = sleep;
67
- exports.throttle = throttle;
@@ -1,142 +0,0 @@
1
- 'use strict';
2
-
3
- const keyCodeMap = {
4
- // 字符键
5
- 8: "Backspace",
6
- 9: "Tab",
7
- 13: "Enter",
8
- 16: "Shift",
9
- 17: "Ctrl",
10
- 18: "Alt",
11
- 19: "Pause",
12
- 20: "Caps Lock",
13
- 27: "Escape",
14
- 32: "Space",
15
- 33: "Page Up",
16
- 34: "Page Down",
17
- 35: "End",
18
- 36: "Home",
19
- 37: "Left",
20
- 38: "Up",
21
- 39: "Right",
22
- 40: "Down",
23
- 42: "Print Screen",
24
- 45: "Insert",
25
- 46: "Delete",
26
- // 数字键
27
- 48: "0",
28
- 49: "1",
29
- 50: "2",
30
- 51: "3",
31
- 52: "4",
32
- 53: "5",
33
- 54: "6",
34
- 55: "7",
35
- 56: "8",
36
- 57: "9",
37
- // 字母键
38
- 65: "A",
39
- 66: "B",
40
- 67: "C",
41
- 68: "D",
42
- 69: "E",
43
- 70: "F",
44
- 71: "G",
45
- 72: "H",
46
- 73: "I",
47
- 74: "J",
48
- 75: "K",
49
- 76: "L",
50
- 77: "M",
51
- 78: "N",
52
- 79: "O",
53
- 80: "P",
54
- 81: "Q",
55
- 82: "R",
56
- 83: "S",
57
- 84: "T",
58
- 85: "U",
59
- 86: "V",
60
- 87: "W",
61
- 88: "X",
62
- 89: "Y",
63
- 90: "Z",
64
- // window
65
- 91: "Windows",
66
- 93: "Right Click",
67
- // Numpad
68
- 96: "Numpad 0",
69
- 97: "Numpad 1",
70
- 98: "Numpad 2",
71
- 99: "Numpad 3",
72
- 100: "Numpad 4",
73
- 101: "Numpad 5",
74
- 102: "Numpad 6",
75
- 103: "Numpad 7",
76
- 104: "Numpad 8",
77
- 105: "Numpad 9",
78
- 106: "Numpad *",
79
- 107: "Numpad +",
80
- 109: "Numpad -",
81
- 110: "Numpad .",
82
- 111: "Numpad /",
83
- // F功能键
84
- 112: "F1",
85
- 113: "F2",
86
- 114: "F3",
87
- 115: "F4",
88
- 116: "F5",
89
- 117: "F6",
90
- 118: "F7",
91
- 119: "F8",
92
- 120: "F9",
93
- 121: "F10",
94
- 122: "F11",
95
- 123: "F12",
96
- // 特殊符号
97
- 144: "Num Lock",
98
- 145: "Scroll Lock",
99
- 182: "My Computer",
100
- 183: "My Calculator",
101
- 186: ";",
102
- 187: "=",
103
- 188: ",",
104
- 189: "-",
105
- 190: ".",
106
- 191: "/",
107
- 192: "`",
108
- 219: "[",
109
- 220: "\\",
110
- 221: "]",
111
- 222: "'",
112
- };
113
-
114
- /**
115
- * 根据keycode获得键名
116
- * @param {Number} keycode 键值
117
- * @returns {String} 返回键名
118
- */
119
- function getKeyName(keycode) {
120
- if (keyCodeMap[keycode]) {
121
- return keyCodeMap[keycode];
122
- } else {
123
- console.log("Unknow Key Code: " + keycode);
124
- return "";
125
- }
126
- }
127
-
128
- /**
129
- * 根据keyname获得键值
130
- * @param {Number} keyname
131
- * @returns {Number} 返回键值
132
- */
133
- function getKeyCode(keyname) {
134
- for (let key in keyCodeMap) {
135
- if (keyCodeMap[key] === keyname) {
136
- return key;
137
- }
138
- }
139
- }
140
-
141
- exports.getKeyCode = getKeyCode;
142
- exports.getKeyName = getKeyName;