@visactor/vchart-extension 1.13.12 → 1.13.13-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 (291) hide show
  1. package/build/index.js +13990 -0
  2. package/build/index.min.js +15 -0
  3. package/cjs/charts/conversion-funnel/arrow-data-transform.d.ts +24 -0
  4. package/cjs/charts/conversion-funnel/arrow-data-transform.js +99 -0
  5. package/cjs/charts/conversion-funnel/arrow-data-transform.js.map +1 -0
  6. package/cjs/charts/conversion-funnel/conversion-funnel-transformer.d.ts +7 -0
  7. package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js +196 -0
  8. package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -0
  9. package/cjs/charts/conversion-funnel/conversion-funnel.d.ts +40 -0
  10. package/cjs/charts/conversion-funnel/conversion-funnel.js +78 -0
  11. package/cjs/charts/conversion-funnel/conversion-funnel.js.map +1 -0
  12. package/cjs/charts/conversion-funnel/index.d.ts +2 -0
  13. package/cjs/charts/conversion-funnel/index.js +21 -0
  14. package/cjs/charts/conversion-funnel/index.js.map +1 -0
  15. package/cjs/charts/conversion-funnel/interface.d.ts +35 -0
  16. package/cjs/charts/conversion-funnel/interface.js +6 -0
  17. package/cjs/charts/conversion-funnel/interface.js.map +1 -0
  18. package/cjs/charts/conversion-funnel/util.d.ts +3 -0
  19. package/cjs/charts/conversion-funnel/util.js +17 -0
  20. package/cjs/charts/conversion-funnel/util.js.map +1 -0
  21. package/cjs/charts/ranking-bar/interface.d.ts +45 -0
  22. package/cjs/charts/ranking-bar/interface.js +6 -0
  23. package/cjs/charts/ranking-bar/interface.js.map +1 -0
  24. package/cjs/charts/ranking-bar/ranking-bar-transformer.d.ts +10 -0
  25. package/cjs/charts/ranking-bar/ranking-bar-transformer.js +291 -0
  26. package/cjs/charts/ranking-bar/ranking-bar-transformer.js.map +1 -0
  27. package/cjs/charts/ranking-bar/ranking-bar.d.ts +16 -0
  28. package/cjs/charts/ranking-bar/ranking-bar.js +34 -0
  29. package/cjs/charts/ranking-bar/ranking-bar.js.map +1 -0
  30. package/cjs/charts/ranking-list/constant.d.ts +2 -0
  31. package/cjs/charts/ranking-list/constant.js +75 -0
  32. package/cjs/charts/ranking-list/constant.js.map +1 -0
  33. package/cjs/charts/ranking-list/interface.d.ts +74 -0
  34. package/cjs/charts/ranking-list/interface.js +6 -0
  35. package/cjs/charts/ranking-list/interface.js.map +1 -0
  36. package/cjs/charts/ranking-list/ranking-list-transformer.d.ts +459 -0
  37. package/cjs/charts/ranking-list/ranking-list-transformer.js +382 -0
  38. package/cjs/charts/ranking-list/ranking-list-transformer.js.map +1 -0
  39. package/cjs/charts/ranking-list/ranking-list.d.ts +16 -0
  40. package/cjs/charts/ranking-list/ranking-list.js +34 -0
  41. package/cjs/charts/ranking-list/ranking-list.js.map +1 -0
  42. package/cjs/charts/ranking-list/utils.d.ts +7 -0
  43. package/cjs/charts/ranking-list/utils.js +51 -0
  44. package/cjs/charts/ranking-list/utils.js.map +1 -0
  45. package/cjs/charts/sequence-scatter-kde/constant.d.ts +3 -0
  46. package/cjs/charts/sequence-scatter-kde/constant.js +7 -0
  47. package/cjs/charts/sequence-scatter-kde/constant.js.map +1 -0
  48. package/cjs/charts/sequence-scatter-kde/interface.d.ts +29 -0
  49. package/cjs/charts/sequence-scatter-kde/interface.js +6 -0
  50. package/cjs/charts/sequence-scatter-kde/interface.js.map +1 -0
  51. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.d.ts +6 -0
  52. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js +142 -0
  53. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js.map +1 -0
  54. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde.d.ts +16 -0
  55. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde.js +34 -0
  56. package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde.js.map +1 -0
  57. package/cjs/charts/sequence-scatter-kde/utils.d.ts +9 -0
  58. package/cjs/charts/sequence-scatter-kde/utils.js +42 -0
  59. package/cjs/charts/sequence-scatter-kde/utils.js.map +1 -0
  60. package/cjs/charts/sequence-scatter-link/interface.d.ts +59 -0
  61. package/cjs/charts/sequence-scatter-link/interface.js +6 -0
  62. package/cjs/charts/sequence-scatter-link/interface.js.map +1 -0
  63. package/cjs/charts/sequence-scatter-link/sequence-scatter-link-transformer.d.ts +6 -0
  64. package/cjs/charts/sequence-scatter-link/sequence-scatter-link-transformer.js +328 -0
  65. package/cjs/charts/sequence-scatter-link/sequence-scatter-link-transformer.js.map +1 -0
  66. package/cjs/charts/sequence-scatter-link/sequence-scatter-link.d.ts +16 -0
  67. package/cjs/charts/sequence-scatter-link/sequence-scatter-link.js +34 -0
  68. package/cjs/charts/sequence-scatter-link/sequence-scatter-link.js.map +1 -0
  69. package/cjs/charts/sequence-scatter-link/utils.d.ts +9 -0
  70. package/cjs/charts/sequence-scatter-link/utils.js +108 -0
  71. package/cjs/charts/sequence-scatter-link/utils.js.map +1 -0
  72. package/cjs/charts/sequence-scatter-pixel/constant.d.ts +3 -0
  73. package/cjs/charts/sequence-scatter-pixel/constant.js +7 -0
  74. package/cjs/charts/sequence-scatter-pixel/constant.js.map +1 -0
  75. package/cjs/charts/sequence-scatter-pixel/interface.d.ts +29 -0
  76. package/cjs/charts/sequence-scatter-pixel/interface.js +6 -0
  77. package/cjs/charts/sequence-scatter-pixel/interface.js.map +1 -0
  78. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.d.ts +4 -0
  79. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js +68 -0
  80. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js.map +1 -0
  81. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel.d.ts +16 -0
  82. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel.js +34 -0
  83. package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel.js.map +1 -0
  84. package/cjs/charts/sequence-scatter-pixel/utils.d.ts +3 -0
  85. package/cjs/charts/sequence-scatter-pixel/utils.js +53 -0
  86. package/cjs/charts/sequence-scatter-pixel/utils.js.map +1 -0
  87. package/cjs/components/bar-link/bar-link.d.ts +7 -0
  88. package/cjs/components/bar-link/bar-link.js +87 -0
  89. package/cjs/components/bar-link/bar-link.js.map +1 -0
  90. package/cjs/components/bar-link/constant.d.ts +1 -0
  91. package/cjs/components/bar-link/constant.js +6 -0
  92. package/cjs/components/bar-link/constant.js.map +1 -0
  93. package/cjs/components/bar-link/index.d.ts +4 -0
  94. package/cjs/components/bar-link/index.js +49 -0
  95. package/cjs/components/bar-link/index.js.map +1 -0
  96. package/cjs/components/bar-link/type.d.ts +27 -0
  97. package/cjs/components/bar-link/type.js +6 -0
  98. package/cjs/components/bar-link/type.js.map +1 -0
  99. package/cjs/components/bar-link/util.d.ts +22 -0
  100. package/cjs/components/bar-link/util.js +183 -0
  101. package/cjs/components/bar-link/util.js.map +1 -0
  102. package/cjs/components/series-break/constant.d.ts +1 -0
  103. package/cjs/components/series-break/constant.js +6 -0
  104. package/cjs/components/series-break/constant.js.map +1 -0
  105. package/cjs/components/series-break/index.d.ts +4 -0
  106. package/cjs/components/series-break/index.js +49 -0
  107. package/cjs/components/series-break/index.js.map +1 -0
  108. package/cjs/components/series-break/series-break.d.ts +7 -0
  109. package/cjs/components/series-break/series-break.js +118 -0
  110. package/cjs/components/series-break/series-break.js.map +1 -0
  111. package/cjs/components/series-break/type.d.ts +14 -0
  112. package/cjs/components/series-break/type.js +6 -0
  113. package/cjs/components/series-break/type.js.map +1 -0
  114. package/cjs/components/series-break/util.d.ts +13 -0
  115. package/cjs/components/series-break/util.js +248 -0
  116. package/cjs/components/series-break/util.js.map +1 -0
  117. package/cjs/components/series-label/constant.d.ts +1 -0
  118. package/cjs/components/series-label/constant.js +6 -0
  119. package/cjs/components/series-label/constant.js.map +1 -0
  120. package/cjs/components/series-label/index.d.ts +3 -0
  121. package/cjs/components/series-label/index.js +49 -0
  122. package/cjs/components/series-label/index.js.map +1 -0
  123. package/cjs/components/series-label/series-label.d.ts +7 -0
  124. package/cjs/components/series-label/series-label.js +114 -0
  125. package/cjs/components/series-label/series-label.js.map +1 -0
  126. package/cjs/components/series-label/type.d.ts +41 -0
  127. package/cjs/components/series-label/type.js +6 -0
  128. package/cjs/components/series-label/type.js.map +1 -0
  129. package/cjs/components/series-label/util.d.ts +33 -0
  130. package/cjs/components/series-label/util.js +152 -0
  131. package/cjs/components/series-label/util.js.map +1 -0
  132. package/cjs/index.d.ts +9 -0
  133. package/cjs/index.js +25 -0
  134. package/cjs/index.js.map +1 -0
  135. package/cjs/type/index.d.ts +1 -0
  136. package/cjs/type/index.js +21 -0
  137. package/cjs/type/index.js.map +1 -0
  138. package/cjs/type/type.d.ts +8 -0
  139. package/cjs/type/type.js +6 -0
  140. package/cjs/type/type.js.map +1 -0
  141. package/cjs/utils/element.d.ts +7 -0
  142. package/cjs/utils/element.js +21 -0
  143. package/cjs/utils/element.js.map +1 -0
  144. package/cjs/utils/math.d.ts +1 -0
  145. package/cjs/utils/math.js +10 -0
  146. package/cjs/utils/math.js.map +1 -0
  147. package/esm/charts/conversion-funnel/arrow-data-transform.d.ts +24 -0
  148. package/esm/charts/conversion-funnel/arrow-data-transform.js +94 -0
  149. package/esm/charts/conversion-funnel/arrow-data-transform.js.map +1 -0
  150. package/esm/charts/conversion-funnel/conversion-funnel-transformer.d.ts +7 -0
  151. package/esm/charts/conversion-funnel/conversion-funnel-transformer.js +192 -0
  152. package/esm/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -0
  153. package/esm/charts/conversion-funnel/conversion-funnel.d.ts +40 -0
  154. package/esm/charts/conversion-funnel/conversion-funnel.js +81 -0
  155. package/esm/charts/conversion-funnel/conversion-funnel.js.map +1 -0
  156. package/esm/charts/conversion-funnel/index.d.ts +2 -0
  157. package/esm/charts/conversion-funnel/index.js +4 -0
  158. package/esm/charts/conversion-funnel/index.js.map +1 -0
  159. package/esm/charts/conversion-funnel/interface.d.ts +35 -0
  160. package/esm/charts/conversion-funnel/interface.js +2 -0
  161. package/esm/charts/conversion-funnel/interface.js.map +1 -0
  162. package/esm/charts/conversion-funnel/util.d.ts +3 -0
  163. package/esm/charts/conversion-funnel/util.js +10 -0
  164. package/esm/charts/conversion-funnel/util.js.map +1 -0
  165. package/esm/charts/ranking-bar/interface.d.ts +45 -0
  166. package/esm/charts/ranking-bar/interface.js +2 -0
  167. package/esm/charts/ranking-bar/interface.js.map +1 -0
  168. package/esm/charts/ranking-bar/ranking-bar-transformer.d.ts +10 -0
  169. package/esm/charts/ranking-bar/ranking-bar-transformer.js +285 -0
  170. package/esm/charts/ranking-bar/ranking-bar-transformer.js.map +1 -0
  171. package/esm/charts/ranking-bar/ranking-bar.d.ts +16 -0
  172. package/esm/charts/ranking-bar/ranking-bar.js +27 -0
  173. package/esm/charts/ranking-bar/ranking-bar.js.map +1 -0
  174. package/esm/charts/ranking-list/constant.d.ts +2 -0
  175. package/esm/charts/ranking-list/constant.js +69 -0
  176. package/esm/charts/ranking-list/constant.js.map +1 -0
  177. package/esm/charts/ranking-list/interface.d.ts +74 -0
  178. package/esm/charts/ranking-list/interface.js +2 -0
  179. package/esm/charts/ranking-list/interface.js.map +1 -0
  180. package/esm/charts/ranking-list/ranking-list-transformer.d.ts +459 -0
  181. package/esm/charts/ranking-list/ranking-list-transformer.js +382 -0
  182. package/esm/charts/ranking-list/ranking-list-transformer.js.map +1 -0
  183. package/esm/charts/ranking-list/ranking-list.d.ts +16 -0
  184. package/esm/charts/ranking-list/ranking-list.js +27 -0
  185. package/esm/charts/ranking-list/ranking-list.js.map +1 -0
  186. package/esm/charts/ranking-list/utils.d.ts +7 -0
  187. package/esm/charts/ranking-list/utils.js +41 -0
  188. package/esm/charts/ranking-list/utils.js.map +1 -0
  189. package/esm/charts/sequence-scatter-kde/constant.d.ts +3 -0
  190. package/esm/charts/sequence-scatter-kde/constant.js +6 -0
  191. package/esm/charts/sequence-scatter-kde/constant.js.map +1 -0
  192. package/esm/charts/sequence-scatter-kde/interface.d.ts +29 -0
  193. package/esm/charts/sequence-scatter-kde/interface.js +2 -0
  194. package/esm/charts/sequence-scatter-kde/interface.js.map +1 -0
  195. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.d.ts +6 -0
  196. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js +137 -0
  197. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js.map +1 -0
  198. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde.d.ts +16 -0
  199. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde.js +28 -0
  200. package/esm/charts/sequence-scatter-kde/sequence-scatter-kde.js.map +1 -0
  201. package/esm/charts/sequence-scatter-kde/utils.d.ts +9 -0
  202. package/esm/charts/sequence-scatter-kde/utils.js +34 -0
  203. package/esm/charts/sequence-scatter-kde/utils.js.map +1 -0
  204. package/esm/charts/sequence-scatter-link/interface.d.ts +59 -0
  205. package/esm/charts/sequence-scatter-link/interface.js +2 -0
  206. package/esm/charts/sequence-scatter-link/interface.js.map +1 -0
  207. package/esm/charts/sequence-scatter-link/sequence-scatter-link-transformer.d.ts +6 -0
  208. package/esm/charts/sequence-scatter-link/sequence-scatter-link-transformer.js +321 -0
  209. package/esm/charts/sequence-scatter-link/sequence-scatter-link-transformer.js.map +1 -0
  210. package/esm/charts/sequence-scatter-link/sequence-scatter-link.d.ts +16 -0
  211. package/esm/charts/sequence-scatter-link/sequence-scatter-link.js +28 -0
  212. package/esm/charts/sequence-scatter-link/sequence-scatter-link.js.map +1 -0
  213. package/esm/charts/sequence-scatter-link/utils.d.ts +9 -0
  214. package/esm/charts/sequence-scatter-link/utils.js +100 -0
  215. package/esm/charts/sequence-scatter-link/utils.js.map +1 -0
  216. package/esm/charts/sequence-scatter-pixel/constant.d.ts +3 -0
  217. package/esm/charts/sequence-scatter-pixel/constant.js +6 -0
  218. package/esm/charts/sequence-scatter-pixel/constant.js.map +1 -0
  219. package/esm/charts/sequence-scatter-pixel/interface.d.ts +29 -0
  220. package/esm/charts/sequence-scatter-pixel/interface.js +2 -0
  221. package/esm/charts/sequence-scatter-pixel/interface.js.map +1 -0
  222. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.d.ts +4 -0
  223. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js +64 -0
  224. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js.map +1 -0
  225. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel.d.ts +16 -0
  226. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel.js +28 -0
  227. package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel.js.map +1 -0
  228. package/esm/charts/sequence-scatter-pixel/utils.d.ts +3 -0
  229. package/esm/charts/sequence-scatter-pixel/utils.js +45 -0
  230. package/esm/charts/sequence-scatter-pixel/utils.js.map +1 -0
  231. package/esm/components/bar-link/bar-link.d.ts +7 -0
  232. package/esm/components/bar-link/bar-link.js +85 -0
  233. package/esm/components/bar-link/bar-link.js.map +1 -0
  234. package/esm/components/bar-link/constant.d.ts +1 -0
  235. package/esm/components/bar-link/constant.js +2 -0
  236. package/esm/components/bar-link/constant.js.map +1 -0
  237. package/esm/components/bar-link/index.d.ts +4 -0
  238. package/esm/components/bar-link/index.js +8 -0
  239. package/esm/components/bar-link/index.js.map +1 -0
  240. package/esm/components/bar-link/type.d.ts +27 -0
  241. package/esm/components/bar-link/type.js +2 -0
  242. package/esm/components/bar-link/type.js.map +1 -0
  243. package/esm/components/bar-link/util.d.ts +22 -0
  244. package/esm/components/bar-link/util.js +178 -0
  245. package/esm/components/bar-link/util.js.map +1 -0
  246. package/esm/components/series-break/constant.d.ts +1 -0
  247. package/esm/components/series-break/constant.js +2 -0
  248. package/esm/components/series-break/constant.js.map +1 -0
  249. package/esm/components/series-break/index.d.ts +4 -0
  250. package/esm/components/series-break/index.js +8 -0
  251. package/esm/components/series-break/index.js.map +1 -0
  252. package/esm/components/series-break/series-break.d.ts +7 -0
  253. package/esm/components/series-break/series-break.js +115 -0
  254. package/esm/components/series-break/series-break.js.map +1 -0
  255. package/esm/components/series-break/type.d.ts +14 -0
  256. package/esm/components/series-break/type.js +2 -0
  257. package/esm/components/series-break/type.js.map +1 -0
  258. package/esm/components/series-break/util.d.ts +13 -0
  259. package/esm/components/series-break/util.js +244 -0
  260. package/esm/components/series-break/util.js.map +1 -0
  261. package/esm/components/series-label/constant.d.ts +1 -0
  262. package/esm/components/series-label/constant.js +2 -0
  263. package/esm/components/series-label/constant.js.map +1 -0
  264. package/esm/components/series-label/index.d.ts +3 -0
  265. package/esm/components/series-label/index.js +6 -0
  266. package/esm/components/series-label/index.js.map +1 -0
  267. package/esm/components/series-label/series-label.d.ts +7 -0
  268. package/esm/components/series-label/series-label.js +110 -0
  269. package/esm/components/series-label/series-label.js.map +1 -0
  270. package/esm/components/series-label/type.d.ts +41 -0
  271. package/esm/components/series-label/type.js +2 -0
  272. package/esm/components/series-label/type.js.map +1 -0
  273. package/esm/components/series-label/util.d.ts +33 -0
  274. package/esm/components/series-label/util.js +144 -0
  275. package/esm/components/series-label/util.js.map +1 -0
  276. package/esm/index.d.ts +9 -0
  277. package/esm/index.js +17 -0
  278. package/esm/index.js.map +1 -0
  279. package/esm/type/index.d.ts +1 -0
  280. package/esm/type/index.js +2 -0
  281. package/esm/type/index.js.map +1 -0
  282. package/esm/type/type.d.ts +8 -0
  283. package/esm/type/type.js +2 -0
  284. package/esm/type/type.js.map +1 -0
  285. package/esm/utils/element.d.ts +7 -0
  286. package/esm/utils/element.js +15 -0
  287. package/esm/utils/element.js.map +1 -0
  288. package/esm/utils/math.d.ts +1 -0
  289. package/esm/utils/math.js +4 -0
  290. package/esm/utils/math.js.map +1 -0
  291. package/package.json +3 -3
