@visactor/vchart 2.0.2 → 2.0.3-alpha.1

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 (80) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +547 -487
  3. package/build/index.js +547 -486
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/utils.js +1 -1
  7. package/cjs/animation/utils.js.map +1 -1
  8. package/cjs/chart/base/base-chart-transformer.js +3 -3
  9. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  10. package/cjs/chart/base/base-chart.js.map +1 -1
  11. package/cjs/chart/index.d.ts +2 -2
  12. package/cjs/chart/index.js +7 -2
  13. package/cjs/chart/index.js.map +1 -1
  14. package/cjs/chart/interface/common.d.ts +1 -1
  15. package/cjs/chart/interface/common.js.map +1 -1
  16. package/cjs/component/axis/base-axis.js +14 -13
  17. package/cjs/component/axis/base-axis.js.map +1 -1
  18. package/cjs/component/custom-mark/custom-mark.js +6 -9
  19. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  20. package/cjs/core/index.d.ts +1 -1
  21. package/cjs/core/index.js +1 -1
  22. package/cjs/core/index.js.map +1 -1
  23. package/cjs/core/interface.d.ts +1 -0
  24. package/cjs/core/interface.js.map +1 -1
  25. package/cjs/core/vchart.d.ts +1 -0
  26. package/cjs/core/vchart.js +6 -5
  27. package/cjs/core/vchart.js.map +1 -1
  28. package/cjs/mark/base/base-line.d.ts +1 -1
  29. package/cjs/mark/base/base-line.js.map +1 -1
  30. package/cjs/model/interface.d.ts +1 -1
  31. package/cjs/model/interface.js.map +1 -1
  32. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
  33. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
  34. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  35. package/cjs/series/base/base-series-transformer.js +1 -1
  36. package/cjs/series/base/base-series-transformer.js.map +1 -1
  37. package/cjs/series/sankey/sankey.d.ts +10 -10
  38. package/cjs/series/sankey/sankey.js +199 -194
  39. package/cjs/series/sankey/sankey.js.map +1 -1
  40. package/cjs/util/object.d.ts +1 -0
  41. package/cjs/util/object.js +13 -2
  42. package/cjs/util/object.js.map +1 -1
  43. package/esm/animation/utils.js +1 -1
  44. package/esm/animation/utils.js.map +1 -1
  45. package/esm/chart/base/base-chart-transformer.js +3 -3
  46. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  47. package/esm/chart/base/base-chart.js.map +1 -1
  48. package/esm/chart/index.d.ts +2 -2
  49. package/esm/chart/index.js +2 -2
  50. package/esm/chart/index.js.map +1 -1
  51. package/esm/chart/interface/common.d.ts +1 -1
  52. package/esm/chart/interface/common.js.map +1 -1
  53. package/esm/component/axis/base-axis.js +8 -8
  54. package/esm/component/axis/base-axis.js.map +1 -1
  55. package/esm/component/custom-mark/custom-mark.js +6 -9
  56. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  57. package/esm/core/index.d.ts +1 -1
  58. package/esm/core/index.js +1 -1
  59. package/esm/core/index.js.map +1 -1
  60. package/esm/core/interface.d.ts +1 -0
  61. package/esm/core/interface.js.map +1 -1
  62. package/esm/core/vchart.d.ts +1 -0
  63. package/esm/core/vchart.js +7 -6
  64. package/esm/core/vchart.js.map +1 -1
  65. package/esm/mark/base/base-line.d.ts +1 -1
  66. package/esm/mark/base/base-line.js.map +1 -1
  67. package/esm/model/interface.d.ts +1 -1
  68. package/esm/model/interface.js.map +1 -1
  69. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
  70. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
  71. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  72. package/esm/series/base/base-series-transformer.js +1 -1
  73. package/esm/series/base/base-series-transformer.js.map +1 -1
  74. package/esm/series/sankey/sankey.d.ts +10 -10
  75. package/esm/series/sankey/sankey.js +192 -187
  76. package/esm/series/sankey/sankey.js.map +1 -1
  77. package/esm/util/object.d.ts +1 -0
  78. package/esm/util/object.js +11 -0
  79. package/esm/util/object.js.map +1 -1
  80. package/package.json +12 -12
package/build/index.es.js CHANGED
@@ -16371,14 +16371,10 @@ class Glyph extends Graphic {
16371
16371
  attrs && (Object.assign(stateAttrs, attrs.attributes), (null === (_a = attrs.subAttributes) || void 0 === _a ? void 0 : _a.length) && subAttrs.forEach((subAttrs, index) => {
16372
16372
  Object.assign(subAttrs, attrs.subAttributes[index]);
16373
16373
  }));
16374
- }), this.subGraphic.forEach((graphic, index) => {
16375
- graphic.updateNormalAttrs(subAttrs[index]), graphic.applyStateAttrs(subAttrs[index], states, hasAnimation);
16376
16374
  }), this.updateNormalAttrs(stateAttrs), this.currentStates = states, this.applyStateAttrs(stateAttrs, states, hasAnimation);
16377
16375
  }
16378
16376
  clearStates(hasAnimation) {
16379
- this.stopStateAnimates(), this.hasState() && this.normalAttrs ? (this.currentStates = [], this.subGraphic.forEach(graphic => {
16380
- graphic.applyStateAttrs(graphic.normalAttrs, this.currentStates, hasAnimation, !0), graphic.normalAttrs = null;
16381
- }), this.applyStateAttrs(this.normalAttrs, this.currentStates, hasAnimation, !0)) : this.currentStates = [], this.normalAttrs = null;
16377
+ this.stopStateAnimates(), this.hasState() && this.normalAttrs ? (this.currentStates = [], this.applyStateAttrs(this.normalAttrs, this.currentStates, hasAnimation, !0)) : this.currentStates = [], this.normalAttrs = null;
16382
16378
  }
