@tanwan/utils 1.0.0 → 1.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.
Files changed (425) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/addClass.cjs +19 -0
  3. package/dist/addClass.d.cts +16 -0
  4. package/dist/addClass.d.ts +17 -0
  5. package/dist/addClass.js +19 -0
  6. package/dist/{string/camelCase.cjs → camelCase.cjs} +0 -1
  7. package/dist/{string/camelCase.d.cts → camelCase.d.cts} +1 -2
  8. package/dist/{string/camelCase.d.ts → camelCase.d.ts} +1 -2
  9. package/dist/{string/camelCase.js → camelCase.js} +0 -3
  10. package/dist/{string/capitalize.cjs → capitalize.cjs} +1 -1
  11. package/dist/{string/capitalize.d.cts → capitalize.d.cts} +2 -3
  12. package/dist/{string/capitalize.d.ts → capitalize.d.ts} +2 -3
  13. package/dist/{string/capitalize.js → capitalize.js} +1 -3
  14. package/dist/{array/chunk.cjs → chunk.cjs} +1 -1
  15. package/dist/{array/chunk.d.cts → chunk.d.cts} +2 -3
  16. package/dist/{array/chunk.d.ts → chunk.d.ts} +2 -3
  17. package/dist/{array/chunk.js → chunk.js} +1 -3
  18. package/dist/{number/clamp.cjs → clamp.cjs} +1 -1
  19. package/dist/{number/clamp.d.cts → clamp.d.cts} +2 -3
  20. package/dist/{number/clamp.d.ts → clamp.d.ts} +2 -3
  21. package/dist/{number/clamp.js → clamp.js} +1 -3
  22. package/dist/convertCurrencyToChinese.cjs +56 -0
  23. package/dist/convertCurrencyToChinese.d.cts +18 -0
  24. package/dist/convertCurrencyToChinese.d.ts +19 -0
  25. package/dist/convertCurrencyToChinese.js +56 -0
  26. package/dist/copyToClipboard.cjs +38 -0
  27. package/dist/copyToClipboard.d.cts +17 -0
  28. package/dist/copyToClipboard.d.ts +18 -0
  29. package/dist/copyToClipboard.js +38 -0
  30. package/dist/createElement.cjs +27 -0
  31. package/dist/createElement.d.cts +21 -0
  32. package/dist/createElement.d.ts +22 -0
  33. package/dist/createElement.js +27 -0
  34. package/dist/{function/debounce.cjs → debounce.cjs} +1 -1
  35. package/dist/{function/debounce.d.cts → debounce.d.cts} +2 -3
  36. package/dist/{function/debounce.d.ts → debounce.d.ts} +2 -3
  37. package/dist/{function/debounce.js → debounce.js} +1 -3
  38. package/dist/debounceSubmit.cjs +34 -0
  39. package/dist/debounceSubmit.d.cts +22 -0
  40. package/dist/debounceSubmit.d.ts +23 -0
  41. package/dist/debounceSubmit.js +34 -0
  42. package/dist/decodeBase64.cjs +19 -0
  43. package/dist/decodeBase64.d.cts +16 -0
  44. package/dist/decodeBase64.d.ts +17 -0
  45. package/dist/decodeBase64.js +19 -0
  46. package/dist/{base/deepClone.cjs → deepClone.cjs} +3 -3
  47. package/dist/{base/deepClone.d.cts → deepClone.d.cts} +2 -3
  48. package/dist/{base/deepClone.d.ts → deepClone.d.ts} +2 -3
  49. package/dist/{base/deepClone.js → deepClone.js} +1 -3
  50. package/dist/deepMerge.cjs +39 -0
  51. package/dist/deepMerge.d.cts +25 -0
  52. package/dist/deepMerge.d.ts +26 -0
  53. package/dist/deepMerge.js +39 -0
  54. package/dist/delay.cjs +8 -0
  55. package/dist/delay.d.cts +18 -0
  56. package/dist/delay.d.ts +19 -0
  57. package/dist/delay.js +8 -0
  58. package/dist/difference.cjs +24 -0
  59. package/dist/difference.d.cts +20 -0
  60. package/dist/difference.d.ts +21 -0
  61. package/dist/difference.js +24 -0
  62. package/dist/downloadFile.cjs +31 -0
  63. package/dist/downloadFile.d.cts +20 -0
  64. package/dist/downloadFile.d.ts +21 -0
  65. package/dist/downloadFile.js +31 -0
  66. package/dist/encodeBase64.cjs +20 -0
  67. package/dist/encodeBase64.d.cts +17 -0
  68. package/dist/encodeBase64.d.ts +18 -0
  69. package/dist/encodeBase64.js +20 -0
  70. package/dist/{array/flatten.cjs → flatten.cjs} +1 -1
  71. package/dist/{array/flatten.d.cts → flatten.d.cts} +2 -3
  72. package/dist/{array/flatten.d.ts → flatten.d.ts} +2 -3
  73. package/dist/{array/flatten.js → flatten.js} +1 -3
  74. package/dist/formatBankCard.cjs +19 -0
  75. package/dist/formatBankCard.d.cts +16 -0
  76. package/dist/formatBankCard.d.ts +17 -0
  77. package/dist/formatBankCard.js +19 -0
  78. package/dist/formatCurrency.cjs +7 -0
  79. package/dist/formatCurrency.d.cts +27 -0
  80. package/dist/formatCurrency.d.ts +28 -0
  81. package/dist/formatCurrency.js +7 -0
  82. package/dist/{date/formatDate.cjs → formatDate.cjs} +1 -1
  83. package/dist/{date/formatDate.d.cts → formatDate.d.cts} +2 -3
  84. package/dist/{date/formatDate.d.ts → formatDate.d.ts} +2 -3
  85. package/dist/{date/formatDate.js → formatDate.js} +1 -3
  86. package/dist/formatFileSize.cjs +33 -0
  87. package/dist/formatFileSize.d.cts +19 -0
  88. package/dist/formatFileSize.d.ts +20 -0
  89. package/dist/formatFileSize.js +33 -0
  90. package/dist/formatIdCard.cjs +21 -0
  91. package/dist/formatIdCard.d.cts +17 -0
  92. package/dist/formatIdCard.d.ts +18 -0
  93. package/dist/formatIdCard.js +21 -0
  94. package/dist/formatPhone.cjs +21 -0
  95. package/dist/formatPhone.d.cts +17 -0
  96. package/dist/formatPhone.d.ts +18 -0
  97. package/dist/formatPhone.js +21 -0
  98. package/dist/{number/formatThousands.cjs → formatThousands.cjs} +1 -1
  99. package/dist/{number/formatThousands.d.cts → formatThousands.d.cts} +2 -3
  100. package/dist/{number/formatThousands.d.ts → formatThousands.d.ts} +2 -3
  101. package/dist/{number/formatThousands.js → formatThousands.js} +1 -3
  102. package/dist/generateCode.cjs +29 -0
  103. package/dist/generateCode.d.cts +19 -0
  104. package/dist/generateCode.d.ts +20 -0
  105. package/dist/generateCode.js +29 -0
  106. package/dist/getAge.cjs +30 -0
  107. package/dist/getAge.d.cts +18 -0
  108. package/dist/getAge.d.ts +19 -0
  109. package/dist/getAge.js +30 -0
  110. package/dist/getByPath.cjs +29 -0
  111. package/dist/getByPath.d.cts +20 -0
  112. package/dist/getByPath.d.ts +21 -0
  113. package/dist/getByPath.js +29 -0
  114. package/dist/getCssVar.cjs +22 -0
  115. package/dist/getCssVar.d.cts +18 -0
  116. package/dist/getCssVar.d.ts +19 -0
  117. package/dist/getCssVar.js +22 -0
  118. package/dist/{date/getRelativeTime.cjs → getRelativeTime.cjs} +1 -1
  119. package/dist/{date/getRelativeTime.d.cts → getRelativeTime.d.cts} +2 -3
  120. package/dist/{date/getRelativeTime.d.ts → getRelativeTime.d.ts} +2 -3
  121. package/dist/{date/getRelativeTime.js → getRelativeTime.js} +1 -3
  122. package/dist/getScrollTop.cjs +28 -0
  123. package/dist/getScrollTop.d.cts +18 -0
  124. package/dist/getScrollTop.d.ts +19 -0
  125. package/dist/getScrollTop.js +28 -0
  126. package/dist/getStorage.cjs +27 -0
  127. package/dist/getStorage.d.cts +18 -0
  128. package/dist/getStorage.d.ts +19 -0
  129. package/dist/getStorage.js +27 -0
  130. package/dist/getStyle.cjs +20 -0
  131. package/dist/getStyle.d.cts +17 -0
  132. package/dist/getStyle.d.ts +18 -0
  133. package/dist/getStyle.js +20 -0
  134. package/dist/getTextWidth.cjs +26 -0
  135. package/dist/getTextWidth.d.cts +16 -0
  136. package/dist/getTextWidth.d.ts +17 -0
  137. package/dist/getTextWidth.js +26 -0
  138. package/dist/groupBy.cjs +36 -0
  139. package/dist/groupBy.d.cts +26 -0
  140. package/dist/groupBy.d.ts +27 -0
  141. package/dist/groupBy.js +36 -0
  142. package/dist/hasClass.cjs +19 -0
  143. package/dist/hasClass.d.cts +16 -0
  144. package/dist/hasClass.d.ts +17 -0
  145. package/dist/hasClass.js +19 -0
  146. package/dist/index.cjs +180 -36
  147. package/dist/index.d.cts +91 -19
  148. package/dist/index.d.ts +91 -19
  149. package/dist/index.iife.js +1 -1
  150. package/dist/index.js +91 -19
  151. package/dist/insertAfter.cjs +19 -0
  152. package/dist/insertAfter.d.cts +15 -0
  153. package/dist/insertAfter.d.ts +16 -0
  154. package/dist/insertAfter.js +19 -0
  155. package/dist/intersection.cjs +24 -0
  156. package/dist/intersection.d.cts +20 -0
  157. package/dist/intersection.d.ts +21 -0
  158. package/dist/intersection.js +24 -0
  159. package/dist/invert.cjs +21 -0
  160. package/dist/invert.d.cts +16 -0
  161. package/dist/invert.d.ts +17 -0
  162. package/dist/invert.js +21 -0
  163. package/dist/{base/isArray.cjs → isArray.cjs} +1 -1
  164. package/dist/{base/isArray.d.cts → isArray.d.cts} +2 -3
  165. package/dist/{base/isArray.d.ts → isArray.d.ts} +2 -3
  166. package/dist/{base/isArray.js → isArray.js} +1 -3
  167. package/dist/isBrowser.cjs +17 -0
  168. package/dist/isBrowser.d.cts +14 -0
  169. package/dist/isBrowser.d.ts +15 -0
  170. package/dist/isBrowser.js +17 -0
  171. package/dist/isDate.cjs +18 -0
  172. package/dist/isDate.d.cts +15 -0
  173. package/dist/isDate.d.ts +16 -0
  174. package/dist/isDate.js +18 -0
  175. package/dist/isEmpty.cjs +42 -0
  176. package/dist/isEmpty.d.cts +33 -0
  177. package/dist/isEmpty.d.ts +34 -0
  178. package/dist/isEmpty.js +42 -0
  179. package/dist/isFunction.cjs +19 -0
  180. package/dist/isFunction.d.cts +16 -0
  181. package/dist/isFunction.d.ts +17 -0
  182. package/dist/isFunction.js +19 -0
  183. package/dist/isInViewport.cjs +22 -0
  184. package/dist/isInViewport.d.cts +17 -0
  185. package/dist/isInViewport.d.ts +18 -0
  186. package/dist/isInViewport.js +22 -0
  187. package/dist/isNil.cjs +19 -0
  188. package/dist/isNil.d.cts +16 -0
  189. package/dist/isNil.d.ts +17 -0
  190. package/dist/isNil.js +19 -0
  191. package/dist/isNumber.cjs +19 -0
  192. package/dist/isNumber.d.cts +16 -0
  193. package/dist/isNumber.d.ts +17 -0
  194. package/dist/isNumber.js +19 -0
  195. package/dist/{base/isObject.cjs → isObject.cjs} +1 -1
  196. package/dist/{base/isObject.d.cts → isObject.d.cts} +2 -3
  197. package/dist/{base/isObject.d.ts → isObject.d.ts} +2 -3
  198. package/dist/{base/isObject.js → isObject.js} +1 -3
  199. package/dist/isPrimitive.cjs +21 -0
  200. package/dist/isPrimitive.d.cts +18 -0
  201. package/dist/isPrimitive.d.ts +19 -0
  202. package/dist/isPrimitive.js +21 -0
  203. package/dist/isPromise.cjs +18 -0
  204. package/dist/isPromise.d.cts +15 -0
  205. package/dist/isPromise.d.ts +16 -0
  206. package/dist/isPromise.js +18 -0
  207. package/dist/{base/isString.cjs → isString.cjs} +1 -1
  208. package/dist/{base/isString.d.cts → isString.d.cts} +2 -3
  209. package/dist/{base/isString.d.ts → isString.d.ts} +2 -3
  210. package/dist/{base/isString.js → isString.js} +1 -3
  211. package/dist/joinUrl.cjs +25 -0
  212. package/dist/joinUrl.d.cts +19 -0
  213. package/dist/joinUrl.d.ts +20 -0
  214. package/dist/joinUrl.js +25 -0
  215. package/dist/{string/kebabCase.d.cts → kebabCase.d.cts} +1 -2
  216. package/dist/{string/kebabCase.d.ts → kebabCase.d.ts} +1 -2
  217. package/dist/{string/kebabCase.js → kebabCase.js} +0 -2
  218. package/dist/lazyLoadImages.cjs +36 -0
  219. package/dist/lazyLoadImages.d.cts +19 -0
  220. package/dist/lazyLoadImages.d.ts +20 -0
  221. package/dist/lazyLoadImages.js +36 -0
  222. package/dist/listToTree.cjs +25 -0
  223. package/dist/listToTree.d.cts +32 -0
  224. package/dist/listToTree.d.ts +33 -0
  225. package/dist/listToTree.js +25 -0
  226. package/dist/mapValues.cjs +25 -0
  227. package/dist/mapValues.d.cts +20 -0
  228. package/dist/mapValues.d.ts +21 -0
  229. package/dist/mapValues.js +25 -0
  230. package/dist/maskString.cjs +28 -0
  231. package/dist/maskString.d.cts +24 -0
  232. package/dist/maskString.d.ts +25 -0
  233. package/dist/maskString.js +28 -0
  234. package/dist/memoize.cjs +32 -0
  235. package/dist/memoize.d.cts +22 -0
  236. package/dist/memoize.d.ts +23 -0
  237. package/dist/memoize.js +32 -0
  238. package/dist/off.cjs +22 -0
  239. package/dist/off.d.cts +19 -0
  240. package/dist/off.d.ts +20 -0
  241. package/dist/off.js +22 -0
  242. package/dist/omit.cjs +23 -0
  243. package/dist/omit.d.cts +17 -0
  244. package/dist/omit.d.ts +18 -0
  245. package/dist/omit.js +23 -0
  246. package/dist/on.cjs +21 -0
  247. package/dist/on.d.cts +18 -0
  248. package/dist/on.d.ts +19 -0
  249. package/dist/on.js +21 -0
  250. package/dist/once.cjs +31 -0
  251. package/dist/once.d.cts +20 -0
  252. package/dist/once.d.ts +21 -0
  253. package/dist/once.js +31 -0
  254. package/dist/parseQueryString.cjs +48 -0
  255. package/dist/parseQueryString.d.cts +21 -0
  256. package/dist/parseQueryString.d.ts +22 -0
  257. package/dist/parseQueryString.js +48 -0
  258. package/dist/pascalCase.cjs +18 -0
  259. package/dist/pascalCase.d.cts +15 -0
  260. package/dist/pascalCase.d.ts +16 -0
  261. package/dist/pascalCase.js +18 -0
  262. package/dist/pick.cjs +22 -0
  263. package/dist/pick.d.cts +17 -0
  264. package/dist/pick.d.ts +18 -0
  265. package/dist/pick.js +22 -0
  266. package/dist/{number/randomInt.cjs → randomInt.cjs} +1 -1
  267. package/dist/{number/randomInt.d.cts → randomInt.d.cts} +2 -3
  268. package/dist/{number/randomInt.d.ts → randomInt.d.ts} +2 -3
  269. package/dist/{number/randomInt.js → randomInt.js} +1 -3
  270. package/dist/range.cjs +27 -0
  271. package/dist/range.d.cts +20 -0
  272. package/dist/range.d.ts +21 -0
  273. package/dist/range.js +27 -0
  274. package/dist/removeClass.cjs +19 -0
  275. package/dist/removeClass.d.cts +16 -0
  276. package/dist/removeClass.d.ts +17 -0
  277. package/dist/removeClass.js +19 -0
  278. package/dist/removeElement.cjs +17 -0
  279. package/dist/removeElement.d.cts +14 -0
  280. package/dist/removeElement.d.ts +15 -0
  281. package/dist/removeElement.js +17 -0
  282. package/dist/removeStorage.cjs +19 -0
  283. package/dist/removeStorage.d.cts +14 -0
  284. package/dist/removeStorage.d.ts +15 -0
  285. package/dist/removeStorage.js +19 -0
  286. package/dist/retry.cjs +27 -0
  287. package/dist/retry.d.cts +17 -0
  288. package/dist/retry.d.ts +18 -0
  289. package/dist/retry.js +27 -0
  290. package/dist/sample.cjs +20 -0
  291. package/dist/sample.d.cts +16 -0
  292. package/dist/sample.d.ts +17 -0
  293. package/dist/sample.js +20 -0
  294. package/dist/scrollToElement.cjs +23 -0
  295. package/dist/scrollToElement.d.cts +16 -0
  296. package/dist/scrollToElement.d.ts +17 -0
  297. package/dist/scrollToElement.js +23 -0
  298. package/dist/setCssVar.cjs +22 -0
  299. package/dist/setCssVar.d.cts +18 -0
  300. package/dist/setCssVar.d.ts +19 -0
  301. package/dist/setCssVar.js +22 -0
  302. package/dist/setStorage.cjs +25 -0
  303. package/dist/setStorage.d.cts +17 -0
  304. package/dist/setStorage.d.ts +18 -0
  305. package/dist/setStorage.js +25 -0
  306. package/dist/setStyle.cjs +22 -0
  307. package/dist/setStyle.d.cts +19 -0
  308. package/dist/setStyle.d.ts +20 -0
  309. package/dist/setStyle.js +22 -0
  310. package/dist/{array/shuffle.cjs → shuffle.cjs} +1 -1
  311. package/dist/{array/shuffle.d.cts → shuffle.d.cts} +2 -3
  312. package/dist/{array/shuffle.d.ts → shuffle.d.ts} +2 -3
  313. package/dist/{array/shuffle.js → shuffle.js} +1 -3
  314. package/dist/snakeCase.cjs +18 -0
  315. package/dist/snakeCase.d.cts +15 -0
  316. package/dist/snakeCase.d.ts +16 -0
  317. package/dist/snakeCase.js +18 -0
  318. package/dist/sortBy.cjs +30 -0
  319. package/dist/sortBy.d.cts +20 -0
  320. package/dist/sortBy.d.ts +21 -0
  321. package/dist/sortBy.js +30 -0
  322. package/dist/stringifyQueryString.cjs +38 -0
  323. package/dist/stringifyQueryString.d.cts +21 -0
  324. package/dist/stringifyQueryString.d.ts +22 -0
  325. package/dist/stringifyQueryString.js +38 -0
  326. package/dist/{function/throttle.cjs → throttle.cjs} +1 -1
  327. package/dist/{function/throttle.d.cts → throttle.d.cts} +2 -3
  328. package/dist/{function/throttle.d.ts → throttle.d.ts} +2 -3
  329. package/dist/{function/throttle.js → throttle.js} +1 -3
  330. package/dist/toggleClass.cjs +22 -0
  331. package/dist/toggleClass.d.cts +19 -0
  332. package/dist/toggleClass.d.ts +20 -0
  333. package/dist/toggleClass.js +22 -0
  334. package/dist/treeFind.cjs +34 -0
  335. package/dist/treeFind.d.cts +25 -0
  336. package/dist/treeFind.d.ts +26 -0
  337. package/dist/treeFind.js +34 -0
  338. package/dist/treeToList.cjs +33 -0
  339. package/dist/treeToList.d.cts +24 -0
  340. package/dist/treeToList.d.ts +25 -0
  341. package/dist/treeToList.js +33 -0
  342. package/dist/truncate.cjs +23 -0
  343. package/dist/truncate.d.cts +19 -0
  344. package/dist/truncate.d.ts +20 -0
  345. package/dist/truncate.js +23 -0
  346. package/dist/uniqBy.cjs +30 -0
  347. package/dist/uniqBy.d.cts +20 -0
  348. package/dist/uniqBy.d.ts +21 -0
  349. package/dist/uniqBy.js +30 -0
  350. package/dist/{array/unique.cjs → unique.cjs} +1 -1
  351. package/dist/{array/unique.d.cts → unique.d.cts} +2 -3
  352. package/dist/{array/unique.d.ts → unique.d.ts} +2 -3
  353. package/dist/{array/unique.js → unique.js} +1 -3
  354. package/dist/uuid.cjs +23 -0
  355. package/dist/uuid.d.cts +16 -0
  356. package/dist/uuid.d.ts +17 -0
  357. package/dist/uuid.js +23 -0
  358. package/dist/validateEmail.cjs +19 -0
  359. package/dist/validateEmail.d.cts +16 -0
  360. package/dist/validateEmail.d.ts +17 -0
  361. package/dist/validateEmail.js +19 -0
  362. package/dist/validateIdCard.cjs +62 -0
  363. package/dist/validateIdCard.d.cts +15 -0
  364. package/dist/validateIdCard.d.ts +16 -0
  365. package/dist/validateIdCard.js +62 -0
  366. package/dist/validatePhone.cjs +19 -0
  367. package/dist/validatePhone.d.cts +16 -0
  368. package/dist/validatePhone.d.ts +17 -0
  369. package/dist/validatePhone.js +19 -0
  370. package/package.json +351 -58
  371. package/dist/array/chunk.d.cts.map +0 -1
  372. package/dist/array/chunk.d.ts.map +0 -1
  373. package/dist/array/chunk.js.map +0 -1
  374. package/dist/array/flatten.d.cts.map +0 -1
  375. package/dist/array/flatten.d.ts.map +0 -1
  376. package/dist/array/flatten.js.map +0 -1
  377. package/dist/array/shuffle.d.cts.map +0 -1
  378. package/dist/array/shuffle.d.ts.map +0 -1
  379. package/dist/array/shuffle.js.map +0 -1
  380. package/dist/array/unique.d.cts.map +0 -1
  381. package/dist/array/unique.d.ts.map +0 -1
  382. package/dist/array/unique.js.map +0 -1
  383. package/dist/base/deepClone.d.cts.map +0 -1
  384. package/dist/base/deepClone.d.ts.map +0 -1
  385. package/dist/base/deepClone.js.map +0 -1
  386. package/dist/base/isArray.d.cts.map +0 -1
  387. package/dist/base/isArray.d.ts.map +0 -1
  388. package/dist/base/isArray.js.map +0 -1
  389. package/dist/base/isObject.d.cts.map +0 -1
  390. package/dist/base/isObject.d.ts.map +0 -1
  391. package/dist/base/isObject.js.map +0 -1
  392. package/dist/base/isString.d.cts.map +0 -1
  393. package/dist/base/isString.d.ts.map +0 -1
  394. package/dist/base/isString.js.map +0 -1
  395. package/dist/date/formatDate.d.cts.map +0 -1
  396. package/dist/date/formatDate.d.ts.map +0 -1
  397. package/dist/date/formatDate.js.map +0 -1
  398. package/dist/date/getRelativeTime.d.cts.map +0 -1
  399. package/dist/date/getRelativeTime.d.ts.map +0 -1
  400. package/dist/date/getRelativeTime.js.map +0 -1
  401. package/dist/function/debounce.d.cts.map +0 -1
  402. package/dist/function/debounce.d.ts.map +0 -1
  403. package/dist/function/debounce.js.map +0 -1
  404. package/dist/function/throttle.d.cts.map +0 -1
  405. package/dist/function/throttle.d.ts.map +0 -1
  406. package/dist/function/throttle.js.map +0 -1
  407. package/dist/number/clamp.d.cts.map +0 -1
  408. package/dist/number/clamp.d.ts.map +0 -1
  409. package/dist/number/clamp.js.map +0 -1
  410. package/dist/number/formatThousands.d.cts.map +0 -1
  411. package/dist/number/formatThousands.d.ts.map +0 -1
  412. package/dist/number/formatThousands.js.map +0 -1
  413. package/dist/number/randomInt.d.cts.map +0 -1
  414. package/dist/number/randomInt.d.ts.map +0 -1
  415. package/dist/number/randomInt.js.map +0 -1
  416. package/dist/string/camelCase.d.cts.map +0 -1
  417. package/dist/string/camelCase.d.ts.map +0 -1
  418. package/dist/string/camelCase.js.map +0 -1
  419. package/dist/string/capitalize.d.cts.map +0 -1
  420. package/dist/string/capitalize.d.ts.map +0 -1
  421. package/dist/string/capitalize.js.map +0 -1
  422. package/dist/string/kebabCase.d.cts.map +0 -1
  423. package/dist/string/kebabCase.d.ts.map +0 -1
  424. package/dist/string/kebabCase.js.map +0 -1
  425. /package/dist/{string/kebabCase.cjs → kebabCase.cjs} +0 -0
