@visactor/vchart 1.3.1 → 1.4.0-alpha.2

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 (414) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.js +15097 -11432
  3. package/build/index.min.js +2 -2
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base-chart.d.ts +5 -0
  6. package/cjs/chart/base-chart.js +43 -24
  7. package/cjs/chart/base-chart.js.map +1 -1
  8. package/cjs/chart/common/common.d.ts +2 -0
  9. package/cjs/chart/common/common.js +15 -1
  10. package/cjs/chart/common/common.js.map +1 -1
  11. package/cjs/chart/interface/chart.d.ts +5 -0
  12. package/cjs/chart/interface/chart.js.map +1 -1
  13. package/cjs/chart/rose/rose.js.map +1 -1
  14. package/cjs/compile/compiler.d.ts +2 -2
  15. package/cjs/compile/compiler.js +32 -13
  16. package/cjs/compile/compiler.js.map +1 -1
  17. package/cjs/compile/data/compilable-data.d.ts +1 -1
  18. package/cjs/compile/data/compilable-data.js +1 -1
  19. package/cjs/compile/data/compilable-data.js.map +1 -1
  20. package/cjs/compile/mark/compilable-mark.d.ts +9 -4
  21. package/cjs/compile/mark/compilable-mark.js +20 -6
  22. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  23. package/cjs/compile/mark/interface.d.ts +4 -2
  24. package/cjs/compile/mark/interface.js.map +1 -1
  25. package/cjs/compile/signal/state-manager.d.ts +1 -1
  26. package/cjs/compile/signal/state-manager.js +1 -1
  27. package/cjs/compile/signal/state-manager.js.map +1 -1
  28. package/cjs/component/axis/base-axis.d.ts +14 -13
  29. package/cjs/component/axis/base-axis.js +46 -37
  30. package/cjs/component/axis/base-axis.js.map +1 -1
  31. package/cjs/component/axis/cartesian/axis.js +64 -32
  32. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  33. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  34. package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
  35. package/cjs/component/axis/interface.d.ts +1 -0
  36. package/cjs/component/axis/interface.js.map +1 -1
  37. package/cjs/component/axis/mixin/linear-axis-mixin.js +1 -1
  38. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  39. package/cjs/component/axis/polar/axis.d.ts +2 -1
  40. package/cjs/component/axis/polar/axis.js +69 -51
  41. package/cjs/component/axis/polar/axis.js.map +1 -1
  42. package/cjs/component/base/base-component.js +2 -2
  43. package/cjs/component/base/base-component.js.map +1 -1
  44. package/cjs/component/crosshair/base.d.ts +1 -1
  45. package/cjs/component/crosshair/base.js +4 -2
  46. package/cjs/component/crosshair/base.js.map +1 -1
  47. package/cjs/component/crosshair/cartesian.d.ts +1 -1
  48. package/cjs/component/crosshair/cartesian.js +2 -2
  49. package/cjs/component/crosshair/cartesian.js.map +1 -1
  50. package/cjs/component/crosshair/interface/spec.d.ts +1 -0
  51. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  52. package/cjs/component/crosshair/polar.d.ts +1 -1
  53. package/cjs/component/crosshair/polar.js +2 -2
  54. package/cjs/component/crosshair/polar.js.map +1 -1
  55. package/cjs/component/label/label.d.ts +12 -6
  56. package/cjs/component/label/label.js +73 -58
  57. package/cjs/component/label/label.js.map +1 -1
  58. package/cjs/component/label/totalLabel.js +4 -3
  59. package/cjs/component/label/totalLabel.js.map +1 -1
  60. package/cjs/component/label/util.d.ts +44 -6
  61. package/cjs/component/label/util.js +123 -7
  62. package/cjs/component/label/util.js.map +1 -1
  63. package/cjs/component/legend/base-legend.d.ts +1 -1
  64. package/cjs/component/legend/util.d.ts +1 -1
  65. package/cjs/component/tooltip/handler/base.d.ts +2 -2
  66. package/cjs/component/tooltip/handler/base.js +15 -14
  67. package/cjs/component/tooltip/handler/base.js.map +1 -1
  68. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  69. package/cjs/component/tooltip/handler/dom/model/interface.d.ts +3 -3
  70. package/cjs/component/tooltip/handler/dom/model/interface.js.map +1 -1
  71. package/cjs/component/tooltip/handler/dom/util.d.ts +1 -1
  72. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  73. package/cjs/component/tooltip/handler/utils/attribute.d.ts +1 -1
  74. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  75. package/cjs/component/tooltip/tooltip.d.ts +1 -1
  76. package/cjs/component/tooltip/tooltip.js +11 -12
  77. package/cjs/component/tooltip/tooltip.js.map +1 -1
  78. package/cjs/constant/event.d.ts +2 -1
  79. package/cjs/constant/event.js +1 -1
  80. package/cjs/constant/event.js.map +1 -1
  81. package/cjs/constant/index.d.ts +1 -1
  82. package/cjs/constant/index.js +1 -1
  83. package/cjs/constant/index.js.map +1 -1
  84. package/cjs/core/index.d.ts +1 -1
  85. package/cjs/core/index.js +1 -1
  86. package/cjs/core/index.js.map +1 -1
  87. package/cjs/core/interface.d.ts +8 -0
  88. package/cjs/core/interface.js.map +1 -1
  89. package/cjs/core/vchart.d.ts +12 -2
  90. package/cjs/core/vchart.js +51 -17
  91. package/cjs/core/vchart.js.map +1 -1
  92. package/cjs/data/transforms/dimension-data.js +6 -4
  93. package/cjs/data/transforms/dimension-data.js.map +1 -1
  94. package/cjs/data/transforms/dimension-statistics.d.ts +0 -29
  95. package/cjs/data/transforms/dimension-statistics.js +31 -73
  96. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  97. package/cjs/data/transforms/waterfall.js +4 -3
  98. package/cjs/data/transforms/waterfall.js.map +1 -1
  99. package/cjs/event/event-dispatcher.d.ts +2 -0
  100. package/cjs/event/event-dispatcher.js +13 -2
  101. package/cjs/event/event-dispatcher.js.map +1 -1
  102. package/cjs/event/events/dimension/dimension-hover.js +1 -1
  103. package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
  104. package/cjs/mark/base/base-mark.js +4 -4
  105. package/cjs/mark/base/base-mark.js.map +1 -1
  106. package/cjs/mark/interface/type.d.ts +2 -1
  107. package/cjs/mark/interface/type.js +1 -1
  108. package/cjs/mark/interface/type.js.map +1 -1
  109. package/cjs/mark/label.d.ts +26 -0
  110. package/cjs/mark/label.js +34 -0
  111. package/cjs/mark/label.js.map +1 -0
  112. package/cjs/model/base-model.d.ts +1 -1
  113. package/cjs/model/interface.d.ts +1 -1
  114. package/cjs/model/interface.js.map +1 -1
  115. package/cjs/plugin/components/axis-sync-plugin/tick-align-transform.js +3 -4
  116. package/cjs/plugin/components/axis-sync-plugin/tick-align-transform.js.map +1 -1
  117. package/cjs/series/area/area.js +1 -1
  118. package/cjs/series/area/area.js.map +1 -1
  119. package/cjs/series/base/base-series.d.ts +5 -6
  120. package/cjs/series/base/base-series.js +16 -10
  121. package/cjs/series/base/base-series.js.map +1 -1
  122. package/cjs/series/base/group.d.ts +2 -1
  123. package/cjs/series/base/group.js.map +1 -1
  124. package/cjs/series/funnel/funnel-3d.d.ts +2 -0
  125. package/cjs/series/funnel/funnel-3d.js +15 -21
  126. package/cjs/series/funnel/funnel-3d.js.map +1 -1
  127. package/cjs/series/funnel/funnel.d.ts +4 -2
  128. package/cjs/series/funnel/funnel.js +55 -53
  129. package/cjs/series/funnel/funnel.js.map +1 -1
  130. package/cjs/series/gauge/gauge.js +2 -2
  131. package/cjs/series/gauge/gauge.js.map +1 -1
  132. package/cjs/series/interface/series.d.ts +4 -5
  133. package/cjs/series/interface/series.js.map +1 -1
  134. package/cjs/series/line/line.js +1 -1
  135. package/cjs/series/line/line.js.map +1 -1
  136. package/cjs/series/pie/pie-3d.js +2 -2
  137. package/cjs/series/pie/pie-3d.js.map +1 -1
  138. package/cjs/series/pie/pie.js +3 -3
  139. package/cjs/series/pie/pie.js.map +1 -1
  140. package/cjs/series/polar/progress-like/progress-like.js +5 -6
  141. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  142. package/cjs/series/radar/radar.js +4 -4
  143. package/cjs/series/radar/radar.js.map +1 -1
  144. package/cjs/series/sunburst/sunburst.d.ts +1 -1
  145. package/cjs/series/waterfall/waterfall.d.ts +6 -2
  146. package/cjs/series/waterfall/waterfall.js +47 -46
  147. package/cjs/series/waterfall/waterfall.js.map +1 -1
  148. package/cjs/theme/builtin/common/series/waterfall.js +1 -0
  149. package/cjs/theme/builtin/common/series/waterfall.js.map +1 -1
  150. package/cjs/theme/theme-manager.d.ts +1 -1
  151. package/cjs/theme/theme-manager.js +2 -2
  152. package/cjs/theme/theme-manager.js.map +1 -1
  153. package/cjs/typings/group.d.ts +8 -0
  154. package/cjs/{data/transforms/tick-data/interface.js → typings/group.js} +1 -1
  155. package/cjs/typings/group.js.map +1 -0
  156. package/cjs/typings/index.d.ts +1 -0
  157. package/cjs/typings/index.js +1 -1
  158. package/cjs/typings/index.js.map +1 -1
  159. package/cjs/typings/visual.d.ts +3 -3
  160. package/cjs/typings/visual.js.map +1 -1
  161. package/cjs/util/data.js.map +1 -1
  162. package/cjs/util/env.js +1 -1
  163. package/cjs/util/env.js.map +1 -1
  164. package/cjs/util/math.d.ts +5 -19
  165. package/cjs/util/math.js +22 -120
  166. package/cjs/util/math.js.map +1 -1
  167. package/cjs/util/spec/common.d.ts +2 -0
  168. package/cjs/util/spec/common.js +8 -3
  169. package/cjs/util/spec/common.js.map +1 -1
  170. package/cjs/util/spec/merge-spec.d.ts +4 -0
  171. package/cjs/util/spec/merge-spec.js +12 -2
  172. package/cjs/util/spec/merge-spec.js.map +1 -1
  173. package/cjs/util/style.js +1 -1
  174. package/cjs/util/style.js.map +1 -1
  175. package/cjs/util/text.d.ts +4 -3
  176. package/cjs/util/text.js +5 -8
  177. package/cjs/util/text.js.map +1 -1
  178. package/cjs/vchart-all.js +1 -1
  179. package/cjs/vchart-all.js.map +1 -1
  180. package/esm/chart/base-chart.d.ts +5 -0
  181. package/esm/chart/base-chart.js +44 -24
  182. package/esm/chart/base-chart.js.map +1 -1
  183. package/esm/chart/common/common.d.ts +2 -0
  184. package/esm/chart/common/common.js +16 -0
  185. package/esm/chart/common/common.js.map +1 -1
  186. package/esm/chart/interface/chart.d.ts +5 -0
  187. package/esm/chart/interface/chart.js.map +1 -1
  188. package/esm/chart/rose/rose.js.map +1 -1
  189. package/esm/compile/compiler.d.ts +2 -2
  190. package/esm/compile/compiler.js +31 -14
  191. package/esm/compile/compiler.js.map +1 -1
  192. package/esm/compile/data/compilable-data.d.ts +1 -1
  193. package/esm/compile/data/compilable-data.js +1 -1
  194. package/esm/compile/data/compilable-data.js.map +1 -1
  195. package/esm/compile/mark/compilable-mark.d.ts +9 -4
  196. package/esm/compile/mark/compilable-mark.js +20 -6
  197. package/esm/compile/mark/compilable-mark.js.map +1 -1
  198. package/esm/compile/mark/interface.d.ts +4 -2
  199. package/esm/compile/mark/interface.js.map +1 -1
  200. package/esm/compile/signal/state-manager.d.ts +1 -1
  201. package/esm/compile/signal/state-manager.js +1 -1
  202. package/esm/compile/signal/state-manager.js.map +1 -1
  203. package/esm/component/axis/base-axis.d.ts +14 -13
  204. package/esm/component/axis/base-axis.js +43 -34
  205. package/esm/component/axis/base-axis.js.map +1 -1
  206. package/esm/component/axis/cartesian/axis.js +62 -28
  207. package/esm/component/axis/cartesian/axis.js.map +1 -1
  208. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  209. package/esm/component/axis/cartesian/time-axis.js.map +1 -1
  210. package/esm/component/axis/interface.d.ts +1 -0
  211. package/esm/component/axis/interface.js.map +1 -1
  212. package/esm/component/axis/mixin/linear-axis-mixin.js +1 -1
  213. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  214. package/esm/component/axis/polar/axis.d.ts +2 -1
  215. package/esm/component/axis/polar/axis.js +70 -53
  216. package/esm/component/axis/polar/axis.js.map +1 -1
  217. package/esm/component/base/base-component.js +2 -2
  218. package/esm/component/base/base-component.js.map +1 -1
  219. package/esm/component/crosshair/base.d.ts +1 -1
  220. package/esm/component/crosshair/base.js +4 -2
  221. package/esm/component/crosshair/base.js.map +1 -1
  222. package/esm/component/crosshair/cartesian.d.ts +1 -1
  223. package/esm/component/crosshair/cartesian.js +2 -2
  224. package/esm/component/crosshair/cartesian.js.map +1 -1
  225. package/esm/component/crosshair/interface/spec.d.ts +1 -0
  226. package/esm/component/crosshair/interface/spec.js.map +1 -1
  227. package/esm/component/crosshair/polar.d.ts +1 -1
  228. package/esm/component/crosshair/polar.js +2 -2
  229. package/esm/component/crosshair/polar.js.map +1 -1
  230. package/esm/component/label/label.d.ts +12 -6
  231. package/esm/component/label/label.js +77 -58
  232. package/esm/component/label/label.js.map +1 -1
  233. package/esm/component/label/totalLabel.js +4 -3
  234. package/esm/component/label/totalLabel.js.map +1 -1
  235. package/esm/component/label/util.d.ts +44 -6
  236. package/esm/component/label/util.js +121 -5
  237. package/esm/component/label/util.js.map +1 -1
  238. package/esm/component/legend/base-legend.d.ts +1 -1
  239. package/esm/component/legend/util.d.ts +1 -1
  240. package/esm/component/tooltip/handler/base.d.ts +2 -2
  241. package/esm/component/tooltip/handler/base.js +15 -14
  242. package/esm/component/tooltip/handler/base.js.map +1 -1
  243. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  244. package/esm/component/tooltip/handler/dom/model/interface.d.ts +3 -3
  245. package/esm/component/tooltip/handler/dom/model/interface.js.map +1 -1
  246. package/esm/component/tooltip/handler/dom/util.d.ts +1 -1
  247. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  248. package/esm/component/tooltip/handler/utils/attribute.d.ts +1 -1
  249. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  250. package/esm/component/tooltip/tooltip.d.ts +1 -1
  251. package/esm/component/tooltip/tooltip.js +11 -12
  252. package/esm/component/tooltip/tooltip.js.map +1 -1
  253. package/esm/constant/event.d.ts +2 -1
  254. package/esm/constant/event.js +1 -1
  255. package/esm/constant/event.js.map +1 -1
  256. package/esm/constant/index.d.ts +1 -1
  257. package/esm/constant/index.js +1 -1
  258. package/esm/constant/index.js.map +1 -1
  259. package/esm/core/index.d.ts +1 -1
  260. package/esm/core/index.js +1 -1
  261. package/esm/core/index.js.map +1 -1
  262. package/esm/core/interface.d.ts +8 -0
  263. package/esm/core/interface.js.map +1 -1
  264. package/esm/core/vchart.d.ts +12 -2
  265. package/esm/core/vchart.js +49 -18
  266. package/esm/core/vchart.js.map +1 -1
  267. package/esm/data/transforms/dimension-data.js +6 -4
  268. package/esm/data/transforms/dimension-data.js.map +1 -1
  269. package/esm/data/transforms/dimension-statistics.d.ts +0 -29
  270. package/esm/data/transforms/dimension-statistics.js +28 -69
  271. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  272. package/esm/data/transforms/waterfall.js +4 -4
  273. package/esm/data/transforms/waterfall.js.map +1 -1
  274. package/esm/event/event-dispatcher.d.ts +2 -0
  275. package/esm/event/event-dispatcher.js +13 -2
  276. package/esm/event/event-dispatcher.js.map +1 -1
  277. package/esm/event/events/dimension/dimension-hover.js +1 -1
  278. package/esm/event/events/dimension/dimension-hover.js.map +1 -1
  279. package/esm/mark/base/base-mark.js +5 -5
  280. package/esm/mark/base/base-mark.js.map +1 -1
  281. package/esm/mark/interface/type.d.ts +2 -1
  282. package/esm/mark/interface/type.js +1 -1
  283. package/esm/mark/interface/type.js.map +1 -1
  284. package/esm/mark/label.d.ts +26 -0
  285. package/esm/mark/label.js +30 -0
  286. package/esm/mark/label.js.map +1 -0
  287. package/esm/model/base-model.d.ts +1 -1
  288. package/esm/model/interface.d.ts +1 -1
  289. package/esm/model/interface.js.map +1 -1
  290. package/esm/plugin/components/axis-sync-plugin/tick-align-transform.js +3 -4
  291. package/esm/plugin/components/axis-sync-plugin/tick-align-transform.js.map +1 -1
  292. package/esm/series/area/area.js +1 -1
  293. package/esm/series/area/area.js.map +1 -1
  294. package/esm/series/base/base-series.d.ts +5 -6
  295. package/esm/series/base/base-series.js +16 -11
  296. package/esm/series/base/base-series.js.map +1 -1
  297. package/esm/series/base/group.d.ts +2 -1
  298. package/esm/series/base/group.js.map +1 -1
  299. package/esm/series/funnel/funnel-3d.d.ts +2 -0
  300. package/esm/series/funnel/funnel-3d.js +15 -21
  301. package/esm/series/funnel/funnel-3d.js.map +1 -1
  302. package/esm/series/funnel/funnel.d.ts +4 -2
  303. package/esm/series/funnel/funnel.js +56 -53
  304. package/esm/series/funnel/funnel.js.map +1 -1
  305. package/esm/series/gauge/gauge.js +4 -2
  306. package/esm/series/gauge/gauge.js.map +1 -1
  307. package/esm/series/interface/series.d.ts +4 -5
  308. package/esm/series/interface/series.js.map +1 -1
  309. package/esm/series/line/line.js +1 -1
  310. package/esm/series/line/line.js.map +1 -1
  311. package/esm/series/pie/pie-3d.js +4 -2
  312. package/esm/series/pie/pie-3d.js.map +1 -1
  313. package/esm/series/pie/pie.js +4 -4
  314. package/esm/series/pie/pie.js.map +1 -1
  315. package/esm/series/polar/progress-like/progress-like.js +7 -6
  316. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  317. package/esm/series/radar/radar.js +6 -6
  318. package/esm/series/radar/radar.js.map +1 -1
  319. package/esm/series/sunburst/sunburst.d.ts +1 -1
  320. package/esm/series/waterfall/waterfall.d.ts +6 -2
  321. package/esm/series/waterfall/waterfall.js +49 -45
  322. package/esm/series/waterfall/waterfall.js.map +1 -1
  323. package/esm/theme/builtin/common/series/waterfall.js +1 -0
  324. package/esm/theme/builtin/common/series/waterfall.js.map +1 -1
  325. package/esm/theme/theme-manager.d.ts +1 -1
  326. package/esm/theme/theme-manager.js +3 -1
  327. package/esm/theme/theme-manager.js.map +1 -1
  328. package/esm/typings/group.d.ts +8 -0
  329. package/esm/typings/group.js +2 -0
  330. package/esm/typings/group.js.map +1 -0
  331. package/esm/typings/index.d.ts +1 -0
  332. package/esm/typings/index.js +2 -0
  333. package/esm/typings/index.js.map +1 -1
  334. package/esm/typings/visual.d.ts +3 -3
  335. package/esm/typings/visual.js.map +1 -1
  336. package/esm/util/data.js.map +1 -1
  337. package/esm/util/env.js +1 -1
  338. package/esm/util/env.js.map +1 -1
  339. package/esm/util/math.d.ts +5 -19
  340. package/esm/util/math.js +5 -107
  341. package/esm/util/math.js.map +1 -1
  342. package/esm/util/spec/common.d.ts +2 -0
  343. package/esm/util/spec/common.js +8 -0
  344. package/esm/util/spec/common.js.map +1 -1
  345. package/esm/util/spec/merge-spec.d.ts +4 -0
  346. package/esm/util/spec/merge-spec.js +10 -1
  347. package/esm/util/spec/merge-spec.js.map +1 -1
  348. package/esm/util/style.js +1 -1
  349. package/esm/util/style.js.map +1 -1
  350. package/esm/util/text.d.ts +4 -3
  351. package/esm/util/text.js +6 -12
  352. package/esm/util/text.js.map +1 -1
  353. package/esm/vchart-all.js +1 -1
  354. package/esm/vchart-all.js.map +1 -1
  355. package/package.json +14 -13
  356. package/cjs/component/label/bar.d.ts +0 -9
  357. package/cjs/component/label/bar.js +0 -47
  358. package/cjs/component/label/bar.js.map +0 -1
  359. package/cjs/component/label/pie.d.ts +0 -5
  360. package/cjs/component/label/pie.js +0 -21
  361. package/cjs/component/label/pie.js.map +0 -1
  362. package/cjs/component/label/symbol.d.ts +0 -9
  363. package/cjs/component/label/symbol.js +0 -26
  364. package/cjs/component/label/symbol.js.map +0 -1
  365. package/cjs/data/transforms/tick-data/config.d.ts +0 -1
  366. package/cjs/data/transforms/tick-data/config.js +0 -6
  367. package/cjs/data/transforms/tick-data/config.js.map +0 -1
  368. package/cjs/data/transforms/tick-data/continuous.d.ts +0 -3
  369. package/cjs/data/transforms/tick-data/continuous.js +0 -44
  370. package/cjs/data/transforms/tick-data/continuous.js.map +0 -1
  371. package/cjs/data/transforms/tick-data/discrete/linear.d.ts +0 -3
  372. package/cjs/data/transforms/tick-data/discrete/linear.js +0 -90
  373. package/cjs/data/transforms/tick-data/discrete/linear.js.map +0 -1
  374. package/cjs/data/transforms/tick-data/discrete/polar-angle.d.ts +0 -3
  375. package/cjs/data/transforms/tick-data/discrete/polar-angle.js +0 -46
  376. package/cjs/data/transforms/tick-data/discrete/polar-angle.js.map +0 -1
  377. package/cjs/data/transforms/tick-data/index.d.ts +0 -4
  378. package/cjs/data/transforms/tick-data/index.js +0 -36
  379. package/cjs/data/transforms/tick-data/index.js.map +0 -1
  380. package/cjs/data/transforms/tick-data/interface.d.ts +0 -31
  381. package/cjs/data/transforms/tick-data/interface.js.map +0 -1
  382. package/cjs/data/transforms/tick-data/util.d.ts +0 -15
  383. package/cjs/data/transforms/tick-data/util.js +0 -80
  384. package/cjs/data/transforms/tick-data/util.js.map +0 -1
  385. package/esm/component/label/bar.d.ts +0 -9
  386. package/esm/component/label/bar.js +0 -39
  387. package/esm/component/label/bar.js.map +0 -1
  388. package/esm/component/label/pie.d.ts +0 -5
  389. package/esm/component/label/pie.js +0 -13
  390. package/esm/component/label/pie.js.map +0 -1
  391. package/esm/component/label/symbol.d.ts +0 -9
  392. package/esm/component/label/symbol.js +0 -20
  393. package/esm/component/label/symbol.js.map +0 -1
  394. package/esm/data/transforms/tick-data/config.d.ts +0 -1
  395. package/esm/data/transforms/tick-data/config.js +0 -2
  396. package/esm/data/transforms/tick-data/config.js.map +0 -1
  397. package/esm/data/transforms/tick-data/continuous.d.ts +0 -3
  398. package/esm/data/transforms/tick-data/continuous.js +0 -43
  399. package/esm/data/transforms/tick-data/continuous.js.map +0 -1
  400. package/esm/data/transforms/tick-data/discrete/linear.d.ts +0 -3
  401. package/esm/data/transforms/tick-data/discrete/linear.js +0 -81
  402. package/esm/data/transforms/tick-data/discrete/linear.js.map +0 -1
  403. package/esm/data/transforms/tick-data/discrete/polar-angle.d.ts +0 -3
  404. package/esm/data/transforms/tick-data/discrete/polar-angle.js +0 -41
  405. package/esm/data/transforms/tick-data/discrete/polar-angle.js.map +0 -1
  406. package/esm/data/transforms/tick-data/index.d.ts +0 -4
  407. package/esm/data/transforms/tick-data/index.js +0 -21
  408. package/esm/data/transforms/tick-data/index.js.map +0 -1
  409. package/esm/data/transforms/tick-data/interface.d.ts +0 -31
  410. package/esm/data/transforms/tick-data/interface.js +0 -2
  411. package/esm/data/transforms/tick-data/interface.js.map +0 -1
  412. package/esm/data/transforms/tick-data/util.d.ts +0 -15
  413. package/esm/data/transforms/tick-data/util.js +0 -70
  414. package/esm/data/transforms/tick-data/util.js.map +0 -1