16383
16379
  clone() {
16384
16380
  const glyph = new Glyph(Object.assign({}, this.attribute));
@@ -33694,7 +33690,7 @@ class GrowAngleBase extends ACustomAnimate {
33694
33690
  }
33695
33691
  class GrowAngleIn extends GrowAngleBase {
33696
33692
  onBind() {
33697
- var _a, _b;
33693
+ var _a, _b, _c;
33698
33694
  super.onBind();
33699
33695
  const {
33700
33696
  from: from,
@@ -33703,7 +33699,7 @@ class GrowAngleIn extends GrowAngleBase {
33703
33699
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
33704
33700
  this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
33705
33701
  const finalAttribute = this.target.getFinalAttribute();
33706
- finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs), this.determineUpdateFunction();
33702
+ finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(fromAttrs), this.determineUpdateFunction();
33707
33703
  }
33708
33704
  }
33709
33705
  class GrowAngleOut extends GrowAngleBase {
@@ -34311,7 +34307,7 @@ class GrowPointsBase extends ACustomAnimate {
34311
34307
  }
34312
34308
  class GrowRadiusIn extends GrowPointsBase {
34313
34309
  onBind() {
34314
- var _a, _b;
34310
+ var _a, _b, _c;
34315
34311
  super.onBind();
34316
34312
  const {
34317
34313
  from: from,
@@ -34320,7 +34316,7 @@ class GrowRadiusIn extends GrowPointsBase {
34320
34316
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34321
34317
  this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
34322
34318
  const finalAttribute = this.target.getFinalAttribute();
34323
- finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
34319
+ finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(fromAttrs);
34324
34320
  }
34325
34321
  }
34326
34322
  class GrowRadiusOut extends GrowPointsBase {
@@ -34435,7 +34431,7 @@ class GrowWidthIn extends ACustomAnimate {
34435
34431
  super(from, to, duration, easing, params);
34436
34432
  }
34437
34433
  onBind() {
34438
- var _a, _b;
34434
+ var _a, _b, _c;
34439
34435
  super.onBind();
34440
34436
  const {
34441
34437
  from: from,
@@ -34444,7 +34440,7 @@ class GrowWidthIn extends ACustomAnimate {
34444
34440
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34445
34441
  this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
34446
34442
  const finalAttribute = this.target.getFinalAttribute();
34447
- finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
34443
+ finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(fromAttrs);
34448
34444
  }
34449
34445
  onEnd(cb) {
34450
34446
  super.onEnd(cb);
@@ -37342,7 +37338,9 @@ class BandScale extends OrdinalScale {
37342
37338
  space = bandSpace(n, this._paddingInner, this._paddingOuter);
37343
37339
  return this._step = (stop - start) / Math.max(1, space || 1), this._round && (this._step = Math.floor(this._step)), start += (stop - start - this._step * (n - this._paddingInner)) * this._align, this.isBandwidthFixed() || (this._bandwidth = this._step * (1 - this._paddingInner)), this._round && (start = Math.round(start), this.isBandwidthFixed() || (this._bandwidth = Math.round(this._bandwidth))), this._bandRangeState = {
37344
37340
  reverse: reverse,
37345
- start: reverse ? start + this._step * (n - 1) : start,
37341
+ start: reverse ? clamp$1(start + this._step * (n - 1), wholeRange[1], wholeRange[0]) : clamp$1(start, wholeRange[0], wholeRange[1]),
37342
+ min: reverse ? wholeRange[1] : wholeRange[0],
37343
+ max: stop,
37346
37344
  count: n
37347
37345
  }, this.generateFishEyeTransform(), this;
37348
37346
  }
@@ -37359,10 +37357,12 @@ class BandScale extends OrdinalScale {
37359
37357
  const {
37360
37358
  count: count,
37361
37359
  start: start,
37362
- reverse: reverse
37360
+ reverse: reverse,
37361
+ min: min,
37362
+ max: max
37363
37363
  } = this._bandRangeState,
37364
37364
  output = start + (reverse ? -1 : 1) * ((i - 1) % count) * this._step;
37365
- return this._fishEyeTransform ? this._fishEyeTransform(output) : output;
37365
+ return clamp$1(this._fishEyeTransform ? this._fishEyeTransform(output) : output, min, max);
37366
37366
  }
37367
37367
  _calculateWholeRange(range, changeProperty) {
37368
37368
  if (this._wholeRange) return this._wholeRange;
@@ -47289,6 +47289,22 @@ function field$1(f) {
47289
47289
  return value;
47290
47290
  };
47291
47291
  }
47292
+ function removeUndefined(obj, deep = false) {
47293
+ if (obj === null || typeof obj !== 'object') {
47294
+ return obj;
47295
+ }
47296
+ for (const key in obj) {
47297
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
47298
+ if (obj[key] === undefined) {
47299
+ delete obj[key];
47300
+ continue;
47301
+ }
47302
+ if (deep) {
47303
+ removeUndefined(obj[key], deep);
47304
+ }
47305
+ }
47306
+ }
47307
+ }
47292
47308
 
47293
47309
  var SeriesTypeForThemeEnum;
47294
47310
  (function (SeriesTypeForThemeEnum) {
@@ -55657,7 +55673,8 @@ class VChart {
55657
55673
  this._cachedProcessedTheme[cacheKey] = theme;
55658
55674
  return theme;
55659
55675
  };
55660
- this._option = Object.assign(Object.assign(Object.assign({}, this._option), { animation: spec.animation !== false }), options);
55676
+ removeUndefined(options);
55677
+ this._option = Object.assign(Object.assign({}, this._option), options);
55661
55678
  if (options === null || options === void 0 ? void 0 : options.optimize) {
55662
55679
  this._option.optimize = Object.assign(Object.assign({}, this._option.optimize), options.optimize);
55663
55680
  }
@@ -55971,7 +55988,7 @@ class VChart {
55971
55988
  }
55972
55989
  _updateAnimateState(initial) {
55973
55990
  var _a, _b;
55974
- if (this._option.animation) {
55991
+ if (this.isAnimationEnable()) {
55975
55992
  const updateGraphicAnimationState = (graphic) => {
55976
55993
  var _a;
55977
55994
  const diffState = (_a = graphic.context) === null || _a === void 0 ? void 0 : _a.diffState;
@@ -56767,6 +56784,12 @@ class VChart {
56767
56784
  _getMode() {
56768
56785
  return this._option.mode || RenderModeEnum['desktop-browser'];
56769
56786
  }
56787
+ isAnimationEnable() {
56788
+ if ('animation' in this._option) {
56789
+ return !!this._option.animation;
56790
+ }
56791
+ return this._spec.animation !== false;
56792
+ }
56770
56793
  _getChartOption(type) {
56771
56794
  return {
56772
56795
  type,
@@ -56780,7 +56803,6 @@ class VChart {
56780
56803
  modeParams: this._option.modeParams,
56781
56804
  getCompiler: () => this._compiler,
56782
56805
  viewBox: this._viewBox,
56783
- animation: this._option.animation,
56784
56806
  getTheme: this.getTheme,
56785
56807
  getSpecInfo: () => { var _a; return (_a = this._specInfo) !== null && _a !== void 0 ? _a : {}; },
56786
56808
  layout: this._option.layout,
@@ -56904,7 +56926,7 @@ const lookup = (data, opt) => {
56904
56926
  });
56905
56927
  };
56906
56928
 
56907
- const version = "2.0.2";
56929
+ const version = "2.0.3-alpha.1";
56908
56930
 
56909
56931
  const addVChartProperty = (data, op) => {
56910
56932
  const context = op.beforeCall();
@@ -57668,7 +57690,7 @@ function isAnimationEnabledForSeries(series) {
57668
57690
  if (seriesSpec.animation === false) {
57669
57691
  return false;
57670
57692
  }
57671
- if (((_b = (_a = series.getChart()) === null || _a === void 0 ? void 0 : _a.getOption()) === null || _b === void 0 ? void 0 : _b.animation) === false) {
57693
+ if (((_b = (_a = series.getOption()) === null || _a === void 0 ? void 0 : _a.globalInstance) === null || _b === void 0 ? void 0 : _b.isAnimationEnable()) === false) {
57672
57694
  return false;
57673
57695
  }
57674
57696
  let animationThreshold = (_c = seriesSpec.animationThreshold) !== null && _c !== void 0 ? _c : Number.MAX_SAFE_INTEGER;
@@ -57752,7 +57774,7 @@ class BaseSeriesSpecTransformer extends BaseModelSpecTransformer {
57752
57774
  if (labelSpec && labelSpec.visible) {
57753
57775
  const { animation = true, animationUpdate: labelAnimationUpdate = true, animationEnter: labelAnimationEnter = true, animationExit: labelAnimationExit = true } = labelSpec;
57754
57776
  const { animationUpdate = true, animationEnter = true, animationExit = true } = spec;
57755
- const animationEnabled = (_c = (_b = (_a = this._option) === null || _a === void 0 ? void 0 : _a.animation) !== null && _b !== void 0 ? _b : spec.animation) !== null && _c !== void 0 ? _c : labelSpec.animation;
57777
+ const animationEnabled = (_c = (_b = (_a = this._option.globalInstance) === null || _a === void 0 ? void 0 : _a.isAnimationEnable()) !== null && _b !== void 0 ? _b : spec.animation) !== null && _c !== void 0 ? _c : labelSpec.animation;
57756
57778
  const labelAnimationEnabled = !!animationEnabled && !!hasAnimation;
57757
57779
  this.addLabelSpec(isFunction$1(markName) ? markName(labelSpec) : markName, Object.assign(Object.assign({}, labelSpec), { animation: labelAnimationEnabled ? animation : false, animationUpdate: labelAnimationEnabled && animationUpdate && labelAnimationUpdate ? animationUpdate : false, animationEnter: labelAnimationEnabled && animationEnter && labelAnimationEnter ? animationEnter : false, animationExit: labelAnimationEnabled && animationEnter && labelAnimationExit ? animationExit : false, getStyleHandler: (series) => { var _a; return (_a = series[styleHandlerName]) === null || _a === void 0 ? void 0 : _a.bind(series); } }), head);
57758
57780
  }
@@ -61200,7 +61222,7 @@ class AxisComponent extends BaseComponent {
61200
61222
  return [(_a = this._axisMark) === null || _a === void 0 ? void 0 : _a.getProduct(), (_b = this._gridMark) === null || _b === void 0 ? void 0 : _b.getProduct()].filter(isValid$1);
61201
61223
  }
61202
61224
  created() {
61203
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
61225
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
61204
61226
  super.created();
61205
61227
  this.setSeriesAndRegionsFromSpec();
61206
61228
  this.initEvent();
@@ -61237,15 +61259,15 @@ class AxisComponent extends BaseComponent {
61237
61259
  this._marks.addMark(gridMark);
61238
61260
  this._gridMark = gridMark;
61239
61261
  }
61240
- if (this._option.animation !== false &&
61262
+ if (((_h = this._option.globalInstance) === null || _h === void 0 ? void 0 : _h.isAnimationEnable()) &&
61241
61263
  get$1(this._option.getChart().getSpec(), 'animation') !== false &&
61242
61264
  this._spec.animation === true) {
61243
- const axisAnimateConfig = animationConfig((_h = Factory.getAnimationInKey('axis')) === null || _h === void 0 ? void 0 : _h(), {
61244
- appear: (_k = (_j = this._spec.animationAppear) !== null && _j !== void 0 ? _j : get$1(this._option.getChart().getSpec(), 'animationAppear.axis')) !== null && _k !== void 0 ? _k : get$1(this._option.getChart().getSpec(), 'animationAppear'),
61245
- disappear: (_m = (_l = this._spec.animationDisappear) !== null && _l !== void 0 ? _l : get$1(this._option.getChart().getSpec(), 'animationDisappear.axis')) !== null && _m !== void 0 ? _m : get$1(this._option.getChart().getSpec(), 'animationDisappear'),
61246
- enter: (_p = (_o = this._spec.animationEnter) !== null && _o !== void 0 ? _o : get$1(this._option.getChart().getSpec(), 'animationEnter.axis')) !== null && _p !== void 0 ? _p : get$1(this._option.getChart().getSpec(), 'animationEnter'),
61247
- exit: (_r = (_q = this._spec.animationExit) !== null && _q !== void 0 ? _q : get$1(this._option.getChart().getSpec(), 'animationExit.axis')) !== null && _r !== void 0 ? _r : get$1(this._option.getChart().getSpec(), 'animationExit'),
61248
- update: (_t = (_s = this._spec.animationUpdate) !== null && _s !== void 0 ? _s : get$1(this._option.getChart().getSpec(), 'animationUpdate.axis')) !== null && _t !== void 0 ? _t : get$1(this._option.getChart().getSpec(), 'animationUpdate')
61265
+ const axisAnimateConfig = animationConfig((_j = Factory.getAnimationInKey('axis')) === null || _j === void 0 ? void 0 : _j(), {
61266
+ appear: (_l = (_k = this._spec.animationAppear) !== null && _k !== void 0 ? _k : get$1(this._option.getChart().getSpec(), 'animationAppear.axis')) !== null && _l !== void 0 ? _l : get$1(this._option.getChart().getSpec(), 'animationAppear'),
61267
+ disappear: (_o = (_m = this._spec.animationDisappear) !== null && _m !== void 0 ? _m : get$1(this._option.getChart().getSpec(), 'animationDisappear.axis')) !== null && _o !== void 0 ? _o : get$1(this._option.getChart().getSpec(), 'animationDisappear'),
61268
+ enter: (_q = (_p = this._spec.animationEnter) !== null && _p !== void 0 ? _p : get$1(this._option.getChart().getSpec(), 'animationEnter.axis')) !== null && _q !== void 0 ? _q : get$1(this._option.getChart().getSpec(), 'animationEnter'),
61269
+ exit: (_s = (_r = this._spec.animationExit) !== null && _r !== void 0 ? _r : get$1(this._option.getChart().getSpec(), 'animationExit.axis')) !== null && _s !== void 0 ? _s : get$1(this._option.getChart().getSpec(), 'animationExit'),
61270
+ update: (_u = (_t = this._spec.animationUpdate) !== null && _t !== void 0 ? _t : get$1(this._option.getChart().getSpec(), 'animationUpdate.axis')) !== null && _u !== void 0 ? _u : get$1(this._option.getChart().getSpec(), 'animationUpdate')
61249
61271
  });
61250
61272
  if (axisAnimateConfig.enter) {
61251
61273
  axisAnimateConfig.update[0].customParameters = {
@@ -65788,15 +65810,15 @@ class BaseChartSpecTransformer {
65788
65810
  return true;
65789
65811
  }
65790
65812
  _getDefaultSeriesSpec(chartSpec, pickKeys, pickKeys2) {
65791
- var _a, _b, _c, _d;
65813
+ var _a, _b, _c, _d, _e;
65792
65814
  const series = {
65793
65815
  dataKey: chartSpec.dataKey,
65794
65816
  hover: chartSpec.hover,
65795
65817
  select: chartSpec.select,
65796
65818
  label: chartSpec.label,
65797
65819
  seriesStyle: chartSpec.seriesStyle,
65798
- animation: (_a = chartSpec.animation) !== null && _a !== void 0 ? _a : this._option.animation,
65799
- animationThreshold: (_b = chartSpec.animationThreshold) !== null && _b !== void 0 ? _b : (_d = (_c = this._option).getTheme) === null || _d === void 0 ? void 0 : _d.call(_c, 'animationThreshold'),
65820
+ animation: (_a = chartSpec.animation) !== null && _a !== void 0 ? _a : (_b = this._option.globalInstance) === null || _b === void 0 ? void 0 : _b.isAnimationEnable(),
65821
+ animationThreshold: (_c = chartSpec.animationThreshold) !== null && _c !== void 0 ? _c : (_e = (_d = this._option).getTheme) === null || _e === void 0 ? void 0 : _e.call(_d, 'animationThreshold'),
65800
65822
  animationAppear: chartSpec.animationAppear,
65801
65823
  animationDisappear: chartSpec.animationDisappear,
65802
65824
  animationEnter: chartSpec.animationEnter,
@@ -76920,6 +76942,72 @@ const calculateNodeValue = subTree => {
76920
76942
  isNil$1(node.value) && ((null === (_a = node.children) || void 0 === _a ? void 0 : _a.length) ? node.value = calculateNodeValue(node.children) : node.value = 0), sum += Math.abs(node.value);
76921
76943
  }), sum;
76922
76944
  };
76945
+ function makeHierarchicNodes(originalNodes, nodeKeyFunc, nodes = [], nodeMap = {}, originalLinks) {
76946
+ calculateNodeValue(originalNodes);
76947
+ const doSubTree = (subTree, depth, parents) => {
76948
+ subTree.forEach((node, index) => {
76949
+ const nodeKey = nodeKeyFunc ? nodeKeyFunc(node) : parents ? `${parents[parents.length - 1].key}-${index}` : `${depth}-${index}`,
76950
+ nodeValue = isNil$1(node.value) ? 0 : toValidNumber$1(node.value);
76951
+ if (nodeMap[nodeKey]) nodeMap[nodeKey].value = void 0;else {
76952
+ const nodeElement = {
76953
+ depth: depth,
76954
+ datum: node,
76955
+ index: index,
76956
+ key: nodeKey,
76957
+ value: nodeValue,
76958
+ sourceLinks: [],
76959
+ targetLinks: []
76960
+ };
76961
+ nodeMap[nodeKey] = nodeElement, nodes.push(nodeElement);
76962
+ }
76963
+ parents && originalLinks && originalLinks.push({
76964
+ source: parents[parents.length - 1].key,
76965
+ target: nodeKey,
76966
+ value: nodeValue,
76967
+ parents: parents
76968
+ }), node.children && node.children.length && doSubTree(node.children, depth + 1, parents ? parents.concat([nodeMap[nodeKey]]) : [nodeMap[nodeKey]]);
76969
+ });
76970
+ };
76971
+ return doSubTree(originalNodes, 0, null), nodes;
76972
+ }
76973
+ function computeHierarchicNodeLinks(originalNodes, nodeKeyFunc) {
76974
+ const nodes = [],
76975
+ links = [],
76976
+ nodeMap = {},
76977
+ linkMap = {},
76978
+ originalLinks = [];
76979
+ return makeHierarchicNodes(originalNodes, nodeKeyFunc, nodes, nodeMap, originalLinks), originalLinks.forEach((link, index) => {
76980
+ const key = `${link.source}-${link.target}`,
76981
+ linkDatum = pickWithout(link, ["parents"]);
76982
+ if (linkDatum.parents = link.parents.map(node => pickWithout(node, ["sourceLinks", "targetLinks"])), linkMap[key]) return linkMap[key].value += toValidNumber$1(link.value), void linkMap[key].datum.push(linkDatum);
76983
+ const linkElement = {
76984
+ index: index,
76985
+ key: `${link.source}-${link.target}`,
76986
+ source: link.source,
76987
+ target: link.target,
76988
+ datum: [linkDatum],
76989
+ value: link.value,
76990
+ parents: link.parents.map(parent => parent.key)
76991
+ };
76992
+ links.push(linkElement), nodeMap[link.source].sourceLinks.push(linkElement), nodeMap[link.target].targetLinks.push(linkElement), linkMap[key] = linkElement;
76993
+ }), {
76994
+ nodes: nodes,
76995
+ links: links,
76996
+ nodeMap: nodeMap
76997
+ };
76998
+ }
76999
+ function computeNodeValues(nodes) {
77000
+ for (let i = 0, len = nodes.length; i < len; i++) {
77001
+ const node = nodes[i];
77002
+ node.value = Math.max(isNil$1(node.value) ? 0 : toValidNumber$1(node.value), node.sourceLinks.reduce((sum, link) => {
77003
+ var _a;
77004
+ return sum + (null !== (_a = toValidNumber$1(link.value)) && void 0 !== _a ? _a : 0);
77005
+ }, 0), node.targetLinks.reduce((sum, link) => {
77006
+ var _a;
77007
+ return sum + (null !== (_a = toValidNumber$1(link.value)) && void 0 !== _a ? _a : 0);
77008
+ }, 0));
77009
+ }
77010
+ }
76923
77011
 
76924
77012
  function left(node) {
76925
77013
  return node.depth;
@@ -77053,55 +77141,7 @@ class SankeyLayout {
77053
77141
  };
77054
77142
  }
77055
77143
  computeHierarchicNodeLinks(originalNodes) {
77056
- const nodes = [],
77057
- links = [],
77058
- nodeMap = {},
77059
- linkMap = {},
77060
- originalLinks = [];
77061
- calculateNodeValue(originalNodes);
77062
- const doSubTree = (subTree, depth, parents) => {
77063
- subTree.forEach((node, index) => {
77064
- const nodeKey = this._getNodeKey ? this._getNodeKey(node) : parents ? `${parents[parents.length - 1].key}-${index}` : `${depth}-${index}`,
77065
- nodeValue = isNil$1(node.value) ? 0 : toValidNumber$1(node.value);
77066
- if (nodeMap[nodeKey]) nodeMap[nodeKey].value = void 0;else {
77067
- const nodeElement = {
77068
- depth: depth,
77069
- datum: node,
77070
- index: index,
77071
- key: nodeKey,
77072
- value: nodeValue,
77073
- sourceLinks: [],
77074
- targetLinks: []
77075
- };
77076
- nodeMap[nodeKey] = nodeElement, nodes.push(nodeElement);
77077
- }
77078
- parents && originalLinks.push({
77079
- source: parents[parents.length - 1].key,
77080
- target: nodeKey,
77081
- value: nodeValue,
77082
- parents: parents
77083
- }), node.children && node.children.length && doSubTree(node.children, depth + 1, parents ? parents.concat([nodeMap[nodeKey]]) : [nodeMap[nodeKey]]);
77084
- });
77085
- };
77086
- return doSubTree(originalNodes, 0, null), originalLinks.forEach((link, index) => {
77087
- const key = `${link.source}-${link.target}`,
77088
- linkDatum = pickWithout(link, ["parents"]);
77089
- if (linkDatum.parents = link.parents.map(node => pickWithout(node, ["sourceLinks", "targetLinks"])), linkMap[key]) return linkMap[key].value += toValidNumber$1(link.value), void linkMap[key].datum.push(linkDatum);
77090
- const linkElement = {
77091
- index: index,
77092
- key: `${link.source}-${link.target}`,
77093
- source: link.source,
77094
- target: link.target,
77095
- datum: [linkDatum],
77096
- value: link.value,
77097
- parents: link.parents.map(parent => parent.key)
77098
- };
77099
- links.push(linkElement), nodeMap[link.source].sourceLinks.push(linkElement), nodeMap[link.target].targetLinks.push(linkElement), linkMap[key] = linkElement;
77100
- }), {
77101
- nodes: nodes,
77102
- links: links,
77103
- nodeMap: nodeMap
77104
- };
77144
+ return computeHierarchicNodeLinks(originalNodes, this._getNodeKey);
77105
77145
  }
77106
77146
  computeSourceTargetNodeLinks(data) {
77107
77147
  const nodes = [],
@@ -77171,16 +77211,7 @@ class SankeyLayout {
77171
77211
  };
77172
77212
  }
77173
77213
  computeNodeValues(nodes) {
77174
- for (let i = 0, len = nodes.length; i < len; i++) {
77175
- const node = nodes[i];
77176
- node.value = Math.max(isNil$1(node.value) ? 0 : toValidNumber$1(node.value), node.sourceLinks.reduce((sum, link) => {
77177
- var _a;
77178
- return sum + (null !== (_a = toValidNumber$1(link.value)) && void 0 !== _a ? _a : 0);
77179
- }, 0), node.targetLinks.reduce((sum, link) => {
77180
- var _a;
77181
- return sum + (null !== (_a = toValidNumber$1(link.value)) && void 0 !== _a ? _a : 0);
77182
- }, 0));
77183
- }
77214
+ return computeNodeValues(nodes);
77184
77215
  }
77185
77216
  computeNodeDepths(nodes) {
77186
77217
  var _a;
@@ -78245,7 +78276,7 @@ function normalizeSolution(solution, orientation, orientationOrder) {
78245
78276
  return ret;
78246
78277
  }
78247
78278
 
78248
- function scaleSolution(solution, width, height, x0, y0) {
78279
+ function scaleSolution(solution, width, height, x0, y0, hasEmptySet = !1) {
78249
78280
  width = Math.max(width, 1), height = Math.max(height, 1);
78250
78281
  const circles = [],
78251
78282
  setIds = [];
@@ -78255,9 +78286,20 @@ function scaleSolution(solution, width, height, x0, y0) {
78255
78286
  yRange = bounds.yRange;
78256
78287
  if (xRange.max === xRange.min || yRange.max === yRange.min) return console.log("not scaling solution: zero size detected"), solution;
78257
78288
  const xScaling = width / (xRange.max - xRange.min),
78258
- yScaling = height / (yRange.max - yRange.min),
78259
- scaling = Math.min(yScaling, xScaling),
78260
- xOffset = (width - (xRange.max - xRange.min) * scaling) / 2,
78289
+ yScaling = height / (yRange.max - yRange.min);
78290
+ let scaling;
78291
+ if (hasEmptySet) {
78292
+ const containerRadius = Math.min(width, height) / 2,
78293
+ centerX = (xRange.min + xRange.max) / 2,
78294
+ centerY = (yRange.min + yRange.max) / 2;
78295
+ let diagramRadius = 0;
78296
+ for (const circle of circles) {
78297
+ const maxDistanceForThisCircle = Math.sqrt(Math.pow(circle.x - centerX, 2) + Math.pow(circle.y - centerY, 2)) + circle.radius;
78298
+ diagramRadius = Math.max(diagramRadius, maxDistanceForThisCircle);
78299
+ }
78300
+ scaling = containerRadius / diagramRadius;
78301
+ } else scaling = Math.min(yScaling, xScaling);
78302
+ const xOffset = (width - (xRange.max - xRange.min) * scaling) / 2,
78261
78303
  yOffset = (height - (yRange.max - yRange.min) * scaling) / 2,
78262
78304
  scaled = {};
78263
78305
  for (let i = 0; i < circles.length; ++i) {
@@ -78472,21 +78514,39 @@ const transform$2 = (options, upstreamData) => {
78472
78514
  setField = "sets",
78473
78515
  valueField = "size",
78474
78516
  orientation = Math.PI / 2,
78475
- orientationOrder = null
78517
+ orientationOrder = null,
78518
+ emptySetKey: emptySetKey
78476
78519
  } = options;
78477
78520
  let circles = {},
78478
78521
  textCenters = {};
78479
- if (upstreamData.length > 0) {
78480
- const vennData = upstreamData.map(area => ({
78522
+ const hasEmptySet = upstreamData.some(area => {
78523
+ const sets = array(area[setField]);
78524
+ return !sets || 0 === sets.length;
78525
+ }),
78526
+ nonEmptyData = hasEmptySet ? upstreamData.filter(area => !isEmpty(array(area[setField]))) : upstreamData;
78527
+ if (nonEmptyData.length > 0) {
78528
+ const vennData = nonEmptyData.map(area => ({
78481
78529
  sets: array(area[setField]),
78482
78530
  size: area[valueField]
78483
78531
  }));
78484
78532
  let solution = venn$1(vennData, options);
78485
- solution = normalizeSolution(solution, orientation, orientationOrder), circles = scaleSolution(solution, x1 - x0, y1 - y0, x0, y0), textCenters = computeTextCenters(circles, vennData);
78533
+ solution = normalizeSolution(solution, orientation, orientationOrder), circles = scaleSolution(solution, x1 - x0, y1 - y0, x0, y0, hasEmptySet), textCenters = computeTextCenters(circles, vennData);
78486
78534
  }
78487
78535
  return upstreamData.map(area => {
78488
- const sets = array(area[setField]),
78489
- key = sets.toString(),
78536
+ const sets = array(area[setField]);
78537
+ if (!sets || 0 === sets.length) return Object.assign(Object.assign({}, area), {
78538
+ datum: area,
78539
+ sets: sets,
78540
+ key: emptySetKey || "others",
78541
+ size: area[valueField],
78542
+ labelX: void 0,
78543
+ labelY: void 0,
78544
+ type: "circle",
78545
+ x: x0 + (x1 - x0) / 2,
78546
+ y: y0 + (y1 - y0) / 2,
78547
+ radius: Math.min(x1 - x0, y1 - y0) / 2
78548
+ });
78549
+ const key = sets.toString(),
78490
78550
  textCenter = textCenters[key],
78491
78551
  basicDatum = Object.assign(Object.assign({}, area), {
78492
78552
  datum: area,
@@ -82870,380 +82930,6 @@ class SankeySeries extends CartesianSeries {
82870
82930
  }
82871
82931
  }
82872
82932
  };
82873
- this._handleClearEmpty = () => {
82874
- var _a, _b;
82875
- if (!this._needClear) {
82876
- return;
82877
- }
82878
- const allNodeElements = (_a = this._nodeMark) === null || _a === void 0 ? void 0 : _a.getGraphics();
82879
- if (!allNodeElements || !allNodeElements.length) {
82880
- return;
82881
- }
82882
- const allLinkElements = (_b = this._linkMark) === null || _b === void 0 ? void 0 : _b.getGraphics();
82883
- if (!allLinkElements || !allLinkElements.length) {
82884
- return;
82885
- }
82886
- allNodeElements.forEach(el => {
82887
- el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
82888
- el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82889
- });
82890
- allLinkElements.forEach(el => {
82891
- el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
82892
- el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82893
- });
82894
- this._needClear = false;
82895
- };
82896
- this._handleNodeAdjacencyClick = (graphic) => {
82897
- const nodeDatum = getDatumOfGraphic(graphic);
82898
- const highlightNodes = [nodeDatum.key];
82899
- if (this._linkMark) {
82900
- const allLinkElements = this._linkMark.getGraphics();
82901
- if (!allLinkElements || !allLinkElements.length) {
82902
- return;
82903
- }
82904
- allLinkElements.forEach((linkEl, i) => {
82905
- const linkDatum = getDatumOfGraphic(linkEl);
82906
- if (linkDatum.source === nodeDatum.key) {
82907
- if (!highlightNodes.includes(linkDatum.target)) {
82908
- highlightNodes.push(linkDatum.target);
82909
- }
82910
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82911
- linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
82912
- }
82913
- else if (linkDatum.target === nodeDatum.key) {
82914
- if (!highlightNodes.includes(linkDatum.source)) {
82915
- highlightNodes.push(linkDatum.source);
82916
- }
82917
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82918
- linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
82919
- }
82920
- else {
82921
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
82922
- linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
82923
- }
82924
- });
82925
- }
82926
- if (this._nodeMark) {
82927
- this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
82928
- }
82929
- this._needClear = true;
82930
- };
82931
- this._handleLinkAdjacencyClick = (graphic) => {
82932
- const curLinkDatum = getDatumOfGraphic(graphic);
82933
- const highlightNodes = [curLinkDatum.source, curLinkDatum.target];
82934
- if (this._linkMark) {
82935
- const allLinkElements = this._linkMark.getGraphics();
82936
- if (!allLinkElements || !allLinkElements.length) {
82937
- return;
82938
- }
82939
- allLinkElements.forEach(linkEl => {
82940
- if (linkEl === graphic) {
82941
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82942
- addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio: 1 });
82943
- }
82944
- else {
82945
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
82946
- linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
82947
- }
82948
- });
82949
- }
82950
- if (this._nodeMark) {
82951
- this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
82952
- }
82953
- this._needClear = true;
82954
- };
82955
- this._handleNodeRelatedClick = (graphic) => {
82956
- var _a;
82957
- const nodeDatum = getDatumOfGraphic(graphic);
82958
- const allNodeElements = this._nodeMark.getGraphics();
82959
- if (!allNodeElements || !allNodeElements.length) {
82960
- return;
82961
- }
82962
- const allLinkElements = this._linkMark.getGraphics();
82963
- if (!allLinkElements || !allLinkElements.length) {
82964
- return;
82965
- }
82966
- const father = ((_a = getDatumOfGraphic(allLinkElements[0])) === null || _a === void 0 ? void 0 : _a.parents) ? 'parents' : 'source';
82967
- if (father === 'source') {
82968
- const highlightNodes = [nodeDatum.key];
82969
- const highlightLinks = [];
82970
- allLinkElements.forEach((linkEl, i) => {
82971
- var _a, _b, _c, _d;
82972
- const linkDatum = getDatumOfGraphic(linkEl);
82973
- const father = (linkDatum === null || linkDatum === void 0 ? void 0 : linkDatum.parents) ? 'parents' : 'source';
82974
- if (array(linkDatum[father]).includes(nodeDatum.key)) {
82975
- if (!highlightLinks.includes((_a = linkDatum.key) !== null && _a !== void 0 ? _a : linkDatum.index)) {
82976
- highlightLinks.push((_b = linkDatum.key) !== null && _b !== void 0 ? _b : linkDatum.index);
82977
- }
82978
- if (!highlightNodes.includes(linkDatum.source)) {
82979
- highlightNodes.push(linkDatum.source);
82980
- }
82981
- if (!highlightNodes.includes(linkDatum.target)) {
82982
- highlightNodes.push(linkDatum.target);
82983
- const targetNode = allNodeElements.find(nodeElement => {
82984
- return nodeElement.data[0].key === linkDatum.target;
82985
- });
82986
- let targetNodeSourceLinks = targetNode.data[0].sourceLinks;
82987
- while ((targetNodeSourceLinks === null || targetNodeSourceLinks === void 0 ? void 0 : targetNodeSourceLinks.length) > 0) {
82988
- const newTargetNodeSourceLinks = [];
82989
- targetNodeSourceLinks.forEach((targetNodeSourceLinkDatum) => {
82990
- var _a, _b;
82991
- if (!highlightLinks.includes((_a = targetNodeSourceLinkDatum.key) !== null && _a !== void 0 ? _a : targetNodeSourceLinkDatum.index)) {
82992
- highlightLinks.push((_b = targetNodeSourceLinkDatum.key) !== null && _b !== void 0 ? _b : targetNodeSourceLinkDatum.index);
82993
- if (!highlightNodes.includes(targetNodeSourceLinkDatum.target)) {
82994
- highlightNodes.push(targetNodeSourceLinkDatum.target);
82995
- const sourceNodeTemp = allNodeElements.find(nodeElement => {
82996
- return nodeElement.data[0].key === targetNodeSourceLinkDatum.target;
82997
- });
82998
- newTargetNodeSourceLinks.push(sourceNodeTemp.data[0].targetLinks);
82999
- }
83000
- else {
83001
- return;
83002
- }
83003
- }
83004
- else {
83005
- return;
83006
- }
83007
- });
83008
- targetNodeSourceLinks = newTargetNodeSourceLinks;
83009
- return;
83010
- }
83011
- }
83012
- }
83013
- else if (linkDatum.target === nodeDatum.key) {
83014
- if (!highlightLinks.includes((_c = linkDatum.key) !== null && _c !== void 0 ? _c : linkDatum.index)) {
83015
- highlightLinks.push((_d = linkDatum.key) !== null && _d !== void 0 ? _d : linkDatum.index);
83016
- }
83017
- if (!highlightNodes.includes(linkDatum.source)) {
83018
- highlightNodes.push(linkDatum.source);
83019
- const sourceNode = allNodeElements.find(nodeElement => {
83020
- return nodeElement.data[0].key === linkDatum.source;
83021
- });
83022
- let sourceNodeTargetLinks = sourceNode.data[0].targetLinks;
83023
- while ((sourceNodeTargetLinks === null || sourceNodeTargetLinks === void 0 ? void 0 : sourceNodeTargetLinks.length) > 0) {
83024
- const newSourceNodeTargetLinks = [];
83025
- sourceNodeTargetLinks.forEach((sourceNodeTargetLinkDatum) => {
83026
- var _a, _b;
83027
- if (!highlightLinks.includes((_a = sourceNodeTargetLinkDatum.key) !== null && _a !== void 0 ? _a : sourceNodeTargetLinkDatum.index)) {
83028
- highlightLinks.push((_b = sourceNodeTargetLinkDatum.key) !== null && _b !== void 0 ? _b : sourceNodeTargetLinkDatum.index);
83029
- if (!highlightNodes.includes(sourceNodeTargetLinkDatum.source)) {
83030
- highlightNodes.push(sourceNodeTargetLinkDatum.source);
83031
- const sourceNodeTemp = allNodeElements.find(nodeElement => {
83032
- return nodeElement.data[0].key === sourceNodeTargetLinkDatum.source;
83033
- });
83034
- newSourceNodeTargetLinks.push(sourceNodeTemp.data[0].targetLinks);
83035
- }
83036
- else {
83037
- return;
83038
- }
83039
- }
83040
- else {
83041
- return;
83042
- }
83043
- });
83044
- sourceNodeTargetLinks = newSourceNodeTargetLinks;
83045
- return;
83046
- }
83047
- }
83048
- }
83049
- });
83050
- if (this._linkMark) {
83051
- const allLinkElements = this._linkMark.getGraphics();
83052
- if (!allLinkElements || !allLinkElements.length) {
83053
- return;
83054
- }
83055
- allLinkElements.forEach((linkEl, i) => {
83056
- var _a;
83057
- const linkDatum = getDatumOfGraphic(linkEl);
83058
- if (highlightLinks.includes((_a = linkDatum.key) !== null && _a !== void 0 ? _a : linkDatum.index)) {
83059
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83060
- linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
83061
- }
83062
- else {
83063
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83064
- linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83065
- }
83066
- });
83067
- }
83068
- if (this._nodeMark) {
83069
- this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83070
- }
83071
- }
83072
- else {
83073
- const highlightNodes = [nodeDatum.key];
83074
- const upstreamLinks = nodeDatum.targetLinks.reduce((res, link) => {
83075
- const dividedLinks = array(link.datum);
83076
- dividedLinks.forEach(dividedLink => {
83077
- const parents = dividedLink.parents;
83078
- const len = parents.length;
83079
- for (let i = 0; i < len; i++) {
83080
- const source = parents[i].key;
83081
- const target = parents[i + 1] ? parents[i + 1].key : nodeDatum.key;
83082
- const value = dividedLink.value;
83083
- const existingItem = res.find(item => item.source === source && item.target === target);
83084
- if (existingItem) {
83085
- existingItem.value += value;
83086
- }
83087
- else {
83088
- res.push({ source, target, value });
83089
- }
83090
- }
83091
- });
83092
- return res;
83093
- }, []);
83094
- allLinkElements.forEach((linkEl, i) => {
83095
- const linkDatum = getDatumOfGraphic(linkEl);
83096
- const originalDatum = linkDatum.datum;
83097
- const selectedDatum = originalDatum
83098
- ? originalDatum.filter((entry) => entry[father].some((par) => par.key === nodeDatum.key))
83099
- : null;
83100
- const upSelectedLink = upstreamLinks.find((upLink) => upLink.source === linkDatum.source && upLink.target === linkDatum.target);
83101
- if (selectedDatum && selectedDatum.length) {
83102
- if (!highlightNodes.includes(linkDatum.source)) {
83103
- highlightNodes.push(linkDatum.source);
83104
- }
83105
- if (!highlightNodes.includes(linkDatum.target)) {
83106
- highlightNodes.push(linkDatum.target);
83107
- }
83108
- const val = selectedDatum.reduce((sum, d) => {
83109
- return (sum += d.value);
83110
- }, 0);
83111
- const ratio = val / linkDatum.value;
83112
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83113
- addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio });
83114
- return;
83115
- }
83116
- if (upSelectedLink) {
83117
- if (!highlightNodes.includes(linkDatum.source)) {
83118
- highlightNodes.push(linkDatum.source);
83119
- }
83120
- if (!highlightNodes.includes(linkDatum.target)) {
83121
- highlightNodes.push(linkDatum.target);
83122
- }
83123
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83124
- addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
83125
- ratio: upSelectedLink.value / linkDatum.value
83126
- });
83127
- return;
83128
- }
83129
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83130
- linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83131
- return;
83132
- });
83133
- if (this._nodeMark) {
83134
- this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83135
- }
83136
- }
83137
- this._needClear = true;
83138
- };
83139
- this._handleLinkRelatedClick = (graphic) => {
83140
- const allNodeElements = this._nodeMark.getGraphics();
83141
- if (!allNodeElements || !allNodeElements.length) {
83142
- return;
83143
- }
83144
- const allLinkElements = this._linkMark.getGraphics();
83145
- if (!allLinkElements || !allLinkElements.length) {
83146
- return;
83147
- }
83148
- const father = getDatumOfGraphic(graphic) ? 'parents' : 'source';
83149
- if (father === 'source') {
83150
- if (this._linkMark) {
83151
- allLinkElements.forEach(linkEl => {
83152
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83153
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83154
- });
83155
- }
83156
- if (this._nodeMark) {
83157
- allNodeElements.forEach(el => {
83158
- el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83159
- el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83160
- });
83161
- }
83162
- }
83163
- else {
83164
- const curLinkDatum = getDatumOfGraphic(graphic);
83165
- const highlightNodes = [curLinkDatum.source, curLinkDatum.target];
83166
- const upstreamLinks = [];
83167
- const dividedLinks = array(curLinkDatum.datum);
83168
- dividedLinks.forEach(dividedLink => {
83169
- const parents = dividedLink.parents;
83170
- const len = parents.length;
83171
- for (let i = 0; i < len - 1; i++) {
83172
- const source = parents[i].key;
83173
- const target = parents[i + 1].key;
83174
- const value = dividedLink.value;
83175
- const existingItem = upstreamLinks.find(item => item.source === source && item.target === target);
83176
- upstreamLinks.push({
83177
- source: parents[i].key,
83178
- target: parents[i + 1].key,
83179
- value: dividedLink.value
83180
- });
83181
- if (existingItem) {
83182
- existingItem.value += value;
83183
- }
83184
- else {
83185
- upstreamLinks.push({ source, target, value });
83186
- }
83187
- }
83188
- });
83189
- allLinkElements.forEach(linkEl => {
83190
- const linkDatum = getDatumOfGraphic(linkEl);
83191
- const originalDatum = linkDatum.datum;
83192
- if (linkDatum.source === curLinkDatum.source && linkDatum.target === curLinkDatum.target) {
83193
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83194
- addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio: 1 });
83195
- return;
83196
- }
83197
- const selectedDatum = originalDatum
83198
- ? originalDatum.filter((entry) => {
83199
- const parentKeysList = entry.parents.map((item) => item.key);
83200
- return parentKeysList.includes(curLinkDatum.source) && parentKeysList.includes(curLinkDatum.target);
83201
- })
83202
- : null;
83203
- if (selectedDatum && selectedDatum.length) {
83204
- if (!highlightNodes.includes(linkDatum.source)) {
83205
- highlightNodes.push(linkDatum.source);
83206
- }
83207
- if (!highlightNodes.includes(linkDatum.target)) {
83208
- highlightNodes.push(linkDatum.target);
83209
- }
83210
- const val = selectedDatum
83211
- .filter((entry) => {
83212
- return entry.parents.some((par, index) => {
83213
- var _a;
83214
- return par.key === curLinkDatum.source && ((_a = entry.parents[index + 1]) === null || _a === void 0 ? void 0 : _a.key) === curLinkDatum.target;
83215
- });
83216
- })
83217
- .reduce((sum, d) => {
83218
- return (sum += d.value);
83219
- }, 0);
83220
- const ratio = val / linkDatum.value;
83221
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83222
- addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio });
83223
- return;
83224
- }
83225
- const upSelectedLink = upstreamLinks.find((upLink) => upLink.source === linkDatum.source && upLink.target === linkDatum.target);
83226
- if (upSelectedLink) {
83227
- if (!highlightNodes.includes(linkDatum.source)) {
83228
- highlightNodes.push(linkDatum.source);
83229
- }
83230
- if (!highlightNodes.includes(linkDatum.target)) {
83231
- highlightNodes.push(linkDatum.target);
83232
- }
83233
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83234
- addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
83235
- ratio: upSelectedLink.value / linkDatum.value
83236
- });
83237
- return;
83238
- }
83239
- linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83240
- linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83241
- return;
83242
- });
83243
- this._highLightElements(allNodeElements, highlightNodes);
83244
- }
83245
- this._needClear = true;
83246
- };
83247
82933
  }
83248
82934
  get direction() {
83249
82935
  var _a;
@@ -83533,6 +83219,380 @@ class SankeySeries extends CartesianSeries {
83533
83219
  linksSeriesDataUpdate() {
83534
83220
  this._linkMark.getData().updateData();
83535
83221
  }
83222
+ _handleClearEmpty() {
83223
+ var _a, _b;
83224
+ if (!this._needClear) {
83225
+ return;
83226
+ }
83227
+ const allNodeElements = (_a = this._nodeMark) === null || _a === void 0 ? void 0 : _a.getGraphics();
83228
+ if (!allNodeElements || !allNodeElements.length) {
83229
+ return;
83230
+ }
83231
+ const allLinkElements = (_b = this._linkMark) === null || _b === void 0 ? void 0 : _b.getGraphics();
83232
+ if (!allLinkElements || !allLinkElements.length) {
83233
+ return;
83234
+ }
83235
+ allNodeElements.forEach(el => {
83236
+ el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83237
+ el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83238
+ });
83239
+ allLinkElements.forEach(el => {
83240
+ el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83241
+ el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83242
+ });
83243
+ this._needClear = false;
83244
+ }
83245
+ _handleNodeAdjacencyClick(graphic) {
83246
+ const nodeDatum = getDatumOfGraphic(graphic);
83247
+ const highlightNodes = [nodeDatum.key];
83248
+ if (this._linkMark) {
83249
+ const allLinkElements = this._linkMark.getGraphics();
83250
+ if (!allLinkElements || !allLinkElements.length) {
83251
+ return;
83252
+ }
83253
+ allLinkElements.forEach((linkEl, i) => {
83254
+ const linkDatum = getDatumOfGraphic(linkEl);
83255
+ if (linkDatum.source === nodeDatum.key) {
83256
+ if (!highlightNodes.includes(linkDatum.target)) {
83257
+ highlightNodes.push(linkDatum.target);
83258
+ }
83259
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83260
+ linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
83261
+ }
83262
+ else if (linkDatum.target === nodeDatum.key) {
83263
+ if (!highlightNodes.includes(linkDatum.source)) {
83264
+ highlightNodes.push(linkDatum.source);
83265
+ }
83266
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83267
+ linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
83268
+ }
83269
+ else {
83270
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83271
+ linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83272
+ }
83273
+ });
83274
+ }
83275
+ if (this._nodeMark) {
83276
+ this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83277
+ }
83278
+ this._needClear = true;
83279
+ }
83280
+ _handleLinkAdjacencyClick(graphic) {
83281
+ const curLinkDatum = getDatumOfGraphic(graphic);
83282
+ const highlightNodes = [curLinkDatum.source, curLinkDatum.target];
83283
+ if (this._linkMark) {
83284
+ const allLinkElements = this._linkMark.getGraphics();
83285
+ if (!allLinkElements || !allLinkElements.length) {
83286
+ return;
83287
+ }
83288
+ allLinkElements.forEach(linkEl => {
83289
+ if (linkEl === graphic) {
83290
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83291
+ addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio: 1 });
83292
+ }
83293
+ else {
83294
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83295
+ linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83296
+ }
83297
+ });
83298
+ }
83299
+ if (this._nodeMark) {
83300
+ this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83301
+ }
83302
+ this._needClear = true;
83303
+ }
83304
+ _handleNodeRelatedClick(graphic) {
83305
+ var _a;
83306
+ const nodeDatum = getDatumOfGraphic(graphic);
83307
+ const allNodeElements = this._nodeMark.getGraphics();
83308
+ if (!allNodeElements || !allNodeElements.length) {
83309
+ return;
83310
+ }
83311
+ const allLinkElements = this._linkMark.getGraphics();
83312
+ if (!allLinkElements || !allLinkElements.length) {
83313
+ return;
83314
+ }
83315
+ const father = ((_a = getDatumOfGraphic(allLinkElements[0])) === null || _a === void 0 ? void 0 : _a.parents) ? 'parents' : 'source';
83316
+ if (father === 'source') {
83317
+ const highlightNodes = [nodeDatum.key];
83318
+ const highlightLinks = [];
83319
+ allLinkElements.forEach((linkEl, i) => {
83320
+ var _a, _b, _c, _d;
83321
+ const linkDatum = getDatumOfGraphic(linkEl);
83322
+ const father = (linkDatum === null || linkDatum === void 0 ? void 0 : linkDatum.parents) ? 'parents' : 'source';
83323
+ if (array(linkDatum[father]).includes(nodeDatum.key)) {
83324
+ if (!highlightLinks.includes((_a = linkDatum.key) !== null && _a !== void 0 ? _a : linkDatum.index)) {
83325
+ highlightLinks.push((_b = linkDatum.key) !== null && _b !== void 0 ? _b : linkDatum.index);
83326
+ }
83327
+ if (!highlightNodes.includes(linkDatum.source)) {
83328
+ highlightNodes.push(linkDatum.source);
83329
+ }
83330
+ if (!highlightNodes.includes(linkDatum.target)) {
83331
+ highlightNodes.push(linkDatum.target);
83332
+ const targetNode = allNodeElements.find(nodeElement => {
83333
+ return nodeElement.data[0].key === linkDatum.target;
83334
+ });
83335
+ let targetNodeSourceLinks = targetNode.data[0].sourceLinks;
83336
+ while ((targetNodeSourceLinks === null || targetNodeSourceLinks === void 0 ? void 0 : targetNodeSourceLinks.length) > 0) {
83337
+ const newTargetNodeSourceLinks = [];
83338
+ targetNodeSourceLinks.forEach((targetNodeSourceLinkDatum) => {
83339
+ var _a, _b;
83340
+ if (!highlightLinks.includes((_a = targetNodeSourceLinkDatum.key) !== null && _a !== void 0 ? _a : targetNodeSourceLinkDatum.index)) {
83341
+ highlightLinks.push((_b = targetNodeSourceLinkDatum.key) !== null && _b !== void 0 ? _b : targetNodeSourceLinkDatum.index);
83342
+ if (!highlightNodes.includes(targetNodeSourceLinkDatum.target)) {
83343
+ highlightNodes.push(targetNodeSourceLinkDatum.target);
83344
+ const sourceNodeTemp = allNodeElements.find(nodeElement => {
83345
+ return nodeElement.data[0].key === targetNodeSourceLinkDatum.target;
83346
+ });
83347
+ newTargetNodeSourceLinks.push(sourceNodeTemp.data[0].targetLinks);
83348
+ }
83349
+ else {
83350
+ return;
83351
+ }
83352
+ }
83353
+ else {
83354
+ return;
83355
+ }
83356
+ });
83357
+ targetNodeSourceLinks = newTargetNodeSourceLinks;
83358
+ return;
83359
+ }
83360
+ }
83361
+ }
83362
+ else if (linkDatum.target === nodeDatum.key) {
83363
+ if (!highlightLinks.includes((_c = linkDatum.key) !== null && _c !== void 0 ? _c : linkDatum.index)) {
83364
+ highlightLinks.push((_d = linkDatum.key) !== null && _d !== void 0 ? _d : linkDatum.index);
83365
+ }
83366
+ if (!highlightNodes.includes(linkDatum.source)) {
83367
+ highlightNodes.push(linkDatum.source);
83368
+ const sourceNode = allNodeElements.find(nodeElement => {
83369
+ return nodeElement.data[0].key === linkDatum.source;
83370
+ });
83371
+ let sourceNodeTargetLinks = sourceNode.data[0].targetLinks;
83372
+ while ((sourceNodeTargetLinks === null || sourceNodeTargetLinks === void 0 ? void 0 : sourceNodeTargetLinks.length) > 0) {
83373
+ const newSourceNodeTargetLinks = [];
83374
+ sourceNodeTargetLinks.forEach((sourceNodeTargetLinkDatum) => {
83375
+ var _a, _b;
83376
+ if (!highlightLinks.includes((_a = sourceNodeTargetLinkDatum.key) !== null && _a !== void 0 ? _a : sourceNodeTargetLinkDatum.index)) {
83377
+ highlightLinks.push((_b = sourceNodeTargetLinkDatum.key) !== null && _b !== void 0 ? _b : sourceNodeTargetLinkDatum.index);
83378
+ if (!highlightNodes.includes(sourceNodeTargetLinkDatum.source)) {
83379
+ highlightNodes.push(sourceNodeTargetLinkDatum.source);
83380
+ const sourceNodeTemp = allNodeElements.find(nodeElement => {
83381
+ return nodeElement.data[0].key === sourceNodeTargetLinkDatum.source;
83382
+ });
83383
+ newSourceNodeTargetLinks.push(sourceNodeTemp.data[0].targetLinks);
83384
+ }
83385
+ else {
83386
+ return;
83387
+ }
83388
+ }
83389
+ else {
83390
+ return;
83391
+ }
83392
+ });
83393
+ sourceNodeTargetLinks = newSourceNodeTargetLinks;
83394
+ return;
83395
+ }
83396
+ }
83397
+ }
83398
+ });
83399
+ if (this._linkMark) {
83400
+ const allLinkElements = this._linkMark.getGraphics();
83401
+ if (!allLinkElements || !allLinkElements.length) {
83402
+ return;
83403
+ }
83404
+ allLinkElements.forEach((linkEl, i) => {
83405
+ var _a;
83406
+ const linkDatum = getDatumOfGraphic(linkEl);
83407
+ if (highlightLinks.includes((_a = linkDatum.key) !== null && _a !== void 0 ? _a : linkDatum.index)) {
83408
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83409
+ linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
83410
+ }
83411
+ else {
83412
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83413
+ linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83414
+ }
83415
+ });
83416
+ }
83417
+ if (this._nodeMark) {
83418
+ this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83419
+ }
83420
+ }
83421
+ else {
83422
+ const highlightNodes = [nodeDatum.key];
83423
+ const upstreamLinks = nodeDatum.targetLinks.reduce((res, link) => {
83424
+ const dividedLinks = array(link.datum);
83425
+ dividedLinks.forEach(dividedLink => {
83426
+ const parents = dividedLink.parents;
83427
+ const len = parents.length;
83428
+ for (let i = 0; i < len; i++) {
83429
+ const source = parents[i].key;
83430
+ const target = parents[i + 1] ? parents[i + 1].key : nodeDatum.key;
83431
+ const value = dividedLink.value;
83432
+ const existingItem = res.find(item => item.source === source && item.target === target);
83433
+ if (existingItem) {
83434
+ existingItem.value += value;
83435
+ }
83436
+ else {
83437
+ res.push({ source, target, value });
83438
+ }
83439
+ }
83440
+ });
83441
+ return res;
83442
+ }, []);
83443
+ allLinkElements.forEach((linkEl, i) => {
83444
+ const linkDatum = getDatumOfGraphic(linkEl);
83445
+ const originalDatum = linkDatum.datum;
83446
+ const selectedDatum = originalDatum
83447
+ ? originalDatum.filter((entry) => entry[father].some((par) => par.key === nodeDatum.key))
83448
+ : null;
83449
+ const upSelectedLink = upstreamLinks.find((upLink) => upLink.source === linkDatum.source && upLink.target === linkDatum.target);
83450
+ if (selectedDatum && selectedDatum.length) {
83451
+ if (!highlightNodes.includes(linkDatum.source)) {
83452
+ highlightNodes.push(linkDatum.source);
83453
+ }
83454
+ if (!highlightNodes.includes(linkDatum.target)) {
83455
+ highlightNodes.push(linkDatum.target);
83456
+ }
83457
+ const val = selectedDatum.reduce((sum, d) => {
83458
+ return (sum += d.value);
83459
+ }, 0);
83460
+ const ratio = val / linkDatum.value;
83461
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83462
+ addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio });
83463
+ return;
83464
+ }
83465
+ if (upSelectedLink) {
83466
+ if (!highlightNodes.includes(linkDatum.source)) {
83467
+ highlightNodes.push(linkDatum.source);
83468
+ }
83469
+ if (!highlightNodes.includes(linkDatum.target)) {
83470
+ highlightNodes.push(linkDatum.target);
83471
+ }
83472
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83473
+ addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
83474
+ ratio: upSelectedLink.value / linkDatum.value
83475
+ });
83476
+ return;
83477
+ }
83478
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83479
+ linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83480
+ return;
83481
+ });
83482
+ if (this._nodeMark) {
83483
+ this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83484
+ }
83485
+ }
83486
+ this._needClear = true;
83487
+ }
83488
+ _handleLinkRelatedClick(graphic) {
83489
+ const allNodeElements = this._nodeMark.getGraphics();
83490
+ if (!allNodeElements || !allNodeElements.length) {
83491
+ return;
83492
+ }
83493
+ const allLinkElements = this._linkMark.getGraphics();
83494
+ if (!allLinkElements || !allLinkElements.length) {
83495
+ return;
83496
+ }
83497
+ const father = getDatumOfGraphic(graphic) ? 'parents' : 'source';
83498
+ if (father === 'source') {
83499
+ if (this._linkMark) {
83500
+ allLinkElements.forEach(linkEl => {
83501
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83502
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83503
+ });
83504
+ }
83505
+ if (this._nodeMark) {
83506
+ allNodeElements.forEach(el => {
83507
+ el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83508
+ el.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83509
+ });
83510
+ }
83511
+ }
83512
+ else {
83513
+ const curLinkDatum = getDatumOfGraphic(graphic);
83514
+ const highlightNodes = [curLinkDatum.source, curLinkDatum.target];
83515
+ const upstreamLinks = [];
83516
+ const dividedLinks = array(curLinkDatum.datum);
83517
+ dividedLinks.forEach(dividedLink => {
83518
+ const parents = dividedLink.parents;
83519
+ const len = parents.length;
83520
+ for (let i = 0; i < len - 1; i++) {
83521
+ const source = parents[i].key;
83522
+ const target = parents[i + 1].key;
83523
+ const value = dividedLink.value;
83524
+ const existingItem = upstreamLinks.find(item => item.source === source && item.target === target);
83525
+ upstreamLinks.push({
83526
+ source: parents[i].key,
83527
+ target: parents[i + 1].key,
83528
+ value: dividedLink.value
83529
+ });
83530
+ if (existingItem) {
83531
+ existingItem.value += value;
83532
+ }
83533
+ else {
83534
+ upstreamLinks.push({ source, target, value });
83535
+ }
83536
+ }
83537
+ });
83538
+ allLinkElements.forEach(linkEl => {
83539
+ const linkDatum = getDatumOfGraphic(linkEl);
83540
+ const originalDatum = linkDatum.datum;
83541
+ if (linkDatum.source === curLinkDatum.source && linkDatum.target === curLinkDatum.target) {
83542
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83543
+ addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio: 1 });
83544
+ return;
83545
+ }
83546
+ const selectedDatum = originalDatum
83547
+ ? originalDatum.filter((entry) => {
83548
+ const parentKeysList = entry.parents.map((item) => item.key);
83549
+ return parentKeysList.includes(curLinkDatum.source) && parentKeysList.includes(curLinkDatum.target);
83550
+ })
83551
+ : null;
83552
+ if (selectedDatum && selectedDatum.length) {
83553
+ if (!highlightNodes.includes(linkDatum.source)) {
83554
+ highlightNodes.push(linkDatum.source);
83555
+ }
83556
+ if (!highlightNodes.includes(linkDatum.target)) {
83557
+ highlightNodes.push(linkDatum.target);
83558
+ }
83559
+ const val = selectedDatum
83560
+ .filter((entry) => {
83561
+ return entry.parents.some((par, index) => {
83562
+ var _a;
83563
+ return par.key === curLinkDatum.source && ((_a = entry.parents[index + 1]) === null || _a === void 0 ? void 0 : _a.key) === curLinkDatum.target;
83564
+ });
83565
+ })
83566
+ .reduce((sum, d) => {
83567
+ return (sum += d.value);
83568
+ }, 0);
83569
+ const ratio = val / linkDatum.value;
83570
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83571
+ addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio });
83572
+ return;
83573
+ }
83574
+ const upSelectedLink = upstreamLinks.find((upLink) => upLink.source === linkDatum.source && upLink.target === linkDatum.target);
83575
+ if (upSelectedLink) {
83576
+ if (!highlightNodes.includes(linkDatum.source)) {
83577
+ highlightNodes.push(linkDatum.source);
83578
+ }
83579
+ if (!highlightNodes.includes(linkDatum.target)) {
83580
+ highlightNodes.push(linkDatum.target);
83581
+ }
83582
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83583
+ addRuntimeState(linkEl, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
83584
+ ratio: upSelectedLink.value / linkDatum.value
83585
+ });
83586
+ return;
83587
+ }
83588
+ linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83589
+ linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83590
+ return;
83591
+ });
83592
+ this._highLightElements(allNodeElements, highlightNodes);
83593
+ }
83594
+ this._needClear = true;
83595
+ }
83536
83596
  _highLightElements(graphics, highlightNodes) {
83537
83597
  if (!graphics || !graphics.length) {
83538
83598
  return;
@@ -96970,7 +97030,6 @@ class CustomMark extends BaseComponent {
96970
97030
  if (!this._spec) {
96971
97031
  return;
96972
97032
  }
96973
- const hasAnimation = this._option.animation !== false;
96974
97033
  let parentMark = null;
96975
97034
  if (this._spec.parent) {
96976
97035
  const mark = this.getChart()
@@ -96980,12 +97039,10 @@ class CustomMark extends BaseComponent {
96980
97039
  parentMark = mark;
96981
97040
  }
96982
97041
  }
96983
- this._createExtensionMark(this._spec, parentMark, `${PREFIX}_series_${this.id}_extensionMark`, 0, {
96984
- hasAnimation
96985
- });
97042
+ this._createExtensionMark(this._spec, parentMark, `${PREFIX}_series_${this.id}_extensionMark`, 0);
96986
97043
  }
96987
- _createExtensionMark(spec, parentMark, namePrefix, index = 0, options) {
96988
- var _a;
97044
+ _createExtensionMark(spec, parentMark, namePrefix, index = 0) {
97045
+ var _a, _b;
96989
97046
  const mark = this._createMark({
96990
97047
  type: spec.type,
96991
97048
  name: isValid$1(spec.name) ? `${spec.name}` : `${namePrefix}_${index}`
@@ -97001,7 +97058,7 @@ class CustomMark extends BaseComponent {
97001
97058
  if (isValid$1(spec.id)) {
97002
97059
  mark.setUserId(spec.id);
97003
97060
  }
97004
- if (options.hasAnimation && spec.animation) {
97061
+ if (((_a = this._option.globalInstance) === null || _a === void 0 ? void 0 : _a.isAnimationEnable()) && spec.animation) {
97005
97062
  const config = animationConfig({}, userAnimationConfig(spec.type, spec, this._markAttributeContext));
97006
97063
  mark.setAnimationConfig(config);
97007
97064
  }
@@ -97014,8 +97071,8 @@ class CustomMark extends BaseComponent {
97014
97071
  this.initMarkStyleWithSpec(mark, spec);
97015
97072
  if (spec.type === 'group') {
97016
97073
  namePrefix = `${namePrefix}_${index}`;
97017
- (_a = spec.children) === null || _a === void 0 ? void 0 : _a.forEach((s, i) => {
97018
- this._createExtensionMark(s, mark, namePrefix, i, options);
97074
+ (_b = spec.children) === null || _b === void 0 ? void 0 : _b.forEach((s, i) => {
97075
+ this._createExtensionMark(s, mark, namePrefix, i);
97019
97076
  });
97020
97077
  }
97021
97078
  if (isValid$1(spec.dataId) || isValidNumber$1(spec.dataIndex)) {
@@ -98084,7 +98141,7 @@ class DomTooltipHandler extends BaseTooltipHandler {
98084
98141
  if (!changePositionOnly) {
98085
98142
  this._updateDomStringByCol(actualTooltip);
98086
98143
  }
98087
- this._updateDomStyle('height');
98144
+ this._updateDomStyle('height', changePositionOnly);
98088
98145
  const rect = (_a = this._rootDom) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
98089
98146
  return {
98090
98147
  width: rect === null || rect === void 0 ? void 0 : rect.width,
@@ -98229,7 +98286,7 @@ class DomTooltipHandler extends BaseTooltipHandler {
98229
98286
  contentDom.parentNode.removeChild(contentDom);
98230
98287
  }
98231
98288
  }
98232
- _updateDomStyle(sizeKey = 'width') {
98289
+ _updateDomStyle(sizeKey = 'width', refreshSize) {
98233
98290
  var _a, _b, _c, _d, _e;
98234
98291
  const rootDom = this._rootDom;
98235
98292
  const contentDom = [...rootDom.children].find(child => child.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME));
@@ -98272,6 +98329,9 @@ class DomTooltipHandler extends BaseTooltipHandler {
98272
98329
  const row = rows[i];
98273
98330
  const cols = (_d = row.children) !== null && _d !== void 0 ? _d : [];
98274
98331
  for (let j = 0; j < cols.length; j++) {
98332
+ if (refreshSize) {
98333
+ cols[j].style[sizeKey] = 'initial';
98334
+ }
98275
98335
  const width = cols[j].getBoundingClientRect()[sizeKey];
98276
98336
  if (widthByCol[j] === undefined || widthByCol[j] < width) {
98277
98337
  widthByCol[j] = width;
@@ -98303,7 +98363,7 @@ class DomTooltipHandler extends BaseTooltipHandler {
98303
98363
  }
98304
98364
  if (this.getVisibility()) {
98305
98365
  this._updateDomStringByCol(this._tooltipActual);
98306
- this._updateDomStyle('height');
98366
+ this._updateDomStyle('height', false);
98307
98367
  }
98308
98368
  }
98309
98369
  _updatePosition({ x, y }) {
@@ -100210,4 +100270,4 @@ function registerSequentialAnimate() {
100210
100270
  mixin(BaseMark, SequentialAnimate);
100211
100271
  }
100212
100272
 
100213
- export { ArcMark, AreaChart, AreaMark, AreaSeries, AttributeLevel, AxisSyncPlugin, BandAxisMixin, BarChart, BarChartSpecTransformer, BarSeries, BarSeriesSpecTransformer, BaseArcMark, BaseChart, BaseChartSpecTransformer, BaseComponent, BaseComponentSpecTransformer, BaseHistogramChart, BaseMark, BasePieChart, BasePieChartSpecTransformer, BasePieSeries, BasePlugin, BasePolygonMark, BaseSeries, BaseSeriesSpecTransformer, BaseSeriesTooltipHelper, BaseWordCloudChart, BaseWordCloudChartSpecTransformer, BaseWordCloudSeries, BoxPlotChart, BoxPlotSeries, Brush, CanvasTooltipHandler, CartesianAxis, CartesianBandAxis, CartesianChartSpecTransformer, CartesianCrossHair, CartesianLinearAxis, CartesianLogAxis, CartesianMarkArea, CartesianMarkLine, CartesianMarkPoint, CartesianSeries, CartesianSymlogAxis, CartesianTimeAxis, ChartEvent, CirclePackingChart, CirclePackingSeries, CircularProgressChart, CircularProgressSeries, CommonChart, CommonChartSpecTransformer, CompilableData, ComponentMark, ContinuousLegend, CorrelationChart, CorrelationSeries, CustomMark, DEFAULT_ANIMATION_CONFIG, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD, DEFAULT_KEY, DEFAULT_LAYOUT_RECT_LEVEL, DEFAULT_LAYOUT_RECT_LEVEL_MIN, DEFAULT_LINEAR_INTERPOLATE, DEFAULT_MEASURE_CANVAS_ID, DEFAULT_SERIES_STYLE_NAME, DEFAULT_SMOOTH_INTERPOLATE, DataZoom, DimensionClickEvent, DimensionEventEnum, DimensionHoverEvent, Direction, DiscreteLegend, DomTooltipHandler, DotSeries, ElementHighlight, ElementSelect, Event$1 as Event, Factory, FormatterPlugin, FunnelChart, FunnelChartSpecTransformer, FunnelSeries, FunnelSeriesSpecTransformer, GaugeChart, GaugePointerSeries, GaugeSeries, GeoCoordinate, GeoMarkPoint, GeoSeries, GridLayout, GroupMark, HeatmapChart, HeatmapSeries, HistogramChart, HistogramChartSpecTransformer, ImageMark, Indicator, Label, Layout$1 as Layout, LayoutLevel, LayoutZIndex, LineChart, LineMark, LineSeries, LinearAxisMixin, LinearProgressChart, LinearProgressSeries, LinkSeries, LiquidChart, LiquidSeries, MOSAIC_CAT_END_PERCENT, MOSAIC_CAT_START_PERCENT, MOSAIC_VALUE_END_PERCENT, MOSAIC_VALUE_START_PERCENT, ManualTicker, MapChart, MapSeries, MarkTypeEnum, MediaQuery, MosaicChart, MosaicSeries, PREFIX, PathMark, PieChart, PieSeries, PieSeriesSpecTransformer, Player, PolarAxis, PolarBandAxis, PolarCrossHair, PolarLinearAxis, PolarMarkArea, PolarMarkLine, PolarMarkPoint, PolarSeries, PolygonMark, PositionEnum, ProgressLikeSeries, RadarChart, RadarSeries, RangeAreaChart, RangeAreaSeries, RangeColumnChart, RangeColumnSeries, RangeColumnSeriesSpecTransformer, RectMark, RenderModeEnum, RippleMark, RoseChart, RoseLikeSeries, RoseSeries, RuleMark, SEGMENT_FIELD_END, SEGMENT_FIELD_START, STACK_FIELD_END, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_END_PERCENT, STACK_FIELD_KEY, STACK_FIELD_START, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_START_PERCENT, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_BOTTOM, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STATE_VALUE_ENUM, SankeyChart, SankeySeries, ScatterChart, ScatterSeries, ScrollBar, SequenceChart, SeriesMarkNameEnum, SeriesTypeEnum, SeriesTypeForThemeEnum, StreamLight, SunburstChart, SunburstSeries, SymbolMark, TextMark, ThemeManager, Title, Tooltip, TooltipResult, TotalLabel, TransformLevel, TreemapChart, TreemapSeries, USER_LAYOUT_RECT_LEVEL, VChart, VennChart, VennSeries, WaterfallChart, WaterfallSeries, WordCloudChart, WordCloudSeries, alternatingWave, animationConfig, barGrowIn, barGrowOut, barPresetAnimation, baseSeriesMark, boundsInRect, builtinThemes, calcLayoutNumber, calcPadding, centerToCorner, columnCenterToEdge, columnEdgeToCenter, columnLeftToRight, columnRightToLeft, computeActualDataScheme, convertPoint, cornerToCenter, createArc, createArea, createGroup, createLine, createRect, createRichText, createSymbol, createText, darkTheme, dataScheme, VChart as default, defaultThemeName, diagonalCenterToEdge, diagonalTopLeftToBottomRight, findMarkGraphic, functionTransform, getActualColor, getActualNumValue, getCartesianCrosshairRect, getCartesianDimensionInfo, getColorSchemeBySeries, getCombinedSizeOfRegions, getDataScheme, getDatumOfGraphic, getDiffAttributesOfGraphic, getDimensionInfoByValue, getFieldAlias, getFunnelTheme, getMergedTheme, getPolarDimensionInfo, getRegionStackGroup, getSpecInfo, getTheme, hasThemeMerged, isCollectionMark, isColorKey, isPercent, isPercentOffset, isProgressiveDataColorScheme, isTokenKey, isValidOrient, isXAxis, isYAxis, isZAxis, lightTheme, lookup, measureText, mergeFields, normalizeLayoutPaddingSpec, particleEffect, pieDisappear, pieEnter, pieExit, piePresetAnimation, pulseWave, queryColorFromColorScheme, queryToken, randomOpacity, registerAllEnv, registerAllMarks, registerAnimate, registerArcAnimation, registerArcMark, registerAreaChart, registerAreaMark, registerAreaSeries, registerBarChart, registerBarSeries, registerBoxplotChart, registerBoxplotSeries, registerBrowserEnv, registerBrush, registerCanvasTooltipHandler, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerChartPlugin, registerCirclePackingChart, registerCirclePackingSeries, registerCircularProgressChart, registerCircularProgressSeries, registerCommonChart, registerComponentMark, registerContinuousLegend, registerCorrelationChart, registerCustomAnimate, registerCustomMark, registerDataSetInstanceParser, registerDataSetInstanceTransform, registerDataZoom, registerDimensionEvents, registerDimensionHover, registerDimensionTooltipProcessor, registerDiscreteLegend, registerDomTooltipHandler, registerDotSeries, registerDragPlugin, registerElementActive, registerElementActiveByLegend, registerElementHighlight, registerElementHighlightByGroup, registerElementHighlightByKey, registerElementHighlightByLegend, registerElementHighlightByName, registerElementSelect, registerFormatPlugin, registerFunnelChart, registerFunnelSeries, registerGaugeChart, registerGaugePointerSeries, registerGaugeSeries, registerGeoCoordinate, registerGeoMarkPoint, registerGesturePlugin, registerGridLayout, registerGroupMark, registerGroupTooltipProcessor, registerHarmonyEnv, registerHeatmapChart, registerHeatmapSeries, registerHistogramChart, registerHtmlAttributePlugin, registerImageMark, registerIndicator, registerLabel, registerLarkEnv, registerLineChart, registerLineMark, registerLineSeries, registerLinearProgressChart, registerLinearProgressSeries, registerLinkSeries, registerLiquidChart, registerLiquidSeries, registerLynxEnv, registerMapChart, registerMapSeries, registerMarkArea, registerMarkFilterTransform, registerMarkLine, registerMarkMapTransform, registerMarkPoint, registerMarkTooltipProcessor, registerMediaQuery, registerMosaicChart, registerMosaicSeries, registerNodeEnv, registerPathMark, registerPieChart, registerPieSeries, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPolarMarkArea, registerPolarMarkLine, registerPolarMarkPoint, registerPolygonAnimation, registerPolygonMark, registerPoptip, registerRadarChart, registerRadarSeries, registerRangeAreaChart, registerRangeAreaSeries, registerRangeColumnChart, registerRangeColumnSeries, registerReactAttributePlugin, registerRectAnimation, registerRectMark, registerRippleMark, registerRoseChart, registerRoseSeries, registerRuleMark, registerSankeyChart, registerSankeySeries, registerScatterChart, registerScatterSeries, registerScrollBar, registerSequenceChart, registerSequentialAnimate, registerStateTransition, registerSunBurstSeries, registerSunburstChart, registerSymbolMark, registerTTEnv, registerTaroEnv, registerTextMark, registerTheme, registerTitle, registerTooltip, registerTotalLabel, registerTreemapChart, registerTreemapSeries, registerAnimate$1 as registerVRenderAnimate, registerVennChart, registerVennSeries, registerWXEnv, registerWaterfallChart, registerWaterfallSeries, registerWordCloudChart, registerWordCloudSeries, registerWordCloudShapeChart, removeTheme, rippleEffect, rotationScan, rowBottomToTop, rowCenterToEdge, rowEdgeToCenter, rowTopToBottom, shouldMarkDoMorph, snakeWave, sortStackValueGroup, specTransform, spiralEffect, stack, stackGroup, stackMosaic, stackMosaicTotal, stackOffsetSilhouette, stackTotal, themeExist, themes, token, transformColorSchemeToStandardStruct, transformToGraphic, userAnimationConfig, version, vglobal, warn };
100273
+ export { ArcMark, AreaChart, AreaMark, AreaSeries, AttributeLevel, AxisSyncPlugin, BandAxisMixin, BarChart, BarChartSpecTransformer, BarSeries, BarSeriesSpecTransformer, BaseArcMark, BaseChart, BaseChartSpecTransformer, BaseComponent, BaseComponentSpecTransformer, BaseHistogramChart, BaseMark, BasePieChart, BasePieChartSpecTransformer, BasePieSeries, BasePlugin, BasePolygonMark, BaseSeries, BaseSeriesSpecTransformer, BaseSeriesTooltipHelper, BaseWordCloudChart, BaseWordCloudChartSpecTransformer, BaseWordCloudSeries, BoxPlotChart, BoxPlotSeries, Brush, CanvasTooltipHandler, CartesianAxis, CartesianBandAxis, CartesianChartSpecTransformer, CartesianCrossHair, CartesianLinearAxis, CartesianLogAxis, CartesianMarkArea, CartesianMarkLine, CartesianMarkPoint, CartesianSeries, CartesianSymlogAxis, CartesianTimeAxis, ChartEvent, CirclePackingChart, CirclePackingSeries, CircularProgressChart, CircularProgressSeries, CommonChart, CommonChartSpecTransformer, CompilableData, ComponentMark, ContinuousLegend, CorrelationChart, CorrelationSeries, CustomMark, DEFAULT_ANIMATION_CONFIG, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD, DEFAULT_KEY, DEFAULT_LAYOUT_RECT_LEVEL, DEFAULT_LAYOUT_RECT_LEVEL_MIN, DEFAULT_LINEAR_INTERPOLATE, DEFAULT_MEASURE_CANVAS_ID, DEFAULT_SERIES_STYLE_NAME, DEFAULT_SMOOTH_INTERPOLATE, DataZoom, DimensionClickEvent, DimensionEventEnum, DimensionHoverEvent, Direction, DiscreteLegend, DomTooltipHandler, DotSeries, ElementHighlight, ElementSelect, Event$1 as Event, Factory, FormatterPlugin, FunnelChart, FunnelChartSpecTransformer, FunnelSeries, FunnelSeriesSpecTransformer, GaugeChart, GaugePointerSeries, GaugeSeries, GeoCoordinate, GeoMarkPoint, GeoSeries, GridLayout, GroupMark, HeatmapChart, HeatmapSeries, HistogramChart, HistogramChartSpecTransformer, ImageMark, Indicator, Label, Layout$1 as Layout, LayoutLevel, LayoutZIndex, LineChart, LineMark, LineSeries, LinearAxisMixin, LinearProgressChart, LinearProgressSeries, LinkSeries, LiquidChart, LiquidSeries, MOSAIC_CAT_END_PERCENT, MOSAIC_CAT_START_PERCENT, MOSAIC_VALUE_END_PERCENT, MOSAIC_VALUE_START_PERCENT, ManualTicker, MapChart, MapSeries, MarkTypeEnum, MediaQuery, MosaicChart, MosaicSeries, PREFIX, PathMark, PieChart, PieSeries, PieSeriesSpecTransformer, Player, PolarAxis, PolarBandAxis, PolarCrossHair, PolarLinearAxis, PolarMarkArea, PolarMarkLine, PolarMarkPoint, PolarSeries, PolygonMark, PositionEnum, ProgressLikeSeries, RadarChart, RadarSeries, RangeAreaChart, RangeAreaSeries, RangeColumnChart, RangeColumnSeries, RangeColumnSeriesSpecTransformer, RectMark, RenderModeEnum, RippleMark, RoseChart, RoseLikeSeries, RoseSeries, RuleMark, SEGMENT_FIELD_END, SEGMENT_FIELD_START, STACK_FIELD_END, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_END_PERCENT, STACK_FIELD_KEY, STACK_FIELD_START, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_START_PERCENT, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_BOTTOM, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STATE_VALUE_ENUM, SankeyChart, SankeyChartSpecTransformer, SankeySeries, ScatterChart, ScatterSeries, ScrollBar, SequenceChart, SeriesMarkNameEnum, SeriesTypeEnum, SeriesTypeForThemeEnum, StreamLight, SunburstChart, SunburstSeries, SymbolMark, TextMark, ThemeManager, Title, Tooltip, TooltipResult, TotalLabel, TransformLevel, TreemapChart, TreemapSeries, USER_LAYOUT_RECT_LEVEL, VChart, VennChart, VennSeries, WaterfallChart, WaterfallSeries, WordCloudChart, WordCloudSeries, alternatingWave, animationConfig, barGrowIn, barGrowOut, barPresetAnimation, baseSeriesMark, boundsInRect, builtinThemes, calcLayoutNumber, calcPadding, centerToCorner, columnCenterToEdge, columnEdgeToCenter, columnLeftToRight, columnRightToLeft, computeActualDataScheme, convertPoint, cornerToCenter, createArc, createArea, createGroup, createLine, createRect, createRichText, createSymbol, createText, darkTheme, dataScheme, VChart as default, defaultThemeName, diagonalCenterToEdge, diagonalTopLeftToBottomRight, findMarkGraphic, functionTransform, getActualColor, getActualNumValue, getCartesianCrosshairRect, getCartesianDimensionInfo, getColorSchemeBySeries, getCombinedSizeOfRegions, getDataScheme, getDatumOfGraphic, getDiffAttributesOfGraphic, getDimensionInfoByValue, getFieldAlias, getFunnelTheme, getMergedTheme, getPolarDimensionInfo, getRegionStackGroup, getSpecInfo, getTheme, hasThemeMerged, isCollectionMark, isColorKey, isPercent, isPercentOffset, isProgressiveDataColorScheme, isTokenKey, isValidOrient, isXAxis, isYAxis, isZAxis, lightTheme, lookup, measureText, mergeFields, normalizeLayoutPaddingSpec, particleEffect, pieDisappear, pieEnter, pieExit, piePresetAnimation, pulseWave, queryColorFromColorScheme, queryToken, randomOpacity, registerAllEnv, registerAllMarks, registerAnimate, registerArcAnimation, registerArcMark, registerAreaChart, registerAreaMark, registerAreaSeries, registerBarChart, registerBarSeries, registerBoxplotChart, registerBoxplotSeries, registerBrowserEnv, registerBrush, registerCanvasTooltipHandler, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerChartPlugin, registerCirclePackingChart, registerCirclePackingSeries, registerCircularProgressChart, registerCircularProgressSeries, registerCommonChart, registerComponentMark, registerContinuousLegend, registerCorrelationChart, registerCustomAnimate, registerCustomMark, registerDataSetInstanceParser, registerDataSetInstanceTransform, registerDataZoom, registerDimensionEvents, registerDimensionHover, registerDimensionTooltipProcessor, registerDiscreteLegend, registerDomTooltipHandler, registerDotSeries, registerDragPlugin, registerElementActive, registerElementActiveByLegend, registerElementHighlight, registerElementHighlightByGroup, registerElementHighlightByKey, registerElementHighlightByLegend, registerElementHighlightByName, registerElementSelect, registerFormatPlugin, registerFunnelChart, registerFunnelSeries, registerGaugeChart, registerGaugePointerSeries, registerGaugeSeries, registerGeoCoordinate, registerGeoMarkPoint, registerGesturePlugin, registerGridLayout, registerGroupMark, registerGroupTooltipProcessor, registerHarmonyEnv, registerHeatmapChart, registerHeatmapSeries, registerHistogramChart, registerHtmlAttributePlugin, registerImageMark, registerIndicator, registerLabel, registerLarkEnv, registerLineChart, registerLineMark, registerLineSeries, registerLinearProgressChart, registerLinearProgressSeries, registerLinkSeries, registerLiquidChart, registerLiquidSeries, registerLynxEnv, registerMapChart, registerMapSeries, registerMarkArea, registerMarkFilterTransform, registerMarkLine, registerMarkMapTransform, registerMarkPoint, registerMarkTooltipProcessor, registerMediaQuery, registerMosaicChart, registerMosaicSeries, registerNodeEnv, registerPathMark, registerPieChart, registerPieSeries, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPolarMarkArea, registerPolarMarkLine, registerPolarMarkPoint, registerPolygonAnimation, registerPolygonMark, registerPoptip, registerRadarChart, registerRadarSeries, registerRangeAreaChart, registerRangeAreaSeries, registerRangeColumnChart, registerRangeColumnSeries, registerReactAttributePlugin, registerRectAnimation, registerRectMark, registerRippleMark, registerRoseChart, registerRoseSeries, registerRuleMark, registerSankeyChart, registerSankeySeries, registerScatterChart, registerScatterSeries, registerScrollBar, registerSequenceChart, registerSequentialAnimate, registerStateTransition, registerSunBurstSeries, registerSunburstChart, registerSymbolMark, registerTTEnv, registerTaroEnv, registerTextMark, registerTheme, registerTitle, registerTooltip, registerTotalLabel, registerTreemapChart, registerTreemapSeries, registerAnimate$1 as registerVRenderAnimate, registerVennChart, registerVennSeries, registerWXEnv, registerWaterfallChart, registerWaterfallSeries, registerWordCloudChart, registerWordCloudSeries, registerWordCloudShapeChart, removeTheme, rippleEffect, rotationScan, rowBottomToTop, rowCenterToEdge, rowEdgeToCenter, rowTopToBottom, shouldMarkDoMorph, snakeWave, sortStackValueGroup, specTransform, spiralEffect, stack, stackGroup, stackMosaic, stackMosaicTotal, stackOffsetSilhouette, stackTotal, themeExist, themes, token, transformColorSchemeToStandardStruct, transformToGraphic, userAnimationConfig, version, vglobal, warn };