@visactor/vutils 1.0.24 → 1.0.26

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 (452) hide show
  1. package/README.zh-CN.md +12 -0
  2. package/REGRESSION.md +36 -0
  3. package/cjs/angle.d.ts +61 -0
  4. package/cjs/angle.js +73 -7
  5. package/cjs/angle.js.map +1 -1
  6. package/cjs/color/Color.d.ts +3 -0
  7. package/cjs/color/Color.js +64 -10
  8. package/cjs/color/Color.js.map +1 -1
  9. package/cjs/color/hexToRgb.d.ts +5 -0
  10. package/cjs/color/hexToRgb.js +5 -0
  11. package/cjs/color/hexToRgb.js.map +1 -1
  12. package/cjs/color/rgbToHsl.js +5 -1
  13. package/cjs/color/rgbToHsl.js.map +1 -1
  14. package/cjs/common/array.d.ts +43 -0
  15. package/cjs/common/array.js +44 -0
  16. package/cjs/common/array.js.map +1 -1
  17. package/cjs/common/bisect.d.ts +21 -0
  18. package/cjs/common/bisect.js +29 -0
  19. package/cjs/common/bisect.js.map +1 -1
  20. package/cjs/common/bootstrap.d.ts +5 -0
  21. package/cjs/common/bootstrap.js +22 -0
  22. package/cjs/common/bootstrap.js.map +1 -0
  23. package/cjs/common/clone.js +6 -0
  24. package/cjs/common/clone.js.map +1 -1
  25. package/cjs/common/cloneDeep.js +4 -1
  26. package/cjs/common/cloneDeep.js.map +1 -1
  27. package/cjs/common/correlation.d.ts +3 -0
  28. package/cjs/common/correlation.js +83 -0
  29. package/cjs/common/correlation.js.map +1 -0
  30. package/cjs/common/debounce.js +22 -4
  31. package/cjs/common/debounce.js.map +1 -1
  32. package/cjs/common/deviation.js +1 -2
  33. package/cjs/common/ecdf.d.ts +8 -0
  34. package/cjs/common/ecdf.js +11 -2
  35. package/cjs/common/ecdf.js.map +1 -1
  36. package/cjs/common/extent.d.ts +4 -0
  37. package/cjs/common/extent.js +4 -2
  38. package/cjs/common/extent.js.map +1 -1
  39. package/cjs/common/field.d.ts +6 -0
  40. package/cjs/common/field.js +3 -0
  41. package/cjs/common/field.js.map +1 -1
  42. package/cjs/common/has.d.ts +17 -0
  43. package/cjs/common/has.js +18 -1
  44. package/cjs/common/has.js.map +1 -1
  45. package/cjs/common/index.d.ts +5 -0
  46. package/cjs/common/index.js +34 -6
  47. package/cjs/common/index.js.map +1 -1
  48. package/cjs/common/interpolate.js +16 -3
  49. package/cjs/common/interpolate.js.map +1 -1
  50. package/cjs/common/isBase64.d.ts +6 -0
  51. package/cjs/common/isBase64.js +6 -0
  52. package/cjs/common/isBase64.js.map +1 -1
  53. package/cjs/common/isBoolean.d.ts +13 -0
  54. package/cjs/common/isBoolean.js +13 -1
  55. package/cjs/common/isBoolean.js.map +1 -1
  56. package/cjs/common/isEmpty.js +11 -1
  57. package/cjs/common/isEmpty.js.map +1 -1
  58. package/cjs/common/isEqual.js +19 -7
  59. package/cjs/common/isEqual.js.map +1 -1
  60. package/cjs/common/isFunction.d.ts +25 -0
  61. package/cjs/common/isFunction.js +27 -2
  62. package/cjs/common/isFunction.js.map +1 -1
  63. package/cjs/common/isNull.js +2 -1
  64. package/cjs/common/isNumber.d.ts +23 -0
  65. package/cjs/common/isNumber.js +23 -1
  66. package/cjs/common/isNumber.js.map +1 -1
  67. package/cjs/common/isNumeric.d.ts +25 -0
  68. package/cjs/common/isNumeric.js +25 -0
  69. package/cjs/common/isNumeric.js.map +1 -1
  70. package/cjs/common/isObject.d.ts +21 -0
  71. package/cjs/common/isObject.js +22 -0
  72. package/cjs/common/isObject.js.map +1 -1
  73. package/cjs/common/isObjectLike.d.ts +20 -0
  74. package/cjs/common/isObjectLike.js +21 -0
  75. package/cjs/common/isObjectLike.js.map +1 -1
  76. package/cjs/common/isPlainObject.d.ts +25 -0
  77. package/cjs/common/isPlainObject.js.map +1 -1
  78. package/cjs/common/isPrototype.js +1 -1
  79. package/cjs/common/isRegExp.js +1 -1
  80. package/cjs/common/isShallowEqual.js +1 -0
  81. package/cjs/common/isShallowEqual.js.map +1 -1
  82. package/cjs/common/isString.d.ts +13 -0
  83. package/cjs/common/isString.js +13 -1
  84. package/cjs/common/isString.js.map +1 -1
  85. package/cjs/common/isType.d.ts +6 -0
  86. package/cjs/common/isType.js +6 -0
  87. package/cjs/common/isType.js.map +1 -1
  88. package/cjs/common/isValidNumber.js.map +1 -1
  89. package/cjs/common/isValidUrl.js.map +1 -1
  90. package/cjs/common/kde.d.ts +28 -0
  91. package/cjs/common/kde.js +29 -5
  92. package/cjs/common/kde.js.map +1 -1
  93. package/cjs/common/mean.d.ts +2 -0
  94. package/cjs/common/mean.js +25 -0
  95. package/cjs/common/mean.js.map +1 -0
  96. package/cjs/common/merge.js +20 -4
  97. package/cjs/common/merge.js.map +1 -1
  98. package/cjs/common/mixin.js +14 -3
  99. package/cjs/common/mixin.js.map +1 -1
  100. package/cjs/common/normalQuantile.d.ts +5 -0
  101. package/cjs/common/normalQuantile.js +21 -0
  102. package/cjs/common/normalQuantile.js.map +1 -0
  103. package/cjs/common/number.d.ts +24 -0
  104. package/cjs/common/number.js +24 -1
  105. package/cjs/common/number.js.map +1 -1
  106. package/cjs/common/pad.d.ts +21 -0
  107. package/cjs/common/pad.js +21 -1
  108. package/cjs/common/pad.js.map +1 -1
  109. package/cjs/common/random.d.ts +3 -0
  110. package/cjs/common/random.js +13 -0
  111. package/cjs/common/random.js.map +1 -1
  112. package/cjs/common/regression-bootstrap.d.ts +14 -0
  113. package/cjs/common/regression-bootstrap.js +37 -0
  114. package/cjs/common/regression-bootstrap.js.map +1 -0
  115. package/cjs/common/regression-linear.d.ts +5 -0
  116. package/cjs/common/regression-linear.js +28 -39
  117. package/cjs/common/regression-linear.js.map +1 -1
  118. package/cjs/common/regression-logistic.d.ts +6 -0
  119. package/cjs/common/regression-logistic.js +25 -14
  120. package/cjs/common/regression-logistic.js.map +1 -1
  121. package/cjs/common/regression-lowess.d.ts +11 -1
  122. package/cjs/common/regression-lowess.js +125 -118
  123. package/cjs/common/regression-lowess.js.map +1 -1
  124. package/cjs/common/regression-polynomial.d.ts +1 -0
  125. package/cjs/common/regression-polynomial.js +24 -94
  126. package/cjs/common/regression-polynomial.js.map +1 -1
  127. package/cjs/common/regression-solver.d.ts +26 -0
  128. package/cjs/common/regression-solver.js +180 -0
  129. package/cjs/common/regression-solver.js.map +1 -0
  130. package/cjs/common/regression-utils.d.ts +13 -1
  131. package/cjs/common/regression-utils.js +27 -12
  132. package/cjs/common/regression-utils.js.map +1 -1
  133. package/cjs/common/throttle.js +3 -0
  134. package/cjs/common/throttle.js.map +1 -1
  135. package/cjs/common/toDate.js +22 -3
  136. package/cjs/common/toDate.js.map +1 -1
  137. package/cjs/common/uuid.d.ts +7 -0
  138. package/cjs/common/uuid.js +15 -1
  139. package/cjs/common/uuid.js.map +1 -1
  140. package/cjs/data-structure/bounds.d.ts +101 -0
  141. package/cjs/data-structure/bounds.js +74 -7
  142. package/cjs/data-structure/bounds.js.map +1 -1
  143. package/cjs/data-structure/hashTable.d.ts +4 -0
  144. package/cjs/data-structure/hashTable.js +11 -2
  145. package/cjs/data-structure/hashTable.js.map +1 -1
  146. package/cjs/data-structure/index.js +6 -2
  147. package/cjs/data-structure/index.js.map +1 -1
  148. package/cjs/data-structure/matrix.d.ts +91 -0
  149. package/cjs/data-structure/matrix.js +52 -4
  150. package/cjs/data-structure/matrix.js.map +1 -1
  151. package/cjs/data-structure/point.d.ts +3 -0
  152. package/cjs/data-structure/point.js +5 -1
  153. package/cjs/data-structure/point.js.map +1 -1
  154. package/cjs/dom.d.ts +36 -0
  155. package/cjs/dom.js +43 -1
  156. package/cjs/dom.js.map +1 -1
  157. package/cjs/fmin/blas1.js +10 -1
  158. package/cjs/fmin/blas1.js.map +1 -1
  159. package/cjs/fmin/conjugate-gradient.js +18 -3
  160. package/cjs/fmin/conjugate-gradient.js.map +1 -1
  161. package/cjs/fmin/linesearch.js +15 -1
  162. package/cjs/fmin/linesearch.js.map +1 -1
  163. package/cjs/fmin/nelder-mead.d.ts +1 -0
  164. package/cjs/fmin/nelder-mead.js +30 -10
  165. package/cjs/fmin/nelder-mead.js.map +1 -1
  166. package/cjs/format/number/formatDecimal.js +9 -1
  167. package/cjs/format/number/formatDecimal.js.map +1 -1
  168. package/cjs/format/number/formatGroup.js +7 -0
  169. package/cjs/format/number/formatGroup.js.map +1 -1
  170. package/cjs/format/number/formatPrefixAuto.js +8 -0
  171. package/cjs/format/number/formatPrefixAuto.js.map +1 -1
  172. package/cjs/format/number/formatRounded.js +7 -0
  173. package/cjs/format/number/formatRounded.js.map +1 -1
  174. package/cjs/format/number/formatTrim.js +7 -0
  175. package/cjs/format/number/formatTrim.js.map +1 -1
  176. package/cjs/format/number/number.js +39 -9
  177. package/cjs/format/number/number.js.map +1 -1
  178. package/cjs/format/time.js +23 -6
  179. package/cjs/format/time.js.map +1 -1
  180. package/cjs/geo/circle-intersection.d.ts +12 -0
  181. package/cjs/geo/circle-intersection.js +54 -9
  182. package/cjs/geo/circle-intersection.js.map +1 -1
  183. package/cjs/geo/constant.js +8 -1
  184. package/cjs/geo/constant.js.map +1 -1
  185. package/cjs/geo/invariant.d.ts +22 -0
  186. package/cjs/geo/invariant.js +24 -1
  187. package/cjs/geo/invariant.js.map +1 -1
  188. package/cjs/graphics/algorithm/aabb.js +7 -3
  189. package/cjs/graphics/algorithm/aabb.js.map +1 -1
  190. package/cjs/graphics/algorithm/intersect.d.ts +48 -0
  191. package/cjs/graphics/algorithm/intersect.js +75 -7
  192. package/cjs/graphics/algorithm/intersect.js.map +1 -1
  193. package/cjs/graphics/bounds-util.js +4 -2
  194. package/cjs/graphics/bounds-util.js.map +1 -1
  195. package/cjs/graphics/graph-util.js +4 -0
  196. package/cjs/graphics/graph-util.js.map +1 -1
  197. package/cjs/graphics/index.js +7 -4
  198. package/cjs/graphics/index.js.map +1 -1
  199. package/cjs/graphics/polygon.d.ts +12 -0
  200. package/cjs/graphics/polygon.js +28 -5
  201. package/cjs/graphics/polygon.js.map +1 -1
  202. package/cjs/graphics/text/measure/interface.d.ts +12 -0
  203. package/cjs/graphics/text/measure/textMeasure.d.ts +23 -0
  204. package/cjs/graphics/text/measure/textMeasure.js +50 -22
  205. package/cjs/graphics/text/measure/textMeasure.js.map +1 -1
  206. package/cjs/graphics/text/measure/util.js +1 -0
  207. package/cjs/graphics/text/measure/util.js.map +1 -1
  208. package/cjs/graphics/text/stringWidth.js +7 -3
  209. package/cjs/graphics/text/stringWidth.js.map +1 -1
  210. package/cjs/index.d.ts +6 -0
  211. package/cjs/index.js +19 -4
  212. package/cjs/index.js.map +1 -1
  213. package/cjs/logger.js +12 -2
  214. package/cjs/logger.js.map +1 -1
  215. package/cjs/lru.js +14 -6
  216. package/cjs/lru.js.map +1 -1
  217. package/cjs/math.d.ts +9 -0
  218. package/cjs/math.js +10 -0
  219. package/cjs/math.js.map +1 -1
  220. package/cjs/padding.d.ts +5 -0
  221. package/cjs/padding.js +5 -0
  222. package/cjs/padding.js.map +1 -1
  223. package/cjs/time/formatUtils.d.ts +6 -0
  224. package/cjs/time/formatUtils.js +7 -0
  225. package/cjs/time/formatUtils.js.map +1 -1
  226. package/dist/index.js +2035 -411
  227. package/dist/index.min.js +128 -1
  228. package/es/angle.d.ts +61 -0
  229. package/es/angle.js +66 -10
  230. package/es/angle.js.map +1 -1
  231. package/es/color/Color.d.ts +3 -0
  232. package/es/color/Color.js +64 -9
  233. package/es/color/Color.js.map +1 -1
  234. package/es/color/hexToRgb.d.ts +5 -0
  235. package/es/color/hexToRgb.js +5 -0
  236. package/es/color/hexToRgb.js.map +1 -1
  237. package/es/color/rgbToHsl.js +5 -1
  238. package/es/color/rgbToHsl.js.map +1 -1
  239. package/es/common/array.d.ts +43 -0
  240. package/es/common/array.js +44 -8
  241. package/es/common/array.js.map +1 -1
  242. package/es/common/bisect.d.ts +21 -0
  243. package/es/common/bisect.js +29 -4
  244. package/es/common/bisect.js.map +1 -1
  245. package/es/common/bootstrap.d.ts +5 -0
  246. package/es/common/bootstrap.js +14 -0
  247. package/es/common/bootstrap.js.map +1 -0
  248. package/es/common/clone.js +6 -0
  249. package/es/common/clone.js.map +1 -1
  250. package/es/common/cloneDeep.js +4 -1
  251. package/es/common/cloneDeep.js.map +1 -1
  252. package/es/common/correlation.d.ts +3 -0
  253. package/es/common/correlation.js +77 -0
  254. package/es/common/correlation.js.map +1 -0
  255. package/es/common/debounce.js +22 -4
  256. package/es/common/debounce.js.map +1 -1
  257. package/es/common/deviation.js +1 -2
  258. package/es/common/ecdf.d.ts +8 -0
  259. package/es/common/ecdf.js +11 -1
  260. package/es/common/ecdf.js.map +1 -1
  261. package/es/common/extent.d.ts +4 -0
  262. package/es/common/extent.js +8 -3
  263. package/es/common/extent.js.map +1 -1
  264. package/es/common/field.d.ts +6 -0
  265. package/es/common/field.js +3 -1
  266. package/es/common/field.js.map +1 -1
  267. package/es/common/has.d.ts +17 -0
  268. package/es/common/has.js +18 -1
  269. package/es/common/has.js.map +1 -1
  270. package/es/common/index.d.ts +5 -0
  271. package/es/common/index.js +24 -0
  272. package/es/common/index.js.map +1 -1
  273. package/es/common/interpolate.js +16 -3
  274. package/es/common/interpolate.js.map +1 -1
  275. package/es/common/isBase64.d.ts +6 -0
  276. package/es/common/isBase64.js +6 -0
  277. package/es/common/isBase64.js.map +1 -1
  278. package/es/common/isBoolean.d.ts +13 -0
  279. package/es/common/isBoolean.js +13 -1
  280. package/es/common/isBoolean.js.map +1 -1
  281. package/es/common/isEmpty.js +11 -1
  282. package/es/common/isEmpty.js.map +1 -1
  283. package/es/common/isEqual.js +19 -7
  284. package/es/common/isEqual.js.map +1 -1
  285. package/es/common/isFunction.d.ts +25 -0
  286. package/es/common/isFunction.js +27 -2
  287. package/es/common/isFunction.js.map +1 -1
  288. package/es/common/isNull.js +2 -1
  289. package/es/common/isNumber.d.ts +23 -0
  290. package/es/common/isNumber.js +23 -1
  291. package/es/common/isNumber.js.map +1 -1
  292. package/es/common/isNumeric.d.ts +25 -0
  293. package/es/common/isNumeric.js +25 -0
  294. package/es/common/isNumeric.js.map +1 -1
  295. package/es/common/isObject.d.ts +21 -0
  296. package/es/common/isObject.js +22 -0
  297. package/es/common/isObject.js.map +1 -1
  298. package/es/common/isObjectLike.d.ts +20 -0
  299. package/es/common/isObjectLike.js +21 -0
  300. package/es/common/isObjectLike.js.map +1 -1
  301. package/es/common/isPlainObject.d.ts +25 -0
  302. package/es/common/isPlainObject.js +26 -0
  303. package/es/common/isPlainObject.js.map +1 -1
  304. package/es/common/isPrototype.js +1 -1
  305. package/es/common/isRegExp.js +1 -1
  306. package/es/common/isShallowEqual.js +1 -0
  307. package/es/common/isShallowEqual.js.map +1 -1
  308. package/es/common/isString.d.ts +13 -0
  309. package/es/common/isString.js +13 -1
  310. package/es/common/isString.js.map +1 -1
  311. package/es/common/isType.d.ts +6 -0
  312. package/es/common/isType.js +6 -0
  313. package/es/common/isType.js.map +1 -1
  314. package/es/common/isValidNumber.js.map +1 -1
  315. package/es/common/isValidUrl.js.map +1 -1
  316. package/es/common/kde.d.ts +28 -0
  317. package/es/common/kde.js +29 -7
  318. package/es/common/kde.js.map +1 -1
  319. package/es/common/mean.d.ts +2 -0
  320. package/es/common/mean.js +19 -0
  321. package/es/common/mean.js.map +1 -0
  322. package/es/common/merge.js +22 -5
  323. package/es/common/merge.js.map +1 -1
  324. package/es/common/mixin.js +14 -3
  325. package/es/common/mixin.js.map +1 -1
  326. package/es/common/normalQuantile.d.ts +5 -0
  327. package/es/common/normalQuantile.js +15 -0
  328. package/es/common/normalQuantile.js.map +1 -0
  329. package/es/common/number.d.ts +24 -0
  330. package/es/common/number.js +24 -2
  331. package/es/common/number.js.map +1 -1
  332. package/es/common/pad.d.ts +21 -0
  333. package/es/common/pad.js +21 -1
  334. package/es/common/pad.js.map +1 -1
  335. package/es/common/random.d.ts +3 -0
  336. package/es/common/random.js +13 -1
  337. package/es/common/random.js.map +1 -1
  338. package/es/common/regression-bootstrap.d.ts +14 -0
  339. package/es/common/regression-bootstrap.js +31 -0
  340. package/es/common/regression-bootstrap.js.map +1 -0
  341. package/es/common/regression-linear.d.ts +5 -0
  342. package/es/common/regression-linear.js +25 -39
  343. package/es/common/regression-linear.js.map +1 -1
  344. package/es/common/regression-logistic.d.ts +6 -0
  345. package/es/common/regression-logistic.js +24 -16
  346. package/es/common/regression-logistic.js.map +1 -1
  347. package/es/common/regression-lowess.d.ts +11 -1
  348. package/es/common/regression-lowess.js +120 -118
  349. package/es/common/regression-lowess.js.map +1 -1
  350. package/es/common/regression-polynomial.d.ts +1 -0
  351. package/es/common/regression-polynomial.js +21 -89
  352. package/es/common/regression-polynomial.js.map +1 -1
  353. package/es/common/regression-solver.d.ts +26 -0
  354. package/es/common/regression-solver.js +168 -0
  355. package/es/common/regression-solver.js.map +1 -0
  356. package/es/common/regression-utils.d.ts +13 -1
  357. package/es/common/regression-utils.js +18 -9
  358. package/es/common/regression-utils.js.map +1 -1
  359. package/es/common/throttle.js +3 -0
  360. package/es/common/throttle.js.map +1 -1
  361. package/es/common/toDate.js +23 -3
  362. package/es/common/toDate.js.map +1 -1
  363. package/es/common/uuid.d.ts +7 -0
  364. package/es/common/uuid.js +15 -1
  365. package/es/common/uuid.js.map +1 -1
  366. package/es/data-structure/bounds.d.ts +101 -0
  367. package/es/data-structure/bounds.js +74 -8
  368. package/es/data-structure/bounds.js.map +1 -1
  369. package/es/data-structure/hashTable.d.ts +4 -0
  370. package/es/data-structure/hashTable.js +11 -2
  371. package/es/data-structure/hashTable.js.map +1 -1
  372. package/es/data-structure/index.js +2 -0
  373. package/es/data-structure/index.js.map +1 -1
  374. package/es/data-structure/matrix.d.ts +91 -0
  375. package/es/data-structure/matrix.js +52 -5
  376. package/es/data-structure/matrix.js.map +1 -1
  377. package/es/data-structure/point.d.ts +3 -0
  378. package/es/data-structure/point.js +5 -1
  379. package/es/data-structure/point.js.map +1 -1
  380. package/es/dom.d.ts +36 -0
  381. package/es/dom.js +43 -8
  382. package/es/dom.js.map +1 -1
  383. package/es/fmin/blas1.js +10 -0
  384. package/es/fmin/blas1.js.map +1 -1
  385. package/es/fmin/conjugate-gradient.js +18 -2
  386. package/es/fmin/conjugate-gradient.js.map +1 -1
  387. package/es/fmin/linesearch.js +15 -0
  388. package/es/fmin/linesearch.js.map +1 -1
  389. package/es/fmin/nelder-mead.d.ts +1 -0
  390. package/es/fmin/nelder-mead.js +29 -9
  391. package/es/fmin/nelder-mead.js.map +1 -1
  392. package/es/format/number/formatDecimal.js +9 -1
  393. package/es/format/number/formatDecimal.js.map +1 -1
  394. package/es/format/number/formatGroup.js +7 -0
  395. package/es/format/number/formatGroup.js.map +1 -1
  396. package/es/format/number/formatPrefixAuto.js +8 -0
  397. package/es/format/number/formatPrefixAuto.js.map +1 -1
  398. package/es/format/number/formatRounded.js +7 -0
  399. package/es/format/number/formatRounded.js.map +1 -1
  400. package/es/format/number/formatTrim.js +7 -0
  401. package/es/format/number/formatTrim.js.map +1 -1
  402. package/es/format/number/number.js +40 -8
  403. package/es/format/number/number.js.map +1 -1
  404. package/es/format/time.js +23 -5
  405. package/es/format/time.js.map +1 -1
  406. package/es/geo/circle-intersection.d.ts +12 -0
  407. package/es/geo/circle-intersection.js +54 -14
  408. package/es/geo/circle-intersection.js.map +1 -1
  409. package/es/geo/constant.js +8 -0
  410. package/es/geo/constant.js.map +1 -1
  411. package/es/geo/invariant.d.ts +22 -0
  412. package/es/geo/invariant.js +24 -0
  413. package/es/geo/invariant.js.map +1 -1
  414. package/es/graphics/algorithm/aabb.js +7 -3
  415. package/es/graphics/algorithm/aabb.js.map +1 -1
  416. package/es/graphics/algorithm/intersect.d.ts +48 -0
  417. package/es/graphics/algorithm/intersect.js +75 -12
  418. package/es/graphics/algorithm/intersect.js.map +1 -1
  419. package/es/graphics/bounds-util.js +4 -2
  420. package/es/graphics/bounds-util.js.map +1 -1
  421. package/es/graphics/graph-util.js +4 -0
  422. package/es/graphics/graph-util.js.map +1 -1
  423. package/es/graphics/index.js +2 -0
  424. package/es/graphics/index.js.map +1 -1
  425. package/es/graphics/polygon.d.ts +12 -0
  426. package/es/graphics/polygon.js +28 -6
  427. package/es/graphics/polygon.js.map +1 -1
  428. package/es/graphics/text/measure/interface.d.ts +12 -0
  429. package/es/graphics/text/measure/textMeasure.d.ts +23 -0
  430. package/es/graphics/text/measure/textMeasure.js +46 -21
  431. package/es/graphics/text/measure/textMeasure.js.map +1 -1
  432. package/es/graphics/text/measure/util.js +1 -0
  433. package/es/graphics/text/measure/util.js.map +1 -1
  434. package/es/graphics/text/stringWidth.js +7 -3
  435. package/es/graphics/text/stringWidth.js.map +1 -1
  436. package/es/index.d.ts +6 -0
  437. package/es/index.js +15 -1
  438. package/es/index.js.map +1 -1
  439. package/es/logger.js +12 -1
  440. package/es/logger.js.map +1 -1
  441. package/es/lru.js +14 -6
  442. package/es/lru.js.map +1 -1
  443. package/es/math.d.ts +9 -0
  444. package/es/math.js +10 -1
  445. package/es/math.js.map +1 -1
  446. package/es/padding.d.ts +5 -0
  447. package/es/padding.js +5 -1
  448. package/es/padding.js.map +1 -1
  449. package/es/time/formatUtils.d.ts +6 -0
  450. package/es/time/formatUtils.js +7 -1
  451. package/es/time/formatUtils.js.map +1 -1
  452. package/package.json +4 -3
