@visactor/vchart 2.0.3-alpha.0 → 2.0.3-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +980 -897
  3. package/build/index.js +981 -896
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/index.js +2 -1
  7. package/cjs/animation/interface.js +1 -2
  8. package/cjs/animation/utils.js +1 -1
  9. package/cjs/animation/utils.js.map +1 -1
  10. package/cjs/chart/base/base-chart-transformer.js +3 -3
  11. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  12. package/cjs/chart/base/base-chart.d.ts +1 -0
  13. package/cjs/chart/base/base-chart.js +5 -8
  14. package/cjs/chart/base/base-chart.js.map +1 -1
  15. package/cjs/chart/index.d.ts +2 -2
  16. package/cjs/chart/index.js +7 -2
  17. package/cjs/chart/index.js.map +1 -1
  18. package/cjs/chart/interface/chart.d.ts +1 -0
  19. package/cjs/chart/interface/chart.js.map +1 -1
  20. package/cjs/chart/interface/common.d.ts +1 -1
  21. package/cjs/chart/interface/common.js.map +1 -1
  22. package/cjs/chart/util.js +2 -1
  23. package/cjs/compile/compiler.d.ts +1 -0
  24. package/cjs/compile/compiler.js +13 -5
  25. package/cjs/compile/compiler.js.map +1 -1
  26. package/cjs/compile/interface/compilable-item.d.ts +1 -0
  27. package/cjs/compile/interface/compilable-item.js.map +1 -1
  28. package/cjs/compile/interface/compiler.d.ts +5 -0
  29. package/cjs/compile/interface/compiler.js.map +1 -1
  30. package/cjs/component/axis/base-axis.js +14 -13
  31. package/cjs/component/axis/base-axis.js.map +1 -1
  32. package/cjs/component/axis/cartesian/band-axis.d.ts +8 -0
  33. package/cjs/component/axis/cartesian/band-axis.js +9 -0
  34. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  35. package/cjs/component/axis/interface/common.js.map +1 -1
  36. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +2 -0
  37. package/cjs/component/axis/mixin/band-axis-mixin.js +15 -1
  38. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  39. package/cjs/component/brush/brush.js +6 -6
  40. package/cjs/component/brush/brush.js.map +1 -1
  41. package/cjs/component/brush/interface.d.ts +1 -0
  42. package/cjs/component/brush/interface.js.map +1 -1
  43. package/cjs/component/crosshair/base.d.ts +1 -1
  44. package/cjs/component/crosshair/base.js +1 -1
  45. package/cjs/component/crosshair/base.js.map +1 -1
  46. package/cjs/component/crosshair/utils/cartesian.js +2 -2
  47. package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
  48. package/cjs/component/custom-mark/custom-mark.js +6 -9
  49. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  50. package/cjs/component/data-zoom/data-filter-base-component.d.ts +0 -1
  51. package/cjs/component/data-zoom/data-filter-base-component.js +13 -19
  52. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  53. package/cjs/component/data-zoom/interface.d.ts +0 -3
  54. package/cjs/component/data-zoom/interface.js.map +1 -1
  55. package/cjs/component/data-zoom/util.d.ts +0 -1
  56. package/cjs/component/data-zoom/util.js +3 -4
  57. package/cjs/component/data-zoom/util.js.map +1 -1
  58. package/cjs/component/player/player.js +2 -1
  59. package/cjs/component/player/player.js.map +1 -1
  60. package/cjs/component/tooltip/tooltip.js +8 -3
  61. package/cjs/component/tooltip/tooltip.js.map +1 -1
  62. package/cjs/constant/attribute.js +1 -2
  63. package/cjs/constant/sunburst.js +2 -1
  64. package/cjs/constant/waterfall.js +1 -2
  65. package/cjs/core/index.d.ts +1 -1
  66. package/cjs/core/index.js +1 -1
  67. package/cjs/core/index.js.map +1 -1
  68. package/cjs/core/interface.d.ts +1 -0
  69. package/cjs/core/interface.js +1 -1
  70. package/cjs/core/interface.js.map +1 -1
  71. package/cjs/core/vchart.d.ts +2 -0
  72. package/cjs/core/vchart.js +42 -22
  73. package/cjs/core/vchart.js.map +1 -1
  74. package/cjs/data/initialize.js +1 -1
  75. package/cjs/data/register.js +1 -1
  76. package/cjs/data/transforms/obj-flat.js +1 -4
  77. package/cjs/data/transforms/obj-flat.js.map +1 -1
  78. package/cjs/mark/base/base-line.d.ts +1 -1
  79. package/cjs/mark/base/base-line.js.map +1 -1
  80. package/cjs/mark/base/base-mark.d.ts +6 -2
  81. package/cjs/mark/base/base-mark.js +69 -51
  82. package/cjs/mark/base/base-mark.js.map +1 -1
  83. package/cjs/mark/group.d.ts +3 -2
  84. package/cjs/mark/group.js +15 -13
  85. package/cjs/mark/group.js.map +1 -1
  86. package/cjs/mark/interface/common.d.ts +5 -2
  87. package/cjs/mark/interface/common.js.map +1 -1
  88. package/cjs/model/base-model.d.ts +5 -1
  89. package/cjs/model/base-model.js +7 -0
  90. package/cjs/model/base-model.js.map +1 -1
  91. package/cjs/model/interface.d.ts +5 -2
  92. package/cjs/model/interface.js.map +1 -1
  93. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
  94. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
  95. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  96. package/cjs/plugin/components/tooltip-handler/utils/style.js +4 -4
  97. package/cjs/plugin/components/tooltip-handler/utils/style.js.map +1 -1
  98. package/cjs/region/region.js.map +1 -1
  99. package/cjs/series/base/base-series-transformer.js +1 -1
  100. package/cjs/series/base/base-series-transformer.js.map +1 -1
  101. package/cjs/series/base/base-series.js +2 -3
  102. package/cjs/series/base/base-series.js.map +1 -1
  103. package/cjs/series/dot/dot.d.ts +0 -1
  104. package/cjs/series/dot/dot.js +6 -29
  105. package/cjs/series/dot/dot.js.map +1 -1
  106. package/cjs/series/dot/interface.d.ts +0 -1
  107. package/cjs/series/dot/interface.js.map +1 -1
  108. package/cjs/series/dot/tooltip-helper.js +2 -3
  109. package/cjs/series/dot/tooltip-helper.js.map +1 -1
  110. package/cjs/series/funnel/funnel.js +0 -2
  111. package/cjs/series/funnel/funnel.js.map +1 -1
  112. package/cjs/series/interface/type.d.ts +0 -3
  113. package/cjs/series/interface/type.js +3 -5
  114. package/cjs/series/interface/type.js.map +1 -1
  115. package/cjs/series/link/constant.js +0 -8
  116. package/cjs/series/link/constant.js.map +1 -1
  117. package/cjs/series/link/interface.d.ts +1 -10
  118. package/cjs/series/link/interface.js +1 -5
  119. package/cjs/series/link/interface.js.map +1 -1
  120. package/cjs/series/link/link.d.ts +1 -3
  121. package/cjs/series/link/link.js +16 -46
  122. package/cjs/series/link/link.js.map +1 -1
  123. package/cjs/series/map/map.js +1 -2
  124. package/cjs/series/map/map.js.map +1 -1
  125. package/cjs/series/pie/pie.js +0 -1
  126. package/cjs/series/pie/pie.js.map +1 -1
  127. package/cjs/series/sankey/sankey.d.ts +10 -10
  128. package/cjs/series/sankey/sankey.js +199 -194
  129. package/cjs/series/sankey/sankey.js.map +1 -1
  130. package/cjs/util/mark.d.ts +1 -0
  131. package/cjs/util/mark.js +10 -1
  132. package/cjs/util/mark.js.map +1 -1
  133. package/cjs/util/object.d.ts +1 -0
  134. package/cjs/util/object.js +13 -2
  135. package/cjs/util/object.js.map +1 -1
  136. package/esm/animation/index.js +2 -1
  137. package/esm/animation/interface.js +1 -2
  138. package/esm/animation/utils.js +1 -1
  139. package/esm/animation/utils.js.map +1 -1
  140. package/esm/chart/base/base-chart-transformer.js +3 -3
  141. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  142. package/esm/chart/base/base-chart.d.ts +1 -0
  143. package/esm/chart/base/base-chart.js +5 -8
  144. package/esm/chart/base/base-chart.js.map +1 -1
  145. package/esm/chart/index.d.ts +2 -2
  146. package/esm/chart/index.js +2 -2
  147. package/esm/chart/index.js.map +1 -1
  148. package/esm/chart/interface/chart.d.ts +1 -0
  149. package/esm/chart/interface/chart.js.map +1 -1
  150. package/esm/chart/interface/common.d.ts +1 -1
  151. package/esm/chart/interface/common.js.map +1 -1
  152. package/esm/chart/util.js +2 -1
  153. package/esm/compile/compiler.d.ts +1 -0
  154. package/esm/compile/compiler.js +13 -6
  155. package/esm/compile/compiler.js.map +1 -1
  156. package/esm/compile/interface/compilable-item.d.ts +1 -0
  157. package/esm/compile/interface/compilable-item.js.map +1 -1
  158. package/esm/compile/interface/compiler.d.ts +5 -0
  159. package/esm/compile/interface/compiler.js.map +1 -1
  160. package/esm/component/axis/base-axis.js +8 -8
  161. package/esm/component/axis/base-axis.js.map +1 -1
  162. package/esm/component/axis/cartesian/band-axis.d.ts +8 -0
  163. package/esm/component/axis/cartesian/band-axis.js +9 -1
  164. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  165. package/esm/component/axis/interface/common.js.map +1 -1
  166. package/esm/component/axis/mixin/band-axis-mixin.d.ts +2 -0
  167. package/esm/component/axis/mixin/band-axis-mixin.js +15 -1
  168. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  169. package/esm/component/brush/brush.js +6 -6
  170. package/esm/component/brush/brush.js.map +1 -1
  171. package/esm/component/brush/interface.d.ts +1 -0
  172. package/esm/component/brush/interface.js.map +1 -1
  173. package/esm/component/crosshair/base.d.ts +1 -1
  174. package/esm/component/crosshair/base.js +1 -1
  175. package/esm/component/crosshair/base.js.map +1 -1
  176. package/esm/component/crosshair/utils/cartesian.js +2 -2
  177. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  178. package/esm/component/custom-mark/custom-mark.js +6 -9
  179. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  180. package/esm/component/data-zoom/data-filter-base-component.d.ts +0 -1
  181. package/esm/component/data-zoom/data-filter-base-component.js +13 -18
  182. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  183. package/esm/component/data-zoom/interface.d.ts +0 -3
  184. package/esm/component/data-zoom/interface.js.map +1 -1
  185. package/esm/component/data-zoom/util.d.ts +0 -1
  186. package/esm/component/data-zoom/util.js +2 -5
  187. package/esm/component/data-zoom/util.js.map +1 -1
  188. package/esm/component/player/player.js +2 -1
  189. package/esm/component/player/player.js.map +1 -1
  190. package/esm/component/tooltip/tooltip.js +8 -3
  191. package/esm/component/tooltip/tooltip.js.map +1 -1
  192. package/esm/constant/attribute.js +1 -2
  193. package/esm/constant/sunburst.js +2 -1
  194. package/esm/constant/waterfall.js +1 -2
  195. package/esm/core/index.d.ts +1 -1
  196. package/esm/core/index.js +1 -1
  197. package/esm/core/index.js.map +1 -1
  198. package/esm/core/interface.d.ts +1 -0
  199. package/esm/core/interface.js +1 -1
  200. package/esm/core/interface.js.map +1 -1
  201. package/esm/core/vchart.d.ts +2 -0
  202. package/esm/core/vchart.js +42 -22
  203. package/esm/core/vchart.js.map +1 -1
  204. package/esm/data/initialize.js +1 -1
  205. package/esm/data/register.js +1 -1
  206. package/esm/data/transforms/obj-flat.js +1 -4
  207. package/esm/data/transforms/obj-flat.js.map +1 -1
  208. package/esm/mark/base/base-line.d.ts +1 -1
  209. package/esm/mark/base/base-line.js.map +1 -1
  210. package/esm/mark/base/base-mark.d.ts +6 -2
  211. package/esm/mark/base/base-mark.js +69 -50
  212. package/esm/mark/base/base-mark.js.map +1 -1
  213. package/esm/mark/group.d.ts +3 -2
  214. package/esm/mark/group.js +18 -12
  215. package/esm/mark/group.js.map +1 -1
  216. package/esm/mark/interface/common.d.ts +5 -2
  217. package/esm/mark/interface/common.js.map +1 -1
  218. package/esm/model/base-model.d.ts +5 -1
  219. package/esm/model/base-model.js +7 -0
  220. package/esm/model/base-model.js.map +1 -1
  221. package/esm/model/interface.d.ts +5 -2
  222. package/esm/model/interface.js.map +1 -1
  223. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
  224. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
  225. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  226. package/esm/plugin/components/tooltip-handler/utils/style.js +5 -4
  227. package/esm/plugin/components/tooltip-handler/utils/style.js.map +1 -1
  228. package/esm/region/region.js.map +1 -1
  229. package/esm/series/base/base-series-transformer.js +1 -1
  230. package/esm/series/base/base-series-transformer.js.map +1 -1
  231. package/esm/series/base/base-series.js +2 -3
  232. package/esm/series/base/base-series.js.map +1 -1
  233. package/esm/series/dot/dot.d.ts +0 -1
  234. package/esm/series/dot/dot.js +6 -29
  235. package/esm/series/dot/dot.js.map +1 -1
  236. package/esm/series/dot/interface.d.ts +0 -1
  237. package/esm/series/dot/interface.js.map +1 -1
  238. package/esm/series/dot/tooltip-helper.js +2 -3
  239. package/esm/series/dot/tooltip-helper.js.map +1 -1
  240. package/esm/series/funnel/funnel.js +0 -2
  241. package/esm/series/funnel/funnel.js.map +1 -1
  242. package/esm/series/interface/type.d.ts +0 -3
  243. package/esm/series/interface/type.js +3 -5
  244. package/esm/series/interface/type.js.map +1 -1
  245. package/esm/series/link/constant.js +0 -8
  246. package/esm/series/link/constant.js.map +1 -1
  247. package/esm/series/link/interface.d.ts +1 -10
  248. package/esm/series/link/interface.js +1 -5
  249. package/esm/series/link/interface.js.map +1 -1
  250. package/esm/series/link/link.d.ts +1 -3
  251. package/esm/series/link/link.js +16 -48
  252. package/esm/series/link/link.js.map +1 -1
  253. package/esm/series/map/map.js +1 -2
  254. package/esm/series/map/map.js.map +1 -1
  255. package/esm/series/pie/pie.js +0 -1
  256. package/esm/series/pie/pie.js.map +1 -1
  257. package/esm/series/sankey/sankey.d.ts +10 -10
  258. package/esm/series/sankey/sankey.js +192 -187
  259. package/esm/series/sankey/sankey.js.map +1 -1
  260. package/esm/util/mark.d.ts +1 -0
  261. package/esm/util/mark.js +7 -0
  262. package/esm/util/mark.js.map +1 -1
  263. package/esm/util/object.d.ts +1 -0
  264. package/esm/util/object.js +11 -0
  265. package/esm/util/object.js.map +1 -1
  266. package/package.json +12 -12
  267. package/cjs/animation/animate-manager.d.ts +0 -1
  268. package/cjs/animation/animate-manager.js +0 -2
  269. package/cjs/animation/animate-manager.js.map +0 -1
  270. package/esm/animation/animate-manager.d.ts +0 -1
  271. package/esm/animation/animate-manager.js +0 -2
  272. package/esm/animation/animate-manager.js.map +0 -1