package/cjs/util/math.js CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.distance = exports.vectorAngle = exports.radiusLabelOrientAttribute = exports.angleLabelOrientAttribute = exports.regression = exports.median = exports.standardDeviation = exports.variance = exports.average = exports.sum = exports.max = exports.min = exports.insideBounds = exports.outOfBounds = exports.checkBoundsOverlap = exports.isQuadrantRight = exports.isQuadrantLeft = exports.normalizeStartEndAngle = exports.computeQuadrant = exports.connectLineRadian = exports.lineCirclePoints = exports.arcConnectLength = exports.circlePoint = exports.polarToCartesian = exports.degrees = exports.radians = exports.normalizeAngle = exports.isLess = exports.isGreater = exports.isClose = void 0;
5
+ }), exports.distance = exports.vectorAngle = exports.radiusLabelOrientAttribute = exports.regression = exports.median = exports.standardDeviation = exports.variance = exports.average = exports.sum = exports.max = exports.min = exports.outOfBounds = exports.normalizeStartEndAngle = exports.computeQuadrant = exports.polarToCartesian = exports.angleLabelOrientAttribute = exports.normalizeAngle = exports.isLess = exports.isGreater = exports.isClose = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils");
7
+ const type_1 = require("./type"), vgrammar_util_1 = require("@visactor/vgrammar-util"), vutils_1 = require("@visactor/vutils");
8
8
 
