@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
@@ -1 +1 @@
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
+ {"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"]}
@@ -3,5 +3,4 @@ import { variance } from "./variance";
3
3
  export function deviation(values, valueof) {
4
4
  const v = variance(values, valueof);
5
5
  return v ? Math.sqrt(v) : v;
6
- }
7
- //# sourceMappingURL=deviation.js.map
6
+ }
@@ -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) => {
package/es/common/ecdf.js CHANGED
@@ -1,8 +1,18 @@
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 function ecdf(data) {
2
10
  const n = data.length, sorted = data.slice().sort(((a, b) => a - b));
3
11
  function evaluateSingle(x) {
4
12
  if (0 === n) return 0;
5
- let lo = 0, hi = n;
13
+ // count of values <= x (upper bound index)
14
+ let lo = 0, hi = n;
15
+ // exclusive
6
16
  for (;lo < hi; ) {
7
17
  const mid = lo + hi >>> 1;
8
18
  sorted[mid] <= x ? lo = mid + 1 : hi = mid;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/ecdf.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,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;AAED,eAAe,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,MAAM,UAAU,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;AAED,eAAe,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[];
@@ -4,12 +4,16 @@ import isNil from "./isNil";
4
4
 
5
5
  import isNumber from "./isNumber";
6
6
 
7
- export const extent = (array, func) => {
7
+ /**
8
+ * Return an array with minimum and maximum values, in the
9
+ * form [min, max]. Ignores null, undefined, and NaN values.
10
+ */ export const extent = (array, func) => {
8
11
  const valueGetter = isFunction(func) ? func : val => val;
9
12
  let min, max;
10
13
  if (array && array.length) {
11
14
  const n = array.length;
12
- for (let i = 0; i < n; i += 1) {
15
+ // find first valid value
16
+ for (let i = 0; i < n; i += 1) {
13
17
  let value = valueGetter(array[i]);
14
18
  isNil(value) || !isNumber(value = +value) || Number.isNaN(value) || (isNil(min) ? (min = value,
15
19
  max = value) : (min = Math.min(min, value), max = Math.max(max, value)));
@@ -17,4 +21,5 @@ export const extent = (array, func) => {
17
21
  return [ min, max ];
18
22
  }
19
23
  return [ min, max ];
20
- };
24
+ };
25
+ //# sourceMappingURL=extent.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/extent.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAKlC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,IAA2B,EAAE,EAAE;IAClE,MAAM,WAAW,GAAG,UAAU,CAAC,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,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACvE,IAAI,KAAK,CAAC,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","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,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,IAA2B,EAAE,EAAE;IAClE,MAAM,WAAW,GAAG,UAAU,CAAC,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,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACvE,IAAI,KAAK,CAAC,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","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;
@@ -20,5 +20,7 @@ export const field = (fieldStr, opt = {}) => {
20
20
  return fieldSingle(fieldStr, opt);
21
21
  };
22
22
 
23
- export const simpleField = option => option ? "string" == typeof option || "number" == typeof option ? () => option : isFunction(option) ? option : datum => datum[option.field] : null;
23
+ /**
24
+ * 取数逻辑
25
+ */ export const simpleField = option => option ? "string" == typeof option || "number" == typeof option ? () => option : isFunction(option) ? option : datum => datum[option.field] : null;
24
26
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/field.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AAgBtC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAc,EAAO,EAAE;IAC5C,OAAO,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,QAAsC,EAAE,MAAmC,EAAE,EAAE,EAAE;IACpG,IAAI,UAAU,CAAC,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,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,QAAyE,EACzE,MAAmC,EAAE,EACrC,EAAE;IACF,IAAI,OAAO,CAAC,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;AAKF,MAAM,CAAC,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,UAAU,CAAC,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","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,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AAgBtC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAc,EAAO,EAAE;IAC5C,OAAO,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,QAAsC,EAAE,MAAmC,EAAE,EAAE,EAAE;IACpG,IAAI,UAAU,CAAC,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,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,QAAyE,EACzE,MAAmC,EAAE,EACrC,EAAE;IACF,IAAI,OAAO,CAAC,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;AAEF;;GAEG;AACH,MAAM,CAAC,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,UAAU,CAAC,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","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,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/es/common/has.js CHANGED
@@ -1,4 +1,21 @@
1
+ /** Used to check objects for own properties. */
1
2
  const hasOwnProperty = Object.prototype.hasOwnProperty, has = (object, key) => null != object && hasOwnProperty.call(object, key);
2
3
 
3
- export default has;
4
+ /**
5
+ * Checks if `key` is a direct property of `object`.
6
+ *
7
+ * @param {Object} object The object to query.
8
+ * @param {string} key The key to check.
9
+ * @returns {boolean} Returns `true` if `key` exists, else `false`.
10
+ * @example
11
+ *
12
+ * const object = { 'a': { 'b': 2 } }
13
+ * const other = create({ 'a': create({ 'b': 2 }) })
14
+ *
15
+ * has(object, 'a')
16
+ * // => true
17
+ *
18
+ * has(other, 'a')
19
+ * // => false
20
+ */ export default has;
4
21
  //# 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,eAAe,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,eAAe,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,7 @@ 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';
74
+ export * from './regression-bootstrap';
@@ -1,3 +1,4 @@
1
+ // type check
1
2
  export { default as isBoolean } from "./isBoolean";
2
3
 
3
4
  export { default as isFunction } from "./isFunction";
@@ -40,6 +41,7 @@ export { default as isBase64 } from "./isBase64";
40
41
 
41
42
  export { default as isEmpty } from "./isEmpty";
42
43
 
44
+ // object
43
45
  export { default as get } from "./get";
44
46
 
45
47
  export { default as has } from "./has";
@@ -60,6 +62,7 @@ export { isShallowEqual } from "./isShallowEqual";
60
62
 
61
63
  export * from "./mixin";
62
64
 
65
+ // array
63
66
  export * from "./array";
64
67
 
65
68
  export { range } from "./range";
@@ -68,6 +71,8 @@ export { ascending } from "./ascending";
68
71
 
69
72
  export * from "./quantileSorted";
70
73
 
74
+ export { normalQuantile } from "./normalQuantile";
75
+
71
76
  export { bisect, findZeroOfFunction, binaryFuzzySearch, binaryFuzzySearchInNumberRange } from "./bisect";
72
77
 
73
78
  export { deviation } from "./deviation";
@@ -76,42 +81,53 @@ export { median } from "./median";
76
81
 
77
82
  export { variance } from "./variance";
78
83
 
84
+ // tick
79
85
  export { tickStep } from "./tickStep";
80
86
 
87
+ // number
81
88
  export * from "./number";
82
89
 
90
+ // function
83
91
  export { default as constant } from "./constant";
84
92
 
85
93
  export { memoize } from "./memoize";
86
94
 
95
+ // pad
87
96
  export { default as pad } from "./pad";
88
97
 
89
98
  export { default as truncate } from "./truncate";
90
99
 
100
+ // uuid
91
101
  export { default as uuid } from "./uuid";
92
102
 
103
+ // clamp
93
104
  export { default as clamp } from "./clamp";
94
105
 
95
106
  export { default as clampRange } from "./clampRange";
96
107
 
97
108
  export { clamper } from "./clamper";
98
109
 
110
+ // debounce & throttle
99
111
  export { default as debounce } from "./debounce";
100
112
 
101
113
  export { default as throttle } from "./throttle";
102
114
 
115
+ // interpolate
103
116
  export * from "./interpolate";
104
117
 
118
+ // type convert
105
119
  export { toDate } from "./toDate";
106
120
 
107
121
  export { toNumber } from "./toNumber";
108
122
 
109
123
  export { toValidNumber } from "./toValidNumber";
110
124
 
125
+ // string
111
126
  export { default as lowerFirst } from "./lowerFirst";
112
127
 
113
128
  export { default as upperFirst } from "./upperFirst";
114
129
 
130
+ // string format
115
131
  export { default as substitute } from "./substitute";
116
132
 
117
133
  export * from "./random";
@@ -135,4 +151,12 @@ export * from "./regression-polynomial";
135
151
  export * from "./kde";
136
152
 
137
153
  export * from "./ecdf";
154
+
155
+ export * from "./correlation";
156
+
157
+ export * from "./mean";
158
+
159
+ export * from "./bootstrap";
160
+
161
+ export * from "./regression-bootstrap";
138
162
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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 { 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';\nexport * from './regression-bootstrap';\n"]}
@@ -29,13 +29,26 @@ function one(b) {
29
29
 
30
30
  export function interpolateString(a, b) {
31
31
  let am, bm, bs, bi = reA.lastIndex = reB.lastIndex = 0, i = -1;
32
+ // scan index for next number in b
33
+ // index in s
32
34
  const s = [], q = [];
33
- for (a += "", b += ""; (am = reA.exec(a)) && (bm = reB.exec(b)); ) (bs = bm.index) > bi && (bs = b.slice(bi, bs),
34
- 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,
35
- q.push({
35
+ // string constants and placeholders
36
+ // Interpolate pairs of numbers in a & b.
37
+ for (// number interpolators
38
+ // Coerce inputs to strings.
39
+ a += "", b += ""; (am = reA.exec(a)) && (bm = reB.exec(b)); ) (bs = bm.index) > bi && (
40
+ // a string precedes the next number in b
41
+ bs = b.slice(bi, bs), s[i] ? s[i] += bs : s[++i] = bs), (am = am[0]) === (bm = bm[0]) ?
42
+ // numbers in a & b match
43
+ s[i] ? s[i] += bm : s[++i] = bm : (
44
+ // interpolate non-matching numbers
45
+ s[++i] = null, q.push({
36
46
  i: i,
37
47
  x: interpolateNumber(am, bm)
38
48
  })), bi = reB.lastIndex;
49
+ // Add remains of b.
50
+ // Special optimization for only a single match.
51
+ // Otherwise, interpolate each of the numbers and rejoin the string.
39
52
  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,
40
53
  function(t) {
41
54
  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":"AAAA,MAAM,UAAU,iBAAiB,CAAC,CAAS,EAAE,CAAS;IACpD,OAAO,CAAC,CAAS,EAAE,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,CAAS,EAAE,CAAS;IACzD,OAAO,UAAU,CAAC;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAO,EAAE,CAAO;IAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAEzB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,OAAO,CAAC,CAAS,EAAE,EAAE;QACnB,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,GAAG,GAAG,6CAA6C,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExC,SAAS,IAAI,CAAC,CAAM;IAClB,OAAO;QACL,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,CAAM;IACjB,OAAO,UAAU,CAAM;QACrB,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAM,EAAE,CAAM;IAC9C,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,kCAAkC;IAChF,IAAI,EAAO,CAAC,CAAC,qBAAqB;IAClC,IAAI,EAAO,CAAC,CAAC,qBAAqB;IAClC,IAAI,EAAE,CAAC,CAAC,+CAA+C;IACvD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa;IACzB,MAAM,CAAC,GAAU,EAAE,CAAC,CAAC,oCAAoC;IACzD,MAAM,CAAC,GAAU,EAAE,CAAC,CAAC,uBAAuB;IAE5C,4BAA4B;IAC5B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3B,yCAAyC;IACzC,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE;YACxB,yCAAyC;YACzC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACR,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACZ,CAAC,gCAAgC;iBAC7B;gBACH,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;aACb;SACF;QACD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YACjC,yBAAyB;YACzB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACR,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACZ,CAAC,gCAAgC;iBAC7B;gBACH,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;aACb;SACF;aAAM;YACL,mCAAmC;YACnC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;SAChD;QACD,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;KACpB;IAED,oBAAoB;IACpB,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE;QACjB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACR,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACZ,CAAC,gCAAgC;aAC7B;YACH,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;SACb;KACF;IAED,gDAAgD;IAChD,oEAAoE;IACpE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;QACjB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACf,UAAU,CAAM;gBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC7B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC1B;gBACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;AACT,CAAC","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;
@@ -1,3 +1,9 @@
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
  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);
2
8
 
3
9
  export 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,eAAe,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,eAAe,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;
@@ -1,6 +1,18 @@
1
1
  import isType from "./isType";
2
2
 
3
- const isBoolean = (value, fuzzy = !1) => fuzzy ? "boolean" == typeof value : !0 === value || !1 === value || isType(value, "Boolean");
3
+ /**
4
+ * Checks if `value` is classified as a boolean 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 boolean, else `false`.
8
+ * @example
9
+ *
10
+ * isBoolean(false)
11
+ * // => true
12
+ *
13
+ * isBoolean(null)
14
+ * // => false
15
+ */ const isBoolean = (value, fuzzy = !1) => fuzzy ? "boolean" == typeof value : !0 === value || !1 === value || isType(value, "Boolean");
4
16
 
5
17
  export default isBoolean;
6
18
  //# sourceMappingURL=isBoolean.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAe9B,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,QAAiB,KAAK,EAAoB,EAAE;IACzE,IAAI,KAAK,EAAE;QACT,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;KACnC;IACD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","file":"isBoolean.js","sourcesContent":["import isType from './isType';\n\n/**\n * Checks if `value` is classified as a boolean 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 boolean, else `false`.\n * @example\n *\n * isBoolean(false)\n * // => true\n *\n * isBoolean(null)\n * // => false\n */\nconst isBoolean = (value: any, fuzzy: boolean = false): value is boolean => {\n if (fuzzy) {\n return typeof value === 'boolean';\n }\n return value === true || value === false || isType(value, 'Boolean');\n};\n\nexport default isBoolean;\n"]}
1
+ {"version":3,"sources":["../src/common/isBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B;;;;;;;;;;;;GAYG;AACH,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,QAAiB,KAAK,EAAoB,EAAE;IACzE,IAAI,KAAK,EAAE;QACT,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;KACnC;IACD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","file":"isBoolean.js","sourcesContent":["import isType from './isType';\n\n/**\n * Checks if `value` is classified as a boolean 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 boolean, else `false`.\n * @example\n *\n * isBoolean(false)\n * // => true\n *\n * isBoolean(null)\n * // => false\n */\nconst isBoolean = (value: any, fuzzy: boolean = false): value is boolean => {\n if (fuzzy) {\n return typeof value === 'boolean';\n }\n return value === true || value === false || isType(value, 'Boolean');\n};\n\nexport default isBoolean;\n"]}
@@ -9,9 +9,19 @@ import isPrototype from "./isPrototype";
9
9
  const hasOwnProperty = Object.prototype.hasOwnProperty;
10
10
 
11
11
  function isEmpty(value) {
12
+ /**
13
+ * isEmpty(null) => true
14
+ * isEmpty() => true
15
+ * isEmpty(true) => true
16
+ * isEmpty(1) => true
17
+ * isEmpty([1, 2, 3]) => false
18
+ * isEmpty('abc') => false
19
+ * isEmpty({ a: 1 }) => false
20
+ */
12
21
  if (isNil(value)) return !0;
13
22
  if (isArrayLike(value)) return !value.length;
14
- const type = getType(value);
23
+ // TODO: 这里需要优化下
24
+ const type = getType(value);
15
25
  if ("Map" === type || "Set" === type) return !value.size;
16
26
  if (isPrototype(value)) return !Object.keys(value).length;
17
27
  for (const key in value) if (hasOwnProperty.call(value, key)) return !1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/isEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AAEvD,SAAS,OAAO,CAAC,KAAU;IAUzB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;KACtB;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;KACpB;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;KACnC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,OAAO,CAAC","file":"isEmpty.js","sourcesContent":["import isNil from './isNil';\nimport isArrayLike from './isArrayLike';\nimport getType from './getType';\nimport isPrototype from './isPrototype';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isEmpty(value: any): boolean {\n /**\n * isEmpty(null) => true\n * isEmpty() => true\n * isEmpty(true) => true\n * isEmpty(1) => true\n * isEmpty([1, 2, 3]) => false\n * isEmpty('abc') => false\n * isEmpty({ a: 1 }) => false\n */\n if (isNil(value)) {\n return true;\n }\n if (isArrayLike(value)) {\n return !value.length;\n }\n // TODO: 这里需要优化下\n const type = getType(value);\n if (type === 'Map' || type === 'Set') {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !Object.keys(value).length;\n }\n for (const key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n"]}
1
+ {"version":3,"sources":["../src/common/isEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AAEvD,SAAS,OAAO,CAAC,KAAU;IACzB;;;;;;;;OAQG;IACH,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;KACtB;IACD,gBAAgB;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;KACpB;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;KACnC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,OAAO,CAAC","file":"isEmpty.js","sourcesContent":["import isNil from './isNil';\nimport isArrayLike from './isArrayLike';\nimport getType from './getType';\nimport isPrototype from './isPrototype';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isEmpty(value: any): boolean {\n /**\n * isEmpty(null) => true\n * isEmpty() => true\n * isEmpty(true) => true\n * isEmpty(1) => true\n * isEmpty([1, 2, 3]) => false\n * isEmpty('abc') => false\n * isEmpty({ a: 1 }) => false\n */\n if (isNil(value)) {\n return true;\n }\n if (isArrayLike(value)) {\n return !value.length;\n }\n // TODO: 这里需要优化下\n const type = getType(value);\n if (type === 'Map' || type === 'Set') {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !Object.keys(value).length;\n }\n for (const key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n"]}