@visactor/vchart 1.12.0-alpha.4 → 1.12.0-alpha.5

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 (271) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +7465 -7766
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base/base-chart.d.ts +0 -1
  6. package/cjs/chart/base/base-chart.js +3 -4
  7. package/cjs/chart/base/base-chart.js.map +1 -1
  8. package/cjs/chart/cartesian/cartesian-transformer.d.ts +0 -4
  9. package/cjs/chart/cartesian/cartesian-transformer.js +10 -25
  10. package/cjs/chart/cartesian/cartesian-transformer.js.map +1 -1
  11. package/cjs/chart/index.d.ts +3 -5
  12. package/cjs/chart/index.js +2 -16
  13. package/cjs/chart/index.js.map +1 -1
  14. package/cjs/chart/interface/type.d.ts +1 -2
  15. package/cjs/chart/interface/type.js +1 -2
  16. package/cjs/chart/interface/type.js.map +1 -1
  17. package/cjs/chart/stack.d.ts +1 -11
  18. package/cjs/chart/stack.js +4 -5
  19. package/cjs/chart/stack.js.map +1 -1
  20. package/cjs/chart/util.js +2 -1
  21. package/cjs/chart/util.js.map +1 -1
  22. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  23. package/cjs/component/label/interface.d.ts +1 -2
  24. package/cjs/component/label/interface.js.map +1 -1
  25. package/cjs/component/label/label.js +5 -8
  26. package/cjs/component/label/label.js.map +1 -1
  27. package/cjs/component/label/util.d.ts +0 -9
  28. package/cjs/component/label/util.js +8 -35
  29. package/cjs/component/label/util.js.map +1 -1
  30. package/cjs/component/marker/base-marker.d.ts +3 -4
  31. package/cjs/component/marker/base-marker.js +45 -6
  32. package/cjs/component/marker/base-marker.js.map +1 -1
  33. package/cjs/component/marker/interface.d.ts +3 -3
  34. package/cjs/component/marker/interface.js.map +1 -1
  35. package/cjs/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
  36. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  37. package/cjs/component/marker/mark-area/interface/spec.d.ts +2 -3
  38. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  39. package/cjs/component/marker/mark-area/polar-mark-area.d.ts +2 -2
  40. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  41. package/cjs/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
  42. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  43. package/cjs/component/marker/mark-line/interface/spec.d.ts +5 -5
  44. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  45. package/cjs/component/marker/mark-line/polar-mark-line.d.ts +2 -2
  46. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  47. package/cjs/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
  48. package/cjs/component/marker/mark-point/cartesian-mark-point.js +1 -1
  49. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  50. package/cjs/component/marker/mark-point/geo-mark-point.d.ts +1 -2
  51. package/cjs/component/marker/mark-point/geo-mark-point.js.map +1 -1
  52. package/cjs/component/marker/mark-point/interface/spec.d.ts +3 -4
  53. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  54. package/cjs/component/marker/mark-point/polar-mark-point.d.ts +1 -2
  55. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  56. package/cjs/component/marker/utils.d.ts +3 -2
  57. package/cjs/component/marker/utils.js +14 -16
  58. package/cjs/component/marker/utils.js.map +1 -1
  59. package/cjs/constant/index.d.ts +0 -5
  60. package/cjs/constant/index.js +2 -6
  61. package/cjs/constant/index.js.map +1 -1
  62. package/cjs/core/index.d.ts +2 -1
  63. package/cjs/core/index.js +2 -2
  64. package/cjs/core/index.js.map +1 -1
  65. package/cjs/core/vchart.d.ts +1 -0
  66. package/cjs/core/vchart.js +34 -28
  67. package/cjs/core/vchart.js.map +1 -1
  68. package/cjs/data/transforms/aggregation.d.ts +3 -8
  69. package/cjs/data/transforms/aggregation.js +2 -62
  70. package/cjs/data/transforms/aggregation.js.map +1 -1
  71. package/cjs/data/transforms/stack-split.js +2 -2
  72. package/cjs/data/transforms/stack-split.js.map +1 -1
  73. package/cjs/index-wx.d.ts +0 -1
  74. package/cjs/index-wx.js +1 -1
  75. package/cjs/index-wx.js.map +1 -1
  76. package/cjs/model/interface.d.ts +1 -0
  77. package/cjs/model/interface.js.map +1 -1
  78. package/cjs/series/base/base-series.js +13 -12
  79. package/cjs/series/base/base-series.js.map +1 -1
  80. package/cjs/series/interface/common.d.ts +0 -2
  81. package/cjs/series/interface/common.js.map +1 -1
  82. package/cjs/series/interface/series.d.ts +1 -3
  83. package/cjs/series/interface/series.js.map +1 -1
  84. package/cjs/series/interface/theme.d.ts +0 -2
  85. package/cjs/series/interface/theme.js +1 -2
  86. package/cjs/series/interface/theme.js.map +1 -1
  87. package/cjs/series/interface/type.d.ts +1 -2
  88. package/cjs/series/interface/type.js +1 -1
  89. package/cjs/series/interface/type.js.map +1 -1
  90. package/cjs/series/polar/animation.js +6 -6
  91. package/cjs/series/polar/animation.js.map +1 -1
  92. package/cjs/series/progress/linear/linear.d.ts +3 -1
  93. package/cjs/series/progress/linear/linear.js +61 -46
  94. package/cjs/series/progress/linear/linear.js.map +1 -1
  95. package/cjs/series/sankey/interface.d.ts +4 -5
  96. package/cjs/series/sankey/interface.js.map +1 -1
  97. package/cjs/series/sankey/sankey.d.ts +2 -7
  98. package/cjs/series/sankey/sankey.js +151 -47
  99. package/cjs/series/sankey/sankey.js.map +1 -1
  100. package/cjs/series/waterfall/waterfall-transformer.js +1 -1
  101. package/cjs/series/waterfall/waterfall-transformer.js.map +1 -1
  102. package/cjs/series/waterfall/waterfall.d.ts +1 -0
  103. package/cjs/series/waterfall/waterfall.js +13 -13
  104. package/cjs/series/waterfall/waterfall.js.map +1 -1
  105. package/cjs/theme/builtin/common/series/index.js +2 -3
  106. package/cjs/theme/builtin/common/series/index.js.map +1 -1
  107. package/cjs/theme/builtin/common/series/pie.js +0 -1
  108. package/cjs/theme/builtin/common/series/pie.js.map +1 -1
  109. package/cjs/theme/builtin/common/series/pie3d.js +0 -1
  110. package/cjs/theme/builtin/common/series/pie3d.js.map +1 -1
  111. package/cjs/util/data.d.ts +1 -24
  112. package/cjs/util/data.js +17 -88
  113. package/cjs/util/data.js.map +1 -1
  114. package/esm/chart/base/base-chart.d.ts +0 -1
  115. package/esm/chart/base/base-chart.js +3 -4
  116. package/esm/chart/base/base-chart.js.map +1 -1
  117. package/esm/chart/cartesian/cartesian-transformer.d.ts +0 -4
  118. package/esm/chart/cartesian/cartesian-transformer.js +10 -25
  119. package/esm/chart/cartesian/cartesian-transformer.js.map +1 -1
  120. package/esm/chart/index.d.ts +3 -5
  121. package/esm/chart/index.js +2 -4
  122. package/esm/chart/index.js.map +1 -1
  123. package/esm/chart/interface/type.d.ts +1 -2
  124. package/esm/chart/interface/type.js +1 -2
  125. package/esm/chart/interface/type.js.map +1 -1
  126. package/esm/chart/stack.d.ts +1 -11
  127. package/esm/chart/stack.js +4 -5
  128. package/esm/chart/stack.js.map +1 -1
  129. package/esm/chart/util.js +2 -1
  130. package/esm/chart/util.js.map +1 -1
  131. package/esm/component/axis/cartesian/axis.js.map +1 -1
  132. package/esm/component/label/interface.d.ts +1 -2
  133. package/esm/component/label/interface.js.map +1 -1
  134. package/esm/component/label/label.js +5 -9
  135. package/esm/component/label/label.js.map +1 -1
  136. package/esm/component/label/util.d.ts +0 -9
  137. package/esm/component/label/util.js +5 -34
  138. package/esm/component/label/util.js.map +1 -1
  139. package/esm/component/marker/base-marker.d.ts +3 -4
  140. package/esm/component/marker/base-marker.js +39 -6
  141. package/esm/component/marker/base-marker.js.map +1 -1
  142. package/esm/component/marker/interface.d.ts +3 -3
  143. package/esm/component/marker/interface.js.map +1 -1
  144. package/esm/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
  145. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  146. package/esm/component/marker/mark-area/interface/spec.d.ts +2 -3
  147. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  148. package/esm/component/marker/mark-area/polar-mark-area.d.ts +2 -2
  149. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  150. package/esm/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
  151. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  152. package/esm/component/marker/mark-line/interface/spec.d.ts +5 -5
  153. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  154. package/esm/component/marker/mark-line/polar-mark-line.d.ts +2 -2
  155. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  156. package/esm/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
  157. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  158. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  159. package/esm/component/marker/mark-point/geo-mark-point.d.ts +1 -2
  160. package/esm/component/marker/mark-point/geo-mark-point.js.map +1 -1
  161. package/esm/component/marker/mark-point/interface/spec.d.ts +3 -4
  162. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  163. package/esm/component/marker/mark-point/polar-mark-point.d.ts +1 -2
  164. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  165. package/esm/component/marker/utils.d.ts +3 -2
  166. package/esm/component/marker/utils.js +14 -16
  167. package/esm/component/marker/utils.js.map +1 -1
  168. package/esm/constant/index.d.ts +0 -5
  169. package/esm/constant/index.js +0 -10
  170. package/esm/constant/index.js.map +1 -1
  171. package/esm/core/index.d.ts +2 -1
  172. package/esm/core/index.js +3 -1
  173. package/esm/core/index.js.map +1 -1
  174. package/esm/core/vchart.d.ts +1 -0
  175. package/esm/core/vchart.js +34 -28
  176. package/esm/core/vchart.js.map +1 -1
  177. package/esm/data/transforms/aggregation.d.ts +3 -8
  178. package/esm/data/transforms/aggregation.js +2 -60
  179. package/esm/data/transforms/aggregation.js.map +1 -1
  180. package/esm/data/transforms/stack-split.js +2 -2
  181. package/esm/data/transforms/stack-split.js.map +1 -1
  182. package/esm/index-wx.d.ts +0 -1
  183. package/esm/index-wx.js +0 -2
  184. package/esm/index-wx.js.map +1 -1
  185. package/esm/model/interface.d.ts +1 -0
  186. package/esm/model/interface.js.map +1 -1
  187. package/esm/series/base/base-series.js +12 -11
  188. package/esm/series/base/base-series.js.map +1 -1
  189. package/esm/series/interface/common.d.ts +0 -2
  190. package/esm/series/interface/common.js.map +1 -1
  191. package/esm/series/interface/series.d.ts +1 -3
  192. package/esm/series/interface/series.js.map +1 -1
  193. package/esm/series/interface/theme.d.ts +0 -2
  194. package/esm/series/interface/theme.js +1 -2
  195. package/esm/series/interface/theme.js.map +1 -1
  196. package/esm/series/interface/type.d.ts +1 -2
  197. package/esm/series/interface/type.js +1 -1
  198. package/esm/series/interface/type.js.map +1 -1
  199. package/esm/series/polar/animation.js +5 -6
  200. package/esm/series/polar/animation.js.map +1 -1
  201. package/esm/series/progress/linear/linear.d.ts +3 -1
  202. package/esm/series/progress/linear/linear.js +62 -46
  203. package/esm/series/progress/linear/linear.js.map +1 -1
  204. package/esm/series/sankey/interface.d.ts +4 -5
  205. package/esm/series/sankey/interface.js.map +1 -1
  206. package/esm/series/sankey/sankey.d.ts +2 -7
  207. package/esm/series/sankey/sankey.js +147 -49
  208. package/esm/series/sankey/sankey.js.map +1 -1
  209. package/esm/series/waterfall/waterfall-transformer.js +1 -1
  210. package/esm/series/waterfall/waterfall-transformer.js.map +1 -1
  211. package/esm/series/waterfall/waterfall.d.ts +1 -0
  212. package/esm/series/waterfall/waterfall.js +12 -12
  213. package/esm/series/waterfall/waterfall.js.map +1 -1
  214. package/esm/theme/builtin/common/series/index.js +1 -4
  215. package/esm/theme/builtin/common/series/index.js.map +1 -1
  216. package/esm/theme/builtin/common/series/pie.js +0 -1
  217. package/esm/theme/builtin/common/series/pie.js.map +1 -1
  218. package/esm/theme/builtin/common/series/pie3d.js +0 -1
  219. package/esm/theme/builtin/common/series/pie3d.js.map +1 -1
  220. package/esm/util/data.d.ts +1 -24
  221. package/esm/util/data.js +17 -86
  222. package/esm/util/data.js.map +1 -1
  223. package/package.json +4 -4
  224. package/cjs/chart/mosaic/index.d.ts +0 -3
  225. package/cjs/chart/mosaic/index.js +0 -22
  226. package/cjs/chart/mosaic/index.js.map +0 -1
  227. package/cjs/chart/mosaic/interface.d.ts +0 -7
  228. package/cjs/chart/mosaic/interface.js +0 -6
  229. package/cjs/chart/mosaic/interface.js.map +0 -1
  230. package/cjs/chart/mosaic/mosaic-transformer.d.ts +0 -9
  231. package/cjs/chart/mosaic/mosaic-transformer.js +0 -43
  232. package/cjs/chart/mosaic/mosaic-transformer.js.map +0 -1
  233. package/cjs/chart/mosaic/mosaic.d.ts +0 -20
  234. package/cjs/chart/mosaic/mosaic.js +0 -39
  235. package/cjs/chart/mosaic/mosaic.js.map +0 -1
  236. package/cjs/series/mosaic/interface.d.ts +0 -16
  237. package/cjs/series/mosaic/interface.js +0 -6
  238. package/cjs/series/mosaic/interface.js.map +0 -1
  239. package/cjs/series/mosaic/mosaic.d.ts +0 -16
  240. package/cjs/series/mosaic/mosaic.js +0 -69
  241. package/cjs/series/mosaic/mosaic.js.map +0 -1
  242. package/cjs/series/sankey/sankey-transformer.d.ts +0 -5
  243. package/cjs/series/sankey/sankey-transformer.js +0 -16
  244. package/cjs/series/sankey/sankey-transformer.js.map +0 -1
  245. package/cjs/theme/builtin/common/series/mosaic.d.ts +0 -2
  246. package/cjs/theme/builtin/common/series/mosaic.js +0 -27
  247. package/cjs/theme/builtin/common/series/mosaic.js.map +0 -1
  248. package/esm/chart/mosaic/index.d.ts +0 -3
  249. package/esm/chart/mosaic/index.js +0 -6
  250. package/esm/chart/mosaic/index.js.map +0 -1
  251. package/esm/chart/mosaic/interface.d.ts +0 -7
  252. package/esm/chart/mosaic/interface.js +0 -2
  253. package/esm/chart/mosaic/interface.js.map +0 -1
  254. package/esm/chart/mosaic/mosaic-transformer.d.ts +0 -9
  255. package/esm/chart/mosaic/mosaic-transformer.js +0 -37
  256. package/esm/chart/mosaic/mosaic-transformer.js.map +0 -1
  257. package/esm/chart/mosaic/mosaic.d.ts +0 -20
  258. package/esm/chart/mosaic/mosaic.js +0 -41
  259. package/esm/chart/mosaic/mosaic.js.map +0 -1
  260. package/esm/series/mosaic/interface.d.ts +0 -16
  261. package/esm/series/mosaic/interface.js +0 -2
  262. package/esm/series/mosaic/interface.js.map +0 -1
  263. package/esm/series/mosaic/mosaic.d.ts +0 -16
  264. package/esm/series/mosaic/mosaic.js +0 -78
  265. package/esm/series/mosaic/mosaic.js.map +0 -1
  266. package/esm/series/sankey/sankey-transformer.d.ts +0 -5
  267. package/esm/series/sankey/sankey-transformer.js +0 -8
  268. package/esm/series/sankey/sankey-transformer.js.map +0 -1
  269. package/esm/theme/builtin/common/series/mosaic.d.ts +0 -2
  270. package/esm/theme/builtin/common/series/mosaic.js +0 -23
  271. package/esm/theme/builtin/common/series/mosaic.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme/builtin/common/series/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,KAAK;IACL,GAAG;IACH,KAAK;IACL,GAAG;IACH,KAAK;IACL,GAAG;IACH,IAAI;IACJ,SAAS;IACT,WAAW;IACX,MAAM;IACN,QAAQ;IACR,cAAc;IACd,gBAAgB;IAChB,SAAS;IACT,KAAK;IACL,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,WAAW;IACX,aAAa;IACb,OAAO;IACP,MAAM;IACN,IAAI;IACJ,OAAO;IACP,WAAW;IACX,MAAM;IACN,IAAI;IACJ,MAAM;CACP,CAAC","file":"index.js","sourcesContent":["import type { ISeriesTheme } from '../../../../series/interface';\nimport { area } from './area';\nimport { bar } from './bar';\nimport { bar3d } from './bar3d';\nimport { circularProgress } from './circular-progress';\nimport { dot } from './dot';\nimport { funnel } from './funnel';\nimport { funnel3d } from './funnel3d';\nimport { gauge } from './gauge';\nimport { gaugePointer } from './gauge-pointer';\nimport { line } from './line';\nimport { linearProgress } from './linear-progress';\nimport { link } from './link';\nimport { map } from './map';\nimport { pie } from './pie';\nimport { pie3d } from './pie3d';\nimport { radar } from './radar';\nimport { scatter } from './scatter';\nimport { waterfall } from './waterfall';\nimport { wordCloud } from './word-cloud';\nimport { wordCloud3d } from './word-cloud3d';\nimport { treemap } from './treemap';\nimport { sunburst } from './sunburst';\nimport { rangeColumn } from './rangeColumn';\nimport { circlePacking } from './circle-packing';\nimport { heatmap } from './heatmap';\nimport { sankey } from './sankey';\nimport { rose } from './rose';\nimport { boxPlot } from './box-plot';\nimport { correlation } from './correlation';\nimport { liquid } from './liquid';\nimport { venn } from './venn';\nimport { mosaic } from './mosaic';\n\nexport const series: ISeriesTheme = {\n scatter,\n line,\n area,\n bar,\n bar3d,\n pie,\n pie3d,\n map,\n radar,\n dot,\n link,\n wordCloud,\n wordCloud3d,\n funnel,\n funnel3d,\n linearProgress,\n circularProgress,\n waterfall,\n gauge,\n gaugePointer,\n treemap,\n sunburst,\n rangeColumn,\n circlePacking,\n heatmap,\n sankey,\n rose,\n boxPlot,\n correlation,\n liquid,\n venn,\n mosaic\n};\n"]}