9
9
  Object.defineProperty(exports, "isGreater", {
10
10
  enumerable: !0,
@@ -18,21 +18,21 @@ Object.defineProperty(exports, "isGreater", {
18
18
  }
19
19
  });
20
20
 
21
- const type_1 = require("./type"), vgrammar_util_1 = require("@visactor/vgrammar-util"), debug_1 = require("./debug");
21
+ const vutils_extension_1 = require("@visactor/vutils-extension");
22
22
 
23
- function normalizeAngle(angle) {
24
- for (;angle < 0; ) angle += 2 * Math.PI;
25
- for (;angle >= 2 * Math.PI; ) angle -= 2 * Math.PI;
26
- return angle;
27
- }
28
-
29
- exports.isClose = vutils_1.isNumberClose, exports.normalizeAngle = normalizeAngle;
30
-
31
- const radians = angle => (0, type_1.isValidNumber)(angle) ? (0, vutils_1.degreeToRadian)(angle) : null;
32
-
33
- exports.radians = radians;
23
+ Object.defineProperty(exports, "normalizeAngle", {
24
+ enumerable: !0,
25
+ get: function() {
26
+ return vutils_extension_1.normalizeAngle;
27
+ }
28
+ }), Object.defineProperty(exports, "angleLabelOrientAttribute", {
29
+ enumerable: !0,
30
+ get: function() {
31
+ return vutils_extension_1.angleLabelOrientAttribute;
32
+ }
33
+ });
34
34
 
35
- const degrees = angle => (0, type_1.isValidNumber)(angle) ? (0, vutils_1.radianToDegree)(angle) : null;
35
+ const debug_1 = require("./debug");
36
36
 
37
37
  function polarToCartesian(point) {
38
38
  return point.radius ? {
@@ -44,75 +44,8 @@ function polarToCartesian(point) {
44
44
  };
45
45
  }
46
46
 
47
- function circlePoint(x0, y0, radius, radian) {
48
- const offset = polarToCartesian({
49
- radius: radius,
50
- angle: radian
51
- });
52
- return {
53
- x: x0 + offset.x,
54
- y: y0 + offset.y
55
- };
56
- }
57
-
58
- function arcConnectLength(radius, radian) {
59
- const y0 = radius, {x: x1, y: y1} = circlePoint(0, 0, radius, radian);
60
- return Math.sqrt((0 - x1) ** 2 + (y0 - y1) ** 2);
61
- }
62
-
63
- function lineCirclePoints(a, b, c, x0, y0, r) {
64
- if (0 === a && 0 === b || r <= 0) return [];
65
- if (0 === a) {
66
- const y1 = -c / b, fd = r ** 2 - (y1 - y0) ** 2;
67
- if (fd < 0) return [];
68
- if (0 === fd) return [ {
69
- x: x0,
70
- y: y1
71
- } ];
72
- return [ {
73
- x: Math.sqrt(fd) + x0,
74
- y: y1
75
- }, {
76
- x: -Math.sqrt(fd) + x0,
77
- y: y1
78
- } ];
79
- }
80
- if (0 === b) {
81
- const x1 = -c / a, fd = r ** 2 - (x1 - x0) ** 2;
82
- if (fd < 0) return [];
83
- if (0 === fd) return [ {
84
- x: x1,
85
- y: y0
86
- } ];
87
- return [ {
88
- x: x1,
89
- y: Math.sqrt(fd) + y0
90
- }, {
91
- x: x1,
92
- y: -Math.sqrt(fd) + y0
93
- } ];
94
- }
95
- const fa = (b / a) ** 2 + 1, fb = 2 * ((c / a + x0) * (b / a) - y0), fd = fb ** 2 - 4 * fa * ((c / a + x0) ** 2 + y0 ** 2 - r ** 2);
96
- if (fd < 0) return [];
97
- const y1 = (-fb + Math.sqrt(fd)) / (2 * fa), y2 = (-fb - Math.sqrt(fd)) / (2 * fa), x1 = -(b * y1 + c) / a;
98
- return 0 === fd ? [ {
99
- x: x1,
100
- y: y1
101
- } ] : [ {
102
- x: x1,
103
- y: y1
104
- }, {
105
- x: -(b * y2 + c) / a,
106
- y: y2
107
- } ];
108
- }
109
-
110
- function connectLineRadian(radius, length) {
111
- return length > 2 * radius ? NaN : 2 * Math.asin(length / 2 / radius);
112
- }
113
-
114
47
  function computeQuadrant(angle) {
115
- return (angle = normalizeAngle(angle)) > 0 && angle <= Math.PI / 2 ? 2 : angle > Math.PI / 2 && angle <= Math.PI ? 3 : angle > Math.PI && angle <= 3 * Math.PI / 2 ? 4 : 1;
48
+ return (angle = (0, vutils_extension_1.normalizeAngle)(angle)) > 0 && angle <= Math.PI / 2 ? 2 : angle > Math.PI / 2 && angle <= Math.PI ? 3 : angle > Math.PI && angle <= 3 * Math.PI / 2 ? 4 : 1;
116
49
  }
117
50
 
118
51
  function normalizeStartEndAngle(start, end) {
@@ -129,27 +62,10 @@ function normalizeStartEndAngle(start, end) {
129
62
  };
130
63
  }
131
64
 
132
- function isQuadrantLeft(quadrant) {
133
- return 3 === quadrant || 4 === quadrant;
134
- }
135
-
136
- function isQuadrantRight(quadrant) {
137
- return 1 === quadrant || 2 === quadrant;
138
- }
139
-
140
- function checkBoundsOverlap(boundsA, boundsB) {
141
- const {x1: ax1, y1: ay1, x2: ax2, y2: ay2} = boundsA, {x1: bx1, y1: by1, x2: bx2, y2: by2} = boundsB;
142
- return !(ax1 <= bx1 && ax2 <= bx1 || ax1 >= bx2 && ax2 >= bx2 || ay1 <= by1 && ay2 <= by1 || ay1 >= by2 && ay2 >= by2);
143
- }
144
-
145
65
  function outOfBounds(bounds, x, y) {
146
66
  return bounds.x1 > x || bounds.x2 < x || bounds.y1 > y || bounds.y2 < y;
147
67
  }
148
68
 
149
- function insideBounds(bounds, x, y) {
150
- return !outOfBounds(bounds, x, y);
151
- }
152
-
153
69
  function min(data, field) {
154
70
  const initialData = field ? +data[0][field] : +data[0];
155
71
  if (!(0, type_1.isValidNumber)(initialData)) return (0, debug_1.warn)("invalid data"),
@@ -212,19 +128,9 @@ function regression(data, fieldX, fieldY) {
212
128
  } ];
213
129
  }
214
130
 
215
- function angleLabelOrientAttribute(angle) {
216
- let align = "center", baseline = "middle";
217
- return align = (angle = normalizeAngle(angle)) >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3) ? "left" : angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3) ? "right" : "center",
218
- baseline = angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6) ? "bottom" : angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6) ? "top" : "middle",
219
- {
220
- align: align,
221
- baseline: baseline
222
- };
223
- }
224
-
225
131
  function radiusLabelOrientAttribute(angle) {
226
132
  let align = "center", baseline = "middle";
227
- return align = (angle = normalizeAngle(angle)) >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6) ? "right" : angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6) ? "left" : "center",
133
+ return align = (angle = (0, vutils_extension_1.normalizeAngle)(angle)) >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6) ? "right" : angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6) ? "left" : "center",
228
134
  baseline = angle >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3) ? "bottom" : angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3) ? "top" : "middle",