@@ -12,14 +12,20 @@ function objectKeys(obj) {
12
12
  return Object.keys(obj);
13
13
  }
14
14
 
15
+ // Adapted from https://github.com/antvis/F2/blob/master/packages/f2/src/base/equal.ts by zengyue
16
+ // License: https://github.com/antvis/F2/blob/master/packages/f2/LICENSE
15
17
  export function isEqual(a, b, options) {
16
18
  if (a === b) return !0;
17
19
  if (typeof a != typeof b) return !1;
18
- if (null == a || null == b) return !1;
19
- if (Number.isNaN(a) && Number.isNaN(b)) return !0;
20
+ // null 和 undefined
21
+ if (null == a || null == b) return !1;
22
+ // 特殊处理NaN
23
+ if (Number.isNaN(a) && Number.isNaN(b)) return !0;
20
24
  if (objToString(a) !== objToString(b)) return !1;
21
- if (isFunction(a)) return !!(null == options ? void 0 : options.skipFunction);
22
- if ("object" != typeof a) return !1;
25
+ // 如果是function,则不相等
26
+ if (isFunction(a)) return !!(null == options ? void 0 : options.skipFunction);
27
+ // 值类型,Number String Boolean
28
+ if ("object" != typeof a) return !1;
23
29
  if (isArray(a)) {
24
30
  if (a.length !== b.length) return !1;
25
31
  for (let i = a.length - 1; i >= 0; i--) if (!isEqual(a[i], b[i], options)) return !1;
@@ -27,10 +33,16 @@ export function isEqual(a, b, options) {
27
33
  }
28
34
  if (!isPlainObject(a)) return !1;
29
35
  const ka = objectKeys(a), kb = objectKeys(b);
36
+ // having the same number of owned properties (keys incorporates hasOwnProperty)
30
37
  if (ka.length !== kb.length) return !1;
31
- ka.sort(), kb.sort();
32
- for (let i = ka.length - 1; i >= 0; i--) if (ka[i] != kb[i]) return !1;
33
- for (let i = ka.length - 1; i >= 0; i--) {
38
+ // the same set of keys (although not necessarily the same order),
39
+ ka.sort(), kb.sort();
40
+ // ~~~cheap key test
41
+ for (let i = ka.length - 1; i >= 0; i--)
42
+ // eslint-disable-next-line eqeqeq
43
+ if (ka[i] != kb[i]) return !1;
44
+ // equivalent values for every corresponding key, and ~~~possibly expensive deep test
45
+ for (let i = ka.length - 1; i >= 0; i--) {
34
46
  const key = ka[i];
35
47
  if (!isEqual(a[key], b[key], options)) return !1;
36
48
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isEqual.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,SAAS,WAAW,CAAC,GAAQ;IAC3B,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,GAAQ;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAID,MAAM,UAAU,OAAO,CAAC,CAAM,EAAE,CAAM,EAAE,OAAoC;IAC1E,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE;QACzB,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtC,OAAO,IAAI,CAAC;KACb;IAED,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;QACjB,OAAO,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAA,CAAC;KAChC;IAGD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;QACd,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;gBACjC,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEzB,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAGD,EAAE,CAAC,IAAI,EAAE,CAAC;IACV,EAAE,CAAC,IAAI,EAAE,CAAC;IAEV,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAEvC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC;SACd;KACF;IAGD,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE;YACrC,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC","file":"isEqual.js","sourcesContent":["import isArray from './isArray';\nimport isFunction from './isFunction';\nimport isPlainObject from './isPlainObject';\n\nfunction objToString(obj: any) {\n return Object.prototype.toString.call(obj);\n}\n\nfunction objectKeys(obj: any) {\n return Object.keys(obj);\n}\n\n// Adapted from https://github.com/antvis/F2/blob/master/packages/f2/src/base/equal.ts by zengyue\n// License: https://github.com/antvis/F2/blob/master/packages/f2/LICENSE\nexport function isEqual(a: any, b: any, options?: { skipFunction?: boolean }): boolean {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n // null 和 undefined\n if (a == null || b == null) {\n return false;\n }\n\n // 特殊处理NaN\n if (Number.isNaN(a) && Number.isNaN(b)) {\n return true;\n }\n\n if (objToString(a) !== objToString(b)) {\n return false;\n }\n\n // 如果是function,则不相等\n if (isFunction(a)) {\n return !!options?.skipFunction;\n }\n\n // 值类型,Number String Boolean\n if (typeof a !== 'object') {\n return false;\n }\n\n if (isArray(a)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = a.length - 1; i >= 0; i--) {\n if (!isEqual(a[i], b[i], options)) {\n return false;\n }\n }\n return true;\n }\n\n if (!isPlainObject(a)) {\n return false;\n }\n\n const ka = objectKeys(a);\n const kb = objectKeys(b);\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) {\n return false;\n }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (let i = ka.length - 1; i >= 0; i--) {\n // eslint-disable-next-line eqeqeq\n if (ka[i] != kb[i]) {\n return false;\n }\n }\n\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (let i = ka.length - 1; i >= 0; i--) {\n const key = ka[i];\n if (!isEqual(a[key], b[key], options)) {\n return false;\n }\n }\n\n return true;\n}\n"]}
1
+ {"version":3,"sources":["../src/common/isEqual.ts"],"names":[],"mappings":"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","file":"isEqual.js","sourcesContent":["import isArray from './isArray';\nimport isFunction from './isFunction';\nimport isPlainObject from './isPlainObject';\n\nfunction objToString(obj: any) {\n return Object.prototype.toString.call(obj);\n}\n\nfunction objectKeys(obj: any) {\n return Object.keys(obj);\n}\n\n// Adapted from https://github.com/antvis/F2/blob/master/packages/f2/src/base/equal.ts by zengyue\n// License: https://github.com/antvis/F2/blob/master/packages/f2/LICENSE\nexport function isEqual(a: any, b: any, options?: { skipFunction?: boolean }): boolean {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n // null 和 undefined\n if (a == null || b == null) {\n return false;\n }\n\n // 特殊处理NaN\n if (Number.isNaN(a) && Number.isNaN(b)) {\n return true;\n }\n\n if (objToString(a) !== objToString(b)) {\n return false;\n }\n\n // 如果是function,则不相等\n if (isFunction(a)) {\n return !!options?.skipFunction;\n }\n\n // 值类型,Number String Boolean\n if (typeof a !== 'object') {\n return false;\n }\n\n if (isArray(a)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = a.length - 1; i >= 0; i--) {\n if (!isEqual(a[i], b[i], options)) {\n return false;\n }\n }\n return true;\n }\n\n if (!isPlainObject(a)) {\n return false;\n }\n\n const ka = objectKeys(a);\n const kb = objectKeys(b);\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) {\n return false;\n }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (let i = ka.length - 1; i >= 0; i--) {\n // eslint-disable-next-line eqeqeq\n if (ka[i] != kb[i]) {\n return false;\n }\n }\n\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (let i = ka.length - 1; i >= 0; i--) {\n const key = ka[i];\n if (!isEqual(a[key], b[key], options)) {\n return false;\n }\n }\n\n return true;\n}\n"]}
@@ -1,2 +1,27 @@
1
+ /**
2
+ * Checks if `value` is classified as a `Function` object.
3
+ *
4
+ * @param {*} value The value to check.
5
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
6
+ * @example
7
+ *
8
+ * isFunction(class Any{})
9
+ * // => true
10
+ *
11
+ * isFunction(() => {})
12
+ * // => true
13
+ *
14
+ * isFunction(async () => {})
15
+ * // => true
16
+ *
17
+ * isFunction(function * Any() {})
18
+ * // => true
19
+ *
20
+ * isFunction(Math.round)
21
+ * // => true
22
+ *
23
+ * isFunction(/abc/)
24
+ * // => false
25
+ */
1
26
  declare const isFunction: (value: any) => value is Function;
2
27
  export default isFunction;
@@ -1,4 +1,29 @@
1
+ /**
2
+ * Checks if `value` is classified as a `Function` object.
3
+ *
4
+ * @param {*} value The value to check.
5
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
6
+ * @example
7
+ *
8
+ * isFunction(class Any{})
9
+ * // => true
10
+ *
11
+ * isFunction(() => {})
12
+ * // => true
13
+ *
14
+ * isFunction(async () => {})
15
+ * // => true
16
+ *
17
+ * isFunction(function * Any() {})
18
+ * // => true
19
+ *
20
+ * isFunction(Math.round)
21
+ * // => true
22
+ *
23
+ * isFunction(/abc/)
24
+ * // => false
25
+ */
26
+ // eslint-disable-next-line @typescript-eslint/ban-types
1
27
  const isFunction = value => "function" == typeof value;
2
28
 
3
- export default isFunction;
4
- //# sourceMappingURL=isFunction.js.map
29
+ export default isFunction;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isFunction.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,GAAG,CAAC,KAAU,EAAqB,EAAE;IACnD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","file":"isFunction.js","sourcesContent":["/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * isFunction(class Any{})\n * // => true\n *\n * isFunction(() => {})\n * // => true\n *\n * isFunction(async () => {})\n * // => true\n *\n * isFunction(function * Any() {})\n * // => true\n *\n * isFunction(Math.round)\n * // => true\n *\n * isFunction(/abc/)\n * // => false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isFunction = (value: any): value is Function => {\n return typeof value === 'function';\n};\n\nexport default isFunction;\n"]}
1
+ {"version":3,"sources":["../src/common/isFunction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wDAAwD;AACxD,MAAM,UAAU,GAAG,CAAC,KAAU,EAAqB,EAAE;IACnD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","file":"isFunction.js","sourcesContent":["/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * isFunction(class Any{})\n * // => true\n *\n * isFunction(() => {})\n * // => true\n *\n * isFunction(async () => {})\n * // => true\n *\n * isFunction(function * Any() {})\n * // => true\n *\n * isFunction(Math.round)\n * // => true\n *\n * isFunction(/abc/)\n * // => false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isFunction = (value: any): value is Function => {\n return typeof value === 'function';\n};\n\nexport default isFunction;\n"]}
@@ -1,3 +1,4 @@
1
1
  const isNull = value => null === value;
2
2
 
3
- export default isNull;
3
+ export default isNull;
4
+ //# sourceMappingURL=isNull.js.map
@@ -1,2 +1,25 @@
1
+ /**
2
+ * Checks if `value` is classified as a `Number` primitive or object.
3
+ *
4
+ * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
5
+ * classified as numbers, use the `Number.isFinite` method.
6
+ *
7
+ * @param {*} value The value to check.
8
+ * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.
9
+ * @returns {boolean} Returns `true` if `value` is a number, else `false`.
10
+ * @example
11
+ *
12
+ * isNumber(3)
13
+ * // => true
14
+ *
15
+ * isNumber(Number.MIN_VALUE)
16
+ * // => true
17
+ *
18
+ * isNumber(Infinity)
19
+ * // => true
20
+ *
21
+ * isNumber('3')
22
+ * // => false
23
+ */
1
24
  declare const isNumber: (value: any, fuzzy?: boolean) => value is number;
2
25
  export default isNumber;
@@ -1,6 +1,28 @@
1
1
  import isType from "./isType";
2
2
 
3
- const isNumber = (value, fuzzy = !1) => {
3
+ /**
4
+ * Checks if `value` is classified as a `Number` primitive or object.
5
+ *
6
+ * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
7
+ * classified as numbers, use the `Number.isFinite` method.
8
+ *
9
+ * @param {*} value The value to check.
10
+ * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.
11
+ * @returns {boolean} Returns `true` if `value` is a number, else `false`.
12
+ * @example
13
+ *
14
+ * isNumber(3)
15
+ * // => true
16
+ *
17
+ * isNumber(Number.MIN_VALUE)
18
+ * // => true
19
+ *
20
+ * isNumber(Infinity)
21
+ * // => true
22
+ *
23
+ * isNumber('3')
24
+ * // => false
25
+ */ const isNumber = (value, fuzzy = !1) => {
4
26
  const type = typeof value;
5
27
  return fuzzy ? "number" === type : "number" === type || isType(value, "Number");
6
28
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isNumber.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAyB9B,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,QAAiB,KAAK,EAAmB,EAAE;IACvE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,IAAI,KAAK,EAAE;QACT,OAAO,IAAI,KAAK,QAAQ,CAAC;KAC1B;IACD,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isNumber.js","sourcesContent":["import isType from './isType';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `Number.isFinite` method.\n *\n * @param {*} value The value to check.\n * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * isNumber(3)\n * // => true\n *\n * isNumber(Number.MIN_VALUE)\n * // => true\n *\n * isNumber(Infinity)\n * // => true\n *\n * isNumber('3')\n * // => false\n */\nconst isNumber = (value: any, fuzzy: boolean = false): value is number => {\n const type = typeof value;\n if (fuzzy) {\n return type === 'number';\n }\n return type === 'number' || isType(value, 'Number');\n};\n\nexport default isNumber;\n"]}
1
+ {"version":3,"sources":["../src/common/isNumber.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,QAAiB,KAAK,EAAmB,EAAE;IACvE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,IAAI,KAAK,EAAE;QACT,OAAO,IAAI,KAAK,QAAQ,CAAC;KAC1B;IACD,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isNumber.js","sourcesContent":["import isType from './isType';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `Number.isFinite` method.\n *\n * @param {*} value The value to check.\n * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * isNumber(3)\n * // => true\n *\n * isNumber(Number.MIN_VALUE)\n * // => true\n *\n * isNumber(Infinity)\n * // => true\n *\n * isNumber('3')\n * // => false\n */\nconst isNumber = (value: any, fuzzy: boolean = false): value is number => {\n const type = typeof value;\n if (fuzzy) {\n return type === 'number';\n }\n return type === 'number' || isType(value, 'Number');\n};\n\nexport default isNumber;\n"]}
@@ -1,2 +1,27 @@
1
+ /**
2
+ * Checks if `value` is classified as a legal string number
3
+ *
4
+ * @param {*} value The string value to check.
5
+ * @returns {boolean} Returns `true` if `value` is a legal string number, else `false`.
6
+ * @example
7
+ *
8
+ * isNumeric(1)
9
+ * // => false
10
+ *
11
+ * isNumeric('2.0')
12
+ * // => true
13
+ *
14
+ * isNumeric('3a')
15
+ * // => false
16
+ *
17
+ * isNumeric('4.a')
18
+ * // => false
19
+ *
20
+ * isNumeric(Infinity)
21
+ * // => false
22
+ *
23
+ * isNumeric('01')
24
+ * // => true
25
+ */
1
26
  declare const isNumeric: (value: string) => boolean;
2
27
  export default isNumeric;
@@ -1,3 +1,28 @@
1
+ /**
2
+ * Checks if `value` is classified as a legal string number
3
+ *
4
+ * @param {*} value The string value to check.
5
+ * @returns {boolean} Returns `true` if `value` is a legal string number, else `false`.
6
+ * @example
7
+ *
8
+ * isNumeric(1)
9
+ * // => false
10
+ *
11
+ * isNumeric('2.0')
12
+ * // => true
13
+ *
14
+ * isNumeric('3a')
15
+ * // => false
16
+ *
17
+ * isNumeric('4.a')
18
+ * // => false
19
+ *
20
+ * isNumeric(Infinity)
21
+ * // => false
22
+ *
23
+ * isNumeric('01')
24
+ * // => true
25
+ */
1
26
  const isNumeric = value => "string" == typeof value && (!isNaN(Number(value)) && !isNaN(parseFloat(value)));
2
27
 
3
28
  export default isNumeric;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isNumeric.ts"],"names":[],"mappings":"AAyBA,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","file":"isNumeric.js","sourcesContent":["/**\n * Checks if `value` is classified as a legal string number\n *\n * @param {*} value The string value to check.\n * @returns {boolean} Returns `true` if `value` is a legal string number, else `false`.\n * @example\n *\n * isNumeric(1)\n * // => false\n *\n * isNumeric('2.0')\n * // => true\n *\n * isNumeric('3a')\n * // => false\n *\n * isNumeric('4.a')\n * // => false\n *\n * isNumeric(Infinity)\n * // => false\n *\n * isNumeric('01')\n * // => true\n */\nconst isNumeric = (value: string): boolean => {\n if (typeof value !== 'string') {\n return false;\n }\n return !isNaN(Number(value)) && !isNaN(parseFloat(value));\n};\n\nexport default isNumeric;\n"]}
1
+ {"version":3,"sources":["../src/common/isNumeric.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","file":"isNumeric.js","sourcesContent":["/**\n * Checks if `value` is classified as a legal string number\n *\n * @param {*} value The string value to check.\n * @returns {boolean} Returns `true` if `value` is a legal string number, else `false`.\n * @example\n *\n * isNumeric(1)\n * // => false\n *\n * isNumeric('2.0')\n * // => true\n *\n * isNumeric('3a')\n * // => false\n *\n * isNumeric('4.a')\n * // => false\n *\n * isNumeric(Infinity)\n * // => false\n *\n * isNumeric('01')\n * // => true\n */\nconst isNumeric = (value: string): boolean => {\n if (typeof value !== 'string') {\n return false;\n }\n return !isNaN(Number(value)) && !isNaN(parseFloat(value));\n};\n\nexport default isNumeric;\n"]}
@@ -1,2 +1,23 @@
1
+ /**
2
+ * Checks if `value` is the
3
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
4
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
5
+ *
6
+ * @param {*} value The value to check.
7
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
8
+ * @example
9
+ *
10
+ * isObject({})
11
+ * // => true
12
+ *
13
+ * isObject([1, 2, 3])
14
+ * // => true
15
+ *
16
+ * isObject(Function)
17
+ * // => true
18
+ *
19
+ * isObject(null)
20
+ * // => false
21
+ */
1
22
  declare const isObject: <T = object>(value: any) => value is T;
2
23
  export default isObject;
@@ -1,3 +1,25 @@
1
+ /**
2
+ * Checks if `value` is the
3
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
4
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
5
+ *
6
+ * @param {*} value The value to check.
7
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
8
+ * @example
9
+ *
10
+ * isObject({})
11
+ * // => true
12
+ *
13
+ * isObject([1, 2, 3])
14
+ * // => true
15
+ *
16
+ * isObject(Function)
17
+ * // => true
18
+ *
19
+ * isObject(null)
20
+ * // => false
21
+ */
22
+ // eslint-disable-next-line @typescript-eslint/ban-types
1
23
  const isObject = value => {
2
24
  const type = typeof value;
3
25
  return null !== value && "object" === type || "function" === type;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isObject.ts"],"names":[],"mappings":"AAsBA,MAAM,QAAQ,GAAG,CAAa,KAAU,EAAc,EAAE;IACtD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,UAAU,CAAC;AACtE,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isObject.js","sourcesContent":["/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * isObject({})\n * // => true\n *\n * isObject([1, 2, 3])\n * // => true\n *\n * isObject(Function)\n * // => true\n *\n * isObject(null)\n * // => false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isObject = <T = object>(value: any): value is T => {\n const type = typeof value;\n return (value !== null && type === 'object') || type === 'function';\n};\n\nexport default isObject;\n"]}
1
+ {"version":3,"sources":["../src/common/isObject.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wDAAwD;AACxD,MAAM,QAAQ,GAAG,CAAa,KAAU,EAAc,EAAE;IACtD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,UAAU,CAAC;AACtE,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isObject.js","sourcesContent":["/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * isObject({})\n * // => true\n *\n * isObject([1, 2, 3])\n * // => true\n *\n * isObject(Function)\n * // => true\n *\n * isObject(null)\n * // => false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isObject = <T = object>(value: any): value is T => {\n const type = typeof value;\n return (value !== null && type === 'object') || type === 'function';\n};\n\nexport default isObject;\n"]}
@@ -1,2 +1,22 @@
1
+ /**
2
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
3
+ * and has a `typeof` result of "object".
4
+ *
5
+ * @param {*} value The value to check.
6
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
7
+ * @example
8
+ *
9
+ * isObjectLike({})
10
+ * // => true
11
+ *
12
+ * isObjectLike([1, 2, 3])
13
+ * // => true
14
+ *
15
+ * isObjectLike(Function)
16
+ * // => false
17
+ *
18
+ * isObjectLike(null)
19
+ * // => false
20
+ */
1
21
  declare const isObjectLike: (value: any) => value is object | Function | any[];
2
22
  export default isObjectLike;
@@ -1,3 +1,24 @@
1
+ /**
2
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
3
+ * and has a `typeof` result of "object".
4
+ *
5
+ * @param {*} value The value to check.
6
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
7
+ * @example
8
+ *
9
+ * isObjectLike({})
10
+ * // => true
11
+ *
12
+ * isObjectLike([1, 2, 3])
13
+ * // => true
14
+ *
15
+ * isObjectLike(Function)
16
+ * // => false
17
+ *
18
+ * isObjectLike(null)
19
+ * // => false
20
+ */
21
+ // eslint-disable-next-line @typescript-eslint/ban-types
1
22
  const isObjectLike = value => "object" == typeof value && null !== value;
2
23
 
3
24
  export default isObjectLike;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isObjectLike.ts"],"names":[],"mappings":"AAqBA,MAAM,YAAY,GAAG,CAAC,KAAU,EAA2C,EAAE;IAC3E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","file":"isObjectLike.js","sourcesContent":["/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * isObjectLike({})\n * // => true\n *\n * isObjectLike([1, 2, 3])\n * // => true\n *\n * isObjectLike(Function)\n * // => false\n *\n * isObjectLike(null)\n * // => false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isObjectLike = (value: any): value is object | Function | Array<any> => {\n return typeof value === 'object' && value !== null;\n};\n\nexport default isObjectLike;\n"]}
1
+ {"version":3,"sources":["../src/common/isObjectLike.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wDAAwD;AACxD,MAAM,YAAY,GAAG,CAAC,KAAU,EAA2C,EAAE;IAC3E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","file":"isObjectLike.js","sourcesContent":["/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * isObjectLike({})\n * // => true\n *\n * isObjectLike([1, 2, 3])\n * // => true\n *\n * isObjectLike(Function)\n * // => false\n *\n * isObjectLike(null)\n * // => false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isObjectLike = (value: any): value is object | Function | Array<any> => {\n return typeof value === 'object' && value !== null;\n};\n\nexport default isObjectLike;\n"]}
@@ -1,2 +1,27 @@
1
+ /**
2
+ * @see https://github.com/lodash/lodash/blob/master/isPlainObject.js
3
+ * Checks if `value` is a plain object, that is, an object created by the
4
+ * `Object` constructor or one with a `[[Prototype]]` of `null`.
5
+ *
6
+ * @param {*} value The value to check.
7
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
8
+ * @example
9
+ *
10
+ * function Foo() {
11
+ * this.a = 1
12
+ * }
13
+ *
14
+ * isPlainObject(new Foo)
15
+ * // => false
16
+ *
17
+ * isPlainObject([1, 2, 3])
18
+ * // => false
19
+ *
20
+ * isPlainObject({ 'x': 0, 'y': 0 })
21
+ * // => true
22
+ *
23
+ * isPlainObject(Object.create(null))
24
+ * // => true
25
+ */
1
26
  declare const isPlainObject: (value: any) => value is object;
2
27
  export default isPlainObject;
@@ -2,6 +2,32 @@ import isObjectLike from "./isObjectLike";
2
2
 
3
3
  import isType from "./isType";
4
4
 
5
+ /**
6
+ * @see https://github.com/lodash/lodash/blob/master/isPlainObject.js
7
+ * Checks if `value` is a plain object, that is, an object created by the
8
+ * `Object` constructor or one with a `[[Prototype]]` of `null`.
9
+ *
10
+ * @param {*} value The value to check.
11
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
12
+ * @example
13
+ *
14
+ * function Foo() {
15
+ * this.a = 1
16
+ * }
17
+ *
18
+ * isPlainObject(new Foo)
19
+ * // => false
20
+ *
21
+ * isPlainObject([1, 2, 3])
22
+ * // => false
23
+ *
24
+ * isPlainObject({ 'x': 0, 'y': 0 })
25
+ * // => true
26
+ *
27
+ * isPlainObject(Object.create(null))
28
+ * // => true
29
+ */
30
+ // eslint-disable-next-line @typescript-eslint/ban-types
5
31
  const isPlainObject = function(value) {
6
32
  if (!isObjectLike(value) || !isType(value, "Object")) return !1;
7
33
  if (null === Object.getPrototypeOf(value)) return !0;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isPlainObject.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AA4B9B,MAAM,aAAa,GAAG,UAAU,KAAU;IACxC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;QACpD,OAAO,KAAK,CAAC;KACd;IACD,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACzC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QAC5C,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACtC;IACD,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AAChD,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","file":"isPlainObject.js","sourcesContent":["import isObjectLike from './isObjectLike';\nimport isType from './isType';\n\n/**\n * @see https://github.com/lodash/lodash/blob/master/isPlainObject.js\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1\n * }\n *\n * isPlainObject(new Foo)\n * // => false\n *\n * isPlainObject([1, 2, 3])\n * // => false\n *\n * isPlainObject({ 'x': 0, 'y': 0 })\n * // => true\n *\n * isPlainObject(Object.create(null))\n * // => true\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isPlainObject = function (value: any): value is object {\n if (!isObjectLike(value) || !isType(value, 'Object')) {\n return false;\n }\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n};\n\nexport default isPlainObject;\n"]}
1
+ {"version":3,"sources":["../src/common/isPlainObject.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wDAAwD;AACxD,MAAM,aAAa,GAAG,UAAU,KAAU;IACxC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;QACpD,OAAO,KAAK,CAAC;KACd;IACD,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACzC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QAC5C,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACtC;IACD,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AAChD,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","file":"isPlainObject.js","sourcesContent":["import isObjectLike from './isObjectLike';\nimport isType from './isType';\n\n/**\n * @see https://github.com/lodash/lodash/blob/master/isPlainObject.js\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1\n * }\n *\n * isPlainObject(new Foo)\n * // => false\n *\n * isPlainObject([1, 2, 3])\n * // => false\n *\n * isPlainObject({ 'x': 0, 'y': 0 })\n * // => true\n *\n * isPlainObject(Object.create(null))\n * // => true\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isPlainObject = function (value: any): value is object {\n if (!isObjectLike(value) || !isType(value, 'Object')) {\n return false;\n }\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n};\n\nexport default isPlainObject;\n"]}
@@ -4,4 +4,4 @@ const objectProto = Object.prototype, isPrototype = function(value) {
4
4
  };
5
5
 
6
6
  export default isPrototype;
7
- //# sourceMappingURL=isPrototype.js.map
7
+ //# sourceMappingURL=isPrototype.js.map
@@ -3,4 +3,4 @@ import isType from "./isType";
3
3
  const isRegExp = value => isType(value, "RegExp");
4
4
 
5
5
  export default isRegExp;
6
- //# sourceMappingURL=isRegExp.js.map
6
+ //# sourceMappingURL=isRegExp.js.map
@@ -4,6 +4,7 @@ import isObject from "./isObject";
4
4
 
5
5
  function is(x, y) {
6
6
  return x === y ? 0 !== x || 0 !== y || 1 / x == 1 / y : x != x && y != y;
7
+ // eslint-disable-next-line no-self-compare
7
8
  }
8
9
 
9
10
  function length(obj) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isShallowEqual.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,SAAS,EAAE,CAAC,CAAM,EAAE,CAAM;IACxB,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC9C;IAED,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,MAAM,CAAC,GAAQ;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAChB,OAAO,GAAG,CAAC,MAAM,CAAC;KACnB;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;KAChC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAS,EAAE,IAAS;IACjD,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;QAC1F,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE;QACnC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,GAAG,GAAG,IAAI,CAAC;IAEf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACnB,GAAG,GAAG,KAAK,CAAC;YACZ,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC","file":"isShallowEqual.js","sourcesContent":["import isArray from './isArray';\nimport isObject from './isObject';\n\nfunction is(x: any, y: any) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y; // NaN == NaN\n}\n\nfunction length(obj: any) {\n if (isArray(obj)) {\n return obj.length;\n }\n if (isObject(obj)) {\n return Object.keys(obj).length;\n }\n return 0;\n}\n\nexport function isShallowEqual(objA: any, objB: any) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (isArray(objA) !== isArray(objB)) {\n return false;\n }\n\n if (length(objA) !== length(objB)) {\n return false;\n }\n\n let ret = true;\n\n Object.keys(objA).forEach((k: any) => {\n const v = objA[k];\n\n if (!is(v, objB[k])) {\n ret = false;\n return ret;\n }\n return true;\n });\n\n return ret;\n}\n"]}
1
+ {"version":3,"sources":["../src/common/isShallowEqual.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,SAAS,EAAE,CAAC,CAAM,EAAE,CAAM;IACxB,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC9C;IACD,2CAA2C;IAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc;AAC3C,CAAC;AAED,SAAS,MAAM,CAAC,GAAQ;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAChB,OAAO,GAAG,CAAC,MAAM,CAAC;KACnB;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;KAChC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAS,EAAE,IAAS;IACjD,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;QAC1F,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE;QACnC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,GAAG,GAAG,IAAI,CAAC;IAEf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACnB,GAAG,GAAG,KAAK,CAAC;YACZ,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC","file":"isShallowEqual.js","sourcesContent":["import isArray from './isArray';\nimport isObject from './isObject';\n\nfunction is(x: any, y: any) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y; // NaN == NaN\n}\n\nfunction length(obj: any) {\n if (isArray(obj)) {\n return obj.length;\n }\n if (isObject(obj)) {\n return Object.keys(obj).length;\n }\n return 0;\n}\n\nexport function isShallowEqual(objA: any, objB: any) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (isArray(objA) !== isArray(objB)) {\n return false;\n }\n\n if (length(objA) !== length(objB)) {\n return false;\n }\n\n let ret = true;\n\n Object.keys(objA).forEach((k: any) => {\n const v = objA[k];\n\n if (!is(v, objB[k])) {\n ret = false;\n return ret;\n }\n return true;\n });\n\n return ret;\n}\n"]}
@@ -1,2 +1,15 @@
1
+ /**
2
+ * Checks if `value` is classified as a `String` primitive or object.
3
+ * @param {*} value The value to check.
4
+ * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.
5
+ * @returns {boolean} Returns `true` if `value` is a string, else `false`.
6
+ * @example
7
+ *
8
+ * isString('abc')
9
+ * // => true
10
+ *
11
+ * isString(1)
12
+ * // => false
13
+ */
1
14
  declare const isString: (value: any, fuzzy?: boolean) => value is string;
2
15
  export default isString;
@@ -1,6 +1,18 @@
1
1
  import isType from "./isType";
2
2
 
3
- const isString = (value, fuzzy = !1) => {
3
+ /**
4
+ * Checks if `value` is classified as a `String` primitive or object.
5
+ * @param {*} value The value to check.
6
+ * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.
7
+ * @returns {boolean} Returns `true` if `value` is a string, else `false`.
8
+ * @example
9
+ *
10
+ * isString('abc')
11
+ * // => true
12
+ *
13
+ * isString(1)
14
+ * // => false
15
+ */ const isString = (value, fuzzy = !1) => {
4
16
  const type = typeof value;
5
17
  return fuzzy ? "string" === type : "string" === type || isType(value, "String");
6
18
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isString.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAe9B,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,QAAiB,KAAK,EAAmB,EAAE;IACvE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,IAAI,KAAK,EAAE;QACT,OAAO,IAAI,KAAK,QAAQ,CAAC;KAC1B;IAED,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isString.js","sourcesContent":["import isType from './isType';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n * @param {*} value The value to check.\n * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * isString('abc')\n * // => true\n *\n * isString(1)\n * // => false\n */\nconst isString = (value: any, fuzzy: boolean = false): value is string => {\n const type = typeof value;\n if (fuzzy) {\n return type === 'string';\n }\n\n return type === 'string' || isType(value, 'String');\n};\n\nexport default isString;\n"]}
1
+ {"version":3,"sources":["../src/common/isString.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B;;;;;;;;;;;;GAYG;AACH,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,QAAiB,KAAK,EAAmB,EAAE;IACvE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,IAAI,KAAK,EAAE;QACT,OAAO,IAAI,KAAK,QAAQ,CAAC;KAC1B;IAED,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isString.js","sourcesContent":["import isType from './isType';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n * @param {*} value The value to check.\n * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * isString('abc')\n * // => true\n *\n * isString(1)\n * // => false\n */\nconst isString = (value: any, fuzzy: boolean = false): value is string => {\n const type = typeof value;\n if (fuzzy) {\n return type === 'string';\n }\n\n return type === 'string' || isType(value, 'String');\n};\n\nexport default isString;\n"]}
@@ -1,2 +1,8 @@
1
+ /**
2
+ * check value type
3
+ * @param value the value to check
4
+ * @param type type
5
+ * @returns
6
+ */
1
7
  declare const isType: (value: any, type: string) => boolean;
2
8
  export default isType;
@@ -1,3 +1,9 @@
1
+ /**
2
+ * check value type
3
+ * @param value the value to check
4
+ * @param type type
5
+ * @returns
6
+ */
1
7
  const isType = (value, type) => Object.prototype.toString.call(value) === `[object ${type}]`;
2
8
 
3
9
  export default isType;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isType.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,GAAG,CAAC,KAAU,EAAE,IAAY,EAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC;AAEnH,eAAe,MAAM,CAAC","file":"isType.js","sourcesContent":["/**\n * check value type\n * @param value the value to check\n * @param type type\n * @returns\n */\nconst isType = (value: any, type: string): boolean => Object.prototype.toString.call(value) === `[object ${type}]`;\n\nexport default isType;\n"]}
1
+ {"version":3,"sources":["../src/common/isType.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CAAC,KAAU,EAAE,IAAY,EAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC;AAEnH,eAAe,MAAM,CAAC","file":"isType.js","sourcesContent":["/**\n * check value type\n * @param value the value to check\n * @param type type\n * @returns\n */\nconst isType = (value: any, type: string): boolean => Object.prototype.toString.call(value) === `[object ${type}]`;\n\nexport default isType;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isValidNumber.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,aAAa,GAAG,CAAC,KAAU,EAAmB,EAAE;IAEpD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","file":"isValidNumber.js","sourcesContent":["import isNumber from './isNumber';\n\nconst isValidNumber = (value: any): value is number => {\n // isFinate 包含来 isNaN 的判断\n return isNumber(value) && Number.isFinite(value);\n};\n\nexport default isValidNumber;\n"]}
1
+ {"version":3,"sources":["../src/common/isValidNumber.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,aAAa,GAAG,CAAC,KAAU,EAAmB,EAAE;IACpD,yBAAyB;IACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","file":"isValidNumber.js","sourcesContent":["import isNumber from './isNumber';\n\nconst isValidNumber = (value: any): value is number => {\n // isFinate 包含来 isNaN 的判断\n return isNumber(value) && Number.isFinite(value);\n};\n\nexport default isValidNumber;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isValidUrl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;IAE1C,MAAM,GAAG,GAAG,0CAA0C,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","file":"isValidUrl.js","sourcesContent":["export const isValidUrl = (value: string) => {\n // TODO: 匹配其他形式的 url\n const exp = /^(http(s)?:\\/\\/)\\w+[^\\s]+(\\.[^\\s]+){1,}$/;\n const urlPattern = new RegExp(exp);\n return urlPattern.test(value);\n};\n\nexport default isValidUrl;\n"]}
1
+ {"version":3,"sources":["../src/common/isValidUrl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;IAC1C,oBAAoB;IACpB,MAAM,GAAG,GAAG,0CAA0C,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","file":"isValidUrl.js","sourcesContent":["export const isValidUrl = (value: string) => {\n // TODO: 匹配其他形式的 url\n const exp = /^(http(s)?:\\/\\/)\\w+[^\\s]+(\\.[^\\s]+){1,}$/;\n const urlPattern = new RegExp(exp);\n return urlPattern.test(value);\n};\n\nexport default isValidUrl;\n"]}
@@ -1,6 +1,21 @@
1
+ /**
2
+ * Kernel Density Estimation (KDE) utilities
3
+ *
4
+ * Exports:
5
+ * - Kernel functions: gaussian, epanechnikov
6
+ * - bandwidth selectors: scott, silverman
7
+ * - kde: main function to compute density estimates at provided points
8
+ */
1
9
  export type Kernel = (u: number) => number;
10
+ /** Gaussian kernel (standard normal) */
2
11
  export declare const gaussian: Kernel;
12
+ /** Epanechnikov kernel (compact support) */
3
13
  export declare const epanechnikov: Kernel;
14
+ /**
15
+ * Bandwidth selectors
16
+ * - scott: h = n^{-1/(d+4)} * std
17
+ * - silverman: h = ( (4/(d+2))^{1/(d+4)} ) * n^{-1/(d+4)} * std
18
+ */
4
19
  export declare function scott(n: number, std: number, dim?: number): number;
5
20
  export declare function silverman(n: number, std: number, dim?: number): number;
6
21
  export interface KDEOptions {
@@ -11,11 +26,24 @@ export interface KDEOptions {
11
26
  export interface KDEEvaluator {
12
27
  bandwidth: number;
13
28
  kernel: Kernel;
29
+ /**
30
+ * Evaluate density at a single point or array of points.
31
+ * - If given a number, returns a number.
32
+ * - If given an array, returns an array aligned with input.
33
+ */
14
34
  evaluate: ((x: number) => number) & ((xs: number[]) => number[]);
35
+ /**
36
+ * Produce N uniformly spaced points across the data range and evaluate densities.
37
+ * Returns an array { x: number, y: number }[].
38
+ */
15
39
  evaluateGrid: (N: number) => {
16
40
  x: number;
17
41
  y: number;
18
42
  }[];
19
43
  }
44
+ /**
45
+ * Factory: create a KDE evaluator for given data and options.
46
+ * Usage: const model = kde(data, options); model.evaluate(x) or model.evaluate([x1,x2])
47
+ */
20
48
  export declare function kde(data: number[], options?: KDEOptions): KDEEvaluator;
21
49
  export default kde;