@@ -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'>;
@@ -0,0 +1,69 @@
1
+ const cornerRadius = 5, animationDuration = 1e3, fontSize = 20, pageSize = 5, scrollSize = 1, primaryFontColor = "#21252c", shadowColor = "rgba(33,37,44,0.1)";
2
+
3
+ export const defaultSpec = {
4
+ labelLayout: "top",
5
+ bar: {
6
+ style: {
7
+ cornerRadius: 5
8
+ }
9
+ },
10
+ barBackground: {
11
+ type: "rect",
12
+ style: {
13
+ fill: shadowColor,
14
+ cornerRadius: 5
15
+ }
16
+ },
17
+ rankingIcon: {
18
+ visible: !0,
19
+ style: {
20
+ fill: "#21252c",
21
+ size: 20
22
+ }
23
+ },
24
+ nameLabel: {
25
+ visible: !0,
26
+ style: {
27
+ fontSize: 20,
28
+ fontWeight: "normal",
29
+ fill: "#21252c",
30
+ textBaseline: "middle"
31
+ }
32
+ },
33
+ orderLabel: {
34
+ visible: !0,
35
+ style: {
36
+ fontSize: 20,
37
+ fontWeight: "normal",
38
+ fill: "#21252c",
39
+ textBaseline: "middle"
40
+ }
41
+ },
42
+ valueLabel: {
43
+ visible: !0,
44
+ style: {
45
+ fontSize: 20,
46
+ fontWeight: "normal",
47
+ fill: "#21252c",
48
+ textBaseline: "middle"
49
+ }
50
+ },
51
+ pageSize: 5,
52
+ scrollSize: 1,
53
+ animationAppear: {
54
+ enable: !0,
55
+ type: "grow",
56
+ duration: 1e3,
57
+ easing: "linear"
58
+ },
59
+ animationUpdate: {
60
+ enable: !0,
61
+ type: "grow",
62
+ duration: 1e3,
63
+ easing: "linear"
64
+ },
65
+ animationNormal: {
66
+ interval: 1e3
67
+ }
68
+ };
69
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["charts/ranking-list/constant.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,UAAU,GAAG,CAAC,CAAC;AAGrB,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAM,CAAC,MAAM,WAAW,GAAkE;IACxF,WAAW,EAAE,KAAK;IAClB,GAAG,EAAE;QACH,KAAK,EAAE;YACL,YAAY;SACb;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,YAAY;SACb;KACF;IACD,WAAW,EAAE;QACX,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YACL,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,QAAQ;SACf;KACF;IACD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YAEL,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,gBAAgB;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YAEL,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,gBAAgB;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YAEL,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,gBAAgB;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,QAAQ;IACR,UAAU;IACV,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,QAAQ;KACjB;IACD,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,QAAQ;KACjB;IACD,eAAe,EAAE;QAGf,QAAQ,EAAE,iBAAiB;KAE5B;CACF,CAAC","file":"constant.js","sourcesContent":["import { IRankingListSpec } from './interface';\n\nconst cornerRadius = 5;\nconst animationDuration = 1000;\nconst fontSize = 20;\nconst pageSize = 5;\nconst scrollSize = 1;\n\n// from: packages/vchart/src/theme/builtin/light/color-scheme.ts\nconst primaryFontColor = '#21252c';\nconst shadowColor = 'rgba(33,37,44,0.1)';\n\nexport const defaultSpec: Omit<IRankingListSpec, 'type' | 'data' | 'xField' | 'yField'> = {\n labelLayout: 'top',\n bar: {\n style: {\n cornerRadius\n }\n },\n barBackground: {\n type: 'rect',\n style: {\n fill: shadowColor,\n cornerRadius\n }\n },\n rankingIcon: {\n visible: true,\n style: {\n fill: primaryFontColor,\n size: fontSize\n }\n },\n nameLabel: {\n visible: true,\n style: {\n // fontFamily: ''\n fontSize: fontSize,\n fontWeight: 'normal',\n fill: primaryFontColor,\n textBaseline: 'middle'\n }\n },\n orderLabel: {\n visible: true,\n style: {\n // fontFamily: ''\n fontSize: fontSize,\n fontWeight: 'normal',\n fill: primaryFontColor,\n textBaseline: 'middle'\n }\n },\n valueLabel: {\n visible: true,\n style: {\n // fontFamily: ''\n fontSize: fontSize,\n fontWeight: 'normal',\n fill: primaryFontColor,\n textBaseline: 'middle'\n }\n },\n pageSize,\n scrollSize,\n animationAppear: {\n enable: true,\n type: 'grow',\n duration: animationDuration,\n easing: 'linear'\n },\n animationUpdate: {\n enable: true,\n type: 'grow',\n duration: animationDuration,\n easing: 'linear'\n },\n animationNormal: {\n // enable: true,\n // type: 'scroll',\n interval: animationDuration\n // easing: 'linear'\n }\n};\n"]}
@@ -0,0 +1,74 @@
1
+ import { IMarkStateSpec, IMarkStateStyleSpec } from '@visactor/vchart';
2
+ import { StateValue } from '@visactor/vchart/src/compile/mark';
3
+ import { Datum } from '@visactor/vchart/src/typings/common';
4
+ import { ITextGraphicAttribute, ISymbolGraphicAttribute, IRectGraphicAttribute, EasingType } from '@visactor/vrender-core';
5
+ type IRankingListData = Datum[];
6
+ export interface IRankingListSpec {
7
+ type: 'rankingList';
8
+ data: IRankingListData;
9
+ xField: string;
10
+ yField: string;
11
+ width?: number;
12
+ height?: number;
13
+ labelLayout?: 'top' | 'bothEnd';
14
+ bar?: {
15
+ height?: number;
16
+ style?: IRectGraphicAttribute;
17
+ state?: Record<StateValue, IMarkStateSpec<IRectGraphicAttribute> | IMarkStateStyleSpec<IRectGraphicAttribute>>;
18
+ };
19
+ barBackground?: {
20
+ visible?: boolean;
21
+ type?: string;
22
+ style?: ISymbolGraphicAttribute | IRectGraphicAttribute;
23
+ state?: Record<StateValue, IMarkStateSpec<ISymbolGraphicAttribute | IRectGraphicAttribute> | IMarkStateStyleSpec<ISymbolGraphicAttribute | IRectGraphicAttribute>>;
24
+ };
25
+ rankingIcon?: {
26
+ visible?: boolean;
27
+ style?: ISymbolGraphicAttribute;
28
+ state?: Record<StateValue, IMarkStateSpec<ISymbolGraphicAttribute> | IMarkStateStyleSpec<ISymbolGraphicAttribute>>;
29
+ };
30
+ decorateHaloIcons?: [
31
+ {
32
+ visible?: boolean;
33
+ style?: ISymbolGraphicAttribute;
34
+ state?: Record<StateValue, IMarkStateSpec<ISymbolGraphicAttribute> | IMarkStateStyleSpec<ISymbolGraphicAttribute>>;
35
+ }
36
+ ];
37
+ orderLabel?: {
38
+ visible?: boolean;
39
+ style?: ITextGraphicAttribute;
40
+ formatMethod?: (text: string, datum: Datum) => string;
41
+ state?: Record<StateValue, IMarkStateSpec<ITextGraphicAttribute> | IMarkStateStyleSpec<ITextGraphicAttribute>>;
42
+ };
43
+ nameLabel?: {
44
+ visible?: boolean;
45
+ style?: ITextGraphicAttribute;
46
+ formatMethod?: (text: string, datum: Datum) => string;
47
+ state?: Record<StateValue, IMarkStateSpec<ITextGraphicAttribute> | IMarkStateStyleSpec<ITextGraphicAttribute>>;
48
+ };
49
+ valueLabel?: {
50
+ visible?: boolean;
51
+ style?: ITextGraphicAttribute;
52
+ formatMethod?: (text: string, datum: Datum) => string;
53
+ state?: Record<StateValue, IMarkStateSpec<ITextGraphicAttribute> | IMarkStateStyleSpec<ITextGraphicAttribute>>;
54
+ };
55
+ pageSize?: number;
56
+ scrollSize?: number;
57
+ animationAppear?: {
58
+ enable?: boolean;
59
+ type?: 'grow';
60
+ duration?: number;
61
+ easing?: EasingType;
62
+ customTransformSpec?: (spec: any) => void;
63
+ };
64
+ animationUpdate?: {
65
+ enable?: boolean;
66
+ type?: 'grow';
67
+ duration?: number;
68
+ easing?: EasingType;
69
+ };
70
+ animationNormal?: {
71
+ interval?: number;
72
+ };
73
+ }
74
+ export {};
@@ -0,0 +1,2 @@
1
+ export { };
2
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["charts/ranking-list/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import { IMarkStateSpec, IMarkStateStyleSpec } from '@visactor/vchart';\nimport { StateValue } from '@visactor/vchart/src/compile/mark';\nimport { Datum } from '@visactor/vchart/src/typings/common';\nimport {\n ITextGraphicAttribute,\n ISymbolGraphicAttribute,\n IRectGraphicAttribute,\n EasingType\n} from '@visactor/vrender-core';\n\ntype IRankingListData = Datum[];\n\nexport interface IRankingListSpec {\n /**\n * 图表类型\n */\n type: 'rankingList';\n /**\n * 数据\n */\n data: IRankingListData;\n /**\n * x轴字段\n */\n xField: string;\n /**\n * y轴字段\n */\n yField: string;\n width?: number;\n height?: number;\n /**\n * 标签布局\n * @default 'top'\n */\n labelLayout?: 'top' | 'bothEnd';\n /**\n * 柱样式\n */\n bar?: {\n height?: number;\n style?: IRectGraphicAttribute;\n state?: Record<StateValue, IMarkStateSpec<IRectGraphicAttribute> | IMarkStateStyleSpec<IRectGraphicAttribute>>;\n };\n /**\n * 柱图背景\n */\n barBackground?: {\n visible?: boolean;\n type?: string;\n style?: ISymbolGraphicAttribute | IRectGraphicAttribute;\n state?: Record<\n StateValue,\n | IMarkStateSpec<ISymbolGraphicAttribute | IRectGraphicAttribute>\n | IMarkStateStyleSpec<ISymbolGraphicAttribute | IRectGraphicAttribute>\n >;\n };\n /**\n * 排名图标\n */\n rankingIcon?: {\n visible?: boolean;\n style?: ISymbolGraphicAttribute;\n state?: Record<StateValue, IMarkStateSpec<ISymbolGraphicAttribute> | IMarkStateStyleSpec<ISymbolGraphicAttribute>>;\n };\n /**\n * 装饰图元\n */\n decorateHaloIcons?: [\n {\n visible?: boolean;\n // type?: 'circle' | 'square' | 'emptyCircle' | 'diamond' | 'halo' | 'concentric' | 'custom';\n style?: ISymbolGraphicAttribute;\n state?: Record<\n StateValue,\n IMarkStateSpec<ISymbolGraphicAttribute> | IMarkStateStyleSpec<ISymbolGraphicAttribute>\n >;\n }\n ];\n /**\n * 排名序号\n */\n orderLabel?: {\n visible?: boolean;\n style?: ITextGraphicAttribute;\n formatMethod?: (text: string, datum: Datum) => string;\n state?: Record<StateValue, IMarkStateSpec<ITextGraphicAttribute> | IMarkStateStyleSpec<ITextGraphicAttribute>>;\n };\n /**\n * 名称标签(yField对应的标签)\n */\n nameLabel?: {\n visible?: boolean;\n style?: ITextGraphicAttribute;\n formatMethod?: (text: string, datum: Datum) => string;\n state?: Record<StateValue, IMarkStateSpec<ITextGraphicAttribute> | IMarkStateStyleSpec<ITextGraphicAttribute>>;\n };\n /**\n * 值标签(xField对应的标签)\n */\n valueLabel?: {\n visible?: boolean;\n style?: ITextGraphicAttribute;\n formatMethod?: (text: string, datum: Datum) => string;\n state?: Record<StateValue, IMarkStateSpec<ITextGraphicAttribute> | IMarkStateStyleSpec<ITextGraphicAttribute>>;\n };\n /**\n * 每页行数\n */\n pageSize?: number;\n /**\n * 滚动行数\n */\n scrollSize?: number;\n /**\n * 排行榜动画效果的定义和普通图表不甚相同\n * animationNormal动画代表由player控制其更新数据时执行的滚动效果的动画, 本质上是由普通图表的 update + enter + exit 共同构成的\n */\n /**\n * 出现动画\n */\n animationAppear?: {\n /**\n * 是否开启\n * @default true\n */\n enable?: boolean;\n /**\n * 动画类型\n * @default 'grow'\n * 'grow' 伸展\n */\n type?: 'grow';\n /**\n * 动画时长\n */\n duration?: number;\n /**\n * 动画缓动效果\n */\n easing?: EasingType;\n /**\n * @param spec 经过rankingList转化后的vchart原始spec\n * @description 获取vchart原始spec, 并根据业务自行添加转换逻辑\n */\n customTransformSpec?: (spec: any) => void;\n };\n\n /**\n * 更新动画\n */\n animationUpdate?: {\n /**\n * 是否开启\n * @default true\n */\n enable?: boolean;\n /**\n * 动画类型\n * @default 'grow'\n * 'grow' 伸展\n */\n type?: 'grow';\n /**\n * 动画时长\n */\n duration?: number;\n /**\n * 动画缓动效果\n */\n easing?: EasingType;\n };\n\n /**\n * 循环滚动动画\n */\n animationNormal?: {\n // /**\n // * 是否开启\n // * @default true\n // */\n // enable?: boolean;\n // /**\n // * 动画类型\n // * @default 'scroll'\n // * 'scroll' 伸展\n // */\n // type?: 'scroll';\n /**\n * 动画间隔\n */\n interval?: number;\n };\n}\n"]}