229
135
  {
230
136
  align: align,
@@ -244,14 +150,10 @@ function distance(p1, p2 = {
244
150
  return vutils_1.PointService.distancePP(p1, p2);
245
151
  }
246
152
 
247
- exports.degrees = degrees, exports.polarToCartesian = polarToCartesian, exports.circlePoint = circlePoint,
248
- exports.arcConnectLength = arcConnectLength, exports.lineCirclePoints = lineCirclePoints,
249
- exports.connectLineRadian = connectLineRadian, exports.computeQuadrant = computeQuadrant,
250
- exports.normalizeStartEndAngle = normalizeStartEndAngle, exports.isQuadrantLeft = isQuadrantLeft,
251
- exports.isQuadrantRight = isQuadrantRight, exports.checkBoundsOverlap = checkBoundsOverlap,
252
- exports.outOfBounds = outOfBounds, exports.insideBounds = insideBounds, exports.min = min,
253
- exports.max = max, exports.sum = sum, exports.average = average, exports.variance = variance,
254
- exports.standardDeviation = standardDeviation, exports.median = median, exports.regression = regression,
255
- exports.angleLabelOrientAttribute = angleLabelOrientAttribute, exports.radiusLabelOrientAttribute = radiusLabelOrientAttribute,
153
+ exports.isClose = vutils_1.isNumberClose, exports.polarToCartesian = polarToCartesian,
154
+ exports.computeQuadrant = computeQuadrant, exports.normalizeStartEndAngle = normalizeStartEndAngle,
155
+ exports.outOfBounds = outOfBounds, exports.min = min, exports.max = max, exports.sum = sum,
156
+ exports.average = average, exports.variance = variance, exports.standardDeviation = standardDeviation,
157
+ exports.median = median, exports.regression = regression, exports.radiusLabelOrientAttribute = radiusLabelOrientAttribute,
256
158
  exports.vectorAngle = vectorAngle, exports.distance = distance;
257
159
  //# sourceMappingURL=math.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/math.ts"],"names":[],"mappings":"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","file":"math.js","sourcesContent":["import {\n isNumberClose,\n isGreater,\n isLess,\n degreeToRadian,\n radianToDegree,\n isValid,\n PointService,\n median as visMedian\n} from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IPoint, IPolarPoint, Quadrant, TextAlign, TextBaseLine } from '../typings';\nimport { isValidNumber } from './type';\nimport { regressionLinear } from '@visactor/vgrammar-util';\nimport type { Datum } from '@visactor/vgrammar';\nimport { warn } from './debug';\n\nexport const isClose = isNumberClose;\nexport { isGreater, isLess };\n\n/**\n * 角度标准化处理\n * @param angle 弧度角\n */\nexport function normalizeAngle(angle: number): number {\n while (angle < 0) {\n angle += Math.PI * 2;\n }\n while (angle >= Math.PI * 2) {\n angle -= Math.PI * 2;\n }\n return angle;\n}\n\nexport const radians = (angle?: number) => {\n if (!isValidNumber(angle)) {\n return null;\n }\n return degreeToRadian(angle);\n};\nexport const degrees = (angle?: number) => {\n if (!isValidNumber(angle)) {\n return null;\n }\n return radianToDegree(angle);\n};\n\n/**\n * 极坐标系 -> 直角坐标系\n * @param point\n * @returns\n */\nexport function polarToCartesian(point: IPolarPoint): IPoint {\n if (!point.radius) {\n return { x: 0, y: 0 };\n }\n return {\n x: Math.cos(point.angle) * point.radius,\n y: Math.sin(point.angle) * point.radius\n };\n}\n\n/**\n * 计算圆弧上的点坐标\n * @param x0 圆心 x 坐标\n * @param y0 圆心 y 坐标\n * @param radius 圆弧半径\n * @param radian 点所在弧度\n */\nexport function circlePoint(x0: number, y0: number, radius: number, radian: number): IPoint {\n const offset = polarToCartesian({\n radius,\n angle: radian\n });\n return {\n x: x0 + offset.x,\n y: y0 + offset.y\n };\n}\n\n/**\n * 计算圆弧两点之间连接线的长度\n * @param radius 圆弧半径\n * @param radian 圆弧弧度\n */\nexport function arcConnectLength(radius: number, radian: number) {\n const x0 = 0;\n const y0 = radius;\n const { x: x1, y: y1 } = circlePoint(0, 0, radius, radian);\n return Math.sqrt((x0 - x1) ** 2 + (y0 - y1) ** 2);\n}\n\n/**\n * 计算直线与圆交点\n * 直线方程:ax + by + c = 0\n * 圆方程:(x - x0)^2 + (y - y0)^2 = r^2\n */\nexport function lineCirclePoints(a: number, b: number, c: number, x0: number, y0: number, r: number): IPoint[] {\n if ((a === 0 && b === 0) || r <= 0) {\n return [];\n }\n if (a === 0) {\n const y1 = -c / b;\n const fy = (y1 - y0) ** 2;\n const fd = r ** 2 - fy;\n if (fd < 0) {\n return [];\n } else if (fd === 0) {\n return [{ x: x0, y: y1 }];\n }\n const x1 = Math.sqrt(fd) + x0;\n const x2 = -Math.sqrt(fd) + x0;\n return [\n { x: x1, y: y1 },\n { x: x2, y: y1 }\n ];\n } else if (b === 0) {\n const x1 = -c / a;\n const fx = (x1 - x0) ** 2;\n const fd = r ** 2 - fx;\n if (fd < 0) {\n return [];\n } else if (fd === 0) {\n return [{ x: x1, y: y0 }];\n }\n const y1 = Math.sqrt(fd) + y0;\n const y2 = -Math.sqrt(fd) + y0;\n return [\n { x: x1, y: y1 },\n { x: x1, y: y2 }\n ];\n }\n const fa = (b / a) ** 2 + 1;\n const fb = 2 * ((c / a + x0) * (b / a) - y0);\n const fc = (c / a + x0) ** 2 + y0 ** 2 - r ** 2;\n const fd = fb ** 2 - 4 * fa * fc;\n if (fd < 0) {\n return [];\n }\n const y1 = (-fb + Math.sqrt(fd)) / (2 * fa);\n const y2 = (-fb - Math.sqrt(fd)) / (2 * fa);\n const x1 = -(b * y1 + c) / a;\n const x2 = -(b * y2 + c) / a;\n if (fd === 0) {\n return [{ x: x1, y: y1 }];\n }\n return [\n { x: x1, y: y1 },\n { x: x2, y: y2 }\n ];\n}\n\n/**\n * 根据圆弧两点连接线长度计算弧度\n * @param radius 圆弧半径\n * @param length 连接线长度\n */\nexport function connectLineRadian(radius: number, length: number) {\n if (length > radius * 2) {\n return NaN;\n }\n return Math.asin(length / 2 / radius) * 2;\n}\n\n/**\n * 根据角度计算象限\n * 计算角度所在象限\n * @param angle\n * @returns\n */\nexport function computeQuadrant(angle: number): Quadrant {\n angle = normalizeAngle(angle);\n if (angle > 0 && angle <= Math.PI / 2) {\n return 2;\n } else if (angle > Math.PI / 2 && angle <= Math.PI) {\n return 3;\n } else if (angle > Math.PI && angle <= (3 * Math.PI) / 2) {\n return 4;\n }\n return 1;\n}\n\n/**\n * 将角度轴起始角度 & 终结角度标准化\n * @param start\n * @param end\n * @returns\n */\nexport function normalizeStartEndAngle(\n start: number | null,\n end: number | null\n): { startAngle: number; endAngle: number } {\n let startAngle: number = 0;\n let endAngle: number = Math.PI * 2;\n const isStartValid = isValid(start);\n const isEndValid = isValid(end);\n if (!isStartValid && !isEndValid) {\n startAngle = 0;\n endAngle = Math.PI * 2;\n } else if (!isEndValid) {\n startAngle = start as number;\n endAngle = (start as number) + Math.PI * 2;\n } else if (!isStartValid) {\n startAngle = (end as number) - Math.PI * 2;\n endAngle = end as number;\n } else {\n startAngle = start as number;\n endAngle = end as number;\n }\n\n while (endAngle <= startAngle) {\n endAngle += Math.PI * 2;\n }\n while (startAngle > Math.PI * 2) {\n startAngle -= Math.PI * 2;\n endAngle -= Math.PI * 2;\n }\n while (endAngle < 0) {\n startAngle += Math.PI * 2;\n endAngle += Math.PI * 2;\n }\n return { startAngle, endAngle };\n}\n\nexport function isQuadrantLeft(quadrant: Quadrant): boolean {\n return quadrant === 3 || quadrant === 4;\n}\n\nexport function isQuadrantRight(quadrant: Quadrant): boolean {\n return quadrant === 1 || quadrant === 2;\n}\n\nexport function checkBoundsOverlap(boundsA: IBoundsLike, boundsB: IBoundsLike): boolean {\n const { x1: ax1, y1: ay1, x2: ax2, y2: ay2 } = boundsA;\n const { x1: bx1, y1: by1, x2: bx2, y2: by2 } = boundsB;\n return !(\n (ax1 <= bx1 && ax2 <= bx1) ||\n (ax1 >= bx2 && ax2 >= bx2) ||\n (ay1 <= by1 && ay2 <= by1) ||\n (ay1 >= by2 && ay2 >= by2)\n );\n}\n\nexport function outOfBounds(bounds: IBoundsLike, x: number, y: number) {\n return bounds.x1 > x || bounds.x2 < x || bounds.y1 > y || bounds.y2 < y;\n}\n\nexport function insideBounds(bounds: IBoundsLike, x: number, y: number) {\n return !outOfBounds(bounds, x, y);\n}\n\nexport function min(data: any[], field?: string): number {\n const initialData = field ? +data[0][field] : +data[0];\n\n if (!isValidNumber(initialData)) {\n warn('invalid data');\n return 0;\n }\n const min = data.reduce((pre, _cur) => {\n const cur = field ? +_cur[field] : +_cur;\n if (isValidNumber(cur) && cur < pre) {\n pre = cur;\n }\n return pre;\n }, initialData);\n return min;\n}\n\nexport function max(data: any[], field?: string): number {\n const initialData = field ? +data[0][field] : +data[0];\n if (!isValidNumber(initialData)) {\n warn('invalid data');\n return 0;\n }\n const max = data.reduce((pre, _cur) => {\n const cur = field ? +_cur[field] : +_cur;\n if (isValidNumber(cur) && cur > pre) {\n pre = cur;\n }\n return pre;\n }, initialData);\n return max;\n}\n\nexport function sum(data: any[], field?: string): number {\n return data.reduce((pre, _cur) => {\n const cur = field ? +_cur[field] : +_cur;\n if (isValidNumber(cur)) {\n pre += cur;\n }\n return pre;\n }, 0);\n}\n\nexport function average(data: any[], field?: string): number {\n let sum = 0;\n let count = 0;\n data.forEach((x: any) => {\n const v = field ? +x[field] : +x;\n if (isValidNumber(v)) {\n sum += v;\n count++;\n }\n });\n\n const average = sum / count;\n return average;\n}\n\nexport function variance(data: any[], field?: string): number {\n const averageNumber = average(data, field);\n\n if (data.length <= 1) {\n return 0;\n }\n\n const total = data.reduce((sum, cur) => sum + (field ? +cur[field] : +cur - averageNumber) ** 2, 0);\n const value = total / (data.length - 1);\n return value;\n}\n\nexport function standardDeviation(data: any[], field?: string): number {\n const value = Math.sqrt(variance(data, field));\n return value;\n}\n\nexport function median(data: any[], field?: string): number {\n const value = visMedian(data.map((datum: Datum) => datum[field]));\n return value;\n}\n\nexport function regression(data: any[], fieldX?: string, fieldY?: string): any[] {\n const { predict } = regressionLinear(\n data,\n datum => datum[fieldX],\n datum => datum[fieldY]\n );\n // 计算回归线起点和终点\n const x1 = min(data, fieldX);\n const x2 = max(data, fieldX);\n\n const predict1 = predict(x1);\n const predict2 = predict(x2);\n return [\n {\n [fieldX]: x1,\n [fieldY]: predict1\n },\n {\n [fieldX]: x2,\n [fieldY]: predict2\n }\n ];\n}\n\n/**\n * 计算对应角度下的角度轴标签定位属性\n * @param angle 弧度角,需要注意是逆时针计算的\n * @returns\n */\nexport function angleLabelOrientAttribute(angle: number) {\n let align: TextAlign = 'center';\n let baseline: TextBaseLine = 'middle';\n\n angle = normalizeAngle(angle);\n\n // left: 5/3 - 1/3; right: 2/3 - 4/3; center: 5/3 - 1/3 & 2/3 - 4/3\n if (angle >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3)) {\n align = 'left';\n } else if (angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3)) {\n align = 'right';\n } else {\n align = 'center';\n }\n\n // bottom: 7/6 - 11/6; top: 1/6 - 5/6; middle: 11/6 - 1/6 & 5/6 - 7/6\n if (angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6)) {\n baseline = 'bottom';\n } else if (angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6)) {\n baseline = 'top';\n } else {\n baseline = 'middle';\n }\n\n return { align, baseline };\n}\n\n/**\n * 计算对应角度下的半径轴标签定位属性\n * @param angle 弧度角,需要注意是逆时针计算的\n * @returns\n */\nexport function radiusLabelOrientAttribute(angle: number) {\n let align: TextAlign = 'center';\n let baseline: TextBaseLine = 'middle';\n\n angle = normalizeAngle(angle);\n\n // right: 7/6 - 11/6; left: 1/6 - 5/6; center: 11/6 - 1/6 & 5/6 - 7/6\n if (angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6)) {\n align = 'right';\n } else if (angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6)) {\n align = 'left';\n } else {\n align = 'center';\n }\n\n // bottom: 5/3 - 1/3; top: 2/3 - 4/3; middle: 5/3 - 1/3 & 2/3 - 4/3\n if (angle >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3)) {\n baseline = 'bottom';\n } else if (angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3)) {\n baseline = 'top';\n } else {\n baseline = 'middle';\n }\n\n return { align, baseline };\n}\n\n/** 求一个向量顺时针旋转到另一个向量的角度,带正负号 */\nexport function vectorAngle(v1: IPoint, v2: IPoint) {\n const v1Length = distance(v1);\n const v2Length = distance(v2);\n // 叉乘\n const rho = Math.asin((v1.x * v2.y - v2.x * v1.y) / v1Length / v2Length);\n // 点乘\n const theta = Math.acos((v1.x * v2.x + v1.y * v2.y) / v1Length / v2Length);\n if (rho < 0) {\n return -theta;\n }\n return theta;\n}\n\n/** 求两个点的距离 */\nexport function distance(p1: IPoint, p2: IPoint = { x: 0, y: 0 }) {\n return PointService.distancePP(p1, p2);\n}\n"]}
1
+ {"version":3,"sources":["../src/util/math.ts"],"names":[],"mappings":"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","file":"math.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { IPoint, IPolarPoint, Quadrant, TextAlign, TextBaseLine } from '../typings';\nimport type { Datum } from '@visactor/vgrammar';\nimport { isValidNumber } from './type';\nimport { regressionLinear } from '@visactor/vgrammar-util';\nimport { isNumberClose, isGreater, isLess, isValid, PointService, median as visMedian } from '@visactor/vutils';\nimport { normalizeAngle, angleLabelOrientAttribute } from '@visactor/vutils-extension';\n\nimport { warn } from './debug';\n\nexport const isClose = isNumberClose;\nexport { isGreater, isLess, normalizeAngle, angleLabelOrientAttribute };\n\n/**\n * 极坐标系 -> 直角坐标系\n * @param point\n * @returns\n */\nexport function polarToCartesian(point: IPolarPoint): IPoint {\n if (!point.radius) {\n return { x: 0, y: 0 };\n }\n return {\n x: Math.cos(point.angle) * point.radius,\n y: Math.sin(point.angle) * point.radius\n };\n}\n\n/**\n * 根据角度计算象限\n * 计算角度所在象限\n * @param angle\n * @returns\n */\nexport function computeQuadrant(angle: number): Quadrant {\n angle = normalizeAngle(angle);\n if (angle > 0 && angle <= Math.PI / 2) {\n return 2;\n } else if (angle > Math.PI / 2 && angle <= Math.PI) {\n return 3;\n } else if (angle > Math.PI && angle <= (3 * Math.PI) / 2) {\n return 4;\n }\n return 1;\n}\n\n/**\n * 将角度轴起始角度 & 终结角度标准化\n * @param start\n * @param end\n * @returns\n */\nexport function normalizeStartEndAngle(\n start: number | null,\n end: number | null\n): { startAngle: number; endAngle: number } {\n let startAngle: number = 0;\n let endAngle: number = Math.PI * 2;\n const isStartValid = isValid(start);\n const isEndValid = isValid(end);\n if (!isStartValid && !isEndValid) {\n startAngle = 0;\n endAngle = Math.PI * 2;\n } else if (!isEndValid) {\n startAngle = start as number;\n endAngle = (start as number) + Math.PI * 2;\n } else if (!isStartValid) {\n startAngle = (end as number) - Math.PI * 2;\n endAngle = end as number;\n } else {\n startAngle = start as number;\n endAngle = end as number;\n }\n\n while (endAngle <= startAngle) {\n endAngle += Math.PI * 2;\n }\n while (startAngle > Math.PI * 2) {\n startAngle -= Math.PI * 2;\n endAngle -= Math.PI * 2;\n }\n while (endAngle < 0) {\n startAngle += Math.PI * 2;\n endAngle += Math.PI * 2;\n }\n return { startAngle, endAngle };\n}\n\nexport function outOfBounds(bounds: IBoundsLike, x: number, y: number) {\n return bounds.x1 > x || bounds.x2 < x || bounds.y1 > y || bounds.y2 < y;\n}\n\nexport function min(data: any[], field?: string): number {\n const initialData = field ? +data[0][field] : +data[0];\n\n if (!isValidNumber(initialData)) {\n warn('invalid data');\n return 0;\n }\n const min = data.reduce((pre, _cur) => {\n const cur = field ? +_cur[field] : +_cur;\n if (isValidNumber(cur) && cur < pre) {\n pre = cur;\n }\n return pre;\n }, initialData);\n return min;\n}\n\nexport function max(data: any[], field?: string): number {\n const initialData = field ? +data[0][field] : +data[0];\n if (!isValidNumber(initialData)) {\n warn('invalid data');\n return 0;\n }\n const max = data.reduce((pre, _cur) => {\n const cur = field ? +_cur[field] : +_cur;\n if (isValidNumber(cur) && cur > pre) {\n pre = cur;\n }\n return pre;\n }, initialData);\n return max;\n}\n\nexport function sum(data: any[], field?: string): number {\n return data.reduce((pre, _cur) => {\n const cur = field ? +_cur[field] : +_cur;\n if (isValidNumber(cur)) {\n pre += cur;\n }\n return pre;\n }, 0);\n}\n\nexport function average(data: any[], field?: string): number {\n let sum = 0;\n let count = 0;\n data.forEach((x: any) => {\n const v = field ? +x[field] : +x;\n if (isValidNumber(v)) {\n sum += v;\n count++;\n }\n });\n\n const average = sum / count;\n return average;\n}\n\nexport function variance(data: any[], field?: string): number {\n const averageNumber = average(data, field);\n\n if (data.length <= 1) {\n return 0;\n }\n\n const total = data.reduce((sum, cur) => sum + (field ? +cur[field] : +cur - averageNumber) ** 2, 0);\n const value = total / (data.length - 1);\n return value;\n}\n\nexport function standardDeviation(data: any[], field?: string): number {\n const value = Math.sqrt(variance(data, field));\n return value;\n}\n\nexport function median(data: any[], field?: string): number {\n const value = visMedian(data.map((datum: Datum) => datum[field]));\n return value;\n}\n\nexport function regression(data: any[], fieldX?: string, fieldY?: string): any[] {\n const { predict } = regressionLinear(\n data,\n datum => datum[fieldX],\n datum => datum[fieldY]\n );\n // 计算回归线起点和终点\n const x1 = min(data, fieldX);\n const x2 = max(data, fieldX);\n\n const predict1 = predict(x1);\n const predict2 = predict(x2);\n return [\n {\n [fieldX]: x1,\n [fieldY]: predict1\n },\n {\n [fieldX]: x2,\n [fieldY]: predict2\n }\n ];\n}\n\n/**\n * 计算对应角度下的半径轴标签定位属性\n * @param angle 弧度角,需要注意是逆时针计算的\n * @returns\n */\nexport function radiusLabelOrientAttribute(angle: number) {\n let align: TextAlign = 'center';\n let baseline: TextBaseLine = 'middle';\n\n angle = normalizeAngle(angle);\n\n // right: 7/6 - 11/6; left: 1/6 - 5/6; center: 11/6 - 1/6 & 5/6 - 7/6\n if (angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6)) {\n align = 'right';\n } else if (angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6)) {\n align = 'left';\n } else {\n align = 'center';\n }\n\n // bottom: 5/3 - 1/3; top: 2/3 - 4/3; middle: 5/3 - 1/3 & 2/3 - 4/3\n if (angle >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3)) {\n baseline = 'bottom';\n } else if (angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3)) {\n baseline = 'top';\n } else {\n baseline = 'middle';\n }\n\n return { align, baseline };\n}\n\n/** 求一个向量顺时针旋转到另一个向量的角度,带正负号 */\nexport function vectorAngle(v1: IPoint, v2: IPoint) {\n const v1Length = distance(v1);\n const v2Length = distance(v2);\n // 叉乘\n const rho = Math.asin((v1.x * v2.y - v2.x * v1.y) / v1Length / v2Length);\n // 点乘\n const theta = Math.acos((v1.x * v2.x + v1.y * v2.y) / v1Length / v2Length);\n if (rho < 0) {\n return -theta;\n }\n return theta;\n}\n\n/** 求两个点的距离 */\nexport function distance(p1: IPoint, p2: IPoint = { x: 0, y: 0 }) {\n return PointService.distancePP(p1, p2);\n}\n"]}
@@ -1,3 +1,5 @@
1
1
  import { DataView } from '@visactor/vdataset';
2
+ import { type ITheme } from '../../theme';
2
3
  export declare function isDataView(obj: any): obj is DataView;
3
4
  export declare function isHTMLElement(obj: any): obj is Element;
5
+ export declare function getThemeObject(theme?: string | ITheme): ITheme;
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.isHTMLElement = exports.isDataView = void 0;
5
+ }), exports.getThemeObject = exports.isHTMLElement = exports.isDataView = void 0;
6
6
 