1
+ {"version":3,"sources":["../src/theme/builtin/common/series/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,KAAK;IACL,GAAG;IACH,KAAK;IACL,GAAG;IACH,KAAK;IACL,GAAG;IACH,IAAI;IACJ,SAAS;IACT,WAAW;IACX,MAAM;IACN,QAAQ;IACR,cAAc;IACd,gBAAgB;IAChB,SAAS;IACT,KAAK;IACL,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,WAAW;IACX,aAAa;IACb,OAAO;IACP,MAAM;IACN,IAAI;IACJ,OAAO;IACP,WAAW;IACX,MAAM;IACN,IAAI;CACL,CAAC","file":"index.js","sourcesContent":["import type { ISeriesTheme } from '../../../../series/interface';\nimport { area } from './area';\nimport { bar } from './bar';\nimport { bar3d } from './bar3d';\nimport { circularProgress } from './circular-progress';\nimport { dot } from './dot';\nimport { funnel } from './funnel';\nimport { funnel3d } from './funnel3d';\nimport { gauge } from './gauge';\nimport { gaugePointer } from './gauge-pointer';\nimport { line } from './line';\nimport { linearProgress } from './linear-progress';\nimport { link } from './link';\nimport { map } from './map';\nimport { pie } from './pie';\nimport { pie3d } from './pie3d';\nimport { radar } from './radar';\nimport { scatter } from './scatter';\nimport { waterfall } from './waterfall';\nimport { wordCloud } from './word-cloud';\nimport { wordCloud3d } from './word-cloud3d';\nimport { treemap } from './treemap';\nimport { sunburst } from './sunburst';\nimport { rangeColumn } from './rangeColumn';\nimport { circlePacking } from './circle-packing';\nimport { heatmap } from './heatmap';\nimport { sankey } from './sankey';\nimport { rose } from './rose';\nimport { boxPlot } from './box-plot';\nimport { correlation } from './correlation';\nimport { liquid } from './liquid';\nimport { venn } from './venn';\n\nexport const series: ISeriesTheme = {\n scatter,\n line,\n area,\n bar,\n bar3d,\n pie,\n pie3d,\n map,\n radar,\n dot,\n link,\n wordCloud,\n wordCloud3d,\n funnel,\n funnel3d,\n linearProgress,\n circularProgress,\n waterfall,\n gauge,\n gaugePointer,\n treemap,\n sunburst,\n rangeColumn,\n circlePacking,\n heatmap,\n sankey,\n rose,\n boxPlot,\n correlation,\n liquid,\n venn\n};\n"]}
@@ -7,7 +7,6 @@ export const pie = {
7
7
  },
8
8
  label: {
9
9
  visible: !1,
10
- interactive: !0,
11
10
  position: "outside",
12
11
  style: {
13
12
  fontWeight: "normal",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme/builtin/common/series/pie.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAoB;IAClC,WAAW,EAAE,GAAG;IAChB,GAAG,EAAE;QACH,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE;YACnD,WAAW,EAAE,CAAC;SACf;KACF;IACD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;SACb;KACF;CACF,CAAC","file":"pie.js","sourcesContent":["import type { IPieSeriesTheme } from '../../../../series/pie/interface';\n\nexport const pie: IPieSeriesTheme = {\n outerRadius: 0.6,\n pie: {\n style: {\n fillOpacity: 1\n }\n },\n label: {\n visible: false,\n interactive: true,\n position: 'outside',\n style: {\n fontWeight: 'normal',\n stroke: { type: 'palette', key: 'backgroundColor' },\n fillOpacity: 1\n }\n },\n innerLabel: {\n style: {\n lineWidth: 2\n }\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/theme/builtin/common/series/pie.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAoB;IAClC,WAAW,EAAE,GAAG;IAChB,GAAG,EAAE;QACH,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE;YACnD,WAAW,EAAE,CAAC;SACf;KACF;IACD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;SACb;KACF;CACF,CAAC","file":"pie.js","sourcesContent":["import type { IPieSeriesTheme } from '../../../../series/pie/interface';\n\nexport const pie: IPieSeriesTheme = {\n outerRadius: 0.6,\n pie: {\n style: {\n fillOpacity: 1\n }\n },\n label: {\n visible: false,\n position: 'outside',\n style: {\n fontWeight: 'normal',\n stroke: { type: 'palette', key: 'backgroundColor' },\n fillOpacity: 1\n }\n },\n innerLabel: {\n style: {\n lineWidth: 2\n }\n }\n};\n"]}
@@ -8,7 +8,6 @@ export const pie3d = {
8
8
  },
9
9
  label: {
10
10
  visible: !1,
11
- interactive: !0,
12
11
  position: "outside"
13
12
  }
14
13
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme/builtin/common/series/pie3d.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAsB;IACtC,WAAW,EAAE,GAAG;IAChB,KAAK,EAAE;QACL,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC","file":"pie3d.js","sourcesContent":["import type { IPie3dSeriesTheme } from '../../../../series/pie/interface';\n\nexport const pie3d: IPie3dSeriesTheme = {\n outerRadius: 0.6,\n pie3d: {\n style: {\n height: 10,\n fillOpacity: 1\n }\n },\n label: {\n visible: false,\n interactive: true,\n position: 'outside'\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/theme/builtin/common/series/pie3d.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAsB;IACtC,WAAW,EAAE,GAAG;IAChB,KAAK,EAAE;QACL,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC","file":"pie3d.js","sourcesContent":["import type { IPie3dSeriesTheme } from '../../../../series/pie/interface';\n\nexport const pie3d: IPie3dSeriesTheme = {\n outerRadius: 0.6,\n pie3d: {\n style: {\n height: 10,\n fillOpacity: 1\n }\n },\n label: {\n visible: false,\n position: 'outside'\n }\n};\n"]}
@@ -14,7 +14,6 @@ export declare function mergeFields(targetFields: {
14
14
  }[];
15
15
  export declare function getFieldAlias(dataView: DataView, field: string): any;
16
16
  export interface IStackCacheNode {
17
- groupField?: string;
18
17
  values: any[];
19
18
  series: {
20
19
  s: ISeries;
@@ -29,11 +28,8 @@ export interface IStackCacheNode {
29
28
  [key: string]: IStackCacheNode;
30
29
  };
31
30
  key: string;
32
- total?: number;
33
31
  }
34
32
  export interface IStackCacheRoot {
35
- groupField?: string;
36
- total?: number;
37
33
  nodes: {
38
34
  [key: string]: IStackCacheNode;
39
35
  };
@@ -55,25 +51,6 @@ export declare function sortStackValueGroup(stackValueGroup: {
55
51
  [key: string]: IStackCacheNode;
56
52
  };
57
53
  export declare function stackTotal(stackData: IStackCacheNode, valueField: string): void;
58
- export interface IMosaicData {
59
- groupField?: string;
60
- groupValue?: string;
61
- value?: number;
62
- end?: number;
63
- start?: number;
64
- startPercent?: number;
65
- endPercent?: number;
66
- }
67
- export declare function stackMosaicTotal(stackData: IStackCacheNode, valueField: string): void;
68
- export declare function stackMosaic(s: ISeries, stackCache: IStackCacheNode, mosaicData?: IMosaicData[]): void;
69
54
  export declare function stackOffsetSilhouette(stackCache: IStackCacheNode): void;
70
- export declare function stack(stackCache: IStackCacheNode, stackInverse: boolean, hasPercent?: boolean, hasMinMax?: boolean, fields?: {
71
- key: string;
72
- start: string;
73
- end: string;
74
- startPercent: string;
75
- endPercent: string;
76
- min?: string;
77
- max?: string;
78
- }): void;
55
+ export declare function stack(stackCache: IStackCacheNode, stackInverse: boolean, hasPercent?: boolean): void;
79
56
  export declare function stackGroup(s: ISeries, stackData: ISeriesStackDataMeta, stackCache: IStackCacheNode, valueField: string, setInitialValue: boolean, stackSortCache: IStackSortCache, stackKey?: string): void;
package/esm/util/data.js CHANGED
@@ -1,6 +1,6 @@
1
- import { STACK_FIELD_END, STACK_FIELD_START_PERCENT, STACK_FIELD_END_PERCENT, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STACK_FIELD_START, STACK_FIELD_KEY, STACK_FIELD_TOTAL_BOTTOM, MOSAIC_CAT_START_PERCENT, MOSAIC_CAT_END_PERCENT, MOSAIC_VALUE_START_PERCENT, MOSAIC_VALUE_END_PERCENT } from "../constant";
1
+ import { STACK_FIELD_END, STACK_FIELD_START_PERCENT, STACK_FIELD_END_PERCENT, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STACK_FIELD_START, STACK_FIELD_KEY } from "../constant";
2
2
 
3
- import { isValid, toValidNumber } from "./type";
3
+ import { toValidNumber } from "./type";
4
4
 
5
5
  import { max, sum } from "./math";
6
6
 
@@ -42,7 +42,6 @@ export function getRegionStackGroup(region, setInitialValue, filter) {
42
42
  var _a;
43
43
  const stackData = s.getStackData(), stackValue = s.getStackValue(), stackValueField = s.getStackValueField(), filterEnable = !filter || filter(s);
44
44
  stackData && stackValueField && filterEnable && (stackValueGroup[stackValue] = null !== (_a = stackValueGroup[stackValue]) && void 0 !== _a ? _a : {
45
- groupField: stackData.groupField,
46
45
  nodes: {}
47
46
  }, stackGroup(s, stackData, stackValueGroup[stackValue], stackValueField, setInitialValue, stackSortCache));
48
47
  })), stackSort ? sortStackValueGroup(stackValueGroup, stackSortCache) : stackValueGroup;
@@ -59,67 +58,13 @@ export function stackTotal(stackData, valueField) {
59
58
  if ("values" in stackData && stackData.values.length) {
60
59
  const total = sum(stackData.values, valueField), percent = max(stackData.values, STACK_FIELD_END_PERCENT);
61
60
  stackData.values.forEach((v => {
62
- v[STACK_FIELD_TOTAL] = total, v[STACK_FIELD_TOTAL_PERCENT] = percent;
61
+ v[STACK_FIELD_TOTAL] = total, v[STACK_FIELD_TOTAL_PERCENT] = percent, delete v[STACK_FIELD_TOTAL_TOP];
63
62
  }));
63
+ const maxNode = stackData.values.reduce(((max, current) => current[STACK_FIELD_END] > max[STACK_FIELD_END] ? current : max));
64
+ maxNode[STACK_FIELD_TOTAL_TOP] = !0;
64
65
  } else for (const key in stackData.nodes) stackTotal(stackData.nodes[key], valueField);
65
66
  }
66
67
 
67
- export function stackMosaicTotal(stackData, valueField) {
68
- var _a, _b;
69
- if ("values" in stackData && stackData.values.length) isValid(null === (_a = stackData.values[0]) || void 0 === _a ? void 0 : _a[STACK_FIELD_TOTAL]) ? stackData.total = null === (_b = stackData.values[0]) || void 0 === _b ? void 0 : _b[STACK_FIELD_TOTAL] : stackData.total = sum(stackData.values, valueField); else {
70
- for (const key in stackData.nodes) stackMosaicTotal(stackData.nodes[key], valueField);
71
- stackData.nodes && (stackData.total = sum(Object.keys(stackData.nodes).map((key => stackData.nodes[key])), "total"));
72
- }
73
- }
74
-
75
- export function stackMosaic(s, stackCache, mosaicData) {
76
- var _a;
77
- if (stackCache.groupField && stackCache.nodes) {
78
- const groupValues = (null === (_a = s.getRawDataStatisticsByField(stackCache.groupField, !1)) || void 0 === _a ? void 0 : _a.values) || [], mosaicStackData = {
79
- key: `${stackCache.groupField}`,
80
- values: groupValues.map((group => {
81
- const groupValues = stackCache.nodes[group];
82
- return {
83
- groupValue: group,
84
- value: groupValues.total,
85
- end: groupValues.total
86
- };
87
- }))
88
- };
89
- stack(mosaicStackData, !1, !0, !1, {
90
- key: "groupField",
91
- start: "start",
92
- end: "end",
93
- startPercent: "startPercent",
94
- endPercent: "endPercent"
95
- }), mosaicStackData.values.forEach((stackValue => {
96
- stackCache.nodes[stackValue.groupValue].mosaicData = stackValue;
97
- }));
98
- } else if ("values" in stackCache && stackCache.values.length && mosaicData && mosaicData.length) {
99
- const len = mosaicData.length;
100
- let catStartPercent = 0, catEndPercent = 1, valueStartPercent = 0, valueEndPercent = 1;
101
- for (let i = 0; i < len; i++) if (i % 2 == 0) {
102
- const catDelta = catEndPercent - catStartPercent;
103
- catEndPercent = catStartPercent + mosaicData[i].endPercent * catDelta, catStartPercent += mosaicData[i].startPercent * catDelta;
104
- } else {
105
- const valueDelta = valueEndPercent - valueStartPercent;
106
- valueEndPercent = valueStartPercent + mosaicData[i].endPercent * valueDelta, valueStartPercent += mosaicData[i].startPercent * valueDelta;
107
- }
108
- len % 2 == 0 ? stackCache.values.forEach((v => {
109
- const delta = catEndPercent - catStartPercent;
110
- v[MOSAIC_CAT_END_PERCENT] = catStartPercent + delta * v[STACK_FIELD_END_PERCENT],
111
- v[MOSAIC_CAT_START_PERCENT] = catStartPercent + delta * v[STACK_FIELD_START_PERCENT],
112
- v[MOSAIC_VALUE_END_PERCENT] = valueEndPercent, v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent;
113
- })) : stackCache.values.forEach((v => {
114
- const delta = valueEndPercent - valueStartPercent;
115
- v[MOSAIC_VALUE_END_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_END_PERCENT],
116
- v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_START_PERCENT],
117
- v[MOSAIC_CAT_END_PERCENT] = catEndPercent, v[MOSAIC_CAT_START_PERCENT] = catStartPercent;
118
- }));
119
- }
120
- for (const key in stackCache.nodes) stackMosaic(s, stackCache.nodes[key], stackCache.nodes[key].mosaicData ? mosaicData ? [ ...mosaicData, stackCache.nodes[key].mosaicData ] : [ stackCache.nodes[key].mosaicData ] : null);
121
- }
122
-
123
68
  export function stackOffsetSilhouette(stackCache) {
124
69
  if (!stackCache.values.length) return;
125
70
  const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;
@@ -127,41 +72,28 @@ export function stackOffsetSilhouette(stackCache) {
127
72
  stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;
128
73
  }
129
74
 
130
- export function stack(stackCache, stackInverse, hasPercent, hasMinMax, fields = {
131
- key: STACK_FIELD_KEY,
132
- start: STACK_FIELD_START,
133
- end: STACK_FIELD_END,
134
- startPercent: STACK_FIELD_START_PERCENT,
135
- endPercent: STACK_FIELD_END_PERCENT,
136
- max: STACK_FIELD_TOTAL_TOP,
137
- min: STACK_FIELD_TOTAL_BOTTOM
138
- }) {
139
- const hasMinField = hasMinMax && isValid(fields.min), hasMaxField = hasMinMax && isValid(fields.max);
75
+ export function stack(stackCache, stackInverse, hasPercent) {
140
76
  if (stackCache.values.length > 0) {
141
- let positiveStart = 0, negativeStart = 0, sign = 1, value = 0, minNode = null, maxNode = null;
77
+ let positiveStart = 0, negativeStart = 0, sign = 1, value = 0;
142
78
  const maxLength = stackCache.values.length;
143
79
  for (let index = 0; index < maxLength; index++) {
144
80
  const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
145
- value = v[fields.end], value >= 0 ? (v[fields.start] = positiveStart, positiveStart += v[fields.end],
146
- v[fields.end] = positiveStart) : (v[fields.start] = negativeStart, negativeStart += v[fields.end],
147
- v[fields.end] = negativeStart), v[fields.key] = stackCache.key, hasMaxField && (delete v[fields.max],
148
- (!maxNode || v[fields.end] > maxNode[fields.end]) && (maxNode = v)), hasMinField && (delete v[fields.min],
149
- (!minNode || v[fields.start] < minNode[fields.start]) && (minNode = v));
81
+ value = v[STACK_FIELD_END], value >= 0 ? (v[STACK_FIELD_START] = positiveStart,
82
+ positiveStart += v[STACK_FIELD_END], v[STACK_FIELD_END] = positiveStart) : (v[STACK_FIELD_START] = negativeStart,
83
+ negativeStart += v[STACK_FIELD_END], v[STACK_FIELD_END] = negativeStart), v[STACK_FIELD_KEY] = stackCache.key;
150
84
  }
151
- if (hasMaxField && maxNode && (maxNode[fields.max] = !0), hasMinField && minNode && (minNode[fields.min] = !0),
152
- hasPercent) for (let index = 0; index < maxLength; index++) {
85
+ if (hasPercent) for (let index = 0; index < maxLength; index++) {
153
86
  const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
154
- value = v[fields.end];
87
+ value = v[STACK_FIELD_END];
155
88
  const denominator = value >= 0 ? positiveStart : negativeStart;
156
- sign = value >= 0 ? 1 : -1, v[fields.startPercent] = 0 === denominator ? 0 : Math.min(1, v[fields.start] / denominator) * sign,
157
- v[fields.endPercent] = 0 === denominator ? 0 : Math.min(1, v[fields.end] / denominator) * sign;
89
+ sign = value >= 0 ? 1 : -1, v[STACK_FIELD_START_PERCENT] = 0 === denominator ? 0 : Math.min(1, v[STACK_FIELD_START] / denominator) * sign,
90
+ v[STACK_FIELD_END_PERCENT] = 0 === denominator ? 0 : Math.min(1, v[STACK_FIELD_END] / denominator) * sign;
158
91
  }
159
92
  }
160
- for (const key in stackCache.nodes) stack(stackCache.nodes[key], stackInverse, hasPercent, hasMinMax, fields);
93
+ for (const key in stackCache.nodes) stack(stackCache.nodes[key], stackInverse, hasPercent);
161
94
  }
162
95
 
163
96
  export function stackGroup(s, stackData, stackCache, valueField, setInitialValue, stackSortCache, stackKey) {
164
- var _a;
165
97
  if ("values" in stackData) if (setInitialValue && stackData.values.forEach((v => v[STACK_FIELD_END] = toValidNumber(v[valueField]))),
166
98
  stackCache.series.push({
167
99
  s: s,
@@ -177,14 +109,13 @@ export function stackGroup(s, stackData, stackCache, valueField, setInitialValue
177
109
  }));
178
110
  } else stackCache.values.push(...stackData.values); else for (const key in stackData.nodes) {
179
111
  const newStackKey = stackKey ? `${stackKey}_${key}` : key;
180
- stackCache.nodes[key] || (stackCache.nodes[key] = {
112
+ !stackCache.nodes[key] && (stackCache.nodes[key] = {
181
113
  values: [],
182
114
  series: [],
183
115
  nodes: {},
184
116
  sortDatums: [],
185
117
  key: newStackKey
186
- }, isValid(null === (_a = stackData.nodes[key]) || void 0 === _a ? void 0 : _a.groupField) && (stackCache.nodes[key].groupField = stackData.nodes[key].groupField)),
187
- stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue, stackSortCache, newStackKey);
118
+ }), stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue, stackSortCache, newStackKey);
188
119
  }
189
120
  }
190
121
  //# sourceMappingURL=data.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/data.ts"],"names":[],"mappings":"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","file":"data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { StatisticOperations } from '../data/transforms/dimension-statistics';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START_OffsetSilhouette,\n STACK_FIELD_TOTAL,\n STACK_FIELD_TOTAL_PERCENT,\n STACK_FIELD_TOTAL_TOP,\n STACK_FIELD_START,\n STACK_FIELD_KEY,\n STACK_FIELD_TOTAL_BOTTOM,\n MOSAIC_CAT_START_PERCENT,\n MOSAIC_CAT_END_PERCENT,\n MOSAIC_VALUE_START_PERCENT,\n MOSAIC_VALUE_END_PERCENT\n} from '../constant';\nimport { isValid, toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/interface';\nimport type { IRegion } from '../region/interface';\n\nexport function mergeFields(\n targetFields: {\n key: string;\n operations: StatisticOperations;\n }[],\n mergeFields: {\n key: string;\n operations: StatisticOperations;\n }[]\n): {\n key: string;\n operations: StatisticOperations;\n}[] {\n for (let i = 0; i < mergeFields.length; i++) {\n const element = mergeFields[i];\n const _target = findFields(targetFields, element.key);\n if (!_target) {\n targetFields.push(element);\n } else {\n _target.operations = [...new Set(_target.operations.concat(element.operations))];\n }\n }\n return targetFields;\n}\n\nfunction findFields(\n list: {\n key: string;\n operations: StatisticOperations;\n }[],\n fieldKey: string\n) {\n return list.find(i => i.key === fieldKey);\n}\n\n// 如果不存在别名就返回 field\nexport function getFieldAlias(dataView: DataView, field: string) {\n if (!dataView) {\n return field ?? null;\n }\n const fields = dataView.getFields();\n if (!fields) {\n return field ?? null;\n }\n if (!fields[field]) {\n return field ?? null;\n }\n return fields[field].alias ?? field;\n}\n\nexport interface IStackCacheNode {\n groupField?: string;\n values: any[];\n series: {\n s: ISeries;\n values: any[];\n }[];\n sortDatums: {\n datum: any;\n index: number;\n series: ISeries;\n }[];\n nodes: {\n [key: string]: IStackCacheNode;\n };\n key: string;\n total?: number;\n}\nexport interface IStackCacheRoot {\n groupField?: string;\n total?: number;\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport interface IStackSortCache {\n [key: string]: {\n lastIndex: number;\n sort: { [key: string]: number };\n };\n}\n\nexport function getRegionStackGroup(region: IRegion, setInitialValue: boolean, filter?: (s: any) => boolean) {\n const stackSort = region.getStackSort();\n\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\n // 堆积排序 {维度key: { lastIndex: 0, sort:{[值]: 值序号}}}\n let stackSortCache: IStackSortCache = null;\n // 如果有排序\n if (stackSort) {\n // 先遍历系列,得到基于 seriesField 的排序信息\n // 这里性能消耗应该很小\n stackSortCache = {};\n region.getSeries().forEach(s => {\n // 拿到系列的 seriesField 做排序准备\n const seriesField = s.getSeriesField();\n if (seriesField) {\n const fieldInfo = s.getRawDataStatisticsByField(seriesField);\n if (fieldInfo.values) {\n if (!stackSortCache[seriesField]) {\n stackSortCache[seriesField] = { lastIndex: 0, sort: {} };\n }\n fieldInfo.values.forEach((v, i) => {\n if (!(v in stackSortCache[seriesField].sort)) {\n stackSortCache[seriesField].sort[v] = stackSortCache[seriesField].lastIndex;\n stackSortCache[seriesField].lastIndex++;\n }\n });\n }\n }\n });\n }\n\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField();\n const filterEnable = filter ? filter(s) : true;\n if (stackData && stackValueField && filterEnable) {\n stackValueGroup[stackValue] = stackValueGroup[stackValue] ?? {\n groupField: stackData.groupField,\n nodes: {}\n };\n\n stackGroup(\n s,\n stackData,\n stackValueGroup[stackValue] as IStackCacheNode,\n stackValueField,\n setInitialValue,\n stackSortCache\n );\n }\n });\n return stackSort\n ? sortStackValueGroup(stackValueGroup as { [key: string]: IStackCacheNode }, stackSortCache)\n : stackValueGroup;\n}\n\n// 排序\nexport function sortStackValueGroup(\n stackValueGroup: { [key: string]: IStackCacheNode },\n stackSortCache: IStackSortCache\n) {\n for (const key in stackValueGroup) {\n if (stackValueGroup[key].sortDatums?.length) {\n stackValueGroup[key].sortDatums.sort((a, b) => a.index - b.index);\n stackValueGroup[key].values = stackValueGroup[key].sortDatums.map(sd => sd.datum);\n } else {\n sortStackValueGroup(stackValueGroup[key].nodes, stackSortCache);\n }\n }\n return stackValueGroup;\n}\n\nexport function stackTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n const total = sum(stackData.values, valueField);\n const percent = max(stackData.values, STACK_FIELD_END_PERCENT);\n\n stackData.values.forEach(v => {\n v[STACK_FIELD_TOTAL] = total;\n v[STACK_FIELD_TOTAL_PERCENT] = percent;\n });\n\n return;\n }\n for (const key in stackData.nodes) {\n stackTotal(stackData.nodes[key], valueField);\n }\n return;\n}\n\nexport interface IMosaicData {\n groupField?: string;\n groupValue?: string;\n value?: number;\n end?: number;\n start?: number;\n startPercent?: number;\n endPercent?: number;\n}\n\nexport function stackMosaicTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n if (isValid(stackData.values[0]?.[STACK_FIELD_TOTAL])) {\n stackData.total = stackData.values[0]?.[STACK_FIELD_TOTAL];\n } else {\n stackData.total = sum(stackData.values, valueField);\n }\n return;\n }\n for (const key in stackData.nodes) {\n stackMosaicTotal(stackData.nodes[key], valueField);\n }\n\n if (stackData.nodes) {\n stackData.total = sum(\n Object.keys(stackData.nodes).map(key => stackData.nodes[key]),\n 'total'\n );\n }\n\n return;\n}\n\nexport function stackMosaic(s: ISeries, stackCache: IStackCacheNode, mosaicData?: IMosaicData[]) {\n if (stackCache.groupField && stackCache.nodes) {\n const groupValues = s.getRawDataStatisticsByField(stackCache.groupField, false)?.values || [];\n const mosaicStackData = {\n key: `${stackCache.groupField}`,\n values: groupValues.map(group => {\n const groupValues = stackCache.nodes[group];\n\n return {\n groupValue: group,\n value: groupValues.total,\n end: groupValues.total\n };\n })\n };\n\n stack(mosaicStackData as IStackCacheNode, false, true, false, {\n key: 'groupField',\n start: 'start',\n end: 'end',\n startPercent: 'startPercent',\n endPercent: 'endPercent'\n });\n\n mosaicStackData.values.forEach(stackValue => {\n (stackCache.nodes[stackValue.groupValue] as any).mosaicData = stackValue;\n });\n } else if ('values' in stackCache && stackCache.values.length && mosaicData && mosaicData.length) {\n const len = mosaicData.length;\n let catStartPercent = 0;\n let catEndPercent = 1;\n let valueStartPercent = 0;\n let valueEndPercent = 1;\n\n for (let i = 0; i < len; i++) {\n if (i % 2 === 0) {\n const catDelta = catEndPercent - catStartPercent;\n\n catEndPercent = catStartPercent + mosaicData[i].endPercent * catDelta;\n catStartPercent = catStartPercent + mosaicData[i].startPercent * catDelta;\n } else {\n const valueDelta = valueEndPercent - valueStartPercent;\n\n valueEndPercent = valueStartPercent + mosaicData[i].endPercent * valueDelta;\n valueStartPercent = valueStartPercent + mosaicData[i].startPercent * valueDelta;\n }\n }\n\n if (len % 2 === 0) {\n stackCache.values.forEach(v => {\n const delta = catEndPercent - catStartPercent;\n v[MOSAIC_CAT_END_PERCENT] = catStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_VALUE_END_PERCENT] = valueEndPercent;\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent;\n });\n } else {\n stackCache.values.forEach(v => {\n const delta = valueEndPercent - valueStartPercent;\n v[MOSAIC_VALUE_END_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_CAT_END_PERCENT] = catEndPercent;\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent;\n });\n }\n }\n\n for (const key in stackCache.nodes) {\n stackMosaic(\n s,\n stackCache.nodes[key],\n (stackCache.nodes[key] as any).mosaicData\n ? mosaicData\n ? [...mosaicData, (stackCache.nodes[key] as any).mosaicData]\n : [(stackCache.nodes[key] as any).mosaicData]\n : null\n );\n }\n}\n\nexport function stackOffsetSilhouette(stackCache: IStackCacheNode) {\n if (!stackCache.values.length) {\n return;\n }\n const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;\n for (let j = 0; j < stackCache.values.length; j++) {\n stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;\n stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;\n }\n}\n\nexport function stack(\n stackCache: IStackCacheNode,\n stackInverse: boolean,\n hasPercent?: boolean,\n hasMinMax?: boolean,\n fields: {\n key: string;\n start: string;\n end: string;\n startPercent: string;\n endPercent: string;\n min?: string;\n max?: string;\n } = {\n key: STACK_FIELD_KEY,\n start: STACK_FIELD_START,\n end: STACK_FIELD_END,\n startPercent: STACK_FIELD_START_PERCENT,\n endPercent: STACK_FIELD_END_PERCENT,\n max: STACK_FIELD_TOTAL_TOP,\n min: STACK_FIELD_TOTAL_BOTTOM\n }\n) {\n const hasMinField = hasMinMax && isValid(fields.min);\n const hasMaxField = hasMinMax && isValid(fields.max);\n\n if (stackCache.values.length > 0) {\n // 设置一个小数以保证 log 计算不会报错\n let positiveStart = 0;\n let negativeStart = 0;\n // temp\n let sign = 1;\n let value = 0;\n let minNode: any = null;\n let maxNode: any = null;\n\n // stack\n const maxLength = stackCache.values.length;\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n if (value >= 0) {\n v[fields.start] = positiveStart;\n positiveStart += v[fields.end];\n v[fields.end] = positiveStart;\n } else {\n v[fields.start] = negativeStart;\n negativeStart += v[fields.end];\n v[fields.end] = negativeStart;\n }\n v[fields.key] = stackCache.key;\n\n if (hasMaxField) {\n delete v[fields.max];\n if (!maxNode || v[fields.end] > maxNode[fields.end]) {\n maxNode = v;\n }\n }\n if (hasMinField) {\n delete v[fields.min];\n if (!minNode || v[fields.start] < minNode[fields.start]) {\n minNode = v;\n }\n }\n }\n\n hasMaxField && maxNode && (maxNode[fields.max] = true);\n hasMinField && minNode && (minNode[fields.min] = true);\n\n if (hasPercent) {\n // normalize\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n const denominator = value >= 0 ? positiveStart : negativeStart;\n sign = value >= 0 ? 1 : -1;\n v[fields.startPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.start] / denominator) * sign;\n v[fields.endPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.end] / denominator) * sign;\n }\n }\n }\n\n for (const key in stackCache.nodes) {\n stack(stackCache.nodes[key], stackInverse, hasPercent, hasMinMax, fields);\n }\n}\n\nexport function stackGroup(\n s: ISeries,\n stackData: ISeriesStackDataMeta,\n stackCache: IStackCacheNode,\n valueField: string,\n setInitialValue: boolean,\n stackSortCache: IStackSortCache,\n stackKey?: string\n) {\n if ('values' in stackData) {\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.series.push({ s: s, values: stackData.values });\n // 如果有排序\n if (stackSortCache) {\n // 系列的 seriesField\n const seriesField = s.getSeriesField();\n stackData.values.forEach(d => {\n stackCache.sortDatums.push({\n series: s,\n datum: d,\n index: seriesField ? stackSortCache[seriesField].sort[d[seriesField]] : 0\n });\n });\n } else {\n // 如果没有排序,直接生成 values 数组\n stackCache.values.push(...stackData.values);\n }\n return;\n }\n for (const key in stackData.nodes) {\n const newStackKey = stackKey ? `${stackKey}_${key}` : key;\n\n if (!stackCache.nodes[key]) {\n stackCache.nodes[key] = {\n values: [],\n series: [],\n nodes: {},\n sortDatums: [],\n key: newStackKey\n };\n\n if (isValid(stackData.nodes[key]?.groupField)) {\n stackCache.nodes[key].groupField = stackData.nodes[key].groupField;\n }\n }\n\n stackGroup(\n s,\n stackData.nodes[key],\n stackCache.nodes[key],\n valueField,\n setInitialValue,\n stackSortCache,\n newStackKey\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/util/data.ts"],"names":[],"mappings":"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","file":"data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { StatisticOperations } from '../data/transforms/dimension-statistics';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START_OffsetSilhouette,\n STACK_FIELD_TOTAL,\n STACK_FIELD_TOTAL_PERCENT,\n STACK_FIELD_TOTAL_TOP,\n STACK_FIELD_START,\n STACK_FIELD_KEY\n} from '../constant';\nimport { toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/interface';\nimport type { IRegion } from '../region/interface';\n\nexport function mergeFields(\n targetFields: {\n key: string;\n operations: StatisticOperations;\n }[],\n mergeFields: {\n key: string;\n operations: StatisticOperations;\n }[]\n): {\n key: string;\n operations: StatisticOperations;\n}[] {\n for (let i = 0; i < mergeFields.length; i++) {\n const element = mergeFields[i];\n const _target = findFields(targetFields, element.key);\n if (!_target) {\n targetFields.push(element);\n } else {\n _target.operations = [...new Set(_target.operations.concat(element.operations))];\n }\n }\n return targetFields;\n}\n\nfunction findFields(\n list: {\n key: string;\n operations: StatisticOperations;\n }[],\n fieldKey: string\n) {\n return list.find(i => i.key === fieldKey);\n}\n\n// 如果不存在别名就返回 field\nexport function getFieldAlias(dataView: DataView, field: string) {\n if (!dataView) {\n return field ?? null;\n }\n const fields = dataView.getFields();\n if (!fields) {\n return field ?? null;\n }\n if (!fields[field]) {\n return field ?? null;\n }\n return fields[field].alias ?? field;\n}\n\nexport interface IStackCacheNode {\n values: any[];\n series: {\n s: ISeries;\n values: any[];\n }[];\n sortDatums: {\n datum: any;\n index: number;\n series: ISeries;\n }[];\n nodes: {\n [key: string]: IStackCacheNode;\n };\n key: string;\n}\nexport interface IStackCacheRoot {\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport interface IStackSortCache {\n [key: string]: {\n lastIndex: number;\n sort: { [key: string]: number };\n };\n}\n\nexport function getRegionStackGroup(region: IRegion, setInitialValue: boolean, filter?: (s: any) => boolean) {\n const stackSort = region.getStackSort();\n\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\n // 堆积排序 {维度key: { lastIndex: 0, sort:{[值]: 值序号}}}\n let stackSortCache: IStackSortCache = null;\n // 如果有排序\n if (stackSort) {\n // 先遍历系列,得到基于 seriesField 的排序信息\n // 这里性能消耗应该很小\n stackSortCache = {};\n region.getSeries().forEach(s => {\n // 拿到系列的 seriesField 做排序准备\n const seriesField = s.getSeriesField();\n if (seriesField) {\n const fieldInfo = s.getRawDataStatisticsByField(seriesField);\n if (fieldInfo.values) {\n if (!stackSortCache[seriesField]) {\n stackSortCache[seriesField] = { lastIndex: 0, sort: {} };\n }\n fieldInfo.values.forEach((v, i) => {\n if (!(v in stackSortCache[seriesField].sort)) {\n stackSortCache[seriesField].sort[v] = stackSortCache[seriesField].lastIndex;\n stackSortCache[seriesField].lastIndex++;\n }\n });\n }\n }\n });\n }\n\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField();\n const filterEnable = filter ? filter(s) : true;\n if (stackData && stackValueField && filterEnable) {\n stackValueGroup[stackValue] = stackValueGroup[stackValue] ?? {\n nodes: {}\n };\n\n stackGroup(\n s,\n stackData,\n stackValueGroup[stackValue] as IStackCacheNode,\n stackValueField,\n setInitialValue,\n stackSortCache\n );\n }\n });\n return stackSort\n ? sortStackValueGroup(stackValueGroup as { [key: string]: IStackCacheNode }, stackSortCache)\n : stackValueGroup;\n}\n\n// 排序\nexport function sortStackValueGroup(\n stackValueGroup: { [key: string]: IStackCacheNode },\n stackSortCache: IStackSortCache\n) {\n for (const key in stackValueGroup) {\n if (stackValueGroup[key].sortDatums?.length) {\n stackValueGroup[key].sortDatums.sort((a, b) => a.index - b.index);\n stackValueGroup[key].values = stackValueGroup[key].sortDatums.map(sd => sd.datum);\n } else {\n sortStackValueGroup(stackValueGroup[key].nodes, stackSortCache);\n }\n }\n return stackValueGroup;\n}\n\nexport function stackTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n const total = sum(stackData.values, valueField);\n const percent = max(stackData.values, STACK_FIELD_END_PERCENT);\n stackData.values.forEach(v => {\n v[STACK_FIELD_TOTAL] = total;\n v[STACK_FIELD_TOTAL_PERCENT] = percent;\n delete v[STACK_FIELD_TOTAL_TOP];\n });\n const maxNode = stackData.values.reduce((max, current) => {\n return current[STACK_FIELD_END] > max[STACK_FIELD_END] ? current : max;\n });\n maxNode[STACK_FIELD_TOTAL_TOP] = true;\n return;\n }\n for (const key in stackData.nodes) {\n stackTotal(stackData.nodes[key], valueField);\n }\n}\n\nexport function stackOffsetSilhouette(stackCache: IStackCacheNode) {\n if (!stackCache.values.length) {\n return;\n }\n const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;\n for (let j = 0; j < stackCache.values.length; j++) {\n stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;\n stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;\n }\n}\n\nexport function stack(stackCache: IStackCacheNode, stackInverse: boolean, hasPercent?: boolean) {\n if (stackCache.values.length > 0) {\n // 设置一个小数以保证 log 计算不会报错\n let positiveStart = 0;\n let negativeStart = 0;\n // temp\n let sign = 1;\n let value = 0;\n\n // stack\n const maxLength = stackCache.values.length;\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[STACK_FIELD_END];\n if (value >= 0) {\n v[STACK_FIELD_START] = positiveStart;\n positiveStart += v[STACK_FIELD_END];\n v[STACK_FIELD_END] = positiveStart;\n } else {\n v[STACK_FIELD_START] = negativeStart;\n negativeStart += v[STACK_FIELD_END];\n v[STACK_FIELD_END] = negativeStart;\n }\n v[STACK_FIELD_KEY] = stackCache.key;\n }\n if (hasPercent) {\n // normalize\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[STACK_FIELD_END];\n const denominator = value >= 0 ? positiveStart : negativeStart;\n sign = value >= 0 ? 1 : -1;\n v[STACK_FIELD_START_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_START] / denominator) * sign;\n v[STACK_FIELD_END_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_END] / denominator) * sign;\n }\n }\n }\n\n for (const key in stackCache.nodes) {\n stack(stackCache.nodes[key], stackInverse, hasPercent);\n }\n}\n\nexport function stackGroup(\n s: ISeries,\n stackData: ISeriesStackDataMeta,\n stackCache: IStackCacheNode,\n valueField: string,\n setInitialValue: boolean,\n stackSortCache: IStackSortCache,\n stackKey?: string\n) {\n if ('values' in stackData) {\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.series.push({ s: s, values: stackData.values });\n // 如果有排序\n if (stackSortCache) {\n // 系列的 seriesField\n const seriesField = s.getSeriesField();\n stackData.values.forEach(d => {\n stackCache.sortDatums.push({\n series: s,\n datum: d,\n index: seriesField ? stackSortCache[seriesField].sort[d[seriesField]] : 0\n });\n });\n } else {\n // 如果没有排序,直接生成 values 数组\n stackCache.values.push(...stackData.values);\n }\n return;\n }\n for (const key in stackData.nodes) {\n const newStackKey = stackKey ? `${stackKey}_${key}` : key;\n !stackCache.nodes[key] &&\n (stackCache.nodes[key] = {\n values: [],\n series: [],\n nodes: {},\n sortDatums: [],\n key: newStackKey\n });\n stackGroup(\n s,\n stackData.nodes[key],\n stackCache.nodes[key],\n valueField,\n setInitialValue,\n stackSortCache,\n newStackKey\n );\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vchart",
3
- "version": "1.12.0-alpha.4",
3
+ "version": "1.12.0-alpha.5",
4
4
  "description": "charts lib based @visactor/VGrammar",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -82,9 +82,9 @@
82
82
  "rimraf": "3.0.2",
83
83
  "cross-env": "^7.0.3",
84
84
  "@internal/typescript-json-schema": "0.0.1",
85
+ "@internal/bundler": "0.0.1",
85
86
  "@internal/eslint-config": "0.0.1",
86
- "@internal/ts-config": "0.0.1",
87
- "@internal/bundler": "0.0.1"
87
+ "@internal/ts-config": "0.0.1"
88
88
  },
89
89
  "dependencies": {
90
90
  "@visactor/vutils": "~0.18.10",
@@ -101,7 +101,7 @@
101
101
  "@visactor/vgrammar-sankey": "0.13.14",
102
102
  "@visactor/vgrammar-venn": "0.13.14",
103
103
  "@visactor/vgrammar-util": "0.13.14",
104
- "@visactor/vutils-extension": "1.12.0-alpha.4"
104
+ "@visactor/vutils-extension": "1.12.0-alpha.5"
105
105
  },
106
106
  "publishConfig": {
107
107
  "access": "public",
@@ -1,3 +0,0 @@
1
- export * from './mosaic';
2
- export * from './interface';
3
- export * from './mosaic-transformer';
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
- void 0 === k2 && (k2 = k);
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
- enumerable: !0,
8
- get: function() {
9
- return m[k];
10
- }
11
- }), Object.defineProperty(o, k2, desc);
12
- } : function(o, m, k, k2) {
13
- void 0 === k2 && (k2 = k), o[k2] = m[k];
14
- }), __exportStar = this && this.__exportStar || function(m, exports) {
15
- for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
16
- };
17
-
18
- Object.defineProperty(exports, "__esModule", {
19
- value: !0
20
- }), __exportStar(require("./mosaic"), exports), __exportStar(require("./interface"), exports),
21
- __exportStar(require("./mosaic-transformer"), exports);
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/chart/mosaic/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,uDAAqC","file":"index.js","sourcesContent":["export * from './mosaic';\nexport * from './interface';\nexport * from './mosaic-transformer';\n"]}
@@ -1,7 +0,0 @@
1
- import type { IChartExtendsSeriesSpec } from '../../typings/spec/common';
2
- import type { ICartesianChartSpec } from '../cartesian/interface';
3
- import type { IMosaicSeriesSpec } from '../../series/mosaic/interface';
4
- export interface IMosaicChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IMosaicSeriesSpec> {
5
- type: 'mosaic';
6
- series?: IMosaicSeriesSpec[];
7
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- //# sourceMappingURL=interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/chart/mosaic/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IChartExtendsSeriesSpec } from '../../typings/spec/common';\nimport type { ICartesianChartSpec } from '../cartesian/interface';\nimport type { IMosaicSeriesSpec } from '../../series/mosaic/interface';\n\nexport interface IMosaicChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IMosaicSeriesSpec> {\n /** 图表类型配置 */\n type: 'mosaic';\n /** 系列配置 */\n series?: IMosaicSeriesSpec[];\n}\n"]}
@@ -1,9 +0,0 @@
1
- import type { ICartesianAxisSpec } from '../../component/axis/cartesian/interface/spec';
2
- import { CartesianChartSpecTransformer } from '../cartesian';
3
- import type { IMosaicChartSpec } from './interface';
4
- export declare class MosaicChartSpecTransformer<T extends IMosaicChartSpec = IMosaicChartSpec> extends CartesianChartSpecTransformer<T> {
5
- protected _getDefaultSeriesSpec(spec: T): any;
6
- transformSpec(spec: T): void;
7
- protected _setDefaultXAxisSpec(spec: T): ICartesianAxisSpec;
8
- protected _setDefaultYAxisSpec(spec: T): ICartesianAxisSpec;
9
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.MosaicChartSpecTransformer = void 0;
6
-
7
- const cartesian_1 = require("../cartesian"), util_1 = require("../util");
8
-
9
- class MosaicChartSpecTransformer extends cartesian_1.CartesianChartSpecTransformer {
10
- _getDefaultSeriesSpec(spec) {
11
- const series = Object.assign(Object.assign({}, super._getDefaultSeriesSpec(spec)), {
12
- barWidth: spec.barWidth,
13
- barMaxWidth: spec.barMaxWidth,
14
- barMinWidth: spec.barMinWidth,
15
- barGapInGroup: spec.barGapInGroup,
16
- barBackground: spec.barBackground,
17
- barMinHeight: spec.barMinHeight,
18
- stackCornerRadius: spec.stackCornerRadius
19
- });
20
- return series.bar = spec.bar, series;
21
- }
22
- transformSpec(spec) {
23
- super.transformSpec(spec), (0, util_1.setDefaultCrosshairForCartesianChart)(spec);
24
- }
25
- _setDefaultXAxisSpec(spec) {
26
- return {
27
- orient: "bottom",
28
- type: "linear",
29
- label: {
30
- visible: !1
31
- }
32
- };
33
- }
34
- _setDefaultYAxisSpec(spec) {
35
- return {
36
- orient: "left",
37
- type: "linear"
38
- };
39
- }
40
- }
41
-
42
- exports.MosaicChartSpecTransformer = MosaicChartSpecTransformer;
43
- //# sourceMappingURL=mosaic-transformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/chart/mosaic/mosaic-transformer.ts"],"names":[],"mappings":";;;AACA,4CAA6D;AAC7D,kCAA+D;AAG/D,MAAa,0BAEX,SAAQ,yCAAgC;IAC9B,qBAAqB,CAAC,IAAO;QACrC,MAAM,MAAM,mCACP,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,QAAQ,EAAG,IAAyB,CAAC,QAAQ,EAC7C,WAAW,EAAG,IAAyB,CAAC,WAAW,EACnD,WAAW,EAAG,IAAyB,CAAC,WAAW,EACnD,aAAa,EAAG,IAAyB,CAAC,aAAa,EACvD,aAAa,EAAG,IAAyB,CAAC,aAAa,EACvD,YAAY,EAAG,IAAyB,CAAC,YAAY,EACrD,iBAAiB,EAAG,IAAyB,CAAC,iBAAiB,GAChE,CAAC;QACF,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAEtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,IAAO;QACnB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAA,2CAAoC,EAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAES,oBAAoB,CAAC,IAAO;QACpC,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK;aACf;SACoB,CAAC;IAC1B,CAAC;IAES,oBAAoB,CAAC,IAAO;QACpC,OAAO;YACL,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,QAAQ;SACO,CAAC;IAC1B,CAAC;CACF;AAxCD,gEAwCC","file":"mosaic-transformer.js","sourcesContent":["import type { ICartesianAxisSpec } from '../../component/axis/cartesian/interface/spec';\nimport { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IMosaicChartSpec } from './interface';\n\nexport class MosaicChartSpecTransformer<\n T extends IMosaicChartSpec = IMosaicChartSpec\n> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n const series: any = {\n ...super._getDefaultSeriesSpec(spec),\n barWidth: (spec as IMosaicChartSpec).barWidth,\n barMaxWidth: (spec as IMosaicChartSpec).barMaxWidth,\n barMinWidth: (spec as IMosaicChartSpec).barMinWidth,\n barGapInGroup: (spec as IMosaicChartSpec).barGapInGroup,\n barBackground: (spec as IMosaicChartSpec).barBackground,\n barMinHeight: (spec as IMosaicChartSpec).barMinHeight,\n stackCornerRadius: (spec as IMosaicChartSpec).stackCornerRadius\n };\n series.bar = spec.bar;\n\n return series;\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n\n protected _setDefaultXAxisSpec(spec: T): ICartesianAxisSpec {\n return {\n orient: 'bottom',\n type: 'linear',\n label: {\n visible: false\n }\n } as ICartesianAxisSpec;\n }\n\n protected _setDefaultYAxisSpec(spec: T): ICartesianAxisSpec {\n return {\n orient: 'left',\n type: 'linear'\n } as ICartesianAxisSpec;\n }\n}\n"]}
@@ -1,20 +0,0 @@
1
- import type { IMosaicChartSpec } from './interface';
2
- import { MosaicChartSpecTransformer } from './mosaic-transformer';
3
- import { BaseChart } from '../base';
4
- import type { IRegion } from '../../region';
5
- import type { IStackCacheRoot } from '../../util/data';
6
- export declare class MosaicChart<T extends IMosaicChartSpec = IMosaicChartSpec> extends BaseChart<T> {
7
- static readonly type: string;
8
- static readonly seriesType: string;
9
- static readonly transformerConstructor: typeof MosaicChartSpecTransformer;
10
- readonly transformerConstructor: typeof MosaicChartSpecTransformer;
11
- readonly type: string;
12
- readonly seriesType: string;
13
- protected _canStack: boolean;
14
- afterCompile(): void;
15
- protected _initStack(): void;
16
- handleAfterStackRegion: (region: IRegion, stackValueGroup: {
17
- [key: string]: IStackCacheRoot;
18
- }) => void;
19
- }
20
- export declare const registerMosaicChart: () => void;
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.registerMosaicChart = exports.MosaicChart = void 0;
6
-
7
- const type_1 = require("../../series/interface/type"), factory_1 = require("../../core/factory"), mosaic_transformer_1 = require("./mosaic-transformer"), base_1 = require("../base"), mosaic_1 = require("../../series/mosaic/mosaic"), stack_1 = require("../stack"), data_1 = require("../../util/data");
8
-
9
- class MosaicChart extends base_1.BaseChart {
10
- constructor() {
11
- super(...arguments), this.transformerConstructor = mosaic_transformer_1.MosaicChartSpecTransformer,
12
- this.type = "mosaic", this.seriesType = type_1.SeriesTypeEnum.mosaic, this._canStack = !0,
13
- this.handleAfterStackRegion = (region, stackValueGroup) => {
14
- region.getSeries().forEach((s => {
15
- const stackData = s.getStackData(), stackValue = s.getStackValue(), stackValueField = s.getStackValueField();
16
- stackData && stackValueField && ((0, data_1.stackMosaicTotal)(stackValueGroup[stackValue], stackValueField),
17
- (0, data_1.stackMosaic)(s, stackValueGroup[stackValue]));
18
- }));
19
- };
20
- }
21
- afterCompile() {
22
- super.afterCompile();
23
- }
24
- _initStack() {
25
- this._stack = new stack_1.Stack(this, {
26
- afterStackRegion: this.handleAfterStackRegion
27
- }), this._stack.init();
28
- }
29
- }
30
-
31
- exports.MosaicChart = MosaicChart, MosaicChart.type = "mosaic", MosaicChart.seriesType = type_1.SeriesTypeEnum.mosaic,
32
- MosaicChart.transformerConstructor = mosaic_transformer_1.MosaicChartSpecTransformer;
33
-
34
- const registerMosaicChart = () => {
35
- (0, mosaic_1.registerMosaicSeries)(), factory_1.Factory.registerChart(MosaicChart.type, MosaicChart);
36
- };
37
-
38
- exports.registerMosaicChart = registerMosaicChart;
39
- //# sourceMappingURL=mosaic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/chart/mosaic/mosaic.ts"],"names":[],"mappings":";;;AACA,sDAA6D;AAE7D,gDAA6C;AAC7C,6DAAkE;AAClE,kCAAoC;AACpC,uDAAkE;AAClE,oCAAiC;AAGjC,0CAAgE;AAEhE,MAAa,WAA2D,SAAQ,gBAAY;IAA5F;;QAIW,2BAAsB,GAAG,+CAA0B,CAAC;QACpD,SAAI,YAAgC;QACpC,eAAU,GAAW,qBAAc,CAAC,MAAM,CAAC;QAC1C,cAAS,GAAY,IAAI,CAAC;QAapC,2BAAsB,GAAG,CAAC,MAAe,EAAE,eAAmD,EAAE,EAAE;YAChG,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBACrC,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAC;gBAE/C,IAAI,SAAS,IAAI,eAAe,EAAE;oBAChC,IAAA,uBAAgB,EAAC,eAAe,CAAC,UAAU,CAAoB,EAAE,eAAe,CAAC,CAAC;oBAClF,IAAA,kBAAW,EAAC,CAAC,EAAE,eAAe,CAAC,UAAU,CAAoB,CAAC,CAAC;iBAChE;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAvBC,YAAY;QACV,KAAK,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,aAAK,CAAC,IAAI,EAAE;YAC5B,gBAAgB,EAAE,IAAI,CAAC,sBAAsB;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;;AAlBH,kCAgCC;AA/BiB,gBAAI,YAAgC;AACpC,sBAAU,GAAW,qBAAc,CAAC,MAAM,CAAC;AAC3C,kCAAsB,GAAG,+CAA0B,CAAC;AA+B/D,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAA,6BAAoB,GAAE,CAAC;IACvB,iBAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACvD,CAAC,CAAC;AAHW,QAAA,mBAAmB,uBAG9B","file":"mosaic.js","sourcesContent":["import { ChartTypeEnum } from '../interface/type';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport type { IMosaicChartSpec } from './interface';\nimport { Factory } from '../../core/factory';\nimport { MosaicChartSpecTransformer } from './mosaic-transformer';\nimport { BaseChart } from '../base';\nimport { registerMosaicSeries } from '../../series/mosaic/mosaic';\nimport { Stack } from '../stack';\nimport type { IRegion } from '../../region';\nimport type { IStackCacheNode, IStackCacheRoot } from '../../util/data';\nimport { stackMosaic, stackMosaicTotal } from '../../util/data';\n\nexport class MosaicChart<T extends IMosaicChartSpec = IMosaicChartSpec> extends BaseChart<T> {\n static readonly type: string = ChartTypeEnum.mosaic;\n static readonly seriesType: string = SeriesTypeEnum.mosaic;\n static readonly transformerConstructor = MosaicChartSpecTransformer;\n readonly transformerConstructor = MosaicChartSpecTransformer;\n readonly type: string = ChartTypeEnum.mosaic;\n readonly seriesType: string = SeriesTypeEnum.mosaic;\n protected _canStack: boolean = true;\n\n afterCompile() {\n super.afterCompile();\n }\n\n protected _initStack() {\n this._stack = new Stack(this, {\n afterStackRegion: this.handleAfterStackRegion\n });\n this._stack.init();\n }\n\n handleAfterStackRegion = (region: IRegion, stackValueGroup: { [key: string]: IStackCacheRoot }) => {\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField(); // yField\n\n if (stackData && stackValueField) {\n stackMosaicTotal(stackValueGroup[stackValue] as IStackCacheNode, stackValueField);\n stackMosaic(s, stackValueGroup[stackValue] as IStackCacheNode);\n }\n });\n };\n}\n\nexport const registerMosaicChart = () => {\n registerMosaicSeries();\n Factory.registerChart(MosaicChart.type, MosaicChart);\n};\n"]}
@@ -1,16 +0,0 @@
1
- import type { Functional } from '@visactor/vrender-components';
2
- import type { ILabelSpec, IMultiLabelSpec } from '../../component/label/interface';
3
- import type { IBarSeriesSpec, IBarSeriesTheme } from '../bar/interface';
4
- import type { SeriesMarkNameEnum } from '../interface/type';
5
- export interface IMosaicSeriesSpec extends Omit<IBarSeriesSpec, 'type' | 'label'> {
6
- type: 'mosaic';
7
- [SeriesMarkNameEnum.label]?: IMultiLabelSpec<Omit<ILabelSpec, 'position'> & {
8
- filterByGroup?: {
9
- field: string;
10
- type?: 'min' | 'max';
11
- filter?: (d: any) => boolean;
12
- };
13
- position?: Functional<'outside' | 'top' | 'bottom' | 'left' | 'right' | 'inside' | 'inside-top' | 'inside-bottom' | 'inside-right' | 'inside-left' | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'>;
14
- }>;
15
- }
16
- export type IMosaicSeriesTheme = IBarSeriesTheme;
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- //# sourceMappingURL=interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/series/mosaic/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { Functional } from '@visactor/vrender-components';\nimport type { ILabelSpec, IMultiLabelSpec } from '../../component/label/interface';\nimport type { IBarSeriesSpec, IBarSeriesTheme } from '../bar/interface';\nimport type { SeriesMarkNameEnum } from '../interface/type';\n\nexport interface IMosaicSeriesSpec extends Omit<IBarSeriesSpec, 'type' | 'label'> {\n /** 系列类型 */\n type: 'mosaic';\n [SeriesMarkNameEnum.label]?: IMultiLabelSpec<\n Omit<ILabelSpec, 'position'> & {\n filterByGroup?: {\n field: string;\n type?: 'min' | 'max';\n filter?: (d: any) => boolean;\n };\n\n /**\n * 标签位置\n * @since 1.6.0\n * 支持'top-right' | 'top-left'| 'bottom-right' | 'bottom-left',以及函数形式配置\n * */\n position?: Functional<\n | 'outside'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'inside'\n | 'inside-top'\n | 'inside-bottom'\n | 'inside-right'\n | 'inside-left'\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n >;\n }\n >;\n}\n\nexport type IMosaicSeriesTheme = IBarSeriesTheme;\n"]}