@visactor/vchart-extension 1.13.22 → 1.13.23-alpha.0

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 (369) hide show
  1. package/build/index.js +14540 -0
  2. package/build/index.min.js +15 -0
  3. package/cjs/charts/compare-sankey/compare-sankey-sub-data.d.ts +21 -0
  4. package/cjs/charts/compare-sankey/compare-sankey-sub-data.js +118 -0
  5. package/cjs/charts/compare-sankey/compare-sankey-sub-data.js.map +1 -0
  6. package/cjs/charts/compare-sankey/compare-sankey-sub-nodes.d.ts +2 -0
  7. package/cjs/charts/compare-sankey/compare-sankey-sub-nodes.js +21 -0
  8. package/cjs/charts/compare-sankey/compare-sankey-sub-nodes.js.map +1 -0
  9. package/cjs/charts/compare-sankey/compare-sankey-transformer.d.ts +7 -0
  10. package/cjs/charts/compare-sankey/compare-sankey-transformer.js +25 -0
  11. package/cjs/charts/compare-sankey/compare-sankey-transformer.js.map +1 -0
  12. package/cjs/charts/compare-sankey/compare-sankey.d.ts +46 -0
  13. package/cjs/charts/compare-sankey/compare-sankey.js +202 -0
  14. package/cjs/charts/compare-sankey/compare-sankey.js.map +1 -0
  15. package/cjs/charts/compare-sankey/index.d.ts +2 -0
  16. package/cjs/charts/compare-sankey/index.js +21 -0
  17. package/cjs/charts/compare-sankey/index.js.map +1 -0
  18. package/cjs/charts/compare-sankey/interface.d.ts +24 -0
  19. package/cjs/charts/compare-sankey/interface.js +6 -0
  20. package/cjs/charts/compare-sankey/interface.js.map +1 -0
  21. package/cjs/charts/compare-sankey/utils.d.ts +9 -0
  22. package/cjs/charts/compare-sankey/utils.js +48 -0
  23. package/cjs/charts/compare-sankey/utils.js.map +1 -0
  24. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-data.d.ts +8 -0
  25. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-data.js +85 -0
  26. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-data.js.map +1 -0
  27. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-transformer.d.ts +7 -0
  28. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-transformer.js +25 -0
  29. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-transformer.js.map +1 -0
  30. package/cjs/charts/compare-sankey-diff/compare-sankey-diff.d.ts +34 -0
  31. package/cjs/charts/compare-sankey-diff/compare-sankey-diff.js +98 -0
  32. package/cjs/charts/compare-sankey-diff/compare-sankey-diff.js.map +1 -0
  33. package/cjs/charts/compare-sankey-diff/index.d.ts +2 -0
  34. package/cjs/charts/compare-sankey-diff/index.js +21 -0
  35. package/cjs/charts/compare-sankey-diff/index.js.map +1 -0
  36. package/cjs/charts/compare-sankey-diff/interface.d.ts +24 -0
  37. package/cjs/charts/compare-sankey-diff/interface.js +5 -0
  38. package/cjs/charts/compare-sankey-diff/interface.js.map +1 -0
  39. package/cjs/charts/conversion-funnel/arrow-data-transform.d.ts +24 -0
  40. package/cjs/charts/conversion-funnel/arrow-data-transform.js +99 -0
  41. package/cjs/charts/conversion-funnel/arrow-data-transform.js.map +1 -0
  42. package/cjs/charts/conversion-funnel/conversion-funnel-transformer.d.ts +7 -0
  43. package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js +196 -0
  44. package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -0
  45. package/cjs/charts/conversion-funnel/conversion-funnel.d.ts +40 -0
  46. package/cjs/charts/conversion-funnel/conversion-funnel.js +78 -0
  47. package/cjs/charts/conversion-funnel/conversion-funnel.js.map +1 -0
  48. package/cjs/charts/conversion-funnel/index.d.ts +2 -0
  49. package/cjs/charts/conversion-funnel/index.js +21 -0
  50. package/cjs/charts/conversion-funnel/index.js.map +1 -0
  51. package/cjs/charts/conversion-funnel/interface.d.ts +35 -0
  52. package/cjs/charts/conversion-funnel/interface.js +6 -0
  53. package/cjs/charts/conversion-funnel/interface.js.map +1 -0
  54. package/cjs/charts/conversion-funnel/util.d.ts +3 -0
  55. package/cjs/charts/conversion-funnel/util.js +17 -0
  56. package/cjs/charts/conversion-funnel/util.js.map +1 -0
  57. package/cjs/charts/ranking-bar/interface.d.ts +45 -0
  58. package/cjs/charts/ranking-bar/interface.js +6 -0
  59. package/cjs/charts/ranking-bar/interface.js.map +1 -0
  60. package/cjs/charts/ranking-bar/ranking-bar-transformer.d.ts +10 -0
  61. package/cjs/charts/ranking-bar/ranking-bar-transformer.js +291 -0
  62. package/cjs/charts/ranking-bar/ranking-bar-transformer.js.map +1 -0
  63. package/cjs/charts/ranking-bar/ranking-bar.d.ts +16 -0
  64. package/cjs/charts/ranking-bar/ranking-bar.js +34 -0
  65. package/cjs/charts/ranking-bar/ranking-bar.js.map +1 -0
  66. package/cjs/charts/ranking-list/constant.d.ts +2 -0
  67. package/cjs/charts/ranking-list/constant.js +75 -0
  68. package/cjs/charts/ranking-list/constant.js.map +1 -0
  69. package/cjs/charts/ranking-list/interface.d.ts +74 -0
  70. package/cjs/charts/ranking-list/interface.js +6 -0
  71. package/cjs/charts/ranking-list/interface.js.map +1 -0
  72. package/cjs/charts/ranking-list/ranking-list-transformer.d.ts +459 -0
  73. package/cjs/charts/ranking-list/ranking-list-transformer.js +383 -0
  74. package/cjs/charts/ranking-list/ranking-list-transformer.js.map +1 -0
  75. package/cjs/charts/ranking-list/ranking-list.d.ts +16 -0
  76. package/cjs/charts/ranking-list/ranking-list.js +34 -0
  77. package/cjs/charts/ranking-list/ranking-list.js.map +1 -0
  78. package/cjs/charts/ranking-list/utils.d.ts +7 -0
  79. package/cjs/charts/ranking-list/utils.js +51 -0
  80. package/cjs/charts/ranking-list/utils.js.map +1 -0
  81. package/cjs/charts/sequence-scatter-kde/constant.d.ts +3 -0
  82. package/cjs/charts/sequence-scatter-kde/constant.js +7 -0
  83. package/cjs/charts/sequence-scatter-kde/constant.js.map +1 -0
  84. package/cjs/charts/sequence-scatter-kde/interface.d.ts +29 -0
  85. package/cjs/charts/sequence-scatter-kde/interface.js +5 -0
  86. package/cjs/charts/sequence-scatter-kde/interface.js.map +1 -0
  87. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.d.ts +6 -0
  88. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js +142 -0
  89. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js.map +1 -0
  90. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde.d.ts +16 -0
  91. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde.js +34 -0
  92. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde.js.map +1 -0
  93. package/cjs/charts/sequence-scatter-kde/utils.d.ts +9 -0
  94. package/cjs/charts/sequence-scatter-kde/utils.js +42 -0
  95. package/cjs/charts/sequence-scatter-kde/utils.js.map +1 -0
  96. package/cjs/charts/sequence-scatter-link/interface.d.ts +59 -0
  97. package/cjs/charts/sequence-scatter-link/interface.js +6 -0
  98. package/cjs/charts/sequence-scatter-link/interface.js.map +1 -0
  99. package/cjs/charts/sequence-scatter-link/sequence-scatter-link-transformer.d.ts +6 -0
  100. package/cjs/charts/sequence-scatter-link/sequence-scatter-link-transformer.js +328 -0
  101. package/cjs/charts/sequence-scatter-link/sequence-scatter-link-transformer.js.map +1 -0
  102. package/cjs/charts/sequence-scatter-link/sequence-scatter-link.d.ts +16 -0
  103. package/cjs/charts/sequence-scatter-link/sequence-scatter-link.js +34 -0
  104. package/cjs/charts/sequence-scatter-link/sequence-scatter-link.js.map +1 -0
  105. package/cjs/charts/sequence-scatter-link/utils.d.ts +9 -0
  106. package/cjs/charts/sequence-scatter-link/utils.js +108 -0
  107. package/cjs/charts/sequence-scatter-link/utils.js.map +1 -0
  108. package/cjs/charts/sequence-scatter-pixel/constant.d.ts +3 -0
  109. package/cjs/charts/sequence-scatter-pixel/constant.js +7 -0
  110. package/cjs/charts/sequence-scatter-pixel/constant.js.map +1 -0
  111. package/cjs/charts/sequence-scatter-pixel/interface.d.ts +29 -0
  112. package/cjs/charts/sequence-scatter-pixel/interface.js +6 -0
  113. package/cjs/charts/sequence-scatter-pixel/interface.js.map +1 -0
  114. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.d.ts +4 -0
  115. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js +68 -0
  116. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js.map +1 -0
  117. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel.d.ts +16 -0
  118. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel.js +34 -0
  119. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel.js.map +1 -0
  120. package/cjs/charts/sequence-scatter-pixel/utils.d.ts +3 -0
  121. package/cjs/charts/sequence-scatter-pixel/utils.js +54 -0
  122. package/cjs/charts/sequence-scatter-pixel/utils.js.map +1 -0
  123. package/cjs/components/bar-link/bar-link.d.ts +7 -0
  124. package/cjs/components/bar-link/bar-link.js +87 -0
  125. package/cjs/components/bar-link/bar-link.js.map +1 -0
  126. package/cjs/components/bar-link/constant.d.ts +1 -0
  127. package/cjs/components/bar-link/constant.js +6 -0
  128. package/cjs/components/bar-link/constant.js.map +1 -0
  129. package/cjs/components/bar-link/index.d.ts +4 -0
  130. package/cjs/components/bar-link/index.js +49 -0
  131. package/cjs/components/bar-link/index.js.map +1 -0
  132. package/cjs/components/bar-link/type.d.ts +27 -0
  133. package/cjs/components/bar-link/type.js +6 -0
  134. package/cjs/components/bar-link/type.js.map +1 -0
  135. package/cjs/components/bar-link/util.d.ts +22 -0
  136. package/cjs/components/bar-link/util.js +183 -0
  137. package/cjs/components/bar-link/util.js.map +1 -0
  138. package/cjs/components/series-break/constant.d.ts +1 -0
  139. package/cjs/components/series-break/constant.js +6 -0
  140. package/cjs/components/series-break/constant.js.map +1 -0
  141. package/cjs/components/series-break/index.d.ts +4 -0
  142. package/cjs/components/series-break/index.js +49 -0
  143. package/cjs/components/series-break/index.js.map +1 -0
  144. package/cjs/components/series-break/series-break.d.ts +7 -0
  145. package/cjs/components/series-break/series-break.js +118 -0
  146. package/cjs/components/series-break/series-break.js.map +1 -0
  147. package/cjs/components/series-break/type.d.ts +14 -0
  148. package/cjs/components/series-break/type.js +6 -0
  149. package/cjs/components/series-break/type.js.map +1 -0
  150. package/cjs/components/series-break/util.d.ts +13 -0
  151. package/cjs/components/series-break/util.js +248 -0
  152. package/cjs/components/series-break/util.js.map +1 -0
  153. package/cjs/components/series-label/constant.d.ts +1 -0
  154. package/cjs/components/series-label/constant.js +5 -0
  155. package/cjs/components/series-label/constant.js.map +1 -0
  156. package/cjs/components/series-label/index.d.ts +3 -0
  157. package/cjs/components/series-label/index.js +49 -0
  158. package/cjs/components/series-label/index.js.map +1 -0
  159. package/cjs/components/series-label/series-label.d.ts +7 -0
  160. package/cjs/components/series-label/series-label.js +114 -0
  161. package/cjs/components/series-label/series-label.js.map +1 -0
  162. package/cjs/components/series-label/type.d.ts +41 -0
  163. package/cjs/components/series-label/type.js +6 -0
  164. package/cjs/components/series-label/type.js.map +1 -0
  165. package/cjs/components/series-label/util.d.ts +33 -0
  166. package/cjs/components/series-label/util.js +152 -0
  167. package/cjs/components/series-label/util.js.map +1 -0
  168. package/cjs/index.d.ts +11 -0
  169. package/cjs/index.js +26 -0
  170. package/cjs/index.js.map +1 -0
  171. package/cjs/type/index.d.ts +1 -0
  172. package/cjs/type/index.js +21 -0
  173. package/cjs/type/index.js.map +1 -0
  174. package/cjs/type/type.d.ts +8 -0
  175. package/cjs/type/type.js +6 -0
  176. package/cjs/type/type.js.map +1 -0
  177. package/cjs/utils/element.d.ts +7 -0
  178. package/cjs/utils/element.js +21 -0
  179. package/cjs/utils/element.js.map +1 -0
  180. package/cjs/utils/mark.d.ts +2 -0
  181. package/cjs/utils/mark.js +14 -0
  182. package/cjs/utils/mark.js.map +1 -0
  183. package/cjs/utils/math.d.ts +1 -0
  184. package/cjs/utils/math.js +10 -0
  185. package/cjs/utils/math.js.map +1 -0
  186. package/esm/charts/compare-sankey/compare-sankey-sub-data.d.ts +21 -0
  187. package/esm/charts/compare-sankey/compare-sankey-sub-data.js +106 -0
  188. package/esm/charts/compare-sankey/compare-sankey-sub-data.js.map +1 -0
  189. package/esm/charts/compare-sankey/compare-sankey-sub-nodes.d.ts +2 -0
  190. package/esm/charts/compare-sankey/compare-sankey-sub-nodes.js +13 -0
  191. package/esm/charts/compare-sankey/compare-sankey-sub-nodes.js.map +1 -0
  192. package/esm/charts/compare-sankey/compare-sankey-transformer.d.ts +7 -0
  193. package/esm/charts/compare-sankey/compare-sankey-transformer.js +17 -0
  194. package/esm/charts/compare-sankey/compare-sankey-transformer.js.map +1 -0
  195. package/esm/charts/compare-sankey/compare-sankey.d.ts +46 -0
  196. package/esm/charts/compare-sankey/compare-sankey.js +205 -0
  197. package/esm/charts/compare-sankey/compare-sankey.js.map +1 -0
  198. package/esm/charts/compare-sankey/index.d.ts +2 -0
  199. package/esm/charts/compare-sankey/index.js +4 -0
  200. package/esm/charts/compare-sankey/index.js.map +1 -0
  201. package/esm/charts/compare-sankey/interface.d.ts +24 -0
  202. package/esm/charts/compare-sankey/interface.js +2 -0
  203. package/esm/charts/compare-sankey/interface.js.map +1 -0
  204. package/esm/charts/compare-sankey/utils.d.ts +9 -0
  205. package/esm/charts/compare-sankey/utils.js +39 -0
  206. package/esm/charts/compare-sankey/utils.js.map +1 -0
  207. package/esm/charts/compare-sankey-diff/compare-sankey-diff-data.d.ts +8 -0
  208. package/esm/charts/compare-sankey-diff/compare-sankey-diff-data.js +77 -0
  209. package/esm/charts/compare-sankey-diff/compare-sankey-diff-data.js.map +1 -0
  210. package/esm/charts/compare-sankey-diff/compare-sankey-diff-transformer.d.ts +7 -0
  211. package/esm/charts/compare-sankey-diff/compare-sankey-diff-transformer.js +17 -0
  212. package/esm/charts/compare-sankey-diff/compare-sankey-diff-transformer.js.map +1 -0
  213. package/esm/charts/compare-sankey-diff/compare-sankey-diff.d.ts +34 -0
  214. package/esm/charts/compare-sankey-diff/compare-sankey-diff.js +97 -0
  215. package/esm/charts/compare-sankey-diff/compare-sankey-diff.js.map +1 -0
  216. package/esm/charts/compare-sankey-diff/index.d.ts +2 -0
  217. package/esm/charts/compare-sankey-diff/index.js +4 -0
  218. package/esm/charts/compare-sankey-diff/index.js.map +1 -0
  219. package/esm/charts/compare-sankey-diff/interface.d.ts +24 -0
  220. package/esm/charts/compare-sankey-diff/interface.js +1 -0
  221. package/esm/charts/compare-sankey-diff/interface.js.map +1 -0
  222. package/esm/charts/conversion-funnel/arrow-data-transform.d.ts +24 -0
  223. package/esm/charts/conversion-funnel/arrow-data-transform.js +94 -0
  224. package/esm/charts/conversion-funnel/arrow-data-transform.js.map +1 -0
  225. package/esm/charts/conversion-funnel/conversion-funnel-transformer.d.ts +7 -0
  226. package/esm/charts/conversion-funnel/conversion-funnel-transformer.js +192 -0
  227. package/esm/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -0
  228. package/esm/charts/conversion-funnel/conversion-funnel.d.ts +40 -0
  229. package/esm/charts/conversion-funnel/conversion-funnel.js +81 -0
  230. package/esm/charts/conversion-funnel/conversion-funnel.js.map +1 -0
  231. package/esm/charts/conversion-funnel/index.d.ts +2 -0
  232. package/esm/charts/conversion-funnel/index.js +4 -0
  233. package/esm/charts/conversion-funnel/index.js.map +1 -0
  234. package/esm/charts/conversion-funnel/interface.d.ts +35 -0
  235. package/esm/charts/conversion-funnel/interface.js +2 -0
  236. package/esm/charts/conversion-funnel/interface.js.map +1 -0
  237. package/esm/charts/conversion-funnel/util.d.ts +3 -0
  238. package/esm/charts/conversion-funnel/util.js +10 -0
  239. package/esm/charts/conversion-funnel/util.js.map +1 -0
  240. package/esm/charts/ranking-bar/interface.d.ts +45 -0
  241. package/esm/charts/ranking-bar/interface.js +2 -0
  242. package/esm/charts/ranking-bar/interface.js.map +1 -0
  243. package/esm/charts/ranking-bar/ranking-bar-transformer.d.ts +10 -0
  244. package/esm/charts/ranking-bar/ranking-bar-transformer.js +285 -0
  245. package/esm/charts/ranking-bar/ranking-bar-transformer.js.map +1 -0
  246. package/esm/charts/ranking-bar/ranking-bar.d.ts +16 -0
  247. package/esm/charts/ranking-bar/ranking-bar.js +27 -0
  248. package/esm/charts/ranking-bar/ranking-bar.js.map +1 -0
  249. package/esm/charts/ranking-list/constant.d.ts +2 -0
  250. package/esm/charts/ranking-list/constant.js +69 -0
  251. package/esm/charts/ranking-list/constant.js.map +1 -0
  252. package/esm/charts/ranking-list/interface.d.ts +74 -0
  253. package/esm/charts/ranking-list/interface.js +2 -0
  254. package/esm/charts/ranking-list/interface.js.map +1 -0
  255. package/esm/charts/ranking-list/ranking-list-transformer.d.ts +459 -0
  256. package/esm/charts/ranking-list/ranking-list-transformer.js +383 -0
  257. package/esm/charts/ranking-list/ranking-list-transformer.js.map +1 -0
  258. package/esm/charts/ranking-list/ranking-list.d.ts +16 -0
  259. package/esm/charts/ranking-list/ranking-list.js +27 -0
  260. package/esm/charts/ranking-list/ranking-list.js.map +1 -0
  261. package/esm/charts/ranking-list/utils.d.ts +7 -0
  262. package/esm/charts/ranking-list/utils.js +41 -0
  263. package/esm/charts/ranking-list/utils.js.map +1 -0
  264. package/esm/charts/sequence-scatter-kde/constant.d.ts +3 -0
  265. package/esm/charts/sequence-scatter-kde/constant.js +6 -0
  266. package/esm/charts/sequence-scatter-kde/constant.js.map +1 -0
  267. package/esm/charts/sequence-scatter-kde/interface.d.ts +29 -0
  268. package/esm/charts/sequence-scatter-kde/interface.js +1 -0
  269. package/esm/charts/sequence-scatter-kde/interface.js.map +1 -0
  270. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.d.ts +6 -0
  271. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js +137 -0
  272. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js.map +1 -0
  273. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde.d.ts +16 -0
  274. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde.js +28 -0
  275. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde.js.map +1 -0
  276. package/esm/charts/sequence-scatter-kde/utils.d.ts +9 -0
  277. package/esm/charts/sequence-scatter-kde/utils.js +34 -0
  278. package/esm/charts/sequence-scatter-kde/utils.js.map +1 -0
  279. package/esm/charts/sequence-scatter-link/interface.d.ts +59 -0
  280. package/esm/charts/sequence-scatter-link/interface.js +2 -0
  281. package/esm/charts/sequence-scatter-link/interface.js.map +1 -0
  282. package/esm/charts/sequence-scatter-link/sequence-scatter-link-transformer.d.ts +6 -0
  283. package/esm/charts/sequence-scatter-link/sequence-scatter-link-transformer.js +321 -0
  284. package/esm/charts/sequence-scatter-link/sequence-scatter-link-transformer.js.map +1 -0
  285. package/esm/charts/sequence-scatter-link/sequence-scatter-link.d.ts +16 -0
  286. package/esm/charts/sequence-scatter-link/sequence-scatter-link.js +28 -0
  287. package/esm/charts/sequence-scatter-link/sequence-scatter-link.js.map +1 -0
  288. package/esm/charts/sequence-scatter-link/utils.d.ts +9 -0
  289. package/esm/charts/sequence-scatter-link/utils.js +100 -0
  290. package/esm/charts/sequence-scatter-link/utils.js.map +1 -0
  291. package/esm/charts/sequence-scatter-pixel/constant.d.ts +3 -0
  292. package/esm/charts/sequence-scatter-pixel/constant.js +6 -0
  293. package/esm/charts/sequence-scatter-pixel/constant.js.map +1 -0
  294. package/esm/charts/sequence-scatter-pixel/interface.d.ts +29 -0
  295. package/esm/charts/sequence-scatter-pixel/interface.js +2 -0
  296. package/esm/charts/sequence-scatter-pixel/interface.js.map +1 -0
  297. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.d.ts +4 -0
  298. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js +64 -0
  299. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js.map +1 -0
  300. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel.d.ts +16 -0
  301. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel.js +28 -0
  302. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel.js.map +1 -0
  303. package/esm/charts/sequence-scatter-pixel/utils.d.ts +3 -0
  304. package/esm/charts/sequence-scatter-pixel/utils.js +46 -0
  305. package/esm/charts/sequence-scatter-pixel/utils.js.map +1 -0
  306. package/esm/components/bar-link/bar-link.d.ts +7 -0
  307. package/esm/components/bar-link/bar-link.js +85 -0
  308. package/esm/components/bar-link/bar-link.js.map +1 -0
  309. package/esm/components/bar-link/constant.d.ts +1 -0
  310. package/esm/components/bar-link/constant.js +2 -0
  311. package/esm/components/bar-link/constant.js.map +1 -0
  312. package/esm/components/bar-link/index.d.ts +4 -0
  313. package/esm/components/bar-link/index.js +8 -0
  314. package/esm/components/bar-link/index.js.map +1 -0
  315. package/esm/components/bar-link/type.d.ts +27 -0
  316. package/esm/components/bar-link/type.js +2 -0
  317. package/esm/components/bar-link/type.js.map +1 -0
  318. package/esm/components/bar-link/util.d.ts +22 -0
  319. package/esm/components/bar-link/util.js +178 -0
  320. package/esm/components/bar-link/util.js.map +1 -0
  321. package/esm/components/series-break/constant.d.ts +1 -0
  322. package/esm/components/series-break/constant.js +2 -0
  323. package/esm/components/series-break/constant.js.map +1 -0
  324. package/esm/components/series-break/index.d.ts +4 -0
  325. package/esm/components/series-break/index.js +8 -0
  326. package/esm/components/series-break/index.js.map +1 -0
  327. package/esm/components/series-break/series-break.d.ts +7 -0
  328. package/esm/components/series-break/series-break.js +115 -0
  329. package/esm/components/series-break/series-break.js.map +1 -0
  330. package/esm/components/series-break/type.d.ts +14 -0
  331. package/esm/components/series-break/type.js +2 -0
  332. package/esm/components/series-break/type.js.map +1 -0
  333. package/esm/components/series-break/util.d.ts +13 -0
  334. package/esm/components/series-break/util.js +244 -0
  335. package/esm/components/series-break/util.js.map +1 -0
  336. package/esm/components/series-label/constant.d.ts +1 -0
  337. package/esm/components/series-label/constant.js +1 -0
  338. package/esm/components/series-label/constant.js.map +1 -0
  339. package/esm/components/series-label/index.d.ts +3 -0
  340. package/esm/components/series-label/index.js +6 -0
  341. package/esm/components/series-label/index.js.map +1 -0
  342. package/esm/components/series-label/series-label.d.ts +7 -0
  343. package/esm/components/series-label/series-label.js +110 -0
  344. package/esm/components/series-label/series-label.js.map +1 -0
  345. package/esm/components/series-label/type.d.ts +41 -0
  346. package/esm/components/series-label/type.js +2 -0
  347. package/esm/components/series-label/type.js.map +1 -0
  348. package/esm/components/series-label/util.d.ts +33 -0
  349. package/esm/components/series-label/util.js +144 -0
  350. package/esm/components/series-label/util.js.map +1 -0
  351. package/esm/index.d.ts +11 -0
  352. package/esm/index.js +21 -0
  353. package/esm/index.js.map +1 -0
  354. package/esm/type/index.d.ts +1 -0
  355. package/esm/type/index.js +2 -0
  356. package/esm/type/index.js.map +1 -0
  357. package/esm/type/type.d.ts +8 -0
  358. package/esm/type/type.js +2 -0
  359. package/esm/type/type.js.map +1 -0
  360. package/esm/utils/element.d.ts +7 -0
  361. package/esm/utils/element.js +15 -0
  362. package/esm/utils/element.js.map +1 -0
  363. package/esm/utils/mark.d.ts +2 -0
  364. package/esm/utils/mark.js +4 -0
  365. package/esm/utils/mark.js.map +1 -0
  366. package/esm/utils/math.d.ts +1 -0
  367. package/esm/utils/math.js +4 -0
  368. package/esm/utils/math.js.map +1 -0
  369. package/package.json +3 -3