7
- const vdataset_1 = require("@visactor/vdataset");
7
+ const vdataset_1 = require("@visactor/vdataset"), theme_1 = require("../../theme"), vutils_1 = require("@visactor/vutils");
8
8
 
9
9
  function isDataView(obj) {
10
10
  return obj instanceof vdataset_1.DataView;
@@ -19,5 +19,10 @@ function isHTMLElement(obj) {
19
19
  }
20
20
  }
21
21
 
22
- exports.isDataView = isDataView, exports.isHTMLElement = isHTMLElement;
22
+ function getThemeObject(theme) {
23
+ return (0, vutils_1.isString)(theme) ? theme_1.ThemeManager.themeExist(theme) ? theme_1.ThemeManager.getTheme(theme) : {} : (0,
24
+ vutils_1.isObject)(theme) ? theme : {};
25
+ }
26
+
27
+ exports.isDataView = isDataView, exports.isHTMLElement = isHTMLElement, exports.getThemeObject = getThemeObject;
23
28
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/spec/common.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,GAAG,YAAY,mBAAQ,CAAC;AACjC,CAAC;AAFD,gCAEC;AAED,SAAgB,aAAa,CAAC,GAAQ;IACpC,IAAI;QACF,OAAO,GAAG,YAAY,OAAO,CAAC;KAC/B;IAAC,WAAM;QAEN,MAAM,eAAe,GAAsB;YACzC,UAAU;YACV,WAAW;YACX,WAAW;YACX,cAAc;YACd,SAAS;YACT,uBAAuB;SACxB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD;AACH,CAAC;AAhBD,sCAgBC","file":"common.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\n\nexport function isDataView(obj: any): obj is DataView {\n return obj instanceof DataView;\n}\n\nexport function isHTMLElement(obj: any): obj is Element {\n try {\n return obj instanceof Element;\n } catch {\n // 跨端 plan B\n const htmlElementKeys: (keyof Element)[] = [\n 'children',\n 'innerHTML',\n 'classList',\n 'setAttribute',\n 'tagName',\n 'getBoundingClientRect'\n ];\n const keys = Object.keys(obj);\n return htmlElementKeys.every(key => keys.includes(key));\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/util/spec/common.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,uCAAwD;AACxD,6CAAsD;AAEtD,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,GAAG,YAAY,mBAAQ,CAAC;AACjC,CAAC;AAFD,gCAEC;AAED,SAAgB,aAAa,CAAC,GAAQ;IACpC,IAAI;QACF,OAAO,GAAG,YAAY,OAAO,CAAC;KAC/B;IAAC,WAAM;QAEN,MAAM,eAAe,GAAsB;YACzC,UAAU;YACV,WAAW;YACX,WAAW;YACX,cAAc;YACd,SAAS;YACT,uBAAuB;SACxB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD;AACH,CAAC;AAhBD,sCAgBC;AAED,SAAgB,cAAc,CAAC,KAAuB;IACpD,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;QACnB,IAAI,oBAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO,oBAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACrC;QACD,OAAO,EAAE,CAAC;KACX;SAAM,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAVD,wCAUC","file":"common.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport { ThemeManager, type ITheme } from '../../theme';\nimport { isObject, isString } from '@visactor/vutils';\n\nexport function isDataView(obj: any): obj is DataView {\n return obj instanceof DataView;\n}\n\nexport function isHTMLElement(obj: any): obj is Element {\n try {\n return obj instanceof Element;\n } catch {\n // 跨端 plan B\n const htmlElementKeys: (keyof Element)[] = [\n 'children',\n 'innerHTML',\n 'classList',\n 'setAttribute',\n 'tagName',\n 'getBoundingClientRect'\n ];\n const keys = Object.keys(obj);\n return htmlElementKeys.every(key => keys.includes(key));\n }\n}\n\nexport function getThemeObject(theme?: string | ITheme): ITheme {\n if (isString(theme)) {\n if (ThemeManager.themeExist(theme)) {\n return ThemeManager.getTheme(theme);\n }\n return {};\n } else if (isObject(theme)) {\n return theme;\n }\n return {};\n}\n"]}
@@ -1 +1,5 @@
1
1
  export declare function mergeSpec(target: any, ...sources: any[]): any;
2
+ export declare function mergeSpecWithFilter(target: any, filter: string | {
3
+ type: string;
4
+ index: number;
5
+ }, spec: any, forceMerge: boolean): void;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.mergeSpec = void 0;
5
+ }), exports.mergeSpecWithFilter = exports.mergeSpec = void 0;
6
6
 
7
7
  const vutils_1 = require("@visactor/vutils");
8
8
 
@@ -54,5 +54,15 @@ function mergeSpec(target, ...sources) {
54
54
  return target;
55
55
  }
56
56
 
