@visactor/vchart 1.11.2-alpha.5 → 1.11.3-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +9675 -10837
  3. package/build/index.js +9675 -10836
  4. package/build/index.min.js +1 -1
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/utils.js +10 -1
  7. package/cjs/animation/utils.js.map +1 -1
  8. package/cjs/chart/base/base-chart-transformer.d.ts +2 -1
  9. package/cjs/chart/base/base-chart-transformer.js +13 -1
  10. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  11. package/cjs/chart/base/base-chart.js +5 -1
  12. package/cjs/chart/base/base-chart.js.map +1 -1
  13. package/cjs/chart/common/common-transformer.js +1 -9
  14. package/cjs/chart/common/common-transformer.js.map +1 -1
  15. package/cjs/chart/polar/interface.d.ts +2 -1
  16. package/cjs/chart/polar/interface.js.map +1 -1
  17. package/cjs/chart/radar/radar-transformer.js +1 -2
  18. package/cjs/chart/radar/radar-transformer.js.map +1 -1
  19. package/cjs/component/axis/base-axis.d.ts +1 -1
  20. package/cjs/component/axis/base-axis.js +9 -9
  21. package/cjs/component/axis/base-axis.js.map +1 -1
  22. package/cjs/component/axis/cartesian/axis.d.ts +1 -1
  23. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  24. package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
  25. package/cjs/component/axis/polar/axis.d.ts +11 -3
  26. package/cjs/component/axis/polar/axis.js +23 -20
  27. package/cjs/component/axis/polar/axis.js.map +1 -1
  28. package/cjs/component/axis/polar/band-axis.d.ts +1 -0
  29. package/cjs/component/axis/polar/interface/common.d.ts +1 -0
  30. package/cjs/component/axis/polar/interface/common.js.map +1 -1
  31. package/cjs/component/axis/polar/interface/spec.d.ts +6 -2
  32. package/cjs/component/axis/polar/interface/spec.js.map +1 -1
  33. package/cjs/component/axis/polar/util/common.d.ts +1 -0
  34. package/cjs/component/axis/polar/util/common.js +7 -2
  35. package/cjs/component/axis/polar/util/common.js.map +1 -1
  36. package/cjs/component/crosshair/base.js +1 -1
  37. package/cjs/component/crosshair/base.js.map +1 -1
  38. package/cjs/component/data-zoom/data-filter-base-component.d.ts +0 -1
  39. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  40. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  41. package/cjs/component/data-zoom/data-zoom/data-zoom.js +19 -5
  42. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  43. package/cjs/component/data-zoom/data-zoom/interface.d.ts +1 -0
  44. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  45. package/cjs/component/legend/continuous/legend.js +2 -1
  46. package/cjs/component/legend/continuous/legend.js.map +1 -1
  47. package/cjs/component/marker/mark-line/cartesian-mark-line.js +8 -5
  48. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  49. package/cjs/core/index.d.ts +1 -1
  50. package/cjs/core/index.js +1 -1
  51. package/cjs/core/index.js.map +1 -1
  52. package/cjs/data/transforms/legend-data/continuous/continuous.js +4 -3
  53. package/cjs/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  54. package/cjs/data/transforms/legend-data/continuous/interface.d.ts +1 -0
  55. package/cjs/data/transforms/legend-data/continuous/interface.js.map +1 -1
  56. package/cjs/index.d.ts +1 -0
  57. package/cjs/index.js +5 -4
  58. package/cjs/index.js.map +1 -1
  59. package/cjs/mark/arc.js +6 -6
  60. package/cjs/mark/arc.js.map +1 -1
  61. package/cjs/plugin/components/axis-sync/tick-align-transform.js +2 -2
  62. package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  63. package/cjs/series/bar/bar.d.ts +0 -1
  64. package/cjs/series/bar/bar.js +31 -26
  65. package/cjs/series/bar/bar.js.map +1 -1
  66. package/cjs/series/base/base-series.js +2 -8
  67. package/cjs/series/base/base-series.js.map +1 -1
  68. package/cjs/series/interface/series.d.ts +1 -0
  69. package/cjs/series/interface/series.js.map +1 -1
  70. package/cjs/series/pie/animation/centerOffset.js +17 -17
  71. package/cjs/series/pie/animation/centerOffset.js.map +1 -1
  72. package/cjs/series/pie/pie.d.ts +0 -1
  73. package/cjs/series/pie/pie.js +13 -31
  74. package/cjs/series/pie/pie.js.map +1 -1
  75. package/cjs/series/polar/interface.d.ts +2 -2
  76. package/cjs/series/polar/interface.js.map +1 -1
  77. package/cjs/series/polar/polar.js +2 -0
  78. package/cjs/series/polar/polar.js.map +1 -1
  79. package/cjs/series/polar/progress-like/progress-like.js +3 -3
  80. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  81. package/cjs/series/sunburst/sunburst.js +1 -6
  82. package/cjs/series/sunburst/sunburst.js.map +1 -1
  83. package/cjs/series/treemap/treemap.d.ts +1 -0
  84. package/cjs/series/treemap/treemap.js +2 -1
  85. package/cjs/series/treemap/treemap.js.map +1 -1
  86. package/cjs/util/hierarchy.d.ts +2 -0
  87. package/cjs/util/hierarchy.js +16 -3
  88. package/cjs/util/hierarchy.js.map +1 -1
  89. package/cjs/util/math.d.ts +3 -4
  90. package/cjs/util/math.js +16 -26
  91. package/cjs/util/math.js.map +1 -1
  92. package/cjs/util/space.d.ts +1 -1
  93. package/cjs/util/space.js +2 -2
  94. package/cjs/util/space.js.map +1 -1
  95. package/cjs/util/text.js +2 -2
  96. package/cjs/util/text.js.map +1 -1
  97. package/esm/animation/utils.js +10 -1
  98. package/esm/animation/utils.js.map +1 -1
  99. package/esm/chart/base/base-chart-transformer.d.ts +2 -1
  100. package/esm/chart/base/base-chart-transformer.js +14 -0
  101. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  102. package/esm/chart/base/base-chart.js +5 -1
  103. package/esm/chart/base/base-chart.js.map +1 -1
  104. package/esm/chart/common/common-transformer.js +2 -10
  105. package/esm/chart/common/common-transformer.js.map +1 -1
  106. package/esm/chart/polar/interface.d.ts +2 -1
  107. package/esm/chart/polar/interface.js.map +1 -1
  108. package/esm/chart/radar/radar-transformer.js +1 -2
  109. package/esm/chart/radar/radar-transformer.js.map +1 -1
  110. package/esm/component/axis/base-axis.d.ts +1 -1
  111. package/esm/component/axis/base-axis.js +1 -1
  112. package/esm/component/axis/base-axis.js.map +1 -1
  113. package/esm/component/axis/cartesian/axis.d.ts +1 -1
  114. package/esm/component/axis/cartesian/axis.js.map +1 -1
  115. package/esm/component/axis/cartesian/time-axis.js.map +1 -1
  116. package/esm/component/axis/polar/axis.d.ts +11 -3
  117. package/esm/component/axis/polar/axis.js +25 -21
  118. package/esm/component/axis/polar/axis.js.map +1 -1
  119. package/esm/component/axis/polar/band-axis.d.ts +1 -0
  120. package/esm/component/axis/polar/interface/common.d.ts +1 -0
  121. package/esm/component/axis/polar/interface/common.js.map +1 -1
  122. package/esm/component/axis/polar/interface/spec.d.ts +6 -2
  123. package/esm/component/axis/polar/interface/spec.js.map +1 -1
  124. package/esm/component/axis/polar/util/common.d.ts +1 -0
  125. package/esm/component/axis/polar/util/common.js +6 -2
  126. package/esm/component/axis/polar/util/common.js.map +1 -1
  127. package/esm/component/crosshair/base.js +1 -1
  128. package/esm/component/crosshair/base.js.map +1 -1
  129. package/esm/component/data-zoom/data-filter-base-component.d.ts +0 -1
  130. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  131. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  132. package/esm/component/data-zoom/data-zoom/data-zoom.js +19 -5
  133. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  134. package/esm/component/data-zoom/data-zoom/interface.d.ts +1 -0
  135. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  136. package/esm/component/legend/continuous/legend.js +2 -1
  137. package/esm/component/legend/continuous/legend.js.map +1 -1
  138. package/esm/component/marker/mark-line/cartesian-mark-line.js +9 -6
  139. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  140. package/esm/core/index.d.ts +1 -1
  141. package/esm/core/index.js +1 -1
  142. package/esm/core/index.js.map +1 -1
  143. package/esm/data/transforms/legend-data/continuous/continuous.js +4 -2
  144. package/esm/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  145. package/esm/data/transforms/legend-data/continuous/interface.d.ts +1 -0
  146. package/esm/data/transforms/legend-data/continuous/interface.js.map +1 -1
  147. package/esm/index.d.ts +1 -0
  148. package/esm/index.js +2 -0
  149. package/esm/index.js.map +1 -1
  150. package/esm/mark/arc.js +7 -6
  151. package/esm/mark/arc.js.map +1 -1
  152. package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
  153. package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  154. package/esm/series/bar/bar.d.ts +0 -1
  155. package/esm/series/bar/bar.js +31 -26
  156. package/esm/series/bar/bar.js.map +1 -1
  157. package/esm/series/base/base-series.js +2 -8
  158. package/esm/series/base/base-series.js.map +1 -1
  159. package/esm/series/interface/series.d.ts +1 -0
  160. package/esm/series/interface/series.js.map +1 -1
  161. package/esm/series/pie/animation/centerOffset.js +13 -15
  162. package/esm/series/pie/animation/centerOffset.js.map +1 -1
  163. package/esm/series/pie/pie.d.ts +0 -1
  164. package/esm/series/pie/pie.js +15 -31
  165. package/esm/series/pie/pie.js.map +1 -1
  166. package/esm/series/polar/interface.d.ts +2 -2
  167. package/esm/series/polar/interface.js.map +1 -1
  168. package/esm/series/polar/polar.js +2 -0
  169. package/esm/series/polar/polar.js.map +1 -1
  170. package/esm/series/polar/progress-like/progress-like.js +1 -3
  171. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  172. package/esm/series/sunburst/sunburst.js +1 -6
  173. package/esm/series/sunburst/sunburst.js.map +1 -1
  174. package/esm/series/treemap/treemap.d.ts +1 -0
  175. package/esm/series/treemap/treemap.js +2 -1
  176. package/esm/series/treemap/treemap.js.map +1 -1
  177. package/esm/util/hierarchy.d.ts +2 -0
  178. package/esm/util/hierarchy.js +14 -0
  179. package/esm/util/hierarchy.js.map +1 -1
  180. package/esm/util/math.d.ts +3 -4
  181. package/esm/util/math.js +2 -12
  182. package/esm/util/math.js.map +1 -1
  183. package/esm/util/space.d.ts +1 -1
  184. package/esm/util/space.js +2 -2
  185. package/esm/util/space.js.map +1 -1
  186. package/esm/util/text.js +1 -1
  187. package/esm/util/text.js.map +1 -1
  188. package/package.json +26 -26
