zhiaiwan-utils 1.0.3

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 (761) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +92 -0
  3. package/dist/cjs/_internal/MapCache.js +29 -0
  4. package/dist/cjs/_internal/assignSources.js +24 -0
  5. package/dist/cjs/_internal/assignValue.js +20 -0
  6. package/dist/cjs/_internal/baseClone.js +190 -0
  7. package/dist/cjs/_internal/baseCollectionKeys.js +59 -0
  8. package/dist/cjs/_internal/baseDefaultsDeep.js +59 -0
  9. package/dist/cjs/_internal/baseDifference.js +25 -0
  10. package/dist/cjs/_internal/baseExtremum.js +34 -0
  11. package/dist/cjs/_internal/baseExtremumBy.js +63 -0
  12. package/dist/cjs/_internal/baseFilter.js +61 -0
  13. package/dist/cjs/_internal/baseFind.js +153 -0
  14. package/dist/cjs/_internal/baseFlatten.js +32 -0
  15. package/dist/cjs/_internal/baseForEach.js +92 -0
  16. package/dist/cjs/_internal/baseForOwn.js +33 -0
  17. package/dist/cjs/_internal/baseIsEqual.js +161 -0
  18. package/dist/cjs/_internal/baseIsMatch.js +80 -0
  19. package/dist/cjs/_internal/baseIteratee.js +46 -0
  20. package/dist/cjs/_internal/baseKeysIn.js +44 -0
  21. package/dist/cjs/_internal/baseMap.js +49 -0
  22. package/dist/cjs/_internal/baseMerge.js +139 -0
  23. package/dist/cjs/_internal/basePad.js +40 -0
  24. package/dist/cjs/_internal/basePath.js +85 -0
  25. package/dist/cjs/_internal/baseRange.js +18 -0
  26. package/dist/cjs/_internal/baseReduce.js +77 -0
  27. package/dist/cjs/_internal/baseSum.js +27 -0
  28. package/dist/cjs/_internal/baseTreeTraverse.js +225 -0
  29. package/dist/cjs/_internal/baseTrim.js +32 -0
  30. package/dist/cjs/_internal/baseUnset.js +49 -0
  31. package/dist/cjs/_internal/baseUpdate.js +65 -0
  32. package/dist/cjs/_internal/coerceToString.js +21 -0
  33. package/dist/cjs/_internal/colorMath.js +66 -0
  34. package/dist/cjs/_internal/compareValues.js +49 -0
  35. package/dist/cjs/_internal/composePartials.js +39 -0
  36. package/dist/cjs/_internal/createCompounder.js +24 -0
  37. package/dist/cjs/_internal/deburr.js +74 -0
  38. package/dist/cjs/_internal/flattenPaths.js +21 -0
  39. package/dist/cjs/_internal/htmlEscape.js +36 -0
  40. package/dist/cjs/_internal/identity.js +11 -0
  41. package/dist/cjs/_internal/index.js +21 -0
  42. package/dist/cjs/_internal/isArguments.js +31 -0
  43. package/dist/cjs/_internal/isArrayLike.js +15 -0
  44. package/dist/cjs/_internal/isArrayLikeObject.js +15 -0
  45. package/dist/cjs/_internal/isEmptyValue.js +11 -0
  46. package/dist/cjs/_internal/isFlattenable.js +15 -0
  47. package/dist/cjs/_internal/isIndex.js +23 -0
  48. package/dist/cjs/_internal/isLength.js +15 -0
  49. package/dist/cjs/_internal/isPlainObject.js +17 -0
  50. package/dist/cjs/_internal/mergeInto.js +33 -0
  51. package/dist/cjs/_internal/repeatString.js +15 -0
  52. package/dist/cjs/_internal/toInteger.js +24 -0
  53. package/dist/cjs/_internal/toLength.js +17 -0
  54. package/dist/cjs/_internal/toPath.js +29 -0
  55. package/dist/cjs/_internal/upperFirst.js +14 -0
  56. package/dist/cjs/_internal/validateFieldRule.js +138 -0
  57. package/dist/cjs/_internal/words.js +13 -0
  58. package/dist/cjs/array/chunk.js +37 -0
  59. package/dist/cjs/array/compact.js +34 -0
  60. package/dist/cjs/array/concat.js +37 -0
  61. package/dist/cjs/array/difference.js +44 -0
  62. package/dist/cjs/array/differenceBy.js +55 -0
  63. package/dist/cjs/array/drop.js +31 -0
  64. package/dist/cjs/array/each.js +23 -0
  65. package/dist/cjs/array/every.js +69 -0
  66. package/dist/cjs/array/filter.js +26 -0
  67. package/dist/cjs/array/find.js +29 -0
  68. package/dist/cjs/array/findIndex.js +24 -0
  69. package/dist/cjs/array/findLast.js +24 -0
  70. package/dist/cjs/array/findLastIndex.js +24 -0
  71. package/dist/cjs/array/flatten.js +27 -0
  72. package/dist/cjs/array/flattenDeep.js +28 -0
  73. package/dist/cjs/array/forEach.js +32 -0
  74. package/dist/cjs/array/forEachRight.js +29 -0
  75. package/dist/cjs/array/groupBy.js +67 -0
  76. package/dist/cjs/array/head.js +21 -0
  77. package/dist/cjs/array/includes.js +60 -0
  78. package/dist/cjs/array/index.js +92 -0
  79. package/dist/cjs/array/intersection.js +51 -0
  80. package/dist/cjs/array/keyBy.js +79 -0
  81. package/dist/cjs/array/last.js +23 -0
  82. package/dist/cjs/array/map.js +26 -0
  83. package/dist/cjs/array/max.js +25 -0
  84. package/dist/cjs/array/maxBy.js +27 -0
  85. package/dist/cjs/array/mean.js +27 -0
  86. package/dist/cjs/array/meanBy.js +30 -0
  87. package/dist/cjs/array/min.js +25 -0
  88. package/dist/cjs/array/minBy.js +27 -0
  89. package/dist/cjs/array/orderBy.js +95 -0
  90. package/dist/cjs/array/partition.js +68 -0
  91. package/dist/cjs/array/reduce.js +30 -0
  92. package/dist/cjs/array/reduceRight.js +30 -0
  93. package/dist/cjs/array/some.js +66 -0
  94. package/dist/cjs/array/sortBy.js +27 -0
  95. package/dist/cjs/array/sum.js +25 -0
  96. package/dist/cjs/array/sumBy.js +31 -0
  97. package/dist/cjs/array/take.js +31 -0
  98. package/dist/cjs/array/union.js +35 -0
  99. package/dist/cjs/array/uniq.js +33 -0
  100. package/dist/cjs/array/uniqBy.js +41 -0
  101. package/dist/cjs/array/without.js +30 -0
  102. package/dist/cjs/color/getCssVariable.js +31 -0
  103. package/dist/cjs/color/getThemePalette.js +56 -0
  104. package/dist/cjs/color/hexToRgb.js +26 -0
  105. package/dist/cjs/color/index.js +16 -0
  106. package/dist/cjs/color/rgbStringToHex.js +42 -0
  107. package/dist/cjs/color/rgbToHex.js +24 -0
  108. package/dist/cjs/convert/index.js +32 -0
  109. package/dist/cjs/convert/toArray.js +56 -0
  110. package/dist/cjs/convert/toFinite.js +34 -0
  111. package/dist/cjs/convert/toInteger.js +33 -0
  112. package/dist/cjs/convert/toLength.js +30 -0
  113. package/dist/cjs/convert/toLower.js +25 -0
  114. package/dist/cjs/convert/toNumber.js +55 -0
  115. package/dist/cjs/convert/toPairs.js +24 -0
  116. package/dist/cjs/convert/toPairsIn.js +32 -0
  117. package/dist/cjs/convert/toPath.js +23 -0
  118. package/dist/cjs/convert/toPlainObject.js +39 -0
  119. package/dist/cjs/convert/toSafeInteger.js +34 -0
  120. package/dist/cjs/convert/toString.js +34 -0
  121. package/dist/cjs/convert/toUpper.js +25 -0
  122. package/dist/cjs/function/after.js +32 -0
  123. package/dist/cjs/function/before.js +32 -0
  124. package/dist/cjs/function/curry.js +57 -0
  125. package/dist/cjs/function/debounce.js +107 -0
  126. package/dist/cjs/function/flow.js +51 -0
  127. package/dist/cjs/function/flowRight.js +46 -0
  128. package/dist/cjs/function/index.js +30 -0
  129. package/dist/cjs/function/memoize.js +26 -0
  130. package/dist/cjs/function/once.js +31 -0
  131. package/dist/cjs/function/partial.js +35 -0
  132. package/dist/cjs/function/partialRight.js +33 -0
  133. package/dist/cjs/function/throttle.js +20 -0
  134. package/dist/cjs/index.js +28 -0
  135. package/dist/cjs/object/assign.js +24 -0
  136. package/dist/cjs/object/clone.js +29 -0
  137. package/dist/cjs/object/cloneDeep.js +30 -0
  138. package/dist/cjs/object/cloneDeepWith.js +30 -0
  139. package/dist/cjs/object/cloneWith.js +30 -0
  140. package/dist/cjs/object/defaults.js +23 -0
  141. package/dist/cjs/object/defaultsDeep.js +44 -0
  142. package/dist/cjs/object/findKey.js +26 -0
  143. package/dist/cjs/object/findLastKey.js +26 -0
  144. package/dist/cjs/object/forIn.js +29 -0
  145. package/dist/cjs/object/forOwn.js +29 -0
  146. package/dist/cjs/object/fromPairs.js +28 -0
  147. package/dist/cjs/object/get.js +37 -0
  148. package/dist/cjs/object/has.js +39 -0
  149. package/dist/cjs/object/index.js +64 -0
  150. package/dist/cjs/object/invert.js +34 -0
  151. package/dist/cjs/object/keys.js +25 -0
  152. package/dist/cjs/object/mapKeys.js +37 -0
  153. package/dist/cjs/object/mapValues.js +37 -0
  154. package/dist/cjs/object/merge.js +29 -0
  155. package/dist/cjs/object/mergeWith.js +41 -0
  156. package/dist/cjs/object/omit.js +36 -0
  157. package/dist/cjs/object/omitBy.js +38 -0
  158. package/dist/cjs/object/pick.js +37 -0
  159. package/dist/cjs/object/pickBy.js +38 -0
  160. package/dist/cjs/object/set.js +67 -0
  161. package/dist/cjs/object/unset.js +28 -0
  162. package/dist/cjs/object/update.js +31 -0
  163. package/dist/cjs/object/updateWith.js +33 -0
  164. package/dist/cjs/object/values.js +25 -0
  165. package/dist/cjs/string/camelCase.js +37 -0
  166. package/dist/cjs/string/capitalize.js +25 -0
  167. package/dist/cjs/string/endsWith.js +36 -0
  168. package/dist/cjs/string/escape.js +26 -0
  169. package/dist/cjs/string/index.js +40 -0
  170. package/dist/cjs/string/kebabCase.js +27 -0
  171. package/dist/cjs/string/lowerCase.js +24 -0
  172. package/dist/cjs/string/pad.js +31 -0
  173. package/dist/cjs/string/padEnd.js +31 -0
  174. package/dist/cjs/string/padStart.js +31 -0
  175. package/dist/cjs/string/repeat.js +30 -0
  176. package/dist/cjs/string/snakeCase.js +27 -0
  177. package/dist/cjs/string/startsWith.js +34 -0
  178. package/dist/cjs/string/trim.js +30 -0
  179. package/dist/cjs/string/trimEnd.js +30 -0
  180. package/dist/cjs/string/trimStart.js +30 -0
  181. package/dist/cjs/string/unescape.js +26 -0
  182. package/dist/cjs/string/upperFirst.js +25 -0
  183. package/dist/cjs/tree/filterTreeNodes.js +51 -0
  184. package/dist/cjs/tree/findTreeNode.js +45 -0
  185. package/dist/cjs/tree/forEachTree.js +33 -0
  186. package/dist/cjs/tree/getParentNodes.js +49 -0
  187. package/dist/cjs/tree/getTreeDepth.js +38 -0
  188. package/dist/cjs/tree/index.js +30 -0
  189. package/dist/cjs/tree/mapTree.js +98 -0
  190. package/dist/cjs/tree/pruneTree.js +126 -0
  191. package/dist/cjs/tree/toFlatList.js +57 -0
  192. package/dist/cjs/tree/toTree.js +71 -0
  193. package/dist/cjs/tree/traverseTree.js +29 -0
  194. package/dist/cjs/tree/traverseTreeBfs.js +29 -0
  195. package/dist/cjs/util/clamp.js +56 -0
  196. package/dist/cjs/util/constant.js +21 -0
  197. package/dist/cjs/util/defaultTo.js +28 -0
  198. package/dist/cjs/util/defer.js +25 -0
  199. package/dist/cjs/util/delay.js +25 -0
  200. package/dist/cjs/util/identity.js +22 -0
  201. package/dist/cjs/util/inRange.js +41 -0
  202. package/dist/cjs/util/index.js +48 -0
  203. package/dist/cjs/util/iteratee.js +30 -0
  204. package/dist/cjs/util/matches.js +27 -0
  205. package/dist/cjs/util/matchesProperty.js +37 -0
  206. package/dist/cjs/util/negate.js +25 -0
  207. package/dist/cjs/util/noop.js +20 -0
  208. package/dist/cjs/util/now.js +20 -0
  209. package/dist/cjs/util/property.js +33 -0
  210. package/dist/cjs/util/random.js +71 -0
  211. package/dist/cjs/util/range.js +46 -0
  212. package/dist/cjs/util/size.js +47 -0
  213. package/dist/cjs/util/sleep.js +22 -0
  214. package/dist/cjs/util/times.js +41 -0
  215. package/dist/cjs/util/uniqueId.js +26 -0
  216. package/dist/cjs/util/validateFields.js +106 -0
  217. package/dist/cjs/verify/index.js +78 -0
  218. package/dist/cjs/verify/isArguments.js +25 -0
  219. package/dist/cjs/verify/isArray.js +21 -0
  220. package/dist/cjs/verify/isArrayBuffer.js +21 -0
  221. package/dist/cjs/verify/isArrayLike.js +31 -0
  222. package/dist/cjs/verify/isBoolean.js +21 -0
  223. package/dist/cjs/verify/isBuffer.js +23 -0
  224. package/dist/cjs/verify/isDate.js +21 -0
  225. package/dist/cjs/verify/isElement.js +26 -0
  226. package/dist/cjs/verify/isEmpty.js +44 -0
  227. package/dist/cjs/verify/isEqual.js +30 -0
  228. package/dist/cjs/verify/isEqualWith.js +31 -0
  229. package/dist/cjs/verify/isError.js +23 -0
  230. package/dist/cjs/verify/isFinite.js +28 -0
  231. package/dist/cjs/verify/isFunction.js +22 -0
  232. package/dist/cjs/verify/isInteger.js +22 -0
  233. package/dist/cjs/verify/isLength.js +26 -0
  234. package/dist/cjs/verify/isMap.js +21 -0
  235. package/dist/cjs/verify/isMatch.js +30 -0
  236. package/dist/cjs/verify/isMatchWith.js +31 -0
  237. package/dist/cjs/verify/isNaN.js +28 -0
  238. package/dist/cjs/verify/isNative.js +25 -0
  239. package/dist/cjs/verify/isNil.js +27 -0
  240. package/dist/cjs/verify/isNull.js +21 -0
  241. package/dist/cjs/verify/isNumber.js +24 -0
  242. package/dist/cjs/verify/isObject.js +26 -0
  243. package/dist/cjs/verify/isObjectLike.js +30 -0
  244. package/dist/cjs/verify/isPlainObject.js +25 -0
  245. package/dist/cjs/verify/isRegExp.js +21 -0
  246. package/dist/cjs/verify/isSafeInteger.js +30 -0
  247. package/dist/cjs/verify/isSet.js +21 -0
  248. package/dist/cjs/verify/isString.js +21 -0
  249. package/dist/cjs/verify/isSymbol.js +21 -0
  250. package/dist/cjs/verify/isTypedArray.js +38 -0
  251. package/dist/cjs/verify/isUndefined.js +21 -0
  252. package/dist/cjs/verify/isWeakMap.js +21 -0
  253. package/dist/cjs/verify/isWeakSet.js +21 -0
  254. package/dist/cjs/version.js +17 -0
  255. package/dist/esm/_internal/MapCache.js +26 -0
  256. package/dist/esm/_internal/assignSources.js +21 -0
  257. package/dist/esm/_internal/assignValue.js +17 -0
  258. package/dist/esm/_internal/baseClone.js +187 -0
  259. package/dist/esm/_internal/baseCollectionKeys.js +52 -0
  260. package/dist/esm/_internal/baseDefaultsDeep.js +53 -0
  261. package/dist/esm/_internal/baseDifference.js +22 -0
  262. package/dist/esm/_internal/baseExtremum.js +28 -0
  263. package/dist/esm/_internal/baseExtremumBy.js +57 -0
  264. package/dist/esm/_internal/baseFilter.js +55 -0
  265. package/dist/esm/_internal/baseFind.js +145 -0
  266. package/dist/esm/_internal/baseFlatten.js +26 -0
  267. package/dist/esm/_internal/baseForEach.js +86 -0
  268. package/dist/esm/_internal/baseForOwn.js +26 -0
  269. package/dist/esm/_internal/baseIsEqual.js +158 -0
  270. package/dist/esm/_internal/baseIsMatch.js +74 -0
  271. package/dist/esm/_internal/baseIteratee.js +40 -0
  272. package/dist/esm/_internal/baseKeysIn.js +38 -0
  273. package/dist/esm/_internal/baseMap.js +43 -0
  274. package/dist/esm/_internal/baseMerge.js +132 -0
  275. package/dist/esm/_internal/basePad.js +34 -0
  276. package/dist/esm/_internal/basePath.js +77 -0
  277. package/dist/esm/_internal/baseRange.js +15 -0
  278. package/dist/esm/_internal/baseReduce.js +71 -0
  279. package/dist/esm/_internal/baseSum.js +21 -0
  280. package/dist/esm/_internal/baseTreeTraverse.js +219 -0
  281. package/dist/esm/_internal/baseTrim.js +29 -0
  282. package/dist/esm/_internal/baseUnset.js +43 -0
  283. package/dist/esm/_internal/baseUpdate.js +59 -0
  284. package/dist/esm/_internal/coerceToString.js +18 -0
  285. package/dist/esm/_internal/colorMath.js +56 -0
  286. package/dist/esm/_internal/compareValues.js +45 -0
  287. package/dist/esm/_internal/composePartials.js +35 -0
  288. package/dist/esm/_internal/createCompounder.js +18 -0
  289. package/dist/esm/_internal/deburr.js +71 -0
  290. package/dist/esm/_internal/flattenPaths.js +18 -0
  291. package/dist/esm/_internal/htmlEscape.js +32 -0
  292. package/dist/esm/_internal/identity.js +8 -0
  293. package/dist/esm/_internal/index.js +8 -0
  294. package/dist/esm/_internal/isArguments.js +28 -0
  295. package/dist/esm/_internal/isArrayLike.js +9 -0
  296. package/dist/esm/_internal/isArrayLikeObject.js +9 -0
  297. package/dist/esm/_internal/isEmptyValue.js +8 -0
  298. package/dist/esm/_internal/isFlattenable.js +9 -0
  299. package/dist/esm/_internal/isIndex.js +20 -0
  300. package/dist/esm/_internal/isLength.js +12 -0
  301. package/dist/esm/_internal/isPlainObject.js +14 -0
  302. package/dist/esm/_internal/mergeInto.js +27 -0
  303. package/dist/esm/_internal/repeatString.js +12 -0
  304. package/dist/esm/_internal/toInteger.js +21 -0
  305. package/dist/esm/_internal/toLength.js +11 -0
  306. package/dist/esm/_internal/toPath.js +26 -0
  307. package/dist/esm/_internal/upperFirst.js +11 -0
  308. package/dist/esm/_internal/validateFieldRule.js +132 -0
  309. package/dist/esm/_internal/words.js +10 -0
  310. package/dist/esm/array/chunk.js +31 -0
  311. package/dist/esm/array/compact.js +31 -0
  312. package/dist/esm/array/concat.js +34 -0
  313. package/dist/esm/array/difference.js +38 -0
  314. package/dist/esm/array/differenceBy.js +49 -0
  315. package/dist/esm/array/drop.js +25 -0
  316. package/dist/esm/array/each.js +18 -0
  317. package/dist/esm/array/every.js +63 -0
  318. package/dist/esm/array/filter.js +20 -0
  319. package/dist/esm/array/find.js +26 -0
  320. package/dist/esm/array/findIndex.js +21 -0
  321. package/dist/esm/array/findLast.js +21 -0
  322. package/dist/esm/array/findLastIndex.js +21 -0
  323. package/dist/esm/array/flatten.js +21 -0
  324. package/dist/esm/array/flattenDeep.js +22 -0
  325. package/dist/esm/array/forEach.js +26 -0
  326. package/dist/esm/array/forEachRight.js +23 -0
  327. package/dist/esm/array/groupBy.js +61 -0
  328. package/dist/esm/array/head.js +18 -0
  329. package/dist/esm/array/includes.js +54 -0
  330. package/dist/esm/array/index.js +43 -0
  331. package/dist/esm/array/intersection.js +48 -0
  332. package/dist/esm/array/keyBy.js +73 -0
  333. package/dist/esm/array/last.js +20 -0
  334. package/dist/esm/array/map.js +20 -0
  335. package/dist/esm/array/max.js +19 -0
  336. package/dist/esm/array/maxBy.js +21 -0
  337. package/dist/esm/array/mean.js +21 -0
  338. package/dist/esm/array/meanBy.js +24 -0
  339. package/dist/esm/array/min.js +19 -0
  340. package/dist/esm/array/minBy.js +21 -0
  341. package/dist/esm/array/orderBy.js +89 -0
  342. package/dist/esm/array/partition.js +62 -0
  343. package/dist/esm/array/reduce.js +24 -0
  344. package/dist/esm/array/reduceRight.js +24 -0
  345. package/dist/esm/array/some.js +60 -0
  346. package/dist/esm/array/sortBy.js +21 -0
  347. package/dist/esm/array/sum.js +19 -0
  348. package/dist/esm/array/sumBy.js +25 -0
  349. package/dist/esm/array/take.js +25 -0
  350. package/dist/esm/array/union.js +32 -0
  351. package/dist/esm/array/uniq.js +30 -0
  352. package/dist/esm/array/uniqBy.js +35 -0
  353. package/dist/esm/array/without.js +24 -0
  354. package/dist/esm/color/getCssVariable.js +28 -0
  355. package/dist/esm/color/getThemePalette.js +53 -0
  356. package/dist/esm/color/hexToRgb.js +23 -0
  357. package/dist/esm/color/index.js +5 -0
  358. package/dist/esm/color/rgbStringToHex.js +36 -0
  359. package/dist/esm/color/rgbToHex.js +21 -0
  360. package/dist/esm/convert/index.js +13 -0
  361. package/dist/esm/convert/toArray.js +50 -0
  362. package/dist/esm/convert/toFinite.js +28 -0
  363. package/dist/esm/convert/toInteger.js +27 -0
  364. package/dist/esm/convert/toLength.js +24 -0
  365. package/dist/esm/convert/toLower.js +19 -0
  366. package/dist/esm/convert/toNumber.js +52 -0
  367. package/dist/esm/convert/toPairs.js +21 -0
  368. package/dist/esm/convert/toPairsIn.js +29 -0
  369. package/dist/esm/convert/toPath.js +16 -0
  370. package/dist/esm/convert/toPlainObject.js +36 -0
  371. package/dist/esm/convert/toSafeInteger.js +28 -0
  372. package/dist/esm/convert/toString.js +31 -0
  373. package/dist/esm/convert/toUpper.js +19 -0
  374. package/dist/esm/function/after.js +29 -0
  375. package/dist/esm/function/before.js +29 -0
  376. package/dist/esm/function/curry.js +53 -0
  377. package/dist/esm/function/debounce.js +104 -0
  378. package/dist/esm/function/flow.js +49 -0
  379. package/dist/esm/function/flowRight.js +43 -0
  380. package/dist/esm/function/index.js +11 -0
  381. package/dist/esm/function/memoize.js +20 -0
  382. package/dist/esm/function/once.js +28 -0
  383. package/dist/esm/function/partial.js +31 -0
  384. package/dist/esm/function/partialRight.js +30 -0
  385. package/dist/esm/function/throttle.js +14 -0
  386. package/dist/esm/index.js +10 -0
  387. package/dist/esm/object/assign.js +21 -0
  388. package/dist/esm/object/clone.js +23 -0
  389. package/dist/esm/object/cloneDeep.js +24 -0
  390. package/dist/esm/object/cloneDeepWith.js +24 -0
  391. package/dist/esm/object/cloneWith.js +24 -0
  392. package/dist/esm/object/defaults.js +20 -0
  393. package/dist/esm/object/defaultsDeep.js +38 -0
  394. package/dist/esm/object/findKey.js +23 -0
  395. package/dist/esm/object/findLastKey.js +23 -0
  396. package/dist/esm/object/forIn.js +23 -0
  397. package/dist/esm/object/forOwn.js +23 -0
  398. package/dist/esm/object/fromPairs.js +25 -0
  399. package/dist/esm/object/get.js +31 -0
  400. package/dist/esm/object/has.js +33 -0
  401. package/dist/esm/object/index.js +29 -0
  402. package/dist/esm/object/invert.js +31 -0
  403. package/dist/esm/object/keys.js +22 -0
  404. package/dist/esm/object/mapKeys.js +31 -0
  405. package/dist/esm/object/mapValues.js +31 -0
  406. package/dist/esm/object/merge.js +23 -0
  407. package/dist/esm/object/mergeWith.js +35 -0
  408. package/dist/esm/object/omit.js +30 -0
  409. package/dist/esm/object/omitBy.js +32 -0
  410. package/dist/esm/object/pick.js +31 -0
  411. package/dist/esm/object/pickBy.js +32 -0
  412. package/dist/esm/object/set.js +61 -0
  413. package/dist/esm/object/unset.js +22 -0
  414. package/dist/esm/object/update.js +25 -0
  415. package/dist/esm/object/updateWith.js +27 -0
  416. package/dist/esm/object/values.js +22 -0
  417. package/dist/esm/string/camelCase.js +31 -0
  418. package/dist/esm/string/capitalize.js +19 -0
  419. package/dist/esm/string/endsWith.js +30 -0
  420. package/dist/esm/string/escape.js +20 -0
  421. package/dist/esm/string/index.js +17 -0
  422. package/dist/esm/string/kebabCase.js +22 -0
  423. package/dist/esm/string/lowerCase.js +19 -0
  424. package/dist/esm/string/pad.js +25 -0
  425. package/dist/esm/string/padEnd.js +25 -0
  426. package/dist/esm/string/padStart.js +25 -0
  427. package/dist/esm/string/repeat.js +24 -0
  428. package/dist/esm/string/snakeCase.js +22 -0
  429. package/dist/esm/string/startsWith.js +28 -0
  430. package/dist/esm/string/trim.js +24 -0
  431. package/dist/esm/string/trimEnd.js +24 -0
  432. package/dist/esm/string/trimStart.js +24 -0
  433. package/dist/esm/string/unescape.js +20 -0
  434. package/dist/esm/string/upperFirst.js +19 -0
  435. package/dist/esm/tree/filterTreeNodes.js +45 -0
  436. package/dist/esm/tree/findTreeNode.js +39 -0
  437. package/dist/esm/tree/forEachTree.js +27 -0
  438. package/dist/esm/tree/getParentNodes.js +43 -0
  439. package/dist/esm/tree/getTreeDepth.js +32 -0
  440. package/dist/esm/tree/index.js +12 -0
  441. package/dist/esm/tree/mapTree.js +95 -0
  442. package/dist/esm/tree/pruneTree.js +123 -0
  443. package/dist/esm/tree/toFlatList.js +51 -0
  444. package/dist/esm/tree/toTree.js +68 -0
  445. package/dist/esm/tree/traverseTree.js +23 -0
  446. package/dist/esm/tree/traverseTreeBfs.js +23 -0
  447. package/dist/esm/util/clamp.js +53 -0
  448. package/dist/esm/util/constant.js +18 -0
  449. package/dist/esm/util/defaultTo.js +25 -0
  450. package/dist/esm/util/defer.js +19 -0
  451. package/dist/esm/util/delay.js +22 -0
  452. package/dist/esm/util/identity.js +17 -0
  453. package/dist/esm/util/inRange.js +38 -0
  454. package/dist/esm/util/index.js +21 -0
  455. package/dist/esm/util/iteratee.js +24 -0
  456. package/dist/esm/util/matches.js +21 -0
  457. package/dist/esm/util/matchesProperty.js +31 -0
  458. package/dist/esm/util/negate.js +22 -0
  459. package/dist/esm/util/noop.js +17 -0
  460. package/dist/esm/util/now.js +17 -0
  461. package/dist/esm/util/property.js +27 -0
  462. package/dist/esm/util/random.js +68 -0
  463. package/dist/esm/util/range.js +40 -0
  464. package/dist/esm/util/size.js +41 -0
  465. package/dist/esm/util/sleep.js +19 -0
  466. package/dist/esm/util/times.js +35 -0
  467. package/dist/esm/util/uniqueId.js +23 -0
  468. package/dist/esm/util/validateFields.js +100 -0
  469. package/dist/esm/verify/index.js +36 -0
  470. package/dist/esm/verify/isArguments.js +18 -0
  471. package/dist/esm/verify/isArray.js +18 -0
  472. package/dist/esm/verify/isArrayBuffer.js +18 -0
  473. package/dist/esm/verify/isArrayLike.js +25 -0
  474. package/dist/esm/verify/isBoolean.js +18 -0
  475. package/dist/esm/verify/isBuffer.js +20 -0
  476. package/dist/esm/verify/isDate.js +18 -0
  477. package/dist/esm/verify/isElement.js +20 -0
  478. package/dist/esm/verify/isEmpty.js +38 -0
  479. package/dist/esm/verify/isEqual.js +24 -0
  480. package/dist/esm/verify/isEqualWith.js +25 -0
  481. package/dist/esm/verify/isError.js +20 -0
  482. package/dist/esm/verify/isFinite.js +22 -0
  483. package/dist/esm/verify/isFunction.js +19 -0
  484. package/dist/esm/verify/isInteger.js +19 -0
  485. package/dist/esm/verify/isLength.js +19 -0
  486. package/dist/esm/verify/isMap.js +18 -0
  487. package/dist/esm/verify/isMatch.js +24 -0
  488. package/dist/esm/verify/isMatchWith.js +25 -0
  489. package/dist/esm/verify/isNaN.js +22 -0
  490. package/dist/esm/verify/isNative.js +22 -0
  491. package/dist/esm/verify/isNil.js +24 -0
  492. package/dist/esm/verify/isNull.js +18 -0
  493. package/dist/esm/verify/isNumber.js +21 -0
  494. package/dist/esm/verify/isObject.js +23 -0
  495. package/dist/esm/verify/isObjectLike.js +27 -0
  496. package/dist/esm/verify/isPlainObject.js +18 -0
  497. package/dist/esm/verify/isRegExp.js +18 -0
  498. package/dist/esm/verify/isSafeInteger.js +24 -0
  499. package/dist/esm/verify/isSet.js +18 -0
  500. package/dist/esm/verify/isString.js +18 -0
  501. package/dist/esm/verify/isSymbol.js +18 -0
  502. package/dist/esm/verify/isTypedArray.js +35 -0
  503. package/dist/esm/verify/isUndefined.js +18 -0
  504. package/dist/esm/verify/isWeakMap.js +18 -0
  505. package/dist/esm/verify/isWeakSet.js +18 -0
  506. package/dist/esm/version.js +14 -0
  507. package/dist/types/_internal/MapCache.d.ts +13 -0
  508. package/dist/types/_internal/assignSources.d.ts +6 -0
  509. package/dist/types/_internal/assignValue.d.ts +6 -0
  510. package/dist/types/_internal/baseClone.d.ts +11 -0
  511. package/dist/types/_internal/baseCollectionKeys.d.ts +12 -0
  512. package/dist/types/_internal/baseDefaultsDeep.d.ts +6 -0
  513. package/dist/types/_internal/baseDifference.d.ts +6 -0
  514. package/dist/types/_internal/baseExtremum.d.ts +6 -0
  515. package/dist/types/_internal/baseExtremumBy.d.ts +7 -0
  516. package/dist/types/_internal/baseFilter.d.ts +7 -0
  517. package/dist/types/_internal/baseFind.d.ts +20 -0
  518. package/dist/types/_internal/baseFlatten.d.ts +6 -0
  519. package/dist/types/_internal/baseForEach.d.ts +6 -0
  520. package/dist/types/_internal/baseForOwn.d.ts +14 -0
  521. package/dist/types/_internal/baseIsEqual.d.ts +10 -0
  522. package/dist/types/_internal/baseIsMatch.d.ts +10 -0
  523. package/dist/types/_internal/baseIteratee.d.ts +7 -0
  524. package/dist/types/_internal/baseKeysIn.d.ts +6 -0
  525. package/dist/types/_internal/baseMap.d.ts +7 -0
  526. package/dist/types/_internal/baseMerge.d.ts +13 -0
  527. package/dist/types/_internal/basePad.d.ts +6 -0
  528. package/dist/types/_internal/basePath.d.ts +20 -0
  529. package/dist/types/_internal/baseRange.d.ts +6 -0
  530. package/dist/types/_internal/baseReduce.d.ts +7 -0
  531. package/dist/types/_internal/baseSum.d.ts +6 -0
  532. package/dist/types/_internal/baseTreeTraverse.d.ts +86 -0
  533. package/dist/types/_internal/baseTrim.d.ts +6 -0
  534. package/dist/types/_internal/baseUnset.d.ts +6 -0
  535. package/dist/types/_internal/baseUpdate.d.ts +6 -0
  536. package/dist/types/_internal/coerceToString.d.ts +6 -0
  537. package/dist/types/_internal/colorMath.d.ts +14 -0
  538. package/dist/types/_internal/compareValues.d.ts +12 -0
  539. package/dist/types/_internal/composePartials.d.ts +8 -0
  540. package/dist/types/_internal/createCompounder.d.ts +6 -0
  541. package/dist/types/_internal/deburr.d.ts +6 -0
  542. package/dist/types/_internal/flattenPaths.d.ts +6 -0
  543. package/dist/types/_internal/htmlEscape.d.ts +12 -0
  544. package/dist/types/_internal/identity.d.ts +6 -0
  545. package/dist/types/_internal/index.d.ts +10 -0
  546. package/dist/types/_internal/isArguments.d.ts +6 -0
  547. package/dist/types/_internal/isArrayLike.d.ts +6 -0
  548. package/dist/types/_internal/isArrayLikeObject.d.ts +6 -0
  549. package/dist/types/_internal/isEmptyValue.d.ts +6 -0
  550. package/dist/types/_internal/isFlattenable.d.ts +6 -0
  551. package/dist/types/_internal/isIndex.d.ts +6 -0
  552. package/dist/types/_internal/isLength.d.ts +6 -0
  553. package/dist/types/_internal/isPlainObject.d.ts +8 -0
  554. package/dist/types/_internal/mergeInto.d.ts +7 -0
  555. package/dist/types/_internal/repeatString.d.ts +6 -0
  556. package/dist/types/_internal/toInteger.d.ts +6 -0
  557. package/dist/types/_internal/toLength.d.ts +6 -0
  558. package/dist/types/_internal/toPath.d.ts +7 -0
  559. package/dist/types/_internal/upperFirst.d.ts +6 -0
  560. package/dist/types/_internal/validateFieldRule.d.ts +26 -0
  561. package/dist/types/_internal/words.d.ts +6 -0
  562. package/dist/types/array/chunk.d.ts +17 -0
  563. package/dist/types/array/compact.d.ts +16 -0
  564. package/dist/types/array/concat.d.ts +17 -0
  565. package/dist/types/array/difference.d.ts +17 -0
  566. package/dist/types/array/differenceBy.d.ts +18 -0
  567. package/dist/types/array/drop.d.ts +17 -0
  568. package/dist/types/array/each.d.ts +18 -0
  569. package/dist/types/array/every.d.ts +21 -0
  570. package/dist/types/array/filter.d.ts +18 -0
  571. package/dist/types/array/find.d.ts +23 -0
  572. package/dist/types/array/findIndex.d.ts +18 -0
  573. package/dist/types/array/findLast.d.ts +18 -0
  574. package/dist/types/array/findLastIndex.d.ts +18 -0
  575. package/dist/types/array/flatten.d.ts +16 -0
  576. package/dist/types/array/flattenDeep.d.ts +16 -0
  577. package/dist/types/array/forEach.d.ts +23 -0
  578. package/dist/types/array/forEachRight.d.ts +20 -0
  579. package/dist/types/array/groupBy.d.ts +18 -0
  580. package/dist/types/array/head.d.ts +16 -0
  581. package/dist/types/array/includes.d.ts +21 -0
  582. package/dist/types/array/index.d.ts +43 -0
  583. package/dist/types/array/intersection.d.ts +16 -0
  584. package/dist/types/array/keyBy.d.ts +24 -0
  585. package/dist/types/array/last.d.ts +16 -0
  586. package/dist/types/array/map.d.ts +18 -0
  587. package/dist/types/array/max.d.ts +16 -0
  588. package/dist/types/array/maxBy.d.ts +18 -0
  589. package/dist/types/array/mean.d.ts +16 -0
  590. package/dist/types/array/meanBy.d.ts +18 -0
  591. package/dist/types/array/min.d.ts +16 -0
  592. package/dist/types/array/minBy.d.ts +18 -0
  593. package/dist/types/array/orderBy.d.ts +23 -0
  594. package/dist/types/array/partition.d.ts +18 -0
  595. package/dist/types/array/reduce.d.ts +19 -0
  596. package/dist/types/array/reduceRight.d.ts +19 -0
  597. package/dist/types/array/some.d.ts +18 -0
  598. package/dist/types/array/sortBy.d.ts +18 -0
  599. package/dist/types/array/sum.d.ts +16 -0
  600. package/dist/types/array/sumBy.d.ts +18 -0
  601. package/dist/types/array/take.d.ts +17 -0
  602. package/dist/types/array/union.d.ts +16 -0
  603. package/dist/types/array/uniq.d.ts +16 -0
  604. package/dist/types/array/uniqBy.d.ts +18 -0
  605. package/dist/types/array/without.d.ts +17 -0
  606. package/dist/types/color/getCssVariable.d.ts +18 -0
  607. package/dist/types/color/getThemePalette.d.ts +28 -0
  608. package/dist/types/color/hexToRgb.d.ts +16 -0
  609. package/dist/types/color/index.d.ts +6 -0
  610. package/dist/types/color/rgbStringToHex.d.ts +16 -0
  611. package/dist/types/color/rgbToHex.d.ts +18 -0
  612. package/dist/types/convert/index.d.ts +13 -0
  613. package/dist/types/convert/toArray.d.ts +19 -0
  614. package/dist/types/convert/toFinite.d.ts +19 -0
  615. package/dist/types/convert/toInteger.d.ts +19 -0
  616. package/dist/types/convert/toLength.d.ts +19 -0
  617. package/dist/types/convert/toLower.d.ts +16 -0
  618. package/dist/types/convert/toNumber.d.ts +19 -0
  619. package/dist/types/convert/toPairs.d.ts +16 -0
  620. package/dist/types/convert/toPairsIn.d.ts +20 -0
  621. package/dist/types/convert/toPath.d.ts +16 -0
  622. package/dist/types/convert/toPlainObject.d.ts +19 -0
  623. package/dist/types/convert/toSafeInteger.d.ts +19 -0
  624. package/dist/types/convert/toString.d.ts +19 -0
  625. package/dist/types/convert/toUpper.d.ts +16 -0
  626. package/dist/types/function/after.d.ts +20 -0
  627. package/dist/types/function/before.d.ts +20 -0
  628. package/dist/types/function/curry.d.ts +27 -0
  629. package/dist/types/function/debounce.d.ts +31 -0
  630. package/dist/types/function/flow.d.ts +18 -0
  631. package/dist/types/function/flowRight.d.ts +18 -0
  632. package/dist/types/function/index.d.ts +11 -0
  633. package/dist/types/function/memoize.d.ts +41 -0
  634. package/dist/types/function/once.d.ts +18 -0
  635. package/dist/types/function/partial.d.ts +26 -0
  636. package/dist/types/function/partialRight.d.ts +25 -0
  637. package/dist/types/function/throttle.d.ts +26 -0
  638. package/dist/types/index.d.ts +10 -0
  639. package/dist/types/object/assign.d.ts +18 -0
  640. package/dist/types/object/clone.d.ts +20 -0
  641. package/dist/types/object/cloneDeep.d.ts +21 -0
  642. package/dist/types/object/cloneDeepWith.d.ts +23 -0
  643. package/dist/types/object/cloneWith.d.ts +23 -0
  644. package/dist/types/object/defaults.d.ts +17 -0
  645. package/dist/types/object/defaultsDeep.d.ts +17 -0
  646. package/dist/types/object/findKey.d.ts +17 -0
  647. package/dist/types/object/findLastKey.d.ts +17 -0
  648. package/dist/types/object/forIn.d.ts +16 -0
  649. package/dist/types/object/forOwn.d.ts +16 -0
  650. package/dist/types/object/fromPairs.d.ts +16 -0
  651. package/dist/types/object/get.d.ts +20 -0
  652. package/dist/types/object/has.d.ts +19 -0
  653. package/dist/types/object/index.d.ts +29 -0
  654. package/dist/types/object/invert.d.ts +16 -0
  655. package/dist/types/object/keys.d.ts +19 -0
  656. package/dist/types/object/mapKeys.d.ts +18 -0
  657. package/dist/types/object/mapValues.d.ts +18 -0
  658. package/dist/types/object/merge.d.ts +20 -0
  659. package/dist/types/object/mergeWith.d.ts +27 -0
  660. package/dist/types/object/omit.d.ts +18 -0
  661. package/dist/types/object/omitBy.d.ts +18 -0
  662. package/dist/types/object/pick.d.ts +18 -0
  663. package/dist/types/object/pickBy.d.ts +18 -0
  664. package/dist/types/object/set.d.ts +23 -0
  665. package/dist/types/object/unset.d.ts +19 -0
  666. package/dist/types/object/update.d.ts +19 -0
  667. package/dist/types/object/updateWith.d.ts +21 -0
  668. package/dist/types/object/values.d.ts +19 -0
  669. package/dist/types/string/camelCase.d.ts +19 -0
  670. package/dist/types/string/capitalize.d.ts +16 -0
  671. package/dist/types/string/endsWith.d.ts +21 -0
  672. package/dist/types/string/escape.d.ts +16 -0
  673. package/dist/types/string/index.d.ts +17 -0
  674. package/dist/types/string/kebabCase.d.ts +20 -0
  675. package/dist/types/string/lowerCase.d.ts +17 -0
  676. package/dist/types/string/pad.d.ts +21 -0
  677. package/dist/types/string/padEnd.d.ts +21 -0
  678. package/dist/types/string/padStart.d.ts +21 -0
  679. package/dist/types/string/repeat.d.ts +20 -0
  680. package/dist/types/string/snakeCase.d.ts +20 -0
  681. package/dist/types/string/startsWith.d.ts +21 -0
  682. package/dist/types/string/trim.d.ts +20 -0
  683. package/dist/types/string/trimEnd.d.ts +20 -0
  684. package/dist/types/string/trimStart.d.ts +20 -0
  685. package/dist/types/string/unescape.d.ts +16 -0
  686. package/dist/types/string/upperFirst.d.ts +16 -0
  687. package/dist/types/tree/filterTreeNodes.d.ts +29 -0
  688. package/dist/types/tree/findTreeNode.d.ts +22 -0
  689. package/dist/types/tree/forEachTree.d.ts +25 -0
  690. package/dist/types/tree/getParentNodes.d.ts +26 -0
  691. package/dist/types/tree/getTreeDepth.d.ts +22 -0
  692. package/dist/types/tree/index.d.ts +14 -0
  693. package/dist/types/tree/mapTree.d.ts +23 -0
  694. package/dist/types/tree/pruneTree.d.ts +32 -0
  695. package/dist/types/tree/toFlatList.d.ts +26 -0
  696. package/dist/types/tree/toTree.d.ts +22 -0
  697. package/dist/types/tree/traverseTree.d.ts +22 -0
  698. package/dist/types/tree/traverseTreeBfs.d.ts +22 -0
  699. package/dist/types/util/clamp.d.ts +18 -0
  700. package/dist/types/util/constant.d.ts +16 -0
  701. package/dist/types/util/defaultTo.d.ts +23 -0
  702. package/dist/types/util/defer.d.ts +16 -0
  703. package/dist/types/util/delay.d.ts +17 -0
  704. package/dist/types/util/identity.d.ts +17 -0
  705. package/dist/types/util/inRange.d.ts +18 -0
  706. package/dist/types/util/index.d.ts +22 -0
  707. package/dist/types/util/iteratee.d.ts +17 -0
  708. package/dist/types/util/matches.d.ts +16 -0
  709. package/dist/types/util/matchesProperty.d.ts +17 -0
  710. package/dist/types/util/negate.d.ts +16 -0
  711. package/dist/types/util/noop.d.ts +15 -0
  712. package/dist/types/util/now.d.ts +15 -0
  713. package/dist/types/util/property.d.ts +16 -0
  714. package/dist/types/util/random.d.ts +18 -0
  715. package/dist/types/util/range.d.ts +18 -0
  716. package/dist/types/util/size.d.ts +22 -0
  717. package/dist/types/util/sleep.d.ts +15 -0
  718. package/dist/types/util/times.d.ts +17 -0
  719. package/dist/types/util/uniqueId.d.ts +19 -0
  720. package/dist/types/util/validateFields.d.ts +46 -0
  721. package/dist/types/verify/index.d.ts +36 -0
  722. package/dist/types/verify/isArguments.d.ts +18 -0
  723. package/dist/types/verify/isArray.d.ts +16 -0
  724. package/dist/types/verify/isArrayBuffer.d.ts +16 -0
  725. package/dist/types/verify/isArrayLike.d.ts +24 -0
  726. package/dist/types/verify/isBoolean.d.ts +16 -0
  727. package/dist/types/verify/isBuffer.d.ts +17 -0
  728. package/dist/types/verify/isDate.d.ts +16 -0
  729. package/dist/types/verify/isElement.d.ts +17 -0
  730. package/dist/types/verify/isEmpty.d.ts +21 -0
  731. package/dist/types/verify/isEqual.d.ts +21 -0
  732. package/dist/types/verify/isEqualWith.d.ts +24 -0
  733. package/dist/types/verify/isError.d.ts +18 -0
  734. package/dist/types/verify/isFinite.d.ts +19 -0
  735. package/dist/types/verify/isFunction.d.ts +16 -0
  736. package/dist/types/verify/isInteger.d.ts +17 -0
  737. package/dist/types/verify/isLength.d.ts +19 -0
  738. package/dist/types/verify/isMap.d.ts +16 -0
  739. package/dist/types/verify/isMatch.d.ts +21 -0
  740. package/dist/types/verify/isMatchWith.d.ts +24 -0
  741. package/dist/types/verify/isNaN.d.ts +19 -0
  742. package/dist/types/verify/isNative.d.ts +19 -0
  743. package/dist/types/verify/isNil.d.ts +22 -0
  744. package/dist/types/verify/isNull.d.ts +16 -0
  745. package/dist/types/verify/isNumber.d.ts +19 -0
  746. package/dist/types/verify/isObject.d.ts +20 -0
  747. package/dist/types/verify/isObjectLike.d.ts +25 -0
  748. package/dist/types/verify/isPlainObject.d.ts +18 -0
  749. package/dist/types/verify/isRegExp.d.ts +16 -0
  750. package/dist/types/verify/isSafeInteger.d.ts +19 -0
  751. package/dist/types/verify/isSet.d.ts +16 -0
  752. package/dist/types/verify/isString.d.ts +16 -0
  753. package/dist/types/verify/isSymbol.d.ts +16 -0
  754. package/dist/types/verify/isTypedArray.d.ts +19 -0
  755. package/dist/types/verify/isUndefined.d.ts +16 -0
  756. package/dist/types/verify/isWeakMap.d.ts +16 -0
  757. package/dist/types/verify/isWeakSet.d.ts +16 -0
  758. package/dist/types/version.d.ts +13 -0
  759. package/dist/umd/zhiaiwan-utils.js +8178 -0
  760. package/dist/umd/zhiaiwan-utils.min.js +2 -0
  761. package/package.json +99 -0