57
- exports.mergeSpec = mergeSpec;
57
+ function mergeSpecWithFilter(target, filter, spec, forceMerge) {
58
+ Object.keys(target).forEach((k => {
59
+ if ((0, vutils_1.isObject)(filter)) filter.type === k && ((0, vutils_1.isArray)(target[k]) ? target[k].length >= filter.index && (target[k][filter.index] = forceMerge ? mergeSpec({}, target[k][filter.index], spec) : spec) : target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec); else if ((0,
60
+ vutils_1.isArray)(target[k])) {
61
+ const index = target[k].findIndex((_s => _s.id === filter));
62
+ index >= 0 && (target[k][index] = forceMerge ? mergeSpec({}, target[k][index], spec) : spec);
63
+ } else target.id === filter && (target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec);
64
+ }));
65
+ }
66
+
67
+ exports.mergeSpec = mergeSpec, exports.mergeSpecWithFilter = mergeSpecWithFilter;
58
68
  //# sourceMappingURL=merge-spec.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/spec/merge-spec.ts"],"names":[],"mappings":";;;AAAA,6CAAgF;AAEhF,SAAS,SAAS,CAAC,MAAW,EAAE,MAAW,EAAE,eAAwB,KAAK;IACxE,IAAI,MAAM,EAAE;QACV,IAAI,MAAM,KAAK,MAAM,EAAE;YACrB,OAAO;SACR;QACD,IAAI,IAAA,gBAAO,EAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAEjD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,EAAE,CAAC;YAEjB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;gBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACjB;YACD,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YACvB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,EAAE,EAAE;gBACf,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC/B,IACE,IAAA,gBAAO,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACtB,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ;oBACjC,CAAC,IAAA,gBAAO,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EACrB;oBACA,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;iBAClD;qBAAM;oBACL,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC9C;aACF;SACF;KACF;AACH,CAAC;AAGD,SAAS,aAAa,CAAC,MAAc,EAAE,MAAc,EAAE,GAAW,EAAE,eAAwB,KAAK;IAC/F,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE;QACrB,IAAI,YAAY,EAAE;YAEhB,QAAQ,GAAG,EAAE,CAAC;SACf;aAAM,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE;YAC5B,QAAQ,GAAG,QAAQ,CAAC;SACrB;aAAM,IAAI,IAAA,oBAAW,EAAC,QAAQ,CAAC,EAAE;YAEhC,QAAQ,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;gBACvB,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnC;SACF;KACF;SAKI,IAAI,IAAA,sBAAa,EAAC,QAAQ,CAAC,EAAE;QAChC,QAAQ,GAAG,QAAQ,CAAC;QAEpB,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAClE,QAAQ,GAAG,EAAE,CAAC;SACf;KACF;SAAM;QACL,QAAQ,GAAG,KAAK,CAAC;KAClB;IAED,IAAI,QAAQ,EAAE;QACZ,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC7C;IACD,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,GAAW,EAAE,KAAU;IAC/D,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE;QAEjG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KACrB;AACH,CAAC;AAED,SAAS,EAAE,CAAC,KAAU,EAAE,KAAU;IAChC,OAAO,KAAK,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAKD,SAAgB,SAAS,CAAC,MAAW,EAAE,GAAG,OAAc;IACtD,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;KACjC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,8BAQC","file":"merge-spec.js","sourcesContent":["import { isArray, isArrayLike, isPlainObject, isValid } from '@visactor/vutils';\n\nfunction baseMerge(target: any, source: any, shallowArray: boolean = false) {\n if (source) {\n if (target === source) {\n return;\n }\n if (isValid(source) && typeof source === 'object') {\n // baseFor\n const iterable = Object(source);\n const props = [];\n // keysIn\n for (const key in iterable) {\n props.push(key);\n }\n let { length } = props;\n let propIndex = -1;\n while (length--) {\n const key = props[++propIndex];\n if (\n isValid(iterable[key]) &&\n typeof iterable[key] === 'object' &&\n !isArray(target[key]) // VChart 特有逻辑\n ) {\n baseMergeDeep(target, source, key, shallowArray);\n } else {\n assignMergeValue(target, key, iterable[key]);\n }\n }\n }\n }\n}\n\n// 由于目前 VChart 内部对 spec 会先执行一次深拷贝,merge 暂时不考虑 source 中有环的问题\nfunction baseMergeDeep(target: object, source: object, key: string, shallowArray: boolean = false) {\n const objValue = target[key];\n const srcValue = source[key];\n let newValue = source[key];\n let isCommon = true;\n // 不考虑 buffer / typedArray 类型\n if (isArray(srcValue)) {\n if (shallowArray) {\n // 依据参数对数组做浅拷贝\n newValue = [];\n } else if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLike(objValue)) {\n // 如果 source 为数组,则 target 的 arrayLike 对象也视作为数组处理\n newValue = new Array(objValue.length);\n let index = -1;\n const length = objValue.length;\n while (++index < length) {\n newValue[index] = objValue[index];\n }\n }\n }\n // else if (isArray(srcValue) && shallowArray) {\n // newValue = [];\n // }\n // 不考虑 argument 类型\n else if (isPlainObject(srcValue)) {\n newValue = objValue;\n // 不考虑 prototype 的额外处理\n if (typeof objValue === 'function' || typeof objValue !== 'object') {\n newValue = {};\n }\n } else {\n isCommon = false;\n }\n // 对 class 等复杂对象或者浅拷贝的 array 不做拷贝处理\n if (isCommon) {\n baseMerge(newValue, srcValue, shallowArray);\n }\n assignMergeValue(target, key, newValue);\n}\n\nfunction assignMergeValue(target: object, key: string, value: any) {\n if ((value !== undefined && !eq(target[key], value)) || (value === undefined && !(key in target))) {\n // 不考虑 __proto__ 的赋值处理\n target[key] = value;\n }\n}\n\nfunction eq(value: any, other: any) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\n/* 与原生的 lodash merge 差异在于对数组是否应用最后一个 source 的结果\n * 以及对一些特殊情况的处理,比如对数组类型 padding 和对象类型的 padding 的 merge\n */\nexport function mergeSpec(target: any, ...sources: any[]): any {\n let sourceIndex = -1;\n const length = sources.length;\n while (++sourceIndex < length) {\n const source = sources[sourceIndex];\n baseMerge(target, source, true);\n }\n return target;\n}\n"]}
1
+ {"version":3,"sources":["../src/util/spec/merge-spec.ts"],"names":[],"mappings":";;;AAAA,6CAA0F;AAG1F,SAAS,SAAS,CAAC,MAAW,EAAE,MAAW,EAAE,eAAwB,KAAK;IACxE,IAAI,MAAM,EAAE;QACV,IAAI,MAAM,KAAK,MAAM,EAAE;YACrB,OAAO;SACR;QACD,IAAI,IAAA,gBAAO,EAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAEjD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,EAAE,CAAC;YAEjB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;gBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACjB;YACD,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YACvB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,EAAE,EAAE;gBACf,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC/B,IACE,IAAA,gBAAO,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACtB,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ;oBACjC,CAAC,IAAA,gBAAO,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EACrB;oBACA,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;iBAClD;qBAAM;oBACL,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC9C;aACF;SACF;KACF;AACH,CAAC;AAGD,SAAS,aAAa,CAAC,MAAc,EAAE,MAAc,EAAE,GAAW,EAAE,eAAwB,KAAK;IAC/F,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE;QACrB,IAAI,YAAY,EAAE;YAEhB,QAAQ,GAAG,EAAE,CAAC;SACf;aAAM,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE;YAC5B,QAAQ,GAAG,QAAQ,CAAC;SACrB;aAAM,IAAI,IAAA,oBAAW,EAAC,QAAQ,CAAC,EAAE;YAEhC,QAAQ,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;gBACvB,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnC;SACF;KACF;SAKI,IAAI,IAAA,sBAAa,EAAC,QAAQ,CAAC,EAAE;QAChC,QAAQ,GAAG,QAAQ,CAAC;QAEpB,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAClE,QAAQ,GAAG,EAAE,CAAC;SACf;KACF;SAAM;QACL,QAAQ,GAAG,KAAK,CAAC;KAClB;IAED,IAAI,QAAQ,EAAE;QACZ,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC7C;IACD,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,GAAW,EAAE,KAAU;IAC/D,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE;QAEjG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KACrB;AACH,CAAC;AAED,SAAS,EAAE,CAAC,KAAU,EAAE,KAAU;IAChC,OAAO,KAAK,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAKD,SAAgB,SAAS,CAAC,MAAW,EAAE,GAAG,OAAc;IACtD,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;KACjC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,8BAQC;AAED,SAAgB,mBAAmB,CACjC,MAAW,EACX,MAAgD,EAChD,IAAS,EACT,UAAmB;IAEnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC9B,IAAI,IAAA,iBAAQ,EAAC,MAAM,CAAC,EAAE;YACpB,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;gBACrB,IAAI,IAAA,gBAAO,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBACtB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;wBACpC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;qBAC5F;iBACF;qBAAM;oBACL,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBAChE;aACF;SACF;aAAM;YAEL,IAAI,IAAA,gBAAO,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAA0B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;gBACpF,IAAI,KAAK,IAAI,CAAC,EAAE;oBACd,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC9E;aACF;iBAAM,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE;gBAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aAChE;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AA7BD,kDA6BC","file":"merge-spec.js","sourcesContent":["import { isArray, isArrayLike, isObject, isPlainObject, isValid } from '@visactor/vutils';\nimport type { StringOrNumber } from '../../typings';\n\nfunction baseMerge(target: any, source: any, shallowArray: boolean = false) {\n if (source) {\n if (target === source) {\n return;\n }\n if (isValid(source) && typeof source === 'object') {\n // baseFor\n const iterable = Object(source);\n const props = [];\n // keysIn\n for (const key in iterable) {\n props.push(key);\n }\n let { length } = props;\n let propIndex = -1;\n while (length--) {\n const key = props[++propIndex];\n if (\n isValid(iterable[key]) &&\n typeof iterable[key] === 'object' &&\n !isArray(target[key]) // VChart 特有逻辑\n ) {\n baseMergeDeep(target, source, key, shallowArray);\n } else {\n assignMergeValue(target, key, iterable[key]);\n }\n }\n }\n }\n}\n\n// 由于目前 VChart 内部对 spec 会先执行一次深拷贝,merge 暂时不考虑 source 中有环的问题\nfunction baseMergeDeep(target: object, source: object, key: string, shallowArray: boolean = false) {\n const objValue = target[key];\n const srcValue = source[key];\n let newValue = source[key];\n let isCommon = true;\n // 不考虑 buffer / typedArray 类型\n if (isArray(srcValue)) {\n if (shallowArray) {\n // 依据参数对数组做浅拷贝\n newValue = [];\n } else if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLike(objValue)) {\n // 如果 source 为数组,则 target 的 arrayLike 对象也视作为数组处理\n newValue = new Array(objValue.length);\n let index = -1;\n const length = objValue.length;\n while (++index < length) {\n newValue[index] = objValue[index];\n }\n }\n }\n // else if (isArray(srcValue) && shallowArray) {\n // newValue = [];\n // }\n // 不考虑 argument 类型\n else if (isPlainObject(srcValue)) {\n newValue = objValue;\n // 不考虑 prototype 的额外处理\n if (typeof objValue === 'function' || typeof objValue !== 'object') {\n newValue = {};\n }\n } else {\n isCommon = false;\n }\n // 对 class 等复杂对象或者浅拷贝的 array 不做拷贝处理\n if (isCommon) {\n baseMerge(newValue, srcValue, shallowArray);\n }\n assignMergeValue(target, key, newValue);\n}\n\nfunction assignMergeValue(target: object, key: string, value: any) {\n if ((value !== undefined && !eq(target[key], value)) || (value === undefined && !(key in target))) {\n // 不考虑 __proto__ 的赋值处理\n target[key] = value;\n }\n}\n\nfunction eq(value: any, other: any) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\n/* 与原生的 lodash merge 差异在于对数组是否应用最后一个 source 的结果\n * 以及对一些特殊情况的处理,比如对数组类型 padding 和对象类型的 padding 的 merge\n */\nexport function mergeSpec(target: any, ...sources: any[]): any {\n let sourceIndex = -1;\n const length = sources.length;\n while (++sourceIndex < length) {\n const source = sources[sourceIndex];\n baseMerge(target, source, true);\n }\n return target;\n}\n\nexport function mergeSpecWithFilter(\n target: any,\n filter: string | { type: string; index: number },\n spec: any,\n forceMerge: boolean\n) {\n Object.keys(target).forEach(k => {\n if (isObject(filter)) {\n if (filter.type === k) {\n if (isArray(target[k])) {\n if (target[k].length >= filter.index) {\n target[k][filter.index] = forceMerge ? mergeSpec({}, target[k][filter.index], spec) : spec;\n }\n } else {\n target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec;\n }\n }\n } else {\n // filter === user id\n if (isArray(target[k])) {\n const index = target[k].findIndex((_s: { id: StringOrNumber }) => _s.id === filter);\n if (index >= 0) {\n target[k][index] = forceMerge ? mergeSpec({}, target[k][index], spec) : spec;\n }\n } else if (target.id === filter) {\n target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec;\n }\n }\n });\n}\n"]}
package/cjs/util/style.js CHANGED
@@ -39,7 +39,7 @@ function transformAxisLabelStateStyle(stateStyle) {
39
39
  }
40
40
 
41
41
  function transformToGraphic(style) {
42
- return (0, vutils_1.isEmpty)(style) || style.angle && (style.angle = (0, vutils_1.degreeToRadian)(style.angle)),
42
+ return (null == style ? void 0 : style.angle) && (style.angle = (0, vutils_1.degreeToRadian)(style.angle)),
43
43
  style;
44
44
  }
