@ivujs/i-utils 1.1.16 → 1.1.17

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 (213) hide show
  1. package/README.md +21 -19
  2. package/dist/cjs/index.cjs +5 -400
  3. package/dist/es/index.d.ts +1 -26
  4. package/dist/es/index.mjs +2 -55
  5. package/dist/index.d.ts +11 -2851
  6. package/dist/lib/index.full.umd.js +33 -14240
  7. package/dist/lib/index.full.umd.min.js +2 -64
  8. package/dist/lib/index.full.umd.min.js.map +1 -1
  9. package/dist/resolver/auto-imports.cjs +1 -337
  10. package/dist/resolver/auto-imports.mjs +1 -337
  11. package/dist/resolver/index.cjs +1 -1
  12. package/dist/resolver/index.d.ts +1 -1
  13. package/dist/resolver/index.mjs +1 -1
  14. package/package.json +5 -13
  15. package/dist/cjs/ID-card/index.cjs +0 -87
  16. package/dist/cjs/array/index.cjs +0 -470
  17. package/dist/cjs/clipboard/index.cjs +0 -128
  18. package/dist/cjs/color/index.cjs +0 -193
  19. package/dist/cjs/constants/date.cjs +0 -178
  20. package/dist/cjs/constants/id-card.cjs +0 -52
  21. package/dist/cjs/constants/keycode.cjs +0 -117
  22. package/dist/cjs/constants/lang.cjs +0 -13
  23. package/dist/cjs/constants/math.cjs +0 -13
  24. package/dist/cjs/constants/regexp.cjs +0 -53
  25. package/dist/cjs/constants/sort.cjs +0 -15
  26. package/dist/cjs/cookie/index.cjs +0 -70
  27. package/dist/cjs/crypto/aes/aes.cjs +0 -480
  28. package/dist/cjs/crypto/aes/index.cjs +0 -27
  29. package/dist/cjs/crypto/base32/base32.cjs +0 -357
  30. package/dist/cjs/crypto/base32/index.cjs +0 -41
  31. package/dist/cjs/crypto/base64/base64.cjs +0 -348
  32. package/dist/cjs/crypto/base64/index.cjs +0 -59
  33. package/dist/cjs/crypto/des/des.cjs +0 -257
  34. package/dist/cjs/crypto/des/index.cjs +0 -28
  35. package/dist/cjs/crypto/md5/index.cjs +0 -24
  36. package/dist/cjs/crypto/md5/md5.cjs +0 -897
  37. package/dist/cjs/crypto/sha/sha1/index.cjs +0 -24
  38. package/dist/cjs/crypto/sha/sha1/sha1.cjs +0 -529
  39. package/dist/cjs/crypto/sha/sha256/index.cjs +0 -43
  40. package/dist/cjs/crypto/sha/sha256/sha256.cjs +0 -595
  41. package/dist/cjs/crypto/sha/sha3/index.cjs +0 -41
  42. package/dist/cjs/crypto/sha/sha3/sha3.cjs +0 -624
  43. package/dist/cjs/crypto/sha/sha512/index.cjs +0 -81
  44. package/dist/cjs/crypto/sha/sha512/sha512.cjs +0 -950
  45. package/dist/cjs/crypto/sm/lib/asn1.cjs +0 -149
  46. package/dist/cjs/crypto/sm/lib/ec.cjs +0 -315
  47. package/dist/cjs/crypto/sm/lib/jsbn.cjs +0 -1608
  48. package/dist/cjs/crypto/sm/lib/sm3.cjs +0 -158
  49. package/dist/cjs/crypto/sm/lib/utils.cjs +0 -170
  50. package/dist/cjs/crypto/sm/sm2/index.cjs +0 -112
  51. package/dist/cjs/crypto/sm/sm2/sm2.cjs +0 -231
  52. package/dist/cjs/crypto/sm/sm3/index.cjs +0 -15
  53. package/dist/cjs/crypto/sm/sm3/sm3.cjs +0 -93
  54. package/dist/cjs/crypto/sm/sm4/index.cjs +0 -27
  55. package/dist/cjs/crypto/sm/sm4/sm4.cjs +0 -327
  56. package/dist/cjs/crypto/tea/index.cjs +0 -25
  57. package/dist/cjs/crypto/tea/tea.cjs +0 -187
  58. package/dist/cjs/date/index.cjs +0 -1266
  59. package/dist/cjs/desensitized/index.cjs +0 -75
  60. package/dist/cjs/device/index.cjs +0 -151
  61. package/dist/cjs/dom/index.cjs +0 -129
  62. package/dist/cjs/file/index.cjs +0 -333
  63. package/dist/cjs/function/index.cjs +0 -69
  64. package/dist/cjs/keycode/index.cjs +0 -33
  65. package/dist/cjs/math/index.cjs +0 -278
  66. package/dist/cjs/number/index.cjs +0 -31
  67. package/dist/cjs/object/index.cjs +0 -272
  68. package/dist/cjs/pagination/index.cjs +0 -131
  69. package/dist/cjs/random/index.cjs +0 -24
  70. package/dist/cjs/regexp/index.cjs +0 -100
  71. package/dist/cjs/storage/index.cjs +0 -11
  72. package/dist/cjs/storage/localStorage.cjs +0 -37
  73. package/dist/cjs/storage/sessionStorage.cjs +0 -37
  74. package/dist/cjs/string/index.cjs +0 -358
  75. package/dist/cjs/url/index.cjs +0 -258
  76. package/dist/cjs/validate/index.cjs +0 -468
  77. package/dist/cjs/weapp/index.cjs +0 -142
  78. package/dist/es/ID-card/index.d.ts +0 -31
  79. package/dist/es/ID-card/index.mjs +0 -81
  80. package/dist/es/array/index.d.ts +0 -203
  81. package/dist/es/array/index.mjs +0 -441
  82. package/dist/es/clipboard/index.d.ts +0 -29
  83. package/dist/es/clipboard/index.mjs +0 -122
  84. package/dist/es/color/index.d.ts +0 -52
  85. package/dist/es/color/index.mjs +0 -183
  86. package/dist/es/constants/date.d.ts +0 -174
  87. package/dist/es/constants/date.mjs +0 -176
  88. package/dist/es/constants/id-card.d.ts +0 -43
  89. package/dist/es/constants/id-card.mjs +0 -50
  90. package/dist/es/constants/index.d.ts +0 -7
  91. package/dist/es/constants/keycode.d.ts +0 -103
  92. package/dist/es/constants/keycode.mjs +0 -115
  93. package/dist/es/constants/lang.d.ts +0 -4
  94. package/dist/es/constants/lang.mjs +0 -11
  95. package/dist/es/constants/math.d.ts +0 -4
  96. package/dist/es/constants/math.mjs +0 -11
  97. package/dist/es/constants/regexp.d.ts +0 -24
  98. package/dist/es/constants/regexp.mjs +0 -51
  99. package/dist/es/constants/sort.d.ts +0 -5
  100. package/dist/es/constants/sort.mjs +0 -13
  101. package/dist/es/cookie/index.d.ts +0 -29
  102. package/dist/es/cookie/index.mjs +0 -64
  103. package/dist/es/crypto/aes/aes.d.ts +0 -156
  104. package/dist/es/crypto/aes/aes.mjs +0 -478
  105. package/dist/es/crypto/aes/index.d.ts +0 -16
  106. package/dist/es/crypto/aes/index.mjs +0 -24
  107. package/dist/es/crypto/base32/base32.d.ts +0 -3
  108. package/dist/es/crypto/base32/base32.mjs +0 -353
  109. package/dist/es/crypto/base32/index.d.ts +0 -24
  110. package/dist/es/crypto/base32/index.mjs +0 -36
  111. package/dist/es/crypto/base64/base64.d.ts +0 -5
  112. package/dist/es/crypto/base64/base64.mjs +0 -342
  113. package/dist/es/crypto/base64/index.d.ts +0 -36
  114. package/dist/es/crypto/base64/index.mjs +0 -52
  115. package/dist/es/crypto/des/des.d.ts +0 -52
  116. package/dist/es/crypto/des/des.mjs +0 -255
  117. package/dist/es/crypto/des/index.d.ts +0 -14
  118. package/dist/es/crypto/des/index.mjs +0 -25
  119. package/dist/es/crypto/index.d.ts +0 -8
  120. package/dist/es/crypto/md5/index.d.ts +0 -13
  121. package/dist/es/crypto/md5/index.mjs +0 -21
  122. package/dist/es/crypto/md5/md5.d.ts +0 -144
  123. package/dist/es/crypto/md5/md5.mjs +0 -894
  124. package/dist/es/crypto/sha/index.d.ts +0 -4
  125. package/dist/es/crypto/sha/sha1/index.d.ts +0 -13
  126. package/dist/es/crypto/sha/sha1/index.mjs +0 -21
  127. package/dist/es/crypto/sha/sha1/sha1.d.ts +0 -2
  128. package/dist/es/crypto/sha/sha1/sha1.mjs +0 -526
  129. package/dist/es/crypto/sha/sha256/index.d.ts +0 -26
  130. package/dist/es/crypto/sha/sha256/index.mjs +0 -38
  131. package/dist/es/crypto/sha/sha256/sha256.d.ts +0 -4
  132. package/dist/es/crypto/sha/sha256/sha256.mjs +0 -590
  133. package/dist/es/crypto/sha/sha3/index.d.ts +0 -24
  134. package/dist/es/crypto/sha/sha3/index.mjs +0 -36
  135. package/dist/es/crypto/sha/sha3/sha3.d.ts +0 -4
  136. package/dist/es/crypto/sha/sha3/sha3.mjs +0 -619
  137. package/dist/es/crypto/sha/sha512/index.d.ts +0 -52
  138. package/dist/es/crypto/sha/sha512/index.mjs +0 -72
  139. package/dist/es/crypto/sha/sha512/sha512.d.ts +0 -8
  140. package/dist/es/crypto/sha/sha512/sha512.mjs +0 -941
  141. package/dist/es/crypto/sm/index.d.ts +0 -3
  142. package/dist/es/crypto/sm/lib/asn1.d.ts +0 -12
  143. package/dist/es/crypto/sm/lib/asn1.mjs +0 -146
  144. package/dist/es/crypto/sm/lib/ec.d.ts +0 -126
  145. package/dist/es/crypto/sm/lib/ec.mjs +0 -312
  146. package/dist/es/crypto/sm/lib/jsbn.d.ts +0 -198
  147. package/dist/es/crypto/sm/lib/jsbn.mjs +0 -1605
  148. package/dist/es/crypto/sm/lib/sm3.d.ts +0 -5
  149. package/dist/es/crypto/sm/lib/sm3.mjs +0 -155
  150. package/dist/es/crypto/sm/lib/utils.d.ts +0 -53
  151. package/dist/es/crypto/sm/lib/utils.mjs +0 -158
  152. package/dist/es/crypto/sm/sm2/index.d.ts +0 -71
  153. package/dist/es/crypto/sm/sm2/index.mjs +0 -101
  154. package/dist/es/crypto/sm/sm2/sm2.d.ts +0 -34
  155. package/dist/es/crypto/sm/sm2/sm2.mjs +0 -220
  156. package/dist/es/crypto/sm/sm3/index.d.ts +0 -7
  157. package/dist/es/crypto/sm/sm3/index.mjs +0 -13
  158. package/dist/es/crypto/sm/sm3/sm3.d.ts +0 -1
  159. package/dist/es/crypto/sm/sm3/sm3.mjs +0 -91
  160. package/dist/es/crypto/sm/sm4/index.d.ts +0 -16
  161. package/dist/es/crypto/sm/sm4/index.mjs +0 -24
  162. package/dist/es/crypto/sm/sm4/sm4.d.ts +0 -2
  163. package/dist/es/crypto/sm/sm4/sm4.mjs +0 -324
  164. package/dist/es/crypto/tea/index.d.ts +0 -14
  165. package/dist/es/crypto/tea/index.mjs +0 -22
  166. package/dist/es/crypto/tea/tea.d.ts +0 -69
  167. package/dist/es/crypto/tea/tea.mjs +0 -185
  168. package/dist/es/date/index.d.ts +0 -547
  169. package/dist/es/date/index.mjs +0 -1179
  170. package/dist/es/desensitized/index.d.ts +0 -38
  171. package/dist/es/desensitized/index.mjs +0 -69
  172. package/dist/es/device/index.d.ts +0 -67
  173. package/dist/es/device/index.mjs +0 -137
  174. package/dist/es/dom/index.d.ts +0 -57
  175. package/dist/es/dom/index.mjs +0 -119
  176. package/dist/es/file/index.d.ts +0 -93
  177. package/dist/es/file/index.mjs +0 -317
  178. package/dist/es/function/index.d.ts +0 -23
  179. package/dist/es/function/index.mjs +0 -65
  180. package/dist/es/keycode/index.d.ts +0 -12
  181. package/dist/es/keycode/index.mjs +0 -30
  182. package/dist/es/math/index.d.ts +0 -66
  183. package/dist/es/math/index.mjs +0 -268
  184. package/dist/es/number/index.d.ts +0 -14
  185. package/dist/es/number/index.mjs +0 -28
  186. package/dist/es/object/index.d.ts +0 -83
  187. package/dist/es/object/index.mjs +0 -259
  188. package/dist/es/pagination/index.d.ts +0 -34
  189. package/dist/es/pagination/index.mjs +0 -125
  190. package/dist/es/random/index.d.ts +0 -15
  191. package/dist/es/random/index.mjs +0 -21
  192. package/dist/es/regexp/index.d.ts +0 -63
  193. package/dist/es/regexp/index.mjs +0 -89
  194. package/dist/es/storage/index.d.ts +0 -7
  195. package/dist/es/storage/index.mjs +0 -9
  196. package/dist/es/storage/localStorage.d.ts +0 -21
  197. package/dist/es/storage/localStorage.mjs +0 -32
  198. package/dist/es/storage/sessionStorage.d.ts +0 -21
  199. package/dist/es/storage/sessionStorage.mjs +0 -32
  200. package/dist/es/string/index.d.ts +0 -121
  201. package/dist/es/string/index.mjs +0 -339
  202. package/dist/es/url/index.d.ts +0 -118
  203. package/dist/es/url/index.mjs +0 -240
  204. package/dist/es/validate/index.d.ts +0 -228
  205. package/dist/es/validate/index.mjs +0 -431
  206. package/dist/es/weapp/index.d.ts +0 -57
  207. package/dist/es/weapp/index.mjs +0 -131
  208. package/dist/lib/index.full.cjs.js +0 -14264
  209. package/dist/lib/index.full.cjs.min.js +0 -69
  210. package/dist/lib/index.full.cjs.min.js.map +0 -1
  211. package/dist/lib/index.full.esm.js +0 -13910
  212. package/dist/lib/index.full.esm.min.js +0 -64
  213. package/dist/lib/index.full.esm.min.js.map +0 -1