@@ -61,7 +61,8 @@ export class ContinuousLegend extends BaseLegend {
61
61
  options: {
62
62
  selected: () => this._selectedData,
63
63
  field: () => this._field,
64
- data: () => this._legendData.getLatestData()
64
+ data: () => this._legendData.getLatestData(),
65
+ isHierarchyData: s.isHierarchyData
65
66
  },
66
67
  level: TransformLevel.legendFilter
67
68
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/legend/continuous/legend.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,4DAA4D,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACjH,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAErB,MAAM,OAAO,gBAEX,SAAQ,UAAa;IAUrB,MAAM,CAAC,WAAW,CAAC,SAAc;QAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACxB,IAAI,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACvC,OAAO;oBACL;wBACE,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;wBACxB,YAAY,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC5C,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU;qBACjG;iBACF,CAAC;aACH;YACD,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAqC,EAAE,CAAS,EAAE,EAAE;YACtE,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC9B,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC3B,YAAY,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5C,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU;iBACxF,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,YAAY,IAAO,EAAE,OAAyB;QAC5C,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAvCvB,SAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC;QACrC,SAAI,GAAW,iBAAiB,CAAC,WAAW,CAAC;QAyC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC;QAC9G,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;IAED,eAAe;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,MAAwB;QAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,UAAU,CACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;YACF,CAAC,CAAC,iBAAiB,CAAC;gBAClB,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE;oBACP,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;oBAClC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;oBACxB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;iBAC7C;gBACD,KAAK,EAAE,cAAc,CAAC,YAAY;aACnC,CAAC,CAAC;QACL,CAAC,EACD;YACE,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CACF,CAAC;IACJ,CAAC;IAEO,iBAAiB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAC7C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;SAC7B;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAES,eAAe;QACvB,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;QACzG,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,CAAC,CAAC;QAC7G,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAChG,UAAU,CAAC,SAAS,CAAC;YACnB,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE;gBACP,MAAM,EAAE,GAAG,EAAE;oBACX,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;wBAC9B,MAAM,EAAE,IAAI,CAAC,aAAa;wBAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;qBAC7B,CAAC,CAAC;gBACL,CAAC;gBACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;gBACxB,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;aACzC;SACF,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IAES,iBAAiB;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;SACvD;IACH,CAAC;IAEO,oBAAoB,CAAC,KAAU;;QACrC,IAAI,CAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,OAAO,KAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,CAAC,EAAE;YACrF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,KAAK,EAAE;gBAET,MAAM,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAG,CAAC,CAAC,0CAAE,SAAS,GAAG,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO;iBACR;gBAED,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC7D,OAAO;aACR;YACD,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE;gBACb,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;aAC7B;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,gBAAgB,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAC,EAAE;gBACxC,OAAO;aACR;YACD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,OAAO;aACR;YAED,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACxG,OAAO;SACR;IACH,CAAC;IAES,oBAAoB,CAAC,IAAiB;;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;QACzG,MAAM,KAAK,GAAG,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAGrE,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACpC,kBAAkB,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;SACpC;QACD,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;YAC/B,kBAAkB,GAAG,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;SAC5E;QACD,IAAI,GAAG,GAAG,MAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC;QACnD,IAAI,GAAG,GAAG,MAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,MAAM,EAAE;YACV,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACxG;QAED,MAAM,KAAK,mBACT,MAAM;YACN,KAAK,EACL,MAAM,EAAE,IAAI,CAAC,YAAY,EACzB,GAAG;YACH,GAAG,EACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACjC,CAAC,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,kBAAkB,IACxE,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAC7C,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAES,qBAAqB;QAC7B,OAAO,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAES,UAAU;QAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC;YAC7C,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpC,QAAQ,EACR,QAAQ,CAAC,CAAC,CAAM,EAAE,EAAE;gBAClB,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;gBAC5C,IAAI,QAAQ,EAAE;oBACZ,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACpC;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC,EAAE,EAAE,CAAC,CACP,CAAC;SACH;IACH,CAAC;;AAxMM,wBAAO,GAAG,SAAS,CAAC;AAEpB,qBAAI,GAAG,iBAAiB,CAAC,gBAAgB,CAAC;AAyMnD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AACrE,CAAC,CAAC","file":"legend.js","sourcesContent":["/**\n * @description color legend component\n */\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { debounce, isEmpty, isNil, isArray, get } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IModelInitOption, IModelSpecInfo } from '../../../model/interface';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { eachSeries, getSeries } from '../../../util/model';\nimport { getFieldAlias } from '../../../util/data';\nimport { isDataDomainSpec } from '../../../util/type';\nimport type { IColorLegendSpec, ISizeLegendSpec } from './interface';\nimport {\n continuousLegendDataMake,\n continuousLegendFilter\n} from '../../../data/transforms/legend-data/continuous/continuous';\nimport { ContinuousLegendMap, getContinuousLegendAttributes, isContinuousLegend } from './util';\nimport { BaseLegend } from '../base-legend';\nimport { ChartEvent } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport { TransformLevel } from '../../../data/initialize';\nimport type { ILayoutRect } from '../../../typings/layout';\n\nconst SINGLE_SEQUENCE = ['#C4E7FF', '#98CAFF', '#75ACFF', '#518FF9', '#2775DC', '#005CBE', '#00429F', '#00287E'];\nconst SIZE = [2, 10];\n\nexport class ContinuousLegend<\n T extends IColorLegendSpec | ISizeLegendSpec = IColorLegendSpec | ISizeLegendSpec\n> extends BaseLegend<T> {\n static specKey = 'legends';\n\n static type = ComponentTypeEnum.continuousLegend;\n type = ComponentTypeEnum.colorLegend;\n name: string = ComponentTypeEnum.colorLegend;\n\n private _field: string | undefined;\n private _legendType: string;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const legendSpec = chartSpec[this.specKey];\n if (!legendSpec) {\n return undefined;\n }\n if (!isArray(legendSpec)) {\n if (isContinuousLegend(legendSpec.type)) {\n return [\n {\n spec: legendSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: legendSpec.type === 'color' ? ComponentTypeEnum.colorLegend : ComponentTypeEnum.sizeLegend\n }\n ];\n }\n return undefined;\n }\n const specInfos: IModelSpecInfo[] = [];\n legendSpec.forEach((s: IColorLegendSpec | ISizeLegendSpec, i: number) => {\n if (isContinuousLegend(s.type)) {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: s.type === 'color' ? ComponentTypeEnum.colorLegend : ComponentTypeEnum.sizeLegend\n });\n }\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n // 这里需要区分下是 colorLegend 还是 sizeLegend\n const legendName = this._spec.type === 'color' ? ComponentTypeEnum.colorLegend : ComponentTypeEnum.sizeLegend;\n this.type = legendName;\n this.name = legendName;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._field = this._spec.field;\n this._legendType = this._spec.type;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n eachSeries(\n this._regions,\n s => {\n s.addViewDataFilter({\n type: 'continuousLegendFilter',\n options: {\n selected: () => this._selectedData,\n field: () => this._field,\n data: () => this._legendData.getLatestData()\n },\n level: TransformLevel.legendFilter\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n private _getScaleInGlobal() {\n const globalScale = this._option.globalScale;\n let scaleKey = this._spec.scale;\n if (!scaleKey) {\n scaleKey = this._legendType;\n }\n return globalScale.getScale(scaleKey);\n }\n\n protected _initLegendData(): DataView {\n registerDataSetInstanceTransform(this._option.dataSet, 'continuousLegendFilter', continuousLegendFilter);\n registerDataSetInstanceTransform(this._option.dataSet, 'continuousLegendDataMake', continuousLegendDataMake);\n const legendData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n legendData.transform({\n type: 'continuousLegendDataMake',\n options: {\n series: () => {\n return getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n });\n },\n field: () => this._field,\n scale: this._getScaleInGlobal.bind(this)\n }\n });\n return legendData;\n }\n\n protected _initSelectedData(): void {\n if (this._spec.defaultSelected) {\n this._selectedData = this._spec.defaultSelected.slice();\n } else {\n this._selectedData = this._legendData.getLatestData();\n }\n }\n\n private _addDefaultTitleText(attrs: any) {\n if (attrs.title?.visible && isNil(attrs.title.text) && isNil(attrs.title.style?.text)) {\n const field = this._field;\n if (field) {\n // 默认使用第0个系列的对应别名\n const series = this._regions?.[0]?.getSeries()[0];\n if (!series) {\n return;\n }\n // 如果没有别名继续保持 空字符串\n attrs.title.text = getFieldAlias(series.getRawData(), field);\n return;\n }\n let scaleKey = this._spec.scale;\n if (!scaleKey) {\n scaleKey = this._legendType;\n }\n const scaleSpec = this._option.globalScale.getScaleSpec(scaleKey);\n if (!isDataDomainSpec(scaleSpec?.domain)) {\n return;\n }\n const dataInfo = scaleSpec.domain[0];\n if (dataInfo.fields.length === 0) {\n return;\n }\n // 如果没有别名继续保持 空字符串\n attrs.title.text = getFieldAlias(this._option.dataSet.getDataView(dataInfo.dataId), dataInfo.fields[0]);\n return;\n }\n }\n\n protected _getLegendAttributes(rect: ILayoutRect) {\n const layout = this.layoutOrient === 'bottom' || this.layoutOrient === 'top' ? 'horizontal' : 'vertical';\n const align = layout === 'horizontal' ? 'bottom' : this.layoutOrient;\n\n // 获取关联的 scale 以获取 colors / size\n let visualMappingRange = [];\n const scale = this._getScaleInGlobal();\n if (scale && scale.type === 'linear') {\n visualMappingRange = scale.range();\n }\n if (isEmpty(visualMappingRange)) {\n visualMappingRange = this._legendType === 'color' ? SINGLE_SEQUENCE : SIZE;\n }\n let min = this._legendData.getLatestData()[0] ?? 0;\n let max = this._legendData.getLatestData()[1] ?? 1;\n\n const isSame = this._legendData.getLatestData()[0] === this._legendData.getLatestData()[1];\n if (isSame) {\n min = Math.min(0, this._legendData.getLatestData()[0]);\n max = this._legendData.getLatestData()[0] === 0 ? 1 : Math.max(0, this._legendData.getLatestData()[0]);\n }\n\n const attrs: any = {\n layout,\n align,\n zIndex: this.layoutZIndex,\n min,\n max,\n value: this._spec.defaultSelected,\n [this._legendType === 'color' ? 'colors' : 'sizeRange']: visualMappingRange,\n ...getContinuousLegendAttributes(this._spec)\n };\n this._addDefaultTitleText(attrs);\n return attrs;\n }\n\n protected _getLegendConstructor() {\n return ContinuousLegendMap[this._legendType];\n }\n\n protected _initEvent() {\n if (this._legendComponent) {\n const doFilter = this._spec.filter !== false;\n this._legendComponent.addEventListener(\n 'change',\n debounce((e: any) => {\n const selectedData = get(e, 'detail.value');\n if (doFilter) {\n this.setSelectedData(selectedData);\n }\n this.event.emit(ChartEvent.legendFilter, { model: this, value: selectedData, event: e });\n }, 30)\n );\n }\n }\n}\n\nexport const registerContinuousLegend = () => {\n Factory.registerComponent(ContinuousLegend.type, ContinuousLegend);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/legend/continuous/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["/**\n * @description color legend component\n */\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { debounce, isEmpty, isNil, isArray, get } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IModelInitOption, IModelSpecInfo } from '../../../model/interface';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { eachSeries, getSeries } from '../../../util/model';\nimport { getFieldAlias } from '../../../util/data';\nimport { isDataDomainSpec } from '../../../util/type';\nimport type { IColorLegendSpec, ISizeLegendSpec } from './interface';\nimport {\n continuousLegendDataMake,\n continuousLegendFilter\n} from '../../../data/transforms/legend-data/continuous/continuous';\nimport { ContinuousLegendMap, getContinuousLegendAttributes, isContinuousLegend } from './util';\nimport { BaseLegend } from '../base-legend';\nimport { ChartEvent } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport { TransformLevel } from '../../../data/initialize';\nimport type { ILayoutRect } from '../../../typings/layout';\n\nconst SINGLE_SEQUENCE = ['#C4E7FF', '#98CAFF', '#75ACFF', '#518FF9', '#2775DC', '#005CBE', '#00429F', '#00287E'];\nconst SIZE = [2, 10];\n\nexport class ContinuousLegend<\n T extends IColorLegendSpec | ISizeLegendSpec = IColorLegendSpec | ISizeLegendSpec\n> extends BaseLegend<T> {\n static specKey = 'legends';\n\n static type = ComponentTypeEnum.continuousLegend;\n type = ComponentTypeEnum.colorLegend;\n name: string = ComponentTypeEnum.colorLegend;\n\n private _field: string | undefined;\n private _legendType: string;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const legendSpec = chartSpec[this.specKey];\n if (!legendSpec) {\n return undefined;\n }\n if (!isArray(legendSpec)) {\n if (isContinuousLegend(legendSpec.type)) {\n return [\n {\n spec: legendSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: legendSpec.type === 'color' ? ComponentTypeEnum.colorLegend : ComponentTypeEnum.sizeLegend\n }\n ];\n }\n return undefined;\n }\n const specInfos: IModelSpecInfo[] = [];\n legendSpec.forEach((s: IColorLegendSpec | ISizeLegendSpec, i: number) => {\n if (isContinuousLegend(s.type)) {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: s.type === 'color' ? ComponentTypeEnum.colorLegend : ComponentTypeEnum.sizeLegend\n });\n }\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n // 这里需要区分下是 colorLegend 还是 sizeLegend\n const legendName = this._spec.type === 'color' ? ComponentTypeEnum.colorLegend : ComponentTypeEnum.sizeLegend;\n this.type = legendName;\n this.name = legendName;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._field = this._spec.field;\n this._legendType = this._spec.type;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n eachSeries(\n this._regions,\n s => {\n s.addViewDataFilter({\n type: 'continuousLegendFilter',\n options: {\n selected: () => this._selectedData,\n field: () => this._field,\n data: () => this._legendData.getLatestData(),\n isHierarchyData: s.isHierarchyData\n },\n level: TransformLevel.legendFilter\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n private _getScaleInGlobal() {\n const globalScale = this._option.globalScale;\n let scaleKey = this._spec.scale;\n if (!scaleKey) {\n scaleKey = this._legendType;\n }\n return globalScale.getScale(scaleKey);\n }\n\n protected _initLegendData(): DataView {\n registerDataSetInstanceTransform(this._option.dataSet, 'continuousLegendFilter', continuousLegendFilter);\n registerDataSetInstanceTransform(this._option.dataSet, 'continuousLegendDataMake', continuousLegendDataMake);\n const legendData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n legendData.transform({\n type: 'continuousLegendDataMake',\n options: {\n series: () => {\n return getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n });\n },\n field: () => this._field,\n scale: this._getScaleInGlobal.bind(this)\n }\n });\n return legendData;\n }\n\n protected _initSelectedData(): void {\n if (this._spec.defaultSelected) {\n this._selectedData = this._spec.defaultSelected.slice();\n } else {\n this._selectedData = this._legendData.getLatestData();\n }\n }\n\n private _addDefaultTitleText(attrs: any) {\n if (attrs.title?.visible && isNil(attrs.title.text) && isNil(attrs.title.style?.text)) {\n const field = this._field;\n if (field) {\n // 默认使用第0个系列的对应别名\n const series = this._regions?.[0]?.getSeries()[0];\n if (!series) {\n return;\n }\n // 如果没有别名继续保持 空字符串\n attrs.title.text = getFieldAlias(series.getRawData(), field);\n return;\n }\n let scaleKey = this._spec.scale;\n if (!scaleKey) {\n scaleKey = this._legendType;\n }\n const scaleSpec = this._option.globalScale.getScaleSpec(scaleKey);\n if (!isDataDomainSpec(scaleSpec?.domain)) {\n return;\n }\n const dataInfo = scaleSpec.domain[0];\n if (dataInfo.fields.length === 0) {\n return;\n }\n // 如果没有别名继续保持 空字符串\n attrs.title.text = getFieldAlias(this._option.dataSet.getDataView(dataInfo.dataId), dataInfo.fields[0]);\n return;\n }\n }\n\n protected _getLegendAttributes(rect: ILayoutRect) {\n const layout = this.layoutOrient === 'bottom' || this.layoutOrient === 'top' ? 'horizontal' : 'vertical';\n const align = layout === 'horizontal' ? 'bottom' : this.layoutOrient;\n\n // 获取关联的 scale 以获取 colors / size\n let visualMappingRange = [];\n const scale = this._getScaleInGlobal();\n if (scale && scale.type === 'linear') {\n visualMappingRange = scale.range();\n }\n if (isEmpty(visualMappingRange)) {\n visualMappingRange = this._legendType === 'color' ? SINGLE_SEQUENCE : SIZE;\n }\n let min = this._legendData.getLatestData()[0] ?? 0;\n let max = this._legendData.getLatestData()[1] ?? 1;\n\n const isSame = this._legendData.getLatestData()[0] === this._legendData.getLatestData()[1];\n if (isSame) {\n min = Math.min(0, this._legendData.getLatestData()[0]);\n max = this._legendData.getLatestData()[0] === 0 ? 1 : Math.max(0, this._legendData.getLatestData()[0]);\n }\n\n const attrs: any = {\n layout,\n align,\n zIndex: this.layoutZIndex,\n min,\n max,\n value: this._spec.defaultSelected,\n [this._legendType === 'color' ? 'colors' : 'sizeRange']: visualMappingRange,\n ...getContinuousLegendAttributes(this._spec)\n };\n this._addDefaultTitleText(attrs);\n return attrs;\n }\n\n protected _getLegendConstructor() {\n return ContinuousLegendMap[this._legendType];\n }\n\n protected _initEvent() {\n if (this._legendComponent) {\n const doFilter = this._spec.filter !== false;\n this._legendComponent.addEventListener(\n 'change',\n debounce((e: any) => {\n const selectedData = get(e, 'detail.value');\n if (doFilter) {\n this.setSelectedData(selectedData);\n }\n this.event.emit(ChartEvent.legendFilter, { model: this, value: selectedData, event: e });\n }, 30)\n );\n }\n }\n}\n\nexport const registerContinuousLegend = () => {\n Factory.registerComponent(ContinuousLegend.type, ContinuousLegend);\n};\n"]}
@@ -6,7 +6,7 @@ import { cartesianCoordinateLayout, positionLayout, xyLayout, getMarkLineProcess
6
6
 
7
7
  import { MarkLine as MarkLineComponent, registerMarkLineAnimate } from "@visactor/vrender-components";
8
8
 
9
- import { isValid } from "@visactor/vutils";
9
+ import { isValid, isValidNumber } from "@visactor/vutils";
10
10
 
11
11
  import { getInsertPoints, getTextOffset } from "./util";
12
12
 
@@ -37,7 +37,7 @@ export class CartesianMarkLine extends BaseMarkLine {
37
37
  };
38
38
  }
39
39
  _markerLayout() {
40
- var _a, _b, _c, _d;
40
+ var _a, _b, _c, _d, _e, _f, _g, _h;
41
41
  const updateAttrs = this._getUpdateMarkerAttrs();
42
42
  if ("type-step" === this._spec.type) {
43
43
  const startRelativeSeries = this._startRelativeSeries, endRelativeSeries = this._endRelativeSeries, {multiSegment: multiSegment, mainSegmentIndex: mainSegmentIndex} = this._spec.line || {}, {connectDirection: connectDirection, expandDistance: expandDistance = 0} = this._spec;
@@ -65,9 +65,12 @@ export class CartesianMarkLine extends BaseMarkLine {
65
65
  }, getTextOffset(points[0], points[1], connectDirection, expandDistanceValue)), {
66
66
  refX: 0,
67
67
  refY: 0
68
- });
69
- const markerComponentAttr = null !== (_b = null === (_a = this._markerComponent) || void 0 === _a ? void 0 : _a.attribute) && void 0 !== _b ? _b : {};
70
- null === (_c = this._markerComponent) || void 0 === _c || _c.setAttributes({
68
+ }), isValidNumber(null === (_a = this._spec.label) || void 0 === _a ? void 0 : _a.refX) && (labelPositionAttrs.refX += this._spec.label.refX),
69
+ isValidNumber(null === (_b = this._spec.label) || void 0 === _b ? void 0 : _b.refY) && (labelPositionAttrs.refY += this._spec.label.refY),
70
+ isValidNumber(null === (_c = this._spec.label) || void 0 === _c ? void 0 : _c.dx) && (labelPositionAttrs.dx = (labelPositionAttrs.dx || 0) + this._spec.label.dx),
71
+ isValidNumber(null === (_d = this._spec.label) || void 0 === _d ? void 0 : _d.dy) && (labelPositionAttrs.dy = (labelPositionAttrs.dy || 0) + this._spec.label.dy);
72
+ const markerComponentAttr = null !== (_f = null === (_e = this._markerComponent) || void 0 === _e ? void 0 : _e.attribute) && void 0 !== _f ? _f : {};
73
+ null === (_g = this._markerComponent) || void 0 === _g || _g.setAttributes({
71
74
  points: multiSegment ? [ [ joinPoints[0], joinPoints[1] ], [ joinPoints[1], joinPoints[2] ], [ joinPoints[2], joinPoints[3] ] ] : joinPoints,
72
75
  label: Object.assign(Object.assign(Object.assign({}, label), labelPositionAttrs), {
73
76
  textStyle: Object.assign(Object.assign({}, markerComponentAttr.label.textStyle), {
@@ -81,7 +84,7 @@ export class CartesianMarkLine extends BaseMarkLine {
81
84
  dx: this._layoutOffsetX,
82
85
  dy: this._layoutOffsetY
83
86
  });
84
- } else null === (_d = this._markerComponent) || void 0 === _d || _d.setAttributes(updateAttrs);
87
+ } else null === (_h = this._markerComponent) || void 0 === _h || _h.setAttributes(updateAttrs);
85
88
  }
86
89
  _computeOptions() {
87
90
  let options, processData = this._getRelativeDataView(), needAggr = !0, needRegr = !1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-line/cartesian-mark-line.ts"],"names":[],"mappings":"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","file":"cartesian-mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IStepMarkLineSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\nimport {\n computeClipRange,\n cartesianCoordinateLayout,\n positionLayout,\n xyLayout,\n getMarkLineProcessInfo\n} from '../utils';\nimport {\n type MarkLineAttrs,\n MarkLine as MarkLineComponent,\n registerMarkLineAnimate\n} from '@visactor/vrender-components';\nimport { isValid } from '@visactor/vutils';\nimport type { IDataPos, IMarkProcessOptions } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { IPoint } from '../../../typings';\nimport { BaseMarkLine } from './base-mark-line';\n\nexport class CartesianMarkLine extends BaseMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n static coordinateType = 'cartesian';\n coordinateType = 'cartesian';\n\n protected declare _markerComponent: MarkLineComponent;\n\n protected _newMarkLineComponent(attr: MarkLineAttrs): MarkLineComponent {\n return new MarkLineComponent(attr);\n }\n protected _computePointsAttr() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n let points: IPoint[] = [];\n if (\n doXProcess ||\n doXYY1Process ||\n doYProcess ||\n doYXX1Process ||\n doXYProcess ||\n (isValidCoordinates && isValidProcessX) ||\n (isValidCoordinates && isValidProcessY)\n ) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (doCoordinatesProcess) {\n points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n return { points };\n }\n\n protected _markerLayout() {\n const updateAttrs = this._getUpdateMarkerAttrs();\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n const { points, label, limitRect } = updateAttrs;\n\n const joinPoints = getInsertPoints(\n (points as IPoint[])[0],\n (points as IPoint[])[1],\n connectDirection,\n expandDistanceValue\n );\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false,\n refX: 0,\n refY: 0\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset((points as IPoint[])[0], (points as IPoint[])[1], connectDirection, expandDistanceValue),\n refX: 0,\n refY: 0\n };\n }\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: {\n ...label,\n ...labelPositionAttrs,\n textStyle: {\n ...markerComponentAttr.label.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n } as any);\n } else {\n this._markerComponent?.setAttributes(updateAttrs);\n }\n }\n\n protected _computeOptions(): IMarkProcessOptions {\n let options: IOptionAggr[] | IOptionRegr;\n let processData: DataView = this._getRelativeDataView();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n const spec: any = this._spec;\n const relativeSeries = this._relativeSeries;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n if (doXYProcess) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doXProcess) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.x }])];\n } else if (doYProcess) {\n options = [this._processSpecByDims([{ dim: 'y', specValue: spec.y }])];\n } else if (doXYY1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doYXX1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y }\n ])\n ];\n } else if (doCoordinatesProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.process.x as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = options = [this._processSpecByDims([{ dim: 'y', specValue: spec.process.y as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n return { options, needAggr, needRegr, processData };\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(CartesianMarkLine.type, CartesianMarkLine);\n registerMarkLineAnimate();\n};\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-line/cartesian-mark-line.ts"],"names":[],"mappings":"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","file":"cartesian-mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IStepMarkLineSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\nimport {\n computeClipRange,\n cartesianCoordinateLayout,\n positionLayout,\n xyLayout,\n getMarkLineProcessInfo\n} from '../utils';\nimport {\n type MarkLineAttrs,\n MarkLine as MarkLineComponent,\n registerMarkLineAnimate\n} from '@visactor/vrender-components';\nimport { isValid, isValidNumber } from '@visactor/vutils';\nimport type { IDataPos, IMarkProcessOptions } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { IPoint } from '../../../typings';\nimport { BaseMarkLine } from './base-mark-line';\n\nexport class CartesianMarkLine extends BaseMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n static coordinateType = 'cartesian';\n coordinateType = 'cartesian';\n\n protected declare _markerComponent: MarkLineComponent;\n\n protected _newMarkLineComponent(attr: MarkLineAttrs): MarkLineComponent {\n return new MarkLineComponent(attr);\n }\n protected _computePointsAttr() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n let points: IPoint[] = [];\n if (\n doXProcess ||\n doXYY1Process ||\n doYProcess ||\n doYXX1Process ||\n doXYProcess ||\n (isValidCoordinates && isValidProcessX) ||\n (isValidCoordinates && isValidProcessY)\n ) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (doCoordinatesProcess) {\n points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n return { points };\n }\n\n protected _markerLayout() {\n const updateAttrs = this._getUpdateMarkerAttrs();\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n const { points, label, limitRect } = updateAttrs;\n\n const joinPoints = getInsertPoints(\n (points as IPoint[])[0],\n (points as IPoint[])[1],\n connectDirection,\n expandDistanceValue\n );\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false,\n refX: 0,\n refY: 0\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset((points as IPoint[])[0], (points as IPoint[])[1], connectDirection, expandDistanceValue),\n refX: 0,\n refY: 0\n };\n }\n\n if (isValidNumber(this._spec.label?.refX)) {\n labelPositionAttrs.refX += this._spec.label.refX;\n }\n if (isValidNumber(this._spec.label?.refY)) {\n labelPositionAttrs.refY += this._spec.label.refY;\n }\n if (isValidNumber(this._spec.label?.dx)) {\n labelPositionAttrs.dx = (labelPositionAttrs.dx || 0) + this._spec.label.dx;\n }\n if (isValidNumber(this._spec.label?.dy)) {\n labelPositionAttrs.dy = (labelPositionAttrs.dy || 0) + this._spec.label.dy;\n }\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: {\n ...label,\n ...labelPositionAttrs,\n textStyle: {\n ...markerComponentAttr.label.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n } as any);\n } else {\n this._markerComponent?.setAttributes(updateAttrs);\n }\n }\n\n protected _computeOptions(): IMarkProcessOptions {\n let options: IOptionAggr[] | IOptionRegr;\n let processData: DataView = this._getRelativeDataView();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n const spec: any = this._spec;\n const relativeSeries = this._relativeSeries;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n if (doXYProcess) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doXProcess) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.x }])];\n } else if (doYProcess) {\n options = [this._processSpecByDims([{ dim: 'y', specValue: spec.y }])];\n } else if (doXYY1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doYXX1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y }\n ])\n ];\n } else if (doCoordinatesProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.process.x as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = options = [this._processSpecByDims([{ dim: 'y', specValue: spec.process.y as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n return { options, needAggr, needRegr, processData };\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(CartesianMarkLine.type, CartesianMarkLine);\n registerMarkLineAnimate();\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { VChart } from './vchart';
2
2
  import { Factory } from './factory';
3
3
  export { VChart, Factory };
4
- export declare const version = "1.11.2-alpha.5";
4
+ export declare const version = "1.11.3-alpha.0";
5
5
  export type { IVChart } from './interface';
6
6
  export type { IStateSpec, StateValueType } from '../compile/mark';
7
7
  export * from '../typings/spec/common';
package/esm/core/index.js CHANGED
@@ -4,7 +4,7 @@ import { Factory } from "./factory";
4
4
 
5
5
  export { VChart, Factory };
6
6
 
7
- export const version = "1.11.2-alpha.5";
7
+ export const version = "1.11.3-alpha.0";
8
8
 
9
9
  export * from "../typings/spec/common";
10
10
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAMxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAK5B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,cAAc,WAAW,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.11.2-alpha.5\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAMxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAK5B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,cAAc,WAAW,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.11.3-alpha.0\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
@@ -1,5 +1,7 @@
1
1
  import { isEmpty, isValidNumber } from "@visactor/vutils";
2
2
 
3
+ import { filterHierarchyDataByRange, isHierarchyItem } from "../../../../util";
4
+
3
5
  export const continuousLegendDataMake = (data, op) => {
4
6
  const {series: series, field: field, scale: scale} = op, datumField = field();
5
7
  if (field && datumField) {
@@ -17,11 +19,11 @@ export const continuousLegendDataMake = (data, op) => {
17
19
  };
18
20
 
19
21
  export const continuousLegendFilter = (data, op) => {
20
- const {selected: selected, field: field, data: legendData} = op, selectedRange = selected(), datumField = field();
22
+ const {selected: selected, field: field, data: legendData, isHierarchyData: isHierarchyData} = op, selectedRange = selected(), datumField = field(), isHierarchy = isHierarchyData || (data => data && data.some((d => d && isHierarchyItem(d))));
21
23
  if (selectedRange === legendData()) return data;
22
24
  if (datumField && !isEmpty(selectedRange)) {
23
25
  const [min, max] = selectedRange;
24
- return data.filter((datum => datum[datumField] >= min && datum[datumField] <= max));
26
+ return isHierarchy(data) ? filterHierarchyDataByRange(data, +min, +max) : data.filter((datum => datum[datumField] >= min && datum[datumField] <= max));
25
27
  }
26
28
  return data;
27
29
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/legend-data/continuous/continuous.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAK1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAoB,EAAE,EAAmC,EAAE,EAAE;IACpG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC;IAC3B,IAAI,KAAK,IAAI,UAAU,EAAE;QACvB,IAAI,GAAG,GAAW,QAAQ,CAAC;QAC3B,IAAI,GAAG,GAAW,CAAC,QAAQ,CAAC;QAC5B,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,MAAM,aAAa,GAAG,CAAC,CAAC,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,CAAC;YACrC,MAAM,SAAS,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,CAAC;YACrC,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE;gBAC5B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aAChC;YACD,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE;gBAC5B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACnB;IACD,IAAI,KAAK,EAAE;QACT,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,EAAE,CAAC;SACX;QACD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;KACxB;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAgB,EAAE,EAAiC,EAAE,EAAE;IAC5F,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IACjD,MAAM,aAAa,GAAG,QAAQ,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAG/B,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACzC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC;QAEjC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACzB,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;QAC9D,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","file":"continuous.js","sourcesContent":["import { isEmpty, isValidNumber } from '@visactor/vutils';\nimport type { ISeries } from '../../../../series/interface';\nimport type { IContinuousLegendDataMakeOption, IContinuousLegendFilterOption } from './interface';\n\n// 获取数值范围\nexport const continuousLegendDataMake = (data: Array<ISeries>, op: IContinuousLegendDataMakeOption) => {\n const { series, field, scale } = op;\n const datumField = field();\n if (field && datumField) {\n let min: number = Infinity;\n let max: number = -Infinity;\n series().forEach(s => {\n const statisticData = s.getRawDataStatisticsByField(datumField, true);\n const seriesMin = statisticData?.min;\n const seriesMax = statisticData?.max;\n if (isValidNumber(seriesMin)) {\n min = Math.min(seriesMin, min);\n }\n if (isValidNumber(seriesMax)) {\n max = Math.max(seriesMax, max);\n }\n });\n return [min, max];\n }\n if (scale) {\n const _scale = scale();\n if (!_scale) {\n return [];\n }\n return _scale.domain();\n }\n return [];\n};\n\n// 连续数据过滤\nexport const continuousLegendFilter = (data: Array<any>, op: IContinuousLegendFilterOption) => {\n const { selected, field, data: legendData } = op;\n const selectedRange = selected();\n const datumField = field();\n const dataRange = legendData();\n\n // 如果数值范围相等,就不进行返回 data,不需要进行过滤\n if (selectedRange === dataRange) {\n return data;\n }\n\n if (datumField && !isEmpty(selectedRange)) {\n const [min, max] = selectedRange;\n\n return data.filter(datum => {\n return datum[datumField] >= min && datum[datumField] <= max;\n });\n }\n\n return data;\n};\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/legend-data/continuous/continuous.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAoB,EAAE,EAAmC,EAAE,EAAE;IACpG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC;IAC3B,IAAI,KAAK,IAAI,UAAU,EAAE;QACvB,IAAI,GAAG,GAAW,QAAQ,CAAC;QAC3B,IAAI,GAAG,GAAW,CAAC,QAAQ,CAAC;QAC5B,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,MAAM,aAAa,GAAG,CAAC,CAAC,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,CAAC;YACrC,MAAM,SAAS,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,CAAC;YACrC,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE;gBAC5B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aAChC;YACD,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE;gBAC5B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACnB;IACD,IAAI,KAAK,EAAE;QACT,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,EAAE,CAAC;SACX;QACD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;KACxB;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAgB,EAAE,EAAiC,EAAE,EAAE;IAC5F,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC;IAClE,MAAM,aAAa,GAAG,QAAQ,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,eAAe;QACjC,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAG1E,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACzC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC;QACjC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,0BAA0B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;SACrD;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACzB,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;YAC9D,CAAC,CAAC,CAAC;SACJ;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","file":"continuous.js","sourcesContent":["import { constants } from 'fs';\nimport { isArray, isEmpty, isValidNumber } from '@visactor/vutils';\nimport type { ISeries } from '../../../../series/interface';\nimport type { IContinuousLegendDataMakeOption, IContinuousLegendFilterOption } from './interface';\nimport { filterHierarchyDataByRange, isHierarchyItem } from '../../../../util';\n\n// 获取数值范围\nexport const continuousLegendDataMake = (data: Array<ISeries>, op: IContinuousLegendDataMakeOption) => {\n const { series, field, scale } = op;\n const datumField = field();\n if (field && datumField) {\n let min: number = Infinity;\n let max: number = -Infinity;\n series().forEach(s => {\n const statisticData = s.getRawDataStatisticsByField(datumField, true);\n const seriesMin = statisticData?.min;\n const seriesMax = statisticData?.max;\n if (isValidNumber(seriesMin)) {\n min = Math.min(seriesMin, min);\n }\n if (isValidNumber(seriesMax)) {\n max = Math.max(seriesMax, max);\n }\n });\n return [min, max];\n }\n if (scale) {\n const _scale = scale();\n if (!_scale) {\n return [];\n }\n return _scale.domain();\n }\n return [];\n};\n\n// 连续数据过滤\nexport const continuousLegendFilter = (data: Array<any>, op: IContinuousLegendFilterOption) => {\n const { selected, field, data: legendData, isHierarchyData } = op;\n const selectedRange = selected();\n const datumField = field();\n const dataRange = legendData();\n const isHierarchy = isHierarchyData\n ? isHierarchyData\n : (data: Array<any>) => data && data.some(d => d && isHierarchyItem(d));\n\n // 如果数值范围相等,就不进行返回 data,不需要进行过滤\n if (selectedRange === dataRange) {\n return data;\n }\n\n if (datumField && !isEmpty(selectedRange)) {\n const [min, max] = selectedRange;\n if (isHierarchy(data)) {\n return filterHierarchyDataByRange(data, +min, +max);\n } else {\n return data.filter(datum => {\n return datum[datumField] >= min && datum[datumField] <= max;\n });\n }\n }\n\n return data;\n};\n"]}
@@ -10,4 +10,5 @@ export interface IContinuousLegendFilterOption {
10
10
  selected: () => StringOrNumber[];
11
11
  field: () => string | undefined;
12
12
  data: () => StringOrNumber[];
13
+ isHierarchyData?: () => boolean;
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/legend-data/continuous/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { ISeries } from '../../../../series/interface';\nimport type { StringOrNumber } from '../../../../typings';\n\nexport interface IContinuousLegendDataMakeOption {\n series: () => ISeries[];\n field: () => string | undefined;\n scale?: () => IBaseScale;\n}\n\nexport interface IContinuousLegendFilterOption {\n selected: () => StringOrNumber[];\n field: () => string | undefined;\n data: () => StringOrNumber[];\n}\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/legend-data/continuous/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { ISeries } from '../../../../series/interface';\nimport type { StringOrNumber } from '../../../../typings';\n\nexport interface IContinuousLegendDataMakeOption {\n series: () => ISeries[];\n field: () => string | undefined;\n scale?: () => IBaseScale;\n}\n\nexport interface IContinuousLegendFilterOption {\n selected: () => StringOrNumber[];\n field: () => string | undefined;\n data: () => StringOrNumber[];\n isHierarchyData?: () => boolean;\n}\n"]}
package/esm/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { VChart } from './vchart-all';
2
2
  export default VChart;
3
3
  export * from './core';
4
4
  export * from './chart';
5
+ export * from './chart/base';
5
6
  export * from './series';
6
7
  export * from './mark';
7
8
  export * from './component';
package/esm/index.js CHANGED
@@ -6,6 +6,8 @@ export * from "./core";
6
6
 
7
7
  export * from "./chart";
8
8
 
9
+ export * from "./chart/base";
10
+
9
11
  export * from "./series";
10
12
 
11
13
  export * from "./mark";
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,eAAe,MAAM,CAAC;AAEtB,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC","file":"index.js","sourcesContent":["import { VChart } from './vchart-all';\n\nexport default VChart;\n\nexport * from './core';\n\n// chart model for extension\nexport * from './chart';\nexport * from './series';\nexport * from './mark';\nexport * from './component';\nexport * from './layout';\nexport * from './env';\nexport * from './event';\nexport * from './plugin';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,eAAe,MAAM,CAAC;AAEtB,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC","file":"index.js","sourcesContent":["import { VChart } from './vchart-all';\n\nexport default VChart;\n\nexport * from './core';\n\n// chart model for extension\nexport * from './chart';\nexport * from './chart/base';\nexport * from './series';\nexport * from './mark';\nexport * from './component';\nexport * from './layout';\nexport * from './env';\nexport * from './event';\nexport * from './plugin';\n"]}
package/esm/mark/arc.js CHANGED
@@ -2,14 +2,14 @@ import { Factory } from "./../core/factory";
2
2
 
3
3
  import { ARC_MIDDLE_ANGLE } from "../constant";
4
4
 
5
- import { polarToCartesian } from "../util/math";
6
-
7
5
  import { BaseMark } from "./base/base-mark";
8
6
 
9
7
  import { registerArcGraphic } from "@visactor/vgrammar-core";
10
8
 
11
9
  import { registerVGrammarArcAnimation } from "../animation/config";
12
10
 
11
+ import { polarToCartesian } from "@visactor/vutils";
12
+
13
13
  export class BaseArcMark extends BaseMark {
14
14
  constructor(name, option) {
15
15
  super(name, option), this.type = ArcMark.type, this._unCompileChannel = {
@@ -18,10 +18,11 @@ export class BaseArcMark extends BaseMark {
18
18
  }, this.computeOuterRadius = (key, datum, states = "normal", opt, superValue) => {
19
19
  var _a;
20
20
  return superValue + (null !== (_a = this.getAttribute("radiusOffset", datum, states, opt)) && void 0 !== _a ? _a : 0);
21
- }, this.computeCenter = (key, datum, states = "normal", opt, center) => center + polarToCartesian({
22
- angle: datum[ARC_MIDDLE_ANGLE],
23
- radius: this.getAttribute("centerOffset", datum, states, opt)
24
- })[key], this._computeExChannel.x = this.computeCenter, this._computeExChannel.y = this.computeCenter,
21
+ }, this.computeCenter = (key, datum, states = "normal", opt, center) => polarToCartesian({
22
+ x: 0,
23
+ y: 0
24
+ }, this.getAttribute("centerOffset", datum, states, opt), datum[ARC_MIDDLE_ANGLE])[key] + center,
25
+ this._computeExChannel.x = this.computeCenter, this._computeExChannel.y = this.computeCenter,
25
26
  this._computeExChannel.outerRadius = this.computeOuterRadius, this._extensionChannel.centerOffset = [ "x", "y" ],
26
27
  this._extensionChannel.radiusOffset = [ "outerRadius" ];
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/arc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAKnE,MAAM,OAAO,WAAoC,SAAQ,QAAW;IAKlE,YAAY,IAAY,EAAE,MAAmB;QAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QALb,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;QAE3C,sBAAiB,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QA6BrD,uBAAkB,GAAG,CAC7B,GAAW,EACX,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,UAAkB,EACV,EAAE;;YACV,MAAM,MAAM,GAAG,MAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAY,mCAAI,CAAC,CAAC;YACtF,OAAO,UAAU,GAAG,MAAM,CAAC;QAC7B,CAAC,CAAC;QAEQ,kBAAa,GAAG,CACxB,GAAc,EACd,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,MAAc,EACd,EAAE;YACF,MAAM,MAAM,GAAG,gBAAgB,CAAC;gBAC9B,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC;gBAC9B,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAW;aACxE,CAAC,CAAC;YACH,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC;QA9CA,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAmC,CAAC;QAE9E,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAES,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,CAAC,EACX,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,EACZ,YAAY,EAAE,CAAC,EACf,YAAY,EAAE,CAAC,GAChB,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;CA0BF;AAED,MAAM,OAAO,OAAQ,SAAQ,WAAyB;IAAtD;;QAEW,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;IAC7C,CAAC;;AAFiB,YAAI,SAAoB;AAI1C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,kBAAkB,EAAE,CAAC;IACrB,4BAA4B,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC","file":"arc.js","sourcesContent":["import { Factory } from './../core/factory';\nimport { ARC_MIDDLE_ANGLE } from '../constant';\nimport type { IArcMarkSpec, Datum, StateValueType } from '../typings';\nimport { polarToCartesian } from '../util/math';\nimport type { ExChannelCall } from './base/base-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkOption, IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerArcGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarArcAnimation } from '../animation/config';\nimport { isValid } from '@visactor/vutils';\n\nexport type IArcMark = IMarkRaw<IArcMarkSpec>;\n\nexport class BaseArcMark<T extends IArcMarkSpec> extends BaseMark<T> implements IMarkRaw<T> {\n readonly type: MarkTypeEnum = ArcMark.type;\n\n _unCompileChannel = { centerOffset: true, radiusOffset: true };\n\n constructor(name: string, option: IMarkOption) {\n super(name, option);\n\n // because of set object.function, this setting should be write after object init\n this._computeExChannel.x = this.computeCenter as ExChannelCall;\n this._computeExChannel.y = this.computeCenter as ExChannelCall;\n this._computeExChannel.outerRadius = this.computeOuterRadius as ExChannelCall;\n\n this._extensionChannel.centerOffset = ['x', 'y'];\n this._extensionChannel.radiusOffset = ['outerRadius'];\n }\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<T> = {\n ...super._getDefaultStyle(),\n startAngle: 0,\n endAngle: 0,\n outerRadius: 0,\n innerRadius: 0,\n cornerRadius: 0,\n lineWidth: 0,\n innerPadding: 0,\n outerPadding: 0\n };\n return defaultStyle;\n }\n\n protected computeOuterRadius = (\n key: string,\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n superValue: number\n ): number => {\n const offset = (this.getAttribute('radiusOffset', datum, states, opt) as number) ?? 0;\n return superValue + offset;\n };\n\n protected computeCenter = (\n key: 'x' | 'y',\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n center: number\n ) => {\n const offset = polarToCartesian({\n angle: datum[ARC_MIDDLE_ANGLE],\n radius: this.getAttribute('centerOffset', datum, states, opt) as number\n });\n return center + offset[key];\n };\n}\n\nexport class ArcMark extends BaseArcMark<IArcMarkSpec> implements IArcMark {\n static readonly type = MarkTypeEnum.arc;\n readonly type: MarkTypeEnum = ArcMark.type;\n}\n\nexport const registerArcMark = () => {\n registerArcGraphic();\n registerVGrammarArcAnimation();\n Factory.registerMark(ArcMark.type, ArcMark);\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/arc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD,MAAM,OAAO,WAAoC,SAAQ,QAAW;IAKlE,YAAY,IAAY,EAAE,MAAmB;QAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QALb,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;QAE3C,sBAAiB,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QA6BrD,uBAAkB,GAAG,CAC7B,GAAW,EACX,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,UAAkB,EACV,EAAE;;YACV,MAAM,MAAM,GAAG,MAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAY,mCAAI,CAAC,CAAC;YACtF,OAAO,UAAU,GAAG,MAAM,CAAC;QAC7B,CAAC,CAAC;QAEQ,kBAAa,GAAG,CACxB,GAAc,EACd,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,MAAc,EACd,EAAE;YACF,OAAO,CACL,gBAAgB,CACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EACd,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAW,EAC/D,KAAK,CAAC,gBAAgB,CAAC,CACxB,CAAC,GAAG,CAAC,GAAG,MAAM,CAChB,CAAC;QACJ,CAAC,CAAC;QAhDA,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAmC,CAAC;QAE9E,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAES,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,CAAC,EACX,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,EACZ,YAAY,EAAE,CAAC,EACf,YAAY,EAAE,CAAC,GAChB,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;CA4BF;AAED,MAAM,OAAO,OAAQ,SAAQ,WAAyB;IAAtD;;QAEW,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;IAC7C,CAAC;;AAFiB,YAAI,SAAoB;AAI1C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,kBAAkB,EAAE,CAAC;IACrB,4BAA4B,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC","file":"arc.js","sourcesContent":["import { Factory } from './../core/factory';\nimport { ARC_MIDDLE_ANGLE } from '../constant';\nimport type { IArcMarkSpec, Datum, StateValueType } from '../typings';\nimport type { ExChannelCall } from './base/base-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkOption, IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerArcGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarArcAnimation } from '../animation/config';\nimport { polarToCartesian } from '@visactor/vutils';\n\nexport type IArcMark = IMarkRaw<IArcMarkSpec>;\n\nexport class BaseArcMark<T extends IArcMarkSpec> extends BaseMark<T> implements IMarkRaw<T> {\n readonly type: MarkTypeEnum = ArcMark.type;\n\n _unCompileChannel = { centerOffset: true, radiusOffset: true };\n\n constructor(name: string, option: IMarkOption) {\n super(name, option);\n\n // because of set object.function, this setting should be write after object init\n this._computeExChannel.x = this.computeCenter as ExChannelCall;\n this._computeExChannel.y = this.computeCenter as ExChannelCall;\n this._computeExChannel.outerRadius = this.computeOuterRadius as ExChannelCall;\n\n this._extensionChannel.centerOffset = ['x', 'y'];\n this._extensionChannel.radiusOffset = ['outerRadius'];\n }\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<T> = {\n ...super._getDefaultStyle(),\n startAngle: 0,\n endAngle: 0,\n outerRadius: 0,\n innerRadius: 0,\n cornerRadius: 0,\n lineWidth: 0,\n innerPadding: 0,\n outerPadding: 0\n };\n return defaultStyle;\n }\n\n protected computeOuterRadius = (\n key: string,\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n superValue: number\n ): number => {\n const offset = (this.getAttribute('radiusOffset', datum, states, opt) as number) ?? 0;\n return superValue + offset;\n };\n\n protected computeCenter = (\n key: 'x' | 'y',\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n center: number\n ) => {\n return (\n polarToCartesian(\n { x: 0, y: 0 },\n this.getAttribute('centerOffset', datum, states, opt) as number,\n datum[ARC_MIDDLE_ANGLE]\n )[key] + center\n );\n };\n}\n\nexport class ArcMark extends BaseArcMark<IArcMarkSpec> implements IArcMark {\n static readonly type = MarkTypeEnum.arc;\n readonly type: MarkTypeEnum = ArcMark.type;\n}\n\nexport const registerArcMark = () => {\n registerArcGraphic();\n registerVGrammarArcAnimation();\n Factory.registerMark(ArcMark.type, ArcMark);\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { convertDomainToTickData } from "@visactor/vutils-extension";
1
+ import { convertDomainToTickData } from "@visactor/vrender-components";
2
2
 
3
3
  export const tickAlign = (data, op) => {
4
4
  var _a, _b, _c, _d, _e;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugin/components/axis-sync/tick-align-transform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAOrE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAkB,EAAE,EAAiB,EAAE,EAAE;;IACjE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,kDAAI,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,kDAAI,CAAC;IACxC,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,WAAW,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,CAAC;IAC7D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,oBAAoB,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACrF,IAAI,CAAC,oBAAoB,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,UAAU,GAAG,MAAA,MAAA,UAAU,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,0CAAE,UAAU,CAAC;IACvE,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC1C,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,QAAQ,GAAa,UAAU,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE;QACjE,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;QAC1D,OAAO,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC","file":"tick-align-transform.js","sourcesContent":["import type { Datum } from '../../../typings';\nimport type { CartesianAxis } from '../../../component';\nimport { convertDomainToTickData } from '@visactor/vutils-extension';\n\nexport interface ITickAlignOpt {\n targetAxis: () => CartesianAxis;\n currentAxis: () => CartesianAxis;\n}\n\nexport const tickAlign = (data: Array<Datum>, op: ITickAlignOpt) => {\n if (!data) {\n return data;\n }\n // check align enable\n const targetAxis = op?.targetAxis?.();\n if (!targetAxis) {\n return data;\n }\n const currentAxis = op?.currentAxis?.();\n if (!currentAxis) {\n return data;\n }\n const currentData = currentAxis.getTickData()?.getDataView();\n if (!currentData) {\n return data;\n }\n const currentTickTransform = currentData.transformsArr.find(t => t.type === 'ticks');\n if (!currentTickTransform) {\n return data;\n }\n const currentScale = currentAxis.getScale();\n if (!currentScale) {\n return data;\n }\n const targetData = targetAxis.getTickData()?.getDataView()?.latestData;\n if (!targetData?.length) {\n return data;\n }\n const targetScale = targetAxis.getScale();\n if (!targetScale) {\n return data;\n }\n const targetDomain = targetScale.domain();\n const targetRange = targetDomain[1] - targetDomain[0];\n if (targetRange === 0) {\n return data;\n }\n const currentDomain = currentScale.domain();\n const currentRange = currentDomain[1] - currentDomain[0];\n if (targetRange === 0) {\n return data;\n }\n // make the tickData of the current axis consistent with the tickData of the target axis\n const newTicks: number[] = targetData.map((d: { value: number }) => {\n const percent = (d.value - targetDomain[0]) / targetRange;\n return currentRange * percent + currentDomain[0];\n });\n return convertDomainToTickData(newTicks);\n};\n"]}
1
+ {"version":3,"sources":["../src/plugin/components/axis-sync/tick-align-transform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAOvE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAkB,EAAE,EAAiB,EAAE,EAAE;;IACjE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,kDAAI,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,kDAAI,CAAC;IACxC,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,WAAW,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,CAAC;IAC7D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,oBAAoB,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACrF,IAAI,CAAC,oBAAoB,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,UAAU,GAAG,MAAA,MAAA,UAAU,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,0CAAE,UAAU,CAAC;IACvE,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC1C,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,QAAQ,GAAa,UAAU,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE;QACjE,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;QAC1D,OAAO,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC","file":"tick-align-transform.js","sourcesContent":["import type { Datum } from '../../../typings';\nimport type { CartesianAxis } from '../../../component';\nimport { convertDomainToTickData } from '@visactor/vrender-components';\n\nexport interface ITickAlignOpt {\n targetAxis: () => CartesianAxis;\n currentAxis: () => CartesianAxis;\n}\n\nexport const tickAlign = (data: Array<Datum>, op: ITickAlignOpt) => {\n if (!data) {\n return data;\n }\n // check align enable\n const targetAxis = op?.targetAxis?.();\n if (!targetAxis) {\n return data;\n }\n const currentAxis = op?.currentAxis?.();\n if (!currentAxis) {\n return data;\n }\n const currentData = currentAxis.getTickData()?.getDataView();\n if (!currentData) {\n return data;\n }\n const currentTickTransform = currentData.transformsArr.find(t => t.type === 'ticks');\n if (!currentTickTransform) {\n return data;\n }\n const currentScale = currentAxis.getScale();\n if (!currentScale) {\n return data;\n }\n const targetData = targetAxis.getTickData()?.getDataView()?.latestData;\n if (!targetData?.length) {\n return data;\n }\n const targetScale = targetAxis.getScale();\n if (!targetScale) {\n return data;\n }\n const targetDomain = targetScale.domain();\n const targetRange = targetDomain[1] - targetDomain[0];\n if (targetRange === 0) {\n return data;\n }\n const currentDomain = currentScale.domain();\n const currentRange = currentDomain[1] - currentDomain[0];\n if (targetRange === 0) {\n return data;\n }\n // make the tickData of the current axis consistent with the tickData of the target axis\n const newTicks: number[] = targetData.map((d: { value: number }) => {\n const percent = (d.value - targetDomain[0]) / targetRange;\n return currentRange * percent + currentDomain[0];\n });\n return convertDomainToTickData(newTicks);\n};\n"]}
@@ -52,7 +52,6 @@ export declare class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extend
52
52
  protected _getBarBackgroundYStart: (scale: IBaseScale) => number;
53
53
  protected _getBarBackgroundYEnd: (scale: IBaseScale) => number;
54
54
  protected _initBandBarBackgroundMarkStyle(): void;
55
- protected _initLinearBarBackgroundMarkStyle(): void;
56
55
  initAnimation(): void;
57
56
  protected _getBarWidth(axisHelper: IAxisHelper, scaleDepth?: number): number;
58
57
  protected _getPosition(direction: DirectionType, datum: Datum, scaleDepth?: number, mark?: SeriesMarkNameEnum): number;
@@ -307,17 +307,37 @@ export class BarSeries extends CartesianSeries {
307
307
  initLinearRectMarkStyle() {
308
308
  var _a, _b, _c, _d;
309
309
  const xScale = null === (_b = null === (_a = this._xAxisHelper) || void 0 === _a ? void 0 : _a.getScale) || void 0 === _b ? void 0 : _b.call(_a, 0), yScale = null === (_d = null === (_c = this._yAxisHelper) || void 0 === _c ? void 0 : _c.getScale) || void 0 === _d ? void 0 : _d.call(_c, 0);
310
- "horizontal" === this.direction ? this.setMarkStyle(this._barMark, {
311
- x: datum => this._getBarXStart(datum, xScale),
312
- x1: datum => this._getBarXEnd(datum, xScale),
313
- y: datum => valueInScaleRange(this.dataToPositionY(datum), yScale),
314
- y1: datum => valueInScaleRange(this.dataToPositionY1(datum), yScale)
315
- }, "normal", AttributeLevel.Series) : this.setMarkStyle(this._barMark, {
316
- x: datum => valueInScaleRange(this.dataToPositionX(datum), xScale),
317
- x1: datum => valueInScaleRange(this.dataToPositionX1(datum), xScale),
318
- y: datum => this._getBarYStart(datum, yScale),
319
- y1: datum => this._getBarYEnd(datum, yScale)
320
- }, "normal", AttributeLevel.Series), this._initLinearBarBackgroundMarkStyle();
310
+ if ("horizontal" === this.direction) {
311
+ const yChannels = isValid(this._fieldY2) ? {
312
+ y: datum => valueInScaleRange(this._dataToPosY(datum), yScale),
313
+ y1: datum => valueInScaleRange(this._dataToPosY1(datum), yScale)
314
+ } : {
315
+ y: datum => valueInScaleRange(this._dataToPosY(datum) - this._getBarWidth(this._yAxisHelper) / 2, yScale),
316
+ height: datum => this._getBarWidth(this._yAxisHelper)
317
+ };
318
+ this.setMarkStyle(this._barMark, Object.assign({
319
+ x: datum => this._getBarXStart(datum, xScale),
320
+ x1: datum => this._getBarXEnd(datum, xScale)
321
+ }, yChannels), "normal", AttributeLevel.Series), this.setMarkStyle(this._barBackgroundMark, Object.assign({
322
+ x: () => this._getBarBackgroundXStart(xScale),
323
+ x1: () => this._getBarBackgroundXEnd(xScale)
324
+ }, yChannels), "normal", AttributeLevel.Series);
325
+ } else {
326
+ const xChannels = isValid(this._fieldX2) ? {
327
+ x: datum => valueInScaleRange(this._dataToPosX(datum), xScale),
328
+ x1: datum => valueInScaleRange(this._dataToPosX1(datum), xScale)
329
+ } : {
330
+ x: datum => valueInScaleRange(this._dataToPosX(datum) - this._getBarWidth(this._xAxisHelper) / 2, xScale),
331
+ width: datum => this._getBarWidth(this._xAxisHelper)
332
+ };
333
+ this.setMarkStyle(this._barMark, Object.assign(Object.assign({}, xChannels), {
334
+ y: datum => this._getBarYStart(datum, yScale),
335
+ y1: datum => this._getBarYEnd(datum, yScale)
336
+ }), "normal", AttributeLevel.Series), this.setMarkStyle(this._barBackgroundMark, Object.assign(Object.assign({}, xChannels), {
337
+ y: () => this._getBarBackgroundYStart(yScale),
338
+ y1: () => this._getBarBackgroundYEnd(yScale)
339
+ }), "normal", AttributeLevel.Series);
340
+ }
321
341
  }
322
342
  _initBandBarBackgroundMarkStyle() {
323
343
  var _a, _b, _c, _d, _e;
@@ -339,21 +359,6 @@ export class BarSeries extends CartesianSeries {
339
359
  height: () => {}
340
360
  }, "normal", AttributeLevel.Series);
341
361
  }
342
- _initLinearBarBackgroundMarkStyle() {
343
- var _a, _b, _c, _d;
344
- const xScale = null === (_b = null === (_a = this._xAxisHelper) || void 0 === _a ? void 0 : _a.getScale) || void 0 === _b ? void 0 : _b.call(_a, 0), yScale = null === (_d = null === (_c = this._yAxisHelper) || void 0 === _c ? void 0 : _c.getScale) || void 0 === _d ? void 0 : _d.call(_c, 0);
345
- "horizontal" === this.direction ? this.setMarkStyle(this._barBackgroundMark, {
346
- x: () => this._getBarBackgroundXStart(xScale),
347
- x1: () => this._getBarBackgroundXEnd(xScale),
348
- y: datum => valueInScaleRange(this.dataToPositionY(datum), yScale),
349
- y1: datum => valueInScaleRange(this.dataToPositionY1(datum), yScale)
350
- }, "normal", AttributeLevel.Series) : this.setMarkStyle(this._barBackgroundMark, {
351
- x: datum => valueInScaleRange(this.dataToPositionX(datum), xScale),
352
- x1: datum => valueInScaleRange(this.dataToPositionX1(datum), xScale),
353
- y: () => this._getBarBackgroundYStart(yScale),
354
- y1: () => this._getBarBackgroundYEnd(yScale)
355
- }, "normal", AttributeLevel.Series);
356
- }
357
362
  initAnimation() {
358
363
  var _a, _b;
359
364
  const barAnimationParams = {