45
45
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/style.ts"],"names":[],"mappings":"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","file":"style.js","sourcesContent":["import { degreeToRadian, isEmpty, isFunction } from '@visactor/vutils';\nimport type { Datum } from '../typings';\nimport type { LegendItemDatum } from '@visactor/vrender-components';\n\n/**\n * 针对一些可以配置状态样式的属性的转换函数,结构如下:\n * { style: {}, state: { hover: {} } }\n * @param cfg\n * @returns\n */\nexport function transformComponentStyle(cfg: any = {}) {\n const newConfig = {\n ...cfg\n };\n\n if (isFunction(cfg.style)) {\n newConfig.style = (item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) =>\n transformToGraphic(cfg.style(item, isSelected, index, allItems));\n } else if (!isEmpty(cfg.style)) {\n newConfig.style = transformToGraphic(cfg.style);\n }\n\n if (!isEmpty(cfg.state)) {\n const newStateStyle = {};\n Object.keys(cfg.state).forEach(key => {\n if (isFunction(cfg.state[key])) {\n newStateStyle[key] = (item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) =>\n transformToGraphic(cfg.state[key](item, isSelected, index, allItems));\n } else if (!isEmpty(cfg.state[key])) {\n newStateStyle[key] = transformToGraphic(cfg.state[key]);\n }\n });\n newConfig.state = newStateStyle;\n }\n\n return newConfig;\n}\n\nexport function transformStateStyle(stateStyle: any) {\n if (isEmpty(stateStyle)) {\n return null;\n }\n const newStateStyle = {};\n Object.keys(stateStyle).forEach(key => {\n if (isFunction(stateStyle[key])) {\n newStateStyle[key] = (value: any, index: number, datum: Datum, data: Datum[]) =>\n transformToGraphic(stateStyle[key](value, index, datum, data));\n } else if (!isEmpty(stateStyle[key])) {\n newStateStyle[key] = transformToGraphic(stateStyle[key]);\n }\n });\n\n return newStateStyle;\n}\n\nexport function transformAxisLabelStateStyle(stateStyle: any) {\n if (isEmpty(stateStyle)) {\n return null;\n }\n const newStateStyle = {};\n Object.keys(stateStyle).forEach(key => {\n if (isFunction(stateStyle[key])) {\n newStateStyle[key] = (datum: Datum, index: number, data: Datum[], layer?: number) => {\n return transformToGraphic(stateStyle[key](datum.rawValue, index, datum, data, layer));\n };\n } else if (!isEmpty(stateStyle[key])) {\n newStateStyle[key] = transformToGraphic(stateStyle[key]);\n }\n });\n\n return newStateStyle;\n}\n\nexport function transformToGraphic(style: any) {\n if (isEmpty(style)) {\n return style;\n }\n if (style.angle) {\n style.angle = degreeToRadian(style.angle);\n }\n\n return style;\n}\n"]}
1
+ {"version":3,"sources":["../src/util/style.ts"],"names":[],"mappings":"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","file":"style.js","sourcesContent":["import { degreeToRadian, isEmpty, isFunction } from '@visactor/vutils';\nimport type { Datum } from '../typings';\nimport type { LegendItemDatum } from '@visactor/vrender-components';\n\n/**\n * 针对一些可以配置状态样式的属性的转换函数,结构如下:\n * { style: {}, state: { hover: {} } }\n * @param cfg\n * @returns\n */\nexport function transformComponentStyle(cfg: any = {}) {\n const newConfig = {\n ...cfg\n };\n\n if (isFunction(cfg.style)) {\n newConfig.style = (item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) =>\n transformToGraphic(cfg.style(item, isSelected, index, allItems));\n } else if (!isEmpty(cfg.style)) {\n newConfig.style = transformToGraphic(cfg.style);\n }\n\n if (!isEmpty(cfg.state)) {\n const newStateStyle = {};\n Object.keys(cfg.state).forEach(key => {\n if (isFunction(cfg.state[key])) {\n newStateStyle[key] = (item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) =>\n transformToGraphic(cfg.state[key](item, isSelected, index, allItems));\n } else if (!isEmpty(cfg.state[key])) {\n newStateStyle[key] = transformToGraphic(cfg.state[key]);\n }\n });\n newConfig.state = newStateStyle;\n }\n\n return newConfig;\n}\n\nexport function transformStateStyle(stateStyle: any) {\n if (isEmpty(stateStyle)) {\n return null;\n }\n const newStateStyle = {};\n Object.keys(stateStyle).forEach(key => {\n if (isFunction(stateStyle[key])) {\n newStateStyle[key] = (value: any, index: number, datum: Datum, data: Datum[]) =>\n transformToGraphic(stateStyle[key](value, index, datum, data));\n } else if (!isEmpty(stateStyle[key])) {\n newStateStyle[key] = transformToGraphic(stateStyle[key]);\n }\n });\n\n return newStateStyle;\n}\n\nexport function transformAxisLabelStateStyle(stateStyle: any) {\n if (isEmpty(stateStyle)) {\n return null;\n }\n const newStateStyle = {};\n Object.keys(stateStyle).forEach(key => {\n if (isFunction(stateStyle[key])) {\n newStateStyle[key] = (datum: Datum, index: number, data: Datum[], layer?: number) => {\n return transformToGraphic(stateStyle[key](datum.rawValue, index, datum, data, layer));\n };\n } else if (!isEmpty(stateStyle[key])) {\n newStateStyle[key] = transformToGraphic(stateStyle[key]);\n }\n });\n\n return newStateStyle;\n}\n\nexport function transformToGraphic(style: any) {\n if (style?.angle) {\n style.angle = degreeToRadian(style.angle);\n }\n\n return style;\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { ITextMeasureOption } from '@visactor/vutils';
2
- import { TextMeasure } from '@visactor/vutils';
3
- import type { AdaptiveSpec, ITextMarkSpec } from '../typings';
4
- export declare const initTextMeasure: (textSpec?: Partial<ITextMarkSpec>, option?: Partial<ITextMeasureOption>, useNaiveCanvas?: boolean) => TextMeasure<AdaptiveSpec<ITextMarkSpec, 'lineHeight'>>;
2
+ import type { TextMeasure } from '@visactor/vutils';
3
+ import type { AdaptiveSpec } from '../typings';
4
+ import type { ITextGraphicAttribute } from '@visactor/vrender';
5
+ export declare const initTextMeasure: (textSpec?: Partial<ITextGraphicAttribute>, option?: Partial<ITextMeasureOption>, useNaiveCanvas?: boolean) => TextMeasure<AdaptiveSpec<ITextGraphicAttribute, 'lineHeight'>>;
package/cjs/util/text.js CHANGED
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.initTextMeasure = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), vrender_1 = require("@visactor/vrender"), constants_1 = require("../theme/builtin/common/constants"), initTextMeasure = (textSpec, option, useNaiveCanvas) => new vutils_1.TextMeasure(Object.assign({
8
- defaultFontParams: {
9
- fontFamily: constants_1.THEME_CONSTANTS.defaultFontFamily,
10
- fontSize: constants_1.THEME_CONSTANTS.defaultFontSize
11
- },
12
- getTextBounds: useNaiveCanvas ? void 0 : vrender_1.getTextBounds,
13
- specialCharSet: "-/: .,@%'\"~" + vutils_1.TextMeasure.ALPHABET_CHAR_SET + vutils_1.TextMeasure.ALPHABET_CHAR_SET.toUpperCase()
14
- }, null != option ? option : {}), textSpec);
7
+ const constants_1 = require("../theme/builtin/common/constants"), vutils_extension_1 = require("@visactor/vutils-extension"), initTextMeasure = (textSpec, option, useNaiveCanvas) => (0,
8
+ vutils_extension_1.initTextMeasure)(textSpec, option, useNaiveCanvas, {
9
+ fontFamily: constants_1.THEME_CONSTANTS.defaultFontFamily,
10
+ fontSize: constants_1.THEME_CONSTANTS.defaultFontSize
11
+ });
15
12
 
16
13
  exports.initTextMeasure = initTextMeasure;
17
14
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/text.ts"],"names":[],"mappings":";;;AAEA,6CAA+C;AAC/C,+CAAkD;AAElD,iEAAoE;AAE7D,MAAM,eAAe,GAAG,CAC7B,QAAiC,EACjC,MAAoC,EACpC,cAAwB,EACgC,EAAE;IAE1D,OAAO,IAAI,oBAAW,iBAElB,iBAAiB,EAAE;YACjB,UAAU,EAAE,2BAAe,CAAC,iBAAiB;YAC7C,QAAQ,EAAE,2BAAe,CAAC,eAAe;SAC1C,EACD,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAa,EACzD,cAAc,EAAE,cAAc,GAAG,oBAAW,CAAC,iBAAiB,GAAG,oBAAW,CAAC,iBAAiB,CAAC,WAAW,EAAE,IACzG,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,GAEnB,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,eAAe,mBAkB1B","file":"text.js","sourcesContent":["import type { ITextMeasureOption } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { TextMeasure } from '@visactor/vutils';\nimport { getTextBounds } from '@visactor/vrender';\nimport type { AdaptiveSpec, ITextMarkSpec } from '../typings';\nimport { THEME_CONSTANTS } from '../theme/builtin/common/constants';\n\nexport const initTextMeasure = (\n textSpec?: Partial<ITextMarkSpec>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean\n): TextMeasure<AdaptiveSpec<ITextMarkSpec, 'lineHeight'>> => {\n // FIXME: vrender 支持行高字符串后删除 AdaptiveSpec 范型\n return new TextMeasure<AdaptiveSpec<ITextMarkSpec, 'lineHeight'>>(\n {\n defaultFontParams: {\n fontFamily: THEME_CONSTANTS.defaultFontFamily,\n fontSize: THEME_CONSTANTS.defaultFontSize\n },\n getTextBounds: useNaiveCanvas ? undefined : getTextBounds,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/util/text.ts"],"names":[],"mappings":";;;AAIA,iEAAoE;AACpE,iEAAoF;AAG7E,MAAM,eAAe,GAAG,CAC7B,QAAyC,EACzC,MAAoC,EACpC,cAAwB,EACwC,EAAE;IAElE,OAAO,IAAA,kCAAmB,EAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;QAC3D,UAAU,EAAE,2BAAe,CAAC,iBAAiB;QAC7C,QAAQ,EAAE,2BAAe,CAAC,eAAe;KAC1C,CAAC,CAAC;AACL,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B","file":"text.js","sourcesContent":["import type { ITextMeasureOption } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TextMeasure } from '@visactor/vutils';\nimport type { AdaptiveSpec } from '../typings';\nimport { THEME_CONSTANTS } from '../theme/builtin/common/constants';\nimport { initTextMeasure as initTextMeasureFunc } from '@visactor/vutils-extension';\nimport type { ITextGraphicAttribute } from '@visactor/vrender';\n\nexport const initTextMeasure = (\n textSpec?: Partial<ITextGraphicAttribute>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean\n): TextMeasure<AdaptiveSpec<ITextGraphicAttribute, 'lineHeight'>> => {\n // FIXME: vrender 支持行高字符串后删除 AdaptiveSpec 范型\n return initTextMeasureFunc(textSpec, option, useNaiveCanvas, {\n fontFamily: THEME_CONSTANTS.defaultFontFamily,\n fontSize: THEME_CONSTANTS.defaultFontSize\n });\n};\n"]}
package/cjs/vchart-all.js CHANGED
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "VChart", {
15
15
 
16
16
  const chart_1 = require("./chart"), component_1 = require("./component"), layout_1 = require("./layout"), vrender_components_1 = require("@visactor/vrender-components");
17
17
 
18
- (0, vrender_components_1.loadPoptip)({}), core_1.VChart.useChart([ chart_1.AreaChart, chart_1.LineChart, chart_1.BarChart, chart_1.Bar3dChart, chart_1.ScatterChart, chart_1.MapChart, chart_1.PieChart, chart_1.Pie3dChart, chart_1.RoseChart, chart_1.RadarChart, chart_1.CommonChart, chart_1.SequenceChart, chart_1.HistogramChart, chart_1.Histogram3dChart, chart_1.CircularProgressChart, chart_1.WordCloudChart, chart_1.WordCloud3dChart, chart_1.FunnelChart, chart_1.Funnel3dChart, chart_1.LinearProgressChart, chart_1.RangeColumnChart, chart_1.RangeColumn3dChart, chart_1.SunburstChart, chart_1.CirclePackingChart, chart_1.TreemapChart, chart_1.WaterfallChart, chart_1.BoxPlotChart, chart_1.SankeyChart, chart_1.GaugeChart, chart_1.RangeAreaChart, chart_1.HeatmapChart ]),
18
+ (0, vrender_components_1.loadPoptip)(), core_1.VChart.useChart([ chart_1.AreaChart, chart_1.LineChart, chart_1.BarChart, chart_1.Bar3dChart, chart_1.ScatterChart, chart_1.MapChart, chart_1.PieChart, chart_1.Pie3dChart, chart_1.RoseChart, chart_1.RadarChart, chart_1.CommonChart, chart_1.SequenceChart, chart_1.HistogramChart, chart_1.Histogram3dChart, chart_1.CircularProgressChart, chart_1.WordCloudChart, chart_1.WordCloud3dChart, chart_1.FunnelChart, chart_1.Funnel3dChart, chart_1.LinearProgressChart, chart_1.RangeColumnChart, chart_1.RangeColumn3dChart, chart_1.SunburstChart, chart_1.CirclePackingChart, chart_1.TreemapChart, chart_1.WaterfallChart, chart_1.BoxPlotChart, chart_1.SankeyChart, chart_1.GaugeChart, chart_1.RangeAreaChart, chart_1.HeatmapChart ]),
19
19
  core_1.VChart.useComponent([ component_1.CartesianLinearAxis, component_1.CartesianBandAxis, component_1.CartesianTimeAxis, component_1.CartesianLogAxis, component_1.CartesianSymlogAxis, component_1.PolarBandAxis, component_1.PolarLinearAxis, component_1.DiscreteLegend, component_1.ContinuousLegend, component_1.Tooltip, component_1.CartesianCrossHair, component_1.PolarCrossHair, component_1.DataZoom, component_1.ScrollBar, component_1.Indicator, component_1.GeoCoordinate, component_1.MarkLine, component_1.Title, component_1.MarkArea, component_1.Player, component_1.TotalLabel, component_1.Label, component_1.MarkPoint, component_1.Brush, component_1.CustomMark, component_1.MapLabelComponent ]),
20
20
  core_1.Factory.registerLayout("grid", layout_1.GridLayout), core_1.Factory.registerLayout("layout3d", layout_1.Layout3d);
21
21
  //# sourceMappingURL=vchart-all.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/vchart-all.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AA0IhC,uFA1IA,aAAM,OA0IA;AAzIf,mCAgCiB;AAEjB,2CA2BqB;AACrB,qCAAgD;AAChD,qEAA0D;AAG1D,IAAA,+BAAU,EAAC,EAAE,CAAC,CAAC;AAGf,aAAM,CAAC,QAAQ,CAAC;IACd,iBAAS;IACT,iBAAS;IACT,gBAAQ;IACR,kBAAU;IACV,oBAAY;IACZ,gBAAQ;IACR,gBAAQ;IACR,kBAAU;IACV,iBAAS;IACT,kBAAU;IACV,mBAAW;IACX,qBAAa;IACb,sBAAc;IACd,wBAAgB;IAChB,6BAAqB;IACrB,sBAAc;IACd,wBAAgB;IAChB,mBAAW;IACX,qBAAa;IACb,2BAAmB;IACnB,wBAAgB;IAChB,0BAAkB;IAClB,qBAAa;IACb,0BAAkB;IAClB,oBAAY;IACZ,sBAAc;IACd,oBAAY;IACZ,mBAAW;IACX,kBAAU;IACV,sBAAc;IACd,oBAAY;CACb,CAAC,CAAC;AAGH,aAAM,CAAC,YAAY,CAAC;IAClB,+BAAmB;IACnB,6BAAiB;IACjB,6BAAiB;IACjB,4BAAgB;IAChB,+BAAmB;IACnB,yBAAa;IACb,2BAAe;IACf,0BAAc;IACd,4BAAgB;IAChB,mBAAO;IACP,8BAAkB;IAClB,0BAAc;IACd,oBAAQ;IACR,qBAAS;IACT,qBAAS;IACT,yBAAa;IACb,oBAAQ;IACR,iBAAK;IACL,oBAAQ;IACR,kBAAM;IACN,sBAAU;IACV,iBAAK;IACL,qBAAS;IACT,iBAAK;IACL,sBAAU;IACV,6BAAiB;CAClB,CAAC,CAAC;AAGH,cAAO,CAAC,cAAc,CAAC,MAAM,EAAE,mBAAiB,CAAC,CAAC;AAClD,cAAO,CAAC,cAAc,CAAC,UAAU,EAAE,iBAAe,CAAC,CAAC","file":"vchart-all.js","sourcesContent":["import { VChart, Factory } from './core';\nimport {\n AreaChart,\n LineChart,\n BarChart,\n Bar3dChart,\n ScatterChart,\n MapChart,\n PieChart,\n Pie3dChart,\n RoseChart,\n RadarChart,\n CommonChart,\n SequenceChart,\n HistogramChart,\n Histogram3dChart,\n CircularProgressChart,\n WordCloudChart,\n WordCloud3dChart,\n FunnelChart,\n Funnel3dChart,\n LinearProgressChart,\n RangeColumnChart,\n RangeColumn3dChart,\n SunburstChart,\n CirclePackingChart,\n TreemapChart,\n WaterfallChart,\n BoxPlotChart,\n SankeyChart,\n GaugeChart,\n RangeAreaChart,\n HeatmapChart\n} from './chart';\n\nimport {\n CartesianLinearAxis,\n CartesianBandAxis,\n CartesianTimeAxis,\n PolarBandAxis,\n CartesianLogAxis,\n CartesianSymlogAxis,\n PolarLinearAxis,\n DiscreteLegend,\n ContinuousLegend,\n Tooltip,\n CartesianCrossHair,\n PolarCrossHair,\n DataZoom,\n ScrollBar,\n Indicator,\n GeoCoordinate,\n MarkLine,\n Title,\n MarkArea,\n Player,\n Label,\n MarkPoint,\n Brush,\n CustomMark,\n MapLabelComponent,\n TotalLabel\n} from './component';\nimport { GridLayout, Layout3d } from './layout';\nimport { loadPoptip } from '@visactor/vrender-components';\n\n// 装载 poptip\nloadPoptip({});\n\n// charts\nVChart.useChart([\n AreaChart,\n LineChart,\n BarChart,\n Bar3dChart,\n ScatterChart,\n MapChart,\n PieChart,\n Pie3dChart,\n RoseChart,\n RadarChart,\n CommonChart,\n SequenceChart,\n HistogramChart,\n Histogram3dChart,\n CircularProgressChart,\n WordCloudChart,\n WordCloud3dChart,\n FunnelChart,\n Funnel3dChart,\n LinearProgressChart,\n RangeColumnChart,\n RangeColumn3dChart,\n SunburstChart,\n CirclePackingChart,\n TreemapChart,\n WaterfallChart,\n BoxPlotChart,\n SankeyChart,\n GaugeChart,\n RangeAreaChart,\n HeatmapChart\n]);\n\n// components\nVChart.useComponent([\n CartesianLinearAxis,\n CartesianBandAxis,\n CartesianTimeAxis,\n CartesianLogAxis,\n CartesianSymlogAxis,\n PolarBandAxis,\n PolarLinearAxis,\n DiscreteLegend,\n ContinuousLegend,\n Tooltip,\n CartesianCrossHair,\n PolarCrossHair,\n DataZoom,\n ScrollBar,\n Indicator,\n GeoCoordinate,\n MarkLine,\n Title,\n MarkArea,\n Player,\n TotalLabel,\n Label,\n MarkPoint,\n Brush,\n CustomMark,\n MapLabelComponent\n]);\n\n// layout\nFactory.registerLayout('grid', GridLayout as any);\nFactory.registerLayout('layout3d', Layout3d as any);\n\nexport { VChart };\n"]}
1
+ {"version":3,"sources":["../src/vchart-all.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AA0IhC,uFA1IA,aAAM,OA0IA;AAzIf,mCAgCiB;AAEjB,2CA2BqB;AACrB,qCAAgD;AAChD,qEAA0D;AAG1D,IAAA,+BAAU,GAAE,CAAC;AAGb,aAAM,CAAC,QAAQ,CAAC;IACd,iBAAS;IACT,iBAAS;IACT,gBAAQ;IACR,kBAAU;IACV,oBAAY;IACZ,gBAAQ;IACR,gBAAQ;IACR,kBAAU;IACV,iBAAS;IACT,kBAAU;IACV,mBAAW;IACX,qBAAa;IACb,sBAAc;IACd,wBAAgB;IAChB,6BAAqB;IACrB,sBAAc;IACd,wBAAgB;IAChB,mBAAW;IACX,qBAAa;IACb,2BAAmB;IACnB,wBAAgB;IAChB,0BAAkB;IAClB,qBAAa;IACb,0BAAkB;IAClB,oBAAY;IACZ,sBAAc;IACd,oBAAY;IACZ,mBAAW;IACX,kBAAU;IACV,sBAAc;IACd,oBAAY;CACb,CAAC,CAAC;AAGH,aAAM,CAAC,YAAY,CAAC;IAClB,+BAAmB;IACnB,6BAAiB;IACjB,6BAAiB;IACjB,4BAAgB;IAChB,+BAAmB;IACnB,yBAAa;IACb,2BAAe;IACf,0BAAc;IACd,4BAAgB;IAChB,mBAAO;IACP,8BAAkB;IAClB,0BAAc;IACd,oBAAQ;IACR,qBAAS;IACT,qBAAS;IACT,yBAAa;IACb,oBAAQ;IACR,iBAAK;IACL,oBAAQ;IACR,kBAAM;IACN,sBAAU;IACV,iBAAK;IACL,qBAAS;IACT,iBAAK;IACL,sBAAU;IACV,6BAAiB;CAClB,CAAC,CAAC;AAGH,cAAO,CAAC,cAAc,CAAC,MAAM,EAAE,mBAAiB,CAAC,CAAC;AAClD,cAAO,CAAC,cAAc,CAAC,UAAU,EAAE,iBAAe,CAAC,CAAC","file":"vchart-all.js","sourcesContent":["import { VChart, Factory } from './core';\nimport {\n AreaChart,\n LineChart,\n BarChart,\n Bar3dChart,\n ScatterChart,\n MapChart,\n PieChart,\n Pie3dChart,\n RoseChart,\n RadarChart,\n CommonChart,\n SequenceChart,\n HistogramChart,\n Histogram3dChart,\n CircularProgressChart,\n WordCloudChart,\n WordCloud3dChart,\n FunnelChart,\n Funnel3dChart,\n LinearProgressChart,\n RangeColumnChart,\n RangeColumn3dChart,\n SunburstChart,\n CirclePackingChart,\n TreemapChart,\n WaterfallChart,\n BoxPlotChart,\n SankeyChart,\n GaugeChart,\n RangeAreaChart,\n HeatmapChart\n} from './chart';\n\nimport {\n CartesianLinearAxis,\n CartesianBandAxis,\n CartesianTimeAxis,\n PolarBandAxis,\n CartesianLogAxis,\n CartesianSymlogAxis,\n PolarLinearAxis,\n DiscreteLegend,\n ContinuousLegend,\n Tooltip,\n CartesianCrossHair,\n PolarCrossHair,\n DataZoom,\n ScrollBar,\n Indicator,\n GeoCoordinate,\n MarkLine,\n Title,\n MarkArea,\n Player,\n Label,\n MarkPoint,\n Brush,\n CustomMark,\n MapLabelComponent,\n TotalLabel\n} from './component';\nimport { GridLayout, Layout3d } from './layout';\nimport { loadPoptip } from '@visactor/vrender-components';\n\n// 装载 poptip\nloadPoptip();\n\n// charts\nVChart.useChart([\n AreaChart,\n LineChart,\n BarChart,\n Bar3dChart,\n ScatterChart,\n MapChart,\n PieChart,\n Pie3dChart,\n RoseChart,\n RadarChart,\n CommonChart,\n SequenceChart,\n HistogramChart,\n Histogram3dChart,\n CircularProgressChart,\n WordCloudChart,\n WordCloud3dChart,\n FunnelChart,\n Funnel3dChart,\n LinearProgressChart,\n RangeColumnChart,\n RangeColumn3dChart,\n SunburstChart,\n CirclePackingChart,\n TreemapChart,\n WaterfallChart,\n BoxPlotChart,\n SankeyChart,\n GaugeChart,\n RangeAreaChart,\n HeatmapChart\n]);\n\n// components\nVChart.useComponent([\n CartesianLinearAxis,\n CartesianBandAxis,\n CartesianTimeAxis,\n CartesianLogAxis,\n CartesianSymlogAxis,\n PolarBandAxis,\n PolarLinearAxis,\n DiscreteLegend,\n ContinuousLegend,\n Tooltip,\n CartesianCrossHair,\n PolarCrossHair,\n DataZoom,\n ScrollBar,\n Indicator,\n GeoCoordinate,\n MarkLine,\n Title,\n MarkArea,\n Player,\n TotalLabel,\n Label,\n MarkPoint,\n Brush,\n CustomMark,\n MapLabelComponent\n]);\n\n// layout\nFactory.registerLayout('grid', GridLayout as any);\nFactory.registerLayout('layout3d', Layout3d as any);\n\nexport { VChart };\n"]}
@@ -54,6 +54,7 @@ export declare class BaseChart extends CompilableBase implements IChart {
54
54
  created(): void;
55
55
  transformSpec(spec: any): void;
56
56
  init(options?: any): void;
57
+ reDataFlow(): void;
57
58
  onResize(width: number, height: number): void;
58
59
  updateViewBox(viewBox: IBoundsLike, reLayout: boolean): void;
59
60
  createBackground(bg: IChartSpec['background']): void;
@@ -68,6 +69,10 @@ export declare class BaseChart extends CompilableBase implements IChart {
68
69
  initComponent(): void;
69
70
  getAllComponents(): IComponent[];
70
71
  getAllModels(): IModel[];
72
+ getModelInFilter(filter: string | {
73
+ type: string;
74
+ index: number;
75
+ } | ((model: IModel) => boolean)): IModel;
71
76
  createLayout(): void;
72
77
  setLayout(layout: LayoutCallBack): void;
73
78
  private _initLayoutFunc;