@@ -0,0 +1,32 @@
1
+ import baseIteratee from '../_internal/baseIteratee';
2
+ import baseKeysIn from '../_internal/baseKeysIn';
3
+ /**
4
+ * 返回 object 中 predicate 为真值的属性组成的新对象。
5
+ *
6
+ * @param object - 源对象
7
+ * @param predicate - 每次属性检查调用的函数或简写
8
+ * @returns 筛选后的新对象
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * zhiaiwanUtils.pickBy({ a: 1, b: '2', c: 3 }, (value) => typeof value === 'number');
13
+ * // => { a: 1, c: 3 }
14
+ * ```
15
+ *
16
+ * @since 1.0.0
17
+ * @category Object
18
+ */
19
+ export default function pickBy(object, predicate = baseIteratee()) {
20
+ if (object == null) {
21
+ return {};
22
+ }
23
+ const resolvedPredicate = baseIteratee(predicate);
24
+ const result = {};
25
+ for (const key of baseKeysIn(object)) {
26
+ const value = object[key];
27
+ if (resolvedPredicate(value, key, object)) {
28
+ result[key] = value;
29
+ }
30
+ }
31
+ return result;
32
+ }
@@ -0,0 +1,61 @@
1
+ import isIndex from '../_internal/isIndex';
2
+ import toPath from '../_internal/toPath';
3
+ function createNestedValue(nextKey) {
4
+ return isIndex(nextKey) ? [] : {};
5
+ }
6
+ function assignValue(container, key, value) {
7
+ if (Array.isArray(container) && isIndex(key)) {
8
+ const index = Number(key);
9
+ container[index] = value;
10
+ if (index >= container.length) {
11
+ container.length = index + 1;
12
+ }
13
+ return;
14
+ }
15
+ container[key] = value;
16
+ }
17
+ function getNestedValue(container, key) {
18
+ return container[key];
19
+ }
20
+ /**
21
+ * 设置 object 上 path 路径对应的值。若中间路径不存在会自动创建对象或数组
22
+ * (下一级为数字下标时创建数组);当 object 为 null 或 undefined 时会创建并返回新对象。
23
+ *
24
+ * @param object - 要修改的对象
25
+ * @param path - 属性路径,支持 `'a.b[0].c'` 字符串或键数组
26
+ * @param value - 要设置的值
27
+ * @returns 修改后的 object(可能与入参为同一引用)
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const obj = { a: [{ b: 2 }] };
32
+ * set(obj, 'a[0].b', 3);
33
+ * // => { a: [{ b: 3 }] }
34
+ *
35
+ * set({}, 'a.b.c', 4);
36
+ * // => { a: { b: { c: 4 } } }
37
+ * ```
38
+ *
39
+ * @since 1.0.0
40
+ * @category Object
41
+ */
42
+ export default function set(object, path, value) {
43
+ const keys = toPath(path);
44
+ if (keys.length === 0) {
45
+ return object;
46
+ }
47
+ const root = object == null ? createNestedValue(keys[0]) : object;
48
+ let current = root;
49
+ for (let i = 0; i < keys.length - 1; i++) {
50
+ const key = keys[i];
51
+ const nextKey = keys[i + 1];
52
+ let next = getNestedValue(current, key);
53
+ if (next == null || typeof next !== 'object') {
54
+ next = createNestedValue(nextKey);
55
+ assignValue(current, key, next);
56
+ }
57
+ current = next;
58
+ }
59
+ assignValue(current, keys[keys.length - 1], value);
60
+ return root;
61
+ }
@@ -0,0 +1,22 @@
1
+ import baseUnset from '../_internal/baseUnset';
2
+ /**
3
+ * 删除 object 上 path 路径对应的属性。
4
+ *
5
+ * @param object - 要修改的对象
6
+ * @param path - 属性路径,支持 `'a.b[0].c'` 字符串或键数组
7
+ * @returns 删除成功返回 true,路径不存在或无法到达时返回 false
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const obj = { a: [{ b: 2 }, { b: 3 }] };
12
+ * zhiaiwanUtils.unset(obj, 'a[0].b');
13
+ * // => true
14
+ * // obj => { a: [{}, { b: 3 }] }
15
+ * ```
16
+ *
17
+ * @since 1.0.0
18
+ * @category Object
19
+ */
20
+ export default function unset(object, path) {
21
+ return baseUnset(object, path);
22
+ }
@@ -0,0 +1,25 @@
1
+ import baseUpdate from '../_internal/baseUpdate';
2
+ /**
3
+ * 按 path 更新 object 上的值,updater 接收当前值并返回新值。
4
+ *
5
+ * @param object - 待修改对象
6
+ * @param path - 属性路径
7
+ * @param updater - 更新函数
8
+ * @returns 修改后的 object
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const object = { a: [{ b: 1 }] };
13
+ * zhiaiwanUtils.update(object, 'a[0].b', (n) => (n as number) * 2);
14
+ * // object.a[0].b => 2
15
+ * ```
16
+ *
17
+ * @since 1.0.0
18
+ * @category Object
19
+ */
20
+ export default function update(object, path, updater) {
21
+ if (object == null) {
22
+ return object;
23
+ }
24
+ return baseUpdate(object, path, updater);
25
+ }
@@ -0,0 +1,27 @@
1
+ import baseUpdate from '../_internal/baseUpdate';
2
+ /**
3
+ * 类似 update,但允许 customizer 控制中间路径节点的创建。
4
+ *
5
+ * @param object - 待修改对象
6
+ * @param path - 属性路径
7
+ * @param updater - 更新函数
8
+ * @param customizer - 路径节点创建函数
9
+ * @returns 修改后的 object
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const object = {};
14
+ * zhiaiwanUtils.updateWith(object, '[0][1]', () => 'a', Object);
15
+ * // => { '0': { '1': 'a' } }
16
+ * ```
17
+ *
18
+ * @since 1.0.0
19
+ * @category Object
20
+ */
21
+ export default function updateWith(object, path, updater, customizer) {
22
+ if (object == null) {
23
+ return object;
24
+ }
25
+ const resolvedCustomizer = typeof customizer === 'function' ? customizer : undefined;
26
+ return baseUpdate(object, path, updater, resolvedCustomizer);
27
+ }
@@ -0,0 +1,22 @@
1
+ import { baseValues } from '../_internal/baseCollectionKeys';
2
+ /**
3
+ * 返回 object 的自有可枚举属性值数组。
4
+ *
5
+ * @param object - 要查询的对象或集合
6
+ * @returns 属性值数组
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.values({ a: 1, b: 2 });
11
+ * // => [1, 2]
12
+ *
13
+ * zhiaiwanUtils.values([1, 2, 3]);
14
+ * // => [1, 2, 3]
15
+ * ```
16
+ *
17
+ * @since 1.0.0
18
+ * @category Object
19
+ */
20
+ export default function values(object) {
21
+ return baseValues(object);
22
+ }
@@ -0,0 +1,31 @@
1
+ import deburr from '../_internal/deburr';
2
+ import upperFirst from '../_internal/upperFirst';
3
+ import words from '../_internal/words';
4
+ /**
5
+ * 将字符串转换为 camelCase。
6
+ *
7
+ * @param string - 待转换的字符串
8
+ * @returns camelCase 字符串
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * zhiaiwanUtils.camelCase('Foo Bar');
13
+ * // => 'fooBar'
14
+ *
15
+ * zhiaiwanUtils.camelCase('__FOO_BAR__');
16
+ * // => 'fooBar'
17
+ * ```
18
+ *
19
+ * @since 1.0.0
20
+ * @category String
21
+ */
22
+ export default function camelCase(string) {
23
+ const input = String(string !== null && string !== void 0 ? string : '');
24
+ if (!input) {
25
+ return '';
26
+ }
27
+ return words(deburr(input).replace(/['\u2019]/g, '')).reduce((result, word, index) => {
28
+ const lower = word.toLowerCase();
29
+ return result + (index ? upperFirst(lower) : lower);
30
+ }, '');
31
+ }
@@ -0,0 +1,19 @@
1
+ import upperFirst from '../_internal/upperFirst';
2
+ /**
3
+ * 首字母大写,其余小写。
4
+ *
5
+ * @param string - 待转换字符串
6
+ * @returns 首字母大写后的字符串
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.capitalize('FRED');
11
+ * // => 'Fred'
12
+ * ```
13
+ *
14
+ * @since 1.0.0
15
+ * @category String
16
+ */
17
+ export default function capitalize(string) {
18
+ return upperFirst(String(string !== null && string !== void 0 ? string : '').toLowerCase());
19
+ }
@@ -0,0 +1,30 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import toInteger from '../_internal/toInteger';
3
+ /**
4
+ * 检查字符串是否以 target 结尾。
5
+ *
6
+ * @param value - 待检查的字符串
7
+ * @param target - 要匹配的后缀
8
+ * @param position - 检索结束位置,默认为字符串长度
9
+ * @returns 若匹配返回 true,否则返回 false
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * zhiaiwanUtils.endsWith('abc', 'c');
14
+ * // => true
15
+ *
16
+ * zhiaiwanUtils.endsWith('abc', 'b');
17
+ * // => false
18
+ * ```
19
+ *
20
+ * @since 1.0.0
21
+ * @category String
22
+ */
23
+ export default function endsWith(value, target, position) {
24
+ const string = coerceToString(value);
25
+ const search = coerceToString(target);
26
+ const normalizedPosition = position === undefined
27
+ ? string.length
28
+ : Math.max(0, Math.min(toInteger(position), string.length));
29
+ return string.endsWith(search, normalizedPosition);
30
+ }
@@ -0,0 +1,20 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import { escapeHtml } from '../_internal/htmlEscape';
3
+ /**
4
+ * 将字符串中的 `&`、`<`、`>`、`"`、`'` 转为对应 HTML 实体。
5
+ *
6
+ * @param value - 待转义的值
7
+ * @returns 转义后的字符串
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * zhiaiwanUtils.escape('fred, barney, & pebbles');
12
+ * // => 'fred, barney, &amp; pebbles'
13
+ * ```
14
+ *
15
+ * @since 1.0.0
16
+ * @category String
17
+ */
18
+ export default function escape(value) {
19
+ return escapeHtml(coerceToString(value));
20
+ }
@@ -0,0 +1,17 @@
1
+ export { default as trim } from './trim';
2
+ export { default as trimStart } from './trimStart';
3
+ export { default as trimEnd } from './trimEnd';
4
+ export { default as startsWith } from './startsWith';
5
+ export { default as endsWith } from './endsWith';
6
+ export { default as pad } from './pad';
7
+ export { default as padStart } from './padStart';
8
+ export { default as padEnd } from './padEnd';
9
+ export { default as escape } from './escape';
10
+ export { default as unescape } from './unescape';
11
+ export { default as repeat } from './repeat';
12
+ export { default as camelCase } from './camelCase';
13
+ export { default as kebabCase } from './kebabCase';
14
+ export { default as snakeCase } from './snakeCase';
15
+ export { default as capitalize } from './capitalize';
16
+ export { default as lowerCase } from './lowerCase';
17
+ export { default as upperFirst } from './upperFirst';
@@ -0,0 +1,22 @@
1
+ import createCompounder from '../_internal/createCompounder';
2
+ /**
3
+ * 将字符串转换为 kebab-case。
4
+ *
5
+ * @param string - 待转换的字符串
6
+ * @returns kebab-case 字符串
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.kebabCase('Foo Bar');
11
+ * // => 'foo-bar'
12
+ *
13
+ * zhiaiwanUtils.kebabCase('fooBar');
14
+ * // => 'foo-bar'
15
+ * ```
16
+ *
17
+ * @since 1.0.0
18
+ * @category String
19
+ */
20
+ export default createCompounder((result, word, index) => {
21
+ return result + (index ? '-' : '') + word.toLowerCase();
22
+ });
@@ -0,0 +1,19 @@
1
+ import createCompounder from '../_internal/createCompounder';
2
+ /**
3
+ * 将字符串按单词拆分为空格分隔的小写形式。
4
+ *
5
+ * @param string - 待转换字符串
6
+ * @returns 小写空格分隔字符串
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.lowerCase('--Foo-Bar--');
11
+ * // => 'foo bar'
12
+ * ```
13
+ *
14
+ * @since 1.0.0
15
+ * @category String
16
+ */
17
+ export default createCompounder((result, word, index) => {
18
+ return result + (index ? ' ' : '') + word.toLowerCase();
19
+ });
@@ -0,0 +1,25 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import { padString } from '../_internal/basePad';
3
+ /**
4
+ * 将字符串填充到指定长度,默认用空格在两端补齐,多余填充优先加在右侧。
5
+ *
6
+ * @param value - 待处理的值
7
+ * @param length - 目标长度
8
+ * @param chars - 填充字符,默认为空格
9
+ * @returns 填充后的字符串
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * zhiaiwanUtils.pad('abc', 8);
14
+ * // => ' abc '
15
+ *
16
+ * zhiaiwanUtils.pad('abc', 8, '_-');
17
+ * // => '_-abc_-_'
18
+ * ```
19
+ *
20
+ * @since 1.0.0
21
+ * @category String
22
+ */
23
+ export default function pad(value, length, chars) {
24
+ return padString(coerceToString(value), length, chars, 'both');
25
+ }
@@ -0,0 +1,25 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import { padString } from '../_internal/basePad';
3
+ /**
4
+ * 在字符串末尾填充到指定长度,默认使用空格。
5
+ *
6
+ * @param value - 待处理的值
7
+ * @param length - 目标长度
8
+ * @param chars - 填充字符,默认为空格
9
+ * @returns 填充后的字符串
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * zhiaiwanUtils.padEnd('abc', 6);
14
+ * // => 'abc '
15
+ *
16
+ * zhiaiwanUtils.padEnd('abc', 6, '_-');
17
+ * // => 'abc_-_'
18
+ * ```
19
+ *
20
+ * @since 1.0.0
21
+ * @category String
22
+ */
23
+ export default function padEnd(value, length, chars) {
24
+ return padString(coerceToString(value), length, chars, 'end');
25
+ }
@@ -0,0 +1,25 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import { padString } from '../_internal/basePad';
3
+ /**
4
+ * 在字符串开头填充到指定长度,默认使用空格。
5
+ *
6
+ * @param value - 待处理的值
7
+ * @param length - 目标长度
8
+ * @param chars - 填充字符,默认为空格
9
+ * @returns 填充后的字符串
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * zhiaiwanUtils.padStart('abc', 6);
14
+ * // => ' abc'
15
+ *
16
+ * zhiaiwanUtils.padStart('abc', 6, '_-');
17
+ * // => '_-_abc'
18
+ * ```
19
+ *
20
+ * @since 1.0.0
21
+ * @category String
22
+ */
23
+ export default function padStart(value, length, chars) {
24
+ return padString(coerceToString(value), length, chars, 'start');
25
+ }
@@ -0,0 +1,24 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import repeatString from '../_internal/repeatString';
3
+ /**
4
+ * 将字符串重复 n 次;n 小于 1 时返回空字符串。
5
+ *
6
+ * @param value - 待重复的值
7
+ * @param n - 重复次数
8
+ * @returns 重复后的字符串
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * zhiaiwanUtils.repeat('*', 3);
13
+ * // => '***'
14
+ *
15
+ * zhiaiwanUtils.repeat('abc', 2);
16
+ * // => 'abcabc'
17
+ * ```
18
+ *
19
+ * @since 1.0.0
20
+ * @category String
21
+ */
22
+ export default function repeat(value, n) {
23
+ return repeatString(coerceToString(value), n);
24
+ }
@@ -0,0 +1,22 @@
1
+ import createCompounder from '../_internal/createCompounder';
2
+ /**
3
+ * 将字符串转换为 snake_case。
4
+ *
5
+ * @param string - 待转换的字符串
6
+ * @returns snake_case 字符串
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.snakeCase('Foo Bar');
11
+ * // => 'foo_bar'
12
+ *
13
+ * zhiaiwanUtils.snakeCase('fooBar');
14
+ * // => 'foo_bar'
15
+ * ```
16
+ *
17
+ * @since 1.0.0
18
+ * @category String
19
+ */
20
+ export default createCompounder((result, word, index) => {
21
+ return result + (index ? '_' : '') + word.toLowerCase();
22
+ });
@@ -0,0 +1,28 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import toInteger from '../_internal/toInteger';
3
+ /**
4
+ * 检查字符串是否以 target 开头。
5
+ *
6
+ * @param value - 待检查的字符串
7
+ * @param target - 要匹配的前缀
8
+ * @param position - 开始匹配的位置,默认为 0
9
+ * @returns 若匹配返回 true,否则返回 false
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * zhiaiwanUtils.startsWith('abc', 'a');
14
+ * // => true
15
+ *
16
+ * zhiaiwanUtils.startsWith('abc', 'b');
17
+ * // => false
18
+ * ```
19
+ *
20
+ * @since 1.0.0
21
+ * @category String
22
+ */
23
+ export default function startsWith(value, target, position = 0) {
24
+ const string = coerceToString(value);
25
+ const search = coerceToString(target);
26
+ const normalizedPosition = Math.max(0, Math.min(toInteger(position), string.length));
27
+ return string.startsWith(search, normalizedPosition);
28
+ }
@@ -0,0 +1,24 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import { trimByChars } from '../_internal/baseTrim';
3
+ /**
4
+ * 移除字符串两端的空白字符,或移除两端在 chars 中出现的字符。
5
+ *
6
+ * @param value - 待处理的值
7
+ * @param chars - 要移除的字符集合;省略时移除空白字符
8
+ * @returns 裁剪后的字符串
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * zhiaiwanUtils.trim(' abc ');
13
+ * // => 'abc'
14
+ *
15
+ * zhiaiwanUtils.trim('-_-abc-_-', '_-');
16
+ * // => 'abc'
17
+ * ```
18
+ *
19
+ * @since 1.0.0
20
+ * @category String
21
+ */
22
+ export default function trim(value, chars) {
23
+ return trimByChars(coerceToString(value), chars, 'both');
24
+ }
@@ -0,0 +1,24 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import { trimByChars } from '../_internal/baseTrim';
3
+ /**
4
+ * 移除字符串末尾的空白字符,或移除末尾在 chars 中出现的字符。
5
+ *
6
+ * @param value - 待处理的值
7
+ * @param chars - 要移除的字符集合;省略时移除空白字符
8
+ * @returns 裁剪后的字符串
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * zhiaiwanUtils.trimEnd(' abc ');
13
+ * // => ' abc'
14
+ *
15
+ * zhiaiwanUtils.trimEnd('-_-abc-_-', '_-');
16
+ * // => '-_-abc'
17
+ * ```
18
+ *
19
+ * @since 1.0.0
20
+ * @category String
21
+ */
22
+ export default function trimEnd(value, chars) {
23
+ return trimByChars(coerceToString(value), chars, 'end');
24
+ }
@@ -0,0 +1,24 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import { trimByChars } from '../_internal/baseTrim';
3
+ /**
4
+ * 移除字符串开头的空白字符,或移除开头在 chars 中出现的字符。
5
+ *
6
+ * @param value - 待处理的值
7
+ * @param chars - 要移除的字符集合;省略时移除空白字符
8
+ * @returns 裁剪后的字符串
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * zhiaiwanUtils.trimStart(' abc ');
13
+ * // => 'abc '
14
+ *
15
+ * zhiaiwanUtils.trimStart('-_-abc-_-', '_-');
16
+ * // => 'abc-_-'
17
+ * ```
18
+ *
19
+ * @since 1.0.0
20
+ * @category String
21
+ */
22
+ export default function trimStart(value, chars) {
23
+ return trimByChars(coerceToString(value), chars, 'start');
24
+ }
@@ -0,0 +1,20 @@
1
+ import coerceToString from '../_internal/coerceToString';
2
+ import { unescapeHtml } from '../_internal/htmlEscape';
3
+ /**
4
+ * 将 HTML 实体还原为对应字符。
5
+ *
6
+ * @param value - 待反转义的值
7
+ * @returns 反转义后的字符串
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * zhiaiwanUtils.unescape('fred, barney, &amp; pebbles');
12
+ * // => 'fred, barney, & pebbles'
13
+ * ```
14
+ *
15
+ * @since 1.0.0
16
+ * @category String
17
+ */
18
+ export default function unescape(value) {
19
+ return unescapeHtml(coerceToString(value));
20
+ }
@@ -0,0 +1,19 @@
1
+ import upperFirstInternal from '../_internal/upperFirst';
2
+ /**
3
+ * 将字符串首字符转换为大写。
4
+ *
5
+ * @param string - 待转换字符串
6
+ * @returns 首字符大写后的字符串
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.upperFirst('fred');
11
+ * // => 'Fred'
12
+ * ```
13
+ *
14
+ * @since 1.0.0
15
+ * @category String
16
+ */
17
+ export default function upperFirst(string) {
18
+ return upperFirstInternal(String(string !== null && string !== void 0 ? string : ''));
19
+ }
@@ -0,0 +1,45 @@
1
+ import { normalizeTreeMaxDepth } from '../_internal/baseTreeTraverse';
2
+ import forEachTree from './forEachTree';
3
+ /**
4
+ * 收集树中所有满足 `options.predicate` 的节点;DFS 遍历全部节点。
5
+ *
6
+ * @param tree - 树根节点或根节点数组
7
+ * @param options - 遍历与匹配配置,含 `predicate`、`maxDepth` 及字段映射项
8
+ * @returns 命中节点数组;`predicate` 未传或非函数时返回 `[]`
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * filterTreeNodes(
13
+ * {
14
+ * id: 1,
15
+ * title: '根',
16
+ * children: [
17
+ * { id: 2, title: '启用', status: 1 },
18
+ * { id: 3, title: '禁用', status: 0 },
19
+ * ],
20
+ * },
21
+ * { predicate: (node) => node.status === 1 },
22
+ * );
23
+ * // => [{ id: 2, title: '启用', status: 1 }]
24
+ * ```
25
+ *
26
+ * @since 1.0.0
27
+ * @category Tree
28
+ */
29
+ export default function filterTreeNodes(tree, options) {
30
+ if (typeof (options === null || options === void 0 ? void 0 : options.predicate) !== 'function') {
31
+ return [];
32
+ }
33
+ if (tree == null) {
34
+ return [];
35
+ }
36
+ const { predicate, maxDepth: maxDepthInput, ...traverseOptions } = options;
37
+ const maxDepth = normalizeTreeMaxDepth(maxDepthInput);
38
+ const matched = [];
39
+ forEachTree(tree, (node, parent, depth, index, meta) => {
40
+ if (predicate(node, parent, depth, index, meta)) {
41
+ matched.push(node);
42
+ }
43
+ }, { ...traverseOptions, maxDepth });
44
+ return matched;
45
+ }