@@ -0,0 +1,27 @@
1
+ //#region src/storage/getStorage/index.ts
2
+ /**
3
+ * 安全地从 localStorage 读取并解析 JSON
4
+ *
5
+ * @param key - 存储键名
6
+ * @param defaultValue - 读取失败或不存在时的默认值
7
+ * @returns 解析后的值或默认值
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getStorage from '@tanwan/utils/getStorage'
12
+ * localStorage.setItem('user', '{"name":"Alice"}')
13
+ * getStorage('user') // { name: 'Alice' }
14
+ * getStorage('notExist', 'default') // 'default'
15
+ * ```
16
+ */
17
+ function getStorage(key, defaultValue) {
18
+ try {
19
+ const raw = localStorage.getItem(key);
20
+ if (raw === null) return defaultValue ?? null;
21
+ return JSON.parse(raw);
22
+ } catch {
23
+ return defaultValue ?? null;
24
+ }
25
+ }
26
+ //#endregion
27
+ module.exports = getStorage;
@@ -0,0 +1,18 @@
1
+ //#region src/storage/getStorage/index.d.ts
2
+ /**
3
+ * 安全地从 localStorage 读取并解析 JSON
4
+ *
5
+ * @param key - 存储键名
6
+ * @param defaultValue - 读取失败或不存在时的默认值
7
+ * @returns 解析后的值或默认值
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getStorage from '@tanwan/utils/getStorage'
12
+ * localStorage.setItem('user', '{"name":"Alice"}')
13
+ * getStorage('user') // { name: 'Alice' }
14
+ * getStorage('notExist', 'default') // 'default'
15
+ * ```
16
+ */
17
+ declare function getStorage<T = unknown>(key: string, defaultValue?: T): T | null;
18
+ export = getStorage;
@@ -0,0 +1,19 @@
1
+ //#region src/storage/getStorage/index.d.ts
2
+ /**
3
+ * 安全地从 localStorage 读取并解析 JSON
4
+ *
5
+ * @param key - 存储键名
6
+ * @param defaultValue - 读取失败或不存在时的默认值
7
+ * @returns 解析后的值或默认值
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getStorage from '@tanwan/utils/getStorage'
12
+ * localStorage.setItem('user', '{"name":"Alice"}')
13
+ * getStorage('user') // { name: 'Alice' }
14
+ * getStorage('notExist', 'default') // 'default'
15
+ * ```
16
+ */
17
+ declare function getStorage<T = unknown>(key: string, defaultValue?: T): T | null;
18
+ //#endregion
19
+ export { getStorage as default };
@@ -0,0 +1,27 @@
1
+ //#region src/storage/getStorage/index.ts
2
+ /**
3
+ * 安全地从 localStorage 读取并解析 JSON
4
+ *
5
+ * @param key - 存储键名
6
+ * @param defaultValue - 读取失败或不存在时的默认值
7
+ * @returns 解析后的值或默认值
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getStorage from '@tanwan/utils/getStorage'
12
+ * localStorage.setItem('user', '{"name":"Alice"}')
13
+ * getStorage('user') // { name: 'Alice' }
14
+ * getStorage('notExist', 'default') // 'default'
15
+ * ```
16
+ */
17
+ function getStorage(key, defaultValue) {
18
+ try {
19
+ const raw = localStorage.getItem(key);
20
+ if (raw === null) return defaultValue ?? null;
21
+ return JSON.parse(raw);
22
+ } catch {
23
+ return defaultValue ?? null;
24
+ }
25
+ }
26
+ //#endregion
27
+ export { getStorage as default };
@@ -0,0 +1,20 @@
1
+ //#region src/dom/getStyle/index.ts
2
+ /**
3
+ * 获取元素的计算样式
4
+ *
5
+ * @param el - DOM 元素
6
+ * @param property - CSS 属性名(camelCase),如 `'fontSize'`
7
+ * @returns 计算后的样式值
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getStyle from '@tanwan/utils/getStyle'
12
+ * getStyle(el, 'fontSize') // '16px'
13
+ * getStyle(el, 'color') // 'rgb(0, 0, 0)'
14
+ * ```
15
+ */
16
+ function getStyle(el, property) {
17
+ return window.getComputedStyle(el).getPropertyValue(property);
18
+ }
19
+ //#endregion
20
+ module.exports = getStyle;
@@ -0,0 +1,17 @@
1
+ //#region src/dom/getStyle/index.d.ts
2
+ /**
3
+ * 获取元素的计算样式
4
+ *
5
+ * @param el - DOM 元素
6
+ * @param property - CSS 属性名(camelCase),如 `'fontSize'`
7
+ * @returns 计算后的样式值
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getStyle from '@tanwan/utils/getStyle'
12
+ * getStyle(el, 'fontSize') // '16px'
13
+ * getStyle(el, 'color') // 'rgb(0, 0, 0)'
14
+ * ```
15
+ */
16
+ declare function getStyle(el: Element, property: string): string;
17
+ export = getStyle;
@@ -0,0 +1,18 @@
1
+ //#region src/dom/getStyle/index.d.ts
2
+ /**
3
+ * 获取元素的计算样式
4
+ *
5
+ * @param el - DOM 元素
6
+ * @param property - CSS 属性名(camelCase),如 `'fontSize'`
7
+ * @returns 计算后的样式值
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getStyle from '@tanwan/utils/getStyle'
12
+ * getStyle(el, 'fontSize') // '16px'
13
+ * getStyle(el, 'color') // 'rgb(0, 0, 0)'
14
+ * ```
15
+ */
16
+ declare function getStyle(el: Element, property: string): string;
17
+ //#endregion
18
+ export { getStyle as default };
@@ -0,0 +1,20 @@
1
+ //#region src/dom/getStyle/index.ts
2
+ /**
3
+ * 获取元素的计算样式
4
+ *
5
+ * @param el - DOM 元素
6
+ * @param property - CSS 属性名(camelCase),如 `'fontSize'`
7
+ * @returns 计算后的样式值
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getStyle from '@tanwan/utils/getStyle'
12
+ * getStyle(el, 'fontSize') // '16px'
13
+ * getStyle(el, 'color') // 'rgb(0, 0, 0)'
14
+ * ```
15
+ */
16
+ function getStyle(el, property) {
17
+ return window.getComputedStyle(el).getPropertyValue(property);
18
+ }
19
+ //#endregion
20
+ export { getStyle as default };
@@ -0,0 +1,26 @@
1
+ //#region src/dom/getTextWidth/index.ts
2
+ let ctx = null;
3
+ function getContext() {
4
+ if (!ctx) ctx = document.createElement("canvas").getContext("2d");
5
+ return ctx;
6
+ }
7
+ /**
8
+ * 获取文本渲染宽度(canvas 测量)
9
+ *
10
+ * @param text - 待测量文本
11
+ * @param font - CSS font 字符串,如 `'bold 16px sans-serif'`
12
+ * @returns 文本宽度(px)
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import getTextWidth from '@tanwan/utils/getTextWidth'
17
+ * getTextWidth('Hello World', '16px Arial')
18
+ * ```
19
+ */
20
+ function getTextWidth(text, font) {
21
+ const context = getContext();
22
+ context.font = font;
23
+ return context.measureText(text).width;
24
+ }
25
+ //#endregion
26
+ module.exports = getTextWidth;
@@ -0,0 +1,16 @@
1
+ //#region src/dom/getTextWidth/index.d.ts
2
+ /**
3
+ * 获取文本渲染宽度(canvas 测量)
4
+ *
5
+ * @param text - 待测量文本
6
+ * @param font - CSS font 字符串,如 `'bold 16px sans-serif'`
7
+ * @returns 文本宽度(px)
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getTextWidth from '@tanwan/utils/getTextWidth'
12
+ * getTextWidth('Hello World', '16px Arial')
13
+ * ```
14
+ */
15
+ declare function getTextWidth(text: string, font: string): number;
16
+ export = getTextWidth;
@@ -0,0 +1,17 @@
1
+ //#region src/dom/getTextWidth/index.d.ts
2
+ /**
3
+ * 获取文本渲染宽度(canvas 测量)
4
+ *
5
+ * @param text - 待测量文本
6
+ * @param font - CSS font 字符串,如 `'bold 16px sans-serif'`
7
+ * @returns 文本宽度(px)
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import getTextWidth from '@tanwan/utils/getTextWidth'
12
+ * getTextWidth('Hello World', '16px Arial')
13
+ * ```
14
+ */
15
+ declare function getTextWidth(text: string, font: string): number;
16
+ //#endregion
17
+ export { getTextWidth as default };
@@ -0,0 +1,26 @@
1
+ //#region src/dom/getTextWidth/index.ts
2
+ let ctx = null;
3
+ function getContext() {
4
+ if (!ctx) ctx = document.createElement("canvas").getContext("2d");
5
+ return ctx;
6
+ }
7
+ /**
8
+ * 获取文本渲染宽度(canvas 测量)
9
+ *
10
+ * @param text - 待测量文本
11
+ * @param font - CSS font 字符串,如 `'bold 16px sans-serif'`
12
+ * @returns 文本宽度(px)
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import getTextWidth from '@tanwan/utils/getTextWidth'
17
+ * getTextWidth('Hello World', '16px Arial')
18
+ * ```
19
+ */
20
+ function getTextWidth(text, font) {
21
+ const context = getContext();
22
+ context.font = font;
23
+ return context.measureText(text).width;
24
+ }
25
+ //#endregion
26
+ export { getTextWidth as default };
@@ -0,0 +1,36 @@
1
+ //#region src/array/groupBy/index.ts
2
+ /**
3
+ * 根据指定的 key 或迭代函数对数组进行分组
4
+ *
5
+ * @param arr - 待分组的数组
6
+ * @param iteratee - 分组依据:可以是属性名或返回分组 key 的函数
7
+ * @returns 分组后的对象
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import groupBy from '@tanwan/utils/groupBy'
12
+ * // 按属性名分组
13
+ * groupBy([{ type: 'a', val: 1 }, { type: 'b', val: 2 }, { type: 'a', val: 3 }], 'type')
14
+ * // { a: [{ type: 'a', val: 1 }, { type: 'a', val: 3 }], b: [{ type: 'b', val: 2 }] }
15
+ *
16
+ * // 按函数分组
17
+ * groupBy([1.2, 2.3, 3.4], Math.floor)
18
+ * // { 1: [1.2], 2: [2.3], 3: [3.4] }
19
+ *
20
+ * // 按条件分组
21
+ * groupBy([1, 2, 3, 4, 5], (n) => (n % 2 === 0 ? 'even' : 'odd'))
22
+ * // { even: [2, 4], odd: [1, 3, 5] }
23
+ * ```
24
+ */
25
+ function groupBy(arr, iteratee) {
26
+ const result = {};
27
+ const getKey = typeof iteratee === "function" ? iteratee : (item) => String(item[iteratee]);
28
+ for (const item of arr) {
29
+ const key = String(getKey(item));
30
+ if (!result[key]) result[key] = [];
31
+ result[key].push(item);
32
+ }
33
+ return result;
34
+ }
35
+ //#endregion
36
+ module.exports = groupBy;
@@ -0,0 +1,26 @@
1
+ //#region src/array/groupBy/index.d.ts
2
+ /**
3
+ * 根据指定的 key 或迭代函数对数组进行分组
4
+ *
5
+ * @param arr - 待分组的数组
6
+ * @param iteratee - 分组依据:可以是属性名或返回分组 key 的函数
7
+ * @returns 分组后的对象
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import groupBy from '@tanwan/utils/groupBy'
12
+ * // 按属性名分组
13
+ * groupBy([{ type: 'a', val: 1 }, { type: 'b', val: 2 }, { type: 'a', val: 3 }], 'type')
14
+ * // { a: [{ type: 'a', val: 1 }, { type: 'a', val: 3 }], b: [{ type: 'b', val: 2 }] }
15
+ *
16
+ * // 按函数分组
17
+ * groupBy([1.2, 2.3, 3.4], Math.floor)
18
+ * // { 1: [1.2], 2: [2.3], 3: [3.4] }
19
+ *
20
+ * // 按条件分组
21
+ * groupBy([1, 2, 3, 4, 5], (n) => (n % 2 === 0 ? 'even' : 'odd'))
22
+ * // { even: [2, 4], odd: [1, 3, 5] }
23
+ * ```
24
+ */
25
+ declare function groupBy<T>(arr: T[], iteratee: keyof T | ((item: T) => string | number)): Record<string, T[]>;
26
+ export = groupBy;
@@ -0,0 +1,27 @@
1
+ //#region src/array/groupBy/index.d.ts
2
+ /**
3
+ * 根据指定的 key 或迭代函数对数组进行分组
4
+ *
5
+ * @param arr - 待分组的数组
6
+ * @param iteratee - 分组依据:可以是属性名或返回分组 key 的函数
7
+ * @returns 分组后的对象
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import groupBy from '@tanwan/utils/groupBy'
12
+ * // 按属性名分组
13
+ * groupBy([{ type: 'a', val: 1 }, { type: 'b', val: 2 }, { type: 'a', val: 3 }], 'type')
14
+ * // { a: [{ type: 'a', val: 1 }, { type: 'a', val: 3 }], b: [{ type: 'b', val: 2 }] }
15
+ *
16
+ * // 按函数分组
17
+ * groupBy([1.2, 2.3, 3.4], Math.floor)
18
+ * // { 1: [1.2], 2: [2.3], 3: [3.4] }
19
+ *
20
+ * // 按条件分组
21
+ * groupBy([1, 2, 3, 4, 5], (n) => (n % 2 === 0 ? 'even' : 'odd'))
22
+ * // { even: [2, 4], odd: [1, 3, 5] }
23
+ * ```
24
+ */
25
+ declare function groupBy<T>(arr: T[], iteratee: keyof T | ((item: T) => string | number)): Record<string, T[]>;
26
+ //#endregion
27
+ export { groupBy as default };
@@ -0,0 +1,36 @@
1
+ //#region src/array/groupBy/index.ts
2
+ /**
3
+ * 根据指定的 key 或迭代函数对数组进行分组
4
+ *
5
+ * @param arr - 待分组的数组
6
+ * @param iteratee - 分组依据:可以是属性名或返回分组 key 的函数
7
+ * @returns 分组后的对象
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import groupBy from '@tanwan/utils/groupBy'
12
+ * // 按属性名分组
13
+ * groupBy([{ type: 'a', val: 1 }, { type: 'b', val: 2 }, { type: 'a', val: 3 }], 'type')
14
+ * // { a: [{ type: 'a', val: 1 }, { type: 'a', val: 3 }], b: [{ type: 'b', val: 2 }] }
15
+ *
16
+ * // 按函数分组
17
+ * groupBy([1.2, 2.3, 3.4], Math.floor)
18
+ * // { 1: [1.2], 2: [2.3], 3: [3.4] }
19
+ *
20
+ * // 按条件分组
21
+ * groupBy([1, 2, 3, 4, 5], (n) => (n % 2 === 0 ? 'even' : 'odd'))
22
+ * // { even: [2, 4], odd: [1, 3, 5] }
23
+ * ```
24
+ */
25
+ function groupBy(arr, iteratee) {
26
+ const result = {};
27
+ const getKey = typeof iteratee === "function" ? iteratee : (item) => String(item[iteratee]);
28
+ for (const item of arr) {
29
+ const key = String(getKey(item));
30
+ if (!result[key]) result[key] = [];
31
+ result[key].push(item);
32
+ }
33
+ return result;
34
+ }
35
+ //#endregion
36
+ export { groupBy as default };
@@ -0,0 +1,19 @@
1
+ //#region src/dom/hasClass/index.ts
2
+ /**
3
+ * 判断元素是否包含指定 CSS class
4
+ *
5
+ * @param el - DOM 元素
6
+ * @param className - CSS class 名称
7
+ * @returns 是否包含
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import hasClass from '@tanwan/utils/hasClass'
12
+ * hasClass(document.getElementById('box'), 'active')
13
+ * ```
14
+ */
15
+ function hasClass(el, className) {
16
+ return el.classList.contains(className);
17
+ }
18
+ //#endregion
19
+ module.exports = hasClass;
@@ -0,0 +1,16 @@
1
+ //#region src/dom/hasClass/index.d.ts
2
+ /**
3
+ * 判断元素是否包含指定 CSS class
4
+ *
5
+ * @param el - DOM 元素
6
+ * @param className - CSS class 名称
7
+ * @returns 是否包含
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import hasClass from '@tanwan/utils/hasClass'
12
+ * hasClass(document.getElementById('box'), 'active')
13
+ * ```
14
+ */
15
+ declare function hasClass(el: Element, className: string): boolean;
16
+ export = hasClass;
@@ -0,0 +1,17 @@
1
+ //#region src/dom/hasClass/index.d.ts
2
+ /**
3
+ * 判断元素是否包含指定 CSS class
4
+ *
5
+ * @param el - DOM 元素
6
+ * @param className - CSS class 名称
7
+ * @returns 是否包含
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import hasClass from '@tanwan/utils/hasClass'
12
+ * hasClass(document.getElementById('box'), 'active')
13
+ * ```
14
+ */
15
+ declare function hasClass(el: Element, className: string): boolean;
16
+ //#endregion
17
+ export { hasClass as default };
@@ -0,0 +1,19 @@
1
+ //#region src/dom/hasClass/index.ts
2
+ /**
3
+ * 判断元素是否包含指定 CSS class
4
+ *
5
+ * @param el - DOM 元素
6
+ * @param className - CSS class 名称
7
+ * @returns 是否包含
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import hasClass from '@tanwan/utils/hasClass'
12
+ * hasClass(document.getElementById('box'), 'active')
13
+ * ```
14
+ */
15
+ function hasClass(el, className) {
16
+ return el.classList.contains(className);
17
+ }
18
+ //#endregion
19
+ export { hasClass as default };