@visactor/vutils 1.0.23 → 1.0.25

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 (436) hide show
  1. package/README.zh-CN.md +12 -0
  2. package/cjs/angle.d.ts +61 -0
  3. package/cjs/angle.js +73 -7
  4. package/cjs/angle.js.map +1 -1
  5. package/cjs/color/Color.d.ts +3 -0
  6. package/cjs/color/Color.js +64 -10
  7. package/cjs/color/Color.js.map +1 -1
  8. package/cjs/color/hexToRgb.d.ts +5 -0
  9. package/cjs/color/hexToRgb.js +5 -0
  10. package/cjs/color/hexToRgb.js.map +1 -1
  11. package/cjs/color/rgbToHsl.js +5 -1
  12. package/cjs/color/rgbToHsl.js.map +1 -1
  13. package/cjs/common/array.d.ts +43 -0
  14. package/cjs/common/array.js +44 -0
  15. package/cjs/common/array.js.map +1 -1
  16. package/cjs/common/bisect.d.ts +21 -0
  17. package/cjs/common/bisect.js +29 -0
  18. package/cjs/common/bisect.js.map +1 -1
  19. package/cjs/common/bootstrap.d.ts +5 -0
  20. package/cjs/common/bootstrap.js +22 -0
  21. package/cjs/common/bootstrap.js.map +1 -0
  22. package/cjs/common/clone.js +6 -0
  23. package/cjs/common/clone.js.map +1 -1
  24. package/cjs/common/cloneDeep.js +4 -1
  25. package/cjs/common/cloneDeep.js.map +1 -1
  26. package/cjs/common/correlation.d.ts +3 -0
  27. package/cjs/common/correlation.js +83 -0
  28. package/cjs/common/correlation.js.map +1 -0
  29. package/cjs/common/debounce.js +22 -4
  30. package/cjs/common/debounce.js.map +1 -1
  31. package/cjs/common/ecdf.d.ts +8 -0
  32. package/cjs/common/ecdf.js +11 -2
  33. package/cjs/common/ecdf.js.map +1 -1
  34. package/cjs/common/extent.d.ts +4 -0
  35. package/cjs/common/extent.js +2 -1
  36. package/cjs/common/extent.js.map +1 -1
  37. package/cjs/common/field.d.ts +6 -0
  38. package/cjs/common/field.js +3 -0
  39. package/cjs/common/field.js.map +1 -1
  40. package/cjs/common/getType.js +1 -2
  41. package/cjs/common/has.d.ts +17 -0
  42. package/cjs/common/has.js +18 -1
  43. package/cjs/common/has.js.map +1 -1
  44. package/cjs/common/index.d.ts +4 -0
  45. package/cjs/common/index.js +34 -6
  46. package/cjs/common/index.js.map +1 -1
  47. package/cjs/common/interpolate.js +16 -3
  48. package/cjs/common/interpolate.js.map +1 -1
  49. package/cjs/common/isBase64.d.ts +6 -0
  50. package/cjs/common/isBase64.js +6 -0
  51. package/cjs/common/isBase64.js.map +1 -1
  52. package/cjs/common/isBoolean.d.ts +13 -0
  53. package/cjs/common/isBoolean.js +13 -1
  54. package/cjs/common/isBoolean.js.map +1 -1
  55. package/cjs/common/isEmpty.js +11 -1
  56. package/cjs/common/isEmpty.js.map +1 -1
  57. package/cjs/common/isEqual.js +19 -7
  58. package/cjs/common/isEqual.js.map +1 -1
  59. package/cjs/common/isFunction.d.ts +25 -0
  60. package/cjs/common/isFunction.js +26 -0
  61. package/cjs/common/isFunction.js.map +1 -1
  62. package/cjs/common/isNumber.d.ts +23 -0
  63. package/cjs/common/isNumber.js +23 -1
  64. package/cjs/common/isNumber.js.map +1 -1
  65. package/cjs/common/isNumeric.d.ts +25 -0
  66. package/cjs/common/isNumeric.js +25 -0
  67. package/cjs/common/isNumeric.js.map +1 -1
  68. package/cjs/common/isObject.d.ts +21 -0
  69. package/cjs/common/isObject.js +23 -2
  70. package/cjs/common/isObject.js.map +1 -1
  71. package/cjs/common/isObjectLike.d.ts +20 -0
  72. package/cjs/common/isObjectLike.js +21 -0
  73. package/cjs/common/isObjectLike.js.map +1 -1
  74. package/cjs/common/isPlainObject.d.ts +25 -0
  75. package/cjs/common/isPlainObject.js +2 -1
  76. package/cjs/common/isPlainObject.js.map +1 -1
  77. package/cjs/common/isShallowEqual.js +1 -0
  78. package/cjs/common/isShallowEqual.js.map +1 -1
  79. package/cjs/common/isString.d.ts +13 -0
  80. package/cjs/common/isString.js +13 -1
  81. package/cjs/common/isString.js.map +1 -1
  82. package/cjs/common/isType.d.ts +6 -0
  83. package/cjs/common/isType.js +6 -0
  84. package/cjs/common/isType.js.map +1 -1
  85. package/cjs/common/isUndefined.js +1 -1
  86. package/cjs/common/isValid.js +1 -1
  87. package/cjs/common/isValidNumber.js.map +1 -1
  88. package/cjs/common/isValidUrl.js.map +1 -1
  89. package/cjs/common/kde.d.ts +28 -0
  90. package/cjs/common/kde.js +29 -5
  91. package/cjs/common/kde.js.map +1 -1
  92. package/cjs/common/mean.d.ts +2 -0
  93. package/cjs/common/mean.js +25 -0
  94. package/cjs/common/mean.js.map +1 -0
  95. package/cjs/common/merge.js +20 -4
  96. package/cjs/common/merge.js.map +1 -1
  97. package/cjs/common/mixin.js +14 -3
  98. package/cjs/common/mixin.js.map +1 -1
  99. package/cjs/common/normalQuantile.d.ts +5 -0
  100. package/cjs/common/normalQuantile.js +21 -0
  101. package/cjs/common/normalQuantile.js.map +1 -0
  102. package/cjs/common/number.d.ts +24 -0
  103. package/cjs/common/number.js +24 -1
  104. package/cjs/common/number.js.map +1 -1
  105. package/cjs/common/pad.d.ts +21 -0
  106. package/cjs/common/pad.js +21 -1
  107. package/cjs/common/pad.js.map +1 -1
  108. package/cjs/common/random.d.ts +3 -0
  109. package/cjs/common/random.js +13 -0
  110. package/cjs/common/random.js.map +1 -1
  111. package/cjs/common/regression-linear.d.ts +4 -0
  112. package/cjs/common/regression-linear.js +19 -12
  113. package/cjs/common/regression-linear.js.map +1 -1
  114. package/cjs/common/regression-logistic.d.ts +6 -0
  115. package/cjs/common/regression-logistic.js +25 -14
  116. package/cjs/common/regression-logistic.js.map +1 -1
  117. package/cjs/common/regression-lowess.d.ts +9 -0
  118. package/cjs/common/regression-lowess.js +64 -26
  119. package/cjs/common/regression-lowess.js.map +1 -1
  120. package/cjs/common/regression-polynomial.js +26 -15
  121. package/cjs/common/regression-polynomial.js.map +1 -1
  122. package/cjs/common/regression-utils.d.ts +13 -1
  123. package/cjs/common/regression-utils.js +27 -12
  124. package/cjs/common/regression-utils.js.map +1 -1
  125. package/cjs/common/throttle.js +3 -0
  126. package/cjs/common/throttle.js.map +1 -1
  127. package/cjs/common/toDate.js +22 -3
  128. package/cjs/common/toDate.js.map +1 -1
  129. package/cjs/common/uuid.d.ts +7 -0
  130. package/cjs/common/uuid.js +15 -1
  131. package/cjs/common/uuid.js.map +1 -1
  132. package/cjs/data-structure/bounds.d.ts +101 -0
  133. package/cjs/data-structure/bounds.js +74 -7
  134. package/cjs/data-structure/bounds.js.map +1 -1
  135. package/cjs/data-structure/hashTable.d.ts +4 -0
  136. package/cjs/data-structure/hashTable.js +11 -2
  137. package/cjs/data-structure/hashTable.js.map +1 -1
  138. package/cjs/data-structure/index.js +6 -2
  139. package/cjs/data-structure/index.js.map +1 -1
  140. package/cjs/data-structure/matrix.d.ts +91 -0
  141. package/cjs/data-structure/matrix.js +52 -4
  142. package/cjs/data-structure/matrix.js.map +1 -1
  143. package/cjs/data-structure/point.d.ts +3 -0
  144. package/cjs/data-structure/point.js +5 -1
  145. package/cjs/data-structure/point.js.map +1 -1
  146. package/cjs/dom.d.ts +36 -0
  147. package/cjs/dom.js +43 -1
  148. package/cjs/dom.js.map +1 -1
  149. package/cjs/fmin/blas1.js +10 -1
  150. package/cjs/fmin/blas1.js.map +1 -1
  151. package/cjs/fmin/conjugate-gradient.js +18 -3
  152. package/cjs/fmin/conjugate-gradient.js.map +1 -1
  153. package/cjs/fmin/linesearch.js +15 -1
  154. package/cjs/fmin/linesearch.js.map +1 -1
  155. package/cjs/fmin/nelder-mead.d.ts +1 -0
  156. package/cjs/fmin/nelder-mead.js +30 -10
  157. package/cjs/fmin/nelder-mead.js.map +1 -1
  158. package/cjs/format/number/formatDecimal.js +9 -1
  159. package/cjs/format/number/formatDecimal.js.map +1 -1
  160. package/cjs/format/number/formatGroup.js +7 -0
  161. package/cjs/format/number/formatGroup.js.map +1 -1
  162. package/cjs/format/number/formatPrefixAuto.js +8 -0
  163. package/cjs/format/number/formatPrefixAuto.js.map +1 -1
  164. package/cjs/format/number/formatRounded.js +7 -0
  165. package/cjs/format/number/formatRounded.js.map +1 -1
  166. package/cjs/format/number/formatTrim.js +7 -0
  167. package/cjs/format/number/formatTrim.js.map +1 -1
  168. package/cjs/format/number/number.js +39 -9
  169. package/cjs/format/number/number.js.map +1 -1
  170. package/cjs/format/time.js +23 -6
  171. package/cjs/format/time.js.map +1 -1
  172. package/cjs/geo/circle-intersection.d.ts +12 -0
  173. package/cjs/geo/circle-intersection.js +54 -9
  174. package/cjs/geo/circle-intersection.js.map +1 -1
  175. package/cjs/geo/constant.js +8 -1
  176. package/cjs/geo/constant.js.map +1 -1
  177. package/cjs/geo/invariant.d.ts +22 -0
  178. package/cjs/geo/invariant.js +24 -1
  179. package/cjs/geo/invariant.js.map +1 -1
  180. package/cjs/graphics/algorithm/aabb.js +7 -3
  181. package/cjs/graphics/algorithm/aabb.js.map +1 -1
  182. package/cjs/graphics/algorithm/intersect.d.ts +48 -0
  183. package/cjs/graphics/algorithm/intersect.js +75 -7
  184. package/cjs/graphics/algorithm/intersect.js.map +1 -1
  185. package/cjs/graphics/bounds-util.js +4 -2
  186. package/cjs/graphics/bounds-util.js.map +1 -1
  187. package/cjs/graphics/graph-util.js +4 -0
  188. package/cjs/graphics/graph-util.js.map +1 -1
  189. package/cjs/graphics/index.js +7 -4
  190. package/cjs/graphics/index.js.map +1 -1
  191. package/cjs/graphics/polygon.d.ts +12 -0
  192. package/cjs/graphics/polygon.js +28 -5
  193. package/cjs/graphics/polygon.js.map +1 -1
  194. package/cjs/graphics/text/measure/interface.d.ts +12 -0
  195. package/cjs/graphics/text/measure/textMeasure.d.ts +23 -0
  196. package/cjs/graphics/text/measure/textMeasure.js +50 -22
  197. package/cjs/graphics/text/measure/textMeasure.js.map +1 -1
  198. package/cjs/graphics/text/measure/util.js +1 -0
  199. package/cjs/graphics/text/measure/util.js.map +1 -1
  200. package/cjs/graphics/text/stringWidth.js +7 -3
  201. package/cjs/graphics/text/stringWidth.js.map +1 -1
  202. package/cjs/index.d.ts +6 -0
  203. package/cjs/index.js +19 -4
  204. package/cjs/index.js.map +1 -1
  205. package/cjs/logger.js +12 -2
  206. package/cjs/logger.js.map +1 -1
  207. package/cjs/lru.js +14 -6
  208. package/cjs/lru.js.map +1 -1
  209. package/cjs/math.d.ts +9 -0
  210. package/cjs/math.js +10 -0
  211. package/cjs/math.js.map +1 -1
  212. package/cjs/padding.d.ts +5 -0
  213. package/cjs/padding.js +5 -0
  214. package/cjs/padding.js.map +1 -1
  215. package/cjs/time/formatUtils.d.ts +6 -0
  216. package/cjs/time/formatUtils.js +7 -0
  217. package/cjs/time/formatUtils.js.map +1 -1
  218. package/dist/index.js +1627 -116
  219. package/dist/index.min.js +128 -1
  220. package/es/angle.d.ts +61 -0
  221. package/es/angle.js +66 -10
  222. package/es/angle.js.map +1 -1
  223. package/es/color/Color.d.ts +3 -0
  224. package/es/color/Color.js +64 -9
  225. package/es/color/Color.js.map +1 -1
  226. package/es/color/hexToRgb.d.ts +5 -0
  227. package/es/color/hexToRgb.js +5 -0
  228. package/es/color/hexToRgb.js.map +1 -1
  229. package/es/color/rgbToHsl.js +5 -1
  230. package/es/color/rgbToHsl.js.map +1 -1
  231. package/es/common/array.d.ts +43 -0
  232. package/es/common/array.js +44 -8
  233. package/es/common/array.js.map +1 -1
  234. package/es/common/bisect.d.ts +21 -0
  235. package/es/common/bisect.js +29 -4
  236. package/es/common/bisect.js.map +1 -1
  237. package/es/common/bootstrap.d.ts +5 -0
  238. package/es/common/bootstrap.js +14 -0
  239. package/es/common/bootstrap.js.map +1 -0
  240. package/es/common/clone.js +6 -0
  241. package/es/common/clone.js.map +1 -1
  242. package/es/common/cloneDeep.js +4 -1
  243. package/es/common/cloneDeep.js.map +1 -1
  244. package/es/common/correlation.d.ts +3 -0
  245. package/es/common/correlation.js +77 -0
  246. package/es/common/correlation.js.map +1 -0
  247. package/es/common/debounce.js +22 -4
  248. package/es/common/debounce.js.map +1 -1
  249. package/es/common/ecdf.d.ts +8 -0
  250. package/es/common/ecdf.js +11 -1
  251. package/es/common/ecdf.js.map +1 -1
  252. package/es/common/extent.d.ts +4 -0
  253. package/es/common/extent.js +6 -2
  254. package/es/common/extent.js.map +1 -1
  255. package/es/common/field.d.ts +6 -0
  256. package/es/common/field.js +3 -1
  257. package/es/common/field.js.map +1 -1
  258. package/es/common/getType.js +1 -2
  259. package/es/common/has.d.ts +17 -0
  260. package/es/common/has.js +18 -1
  261. package/es/common/has.js.map +1 -1
  262. package/es/common/index.d.ts +4 -0
  263. package/es/common/index.js +24 -1
  264. package/es/common/index.js.map +1 -1
  265. package/es/common/interpolate.js +16 -3
  266. package/es/common/interpolate.js.map +1 -1
  267. package/es/common/isBase64.d.ts +6 -0
  268. package/es/common/isBase64.js +6 -0
  269. package/es/common/isBase64.js.map +1 -1
  270. package/es/common/isBoolean.d.ts +13 -0
  271. package/es/common/isBoolean.js +13 -1
  272. package/es/common/isBoolean.js.map +1 -1
  273. package/es/common/isEmpty.js +11 -1
  274. package/es/common/isEmpty.js.map +1 -1
  275. package/es/common/isEqual.js +19 -7
  276. package/es/common/isEqual.js.map +1 -1
  277. package/es/common/isFunction.d.ts +25 -0
  278. package/es/common/isFunction.js +26 -0
  279. package/es/common/isFunction.js.map +1 -1
  280. package/es/common/isNumber.d.ts +23 -0
  281. package/es/common/isNumber.js +23 -1
  282. package/es/common/isNumber.js.map +1 -1
  283. package/es/common/isNumeric.d.ts +25 -0
  284. package/es/common/isNumeric.js +25 -0
  285. package/es/common/isNumeric.js.map +1 -1
  286. package/es/common/isObject.d.ts +21 -0
  287. package/es/common/isObject.js +23 -2
  288. package/es/common/isObject.js.map +1 -1
  289. package/es/common/isObjectLike.d.ts +20 -0
  290. package/es/common/isObjectLike.js +21 -0
  291. package/es/common/isObjectLike.js.map +1 -1
  292. package/es/common/isPlainObject.d.ts +25 -0
  293. package/es/common/isPlainObject.js +28 -1
  294. package/es/common/isPlainObject.js.map +1 -1
  295. package/es/common/isShallowEqual.js +1 -0
  296. package/es/common/isShallowEqual.js.map +1 -1
  297. package/es/common/isString.d.ts +13 -0
  298. package/es/common/isString.js +13 -1
  299. package/es/common/isString.js.map +1 -1
  300. package/es/common/isType.d.ts +6 -0
  301. package/es/common/isType.js +6 -0
  302. package/es/common/isType.js.map +1 -1
  303. package/es/common/isUndefined.js +1 -1
  304. package/es/common/isValid.js +1 -1
  305. package/es/common/isValidNumber.js.map +1 -1
  306. package/es/common/isValidUrl.js.map +1 -1
  307. package/es/common/kde.d.ts +28 -0
  308. package/es/common/kde.js +29 -7
  309. package/es/common/kde.js.map +1 -1
  310. package/es/common/mean.d.ts +2 -0
  311. package/es/common/mean.js +19 -0
  312. package/es/common/mean.js.map +1 -0
  313. package/es/common/merge.js +22 -5
  314. package/es/common/merge.js.map +1 -1
  315. package/es/common/mixin.js +14 -3
  316. package/es/common/mixin.js.map +1 -1
  317. package/es/common/normalQuantile.d.ts +5 -0
  318. package/es/common/normalQuantile.js +15 -0
  319. package/es/common/normalQuantile.js.map +1 -0
  320. package/es/common/number.d.ts +24 -0
  321. package/es/common/number.js +24 -2
  322. package/es/common/number.js.map +1 -1
  323. package/es/common/pad.d.ts +21 -0
  324. package/es/common/pad.js +21 -1
  325. package/es/common/pad.js.map +1 -1
  326. package/es/common/random.d.ts +3 -0
  327. package/es/common/random.js +13 -1
  328. package/es/common/random.js.map +1 -1
  329. package/es/common/regression-linear.d.ts +4 -0
  330. package/es/common/regression-linear.js +18 -14
  331. package/es/common/regression-linear.js.map +1 -1
  332. package/es/common/regression-logistic.d.ts +6 -0
  333. package/es/common/regression-logistic.js +24 -16
  334. package/es/common/regression-logistic.js.map +1 -1
  335. package/es/common/regression-lowess.d.ts +9 -0
  336. package/es/common/regression-lowess.js +63 -27
  337. package/es/common/regression-lowess.js.map +1 -1
  338. package/es/common/regression-polynomial.js +25 -16
  339. package/es/common/regression-polynomial.js.map +1 -1
  340. package/es/common/regression-utils.d.ts +13 -1
  341. package/es/common/regression-utils.js +18 -9
  342. package/es/common/regression-utils.js.map +1 -1
  343. package/es/common/throttle.js +3 -0
  344. package/es/common/throttle.js.map +1 -1
  345. package/es/common/toDate.js +23 -3
  346. package/es/common/toDate.js.map +1 -1
  347. package/es/common/uuid.d.ts +7 -0
  348. package/es/common/uuid.js +15 -1
  349. package/es/common/uuid.js.map +1 -1
  350. package/es/data-structure/bounds.d.ts +101 -0
  351. package/es/data-structure/bounds.js +74 -8
  352. package/es/data-structure/bounds.js.map +1 -1
  353. package/es/data-structure/hashTable.d.ts +4 -0
  354. package/es/data-structure/hashTable.js +11 -2
  355. package/es/data-structure/hashTable.js.map +1 -1
  356. package/es/data-structure/index.js +2 -0
  357. package/es/data-structure/index.js.map +1 -1
  358. package/es/data-structure/matrix.d.ts +91 -0
  359. package/es/data-structure/matrix.js +52 -5
  360. package/es/data-structure/matrix.js.map +1 -1
  361. package/es/data-structure/point.d.ts +3 -0
  362. package/es/data-structure/point.js +5 -1
  363. package/es/data-structure/point.js.map +1 -1
  364. package/es/dom.d.ts +36 -0
  365. package/es/dom.js +43 -8
  366. package/es/dom.js.map +1 -1
  367. package/es/fmin/blas1.js +10 -0
  368. package/es/fmin/blas1.js.map +1 -1
  369. package/es/fmin/conjugate-gradient.js +18 -2
  370. package/es/fmin/conjugate-gradient.js.map +1 -1
  371. package/es/fmin/linesearch.js +15 -0
  372. package/es/fmin/linesearch.js.map +1 -1
  373. package/es/fmin/nelder-mead.d.ts +1 -0
  374. package/es/fmin/nelder-mead.js +29 -9
  375. package/es/fmin/nelder-mead.js.map +1 -1
  376. package/es/format/number/formatDecimal.js +9 -1
  377. package/es/format/number/formatDecimal.js.map +1 -1
  378. package/es/format/number/formatGroup.js +7 -0
  379. package/es/format/number/formatGroup.js.map +1 -1
  380. package/es/format/number/formatPrefixAuto.js +8 -0
  381. package/es/format/number/formatPrefixAuto.js.map +1 -1
  382. package/es/format/number/formatRounded.js +7 -0
  383. package/es/format/number/formatRounded.js.map +1 -1
  384. package/es/format/number/formatTrim.js +7 -0
  385. package/es/format/number/formatTrim.js.map +1 -1
  386. package/es/format/number/number.js +40 -8
  387. package/es/format/number/number.js.map +1 -1
  388. package/es/format/time.js +23 -5
  389. package/es/format/time.js.map +1 -1
  390. package/es/geo/circle-intersection.d.ts +12 -0
  391. package/es/geo/circle-intersection.js +54 -14
  392. package/es/geo/circle-intersection.js.map +1 -1
  393. package/es/geo/constant.js +8 -0
  394. package/es/geo/constant.js.map +1 -1
  395. package/es/geo/invariant.d.ts +22 -0
  396. package/es/geo/invariant.js +24 -0
  397. package/es/geo/invariant.js.map +1 -1
  398. package/es/graphics/algorithm/aabb.js +7 -3
  399. package/es/graphics/algorithm/aabb.js.map +1 -1
  400. package/es/graphics/algorithm/intersect.d.ts +48 -0
  401. package/es/graphics/algorithm/intersect.js +75 -12
  402. package/es/graphics/algorithm/intersect.js.map +1 -1
  403. package/es/graphics/bounds-util.js +4 -2
  404. package/es/graphics/bounds-util.js.map +1 -1
  405. package/es/graphics/graph-util.js +4 -0
  406. package/es/graphics/graph-util.js.map +1 -1
  407. package/es/graphics/index.js +2 -0
  408. package/es/graphics/index.js.map +1 -1
  409. package/es/graphics/polygon.d.ts +12 -0
  410. package/es/graphics/polygon.js +28 -6
  411. package/es/graphics/polygon.js.map +1 -1
  412. package/es/graphics/text/measure/interface.d.ts +12 -0
  413. package/es/graphics/text/measure/textMeasure.d.ts +23 -0
  414. package/es/graphics/text/measure/textMeasure.js +46 -21
  415. package/es/graphics/text/measure/textMeasure.js.map +1 -1
  416. package/es/graphics/text/measure/util.js +1 -0
  417. package/es/graphics/text/measure/util.js.map +1 -1
  418. package/es/graphics/text/stringWidth.js +7 -3
  419. package/es/graphics/text/stringWidth.js.map +1 -1
  420. package/es/index.d.ts +6 -0
  421. package/es/index.js +15 -1
  422. package/es/index.js.map +1 -1
  423. package/es/logger.js +12 -1
  424. package/es/logger.js.map +1 -1
  425. package/es/lru.js +14 -6
  426. package/es/lru.js.map +1 -1
  427. package/es/math.d.ts +9 -0
  428. package/es/math.js +10 -1
  429. package/es/math.js.map +1 -1
  430. package/es/padding.d.ts +5 -0
  431. package/es/padding.js +5 -1
  432. package/es/padding.js.map +1 -1
  433. package/es/time/formatUtils.d.ts +6 -0
  434. package/es/time/formatUtils.js +7 -1
  435. package/es/time/formatUtils.js.map +1 -1
  436. package/package.json +8 -3