@@ -1,203 +0,0 @@
1
- /**
2
- * 数组最小值
3
- * @param {Array} array 数组
4
- * @returns {Number} 返回最小值
5
- */
6
- export function arrayMin(array: any[]): number;
7
- /**
8
- * 数组最大值
9
- * @param {Array} array 数组
10
- * @returns {Number} 返回最大值
11
- */
12
- export function arrayMax(array: any[]): number;
13
- /**
14
- * 数组求和
15
- * @param {Array} array 数组
16
- * @returns {Number} 返回和
17
- */
18
- export function arraySum(array: any[]): number;
19
- /**
20
- * 数组求平均值
21
- * @param {Array} array 数组
22
- * @returns {Number} 返回平均数
23
- */
24
- export function arrayAvg(array: any[]): number;
25
- /**
26
- * 数组中是否包含指定的元素
27
- * @param {String|Number} value 元素
28
- * @param {Array} array 查找的数组
29
- * @returns {Boolean} 返回结果
30
- */
31
- export function inArray(value: string | number, array: any[]): boolean;
32
- /**
33
- * 比较两个数组是否相等
34
- * @param {Array} array1 数组1
35
- * @param {Array} array2 数组2
36
- * @returns {Boolean} 返回结果
37
- */
38
- export function arrayEquals(array1: any[], array2: any[]): boolean;
39
- /**
40
- * 生成指定长度的数组
41
- * @param {Number} length 长度,默认 0
42
- * @returns {Array} 返回数组
43
- */
44
- export function arrayCreate(length?: number): any[];
45
- /**
46
- * 数组指定位置添加元素
47
- * @description 如果数组为空,则在0位置添加元素
48
- * @param {Array} array 数组
49
- * @param {Number} index 下标位置,默认0
50
- * @param {*} value 添加的元素
51
- * @returns {Array} 返回操作后的数组
52
- */
53
- export function arrayInsert(array?: any[], index?: number, value?: any): any[];
54
- /**
55
- * 数组指定位置前面添加元素
56
- * @description 如果数组为空,则在0位置添加元素
57
- * @param {Array} array 数组
58
- * @param {Number} index 下标位置,默认0
59
- * @param {*} value 添加的元素
60
- * @returns {Array} 返回操作后的数组
61
- */
62
- export function arrayInsertBefore(array?: any[], index?: number, value?: any): any[];
63
- /**
64
- * 数组指定位置后面添加元素
65
- * @description 如果数组为空,则在0位置添加元素
66
- * @param {Array} array 数组
67
- * @param {Number} index 下标位置,默认0
68
- * @param {*} value 添加的元素
69
- * @returns {Array} 返回操作后的数组
70
- */
71
- export function arrayInsertAfter(array?: any[], index?: number, value?: any): any[];
72
- /**
73
- * 数组指定位置删除元素
74
- * @param {Array} array 数组
75
- * @param {Number} index 下标位置,默认0
76
- * @returns {Array} 返回操作后的数组
77
- */
78
- export function arrayRemove(array?: any[], index?: number): any[];
79
- /**
80
- * 数组指定位置前面删除元素
81
- * @param {Array} array 数组
82
- * @param {Number} index 下标位置,默认0
83
- * @returns {Array} 返回操作后的数组
84
- */
85
- export function arrayRemoveBefore(array?: any[], index?: number): any[];
86
- /**
87
- * 数组指定位置后面删除元素
88
- * @param {Array} array 数组
89
- * @param {Number} index 下标位置,默认0
90
- * @returns {Array} 返回操作后的数组
91
- */
92
- export function arrayRemoveAfter(array?: any[], index?: number): any[];
93
- /**
94
- * 数组置顶
95
- * @param {Array} array 数组
96
- * @param {Number} index 下标位置,默认0
97
- * @returns {Array} 返回操作后的数组
98
- */
99
- export function arrayTop(array?: any[], index?: number): any[];
100
- /**
101
- * 数组置尾
102
- * @param {Array} array 数组
103
- * @param {Number} index 下标位置,默认0
104
- * @returns {Array} 返回操作后的数组
105
- */
106
- export function arrayBottom(array?: any[], index?: number): any[];
107
- /**
108
- * 数组向上移动
109
- * @param {Array} array 数组
110
- * @param {Number} index 下标位置,默认0
111
- * @returns {Array} 返回操作后的数组
112
- */
113
- export function arrayUp(array?: any[], index?: number): any[];
114
- /**
115
- * 数组向下移动
116
- * @param {Array} array 数组
117
- * @param {Number} index 下标位置,默认0
118
- * @returns {Array} 返回操作后的数组
119
- */
120
- export function arrayDown(array?: any[], index?: number): any[];
121
- /**
122
- * 数组交换元素
123
- * @param {Array} array 数组
124
- * @param {Number} sourceIndex 原索引
125
- * @param {Number} targetIndex 目标索引
126
- * @returns {Array} 返回操作后的数组
127
- */
128
- export function arraySwap(array: any[], sourceIndex: number, targetIndex: number): any[];
129
- /**
130
- * 数组排序
131
- * @param {Array} array 数组
132
- * @param {Number} mode 排序模式,参考常量集合中 数组常量,默认是升序
133
- * @returns {Array} 返回操作后的数组
134
- */
135
- export function arraySort(array: any[], mode?: number): any[];
136
- /**
137
- * 数组属性混合排序
138
- * @description 排序默认为asc升序
139
- * @param {Array} array 数组
140
- * @param {Array} props 排序的属性
141
- * @returns {Array} 返回操作后的数组
142
- */
143
- export function arraySortBy(array: any[], props: any[]): any[];
144
- /**
145
- * 数组元素去重
146
- * @param {Array} array 数组
147
- * @returns {Array} 返回操作后的数组
148
- */
149
- export function arrayUnique(array: any[]): any[];
150
- /**
151
- * 数组打乱元素
152
- * @description 可以适用于一些抽奖人员列表打乱顺序
153
- * @param {Array} array 数组
154
- * @returns {Array} 返回操作后的数组
155
- */
156
- export function arrayShuffle(array: any[]): any[];
157
- /**
158
- * 普通数组转树形结构
159
- * @description 包含id和pid属性关系的一维数组,转为children的树形结构
160
- * @param {Array} array 数组
161
- * @param {Object} setting 配置项
162
- * @returns {Array} 返回树形节点
163
- */
164
- export function arrayToTree(array: any[], setting?: Object): any[];
165
- /**
166
- * 树形结构转普通数组
167
- * @param {Array} nodes 树形节点
168
- * @param {Object} setting 配置项
169
- * @returns {Array} 返回普通数组
170
- */
171
- export function treeToArray(nodes: any[], setting?: Object): any[];
172
- /**
173
- * 数组求并集
174
- * @description 数组1 和 数组2 合并一起的元素集合
175
- * @param {Array} array1 数组1
176
- * @param {Array} array2 数组2
177
- * @returns {Array} 返回数组
178
- */
179
- export function arrayUnion(array1: any[], array2: any[]): any[];
180
- /**
181
- * 数组求交集
182
- * @description 数组1 和 数组2 相同的元素集合
183
- * @param {Array} array1 数组1
184
- * @param {Array} array2 数组2
185
- * @returns {Array} 返回数组
186
- */
187
- export function arrayIntersect(array1: any[], array2: any[]): any[];
188
- /**
189
- * 数组求差集
190
- * @description 数组1 中不包含 数组2 的元素集合
191
- * @param {Array} array1 数组1
192
- * @param {Array} array2 数组2
193
- * @returns {Array} 返回数组
194
- */
195
- export function arrayDifference(array1: any[], array2: any[]): any[];
196
- /**
197
- * 数组求补集
198
- * @description 数组1 和 数组2 不相同的元素集合
199
- * @param {Array} array1 数组1
200
- * @param {Array} array2 数组2
201
- * @returns {Array} 返回数组
202
- */
203
- export function arrayComplement(array1: any[], array2: any[]): any[];
@@ -1,441 +0,0 @@
1
- import { SORT } from '../constants/sort.mjs';
2
- import { isNull, isObject, isEmpty } from '../validate/index.mjs';
3
-
4
- /* 数组计算 */
5
- /**
6
- * 数组最小值
7
- * @param {Array} array 数组
8
- * @returns {Number} 返回最小值
9
- */
10
- function arrayMin(array) {
11
- return Math.min.apply(null, array);
12
- }
13
- /**
14
- * 数组最大值
15
- * @param {Array} array 数组
16
- * @returns {Number} 返回最大值
17
- */
18
- function arrayMax(array) {
19
- return Math.max.apply(null, array);
20
- }
21
- /**
22
- * 数组求和
23
- * @param {Array} array 数组
24
- * @returns {Number} 返回和
25
- */
26
- function arraySum(array) {
27
- return array.reduce(function (pre, cur) {
28
- return pre + cur;
29
- });
30
- }
31
- /**
32
- * 数组求平均值
33
- * @param {Array} array 数组
34
- * @returns {Number} 返回平均数
35
- */
36
- function arrayAvg(array) {
37
- return arraySum(array) / array.length;
38
- }
39
- /* 数组比较 */
40
- /**
41
- * 数组中是否包含指定的元素
42
- * @param {String|Number} value 元素
43
- * @param {Array} array 查找的数组
44
- * @returns {Boolean} 返回结果
45
- */
46
- function inArray(value, array) {
47
- if (isNull(value))
48
- return false;
49
- return array.includes(value);
50
- }
51
- /**
52
- * 比较两个数组是否相等
53
- * @param {Array} array1 数组1
54
- * @param {Array} array2 数组2
55
- * @returns {Boolean} 返回结果
56
- */
57
- function arrayEquals(array1, array2) {
58
- if (array1 === array2)
59
- return true;
60
- if (array1.length !== array2.length)
61
- return false;
62
- return array1.every((v, i) => v === array2[i]);
63
- }
64
- /* 数组操作 */
65
- /**
66
- * 生成指定长度的数组
67
- * @param {Number} length 长度,默认 0
68
- * @returns {Array} 返回数组
69
- */
70
- function arrayCreate(length = 0) {
71
- return [...Array(length).keys()];
72
- }
73
- /**
74
- * 数组指定位置添加元素
75
- * @description 如果数组为空,则在0位置添加元素
76
- * @param {Array} array 数组
77
- * @param {Number} index 下标位置,默认0
78
- * @param {*} value 添加的元素
79
- * @returns {Array} 返回操作后的数组
80
- */
81
- function arrayInsert(array = [], index = 0, value = undefined) {
82
- if (index < 0)
83
- return array;
84
- if (array.length === 0) {
85
- array.push(value);
86
- }
87
- else {
88
- if (index > array.length - 1) {
89
- return array;
90
- }
91
- array.splice(index, 0, value);
92
- }
93
- return array;
94
- }
95
- /**
96
- * 数组指定位置前面添加元素
97
- * @description 如果数组为空,则在0位置添加元素
98
- * @param {Array} array 数组
99
- * @param {Number} index 下标位置,默认0
100
- * @param {*} value 添加的元素
101
- * @returns {Array} 返回操作后的数组
102
- */
103
- function arrayInsertBefore(array = [], index = 0, value = undefined) {
104
- if (index < 0)
105
- return array;
106
- if (array.length === 0) {
107
- array.push(value);
108
- }
109
- else {
110
- if (index > array.length - 1) {
111
- return array;
112
- }
113
- array.splice(index, 0, value);
114
- }
115
- return array;
116
- }
117
- /**
118
- * 数组指定位置后面添加元素
119
- * @description 如果数组为空,则在0位置添加元素
120
- * @param {Array} array 数组
121
- * @param {Number} index 下标位置,默认0
122
- * @param {*} value 添加的元素
123
- * @returns {Array} 返回操作后的数组
124
- */
125
- function arrayInsertAfter(array = [], index = 0, value = undefined) {
126
- if (index < 0)
127
- return array;
128
- if (array.length === 0) {
129
- array.push(value);
130
- }
131
- else {
132
- if (index > array.length - 1) {
133
- return array;
134
- }
135
- array.splice(index, 0, array.splice(index, 1, value)[0]);
136
- }
137
- return array;
138
- }
139
- /**
140
- * 数组指定位置删除元素
141
- * @param {Array} array 数组
142
- * @param {Number} index 下标位置,默认0
143
- * @returns {Array} 返回操作后的数组
144
- */
145
- function arrayRemove(array = [], index = 0) {
146
- if (index < 0 || index > array.length - 1)
147
- return array;
148
- array.splice(index, 1);
149
- return array;
150
- }
151
- /**
152
- * 数组指定位置前面删除元素
153
- * @param {Array} array 数组
154
- * @param {Number} index 下标位置,默认0
155
- * @returns {Array} 返回操作后的数组
156
- */
157
- function arrayRemoveBefore(array = [], index = 0) {
158
- if (index <= 0 || index > array.length - 1)
159
- return array;
160
- array.splice(index - 1, 1);
161
- return array;
162
- }
163
- /**
164
- * 数组指定位置后面删除元素
165
- * @param {Array} array 数组
166
- * @param {Number} index 下标位置,默认0
167
- * @returns {Array} 返回操作后的数组
168
- */
169
- function arrayRemoveAfter(array = [], index = 0) {
170
- if (index < 0 || index > array.length - 1)
171
- return array;
172
- array.splice(index + 1, 1);
173
- return array;
174
- }
175
- /**
176
- * 数组置顶
177
- * @param {Array} array 数组
178
- * @param {Number} index 下标位置,默认0
179
- * @returns {Array} 返回操作后的数组
180
- */
181
- function arrayTop(array = [], index = 0) {
182
- if (index < 0 || index > array.length - 1)
183
- return array;
184
- array.unshift(array.splice(index, 1)[0]);
185
- return array;
186
- }
187
- /**
188
- * 数组置尾
189
- * @param {Array} array 数组
190
- * @param {Number} index 下标位置,默认0
191
- * @returns {Array} 返回操作后的数组
192
- */
193
- function arrayBottom(array = [], index = 0) {
194
- if (index < 0 || index > array.length - 1)
195
- return array;
196
- array.push(array.splice(index, 1)[0]);
197
- return array;
198
- }
199
- /**
200
- * 数组向上移动
201
- * @param {Array} array 数组
202
- * @param {Number} index 下标位置,默认0
203
- * @returns {Array} 返回操作后的数组
204
- */
205
- function arrayUp(array = [], index = 0) {
206
- if (index < 0 || index > array.length - 1)
207
- return array;
208
- if (index > 0) {
209
- array.splice(index - 1, 0, array.splice(index, 1)[0]);
210
- }
211
- else {
212
- array.push(array.splice(index, 1)[0]);
213
- }
214
- return array;
215
- }
216
- /**
217
- * 数组向下移动
218
- * @param {Array} array 数组
219
- * @param {Number} index 下标位置,默认0
220
- * @returns {Array} 返回操作后的数组
221
- */
222
- function arrayDown(array = [], index = 0) {
223
- if (index < 0 || index > array.length - 1)
224
- return array;
225
- if (index < array.length - 1) {
226
- array.splice(index + 1, 0, array.splice(index, 1)[0]);
227
- }
228
- else {
229
- array.unshift(array.splice(index, 1)[0]);
230
- }
231
- return array;
232
- }
233
- /**
234
- * 数组交换元素
235
- * @param {Array} array 数组
236
- * @param {Number} sourceIndex 原索引
237
- * @param {Number} targetIndex 目标索引
238
- * @returns {Array} 返回操作后的数组
239
- */
240
- function arraySwap(array, sourceIndex, targetIndex) {
241
- if (sourceIndex < 0 || targetIndex < 0 || sourceIndex > array.length - 1 || targetIndex > array.length - 1) {
242
- return array;
243
- }
244
- [array[targetIndex], array[sourceIndex]] = [array[sourceIndex], array[targetIndex]];
245
- return array;
246
- }
247
- /**
248
- * 数组排序
249
- * @param {Array} array 数组
250
- * @param {Number} mode 排序模式,参考常量集合中 数组常量,默认是升序
251
- * @returns {Array} 返回操作后的数组
252
- */
253
- function arraySort(array, mode = SORT.ASC) {
254
- return array.sort((a, b) => {
255
- switch (mode) {
256
- // 升序
257
- case SORT.ASC:
258
- return a - b;
259
- // 降序
260
- case SORT.DESC:
261
- return b - a;
262
- // 随机
263
- case SORT.RANDOM:
264
- return Math.random() - 0.5;
265
- // 默认
266
- default:
267
- return array;
268
- }
269
- });
270
- }
271
- /**
272
- * 数组属性混合排序
273
- * @description 排序默认为asc升序
274
- * @param {Array} array 数组
275
- * @param {Array} props 排序的属性
276
- * @returns {Array} 返回操作后的数组
277
- */
278
- function arraySortBy(array, props) {
279
- return array.sort((a, b) => {
280
- for (let item of props) {
281
- // 排序配置
282
- let prop = "", order = "asc";
283
- if (isObject(item)) {
284
- prop = item.prop;
285
- order = item.order || "asc";
286
- }
287
- else {
288
- prop = item;
289
- order = "asc";
290
- }
291
- // 排序逻辑
292
- if (a[prop] < b[prop]) {
293
- return order === "asc" ? -1 : 1;
294
- }
295
- if (a[prop] > b[prop]) {
296
- return order === "asc" ? 1 : -1;
297
- }
298
- }
299
- return 0;
300
- });
301
- }
302
- /**
303
- * 数组元素去重
304
- * @param {Array} array 数组
305
- * @returns {Array} 返回操作后的数组
306
- */
307
- function arrayUnique(array) {
308
- if (isEmpty(array))
309
- return [];
310
- return Array.from(new Set(array));
311
- }
312
- /**
313
- * 数组打乱元素
314
- * @description 可以适用于一些抽奖人员列表打乱顺序
315
- * @param {Array} array 数组
316
- * @returns {Array} 返回操作后的数组
317
- */
318
- function arrayShuffle(array) {
319
- for (let i = 1; i < array.length; i++) {
320
- const random = Math.floor(Math.random() * (i + 1));
321
- [array[random], array[i]] = [array[i], array[random]];
322
- }
323
- return array;
324
- }
325
- /* 数组转换 */
326
- /**
327
- * 普通数组转树形结构
328
- * @description 包含id和pid属性关系的一维数组,转为children的树形结构
329
- * @param {Array} array 数组
330
- * @param {Object} setting 配置项
331
- * @returns {Array} 返回树形节点
332
- */
333
- function arrayToTree(array, setting = { key: "id", parentKey: "pid", childrenKey: "children" }) {
334
- let key = setting.key, parentKey = setting.parentKey, childrenKey = setting.childrenKey;
335
- // 数组或者key是否为空
336
- if (!array || array.length === 0 || !key || key === "")
337
- return [];
338
- // 获得子节点方法
339
- const nodeChildren = function (node, childrenKey, newChildren) {
340
- if (!node) {
341
- return null;
342
- }
343
- if (typeof newChildren !== "undefined") {
344
- node[childrenKey] = newChildren;
345
- }
346
- return node[childrenKey];
347
- };
348
- // 声明变量
349
- let result = [];
350
- let tempMap = {};
351
- for (let i = 0; i < array.length; i++) {
352
- // 如果源数据数组中有children,则需要删除掉,否则会导致和之前的children合并
353
- array[i][childrenKey] && delete array[i][childrenKey];
354
- tempMap[array[i][key]] = array[i];
355
- }
356
- for (let i = 0; i < array.length; i++) {
357
- let parent = tempMap[array[i][parentKey]];
358
- if (parent && array[i][key] !== array[i][parentKey]) {
359
- let children = nodeChildren(parent, childrenKey);
360
- if (!children) {
361
- children = nodeChildren(parent, childrenKey, []);
362
- }
363
- children.push(array[i]);
364
- }
365
- else {
366
- result.push(array[i]);
367
- }
368
- }
369
- // 返回结果
370
- return result;
371
- }
372
- /**
373
- * 树形结构转普通数组
374
- * @param {Array} nodes 树形节点
375
- * @param {Object} setting 配置项
376
- * @returns {Array} 返回普通数组
377
- */
378
- function treeToArray(nodes, setting = { childrenKey: "children" }) {
379
- let childrenKey = setting.childrenKey;
380
- let result = [];
381
- for (let node of nodes) {
382
- // 删除掉多余空的children
383
- if (node[childrenKey] && !node[childrenKey].length) {
384
- delete node[childrenKey];
385
- }
386
- result.push(node);
387
- // 继续执行
388
- if (node[childrenKey] && node[childrenKey].length) {
389
- let array = treeToArray(node[childrenKey], setting);
390
- array && result.push(...array);
391
- }
392
- }
393
- // 返回结果
394
- return result;
395
- }
396
- /* 数组求并集,交集,差集等 */
397
- /**
398
- * 数组求并集
399
- * @description 数组1 和 数组2 合并一起的元素集合
400
- * @param {Array} array1 数组1
401
- * @param {Array} array2 数组2
402
- * @returns {Array} 返回数组
403
- */
404
- function arrayUnion(array1, array2) {
405
- return [...new Set(array1.concat(array2))];
406
- }
407
- /**
408
- * 数组求交集
409
- * @description 数组1 和 数组2 相同的元素集合
410
- * @param {Array} array1 数组1
411
- * @param {Array} array2 数组2
412
- * @returns {Array} 返回数组
413
- */
414
- function arrayIntersect(array1, array2) {
415
- return [...new Set(array1)].filter((item) => array2.includes(item));
416
- }
417
- /**
418
- * 数组求差集
419
- * @description 数组1 中不包含 数组2 的元素集合
420
- * @param {Array} array1 数组1
421
- * @param {Array} array2 数组2
422
- * @returns {Array} 返回数组
423
- */
424
- function arrayDifference(array1, array2) {
425
- return [...new Set(array1)].filter((item) => !array2.includes(item));
426
- }
427
- /**
428
- * 数组求补集
429
- * @description 数组1 和 数组2 不相同的元素集合
430
- * @param {Array} array1 数组1
431
- * @param {Array} array2 数组2
432
- * @returns {Array} 返回数组
433
- */
434
- function arrayComplement(array1, array2) {
435
- return [
436
- ...[...new Set(array1)].filter((item) => !array2.includes(item)),
437
- ...[...new Set(array2)].filter((item) => !array1.includes(item)),
438
- ];
439
- }
440
-
441
- export { arrayAvg, arrayBottom, arrayComplement, arrayCreate, arrayDifference, arrayDown, arrayEquals, arrayInsert, arrayInsertAfter, arrayInsertBefore, arrayIntersect, arrayMax, arrayMin, arrayRemove, arrayRemoveAfter, arrayRemoveBefore, arrayShuffle, arraySort, arraySortBy, arraySum, arraySwap, arrayToTree, arrayTop, arrayUnion, arrayUnique, arrayUp, inArray, treeToArray };
@@ -1,29 +0,0 @@
1
- /**
2
- * 获得剪切板数据
3
- * @description 获得的剪切板的数据是会返回多个可用的MIME类型,比如是纯文本就返回一个['text/plain'],是复制的html则会返回两个可用的['text/plain','text/html'],是复制的图片则是['image/png']
4
- * @returns {Promise} 返回剪切板的数据,是数组形式,如果是文本则是字符串,否则是blob数据
5
- */
6
- export function getClipboard(): Promise<any>;
7
- /**
8
- * 获得剪切板文本
9
- * @returns {Promise} 返回剪切板文本
10
- */
11
- export function getClipboardText(): Promise<any>;
12
- /**
13
- * 设置剪切板数据
14
- * @description 可以设置文本或者blob类型的数据
15
- * @param {String,Blob} data 写入的数据,可以是文本或blob数据
16
- * @returns {Promise} 返回结果
17
- */
18
- export function setClipboard(data: any): Promise<any>;
19
- /**
20
- * 设置剪切板文本
21
- * @param {String} text 写入的文本
22
- * @returns {Promise} 返回结果
23
- */
24
- export function setClipboardText(text: string): Promise<any>;
25
- /**
26
- * 清空剪切板
27
- * @returns {Promise} 返回结果
28
- */
29
- export function clearClipboard(): Promise<any>;