@@ -0,0 +1,81 @@
1
+ import { VChart, FunnelChart, PREFIX, FunnelSeries } from "@visactor/vchart";
2
+
3
+ import { DataView } from "@visactor/vdataset";
4
+
5
+ import { ConversionFunnelChartSpecTransformer } from "./conversion-funnel-transformer";
6
+
7
+ import { conversionArrowTransform } from "./arrow-data-transform";
8
+
9
+ export class ConversionFunnelChart extends FunnelChart {
10
+ constructor() {
11
+ super(...arguments), this.type = "conversionFunnel", this.transformerConstructor = ConversionFunnelChartSpecTransformer;
12
+ }
13
+ }
14
+
15
+ ConversionFunnelChart.type = "conversionFunnel", ConversionFunnelChart.transformerConstructor = ConversionFunnelChartSpecTransformer;
16
+
17
+ export class ConversionFunnelSeries extends FunnelSeries {
18
+ initData() {
19
+ var _a;
20
+ super.initData();
21
+ const {conversionArrow: conversionArrow} = this._spec;
22
+ conversionArrow && (null === (_a = conversionArrow.arrows) || void 0 === _a ? void 0 : _a.length) && (this._arrowData = new DataView(this._dataSet, {
23
+ name: `${PREFIX}_series_${this.id}_arrowData`
24
+ }), this._dataSet.getTransform("conversionArrow") || this._dataSet.registerTransform("conversionArrow", conversionArrowTransform),
25
+ this._arrowData.parse(conversionArrow).transform({
26
+ type: "conversionArrow",
27
+ options: {
28
+ categoryField: this._spec.categoryField
29
+ }
30
+ }));
31
+ }
32
+ afterCompile() {
33
+ var _a;
34
+ null === (_a = super.afterCompile) || void 0 === _a || _a.call(this);
35
+ const rightGroup = this.getMarkInName("arrowRight");
36
+ rightGroup && rightGroup.getMarks().forEach((mark => {
37
+ mark.setDataView(this._arrowData), mark.compileData(), mark.getProduct().transform([ {
38
+ type: "filter",
39
+ callback: datum => "right" === datum.position
40
+ } ]);
41
+ }));
42
+ const leftGroup = this.getMarkInName("arrowLeft");
43
+ leftGroup && leftGroup.getMarks().forEach((mark => {
44
+ mark.setDataView(this._arrowData), mark.compileData(), mark.getProduct().transform([ {
45
+ type: "filter",
46
+ callback: datum => "left" === datum.position
47
+ } ]);
48
+ }));
49
+ }
50
+ }
51
+
52
+ export const registerConversionFunnelChart = option => {
53
+ const vchartConstructor = (null == option ? void 0 : option.VChart) || VChart;
54
+ vchartConstructor && (vchartConstructor.useChart([ ConversionFunnelChart ]), vchartConstructor.useSeries([ ConversionFunnelSeries ]));
55
+ };
56
+
57
+ export const DEFAULT_ARROW_MARK_STYLE = {
58
+ cornerRadius: 4,
59
+ stroke: "black",
60
+ strokeOpacity: 1,
61
+ lineWidth: 1,
62
+ closePath: !1,
63
+ pickable: !1
64
+ };
65
+
66
+ export const DEFAULT_ARROW_SYMBOL_MARK_STYLE = {
67
+ symbolType: "triangle",
68
+ size: 8,
69
+ scaleX: .7,
70
+ fill: "black"
71
+ };
72
+
73
+ export const DEFAULT_ARROW_TEXT_MARK_STYLE = {
74
+ fill: "#606773",
75
+ fontSize: 12
76
+ };
77
+
78
+ export const DEFAULT_FUNNEL_BACKGROUND_MARK_STYLE = {
79
+ fill: "#eff1f9"
80
+ };
81
+ //# sourceMappingURL=conversion-funnel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["charts/conversion-funnel/conversion-funnel.ts"],"names":[],"mappings":"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","file":"conversion-funnel.js","sourcesContent":["import type { IConversionFunnelChartSpecBase, IConversionFunnelSeriesSpecBase } from './interface';\nimport { VChart, FunnelChart, PREFIX, FunnelSeries, GroupMark } from '@visactor/vchart';\nimport { DataView } from '@visactor/vdataset';\nimport { ConversionFunnelChartSpecTransformer } from './conversion-funnel-transformer';\nimport { conversionArrowTransform } from './arrow-data-transform';\n\nexport class ConversionFunnelChart extends FunnelChart<IConversionFunnelChartSpecBase> {\n type = 'conversionFunnel';\n static type = 'conversionFunnel';\n\n declare _spec: IConversionFunnelChartSpecBase;\n\n static readonly transformerConstructor = ConversionFunnelChartSpecTransformer;\n readonly transformerConstructor = ConversionFunnelChartSpecTransformer;\n}\n\nexport class ConversionFunnelSeries extends FunnelSeries<IConversionFunnelSeriesSpecBase> {\n protected _arrowData?: DataView;\n\n initData() {\n super.initData();\n const { conversionArrow } = this._spec;\n if (conversionArrow && conversionArrow.arrows?.length) {\n this._arrowData = new DataView(this._dataSet, { name: `${PREFIX}_series_${this.id}_arrowData` });\n if (!this._dataSet.getTransform('conversionArrow')) {\n this._dataSet.registerTransform('conversionArrow', conversionArrowTransform);\n }\n this._arrowData.parse(conversionArrow).transform({\n type: 'conversionArrow',\n options: {\n categoryField: this._spec.categoryField\n }\n });\n }\n }\n\n afterCompile() {\n // @ts-ignore\n super.afterCompile?.();\n const rightGroup = this.getMarkInName('arrowRight') as unknown as GroupMark;\n if (rightGroup) {\n rightGroup.getMarks().forEach(mark => {\n mark.setDataView(this._arrowData);\n mark.compileData();\n mark.getProduct().transform([\n {\n type: 'filter',\n callback: datum => datum.position === 'right'\n }\n ]);\n });\n }\n const leftGroup = this.getMarkInName('arrowLeft') as unknown as GroupMark;\n if (leftGroup) {\n leftGroup.getMarks().forEach(mark => {\n mark.setDataView(this._arrowData);\n mark.compileData();\n mark.getProduct().transform([\n {\n type: 'filter',\n callback: datum => datum.position === 'left'\n }\n ]);\n });\n }\n }\n}\n\nexport const registerConversionFunnelChart = (option?: { VChart?: typeof VChart }) => {\n const vchartConstructor = option?.VChart || VChart;\n if (vchartConstructor) {\n vchartConstructor.useChart([ConversionFunnelChart]);\n vchartConstructor.useSeries([ConversionFunnelSeries]);\n }\n};\n\nexport const DEFAULT_ARROW_MARK_STYLE = {\n cornerRadius: 4,\n stroke: 'black',\n strokeOpacity: 1,\n lineWidth: 1,\n closePath: false,\n pickable: false\n};\n\nexport const DEFAULT_ARROW_SYMBOL_MARK_STYLE = {\n symbolType: 'triangle',\n size: 8,\n scaleX: 0.7,\n fill: 'black'\n};\n\nexport const DEFAULT_ARROW_TEXT_MARK_STYLE = {\n fill: '#606773',\n fontSize: 12\n};\n\nexport const DEFAULT_FUNNEL_BACKGROUND_MARK_STYLE = {\n fill: '#eff1f9'\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './interface';
2
+ export * from './conversion-funnel';
@@ -0,0 +1,4 @@
1
+ export * from "./interface";
2
+
3
+ export * from "./conversion-funnel";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["charts/conversion-funnel/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC","file":"index.js","sourcesContent":["export * from './interface';\nexport * from './conversion-funnel';\n"]}
@@ -0,0 +1,35 @@
1
+ import type { IFormatMethod, IMarkSpec, IPathMarkSpec, IFunnelChartSpec, ISymbolMarkSpec, ITextMarkSpec, IFunnelSeriesSpec, IRectMarkSpec } from '@visactor/vchart';
2
+ export interface Arrow {
3
+ from: number;
4
+ to: number;
5
+ position?: 'left' | 'right';
6
+ distance?: number;
7
+ text?: string;
8
+ }
9
+ export interface IConversionFunnelSpec {
10
+ conversionArrow?: {
11
+ arrows?: Arrow[];
12
+ margin?: number;
13
+ line?: IMarkSpec<Omit<IPathMarkSpec, 'points' | 'fill'>>;
14
+ symbol?: IMarkSpec<ISymbolMarkSpec>;
15
+ text?: IMarkSpec<ITextMarkSpec> & {
16
+ formatMethod?: IFormatMethod<[text: string, params?: {
17
+ from: any;
18
+ to: any;
19
+ arrow: Arrow;
20
+ }]>;
21
+ textMargin?: number;
22
+ };
23
+ };
24
+ funnelBackground?: IMarkSpec<IRectMarkSpec>;
25
+ }
26
+ export interface IConversionFunnelSeriesSpecBase extends IFunnelSeriesSpec, IConversionFunnelSpec {
27
+ }
28
+ export interface IConversionFunnelChartSpecBase extends IFunnelChartSpec, IConversionFunnelSpec {
29
+ }
30
+ export interface IConversionFunnelSeriesSpec extends Omit<IConversionFunnelSeriesSpecBase, 'type' | 'series'> {
31
+ type: 'conversionFunnel';
32
+ }
33
+ export interface IConversionFunnelChartSpec extends Omit<IConversionFunnelChartSpecBase, 'type' | 'series'> {
34
+ type: 'conversionFunnel';
35
+ }
@@ -0,0 +1,2 @@
1
+ export { };
2
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["charts/conversion-funnel/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type {\n IFormatMethod,\n IMarkSpec,\n IPathMarkSpec,\n IFunnelChartSpec,\n ISymbolMarkSpec,\n ITextMarkSpec,\n IFunnelSeriesSpec,\n IRectMarkSpec\n} from '@visactor/vchart';\n\nexport interface Arrow {\n /**\n * from 节点索引\n */\n from: number;\n /**\n * to 节点索引\n */\n to: number;\n /**\n * 箭头位置\n */\n position?: 'left' | 'right';\n /**\n * 箭头与柱子之间的距离\n */\n distance?: number;\n /**\n * 箭头文字\n */\n text?: string;\n}\n\nexport interface IConversionFunnelSpec {\n /**\n * 转化率箭头配置\n */\n conversionArrow?: {\n /**\n * 箭头配置\n */\n arrows?: Arrow[];\n /**\n * 箭头与柱子之间的距离\n * @default 12\n */\n margin?: number;\n /**\n * 箭头线配置\n */\n line?: IMarkSpec<Omit<IPathMarkSpec, 'points' | 'fill'>>;\n /**\n * 箭头符号配置\n */\n symbol?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 标签配置\n */\n text?: IMarkSpec<ITextMarkSpec> & {\n /**\n * 箭头文字格式化方法\n */\n formatMethod?: IFormatMethod<[text: string, params?: { from: any; to: any; arrow: Arrow }]>;\n /**\n * 箭头文本与柱子之间的距离\n * @default 4\n */\n textMargin?: number;\n };\n };\n /**\n * 漏斗层背景配置\n */\n funnelBackground?: IMarkSpec<IRectMarkSpec>;\n}\n\nexport interface IConversionFunnelSeriesSpecBase extends IFunnelSeriesSpec, IConversionFunnelSpec {}\n\nexport interface IConversionFunnelChartSpecBase extends IFunnelChartSpec, IConversionFunnelSpec {}\n\nexport interface IConversionFunnelSeriesSpec extends Omit<IConversionFunnelSeriesSpecBase, 'type' | 'series'> {\n type: 'conversionFunnel';\n}\n\nexport interface IConversionFunnelChartSpec extends Omit<IConversionFunnelChartSpecBase, 'type' | 'series'> {\n type: 'conversionFunnel';\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { ParsedArrow } from './conversion-funnel-transformer';
2
+ export declare function isArrowCross(arrow1: ParsedArrow, arrow2: ParsedArrow): boolean;
3
+ export declare function isSameArrow(arrow1: ParsedArrow, arrow2: ParsedArrow): boolean;
@@ -0,0 +1,10 @@
1
+ export function isArrowCross(arrow1, arrow2) {
2
+ const {from: from1, to: to1} = arrow1, {from: from2, to: to2} = arrow2;
3
+ return to1 > from2 && to2 > from1;
4
+ }
5
+
6
+ export function isSameArrow(arrow1, arrow2) {
7
+ const {from: from1, to: to1} = arrow1, {from: from2, to: to2} = arrow2;
8
+ return from1 === from2 && to1 === to2;
9
+ }
10
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["charts/conversion-funnel/util.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,MAAmB,EAAE,MAAmB;IACnE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IACxC,OAAO,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,MAAmB;IAClE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IACxC,OAAO,KAAK,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,CAAC;AACxC,CAAC","file":"util.js","sourcesContent":["import type { ParsedArrow } from './conversion-funnel-transformer';\n\nexport function isArrowCross(arrow1: ParsedArrow, arrow2: ParsedArrow) {\n const { from: from1, to: to1 } = arrow1;\n const { from: from2, to: to2 } = arrow2;\n return to1 > from2 && to2 > from1;\n}\n\nexport function isSameArrow(arrow1: ParsedArrow, arrow2: ParsedArrow) {\n const { from: from1, to: to1 } = arrow1;\n const { from: from2, to: to2 } = arrow2;\n return from1 === from2 && to1 === to2;\n}\n"]}
@@ -0,0 +1,45 @@
1
+ import type { ILineGraphicAttribute, ITextGraphicAttribute } from '@visactor/vrender-core';
2
+ export type IRankingBarData = any[];
3
+ export interface IPlayConfig {
4
+ interval?: number;
5
+ }
6
+ export interface IRankingBarSpec extends IPlayConfig {
7
+ type: string;
8
+ data: IRankingBarData;
9
+ timeField: string;
10
+ xField: string;
11
+ yField: string;
12
+ topN?: number;
13
+ bar?: {
14
+ padding?: number;
15
+ cornerRadius?: number;
16
+ };
17
+ color?: Record<string, string>;
18
+ icon?: Record<string, string>;
19
+ iconPosition?: 'bar-end' | 'bar-start' | 'axis';
20
+ iconShape?: 'circle' | 'rect';
21
+ background?: string;
22
+ label?: {
23
+ visible?: boolean;
24
+ style?: ITextGraphicAttribute;
25
+ };
26
+ nameLabel?: ITextGraphicAttribute & {
27
+ visible?: boolean;
28
+ position?: 'bar-end' | 'bar-start';
29
+ style?: ITextGraphicAttribute;
30
+ };
31
+ timeLabel?: {
32
+ visible?: boolean;
33
+ style?: ITextGraphicAttribute;
34
+ };
35
+ xAxis?: {
36
+ label?: ITextGraphicAttribute;
37
+ domainLine?: ILineGraphicAttribute;
38
+ grid?: ILineGraphicAttribute;
39
+ };
40
+ yAxis?: {
41
+ label?: ITextGraphicAttribute;
42
+ domainLine?: ILineGraphicAttribute;
43
+ grid?: ILineGraphicAttribute;
44
+ };
45
+ }
@@ -0,0 +1,2 @@
1
+ export { };
2
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["charts/ranking-bar/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ILineGraphicAttribute, ITextGraphicAttribute } from '@visactor/vrender-core';\n\nexport type IRankingBarData = any[];\n\nexport interface IPlayConfig {\n interval?: number; // 单位毫秒\n}\n\nexport interface IRankingBarSpec extends IPlayConfig {\n type: string;\n data: IRankingBarData;\n\n timeField: string;\n xField: string;\n yField: string;\n\n topN?: number;\n\n bar?: {\n padding?: number;\n cornerRadius?: number;\n };\n\n color?: Record<string, string>;\n\n icon?: Record<string, string>;\n\n iconPosition?: 'bar-end' | 'bar-start' | 'axis';\n\n iconShape?: 'circle' | 'rect';\n\n background?: string;\n\n label?: {\n visible?: boolean;\n style?: ITextGraphicAttribute;\n };\n\n nameLabel?: ITextGraphicAttribute & {\n visible?: boolean;\n position?: 'bar-end' | 'bar-start';\n style?: ITextGraphicAttribute;\n };\n\n timeLabel?: {\n visible?: boolean;\n style?: ITextGraphicAttribute;\n };\n\n xAxis?: {\n label?: ITextGraphicAttribute;\n domainLine?: ILineGraphicAttribute;\n grid?: ILineGraphicAttribute;\n };\n\n yAxis?: {\n label?: ITextGraphicAttribute;\n domainLine?: ILineGraphicAttribute;\n grid?: ILineGraphicAttribute;\n };\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import type { IRankingBarSpec } from './interface';
2
+ import type { ICommonChartSpec } from '@visactor/vchart';
3
+ import { BaseChartSpecTransformer } from '@visactor/vchart';
4
+ export declare class RankingBarChartSpecTransformer<T extends ICommonChartSpec> extends BaseChartSpecTransformer<any> {
5
+ transformSpec(spec: T): void;
6
+ }
7
+ export declare function processData(spec: IRankingBarSpec): {
8
+ timeData: Map<any, any>;
9
+ timeNodes: string[];
10
+ };
@@ -0,0 +1,285 @@
1
+ import { BaseChartSpecTransformer } from "@visactor/vchart";
2
+
3
+ import { isValid } from "@visactor/vutils";
4
+
5
+ export class RankingBarChartSpecTransformer extends BaseChartSpecTransformer {
6
+ transformSpec(spec) {
7
+ const {timeData: timeData, timeNodes: timeNodes} = processData(spec), {interval: userInterval, xField: xField, yField: yField, color: color, icon: icon, iconPosition: iconPosition, iconShape: iconShape, timeLabel: timeLabel, label: label, nameLabel: nameLabel, xAxis: xAxis, yAxis: yAxis} = spec, interval = userInterval || 1e3, exchangeDuration = Math.min(interval, 500);
8
+ if (spec.type = "common", spec.data = [ {
9
+ id: "timeData",
10
+ values: timeData.get(timeNodes[0])
11
+ }, {
12
+ id: "time",
13
+ values: [ {
14
+ time: timeNodes[0]
15
+ } ]
16
+ } ], spec.color = {
17
+ specified: Object.assign({}, color)
18
+ }, spec.region = [ {
19
+ clip: !0
20
+ } ], spec.series = [ {
21
+ type: "bar",
22
+ id: "ranking-bar",
23
+ dataId: "timeData",
24
+ direction: "horizontal",
25
+ yField: yField,
26
+ xField: xField,
27
+ seriesField: yField,
28
+ extensionMark: [],
29
+ label: labelSpec(label, Object.assign(Object.assign({}, nameLabel), {
30
+ yField: yField
31
+ }))
32
+ } ], spec.axes = axisSpec(xAxis, yAxis), spec.player = {
33
+ type: "continuous",
34
+ auto: !0,
35
+ loop: !1,
36
+ interval: interval,
37
+ specs: timeNodes.map((time => ({
38
+ data: [ {
39
+ id: "timeData",
40
+ values: timeData.get(time)
41
+ }, {
42
+ id: "time",
43
+ values: [ {
44
+ time: time
45
+ } ]
46
+ } ]
47
+ })))
48
+ }, spec.tooltip = {
49
+ visible: !1
50
+ }, spec.customMark = [], transformAnimationSpec(spec, {
51
+ interval: interval,
52
+ exchangeDuration: exchangeDuration
53
+ }), timeLabel && !1 === timeLabel.visible || spec.customMark.push(timeLabelSpec(timeLabel.style)),
54
+ icon) {
55
+ const icon = iconSpec(iconPosition, iconShape, {
56
+ interval: interval,
57
+ exchangeDuration: exchangeDuration
58
+ });
59
+ spec.series[0].extensionMark.push(icon);
60
+ }
61
+ super.transformSpec(spec);
62
+ }
63
+ }
64
+
65
+ export function processData(spec) {
66
+ const {xField: xField, yField: yField, timeField: timeField, data: data, topN: topN = 10, icon: icon} = spec, timeNodes = new Set, timeData = new Map;
67
+ return data.sort(((d1, d2) => Number(d2[xField]) - Number(d1[xField]))), data.forEach((d => {
68
+ const time = d[timeField];
69
+ isValid(time) && timeNodes.add(time), timeData.has(time) || timeData.set(time, []);
70
+ const currentData = timeData.get(time);
71
+ if (currentData.length < topN) {
72
+ const _d = Object.assign({}, d);
73
+ icon && icon[_d[yField]] && (_d.icon = icon[_d[yField]]), currentData.push(_d);
74
+ }
75
+ })), {
76
+ timeData: timeData,
77
+ timeNodes: Array.from(timeNodes).sort()
78
+ };
79
+ }
80
+
81
+ function transformAnimationSpec(spec, {interval: interval, exchangeDuration: exchangeDuration}) {
82
+ spec.animationAppear = !1, spec.animationUpdate = {
83
+ bar: [ {
84
+ type: "update",
85
+ options: {
86
+ excludeChannels: [ "y" ]
87
+ },
88
+ easing: "linear",
89
+ duration: interval
90
+ }, {
91
+ channel: [ "y" ],
92
+ easing: "circInOut",
93
+ duration: exchangeDuration
94
+ } ],
95
+ axis: {
96
+ duration: interval,
97
+ easing: "linear"
98
+ }
99
+ }, spec.animationEnter = {
100
+ bar: [ {
101
+ type: "moveIn",
102
+ duration: exchangeDuration,
103
+ easing: "cubicInOut",
104
+ options: {
105
+ direction: "y",
106
+ orient: "negative",
107
+ point: (datum, element, param) => ({
108
+ y: param.groupHeight + element.getBounds().height()
109
+ })
110
+ }
111
+ } ]
112
+ }, spec.animationExit = {
113
+ bar: [ {
114
+ type: "moveOut",
115
+ duration: exchangeDuration,
116
+ easing: "cubicInOut",
117
+ options: {
118
+ direction: "y",
119
+ orient: "negative"
120
+ }
121
+ } ]
122
+ };
123
+ }
124
+
125
+ function labelSpec(label = {}, nameLabel) {
126
+ var _a, _b, _c, _e;
127
+ const spec = [];
128
+ return !1 !== label.visible && spec.push({
129
+ visible: !0,
130
+ overlap: !1,
131
+ style: Object.assign({
132
+ fill: "rgb(64, 64, 64)"
133
+ }, label.style),
134
+ smartInvert: {
135
+ fillStrategy: (null === (_a = label.style) || void 0 === _a ? void 0 : _a.fill) ? "null" : void 0,
136
+ strokeStrategy: (null === (_b = label.style) || void 0 === _b ? void 0 : _b.stroke) ? "null" : void 0
137
+ }
138
+ }), nameLabel.visible && spec.push({
139
+ visible: !0,
140
+ overlap: !1,
141
+ style: Object.assign({}, nameLabel.style),
142
+ smartInvert: {
143
+ fillStrategy: (null === (_c = nameLabel.style) || void 0 === _c ? void 0 : _c.fill) ? "null" : void 0,
144
+ strokeStrategy: (null === (_e = nameLabel.style) || void 0 === _e ? void 0 : _e.stroke) ? "null" : void 0
145
+ },
146
+ position: "bar-end" === nameLabel.position ? "inside-right" : "inside-left",
147
+ formatter: `{${nameLabel.yField}}`
148
+ }), spec;
149
+ }
150
+
151
+ function axisSpec(xAxis = {}, yAxis = {}) {
152
+ const leftAxis = {
153
+ orient: "left",
154
+ type: "band",
155
+ inverse: !0,
156
+ label: {
157
+ style: yAxis.label
158
+ },
159
+ domainLine: {
160
+ style: yAxis.domainLine
161
+ },
162
+ grid: {
163
+ style: yAxis.grid
164
+ }
165
+ }, bottomAxis = {
166
+ orient: "bottom",
167
+ type: "linear",
168
+ nice: !1,
169
+ animation: !0,
170
+ label: {
171
+ style: xAxis.label
172
+ },
173
+ domainLine: {
174
+ style: xAxis.domainLine
175
+ },
176
+ grid: {
177
+ style: xAxis.grid
178
+ },
179
+ innerOffset: {
180
+ right: "10%"
181
+ }
182
+ };
183
+ return xAxis.label && (bottomAxis.label = xAxis.label), [ leftAxis, bottomAxis ];
184
+ }
185
+
186
+ function timeLabelSpec(textStyle = {}) {
187
+ return {
188
+ type: "text",
189
+ dataId: "time",
190
+ style: Object.assign({
191
+ textBaseline: "bottom",
192
+ fontSize: 200,
193
+ textAlign: "end",
194
+ fontWeight: 600,
195
+ text: datum => datum.time,
196
+ x: (datum, ctx) => {
197
+ var _a;
198
+ return (null === (_a = ctx.vchart.getChart().getCanvasRect()) || void 0 === _a ? void 0 : _a.width) - 50;
199
+ },
200
+ y: (datum, ctx) => {
201
+ var _a;
202
+ return (null === (_a = ctx.vchart.getChart().getCanvasRect()) || void 0 === _a ? void 0 : _a.height) - 80;
203
+ },
204
+ fill: "grey",
205
+ fillOpacity: .5
206
+ }, textStyle)
207
+ };
208
+ }
209
+
210
+ function iconSpec(iconPosition = "bar-end", iconShape = "circle", {interval: interval, exchangeDuration: exchangeDuration}) {
211
+ return {
212
+ type: "symbol",
213
+ dataId: "timeData",
214
+ style: {
215
+ symbolType: iconShape,
216
+ stroke: "white",
217
+ lineWidth: 1,
218
+ size: (data, ctx) => {
219
+ var _a, _b;
220
+ const vchart = ctx.vchart, series = null === (_a = vchart.getChart()) || void 0 === _a ? void 0 : _a.getSeriesInIndex(0)[0];
221
+ if (vchart && series) {
222
+ const bandwidth = null !== (_b = series.getYAxisHelper().getBandwidth(0)) && void 0 !== _b ? _b : 0;
223
+ return Math.max(bandwidth - 4, 0);
224
+ }
225
+ return 10;
226
+ },
227
+ background: data => data.icon,
228
+ x: (data, ctx) => {
229
+ var _a, _b;
230
+ const vchart = ctx.vchart, series = null === (_a = vchart.getChart()) || void 0 === _a ? void 0 : _a.getSeriesInIndex(0)[0];
231
+ if (vchart && series) {
232
+ const bandwidth = null !== (_b = series.getYAxisHelper().getBandwidth(0)) && void 0 !== _b ? _b : 0;
233
+ return "bar-start" === iconPosition ? bandwidth / 2 : "axis" === iconPosition ? -bandwidth / 2 : series.dataToPositionX(data) - bandwidth / 2;
234
+ }
235
+ },
236
+ y: (data, ctx) => {
237
+ var _a, _b;
238
+ const vchart = ctx.vchart, series = null === (_a = vchart.getChart()) || void 0 === _a ? void 0 : _a.getSeriesInIndex(0)[0];
239
+ if (vchart && series) {
240
+ const bandwidth = null !== (_b = series.getYAxisHelper().getBandwidth(0)) && void 0 !== _b ? _b : 0;
241
+ return series.dataToPositionY(data) + bandwidth / 2;
242
+ }
243
+ },
244
+ scaleY: "rect" === iconShape ? 1.2 : 1
245
+ },
246
+ animationUpdate: customMarkUpdateAnimation(interval, exchangeDuration),
247
+ animationEnter: [ {
248
+ type: "moveIn",
249
+ duration: exchangeDuration,
250
+ easing: "cubicInOut",
251
+ options: {
252
+ direction: "y",
253
+ orient: "negative",
254
+ point: (datum, element, param) => ({
255
+ y: param.groupHeight + element.getBounds().height()
256
+ })
257
+ }
258
+ } ],
259
+ animationExit: [ {
260
+ type: "moveOut",
261
+ duration: exchangeDuration,
262
+ easing: "cubicInOut",
263
+ options: {
264
+ direction: "y",
265
+ orient: "negative"
266
+ }
267
+ } ]
268
+ };
269
+ }
270
+
271
+ function customMarkUpdateAnimation(duration, exchangeDuration) {
272
+ return [ {
273
+ duration: exchangeDuration,
274
+ easing: "cubicInOut",
275
+ channel: [ "y" ]
276
+ }, {
277
+ options: {
278
+ excludeChannels: [ "y" ]
279
+ },
280
+ channel: [ "x", "x2", "x1" ],
281
+ easing: "linear",
282
+ duration: duration
283
+ } ];
284
+ }
285
+ //# sourceMappingURL=ranking-bar-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["charts/ranking-bar/ranking-bar-transformer.ts"],"names":[],"mappings":"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","file":"ranking-bar-transformer.js","sourcesContent":["import type { IRankingBarSpec } from './interface';\nimport type { ICartesianAxisSpec, ICommonChartSpec, ILabelSpec } from '@visactor/vchart';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\nimport { BaseChartSpecTransformer } from '@visactor/vchart';\nimport { isValid } from '@visactor/vutils';\n\nexport class RankingBarChartSpecTransformer<T extends ICommonChartSpec> extends BaseChartSpecTransformer<any> {\n transformSpec(spec: T): void {\n const { timeData, timeNodes } = processData(spec as unknown as IRankingBarSpec);\n const {\n interval: userInterval,\n xField,\n yField,\n color,\n icon,\n iconPosition,\n iconShape,\n timeLabel,\n label,\n nameLabel,\n xAxis,\n yAxis\n } = spec as unknown as IRankingBarSpec;\n\n const interval = userInterval ? userInterval : 1000;\n const exchangeDuration = Math.min(interval, 500);\n\n spec.type = 'common';\n spec.data = [\n {\n id: 'timeData',\n values: timeData.get(timeNodes[0])\n },\n {\n id: 'time',\n values: [{ time: timeNodes[0] }]\n }\n ];\n\n // @ts-ignore FIXME: type definition\n spec.color = {\n specified: {\n ...color\n }\n };\n spec.region = [{ clip: true }];\n spec.series = [\n {\n type: 'bar',\n id: 'ranking-bar',\n dataId: 'timeData',\n direction: 'horizontal',\n yField,\n xField,\n seriesField: yField,\n extensionMark: [],\n label: labelSpec(label, { ...nameLabel, yField }) as any\n }\n ];\n spec.axes = axisSpec(xAxis, yAxis);\n spec.player = {\n type: 'continuous',\n auto: true,\n loop: false,\n interval,\n specs: timeNodes.map(time => ({\n data: [\n { id: 'timeData', values: timeData.get(time) },\n { id: 'time', values: [{ time }] }\n ]\n }))\n };\n spec.tooltip = { visible: false };\n spec.customMark = [];\n\n transformAnimationSpec(spec, { interval, exchangeDuration });\n\n if (!timeLabel || timeLabel.visible !== false) {\n spec.customMark.push(timeLabelSpec(timeLabel.style) as any);\n }\n if (icon) {\n const icon = iconSpec(iconPosition, iconShape, { interval, exchangeDuration });\n spec.series[0].extensionMark.push(icon as any);\n }\n\n super.transformSpec(spec);\n }\n}\n\nexport function processData(spec: IRankingBarSpec) {\n const { xField, yField, timeField, data, topN = 10, icon } = spec;\n\n // 数据处理\n const timeNodes = new Set<string>();\n const timeData = new Map();\n\n data.sort((d1, d2) => Number(d2[xField]) - Number(d1[xField]));\n\n data.forEach(d => {\n const time = d[timeField];\n if (isValid(time)) {\n timeNodes.add(time);\n }\n if (!timeData.has(time)) {\n timeData.set(time, []);\n }\n const currentData = timeData.get(time);\n if (currentData.length < topN) {\n const _d = { ...d };\n if (icon && icon[_d[yField]]) {\n _d['icon'] = icon[_d[yField]];\n }\n currentData.push(_d);\n }\n });\n\n return { timeData, timeNodes: Array.from(timeNodes).sort() };\n}\n\nfunction transformAnimationSpec(\n spec: ICommonChartSpec,\n { interval, exchangeDuration }: { interval: number; exchangeDuration: number }\n) {\n (spec as any).animationAppear = false;\n (spec as any).animationUpdate = {\n bar: [\n {\n type: 'update',\n options: { excludeChannels: ['y'] },\n easing: 'linear',\n duration: interval\n },\n {\n channel: ['y'],\n easing: 'circInOut',\n duration: exchangeDuration\n }\n ],\n axis: {\n duration: interval,\n easing: 'linear'\n }\n };\n (spec as any).animationEnter = {\n bar: [\n {\n type: 'moveIn',\n duration: exchangeDuration,\n easing: 'cubicInOut',\n options: {\n direction: 'y',\n orient: 'negative',\n point: (datum: any, element: any, param: any) => {\n return {\n y: param.groupHeight + element.getBounds().height()\n };\n }\n }\n }\n ]\n };\n (spec as any).animationExit = {\n bar: [\n {\n type: 'moveOut',\n duration: exchangeDuration,\n easing: 'cubicInOut',\n options: {\n direction: 'y',\n orient: 'negative'\n }\n }\n ]\n };\n}\n\nfunction labelSpec(label: IRankingBarSpec['label'] = {}, nameLabel: IRankingBarSpec['nameLabel'] & { yField: string }) {\n const spec: ILabelSpec[] = [];\n\n if (label.visible !== false) {\n spec.push({\n visible: true,\n overlap: false,\n style: {\n // @ts-ignore\n fill: `rgb(64, 64, 64)`,\n ...label.style\n },\n smartInvert: {\n fillStrategy: label.style?.fill ? 'null' : undefined,\n strokeStrategy: label.style?.stroke ? 'null' : undefined\n }\n });\n }\n\n if (nameLabel.visible) {\n spec.push({\n visible: true,\n overlap: false,\n // @ts-ignore\n style: {\n ...nameLabel.style\n },\n smartInvert: {\n fillStrategy: nameLabel.style?.fill ? 'null' : undefined,\n strokeStrategy: nameLabel.style?.stroke ? 'null' : undefined\n },\n position: nameLabel.position === 'bar-end' ? 'inside-right' : 'inside-left',\n formatter: `{${nameLabel.yField}}`\n });\n }\n\n return spec;\n}\n\nfunction axisSpec(xAxis: IRankingBarSpec['xAxis'] = {}, yAxis: IRankingBarSpec['yAxis'] = {}) {\n const leftAxis: ICartesianAxisSpec = {\n orient: 'left',\n type: 'band',\n inverse: true,\n label: { style: yAxis.label },\n domainLine: { style: yAxis.domainLine },\n grid: { style: yAxis.grid }\n };\n const bottomAxis: ICartesianAxisSpec = {\n orient: 'bottom',\n type: 'linear',\n nice: false,\n animation: true,\n label: { style: xAxis.label },\n domainLine: { style: xAxis.domainLine },\n grid: { style: xAxis.grid },\n innerOffset: { right: '10%' }\n };\n\n if (xAxis.label) {\n bottomAxis.label = xAxis.label;\n }\n return [leftAxis, bottomAxis];\n}\n\nfunction timeLabelSpec(textStyle: ITextGraphicAttribute = {}) {\n return {\n type: 'text',\n dataId: 'time',\n style: {\n textBaseline: 'bottom',\n fontSize: 200,\n textAlign: 'end',\n fontWeight: 600,\n text: (datum: any) => datum.time,\n x: (datum: any, ctx: any) => {\n return ctx.vchart.getChart().getCanvasRect()?.width - 50;\n },\n y: (datum: any, ctx: any) => {\n return ctx.vchart.getChart().getCanvasRect()?.height - 80;\n },\n fill: 'grey',\n fillOpacity: 0.5,\n ...textStyle\n }\n };\n}\n\nfunction iconSpec(\n iconPosition: IRankingBarSpec['iconPosition'] = 'bar-end',\n iconShape: IRankingBarSpec['iconShape'] = 'circle',\n { interval, exchangeDuration }: any\n) {\n return {\n type: 'symbol',\n dataId: 'timeData',\n style: {\n symbolType: iconShape,\n stroke: 'white',\n lineWidth: 1,\n size: (data: any, ctx: any) => {\n const vchart = ctx.vchart;\n const series = vchart.getChart()?.getSeriesInIndex(0)[0];\n if (vchart && series) {\n const bandwidth = series.getYAxisHelper().getBandwidth(0) ?? 0;\n return Math.max(bandwidth - 4, 0);\n }\n return 10;\n },\n background: (data: any) => data.icon,\n // globalZIndex 有bug,会有动画闪烁和报错\n // globalZIndex: 1, // 否则会被 region 区域 clip\n x: (data: any, ctx: any) => {\n const vchart = ctx.vchart;\n const series = vchart.getChart()?.getSeriesInIndex(0)[0];\n if (vchart && series) {\n const bandwidth = series.getYAxisHelper().getBandwidth(0) ?? 0;\n if (iconPosition === 'bar-start') {\n return bandwidth / 2;\n } else if (iconPosition === 'axis') {\n return -bandwidth / 2;\n } else {\n return series.dataToPositionX(data) - bandwidth / 2;\n }\n }\n return undefined;\n },\n y: (data: any, ctx: any) => {\n const vchart = ctx.vchart;\n const series = vchart.getChart()?.getSeriesInIndex(0)[0];\n if (vchart && series) {\n const bandwidth = series.getYAxisHelper().getBandwidth(0) ?? 0;\n return series.dataToPositionY(data) + bandwidth / 2;\n }\n return undefined;\n },\n scaleY: iconShape === 'rect' ? 1.2 : 1\n },\n animationUpdate: customMarkUpdateAnimation(interval, exchangeDuration),\n animationEnter: [\n {\n type: 'moveIn',\n duration: exchangeDuration,\n easing: 'cubicInOut',\n options: {\n direction: 'y',\n orient: 'negative',\n point: (datum: any, element: any, param: any) => {\n return {\n y: param.groupHeight + element.getBounds().height()\n };\n }\n }\n }\n ],\n animationExit: [\n {\n type: 'moveOut',\n duration: exchangeDuration,\n easing: 'cubicInOut',\n options: {\n direction: 'y',\n orient: 'negative'\n }\n }\n ]\n };\n}\n\nfunction customMarkUpdateAnimation(duration: number, exchangeDuration: number) {\n return [\n {\n duration: exchangeDuration,\n easing: 'cubicInOut',\n channel: ['y']\n },\n {\n options: { excludeChannels: ['y'] },\n channel: ['x', 'x2', 'x1'],\n easing: 'linear',\n duration\n }\n ];\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { IRankingBarSpec } from './interface';
2
+ import { VChart, BaseChart } from '@visactor/vchart';
3
+ import { RankingBarChartSpecTransformer } from './ranking-bar-transformer';
4
+ export declare class RankingBar extends BaseChart<Omit<IRankingBarSpec, 'color'>> {
5
+ type: string;
6
+ static type: string;
7
+ static readonly view: string;
8
+ _spec: IRankingBarSpec;
9
+ static readonly transformerConstructor: typeof RankingBarChartSpecTransformer;
10
+ readonly transformerConstructor: typeof RankingBarChartSpecTransformer;
11
+ init(): void;
12
+ protected isValid(): boolean;
13
+ }
14
+ export declare const registerRankingBarChart: (option?: {
15
+ VChart?: typeof VChart;
16
+ }) => void;
@@ -0,0 +1,27 @@
1
+ import { VChart, BaseChart } from "@visactor/vchart";
2
+
3
+ import { RankingBarChartSpecTransformer } from "./ranking-bar-transformer";
4
+
5
+ export class RankingBar extends BaseChart {
6
+ constructor() {
7
+ super(...arguments), this.type = "rankingBar", this.transformerConstructor = RankingBarChartSpecTransformer;
8
+ }
9
+ init() {
10
+ this.isValid() && super.init();
11
+ }
12
+ isValid() {
13
+ var _a, _b, _c, _d;
14
+ const {xField: xField, yField: yField, timeField: timeField, data: data} = this._spec;
15
+ return xField && yField && timeField ? !!data || (null === (_d = (_c = this._option).onError) || void 0 === _d || _d.call(_c, "Data is required"),
16
+ !1) : (null === (_b = (_a = this._option).onError) || void 0 === _b || _b.call(_a, "Missing Required Config: `xField`, `yField`, `timeField` "),
17
+ !1);
18
+ }
19
+ }
20
+
21
+ RankingBar.type = "rankingBar", RankingBar.view = "singleDefault", RankingBar.transformerConstructor = RankingBarChartSpecTransformer;
22
+
23
+ export const registerRankingBarChart = option => {
24
+ const vchartConstructor = (null == option ? void 0 : option.VChart) || VChart;
25
+ vchartConstructor && vchartConstructor.useChart([ RankingBar ]);
26
+ };
27
+ //# sourceMappingURL=ranking-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["charts/ranking-bar/ranking-bar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,OAAO,UAAW,SAAQ,SAAyC;IAAzE;;QACE,SAAI,GAAG,YAAY,CAAC;QAOX,2BAAsB,GAAG,8BAA8B,CAAC;IAqBnE,CAAC;IAnBC,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACnB,OAAO;SACR;QACD,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAES,OAAO;;QACf,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE;YACpC,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,OAAO,mDAAG,2DAA2D,CAAC,CAAC;YACpF,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,IAAI,EAAE;YACT,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,OAAO,mDAAG,kBAAkB,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;AA1BM,eAAI,GAAG,YAAY,CAAC;AACX,eAAI,GAAW,eAAe,CAAC;AAI/B,iCAAsB,GAAG,8BAA8B,CAAC;AAwB1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAmC,EAAE,EAAE;IAC7E,MAAM,iBAAiB,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,MAAM,CAAC;IACnD,IAAI,iBAAiB,EAAE;QACrB,iBAAiB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;KAC1C;AACH,CAAC,CAAC","file":"ranking-bar.js","sourcesContent":["import { IRankingBarSpec } from './interface';\nimport { VChart, BaseChart } from '@visactor/vchart';\nimport { RankingBarChartSpecTransformer } from './ranking-bar-transformer';\n\nexport class RankingBar extends BaseChart<Omit<IRankingBarSpec, 'color'>> {\n type = 'rankingBar';\n static type = 'rankingBar';\n static readonly view: string = 'singleDefault';\n\n declare _spec: IRankingBarSpec;\n\n static readonly transformerConstructor = RankingBarChartSpecTransformer;\n readonly transformerConstructor = RankingBarChartSpecTransformer;\n\n init() {\n if (!this.isValid()) {\n return;\n }\n super.init();\n }\n\n protected isValid() {\n const { xField, yField, timeField, data } = this._spec;\n if (!xField || !yField || !timeField) {\n this._option.onError?.('Missing Required Config: `xField`, `yField`, `timeField` ');\n return false;\n }\n if (!data) {\n this._option.onError?.('Data is required');\n return false;\n }\n return true;\n }\n}\n\nexport const registerRankingBarChart = (option?: { VChart?: typeof VChart }) => {\n const vchartConstructor = option?.VChart || VChart;\n if (vchartConstructor) {\n vchartConstructor.useChart([RankingBar]);\n }\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import { IRankingListSpec } from './interface';
2
+ export declare const defaultSpec: Omit<IRankingListSpec, 'type' | 'data' | 'xField' | 'yField'>;