@@ -10,6 +10,9 @@ Object.defineProperty(exports, "__esModule", {
10
10
  value: !0
11
11
  });
12
12
 
13
+ /**
14
+ * @see https://github.com/lodash/lodash/blob/master/debounce.js
15
+ */
13
16
  const isObject_1 = __importDefault(require("./isObject")), isValidNumber_1 = __importDefault(require("./isValidNumber"));
14
17
 
15
18
  let hasRaf = !1;
@@ -22,6 +25,7 @@ try {
22
25
 
23
26
  function debounce(func, wait, options) {
24
27
  let lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = !1, maxing = !1, trailing = !0;
28
+ // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.
25
29
  const useRAF = !wait && 0 !== wait && hasRaf;
26
30
  if ("function" != typeof func) throw new TypeError("Expected a function");
27
31
  function invokeFunc(time) {
@@ -34,27 +38,41 @@ function debounce(func, wait, options) {
34
38
  }
35
39
  function shouldInvoke(time) {
36
40
  const timeSinceLastCall = time - lastCallTime;
41
+ // Either this is the first call, activity has stopped and we're at the
42
+ // trailing edge, the system time has gone backwards and we're treating
43
+ // it as the trailing edge, or we've hit the `maxWait` limit.
37
44
  return void 0 === lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && time - lastInvokeTime >= maxWait;
38
45
  }
39
46
  function timerExpired() {
40
47
  const time = Date.now();
41
48
  if (shouldInvoke(time)) return trailingEdge(time);
42
- timerId = startTimer(timerExpired, function(time) {
49
+ // Restart the timer.
50
+ timerId = startTimer(timerExpired, function(time) {
43
51
  const timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - (time - lastCallTime);
44
52
  return maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
45
53
  }(time));
46
54
  }
47
55
  function trailingEdge(time) {
56
+ // Only invoke if we have `lastArgs` which means `func` has been
57
+ // debounced at least once.
48
58
  return timerId = void 0, trailing && lastArgs ? invokeFunc(time) : (lastArgs = lastThis = void 0,
49
59
  result);
50
60
  }
51
61
  function debounced(...args) {
52
62
  const time = Date.now(), isInvoking = shouldInvoke(time);
53
- if (lastArgs = args, lastThis = this, lastCallTime = time, isInvoking) {
63
+ if (lastArgs = args,
64
+ // @ts-ignore
65
+ lastThis = this, lastCallTime = time, isInvoking) {
54
66
  if (void 0 === timerId) return function(time) {
55
- return lastInvokeTime = time, timerId = startTimer(timerExpired, wait), leading ? invokeFunc(time) : result;
67
+ // Invoke the leading edge.
68
+ // Reset any `maxWait` timer.
69
+ return lastInvokeTime = time,
70
+ // Start the timer for the trailing edge.
71
+ timerId = startTimer(timerExpired, wait), leading ? invokeFunc(time) : result;
56
72
  }(lastCallTime);
57
- if (maxing) return timerId = startTimer(timerExpired, wait), invokeFunc(lastCallTime);
73
+ if (maxing)
74
+ // Handle invocations in a tight loop.
75
+ return timerId = startTimer(timerExpired, wait), invokeFunc(lastCallTime);
58
76
  }
59
77
  return void 0 === timerId && (timerId = startTimer(timerExpired, wait)), result;
60
78
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/debounce.ts"],"names":[],"mappings":";;;;;AAGA,0DAAkC;AAClC,oEAA4C;AAW5C,IAAI,MAAM,GAAY,KAAK,CAAC;AAC5B,IAAI;IACF,MAAM,GAAG,OAAO,qBAAqB,KAAK,UAAU,IAAI,OAAO,oBAAoB,KAAK,UAAU,CAAC;CACpG;AAAC,OAAO,GAAG,EAAE;IACZ,MAAM,GAAG,KAAK,CAAC;CAChB;AACD,MAAM,GAAG,KAAK,CAAC;AAEf,SAAS,QAAQ,CACf,IAAyB,EACzB,IAAY,EACZ,OAAgC;IAEhC,IAAI,QAAa,CAAC;IAClB,IAAI,QAAa,CAAC;IAClB,IAAI,OAAe,CAAC;IACpB,IAAI,MAAW,CAAC;IAEhB,IAAI,OAA4C,CAAC;IACjD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,QAAQ,GAAG,IAAI,CAAC;IAGpB,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC;IAE7C,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;KAC5C;IACD,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAClB,IAAI,IAAA,kBAAQ,EAAC,OAAO,CAAC,EAAE;QACrB,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,SAAS,IAAI,OAAO,CAAC;QAC9B,IAAI,MAAM,EAAE;YACV,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAA,uBAAa,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SAChF;QAED,QAAQ,GAAG,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;KAClE;IAED,SAAS,UAAU,CAAC,IAAY;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC;QACtB,MAAM,OAAO,GAAG,QAAQ,CAAC;QAEzB,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAChC,cAAc,GAAG,IAAI,CAAC;QACtB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,UAAU,CAAC,WAAgB,EAAE,IAAY;QAChD,IAAI,MAAM,EAAE;YACV,oBAAoB,CAAC,OAAiB,CAAC,CAAC;YACxC,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;SAC3C;QACD,OAAO,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,WAAW,CAAC,EAAU;QAC7B,IAAI,MAAM,EAAE;YACV,OAAO,oBAAoB,CAAC,EAAE,CAAC,CAAC;SACjC;QACD,YAAY,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,SAAS,WAAW,CAAC,IAAY;QAE/B,cAAc,GAAG,IAAI,CAAC;QAEtB,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,SAAS,aAAa,CAAC,IAAY;QACjC,MAAM,iBAAiB,GAAG,IAAI,GAAI,YAAuB,CAAC;QAC1D,MAAM,mBAAmB,GAAG,IAAI,GAAG,cAAc,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,GAAG,iBAAiB,CAAC;QAE7C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACrF,CAAC;IAED,SAAS,YAAY,CAAC,IAAY;QAChC,MAAM,iBAAiB,GAAG,IAAI,GAAI,YAAuB,CAAC;QAC1D,MAAM,mBAAmB,GAAG,IAAI,GAAG,cAAc,CAAC;QAKlD,OAAO,CACL,YAAY,KAAK,SAAS;YAC1B,iBAAiB,IAAI,IAAI;YACzB,iBAAiB,GAAG,CAAC;YACrB,CAAC,MAAM,IAAI,mBAAmB,IAAI,OAAO,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED,SAAS,YAAY;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;SAC3B;QAED,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS,YAAY,CAAC,IAAY;QAChC,OAAO,GAAG,SAAS,CAAC;QAIpB,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACxB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,MAAM;QACb,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,WAAW,CAAC,OAAiB,CAAC,CAAC;SAChC;QACD,cAAc,GAAG,CAAC,CAAC;QACnB,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAC3D,CAAC;IAED,SAAS,KAAK;QACZ,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,SAAS,OAAO;QACd,OAAO,OAAO,KAAK,SAAS,CAAC;IAC/B,CAAC;IAED,SAAS,SAAS,CAAC,GAAG,IAAW;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAEtC,QAAQ,GAAG,IAAI,CAAC;QAEhB,QAAQ,GAAG,IAAI,CAAC;QAChB,YAAY,GAAG,IAAI,CAAC;QAEpB,IAAI,UAAU,EAAE;YACd,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;aAClC;YACD,IAAI,MAAM,EAAE;gBAEV,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBACzC,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;aACjC;SACF;QACD,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC1C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kBAAe,QAAQ,CAAC","file":"debounce.js","sourcesContent":["/**\n * @see https://github.com/lodash/lodash/blob/master/debounce.js\n */\nimport isObject from './isObject';\nimport isValidNumber from './isValidNumber';\n\nexport type FunctionControlOptions = {\n // 是否在等待开始时调用\n leading?: boolean;\n // 是否在等待结束后调用\n trailing?: boolean;\n // 最长等待时间\n maxWait?: number;\n};\n\nlet hasRaf: boolean = false;\ntry {\n hasRaf = typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function';\n} catch (err) {\n hasRaf = false;\n}\nhasRaf = false;\n\nfunction debounce<T, S>(\n func: (...args: T[]) => S,\n wait: number,\n options?: FunctionControlOptions\n): (...args: T[]) => S {\n let lastArgs: any;\n let lastThis: any;\n let maxWait: number;\n let result: any;\n // eslint-disable-next-line no-undef\n let timerId: number | NodeJS.Timeout | undefined;\n let lastCallTime: number | undefined;\n\n let lastInvokeTime = 0;\n let leading = false;\n let maxing = false;\n let trailing = true;\n\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n const useRAF = !wait && wait !== 0 && hasRaf;\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n wait = +wait || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n if (maxing) {\n maxWait = Math.max(isValidNumber(options.maxWait) ? options.maxWait : 0, wait);\n }\n\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time: number) {\n const args = lastArgs;\n const thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function startTimer(pendingFunc: any, wait: number) {\n if (useRAF) {\n cancelAnimationFrame(timerId as number);\n return requestAnimationFrame(pendingFunc);\n }\n return setTimeout(pendingFunc, wait);\n }\n\n function cancelTimer(id: number) {\n if (useRAF) {\n return cancelAnimationFrame(id);\n }\n clearTimeout(id);\n }\n\n function leadingEdge(time: number) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time: number) {\n const timeSinceLastCall = time - (lastCallTime as number);\n const timeSinceLastInvoke = time - lastInvokeTime;\n const timeWaiting = wait - timeSinceLastCall;\n\n return maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time: number) {\n const timeSinceLastCall = time - (lastCallTime as number);\n const timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (\n lastCallTime === undefined ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait)\n );\n }\n\n function timerExpired() {\n const time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time: number) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n cancelTimer(timerId as number);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(Date.now());\n }\n\n function pending() {\n return timerId !== undefined;\n }\n\n function debounced(...args: any[]) {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n\n lastArgs = args;\n // @ts-ignore\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = startTimer(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n debounced.pending = pending;\n return debounced;\n}\n\nexport default debounce;\n"]}
1
+ {"version":3,"sources":["../src/common/debounce.ts"],"names":[],"mappings":"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","file":"debounce.js","sourcesContent":["/**\n * @see https://github.com/lodash/lodash/blob/master/debounce.js\n */\nimport isObject from './isObject';\nimport isValidNumber from './isValidNumber';\n\nexport type FunctionControlOptions = {\n // 是否在等待开始时调用\n leading?: boolean;\n // 是否在等待结束后调用\n trailing?: boolean;\n // 最长等待时间\n maxWait?: number;\n};\n\nlet hasRaf: boolean = false;\ntry {\n hasRaf = typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function';\n} catch (err) {\n hasRaf = false;\n}\nhasRaf = false;\n\nfunction debounce<T, S>(\n func: (...args: T[]) => S,\n wait: number,\n options?: FunctionControlOptions\n): (...args: T[]) => S {\n let lastArgs: any;\n let lastThis: any;\n let maxWait: number;\n let result: any;\n // eslint-disable-next-line no-undef\n let timerId: number | NodeJS.Timeout | undefined;\n let lastCallTime: number | undefined;\n\n let lastInvokeTime = 0;\n let leading = false;\n let maxing = false;\n let trailing = true;\n\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n const useRAF = !wait && wait !== 0 && hasRaf;\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n wait = +wait || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n if (maxing) {\n maxWait = Math.max(isValidNumber(options.maxWait) ? options.maxWait : 0, wait);\n }\n\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time: number) {\n const args = lastArgs;\n const thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function startTimer(pendingFunc: any, wait: number) {\n if (useRAF) {\n cancelAnimationFrame(timerId as number);\n return requestAnimationFrame(pendingFunc);\n }\n return setTimeout(pendingFunc, wait);\n }\n\n function cancelTimer(id: number) {\n if (useRAF) {\n return cancelAnimationFrame(id);\n }\n clearTimeout(id);\n }\n\n function leadingEdge(time: number) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time: number) {\n const timeSinceLastCall = time - (lastCallTime as number);\n const timeSinceLastInvoke = time - lastInvokeTime;\n const timeWaiting = wait - timeSinceLastCall;\n\n return maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time: number) {\n const timeSinceLastCall = time - (lastCallTime as number);\n const timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (\n lastCallTime === undefined ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait)\n );\n }\n\n function timerExpired() {\n const time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time: number) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n cancelTimer(timerId as number);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(Date.now());\n }\n\n function pending() {\n return timerId !== undefined;\n }\n\n function debounced(...args: any[]) {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n\n lastArgs = args;\n // @ts-ignore\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = startTimer(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n debounced.pending = pending;\n return debounced;\n}\n\nexport default debounce;\n"]}
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Empirical Cumulative Distribution Function (ECDF)
3
+ * Returns a factory that builds an evaluator over provided samples.
4
+ * The evaluator exposes:
5
+ * - evaluate(x:number) => proportion of samples <= x
6
+ * - evaluate(xs:number[]) => number[]
7
+ * - evaluateGrid(N:number) => { points: number[], cdf: number[] } over sample range
8
+ */
1
9
  export interface ECDFEvaluator {
2
10
  evaluate: (x: number | number[]) => number | number[];
3
11
  evaluateGrid: (N: number) => {
@@ -1,10 +1,19 @@
1
1
  "use strict";
2
2
 
3
- function ecdf(data) {
3
+ /**
4
+ * Empirical Cumulative Distribution Function (ECDF)
5
+ * Returns a factory that builds an evaluator over provided samples.
6
+ * The evaluator exposes:
7
+ * - evaluate(x:number) => proportion of samples <= x
8
+ * - evaluate(xs:number[]) => number[]
9
+ * - evaluateGrid(N:number) => { points: number[], cdf: number[] } over sample range
10
+ */ function ecdf(data) {
4
11
  const n = data.length, sorted = data.slice().sort(((a, b) => a - b));
5
12
  function evaluateSingle(x) {
6
13
  if (0 === n) return 0;
7
- let lo = 0, hi = n;
14
+ // count of values <= x (upper bound index)
15
+ let lo = 0, hi = n;
16
+ // exclusive
8
17
  for (;lo < hi; ) {
9
18
  const mid = lo + hi >>> 1;
10
19
  sorted[mid] <= x ? lo = mid + 1 : hi = mid;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/ecdf.ts"],"names":[],"mappings":";;;AAeA,SAAgB,IAAI,CAAC,IAAc;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAElD,SAAS,cAAc,CAAC,CAAS;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,CAAC,CAAC;SACV;QAED,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,OAAO,EAAE,GAAG,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACpB,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;aACd;iBAAM;gBACL,EAAE,GAAG,GAAG,CAAC;aACV;SACF;QACD,OAAO,EAAE,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,SAAS,QAAQ,CAAC,CAAoB;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACpB,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC;YACD,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,cAAc,CAAC,CAAW,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,YAAY,CAAC,CAAS;QAC7B,MAAM,GAAG,GAA+B,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,EAAE;YACV,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,GAAG,EAAE;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC5B;YACD,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;YAE7C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAe;QACzB,YAAY;QACZ,CAAC;KACF,CAAC;AACJ,CAAC;AA/DD,oBA+DC;AAED,kBAAe,IAAI,CAAC","file":"ecdf.js","sourcesContent":["/**\n * Empirical Cumulative Distribution Function (ECDF)\n * Returns a factory that builds an evaluator over provided samples.\n * The evaluator exposes:\n * - evaluate(x:number) => proportion of samples <= x\n * - evaluate(xs:number[]) => number[]\n * - evaluateGrid(N:number) => { points: number[], cdf: number[] } over sample range\n */\n\nexport interface ECDFEvaluator {\n evaluate: (x: number | number[]) => number | number[];\n evaluateGrid: (N: number) => { x: number; y: number }[];\n n: number;\n}\n\nexport function ecdf(data: number[]): ECDFEvaluator {\n const n = data.length;\n const sorted = data.slice().sort((a, b) => a - b);\n\n function evaluateSingle(x: number) {\n if (n === 0) {\n return 0;\n }\n // count of values <= x (upper bound index)\n let lo = 0;\n let hi = n; // exclusive\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (sorted[mid] <= x) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n return lo / n;\n }\n\n function evaluate(x: number | number[]) {\n if (Array.isArray(x)) {\n const out: number[] = [];\n for (let i = 0; i < x.length; i++) {\n out.push(evaluateSingle(x[i]));\n }\n return out;\n }\n return evaluateSingle(x as number);\n }\n\n function evaluateGrid(N: number) {\n const out: { x: number; y: number }[] = [];\n if (N <= 0) {\n return out;\n }\n if (n === 0) {\n return out;\n }\n const min = sorted[0];\n const max = sorted[n - 1];\n if (min === max) {\n for (let i = 0; i < N; i++) {\n out.push({ x: min, y: 1 });\n }\n return out;\n }\n const step = (max - min) / (N - 1);\n for (let i = 0; i < N; i++) {\n const x = i === N - 1 ? max : min + step * i;\n\n out.push({ x, y: evaluateSingle(x) });\n }\n return out;\n }\n\n return {\n evaluate: evaluate as any,\n evaluateGrid,\n n\n };\n}\n\nexport default ecdf;\n"]}
1
+ {"version":3,"sources":["../src/common/ecdf.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAQH,SAAgB,IAAI,CAAC,IAAc;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAElD,SAAS,cAAc,CAAC,CAAS;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,CAAC,CAAC;SACV;QACD,2CAA2C;QAC3C,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY;QACxB,OAAO,EAAE,GAAG,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACpB,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;aACd;iBAAM;gBACL,EAAE,GAAG,GAAG,CAAC;aACV;SACF;QACD,OAAO,EAAE,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,SAAS,QAAQ,CAAC,CAAoB;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACpB,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC;YACD,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,cAAc,CAAC,CAAW,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,YAAY,CAAC,CAAS;QAC7B,MAAM,GAAG,GAA+B,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,EAAE;YACV,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,GAAG,EAAE;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC5B;YACD,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;YAE7C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAe;QACzB,YAAY;QACZ,CAAC;KACF,CAAC;AACJ,CAAC;AA/DD,oBA+DC;AAED,kBAAe,IAAI,CAAC","file":"ecdf.js","sourcesContent":["/**\n * Empirical Cumulative Distribution Function (ECDF)\n * Returns a factory that builds an evaluator over provided samples.\n * The evaluator exposes:\n * - evaluate(x:number) => proportion of samples <= x\n * - evaluate(xs:number[]) => number[]\n * - evaluateGrid(N:number) => { points: number[], cdf: number[] } over sample range\n */\n\nexport interface ECDFEvaluator {\n evaluate: (x: number | number[]) => number | number[];\n evaluateGrid: (N: number) => { x: number; y: number }[];\n n: number;\n}\n\nexport function ecdf(data: number[]): ECDFEvaluator {\n const n = data.length;\n const sorted = data.slice().sort((a, b) => a - b);\n\n function evaluateSingle(x: number) {\n if (n === 0) {\n return 0;\n }\n // count of values <= x (upper bound index)\n let lo = 0;\n let hi = n; // exclusive\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (sorted[mid] <= x) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n return lo / n;\n }\n\n function evaluate(x: number | number[]) {\n if (Array.isArray(x)) {\n const out: number[] = [];\n for (let i = 0; i < x.length; i++) {\n out.push(evaluateSingle(x[i]));\n }\n return out;\n }\n return evaluateSingle(x as number);\n }\n\n function evaluateGrid(N: number) {\n const out: { x: number; y: number }[] = [];\n if (N <= 0) {\n return out;\n }\n if (n === 0) {\n return out;\n }\n const min = sorted[0];\n const max = sorted[n - 1];\n if (min === max) {\n for (let i = 0; i < N; i++) {\n out.push({ x: min, y: 1 });\n }\n return out;\n }\n const step = (max - min) / (N - 1);\n for (let i = 0; i < N; i++) {\n const x = i === N - 1 ? max : min + step * i;\n\n out.push({ x, y: evaluateSingle(x) });\n }\n return out;\n }\n\n return {\n evaluate: evaluate as any,\n evaluateGrid,\n n\n };\n}\n\nexport default ecdf;\n"]}
@@ -1 +1,5 @@
1
+ /**
2
+ * Return an array with minimum and maximum values, in the
3
+ * form [min, max]. Ignores null, undefined, and NaN values.
4
+ */
1
5
  export declare const extent: (array: any[], func?: (val: any) => number) => number[];
@@ -15,7 +15,8 @@ const isFunction_1 = __importDefault(require("./isFunction")), isNil_1 = __impor
15
15
  let min, max;
16
16
  if (array && array.length) {
17
17
  const n = array.length;
18
- for (let i = 0; i < n; i += 1) {
18
+ // find first valid value
19
+ for (let i = 0; i < n; i += 1) {
19
20
  let value = valueGetter(array[i]);
20
21
  (0, isNil_1.default)(value) || !(0, isNumber_1.default)(value = +value) || Number.isNaN(value) || ((0,
21
22
  isNil_1.default)(min) ? (min = value, max = value) : (min = Math.min(min, value),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/extent.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAsC;AACtC,oDAA4B;AAC5B,0DAAkC;AAK3B,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,IAA2B,EAAE,EAAE;IAClE,MAAM,WAAW,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC;IAChE,IAAI,GAAW,CAAC;IAChB,IAAI,GAAW,CAAC;IAEhB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAGvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC,IAAI,IAAA,kBAAQ,EAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACvE,IAAI,IAAA,eAAK,EAAC,GAAG,CAAC,EAAE;oBACd,GAAG,GAAG,KAAK,CAAC;oBACZ,GAAG,GAAG,KAAK,CAAC;iBACb;qBAAM;oBACL,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC5B;aACF;SACF;QAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACnB;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC,CAAC;AA1BW,QAAA,MAAM,UA0BjB","file":"extent.js","sourcesContent":["import isFunction from './isFunction';\nimport isNil from './isNil';\nimport isNumber from './isNumber';\n/**\n * Return an array with minimum and maximum values, in the\n * form [min, max]. Ignores null, undefined, and NaN values.\n */\nexport const extent = (array: any[], func?: (val: any) => number) => {\n const valueGetter = isFunction(func) ? func : (val: any) => val;\n let min: number;\n let max: number;\n\n if (array && array.length) {\n const n = array.length;\n\n // find first valid value\n for (let i = 0; i < n; i += 1) {\n let value = valueGetter(array[i]);\n if (!isNil(value) && isNumber((value = +value)) && !Number.isNaN(value)) {\n if (isNil(min)) {\n min = value;\n max = value;\n } else {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n }\n\n return [min, max];\n }\n\n return [min, max];\n};\n"]}
1
+ {"version":3,"sources":["../src/common/extent.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAsC;AACtC,oDAA4B;AAC5B,0DAAkC;AAClC;;;GAGG;AACI,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,IAA2B,EAAE,EAAE;IAClE,MAAM,WAAW,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC;IAChE,IAAI,GAAW,CAAC;IAChB,IAAI,GAAW,CAAC;IAEhB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAEvB,yBAAyB;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC,IAAI,IAAA,kBAAQ,EAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACvE,IAAI,IAAA,eAAK,EAAC,GAAG,CAAC,EAAE;oBACd,GAAG,GAAG,KAAK,CAAC;oBACZ,GAAG,GAAG,KAAK,CAAC;iBACb;qBAAM;oBACL,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC5B;aACF;SACF;QAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACnB;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC,CAAC;AA1BW,QAAA,MAAM,UA0BjB","file":"extent.js","sourcesContent":["import isFunction from './isFunction';\nimport isNil from './isNil';\nimport isNumber from './isNumber';\n/**\n * Return an array with minimum and maximum values, in the\n * form [min, max]. Ignores null, undefined, and NaN values.\n */\nexport const extent = (array: any[], func?: (val: any) => number) => {\n const valueGetter = isFunction(func) ? func : (val: any) => val;\n let min: number;\n let max: number;\n\n if (array && array.length) {\n const n = array.length;\n\n // find first valid value\n for (let i = 0; i < n; i += 1) {\n let value = valueGetter(array[i]);\n if (!isNil(value) && isNumber((value = +value)) && !Number.isNaN(value)) {\n if (isNil(min)) {\n min = value;\n max = value;\n } else {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n }\n\n return [min, max];\n }\n\n return [min, max];\n};\n"]}
@@ -1,12 +1,18 @@
1
+ /** 获取字段值的函数 */
1
2
  export type FieldGetterFunction = (val: any) => any;
3
+ /** 根据字段路径,返回获取相应路径属性的函数 */
2
4
  export type Getter = (path: string[]) => FieldGetterFunction;
3
5
  export type FieldOption = {
4
6
  field: string;
5
7
  };
6
8
  export type TagItemAttribute<T> = T | ((d?: any) => T);
9
+ /** field函数对应的参数 */
7
10
  export interface FieldGetterGeneratorOptions {
8
11
  get?: Getter;
9
12
  }
10
13
  export declare const getter: (path: string[]) => any;
11
14
  export declare const field: (fieldStr: string | string[] | FieldGetterFunction | FieldGetterFunction[], opt?: FieldGetterGeneratorOptions) => any;
15
+ /**
16
+ * 取数逻辑
17
+ */
12
18
  export declare const simpleField: <T>(option: FieldOption | TagItemAttribute<T>) => (datum: any) => any;
@@ -29,6 +29,9 @@ const fieldSingle = (fieldStr, opt = {}) => {
29
29
 
30
30
  exports.field = field;
31
31
 
32
+ /**
33
+ * 取数逻辑
34
+ */
32
35
  const simpleField = option => option ? "string" == typeof option || "number" == typeof option ? () => option : (0,
33
36
  isFunction_1.default)(option) ? option : datum => datum[option.field] : null;
34
37
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/field.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,wDAAgC;AAChC,8DAAsC;AAgB/B,MAAM,MAAM,GAAG,CAAC,IAAc,EAAO,EAAE;IAC5C,OAAO,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAA,aAAG,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB;AAEF,MAAM,WAAW,GAAG,CAAC,QAAsC,EAAE,MAAmC,EAAE,EAAE,EAAE;IACpG,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC;KACjB;IAED,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAExB,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,cAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEK,MAAM,KAAK,GAAG,CACnB,QAAyE,EACzE,MAAmC,EAAE,EACrC,EAAE;IACF,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAE7D,OAAO,CAAC,KAAU,EAAE,EAAE;YACpB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC;KACH;IAED,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAbW,QAAA,KAAK,SAahB;AAKK,MAAM,WAAW,GAAG,CAAI,MAAyC,EAAE,EAAE;IAC1E,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;KACrB;SAAM,IAAI,IAAA,oBAAU,EAAC,MAAM,CAAC,EAAE;QAC7B,OAAO,MAA2B,CAAC;KACpC;IACD,OAAO,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAE,MAAsB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB","file":"field.js","sourcesContent":["import get from './get';\nimport isArray from './isArray';\nimport isFunction from './isFunction';\n\n/** 获取字段值的函数 */\nexport type FieldGetterFunction = (val: any) => any;\n\n/** 根据字段路径,返回获取相应路径属性的函数 */\nexport type Getter = (path: string[]) => FieldGetterFunction;\n\nexport type FieldOption = { field: string };\nexport type TagItemAttribute<T> = T | ((d?: any) => T);\n\n/** field函数对应的参数 */\nexport interface FieldGetterGeneratorOptions {\n get?: Getter;\n}\n\nexport const getter = (path: string[]): any => {\n return (obj: any) => get(obj, path);\n};\n\nconst fieldSingle = (fieldStr: string | FieldGetterFunction, opt: FieldGetterGeneratorOptions = {}) => {\n if (isFunction(fieldStr)) {\n return fieldStr;\n }\n\n const path = [fieldStr];\n\n return ((opt && opt.get) || getter)(path);\n};\n\nexport const field = (\n fieldStr: string | string[] | FieldGetterFunction | FieldGetterFunction[],\n opt: FieldGetterGeneratorOptions = {}\n) => {\n if (isArray(fieldStr)) {\n const funcs = fieldStr.map(entry => fieldSingle(entry, opt));\n\n return (datum: any) => {\n return funcs.map(func => func(datum));\n };\n }\n\n return fieldSingle(fieldStr, opt);\n};\n\n/**\n * 取数逻辑\n */\nexport const simpleField = <T>(option: FieldOption | TagItemAttribute<T>) => {\n if (!option) {\n return null;\n }\n if (typeof option === 'string' || typeof option === 'number') {\n return () => option;\n } else if (isFunction(option)) {\n return option as (datum: any) => T;\n }\n return (datum: any) => datum[(option as FieldOption).field];\n};\n"]}
1
+ {"version":3,"sources":["../src/common/field.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,wDAAgC;AAChC,8DAAsC;AAgB/B,MAAM,MAAM,GAAG,CAAC,IAAc,EAAO,EAAE;IAC5C,OAAO,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAA,aAAG,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB;AAEF,MAAM,WAAW,GAAG,CAAC,QAAsC,EAAE,MAAmC,EAAE,EAAE,EAAE;IACpG,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC;KACjB;IAED,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAExB,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,cAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEK,MAAM,KAAK,GAAG,CACnB,QAAyE,EACzE,MAAmC,EAAE,EACrC,EAAE;IACF,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAE7D,OAAO,CAAC,KAAU,EAAE,EAAE;YACpB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC;KACH;IAED,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAbW,QAAA,KAAK,SAahB;AAEF;;GAEG;AACI,MAAM,WAAW,GAAG,CAAI,MAAyC,EAAE,EAAE;IAC1E,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;KACrB;SAAM,IAAI,IAAA,oBAAU,EAAC,MAAM,CAAC,EAAE;QAC7B,OAAO,MAA2B,CAAC;KACpC;IACD,OAAO,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAE,MAAsB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB","file":"field.js","sourcesContent":["import get from './get';\nimport isArray from './isArray';\nimport isFunction from './isFunction';\n\n/** 获取字段值的函数 */\nexport type FieldGetterFunction = (val: any) => any;\n\n/** 根据字段路径,返回获取相应路径属性的函数 */\nexport type Getter = (path: string[]) => FieldGetterFunction;\n\nexport type FieldOption = { field: string };\nexport type TagItemAttribute<T> = T | ((d?: any) => T);\n\n/** field函数对应的参数 */\nexport interface FieldGetterGeneratorOptions {\n get?: Getter;\n}\n\nexport const getter = (path: string[]): any => {\n return (obj: any) => get(obj, path);\n};\n\nconst fieldSingle = (fieldStr: string | FieldGetterFunction, opt: FieldGetterGeneratorOptions = {}) => {\n if (isFunction(fieldStr)) {\n return fieldStr;\n }\n\n const path = [fieldStr];\n\n return ((opt && opt.get) || getter)(path);\n};\n\nexport const field = (\n fieldStr: string | string[] | FieldGetterFunction | FieldGetterFunction[],\n opt: FieldGetterGeneratorOptions = {}\n) => {\n if (isArray(fieldStr)) {\n const funcs = fieldStr.map(entry => fieldSingle(entry, opt));\n\n return (datum: any) => {\n return funcs.map(func => func(datum));\n };\n }\n\n return fieldSingle(fieldStr, opt);\n};\n\n/**\n * 取数逻辑\n */\nexport const simpleField = <T>(option: FieldOption | TagItemAttribute<T>) => {\n if (!option) {\n return null;\n }\n if (typeof option === 'string' || typeof option === 'number') {\n return () => option;\n } else if (isFunction(option)) {\n return option as (datum: any) => T;\n }\n return (datum: any) => datum[(option as FieldOption).field];\n};\n"]}
@@ -6,5 +6,4 @@ Object.defineProperty(exports, "__esModule", {
6
6
 
7
7
  const getType = value => ({}.toString.call(value).replace(/^\[object /, "").replace(/]$/, ""));
8
8
 
9
- exports.default = getType;
10
- //# sourceMappingURL=getType.js.map
9
+ exports.default = getType;
@@ -1,3 +1,20 @@
1
1
  import type { Dict } from './../type';
2
+ /**
3
+ * Checks if `key` is a direct property of `object`.
4
+ *
5
+ * @param {Object} object The object to query.
6
+ * @param {string} key The key to check.
7
+ * @returns {boolean} Returns `true` if `key` exists, else `false`.
8
+ * @example
9
+ *
10
+ * const object = { 'a': { 'b': 2 } }
11
+ * const other = create({ 'a': create({ 'b': 2 }) })
12
+ *
13
+ * has(object, 'a')
14
+ * // => true
15
+ *
16
+ * has(other, 'a')
17
+ * // => false
18
+ */
2
19
  declare const has: (object: Dict<any>, key: any) => boolean;
3
20
  export default has;
package/cjs/common/has.js CHANGED
@@ -4,7 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
 
7
+ /** Used to check objects for own properties. */
7
8
  const hasOwnProperty = Object.prototype.hasOwnProperty, has = (object, key) => null != object && hasOwnProperty.call(object, key);
8
9
 
9
- exports.default = has;
10
+ /**
11
+ * Checks if `key` is a direct property of `object`.
12
+ *
13
+ * @param {Object} object The object to query.
14
+ * @param {string} key The key to check.
15
+ * @returns {boolean} Returns `true` if `key` exists, else `false`.
16
+ * @example
17
+ *
18
+ * const object = { 'a': { 'b': 2 } }
19
+ * const other = create({ 'a': create({ 'b': 2 }) })
20
+ *
21
+ * has(object, 'a')
22
+ * // => true
23
+ *
24
+ * has(other, 'a')
25
+ * // => false
26
+ */ exports.default = has;
10
27
  //# sourceMappingURL=has.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/has.ts"],"names":[],"mappings":";;AAGA,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AAmBvD,MAAM,GAAG,GAAG,CAAC,MAAiB,EAAE,GAAQ,EAAW,EAAE;IACnD,OAAO,MAAM,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,kBAAe,GAAG,CAAC","file":"has.js","sourcesContent":["import type { Dict } from './../type';\n\n/** Used to check objects for own properties. */\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Checks if `key` is a direct property of `object`.\n *\n * @param {Object} object The object to query.\n * @param {string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n * @example\n *\n * const object = { 'a': { 'b': 2 } }\n * const other = create({ 'a': create({ 'b': 2 }) })\n *\n * has(object, 'a')\n * // => true\n *\n * has(other, 'a')\n * // => false\n */\nconst has = (object: Dict<any>, key: any): boolean => {\n return object != null && hasOwnProperty.call(object, key);\n};\n\nexport default has;\n"]}
1
+ {"version":3,"sources":["../src/common/has.ts"],"names":[],"mappings":";;AAEA,gDAAgD;AAChD,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,GAAG,GAAG,CAAC,MAAiB,EAAE,GAAQ,EAAW,EAAE;IACnD,OAAO,MAAM,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,kBAAe,GAAG,CAAC","file":"has.js","sourcesContent":["import type { Dict } from './../type';\n\n/** Used to check objects for own properties. */\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Checks if `key` is a direct property of `object`.\n *\n * @param {Object} object The object to query.\n * @param {string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n * @example\n *\n * const object = { 'a': { 'b': 2 } }\n * const other = create({ 'a': create({ 'b': 2 }) })\n *\n * has(object, 'a')\n * // => true\n *\n * has(other, 'a')\n * // => false\n */\nconst has = (object: Dict<any>, key: any): boolean => {\n return object != null && hasOwnProperty.call(object, key);\n};\n\nexport default has;\n"]}
@@ -33,6 +33,7 @@ export * from './array';
33
33
  export { range } from './range';
34
34
  export { ascending } from './ascending';
35
35
  export * from './quantileSorted';
36
+ export { normalQuantile } from './normalQuantile';
36
37
  export { bisect, findZeroOfFunction, binaryFuzzySearch, binaryFuzzySearchInNumberRange } from './bisect';
37
38
  export { deviation } from './deviation';
38
39
  export { median } from './median';
@@ -67,3 +68,6 @@ export * from './regression-lowess';
67
68
  export * from './regression-polynomial';
68
69
  export * from './kde';
69
70
  export * from './ecdf';
71
+ export * from './correlation';
72
+ export * from './mean';
73
+ export * from './bootstrap';
@@ -21,9 +21,10 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
21
21
 
22
22
  Object.defineProperty(exports, "__esModule", {
23
23
  value: !0
24
- }), exports.debounce = exports.clamper = exports.clampRange = exports.clamp = exports.uuid = exports.truncate = exports.pad = exports.memoize = exports.constant = exports.tickStep = exports.variance = exports.median = exports.deviation = exports.binaryFuzzySearchInNumberRange = exports.binaryFuzzySearch = exports.findZeroOfFunction = exports.bisect = exports.ascending = exports.range = exports.isShallowEqual = exports.isEqual = exports.pickWithout = exports.pick = exports.baseMerge = exports.merge = exports.cloneDeep = exports.clone = exports.has = exports.get = exports.isEmpty = exports.isBase64 = exports.isRegExp = exports.isValidUrl = exports.isValidNumber = exports.isNumeric = exports.isNumber = exports.isDate = exports.isArrayLike = exports.isArray = exports.isString = exports.isUndefined = exports.isType = exports.isPlainObject = exports.isObjectLike = exports.isObject = exports.isValid = exports.isNull = exports.isNil = exports.isFunction = exports.isBoolean = void 0,
25
- exports.substitute = exports.upperFirst = exports.lowerFirst = exports.toValidNumber = exports.toNumber = exports.toDate = exports.throttle = void 0;
24
+ }), exports.clamper = exports.clampRange = exports.clamp = exports.uuid = exports.truncate = exports.pad = exports.memoize = exports.constant = exports.tickStep = exports.variance = exports.median = exports.deviation = exports.binaryFuzzySearchInNumberRange = exports.binaryFuzzySearch = exports.findZeroOfFunction = exports.bisect = exports.normalQuantile = exports.ascending = exports.range = exports.isShallowEqual = exports.isEqual = exports.pickWithout = exports.pick = exports.baseMerge = exports.merge = exports.cloneDeep = exports.clone = exports.has = exports.get = exports.isEmpty = exports.isBase64 = exports.isRegExp = exports.isValidUrl = exports.isValidNumber = exports.isNumeric = exports.isNumber = exports.isDate = exports.isArrayLike = exports.isArray = exports.isString = exports.isUndefined = exports.isType = exports.isPlainObject = exports.isObjectLike = exports.isObject = exports.isValid = exports.isNull = exports.isNil = exports.isFunction = exports.isBoolean = void 0,
25
+ exports.substitute = exports.upperFirst = exports.lowerFirst = exports.toValidNumber = exports.toNumber = exports.toDate = exports.throttle = exports.debounce = void 0;
26
26
 
27
+ // type check
27
28
  var isBoolean_1 = require("./isBoolean");
28
29
 
29
30
  Object.defineProperty(exports, "isBoolean", {
@@ -213,6 +214,7 @@ Object.defineProperty(exports, "isEmpty", {
213
214
  }
214
215
  });
215
216
 
217
+ // object
216
218
  var get_1 = require("./get");
217
219
 
218
220
  Object.defineProperty(exports, "get", {
@@ -297,7 +299,9 @@ Object.defineProperty(exports, "isShallowEqual", {
297
299
  get: function() {
298
300
  return isShallowEqual_1.isShallowEqual;
299
301
  }
300
- }), __exportStar(require("./mixin"), exports), __exportStar(require("./array"), exports);
302
+ }), __exportStar(require("./mixin"), exports),
303
+ // array
304
+ __exportStar(require("./array"), exports);
301
305
 
302
306
  var range_1 = require("./range");
303
307
 
@@ -317,6 +321,15 @@ Object.defineProperty(exports, "ascending", {
317
321
  }
318
322
  }), __exportStar(require("./quantileSorted"), exports);
319
323
 
324
+ var normalQuantile_1 = require("./normalQuantile");
325
+
326
+ Object.defineProperty(exports, "normalQuantile", {
327
+ enumerable: !0,
328
+ get: function() {
329
+ return normalQuantile_1.normalQuantile;
330
+ }
331
+ });
332
+
320
333
  var bisect_1 = require("./bisect");
321
334
 
322
335
  Object.defineProperty(exports, "bisect", {
@@ -368,6 +381,7 @@ Object.defineProperty(exports, "variance", {
368
381
  }
369
382
  });
370
383
 
384
+ // tick
371
385
  var tickStep_1 = require("./tickStep");
372
386
 
373
387
  Object.defineProperty(exports, "tickStep", {
@@ -375,8 +389,11 @@ Object.defineProperty(exports, "tickStep", {
375
389
  get: function() {
376
390
  return tickStep_1.tickStep;
377
391
  }
378
- }), __exportStar(require("./number"), exports);
392
+ }),
393
+ // number
394
+ __exportStar(require("./number"), exports);
379
395
 
396
+ // function
380
397
  var constant_1 = require("./constant");
381
398
 
382
399
  Object.defineProperty(exports, "constant", {
@@ -395,6 +412,7 @@ Object.defineProperty(exports, "memoize", {
395
412
  }
396
413
  });
397
414
 
415
+ // pad
398
416
  var pad_1 = require("./pad");
399
417
 
400
418
  Object.defineProperty(exports, "pad", {
@@ -413,6 +431,7 @@ Object.defineProperty(exports, "truncate", {
413
431
  }
414
432
  });
415
433
 
434
+ // uuid
416
435
  var uuid_1 = require("./uuid");
417
436
 
418
437
  Object.defineProperty(exports, "uuid", {
@@ -422,6 +441,7 @@ Object.defineProperty(exports, "uuid", {
422
441
  }
423
442
  });
424
443
 
444
+ // clamp
425
445
  var clamp_1 = require("./clamp");
426
446
 
427
447
  Object.defineProperty(exports, "clamp", {
@@ -449,6 +469,7 @@ Object.defineProperty(exports, "clamper", {
449
469
  }
450
470
  });
451
471
 
472
+ // debounce & throttle
452
473
  var debounce_1 = require("./debounce");
453
474
 
454
475
  Object.defineProperty(exports, "debounce", {
@@ -465,8 +486,11 @@ Object.defineProperty(exports, "throttle", {
465
486
  get: function() {
466
487
  return __importDefault(throttle_1).default;
467
488
  }
468
- }), __exportStar(require("./interpolate"), exports);
489
+ }),
490
+ // interpolate
491
+ __exportStar(require("./interpolate"), exports);
469
492
 
493
+ // type convert
470
494
  var toDate_1 = require("./toDate");
471
495
 
472
496
  Object.defineProperty(exports, "toDate", {
@@ -494,6 +518,7 @@ Object.defineProperty(exports, "toValidNumber", {
494
518
  }
495
519
  });
496
520
 
521
+ // string
497
522
  var lowerFirst_1 = require("./lowerFirst");
498
523
 
499
524
  Object.defineProperty(exports, "lowerFirst", {
@@ -512,6 +537,7 @@ Object.defineProperty(exports, "upperFirst", {
512
537
  }
513
538
  });
514
539
 
540
+ // string format
515
541
  var substitute_1 = require("./substitute");
516
542
 
517
543
  Object.defineProperty(exports, "substitute", {
@@ -524,4 +550,6 @@ __exportStar(require("./toPercent"), exports), __exportStar(require("./zero"), e
524
550
  __exportStar(require("./extent"), exports), __exportStar(require("./regression-linear"), exports),
525
551
  __exportStar(require("./regression-logistic"), exports), __exportStar(require("./regression-lowess"), exports),
526
552
  __exportStar(require("./regression-polynomial"), exports), __exportStar(require("./kde"), exports),
527
- __exportStar(require("./ecdf"), exports);
553
+ __exportStar(require("./ecdf"), exports), __exportStar(require("./correlation"), exports),
554
+ __exportStar(require("./mean"), exports), __exportStar(require("./bootstrap"), exports);
555
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,qCAA+C;AAAtC,mHAAA,OAAO,OAAW;AAC3B,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAC5B,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAC5B,qCAA+C;AAAtC,mHAAA,OAAO,OAAW;AAC3B,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAC5B,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAC5B,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAE5B,qCAA+C;AAAtC,mHAAA,OAAO,OAAW;AAG3B,6BAAuC;AAA9B,2GAAA,OAAO,OAAO;AACvB,6BAAuC;AAA9B,2GAAA,OAAO,OAAO;AACvB,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,iCAAsD;AAA7C,+GAAA,OAAO,OAAS;AAAE,kGAAA,SAAS,OAAA;AACpC,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ;AACxB,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,0CAAwB;AAGxB,0CAAwB;AACxB,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,mDAAiC;AACjC,mCAAyG;AAAhG,gGAAA,MAAM,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAAE,wHAAA,8BAA8B,OAAA;AACtF,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGjB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGjB,2CAAyB;AAGzB,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAC5B,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAGhB,6BAAuC;AAA9B,2GAAA,OAAO,OAAO;AACvB,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAG5B,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ;AAGxB,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAGhB,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAC5B,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAG5B,gDAA8B;AAG9B,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAGtB,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAG9B,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAE9B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,yCAAuB;AACvB,2CAAyB;AACzB,sDAAoC;AACpC,wDAAsC;AACtC,sDAAoC;AACpC,0DAAwC;AACxC,wCAAsB;AACtB,yCAAuB","file":"index.js","sourcesContent":["// type check\nexport { default as isBoolean } from './isBoolean';\nexport { default as isFunction } from './isFunction';\nexport { default as isNil } from './isNil';\nexport { default as isNull } from './isNull';\nexport { default as isValid } from './isValid';\nexport { default as isObject } from './isObject';\nexport { default as isObjectLike } from './isObjectLike';\nexport { default as isPlainObject } from './isPlainObject';\nexport { default as isType } from './isType';\nexport { default as isUndefined } from './isUndefined';\nexport { default as isString } from './isString';\nexport { default as isArray } from './isArray';\nexport { default as isArrayLike } from './isArrayLike';\nexport { default as isDate } from './isDate';\nexport { default as isNumber } from './isNumber';\nexport { default as isNumeric } from './isNumeric';\nexport { default as isValidNumber } from './isValidNumber';\nexport { default as isValidUrl } from './isValidUrl';\nexport { default as isRegExp } from './isRegExp';\nexport { default as isBase64 } from './isBase64';\n\nexport { default as isEmpty } from './isEmpty';\n\n// object\nexport { default as get } from './get';\nexport { default as has } from './has';\nexport { default as clone } from './clone';\nexport { default as cloneDeep } from './cloneDeep';\nexport { default as merge, baseMerge } from './merge';\nexport { default as pick } from './pick';\nexport { default as pickWithout } from './pickWithout';\nexport { isEqual } from './isEqual';\nexport { isShallowEqual } from './isShallowEqual';\nexport * from './mixin';\n\n// array\nexport * from './array';\nexport { range } from './range';\nexport { ascending } from './ascending';\nexport * from './quantileSorted';\nexport { bisect, findZeroOfFunction, binaryFuzzySearch, binaryFuzzySearchInNumberRange } from './bisect';\nexport { deviation } from './deviation';\nexport { median } from './median';\nexport { variance } from './variance';\n\n// tick\nexport { tickStep } from './tickStep';\n\n// number\nexport * from './number';\n\n// function\nexport { default as constant } from './constant';\nexport { memoize } from './memoize';\n\n// pad\nexport { default as pad } from './pad';\nexport { default as truncate } from './truncate';\n\n// uuid\nexport { default as uuid } from './uuid';\n\n// clamp\nexport { default as clamp } from './clamp';\nexport { default as clampRange } from './clampRange';\nexport { clamper } from './clamper';\n\n// debounce & throttle\nexport { default as debounce } from './debounce';\nexport { default as throttle } from './throttle';\n\n// interpolate\nexport * from './interpolate';\n\n// type convert\nexport { toDate } from './toDate';\nexport { toNumber } from './toNumber';\nexport { toValidNumber } from './toValidNumber';\n\n// string\nexport { default as lowerFirst } from './lowerFirst';\nexport { default as upperFirst } from './upperFirst';\n\n// string format\nexport { default as substitute } from './substitute';\n\nexport * from './random';\nexport * from './field';\nexport * from './toPercent';\nexport * from './zero';\nexport * from './extent';\nexport * from './regression-linear';\nexport * from './regression-logistic';\nexport * from './regression-lowess';\nexport * from './regression-polynomial';\nexport * from './kde';\nexport * from './ecdf';\n"]}
1
+ {"version":3,"sources":["../src/common/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// type check\nexport { default as isBoolean } from './isBoolean';\nexport { default as isFunction } from './isFunction';\nexport { default as isNil } from './isNil';\nexport { default as isNull } from './isNull';\nexport { default as isValid } from './isValid';\nexport { default as isObject } from './isObject';\nexport { default as isObjectLike } from './isObjectLike';\nexport { default as isPlainObject } from './isPlainObject';\nexport { default as isType } from './isType';\nexport { default as isUndefined } from './isUndefined';\nexport { default as isString } from './isString';\nexport { default as isArray } from './isArray';\nexport { default as isArrayLike } from './isArrayLike';\nexport { default as isDate } from './isDate';\nexport { default as isNumber } from './isNumber';\nexport { default as isNumeric } from './isNumeric';\nexport { default as isValidNumber } from './isValidNumber';\nexport { default as isValidUrl } from './isValidUrl';\nexport { default as isRegExp } from './isRegExp';\nexport { default as isBase64 } from './isBase64';\n\nexport { default as isEmpty } from './isEmpty';\n\n// object\nexport { default as get } from './get';\nexport { default as has } from './has';\nexport { default as clone } from './clone';\nexport { default as cloneDeep } from './cloneDeep';\nexport { default as merge, baseMerge } from './merge';\nexport { default as pick } from './pick';\nexport { default as pickWithout } from './pickWithout';\nexport { isEqual } from './isEqual';\nexport { isShallowEqual } from './isShallowEqual';\nexport * from './mixin';\n\n// array\nexport * from './array';\nexport { range } from './range';\nexport { ascending } from './ascending';\nexport * from './quantileSorted';\nexport { normalQuantile } from './normalQuantile';\nexport { bisect, findZeroOfFunction, binaryFuzzySearch, binaryFuzzySearchInNumberRange } from './bisect';\nexport { deviation } from './deviation';\nexport { median } from './median';\nexport { variance } from './variance';\n\n// tick\nexport { tickStep } from './tickStep';\n\n// number\nexport * from './number';\n\n// function\nexport { default as constant } from './constant';\nexport { memoize } from './memoize';\n\n// pad\nexport { default as pad } from './pad';\nexport { default as truncate } from './truncate';\n\n// uuid\nexport { default as uuid } from './uuid';\n\n// clamp\nexport { default as clamp } from './clamp';\nexport { default as clampRange } from './clampRange';\nexport { clamper } from './clamper';\n\n// debounce & throttle\nexport { default as debounce } from './debounce';\nexport { default as throttle } from './throttle';\n\n// interpolate\nexport * from './interpolate';\n\n// type convert\nexport { toDate } from './toDate';\nexport { toNumber } from './toNumber';\nexport { toValidNumber } from './toValidNumber';\n\n// string\nexport { default as lowerFirst } from './lowerFirst';\nexport { default as upperFirst } from './upperFirst';\n\n// string format\nexport { default as substitute } from './substitute';\n\nexport * from './random';\nexport * from './field';\nexport * from './toPercent';\nexport * from './zero';\nexport * from './extent';\nexport * from './regression-linear';\nexport * from './regression-logistic';\nexport * from './regression-lowess';\nexport * from './regression-polynomial';\nexport * from './kde';\nexport * from './ecdf';\n\nexport * from './correlation';\nexport * from './mean';\nexport * from './bootstrap';\n"]}
@@ -37,13 +37,26 @@ function one(b) {
37
37
 
38
38
  function interpolateString(a, b) {
39
39
  let am, bm, bs, bi = reA.lastIndex = reB.lastIndex = 0, i = -1;
40
+ // scan index for next number in b
41
+ // index in s
40
42
  const s = [], q = [];
41
- for (a += "", b += ""; (am = reA.exec(a)) && (bm = reB.exec(b)); ) (bs = bm.index) > bi && (bs = b.slice(bi, bs),
42
- s[i] ? s[i] += bs : s[++i] = bs), (am = am[0]) === (bm = bm[0]) ? s[i] ? s[i] += bm : s[++i] = bm : (s[++i] = null,
43
- q.push({
43
+ // string constants and placeholders
44
+ // Interpolate pairs of numbers in a & b.
45
+ for (// number interpolators
46
+ // Coerce inputs to strings.
47
+ a += "", b += ""; (am = reA.exec(a)) && (bm = reB.exec(b)); ) (bs = bm.index) > bi && (
48
+ // a string precedes the next number in b
49
+ bs = b.slice(bi, bs), s[i] ? s[i] += bs : s[++i] = bs), (am = am[0]) === (bm = bm[0]) ?
50
+ // numbers in a & b match
51
+ s[i] ? s[i] += bm : s[++i] = bm : (
52
+ // interpolate non-matching numbers
53
+ s[++i] = null, q.push({
44
54
  i: i,
45
55
  x: interpolateNumber(am, bm)
46
56
  })), bi = reB.lastIndex;
57
+ // Add remains of b.
58
+ // Special optimization for only a single match.
59
+ // Otherwise, interpolate each of the numbers and rejoin the string.
47
60
  return bi < b.length && (bs = b.slice(bi), s[i] ? s[i] += bs : s[++i] = bs), s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length,
48
61
  function(t) {
49
62
  for (let o, i = 0; i < b; ++i) s[(o = q[i]).i] = o.x(t);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/interpolate.ts"],"names":[],"mappings":"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","file":"interpolate.js","sourcesContent":["export function interpolateNumber(a: number, b: number): (x: number) => number {\n return (t: number) => {\n return a * (1 - t) + b * t;\n };\n}\n\nexport function interpolateNumberRound(a: number, b: number): (x: number) => number {\n return function (t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n\nexport function interpolateDate(a: Date, b: Date) {\n const aVal = a.valueOf();\n const bVal = b.valueOf();\n\n const d = new Date();\n return (t: number) => {\n d.setTime(aVal * (1 - t) + bVal * t);\n return d;\n };\n}\n\nconst reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\nconst reB = new RegExp(reA.source, 'g');\n\nfunction zero(b: any) {\n return function () {\n return b;\n };\n}\n\nfunction one(b: any) {\n return function (t: any) {\n return b(t) + '';\n };\n}\n\nexport function interpolateString(a: any, b: any) {\n let bi = (reA.lastIndex = reB.lastIndex = 0); // scan index for next number in b\n let am: any; // current match in a\n let bm: any; // current match in b\n let bs; // string preceding current number in b, if any\n let i = -1; // index in s\n const s: any[] = []; // string constants and placeholders\n const q: any[] = []; // number interpolators\n\n // Coerce inputs to strings.\n (a = a + ''), (b = b + '');\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) {\n s[i] += bs;\n } // coalesce with previous string\n else {\n s[++i] = bs;\n }\n }\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) {\n s[i] += bm;\n } // coalesce with previous string\n else {\n s[++i] = bm;\n }\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({ i: i, x: interpolateNumber(am, bm) });\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) {\n s[i] += bs;\n } // coalesce with previous string\n else {\n s[++i] = bs;\n }\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2\n ? q[0]\n ? one(q[0].x)\n : zero(b)\n : ((b = q.length),\n function (t: any) {\n for (let i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n return s.join('');\n });\n}\n"]}
1
+ {"version":3,"sources":["../src/common/interpolate.ts"],"names":[],"mappings":"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","file":"interpolate.js","sourcesContent":["export function interpolateNumber(a: number, b: number): (x: number) => number {\n return (t: number) => {\n return a * (1 - t) + b * t;\n };\n}\n\nexport function interpolateNumberRound(a: number, b: number): (x: number) => number {\n return function (t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n\nexport function interpolateDate(a: Date, b: Date) {\n const aVal = a.valueOf();\n const bVal = b.valueOf();\n\n const d = new Date();\n return (t: number) => {\n d.setTime(aVal * (1 - t) + bVal * t);\n return d;\n };\n}\n\nconst reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\nconst reB = new RegExp(reA.source, 'g');\n\nfunction zero(b: any) {\n return function () {\n return b;\n };\n}\n\nfunction one(b: any) {\n return function (t: any) {\n return b(t) + '';\n };\n}\n\nexport function interpolateString(a: any, b: any) {\n let bi = (reA.lastIndex = reB.lastIndex = 0); // scan index for next number in b\n let am: any; // current match in a\n let bm: any; // current match in b\n let bs; // string preceding current number in b, if any\n let i = -1; // index in s\n const s: any[] = []; // string constants and placeholders\n const q: any[] = []; // number interpolators\n\n // Coerce inputs to strings.\n (a = a + ''), (b = b + '');\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) {\n s[i] += bs;\n } // coalesce with previous string\n else {\n s[++i] = bs;\n }\n }\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) {\n s[i] += bm;\n } // coalesce with previous string\n else {\n s[++i] = bm;\n }\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({ i: i, x: interpolateNumber(am, bm) });\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) {\n s[i] += bs;\n } // coalesce with previous string\n else {\n s[++i] = bs;\n }\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2\n ? q[0]\n ? one(q[0].x)\n : zero(b)\n : ((b = q.length),\n function (t: any) {\n for (let i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n return s.join('');\n });\n}\n"]}
@@ -1,2 +1,8 @@
1
+ /**
2
+ * 迁移至 sirius
3
+ * Checks if `value` is classified as a `Base64` string;
4
+ * @param {string} The value to check.
5
+ * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.
6
+ */
1
7
  declare const isBase64: (value: string) => boolean;
2
8
  export default isBase64;
@@ -4,6 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
 
7
+ /**
8
+ * 迁移至 sirius
9
+ * Checks if `value` is classified as a `Base64` string;
10
+ * @param {string} The value to check.
11
+ * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.
12
+ */
7
13
  const isBase64 = value => new RegExp(/^data:image\/(?:gif|png|jpeg|bmp|webp|svg\+xml)(?:;charset=utf-8)?;base64,(?:[A-Za-z0-9]|[+/])+={0,2}/g).test(value);
8
14
 
9
15
  exports.default = isBase64;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isBase64.ts"],"names":[],"mappings":";;AAMA,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAW,EAAE;IAC1C,MAAM,GAAG,GAAG,wGAAwG,CAAC;IACrH,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC","file":"isBase64.js","sourcesContent":["/**\n * 迁移至 sirius\n * Checks if `value` is classified as a `Base64` string;\n * @param {string} The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n */\nconst isBase64 = (value: string): boolean => {\n const exp = /^data:image\\/(?:gif|png|jpeg|bmp|webp|svg\\+xml)(?:;charset=utf-8)?;base64,(?:[A-Za-z0-9]|[+/])+={0,2}/g;\n const urlPattern = new RegExp(exp);\n return urlPattern.test(value);\n};\n\nexport default isBase64;\n"]}
1
+ {"version":3,"sources":["../src/common/isBase64.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAW,EAAE;IAC1C,MAAM,GAAG,GAAG,wGAAwG,CAAC;IACrH,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC","file":"isBase64.js","sourcesContent":["/**\n * 迁移至 sirius\n * Checks if `value` is classified as a `Base64` string;\n * @param {string} The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n */\nconst isBase64 = (value: string): boolean => {\n const exp = /^data:image\\/(?:gif|png|jpeg|bmp|webp|svg\\+xml)(?:;charset=utf-8)?;base64,(?:[A-Za-z0-9]|[+/])+={0,2}/g;\n const urlPattern = new RegExp(exp);\n return urlPattern.test(value);\n};\n\nexport default isBase64;\n"]}
@@ -1,2 +1,15 @@
1
+ /**
2
+ * Checks if `value` is classified as a boolean 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 boolean, else `false`.
6
+ * @example
7
+ *
8
+ * isBoolean(false)
9
+ * // => true
10
+ *
11
+ * isBoolean(null)
12
+ * // => false
13
+ */
1
14
  declare const isBoolean: (value: any, fuzzy?: boolean) => value is boolean;
2
15
  export default isBoolean;