@@ -15,7 +15,7 @@ export declare abstract class BaseLineMark<T extends ILineLikeMarkSpec = ILineLi
15
15
  setStyle<T>(style: Partial<ConvertToMarkStyleSpec<T>> | Partial<IMarkStyle<T>>, state?: StateValueType, level?: number): void;
16
16
  _isValidPointChannel: (channel: string) => boolean;
17
17
  _getLineSegments(items: any[], points: IPointLike[]): any[];
18
- _getPrevPoints(g: ILine): IPointLike[];
18
+ _getPrevPoints(g: ILine): IPointLike[] | null;
19
19
  _runPointsEncoder(newStyles: Record<string, (datum: Datum) => any>, g: IMarkGraphic, attrs?: any): any;
20
20
  _runEncoderOfGraphic(newStyles: Record<string, (datum: Datum) => any>, g: IMarkGraphic, attrs?: any): any;
21
21
  protected _getDataByKey(data: Datum[]): import("../interface").GroupedData<Datum>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/base/base-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAsC,MAAM,cAAc,CAAC;AAG7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ;IACR,eAAe;IACf,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;CACb,CAAC;AAEF,MAAM,OAAgB,YAA8D,SAAQ,QAAW;IAAvG;;QAOY,sBAAiB,GAAa,EAAE,CAAC;QAqD3C,yBAAoB,GAAG,CAAC,OAAe,EAAE,EAAE;YACzC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC;IA+KJ,CAAC;IA1OW,qBAAqB;QAC7B,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAID,iBAAiB,CAAC,IAAkB;QAClC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IASD,QAAQ,CACN,KAAkE,EAClE,QAAwB,QAAQ,EAChC,QAAgB,CAAC;QAEjB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAChB,OAAO;SACR;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAC7B;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,SAAS,GAAI,KAAa,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvD,OAAO;aACR;YACD,IACE,WAAW;gBACX,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChC,CAAC,gBAAgB,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,KAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAA,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,EAChF;gBACA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnC;aACF;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAW,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAEhG,IAAI,CAAC,YAAY,CAAC,IAAW,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAMD,gBAAgB,CAAC,KAAY,EAAE,MAAoB;QACjD,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC7D,OAAO,IAAI,CAAC;SACb;QAED,MAAM,QAAQ,GAA4D,EAAE,CAAC;QAC7E,IAAI,gBAAgB,GAAQ,IAAI,CAAC;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,IACE,CAAC,gBAAgB;gBACjB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAClC,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;gBACnE,CAAC,CAAC,EACF;gBACA,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACnB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;iBAChD;gBAED,gBAAgB,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,gBAAgB;oBACvB,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC1B,uCACK,KAAK,CAAC,KAAK,KACd,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAC9F;YACJ,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,CAAQ;QACrB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC;QAEzC,OAAO,CACL,MAAM,aAAN,MAAM,cAAN,MAAM,GACN,CAAC,QAAQ;YACP,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAiB,EAAE,GAA0B,EAAE,EAAE;gBAChE,IAAI,GAAG,CAAC,MAAM,EAAE;oBACd,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAiB,EAAE,EAAE;wBACvC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClB,CAAC,CAAC,CAAC;iBACJ;gBAED,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC;YACR,CAAC,CAAC,IAAI,CAAC,CACV,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,SAAgD,EAAE,CAAe,EAAE,QAAa,EAAE;;QAClG,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5B,MAAM,SAAS,GAAU,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,MAAM,WAAW,GAAQ,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,aAAa,0CAAE,WAAW,CAAC;QACpD,MAAM,YAAY,GAAG,WAAW,IAAI,WAAW,CAAC,YAAY,KAAK,CAAC,CAAC;QAEnE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE;;YAC3C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAgB,CAAC;YACjC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAEtB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACxC,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE;oBACtC,MAAM,CAAC,KAAK,CAAS,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC/D;qBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;oBACpE,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;iBACzD;qBAAM,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,YAAY,CAAC,EAAE;oBACxD,WAAW,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;iBACpD;YACH,CAAC,CAAC,CAAC;YAGF,MAAM,CAAC,KAAK,CAAS,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mCAAI,KAAK,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,EAAE;YACf,MAAM,QAAQ,GAAG,MAAA,MAAC,CAAS,CAAC,SAAS,0CAAE,QAAQ,mCAAI,EAAE,CAAC;YAEtD,QAAQ,CAAC,IAAI,CAAC;gBACZ,MAAM;aACP,CAAC,CAAC;YACH,OAAO,YAAY;gBACjB,CAAC,iCACM,WAAW,KACd,QAAQ,IAEZ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;SAClB;aAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAE1D,IAAI,QAAQ,EAAE;gBACZ,qDACK,WAAW,GACX,SAAS,CAAC,CAAC,CAAC,KACf,QAAQ,EACR,MAAM,EAAE,IAAoB,IAC5B;aACH;SACF;QAED,qDACK,WAAW,GACX,SAAS,CAAC,CAAC,CAAC,KACf,MAAM,EACN,QAAQ,EAAE,IAAa,IACvB;IACJ,CAAC;IAED,oBAAoB,CAAC,SAAgD,EAAE,CAAe,EAAE,QAAa,EAAE;QACrG,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5B,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YAC9F,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SACpD;QAED,OAAO,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAES,aAAa,CAAC,IAAa;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAES,mBAAmB;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC;QACjE,MAAM,QAAQ,GAAmB,EAAE,CAAC;QAEpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,QAAkB,CAAC,CAAC;YAChF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;YAEvF,IAAI,YAAY,KAAK,CAAC,EAAE;gBACtB,MAAM,CAAC,GAAG;oBACR,OAAO,kCACF,IAAI,CAAC,iBAAiB,EAAE,KAC3B,SAAS,EAAE,SAAS,CAAC,KAAK,EAC1B,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,QAAQ,EACnB,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,QAAQ,GACnB;iBACF,CAAC;gBAEF,QAAQ,CAAC,IAAI,CAAC,CAAiB,CAAC,CAAC;aAClC;iBAAM;gBACL,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAE3D,OAAO;YACL,eAAe,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE;YAC5C,QAAQ,EAAE,GAAG;YACb,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IAES,2BAA2B,CAAC,CAAe;IAErD,CAAC;IACS,sBAAsB,CAAC,MAAc,EAAE,CAAe;QAC9D,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QACjB,MAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;CACF","file":"base-line.js","sourcesContent":["import { isValidScaleType } from '@visactor/vscale';\nimport type { StateValueType } from '../../compile/mark';\nimport type { ConvertToMarkStyleSpec, ILineLikeMarkSpec } from '../../typings/visual';\nimport type { IPointLike } from '@visactor/vutils';\nimport { isFunction, isNil } from '@visactor/vutils';\nimport { BaseMark } from './base-mark';\nimport { DiffState, type IMarkGraphic, type IMarkStyle } from '../interface';\nimport type { Datum } from '../../typings/common';\nimport type { IGroup, ILine, ILineGraphicAttribute } from '@visactor/vrender-core';\nimport { isSegmentAttrEqual } from '../utils/line';\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport { DEFAULT_DATA_KEY } from '../../constant/data';\n\nexport const LINE_SEGMENT_ATTRIBUTES = [\n 'stroke',\n 'strokeOpacity',\n 'lineDash',\n 'lineDashOffset',\n 'lineCap',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit'\n];\n\nexport abstract class BaseLineMark<T extends ILineLikeMarkSpec = ILineLikeMarkSpec> extends BaseMark<T> {\n protected abstract _getIgnoreAttributes(): string[];\n\n protected _getSegmentAttributes() {\n return LINE_SEGMENT_ATTRIBUTES;\n }\n\n protected _segmentStyleKeys: string[] = [];\n\n initStyleWithSpec(spec: IMarkSpec<T>) {\n this._segmentStyleKeys = [];\n\n super.initStyleWithSpec(spec);\n }\n /**\n * @override\n * 之所以覆写是因为 vgrammar 侧默认都会处理 lineSegments,非常耗性能,所以需要 VChart 给一个标志位用于是否执行。\n * 由外部series调用,设置markStyle的接口。\n * @param style\n * @param level\n * @param state\n */\n setStyle<T>(\n style: Partial<ConvertToMarkStyleSpec<T>> | Partial<IMarkStyle<T>>,\n state: StateValueType = 'normal',\n level: number = 0\n ): void {\n if (isNil(style)) {\n return;\n }\n\n if (this.stateStyle[state] === undefined) {\n this.stateStyle[state] = {};\n }\n\n const ignoreAttributes = this._getIgnoreAttributes();\n const segmentAttributes = this._getSegmentAttributes();\n const isUserLevel = this.isUserLevel(level);\n\n Object.keys(style).forEach(attr => {\n const attrStyle = (style as any)[attr];\n if (isNil(attrStyle) || ignoreAttributes.includes(attr)) {\n return;\n }\n if (\n isUserLevel &&\n segmentAttributes.includes(attr) &&\n (isValidScaleType(attrStyle?.type) || attrStyle?.scale || isFunction(attrStyle))\n ) {\n if (!this._segmentStyleKeys.includes(attr)) {\n this._segmentStyleKeys.push(attr);\n }\n }\n\n const styleConverter = this._filterAttribute(attr as any, attrStyle, state, level, isUserLevel);\n\n this.setAttribute(attr as any, styleConverter, state, level);\n });\n }\n\n _isValidPointChannel = (channel: string) => {\n return ['x', 'y', 'defined'].includes(channel);\n };\n\n _getLineSegments(items: any[], points: IPointLike[]) {\n if (!this._segmentStyleKeys || !this._segmentStyleKeys.length) {\n return null;\n }\n\n const segments: { attrs: any; startIndex: number; endIndex?: number }[] = [];\n let prevSegmentAttrs: any = null;\n\n items.forEach((item, index) => {\n if (\n !prevSegmentAttrs ||\n !this._segmentStyleKeys.every(key => {\n return isSegmentAttrEqual(prevSegmentAttrs[key], item[key], key);\n })\n ) {\n if (segments.length) {\n segments[segments.length - 1].endIndex = index;\n }\n\n prevSegmentAttrs = item;\n segments.push({\n attrs: prevSegmentAttrs,\n startIndex: index\n });\n }\n });\n\n if (segments.length >= 2) {\n return segments.map(entry => {\n return {\n ...entry.attrs,\n points: points.slice(entry.startIndex, isNil(entry.endIndex) ? points.length : entry.endIndex)\n };\n });\n }\n\n return null;\n }\n\n _getPrevPoints(g: ILine) {\n const { points, segments } = g.attribute;\n\n return (\n points ??\n (segments\n ? segments.reduce((res: IPointLike[], seg: ILineGraphicAttribute) => {\n if (seg.points) {\n seg.points.forEach((point: IPointLike) => {\n res.push(point);\n });\n }\n\n return res;\n }, [])\n : null)\n );\n }\n\n _runPointsEncoder(newStyles: Record<string, (datum: Datum) => any>, g: IMarkGraphic, attrs: any = {}) {\n const data = g.context.data;\n const lineAttrs: any[] = [];\n const points: IPointLike[] = [];\n const commonAttrs: any = {};\n const progressive = this.renderContext?.progressive;\n const isFirstFrame = progressive && progressive.currentIndex === 0;\n\n data.forEach((datum: Datum, index: number) => {\n points[index] = {} as IPointLike;\n lineAttrs[index] = {};\n\n Object.keys(newStyles).forEach(attrName => {\n if (this._isValidPointChannel(attrName)) {\n (points[index] as any)[attrName] = newStyles[attrName](datum);\n } else if (this._segmentStyleKeys.includes(attrName) && !progressive) {\n lineAttrs[index][attrName] = newStyles[attrName](datum);\n } else if (index === 0 && (!progressive || isFirstFrame)) {\n commonAttrs[attrName] = newStyles[attrName](datum);\n }\n });\n\n // todo 上下文,似乎是动画相关的\n (points[index] as any).context = this._keyGetter(datum) ?? index;\n });\n\n if (progressive) {\n const segments = (g as any).attribute?.segments ?? [];\n\n segments.push({\n points\n });\n return isFirstFrame\n ? {\n ...commonAttrs,\n segments\n }\n : { segments };\n } else if (this._segmentStyleKeys && this._segmentStyleKeys.length) {\n const segments = this._getLineSegments(lineAttrs, points);\n\n if (segments) {\n return {\n ...commonAttrs,\n ...lineAttrs[0],\n segments,\n points: null as IPointLike[]\n };\n }\n }\n\n return {\n ...commonAttrs,\n ...lineAttrs[0],\n points,\n segments: null as any[]\n };\n }\n\n _runEncoderOfGraphic(newStyles: Record<string, (datum: Datum) => any>, g: IMarkGraphic, attrs: any = {}) {\n const data = g.context.data;\n if (newStyles && Object.keys(newStyles).some(this._isValidPointChannel) && data && data.length) {\n return this._runPointsEncoder(newStyles, g, attrs);\n }\n\n return super._runEncoderOfGraphic(newStyles, g, attrs);\n }\n\n protected _getDataByKey(data: Datum[]) {\n return this._dataByGroup;\n }\n\n protected _runProgressiveJoin() {\n const currentIndex = this.renderContext.progressive.currentIndex;\n const graphics: IMarkGraphic[] = [];\n\n this._dataByGroup.keys.forEach((groupKey, index) => {\n const data = this.renderContext.progressive.groupedData.get(groupKey as string);\n const groupStep = this.renderContext.progressive.step;\n const dataSlice = data.slice(currentIndex * groupStep, (currentIndex + 1) * groupStep);\n\n if (currentIndex === 0) {\n const g = {\n context: {\n ...this._getCommonContext(),\n diffState: DiffState.enter,\n data: dataSlice,\n uniqueKey: groupKey,\n key: groupKey,\n groupKey: groupKey\n }\n };\n\n graphics.push(g as IMarkGraphic);\n } else {\n const g = this._graphics[index];\n g.context.data = dataSlice;\n }\n });\n const res = currentIndex === 0 ? graphics : this._graphics;\n\n return {\n graphicsByGroup: { [DEFAULT_DATA_KEY]: res },\n graphics: res,\n needUpdate: false\n };\n }\n\n protected _setCommonAttributesToTheme(g: IMarkGraphic) {\n // do nothing in line/area\n }\n protected _addProgressiveGraphic(parent: IGroup, g: IMarkGraphic) {\n g.incremental = 1;\n (parent as IGroup).appendChild(g);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/mark/base/base-line.ts"],"names":[],"mappings":"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","file":"base-line.js","sourcesContent":["import { isValidScaleType } from '@visactor/vscale';\nimport type { StateValueType } from '../../compile/mark';\nimport type { ConvertToMarkStyleSpec, ILineLikeMarkSpec } from '../../typings/visual';\nimport type { IPointLike } from '@visactor/vutils';\nimport { isFunction, isNil } from '@visactor/vutils';\nimport { BaseMark } from './base-mark';\nimport { DiffState, type IMarkGraphic, type IMarkStyle } from '../interface';\nimport type { Datum } from '../../typings/common';\nimport type { IGroup, ILine, ILineGraphicAttribute } from '@visactor/vrender-core';\nimport { isSegmentAttrEqual } from '../utils/line';\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport { DEFAULT_DATA_KEY } from '../../constant/data';\n\nexport const LINE_SEGMENT_ATTRIBUTES = [\n 'stroke',\n 'strokeOpacity',\n 'lineDash',\n 'lineDashOffset',\n 'lineCap',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit'\n];\n\nexport abstract class BaseLineMark<T extends ILineLikeMarkSpec = ILineLikeMarkSpec> extends BaseMark<T> {\n protected abstract _getIgnoreAttributes(): string[];\n\n protected _getSegmentAttributes() {\n return LINE_SEGMENT_ATTRIBUTES;\n }\n\n protected _segmentStyleKeys: string[] = [];\n\n initStyleWithSpec(spec: IMarkSpec<T>) {\n this._segmentStyleKeys = [];\n\n super.initStyleWithSpec(spec);\n }\n /**\n * @override\n * 之所以覆写是因为 vgrammar 侧默认都会处理 lineSegments,非常耗性能,所以需要 VChart 给一个标志位用于是否执行。\n * 由外部series调用,设置markStyle的接口。\n * @param style\n * @param level\n * @param state\n */\n setStyle<T>(\n style: Partial<ConvertToMarkStyleSpec<T>> | Partial<IMarkStyle<T>>,\n state: StateValueType = 'normal',\n level: number = 0\n ): void {\n if (isNil(style)) {\n return;\n }\n\n if (this.stateStyle[state] === undefined) {\n this.stateStyle[state] = {};\n }\n\n const ignoreAttributes = this._getIgnoreAttributes();\n const segmentAttributes = this._getSegmentAttributes();\n const isUserLevel = this.isUserLevel(level);\n\n Object.keys(style).forEach(attr => {\n const attrStyle = (style as any)[attr];\n if (isNil(attrStyle) || ignoreAttributes.includes(attr)) {\n return;\n }\n if (\n isUserLevel &&\n segmentAttributes.includes(attr) &&\n (isValidScaleType(attrStyle?.type) || attrStyle?.scale || isFunction(attrStyle))\n ) {\n if (!this._segmentStyleKeys.includes(attr)) {\n this._segmentStyleKeys.push(attr);\n }\n }\n\n const styleConverter = this._filterAttribute(attr as any, attrStyle, state, level, isUserLevel);\n\n this.setAttribute(attr as any, styleConverter, state, level);\n });\n }\n\n _isValidPointChannel = (channel: string) => {\n return ['x', 'y', 'defined'].includes(channel);\n };\n\n _getLineSegments(items: any[], points: IPointLike[]) {\n if (!this._segmentStyleKeys || !this._segmentStyleKeys.length) {\n return null;\n }\n\n const segments: { attrs: any; startIndex: number; endIndex?: number }[] = [];\n let prevSegmentAttrs: any = null;\n\n items.forEach((item, index) => {\n if (\n !prevSegmentAttrs ||\n !this._segmentStyleKeys.every(key => {\n return isSegmentAttrEqual(prevSegmentAttrs[key], item[key], key);\n })\n ) {\n if (segments.length) {\n segments[segments.length - 1].endIndex = index;\n }\n\n prevSegmentAttrs = item;\n segments.push({\n attrs: prevSegmentAttrs,\n startIndex: index\n });\n }\n });\n\n if (segments.length >= 2) {\n return segments.map(entry => {\n return {\n ...entry.attrs,\n points: points.slice(entry.startIndex, isNil(entry.endIndex) ? points.length : entry.endIndex)\n };\n });\n }\n\n return null;\n }\n\n _getPrevPoints(g: ILine): IPointLike[] | null {\n const { points, segments } = g.attribute;\n\n return (\n points ??\n (segments\n ? segments.reduce((res: IPointLike[], seg: ILineGraphicAttribute) => {\n if (seg.points) {\n seg.points.forEach((point: IPointLike) => {\n res.push(point);\n });\n }\n\n return res;\n }, [])\n : null)\n );\n }\n\n _runPointsEncoder(newStyles: Record<string, (datum: Datum) => any>, g: IMarkGraphic, attrs: any = {}) {\n const data = g.context.data;\n const lineAttrs: any[] = [];\n const points: IPointLike[] = [];\n const commonAttrs: any = {};\n const progressive = this.renderContext?.progressive;\n const isFirstFrame = progressive && progressive.currentIndex === 0;\n\n data.forEach((datum: Datum, index: number) => {\n points[index] = {} as IPointLike;\n lineAttrs[index] = {};\n\n Object.keys(newStyles).forEach(attrName => {\n if (this._isValidPointChannel(attrName)) {\n (points[index] as any)[attrName] = newStyles[attrName](datum);\n } else if (this._segmentStyleKeys.includes(attrName) && !progressive) {\n lineAttrs[index][attrName] = newStyles[attrName](datum);\n } else if (index === 0 && (!progressive || isFirstFrame)) {\n commonAttrs[attrName] = newStyles[attrName](datum);\n }\n });\n\n // todo 上下文,似乎是动画相关的\n (points[index] as any).context = this._keyGetter(datum) ?? index;\n });\n\n if (progressive) {\n const segments = (g as any).attribute?.segments ?? [];\n\n segments.push({\n points\n });\n return isFirstFrame\n ? {\n ...commonAttrs,\n segments\n }\n : { segments };\n } else if (this._segmentStyleKeys && this._segmentStyleKeys.length) {\n const segments = this._getLineSegments(lineAttrs, points);\n\n if (segments) {\n return {\n ...commonAttrs,\n ...lineAttrs[0],\n segments,\n points: null as IPointLike[]\n };\n }\n }\n\n return {\n ...commonAttrs,\n ...lineAttrs[0],\n points,\n segments: null as any[]\n };\n }\n\n _runEncoderOfGraphic(newStyles: Record<string, (datum: Datum) => any>, g: IMarkGraphic, attrs: any = {}) {\n const data = g.context.data;\n if (newStyles && Object.keys(newStyles).some(this._isValidPointChannel) && data && data.length) {\n return this._runPointsEncoder(newStyles, g, attrs);\n }\n\n return super._runEncoderOfGraphic(newStyles, g, attrs);\n }\n\n protected _getDataByKey(data: Datum[]) {\n return this._dataByGroup;\n }\n\n protected _runProgressiveJoin() {\n const currentIndex = this.renderContext.progressive.currentIndex;\n const graphics: IMarkGraphic[] = [];\n\n this._dataByGroup.keys.forEach((groupKey, index) => {\n const data = this.renderContext.progressive.groupedData.get(groupKey as string);\n const groupStep = this.renderContext.progressive.step;\n const dataSlice = data.slice(currentIndex * groupStep, (currentIndex + 1) * groupStep);\n\n if (currentIndex === 0) {\n const g = {\n context: {\n ...this._getCommonContext(),\n diffState: DiffState.enter,\n data: dataSlice,\n uniqueKey: groupKey,\n key: groupKey,\n groupKey: groupKey\n }\n };\n\n graphics.push(g as IMarkGraphic);\n } else {\n const g = this._graphics[index];\n g.context.data = dataSlice;\n }\n });\n const res = currentIndex === 0 ? graphics : this._graphics;\n\n return {\n graphicsByGroup: { [DEFAULT_DATA_KEY]: res },\n graphics: res,\n needUpdate: false\n };\n }\n\n protected _setCommonAttributesToTheme(g: IMarkGraphic) {\n // do nothing in line/area\n }\n protected _addProgressiveGraphic(parent: IGroup, g: IMarkGraphic) {\n g.incremental = 1;\n (parent as IGroup).appendChild(g);\n }\n}\n"]}
@@ -44,6 +44,9 @@ export declare class BaseMark<T extends ICommonSpec> extends GrammarItem impleme
44
44
  protected _animationConfig: Partial<MarkAnimationSpec>;
45
45
  getAnimationConfig(): Partial<MarkAnimationSpec>;
46
46
  setAnimationConfig(config: Partial<MarkAnimationSpec>): void;
47
+ protected _disabledAnimationStates?: string[];
48
+ disableAnimationByState(state: string | string[]): void;
49
+ enableAnimationByState(state: string | string[]): void;
47
50
  private _skipBeforeLayouted;
48
51
  setSkipBeforeLayouted(skip: boolean): void;
49
52
  protected _groupKey?: string;
@@ -123,6 +126,7 @@ export declare class BaseMark<T extends ICommonSpec> extends GrammarItem impleme
123
126
  protected _attrsByGroup?: Record<string, T>;
124
127
  protected _getDataByKey(data: Datum[]): GroupedData<Datum>;
125
128
  protected _getCommonContext(): {
129
+ compiler: import("../../compile/interface").ICompiler;
126
130
  markType: MarkTypeEnum;
127
131
  markId: number;
128
132
  modelId: number;
@@ -138,6 +142,7 @@ export declare class BaseMark<T extends ICommonSpec> extends GrammarItem impleme
138
142
  protected createAnimationStateList(type: string, animationConfig: Partial<MarkAnimationSpec>): any;
139
143
  protected tryRunMorphing(graphics: IMarkGraphic[]): boolean;
140
144
  protected _runStateAnimation(graphics: IMarkGraphic[]): void;
145
+ protected _setAnimationState(g: IMarkGraphic): void;
141
146
  protected _runJoin(data: Datum[]): void;
142
147
  _runEncoderOfGraphic(styles: Record<string, (datum: Datum) => any>, g: IMarkGraphic, attrs?: any): any;
143
148
  _runGroupEncoder(groupStyles: Record<string, (datum: Datum) => any>): any;
@@ -179,8 +184,7 @@ export declare class BaseMark<T extends ICommonSpec> extends GrammarItem impleme
179
184
  protected _runProgressiveApplyGraphic(graphics: IMarkGraphic[]): void;
180
185
  protected _runProgressiveStep(): void;
181
186
  renderProgressive(): void;
182
- updateAnimationState(callback: (graphic: IMarkGraphic) => AnimationStateValues): void;
183
- hasAnimationByState(state: keyof MarkAnimationSpec): boolean;
187
+ hasAnimationByState(state: AnimationStateValues): boolean;
184
188
  hasAnimation(): boolean;
185
189
  runAnimation(): void;
186
190
  }
@@ -50,7 +50,9 @@ import { AnimationStateEnum } from "../../animation/interface";
50
50
 
51
51
  import { CompilableData } from "../../compile/data/compilable-data";
52
52
 
53
- import { log } from "../../util";
53
+ import { getDiffAttributesOfGraphic } from "../../util/mark";
54
+
55
+ import { log } from "../../util/debug";
54
56
 
55
57
  import { morph as runMorph } from "../../compile/morph";
56
58
 
@@ -110,24 +112,36 @@ export class BaseMark extends GrammarItem {
110
112
  setAnimationConfig(config) {
111
113
  const defaultPrams = "group" === this.type ? {
112
114
  selfOnly: !0
113
- } : {}, animationConfig = {};
114
- Object.keys(config).forEach((key => {
115
- const value = config[key];
116
- isArray(value) ? animationConfig[key] = value.map((item => {
117
- var _a;
118
- const options = null !== (_a = item.options) && void 0 !== _a ? _a : {};
119
- return Object.assign(Object.assign(Object.assign({}, defaultPrams), item), {
120
- options: (...args) => {
121
- var _a, _b;
122
- const _options = "function" == typeof options ? options(...args) : options;
115
+ } : {}, formatAnimationCfg = cfg => {
116
+ var _a;
117
+ const options = null !== (_a = cfg.options) && void 0 !== _a ? _a : {};
118
+ return Object.assign(Object.assign(Object.assign({}, defaultPrams), cfg), {
119
+ options: (datum, graphic, customParams) => {
120
+ var _a, _b;
121
+ const _options = "function" == typeof options ? options(datum, graphic, customParams) : options;
122
+ if (graphic && graphic.context && graphic.context.compiler && isValid(graphic.context.modelId)) {
123
+ const model = null === (_a = graphic.context.compiler.getChart()) || void 0 === _a ? void 0 : _a.getModelById(graphic.context.modelId);
123
124
  return Object.assign(Object.assign({}, _options), {
124
- layoutRect: null === (_b = (_a = this.model).getLayoutRect) || void 0 === _b ? void 0 : _b.call(_a)
125
+ layoutRect: null === (_b = null == model ? void 0 : model.getLayoutRect) || void 0 === _b ? void 0 : _b.call(model)
125
126
  });
126
127
  }
127
- });
128
- })) : animationConfig[key] = Object.assign(Object.assign({}, defaultPrams), config[key]);
128
+ return Object.assign({}, _options);
129
+ }
130
+ });
131
+ }, animationConfig = {};
132
+ Object.keys(config).forEach((key => {
133
+ const value = config[key];
134
+ isArray(value) ? animationConfig[key] = value.map(formatAnimationCfg) : isValid(value) && (animationConfig[key] = formatAnimationCfg(value));
129
135
  })), this._animationConfig = animationConfig;
130
136
  }
137
+ disableAnimationByState(state) {
138
+ const states = array(state);
139
+ this._disabledAnimationStates = [ ...new Set([ ...this._disabledAnimationStates, ...states ]) ];
140
+ }
141
+ enableAnimationByState(state) {
142
+ const states = array(state);
143
+ this._disabledAnimationStates = this._disabledAnimationStates.filter((s => !states.includes(s)));
144
+ }
131
145
  setSkipBeforeLayouted(skip) {
132
146
  this._skipBeforeLayouted = skip;
133
147
  }
@@ -212,9 +226,9 @@ export class BaseMark extends GrammarItem {
212
226
  super(option), this.type = void 0, this.name = "mark", this._markConfig = {
213
227
  zIndex: LayoutZIndex.Mark,
214
228
  morph: !1
215
- }, this._visible = !0, this.stateStyle = {}, this._unCompileChannel = {}, this._skipBeforeLayouted = !1,
216
- this._extensionChannel = {}, this._computeExChannel = {}, this._graphicMap = new Map,
217
- this._graphics = [], this._getEncoderOfStyle = (stateName, style) => {
229
+ }, this._visible = !0, this.stateStyle = {}, this._unCompileChannel = {}, this._disabledAnimationStates = [],
230
+ this._skipBeforeLayouted = !1, this._extensionChannel = {}, this._computeExChannel = {},
231
+ this._graphicMap = new Map, this._graphics = [], this._getEncoderOfStyle = (stateName, style) => {
218
232
  if (style && stateName) {
219
233
  const validEncoder = {};
220
234
  return Object.keys(style).forEach((key => {
@@ -459,6 +473,7 @@ export class BaseMark extends GrammarItem {
459
473
  }
460
474
  _getCommonContext() {
461
475
  return {
476
+ compiler: this.getCompiler(),
462
477
  markType: this.type,
463
478
  markId: this.id,
464
479
  modelId: this.model.id,
@@ -509,14 +524,17 @@ export class BaseMark extends GrammarItem {
509
524
  this._dataByGroup = groupData(data, this._groupKeyGetter);
510
525
  }
511
526
  createAnimationStateList(type, animationConfig) {
527
+ var _a;
512
528
  let config = animationConfig[type];
513
529
  return config && Array.isArray(config) && (config = 1 === config.length ? config[0] : config),
514
- Array.isArray(config) && (config = config.map(((item, index) => {
530
+ Array.isArray(config) ? config.map(((item, index) => {
515
531
  var _a;
516
532
  return Object.assign(Object.assign({}, item), {
517
533
  priority: null !== (_a = item.priority) && void 0 !== _a ? _a : 1 / 0
518
534
  });
519
- }))), config;
535
+ })) : config ? Object.assign(Object.assign({}, config), {
536
+ priority: "normal" === type ? null !== (_a = config.priority) && void 0 !== _a ? _a : 1 / 0 : config.priority
537
+ }) : config;
520
538
  }
521
539
  tryRunMorphing(graphics) {
522
540
  if (this._lastMark) {
@@ -575,29 +593,37 @@ export class BaseMark extends GrammarItem {
575
593
  this._product.applyAnimationState([ "normal" ], [ normalConfig ]);
576
594
  }
577
595
  }
596
+ _setAnimationState(g) {
597
+ var _a, _b, _c;
598
+ const callback = ("component" === this.type ? this.model.getAnimationStateCallback() : null === (_c = null === (_b = (_a = this.model).getRegion) || void 0 === _b ? void 0 : _b.call(_a)) || void 0 === _c ? void 0 : _c.getAnimationStateCallback()) || (g => {
599
+ var _a;
600
+ const diffState = null === (_a = g.context) || void 0 === _a ? void 0 : _a.diffState;
601
+ return diffState === AnimationStateEnum.exit ? AnimationStateEnum.exit : diffState === AnimationStateEnum.update ? AnimationStateEnum.update : AnimationStateEnum.appear;
602
+ }), customizedState = callback(g);
603
+ g.context.animationState = null != customizedState ? customizedState : g.context.diffState,
604
+ g.context.animationState === DiffState.exit && (g.context.reusing = !0, g.animates && g.animates.forEach((a => a.stop())));
605
+ }
578
606
  _runJoin(data) {
579
- const newGroupedData = this._getDataByKey(data), prevGroupedData = this._prevDataByKey, newGraphics = [], enterGraphics = new Set(this._graphics.filter((g => g.context.diffState === DiffState.enter))), callback = (key, newData, prevData) => {
580
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
607
+ const newGroupedData = this._getDataByKey(data), prevGroupedData = this._prevDataByKey, allGraphics = [], enterGraphics = new Set(this._graphics.filter((g => g.context.diffState === DiffState.enter))), callback = (key, newData, prevData) => {
608
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
581
609
  let g, diffState;
582
610
  return isNil(newData) ? (g = this._graphicMap.get(key), g && (diffState = DiffState.exit)) : isNil(prevData) ? (g = this._graphicMap.has(key) ? this._graphicMap.get(key) : {},
583
- diffState = DiffState.enter, g.isExiting = !1, (null === (_a = g.context) || void 0 === _a ? void 0 : _a.diffState) === DiffState.exit && (g.context.reusing = !0,
584
- g.animates && g.animates.forEach((a => a.stop()))), this._graphicMap.set(key, g),
585
- newGraphics.push(g)) : (g = this._graphicMap.get(key), g && (diffState = DiffState.update,
586
- newGraphics.push(g))), g && (g.context = Object.assign(Object.assign({}, this._getCommonContext()), {
611
+ diffState = DiffState.enter, g.isExiting = !1, this._graphicMap.set(key, g), allGraphics.push(g)) : (g = this._graphicMap.get(key),
612
+ g && (diffState = DiffState.update, allGraphics.push(g))), g && (enterGraphics.delete(g),
613
+ g.context = Object.assign(Object.assign({}, this._getCommonContext()), {
587
614
  diffState: diffState,
588
- reusing: null === (_b = g.context) || void 0 === _b ? void 0 : _b.reusing,
589
- originalFieldX: null === (_c = g.context) || void 0 === _c ? void 0 : _c.originalFieldX,
590
- originalFieldY: null === (_d = g.context) || void 0 === _d ? void 0 : _d.originalFieldY,
591
- fieldX: null === (_e = g.context) || void 0 === _e ? void 0 : _e.fieldX,
592
- fieldY: null === (_f = g.context) || void 0 === _f ? void 0 : _f.fieldY,
593
- animationState: diffState,
594
- data: null != newData ? newData : null === (_g = g.context) || void 0 === _g ? void 0 : _g.data,
615
+ reusing: null === (_a = g.context) || void 0 === _a ? void 0 : _a.reusing,
616
+ originalFieldX: null === (_b = g.context) || void 0 === _b ? void 0 : _b.originalFieldX,
617
+ originalFieldY: null === (_c = g.context) || void 0 === _c ? void 0 : _c.originalFieldY,
618
+ fieldX: null === (_d = g.context) || void 0 === _d ? void 0 : _d.fieldX,
619
+ fieldY: null === (_e = g.context) || void 0 === _e ? void 0 : _e.fieldY,
620
+ data: null != newData ? newData : null === (_f = g.context) || void 0 === _f ? void 0 : _f.data,
595
621
  uniqueKey: key,
596
- key: newData ? this._keyGetter(newData[0]) : null === (_h = g.context) || void 0 === _h ? void 0 : _h.key,
597
- groupKey: newData ? this._groupKeyGetter(newData[0]) : null === (_j = g.context) || void 0 === _j ? void 0 : _j.groupKey,
622
+ key: newData ? this._keyGetter(newData[0]) : null === (_g = g.context) || void 0 === _g ? void 0 : _g.key,
623
+ groupKey: newData ? this._groupKeyGetter(newData[0]) : null === (_h = g.context) || void 0 === _h ? void 0 : _h.groupKey,
598
624
  indexKey: "__VCHART_DEFAULT_DATA_INDEX",
599
- stateAnimateConfig: null === (_k = this.getAnimationConfig()) || void 0 === _k ? void 0 : _k.state
600
- }), enterGraphics.delete(g)), g;
625
+ stateAnimateConfig: null === (_j = this.getAnimationConfig()) || void 0 === _j ? void 0 : _j.state
626
+ }), this._setAnimationState(g)), g;
601
627
  };
602
628
  if (prevGroupedData && newGroupedData) {
603
629
  const prevMap = new Map(prevGroupedData.data);
@@ -616,10 +642,10 @@ export class BaseMark extends GrammarItem {
616
642
  this._graphicMap.delete(g.context.uniqueKey), g.parent && g.parent.removeChild(g),
617
643
  g.release();
618
644
  }));
619
- const graphicCount = newGraphics.length;
620
- newGraphics.forEach(((g, index) => {
645
+ const graphicCount = allGraphics.length;
646
+ allGraphics.forEach(((g, index) => {
621
647
  g.context.graphicCount = graphicCount, g.context.graphicIndex = index;
622
- })), this._dataByKey = newGroupedData, this._graphics = newGraphics, this.needClear = !0;
648
+ })), this._dataByKey = newGroupedData, this._graphics = allGraphics, this.needClear = !0;
623
649
  }
624
650
  _runEncoderOfGraphic(styles, g, attrs = {}) {
625
651
  return runEncoder(styles, g.context.data[0], attrs);
@@ -663,10 +689,8 @@ export class BaseMark extends GrammarItem {
663
689
  var _a;
664
690
  const finalAttrs = g.context.finalAttrs, hasStateAnimation = this.hasAnimationByState(g.context.animationState);
665
691
  if (g.setAttributes) {
666
- const prevAttrs = g.getAttributes(!0), diffAttrs = {};
667
- Object.keys(finalAttrs).forEach((key => {
668
- prevAttrs[key] !== finalAttrs[key] && (diffAttrs[key] = finalAttrs[key]);
669
- })), g.context.diffAttrs = diffAttrs, g.context.reusing ? (g.context.lastAttrs = g.attribute,
692
+ const diffAttrs = getDiffAttributesOfGraphic(g, finalAttrs);
693
+ g.context.diffAttrs = diffAttrs, g.context.reusing ? (g.context.lastAttrs = g.attribute,
670
694
  g.initAttributes({}), g.context.reusing = !1) : hasStateAnimation || (hasAnimation ? g.setAttributesAndPreventAnimate(diffAttrs) : g.setAttributes(diffAttrs)),
671
695
  hasAnimation && g.setFinalAttributes(finalAttrs);
672
696
  } else {
@@ -770,7 +794,7 @@ export class BaseMark extends GrammarItem {
770
794
  this._graphicMap.delete(key), g.parent && g.parent.removeChild(g), g.release && g.release();
771
795
  };
772
796
  this._graphicMap.forEach(((g, key) => {
773
- if (g.context.diffState === DiffState.exit && !g.isExiting) if (this.hasAnimationByState("exit")) {
797
+ if (g.context.diffState === DiffState.exit && !g.isExiting) if (g.context.animationState === DiffState.exit && this.hasAnimationByState("exit")) {
774
798
  g.isExiting = !0;
775
799
  const animationConfig = this.getAnimationConfig();
776
800
  if (animationConfig.exit && animationConfig.exit.length) {
@@ -879,13 +903,8 @@ export class BaseMark extends GrammarItem {
879
903
  var _a;
880
904
  (null === (_a = this.renderContext) || void 0 === _a ? void 0 : _a.beforeTransformProgressive) ? this._runBeforeProgressive() : this.renderContext.progressive && this._runProgressiveStep();
881
905
  }
882
- updateAnimationState(callback) {
883
- this._graphics && this._graphics.length && this._graphics.forEach((g => {
884
- g.context.animationState = callback(g);
885
- }));
886
- }
887
906
  hasAnimationByState(state) {
888
- if (!state || !this._animationConfig || !this._animationConfig[state]) return !1;
907
+ if (!state || !this._animationConfig || !this._animationConfig[state] || this._disabledAnimationStates.includes(state)) return !1;
889
908
  const stateAnimationConfig = this._animationConfig[state];
890
909
  return stateAnimationConfig.length > 0 || isObject(stateAnimationConfig);
891
910
  }