@visactor/vchart 2.0.3-alpha.2 → 2.0.3

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.
package/build/index.js CHANGED
@@ -16377,10 +16377,14 @@
16377
16377
  attrs && (Object.assign(stateAttrs, attrs.attributes), (null === (_a = attrs.subAttributes) || void 0 === _a ? void 0 : _a.length) && subAttrs.forEach((subAttrs, index) => {
16378
16378
  Object.assign(subAttrs, attrs.subAttributes[index]);
16379
16379
  }));
16380
+ }), this.subGraphic.forEach((graphic, index) => {
16381
+ graphic.updateNormalAttrs(subAttrs[index]), graphic.applyStateAttrs(subAttrs[index], states, hasAnimation);
16380
16382
  }), this.updateNormalAttrs(stateAttrs), this.currentStates = states, this.applyStateAttrs(stateAttrs, states, hasAnimation);
16381
16383
  }
16382
16384
  clearStates(hasAnimation) {
16383
- this.stopStateAnimates(), this.hasState() && this.normalAttrs ? (this.currentStates = [], this.applyStateAttrs(this.normalAttrs, this.currentStates, hasAnimation, !0)) : this.currentStates = [], this.normalAttrs = null;
16385
+ this.stopStateAnimates(), this.hasState() && this.normalAttrs ? (this.currentStates = [], this.subGraphic.forEach(graphic => {
16386
+ graphic.applyStateAttrs(graphic.normalAttrs, this.currentStates, hasAnimation, !0), graphic.normalAttrs = null;
16387
+ }), this.applyStateAttrs(this.normalAttrs, this.currentStates, hasAnimation, !0)) : this.currentStates = [], this.normalAttrs = null;
16384
16388
  }
16385
16389
  clone() {
16386
16390
  const glyph = new Glyph(Object.assign({}, this.attribute));
@@ -33696,7 +33700,7 @@
33696
33700
  }
33697
33701
  class GrowAngleIn extends GrowAngleBase {
33698
33702
  onBind() {
33699
- var _a, _b, _c;
33703
+ var _a, _b;
33700
33704
  super.onBind();
33701
33705
  const {
33702
33706
  from: from,
@@ -33705,7 +33709,7 @@
33705
33709
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
33706
33710
  this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
33707
33711
  const finalAttribute = this.target.getFinalAttribute();
33708
- finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(fromAttrs), this.determineUpdateFunction();
33712
+ finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs), this.determineUpdateFunction();
33709
33713
  }
33710
33714
  }
33711
33715
  class GrowAngleOut extends GrowAngleBase {
@@ -34313,7 +34317,7 @@
34313
34317
  }
34314
34318
  class GrowRadiusIn extends GrowPointsBase {
34315
34319
  onBind() {
34316
- var _a, _b, _c;
34320
+ var _a, _b;
34317
34321
  super.onBind();
34318
34322
  const {
34319
34323
  from: from,
@@ -34322,7 +34326,7 @@
34322
34326
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34323
34327
  this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
34324
34328
  const finalAttribute = this.target.getFinalAttribute();
34325
- finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(fromAttrs);
34329
+ finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
34326
34330
  }
34327
34331
  }
34328
34332
  class GrowRadiusOut extends GrowPointsBase {
@@ -34437,7 +34441,7 @@
34437
34441
  super(from, to, duration, easing, params);
34438
34442
  }
34439
34443
  onBind() {
34440
- var _a, _b, _c;
34444
+ var _a, _b;
34441
34445
  super.onBind();
34442
34446
  const {
34443
34447
  from: from,
@@ -34446,7 +34450,7 @@
34446
34450
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34447
34451
  this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
34448
34452
  const finalAttribute = this.target.getFinalAttribute();
34449
- finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(fromAttrs);
34453
+ finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
34450
34454
  }
34451
34455
  onEnd(cb) {
34452
34456
  super.onEnd(cb);
@@ -37344,9 +37348,7 @@
37344
37348
  space = bandSpace(n, this._paddingInner, this._paddingOuter);
37345
37349
  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 = {
37346
37350
  reverse: reverse,
37347
- start: reverse ? clamp$1(start + this._step * (n - 1), wholeRange[1], wholeRange[0]) : clamp$1(start, wholeRange[0], wholeRange[1]),
37348
- min: reverse ? wholeRange[1] : wholeRange[0],
37349
- max: stop,
37351
+ start: reverse ? start + this._step * (n - 1) : start,
37350
37352
  count: n
37351
37353
  }, this.generateFishEyeTransform(), this;
37352
37354
  }
@@ -37363,12 +37365,10 @@
37363
37365
  const {
37364
37366
  count: count,
37365
37367
  start: start,
37366
- reverse: reverse,
37367
- min: min,
37368
- max: max
37368
+ reverse: reverse
37369
37369
  } = this._bandRangeState,
37370
37370
  output = start + (reverse ? -1 : 1) * ((i - 1) % count) * this._step;
37371
- return clamp$1(this._fishEyeTransform ? this._fishEyeTransform(output) : output, min, max);
37371
+ return this._fishEyeTransform ? this._fishEyeTransform(output) : output;
37372
37372
  }
37373
37373
  _calculateWholeRange(range, changeProperty) {
37374
37374
  if (this._wholeRange) return this._wholeRange;
@@ -54033,11 +54033,11 @@
54033
54033
  item.animation.customParameters = g.context;
54034
54034
  });
54035
54035
  const stateArray = [state];
54036
- if (state === 'enter' && animationConfig.normal) {
54037
- shouldRunNormal = true;
54038
- }
54039
54036
  g.applyAnimationState(stateArray, [configList.length === 1 ? configList[0] : configList]);
54040
54037
  }
54038
+ if (state === 'enter' && animationConfig.normal) {
54039
+ shouldRunNormal = true;
54040
+ }
54041
54041
  });
54042
54042
  if (shouldRunNormal && this._product && ((_b = animationConfig.normal) === null || _b === void 0 ? void 0 : _b.length)) {
54043
54043
  this._product.stopAnimationState('normal', 'start');
@@ -56932,7 +56932,7 @@
56932
56932
  });
56933
56933
  };
56934
56934
 
56935
- const version = "2.0.3-alpha.2";
56935
+ const version = "2.0.3";
56936
56936
 
56937
56937
  const addVChartProperty = (data, op) => {
56938
56938
  const context = op.beforeCall();
@@ -76948,72 +76948,6 @@
76948
76948
  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);
76949
76949
  }), sum;
76950
76950
  };
76951
- function makeHierarchicNodes(originalNodes, nodeKeyFunc, nodes = [], nodeMap = {}, originalLinks) {
76952
- calculateNodeValue(originalNodes);
76953
- const doSubTree = (subTree, depth, parents) => {
76954
- subTree.forEach((node, index) => {
76955
- const nodeKey = nodeKeyFunc ? nodeKeyFunc(node) : parents ? `${parents[parents.length - 1].key}-${index}` : `${depth}-${index}`,
76956
- nodeValue = isNil$1(node.value) ? 0 : toValidNumber$1(node.value);
76957
- if (nodeMap[nodeKey]) nodeMap[nodeKey].value = void 0;else {
76958
- const nodeElement = {
76959
- depth: depth,
76960
- datum: node,
76961
- index: index,
76962
- key: nodeKey,
76963
- value: nodeValue,
76964
- sourceLinks: [],
76965
- targetLinks: []
76966
- };
76967
- nodeMap[nodeKey] = nodeElement, nodes.push(nodeElement);
76968
- }
76969
- parents && originalLinks && originalLinks.push({
76970
- source: parents[parents.length - 1].key,
76971
- target: nodeKey,
76972
- value: nodeValue,
76973
- parents: parents
76974
- }), node.children && node.children.length && doSubTree(node.children, depth + 1, parents ? parents.concat([nodeMap[nodeKey]]) : [nodeMap[nodeKey]]);
76975
- });
76976
- };
76977
- return doSubTree(originalNodes, 0, null), nodes;
76978
- }
76979
- function computeHierarchicNodeLinks(originalNodes, nodeKeyFunc) {
76980
- const nodes = [],
76981
- links = [],
76982
- nodeMap = {},
76983
- linkMap = {},
76984
- originalLinks = [];
76985
- return makeHierarchicNodes(originalNodes, nodeKeyFunc, nodes, nodeMap, originalLinks), originalLinks.forEach((link, index) => {
76986
- const key = `${link.source}-${link.target}`,
76987
- linkDatum = pickWithout(link, ["parents"]);
76988
- 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);
76989
- const linkElement = {
76990
- index: index,
76991
- key: `${link.source}-${link.target}`,
76992
- source: link.source,
76993
- target: link.target,
76994
- datum: [linkDatum],
76995
- value: link.value,
76996
- parents: link.parents.map(parent => parent.key)
76997
- };
76998
- links.push(linkElement), nodeMap[link.source].sourceLinks.push(linkElement), nodeMap[link.target].targetLinks.push(linkElement), linkMap[key] = linkElement;
76999
- }), {
77000
- nodes: nodes,
77001
- links: links,
77002
- nodeMap: nodeMap
77003
- };
77004
- }
77005
- function computeNodeValues(nodes) {
77006
- for (let i = 0, len = nodes.length; i < len; i++) {
77007
- const node = nodes[i];
77008
- node.value = Math.max(isNil$1(node.value) ? 0 : toValidNumber$1(node.value), node.sourceLinks.reduce((sum, link) => {
77009
- var _a;
77010
- return sum + (null !== (_a = toValidNumber$1(link.value)) && void 0 !== _a ? _a : 0);
77011
- }, 0), node.targetLinks.reduce((sum, link) => {
77012
- var _a;
77013
- return sum + (null !== (_a = toValidNumber$1(link.value)) && void 0 !== _a ? _a : 0);
77014
- }, 0));
77015
- }
77016
- }
77017
76951
 
77018
76952
  function left(node) {
77019
76953
  return node.depth;
@@ -77147,7 +77081,55 @@
77147
77081
  };
77148
77082
  }
77149
77083
  computeHierarchicNodeLinks(originalNodes) {
77150
- return computeHierarchicNodeLinks(originalNodes, this._getNodeKey);
77084
+ const nodes = [],
77085
+ links = [],
77086
+ nodeMap = {},
77087
+ linkMap = {},
77088
+ originalLinks = [];
77089
+ calculateNodeValue(originalNodes);
77090
+ const doSubTree = (subTree, depth, parents) => {
77091
+ subTree.forEach((node, index) => {
77092
+ const nodeKey = this._getNodeKey ? this._getNodeKey(node) : parents ? `${parents[parents.length - 1].key}-${index}` : `${depth}-${index}`,
77093
+ nodeValue = isNil$1(node.value) ? 0 : toValidNumber$1(node.value);
77094
+ if (nodeMap[nodeKey]) nodeMap[nodeKey].value = void 0;else {
77095
+ const nodeElement = {
77096
+ depth: depth,
77097
+ datum: node,
77098
+ index: index,
77099
+ key: nodeKey,
77100
+ value: nodeValue,
77101
+ sourceLinks: [],
77102
+ targetLinks: []
77103
+ };
77104
+ nodeMap[nodeKey] = nodeElement, nodes.push(nodeElement);
77105
+ }
77106
+ parents && originalLinks.push({
77107
+ source: parents[parents.length - 1].key,
77108
+ target: nodeKey,
77109
+ value: nodeValue,
77110
+ parents: parents
77111
+ }), node.children && node.children.length && doSubTree(node.children, depth + 1, parents ? parents.concat([nodeMap[nodeKey]]) : [nodeMap[nodeKey]]);
77112
+ });
77113
+ };
77114
+ return doSubTree(originalNodes, 0, null), originalLinks.forEach((link, index) => {
77115
+ const key = `${link.source}-${link.target}`,
77116
+ linkDatum = pickWithout(link, ["parents"]);
77117
+ 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);
77118
+ const linkElement = {
77119
+ index: index,
77120
+ key: `${link.source}-${link.target}`,
77121
+ source: link.source,
77122
+ target: link.target,
77123
+ datum: [linkDatum],
77124
+ value: link.value,
77125
+ parents: link.parents.map(parent => parent.key)
77126
+ };
77127
+ links.push(linkElement), nodeMap[link.source].sourceLinks.push(linkElement), nodeMap[link.target].targetLinks.push(linkElement), linkMap[key] = linkElement;
77128
+ }), {
77129
+ nodes: nodes,
77130
+ links: links,
77131
+ nodeMap: nodeMap
77132
+ };
77151
77133
  }
77152
77134
  computeSourceTargetNodeLinks(data) {
77153
77135
  const nodes = [],
@@ -77217,7 +77199,16 @@
77217
77199
  };
77218
77200
  }
77219
77201
  computeNodeValues(nodes) {
77220
- return computeNodeValues(nodes);
77202
+ for (let i = 0, len = nodes.length; i < len; i++) {
77203
+ const node = nodes[i];
77204
+ node.value = Math.max(isNil$1(node.value) ? 0 : toValidNumber$1(node.value), node.sourceLinks.reduce((sum, link) => {
77205
+ var _a;
77206
+ return sum + (null !== (_a = toValidNumber$1(link.value)) && void 0 !== _a ? _a : 0);
77207
+ }, 0), node.targetLinks.reduce((sum, link) => {
77208
+ var _a;
77209
+ return sum + (null !== (_a = toValidNumber$1(link.value)) && void 0 !== _a ? _a : 0);
77210
+ }, 0));
77211
+ }
77221
77212
  }
77222
77213
  computeNodeDepths(nodes) {
77223
77214
  var _a;
@@ -78282,7 +78273,7 @@
78282
78273
  return ret;
78283
78274
  }
78284
78275
 
78285
- function scaleSolution(solution, width, height, x0, y0, hasEmptySet = !1) {
78276
+ function scaleSolution(solution, width, height, x0, y0) {
78286
78277
  width = Math.max(width, 1), height = Math.max(height, 1);
78287
78278
  const circles = [],
78288
78279
  setIds = [];
@@ -78292,20 +78283,9 @@
78292
78283
  yRange = bounds.yRange;
78293
78284
  if (xRange.max === xRange.min || yRange.max === yRange.min) return console.log("not scaling solution: zero size detected"), solution;
78294
78285
  const xScaling = width / (xRange.max - xRange.min),
78295
- yScaling = height / (yRange.max - yRange.min);
78296
- let scaling;
78297
- if (hasEmptySet) {
78298
- const containerRadius = Math.min(width, height) / 2,
78299
- centerX = (xRange.min + xRange.max) / 2,
78300
- centerY = (yRange.min + yRange.max) / 2;
78301
- let diagramRadius = 0;
78302
- for (const circle of circles) {
78303
- const maxDistanceForThisCircle = Math.sqrt(Math.pow(circle.x - centerX, 2) + Math.pow(circle.y - centerY, 2)) + circle.radius;
78304
- diagramRadius = Math.max(diagramRadius, maxDistanceForThisCircle);
78305
- }
78306
- scaling = containerRadius / diagramRadius;
78307
- } else scaling = Math.min(yScaling, xScaling);
78308
- const xOffset = (width - (xRange.max - xRange.min) * scaling) / 2,
78286
+ yScaling = height / (yRange.max - yRange.min),
78287
+ scaling = Math.min(yScaling, xScaling),
78288
+ xOffset = (width - (xRange.max - xRange.min) * scaling) / 2,
78309
78289
  yOffset = (height - (yRange.max - yRange.min) * scaling) / 2,
78310
78290
  scaled = {};
78311
78291
  for (let i = 0; i < circles.length; ++i) {
@@ -78520,39 +78500,21 @@
78520
78500
  setField = "sets",
78521
78501
  valueField = "size",
78522
78502
  orientation = Math.PI / 2,
78523
- orientationOrder = null,
78524
- emptySetKey: emptySetKey
78503
+ orientationOrder = null
78525
78504
  } = options;
78526
78505
  let circles = {},
78527
78506
  textCenters = {};
78528
- const hasEmptySet = upstreamData.some(area => {
78529
- const sets = array(area[setField]);
78530
- return !sets || 0 === sets.length;
78531
- }),
78532
- nonEmptyData = hasEmptySet ? upstreamData.filter(area => !isEmpty(array(area[setField]))) : upstreamData;
78533
- if (nonEmptyData.length > 0) {
78534
- const vennData = nonEmptyData.map(area => ({
78507
+ if (upstreamData.length > 0) {
78508
+ const vennData = upstreamData.map(area => ({
78535
78509
  sets: array(area[setField]),
78536
78510
  size: area[valueField]
78537
78511
  }));
78538
78512
  let solution = venn$1(vennData, options);
78539
- solution = normalizeSolution(solution, orientation, orientationOrder), circles = scaleSolution(solution, x1 - x0, y1 - y0, x0, y0, hasEmptySet), textCenters = computeTextCenters(circles, vennData);
78513
+ solution = normalizeSolution(solution, orientation, orientationOrder), circles = scaleSolution(solution, x1 - x0, y1 - y0, x0, y0), textCenters = computeTextCenters(circles, vennData);
78540
78514
  }
78541
78515
  return upstreamData.map(area => {
78542
- const sets = array(area[setField]);
78543
- if (!sets || 0 === sets.length) return Object.assign(Object.assign({}, area), {
78544
- datum: area,
78545
- sets: sets,
78546
- key: emptySetKey || "others",
78547
- size: area[valueField],
78548
- labelX: void 0,
78549
- labelY: void 0,
78550
- type: "circle",
78551
- x: x0 + (x1 - x0) / 2,
78552
- y: y0 + (y1 - y0) / 2,
78553
- radius: Math.min(x1 - x0, y1 - y0) / 2
78554
- });
78555
- const key = sets.toString(),
78516
+ const sets = array(area[setField]),
78517
+ key = sets.toString(),
78556
78518
  textCenter = textCenters[key],
78557
78519
  basicDatum = Object.assign(Object.assign({}, area), {
78558
78520
  datum: area,
@@ -82936,6 +82898,380 @@
82936
82898
  }
82937
82899
  }
82938
82900
  };
82901
+ this._handleClearEmpty = () => {
82902
+ var _a, _b;
82903
+ if (!this._needClear) {
82904
+ return;
82905
+ }
82906
+ const allNodeElements = (_a = this._nodeMark) === null || _a === void 0 ? void 0 : _a.getGraphics();
82907
+ if (!allNodeElements || !allNodeElements.length) {
82908
+ return;
82909
+ }
82910
+ const allLinkElements = (_b = this._linkMark) === null || _b === void 0 ? void 0 : _b.getGraphics();
82911
+ if (!allLinkElements || !allLinkElements.length) {
82912
+ return;
82913
+ }
82914
+ allNodeElements.forEach(el => {
82915
+ el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
82916
+ el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82917
+ });
82918
+ allLinkElements.forEach(el => {
82919
+ el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
82920
+ el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82921
+ });
82922
+ this._needClear = false;
82923
+ };
82924
+ this._handleNodeAdjacencyClick = (graphic) => {
82925
+ const nodeDatum = getDatumOfGraphic(graphic);
82926
+ const highlightNodes = [nodeDatum.key];
82927
+ if (this._linkMark) {
82928
+ const allLinkElements = this._linkMark.getGraphics();
82929
+ if (!allLinkElements || !allLinkElements.length) {
82930
+ return;
82931
+ }
82932
+ allLinkElements.forEach((linkEl, i) => {
82933
+ const linkDatum = getDatumOfGraphic(linkEl);
82934
+ if (linkDatum.source === nodeDatum.key) {
82935
+ if (!highlightNodes.includes(linkDatum.target)) {
82936
+ highlightNodes.push(linkDatum.target);
82937
+ }
82938
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82939
+ linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
82940
+ }
82941
+ else if (linkDatum.target === nodeDatum.key) {
82942
+ if (!highlightNodes.includes(linkDatum.source)) {
82943
+ highlightNodes.push(linkDatum.source);
82944
+ }
82945
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82946
+ linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
82947
+ }
82948
+ else {
82949
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
82950
+ linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
82951
+ }
82952
+ });
82953
+ }
82954
+ if (this._nodeMark) {
82955
+ this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
82956
+ }
82957
+ this._needClear = true;
82958
+ };
82959
+ this._handleLinkAdjacencyClick = (graphic) => {
82960
+ const curLinkDatum = getDatumOfGraphic(graphic);
82961
+ const highlightNodes = [curLinkDatum.source, curLinkDatum.target];
82962
+ if (this._linkMark) {
82963
+ const allLinkElements = this._linkMark.getGraphics();
82964
+ if (!allLinkElements || !allLinkElements.length) {
82965
+ return;
82966
+ }
82967
+ allLinkElements.forEach(linkEl => {
82968
+ if (linkEl === graphic) {
82969
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
82970
+ addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio: 1 });
82971
+ }
82972
+ else {
82973
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
82974
+ linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
82975
+ }
82976
+ });
82977
+ }
82978
+ if (this._nodeMark) {
82979
+ this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
82980
+ }
82981
+ this._needClear = true;
82982
+ };
82983
+ this._handleNodeRelatedClick = (graphic) => {
82984
+ var _a;
82985
+ const nodeDatum = getDatumOfGraphic(graphic);
82986
+ const allNodeElements = this._nodeMark.getGraphics();
82987
+ if (!allNodeElements || !allNodeElements.length) {
82988
+ return;
82989
+ }
82990
+ const allLinkElements = this._linkMark.getGraphics();
82991
+ if (!allLinkElements || !allLinkElements.length) {
82992
+ return;
82993
+ }
82994
+ const father = ((_a = getDatumOfGraphic(allLinkElements[0])) === null || _a === void 0 ? void 0 : _a.parents) ? 'parents' : 'source';
82995
+ if (father === 'source') {
82996
+ const highlightNodes = [nodeDatum.key];
82997
+ const highlightLinks = [];
82998
+ allLinkElements.forEach((linkEl, i) => {
82999
+ var _a, _b, _c, _d;
83000
+ const linkDatum = getDatumOfGraphic(linkEl);
83001
+ const father = (linkDatum === null || linkDatum === void 0 ? void 0 : linkDatum.parents) ? 'parents' : 'source';
83002
+ if (array(linkDatum[father]).includes(nodeDatum.key)) {
83003
+ if (!highlightLinks.includes((_a = linkDatum.key) !== null && _a !== void 0 ? _a : linkDatum.index)) {
83004
+ highlightLinks.push((_b = linkDatum.key) !== null && _b !== void 0 ? _b : linkDatum.index);
83005
+ }
83006
+ if (!highlightNodes.includes(linkDatum.source)) {
83007
+ highlightNodes.push(linkDatum.source);
83008
+ }
83009
+ if (!highlightNodes.includes(linkDatum.target)) {
83010
+ highlightNodes.push(linkDatum.target);
83011
+ const targetNode = allNodeElements.find(nodeElement => {
83012
+ return nodeElement.data[0].key === linkDatum.target;
83013
+ });
83014
+ let targetNodeSourceLinks = targetNode.data[0].sourceLinks;
83015
+ while ((targetNodeSourceLinks === null || targetNodeSourceLinks === void 0 ? void 0 : targetNodeSourceLinks.length) > 0) {
83016
+ const newTargetNodeSourceLinks = [];
83017
+ targetNodeSourceLinks.forEach((targetNodeSourceLinkDatum) => {
83018
+ var _a, _b;
83019
+ if (!highlightLinks.includes((_a = targetNodeSourceLinkDatum.key) !== null && _a !== void 0 ? _a : targetNodeSourceLinkDatum.index)) {
83020
+ highlightLinks.push((_b = targetNodeSourceLinkDatum.key) !== null && _b !== void 0 ? _b : targetNodeSourceLinkDatum.index);
83021
+ if (!highlightNodes.includes(targetNodeSourceLinkDatum.target)) {
83022
+ highlightNodes.push(targetNodeSourceLinkDatum.target);
83023
+ const sourceNodeTemp = allNodeElements.find(nodeElement => {
83024
+ return nodeElement.data[0].key === targetNodeSourceLinkDatum.target;
83025
+ });
83026
+ newTargetNodeSourceLinks.push(sourceNodeTemp.data[0].targetLinks);
83027
+ }
83028
+ else {
83029
+ return;
83030
+ }
83031
+ }
83032
+ else {
83033
+ return;
83034
+ }
83035
+ });
83036
+ targetNodeSourceLinks = newTargetNodeSourceLinks;
83037
+ return;
83038
+ }
83039
+ }
83040
+ }
83041
+ else if (linkDatum.target === nodeDatum.key) {
83042
+ if (!highlightLinks.includes((_c = linkDatum.key) !== null && _c !== void 0 ? _c : linkDatum.index)) {
83043
+ highlightLinks.push((_d = linkDatum.key) !== null && _d !== void 0 ? _d : linkDatum.index);
83044
+ }
83045
+ if (!highlightNodes.includes(linkDatum.source)) {
83046
+ highlightNodes.push(linkDatum.source);
83047
+ const sourceNode = allNodeElements.find(nodeElement => {
83048
+ return nodeElement.data[0].key === linkDatum.source;
83049
+ });
83050
+ let sourceNodeTargetLinks = sourceNode.data[0].targetLinks;
83051
+ while ((sourceNodeTargetLinks === null || sourceNodeTargetLinks === void 0 ? void 0 : sourceNodeTargetLinks.length) > 0) {
83052
+ const newSourceNodeTargetLinks = [];
83053
+ sourceNodeTargetLinks.forEach((sourceNodeTargetLinkDatum) => {
83054
+ var _a, _b;
83055
+ if (!highlightLinks.includes((_a = sourceNodeTargetLinkDatum.key) !== null && _a !== void 0 ? _a : sourceNodeTargetLinkDatum.index)) {
83056
+ highlightLinks.push((_b = sourceNodeTargetLinkDatum.key) !== null && _b !== void 0 ? _b : sourceNodeTargetLinkDatum.index);
83057
+ if (!highlightNodes.includes(sourceNodeTargetLinkDatum.source)) {
83058
+ highlightNodes.push(sourceNodeTargetLinkDatum.source);
83059
+ const sourceNodeTemp = allNodeElements.find(nodeElement => {
83060
+ return nodeElement.data[0].key === sourceNodeTargetLinkDatum.source;
83061
+ });
83062
+ newSourceNodeTargetLinks.push(sourceNodeTemp.data[0].targetLinks);
83063
+ }
83064
+ else {
83065
+ return;
83066
+ }
83067
+ }
83068
+ else {
83069
+ return;
83070
+ }
83071
+ });
83072
+ sourceNodeTargetLinks = newSourceNodeTargetLinks;
83073
+ return;
83074
+ }
83075
+ }
83076
+ }
83077
+ });
83078
+ if (this._linkMark) {
83079
+ const allLinkElements = this._linkMark.getGraphics();
83080
+ if (!allLinkElements || !allLinkElements.length) {
83081
+ return;
83082
+ }
83083
+ allLinkElements.forEach((linkEl, i) => {
83084
+ var _a;
83085
+ const linkDatum = getDatumOfGraphic(linkEl);
83086
+ if (highlightLinks.includes((_a = linkDatum.key) !== null && _a !== void 0 ? _a : linkDatum.index)) {
83087
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83088
+ linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
83089
+ }
83090
+ else {
83091
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83092
+ linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83093
+ }
83094
+ });
83095
+ }
83096
+ if (this._nodeMark) {
83097
+ this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83098
+ }
83099
+ }
83100
+ else {
83101
+ const highlightNodes = [nodeDatum.key];
83102
+ const upstreamLinks = nodeDatum.targetLinks.reduce((res, link) => {
83103
+ const dividedLinks = array(link.datum);
83104
+ dividedLinks.forEach(dividedLink => {
83105
+ const parents = dividedLink.parents;
83106
+ const len = parents.length;
83107
+ for (let i = 0; i < len; i++) {
83108
+ const source = parents[i].key;
83109
+ const target = parents[i + 1] ? parents[i + 1].key : nodeDatum.key;
83110
+ const value = dividedLink.value;
83111
+ const existingItem = res.find(item => item.source === source && item.target === target);
83112
+ if (existingItem) {
83113
+ existingItem.value += value;
83114
+ }
83115
+ else {
83116
+ res.push({ source, target, value });
83117
+ }
83118
+ }
83119
+ });
83120
+ return res;
83121
+ }, []);
83122
+ allLinkElements.forEach((linkEl, i) => {
83123
+ const linkDatum = getDatumOfGraphic(linkEl);
83124
+ const originalDatum = linkDatum.datum;
83125
+ const selectedDatum = originalDatum
83126
+ ? originalDatum.filter((entry) => entry[father].some((par) => par.key === nodeDatum.key))
83127
+ : null;
83128
+ const upSelectedLink = upstreamLinks.find((upLink) => upLink.source === linkDatum.source && upLink.target === linkDatum.target);
83129
+ if (selectedDatum && selectedDatum.length) {
83130
+ if (!highlightNodes.includes(linkDatum.source)) {
83131
+ highlightNodes.push(linkDatum.source);
83132
+ }
83133
+ if (!highlightNodes.includes(linkDatum.target)) {
83134
+ highlightNodes.push(linkDatum.target);
83135
+ }
83136
+ const val = selectedDatum.reduce((sum, d) => {
83137
+ return (sum += d.value);
83138
+ }, 0);
83139
+ const ratio = val / linkDatum.value;
83140
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83141
+ addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio });
83142
+ return;
83143
+ }
83144
+ if (upSelectedLink) {
83145
+ if (!highlightNodes.includes(linkDatum.source)) {
83146
+ highlightNodes.push(linkDatum.source);
83147
+ }
83148
+ if (!highlightNodes.includes(linkDatum.target)) {
83149
+ highlightNodes.push(linkDatum.target);
83150
+ }
83151
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83152
+ addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
83153
+ ratio: upSelectedLink.value / linkDatum.value
83154
+ });
83155
+ return;
83156
+ }
83157
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83158
+ linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83159
+ return;
83160
+ });
83161
+ if (this._nodeMark) {
83162
+ this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83163
+ }
83164
+ }
83165
+ this._needClear = true;
83166
+ };
83167
+ this._handleLinkRelatedClick = (graphic) => {
83168
+ const allNodeElements = this._nodeMark.getGraphics();
83169
+ if (!allNodeElements || !allNodeElements.length) {
83170
+ return;
83171
+ }
83172
+ const allLinkElements = this._linkMark.getGraphics();
83173
+ if (!allLinkElements || !allLinkElements.length) {
83174
+ return;
83175
+ }
83176
+ const father = getDatumOfGraphic(graphic) ? 'parents' : 'source';
83177
+ if (father === 'source') {
83178
+ if (this._linkMark) {
83179
+ allLinkElements.forEach(linkEl => {
83180
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83181
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83182
+ });
83183
+ }
83184
+ if (this._nodeMark) {
83185
+ allNodeElements.forEach(el => {
83186
+ el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83187
+ el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83188
+ });
83189
+ }
83190
+ }
83191
+ else {
83192
+ const curLinkDatum = getDatumOfGraphic(graphic);
83193
+ const highlightNodes = [curLinkDatum.source, curLinkDatum.target];
83194
+ const upstreamLinks = [];
83195
+ const dividedLinks = array(curLinkDatum.datum);
83196
+ dividedLinks.forEach(dividedLink => {
83197
+ const parents = dividedLink.parents;
83198
+ const len = parents.length;
83199
+ for (let i = 0; i < len - 1; i++) {
83200
+ const source = parents[i].key;
83201
+ const target = parents[i + 1].key;
83202
+ const value = dividedLink.value;
83203
+ const existingItem = upstreamLinks.find(item => item.source === source && item.target === target);
83204
+ upstreamLinks.push({
83205
+ source: parents[i].key,
83206
+ target: parents[i + 1].key,
83207
+ value: dividedLink.value
83208
+ });
83209
+ if (existingItem) {
83210
+ existingItem.value += value;
83211
+ }
83212
+ else {
83213
+ upstreamLinks.push({ source, target, value });
83214
+ }
83215
+ }
83216
+ });
83217
+ allLinkElements.forEach(linkEl => {
83218
+ const linkDatum = getDatumOfGraphic(linkEl);
83219
+ const originalDatum = linkDatum.datum;
83220
+ if (linkDatum.source === curLinkDatum.source && linkDatum.target === curLinkDatum.target) {
83221
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83222
+ addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio: 1 });
83223
+ return;
83224
+ }
83225
+ const selectedDatum = originalDatum
83226
+ ? originalDatum.filter((entry) => {
83227
+ const parentKeysList = entry.parents.map((item) => item.key);
83228
+ return parentKeysList.includes(curLinkDatum.source) && parentKeysList.includes(curLinkDatum.target);
83229
+ })
83230
+ : null;
83231
+ if (selectedDatum && selectedDatum.length) {
83232
+ if (!highlightNodes.includes(linkDatum.source)) {
83233
+ highlightNodes.push(linkDatum.source);
83234
+ }
83235
+ if (!highlightNodes.includes(linkDatum.target)) {
83236
+ highlightNodes.push(linkDatum.target);
83237
+ }
83238
+ const val = selectedDatum
83239
+ .filter((entry) => {
83240
+ return entry.parents.some((par, index) => {
83241
+ var _a;
83242
+ return par.key === curLinkDatum.source && ((_a = entry.parents[index + 1]) === null || _a === void 0 ? void 0 : _a.key) === curLinkDatum.target;
83243
+ });
83244
+ })
83245
+ .reduce((sum, d) => {
83246
+ return (sum += d.value);
83247
+ }, 0);
83248
+ const ratio = val / linkDatum.value;
83249
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83250
+ addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio });
83251
+ return;
83252
+ }
83253
+ const upSelectedLink = upstreamLinks.find((upLink) => upLink.source === linkDatum.source && upLink.target === linkDatum.target);
83254
+ if (upSelectedLink) {
83255
+ if (!highlightNodes.includes(linkDatum.source)) {
83256
+ highlightNodes.push(linkDatum.source);
83257
+ }
83258
+ if (!highlightNodes.includes(linkDatum.target)) {
83259
+ highlightNodes.push(linkDatum.target);
83260
+ }
83261
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83262
+ addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
83263
+ ratio: upSelectedLink.value / linkDatum.value
83264
+ });
83265
+ return;
83266
+ }
83267
+ linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83268
+ linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83269
+ return;
83270
+ });
83271
+ this._highLightElements(allNodeElements, highlightNodes);
83272
+ }
83273
+ this._needClear = true;
83274
+ };
82939
83275
  }
82940
83276
  get direction() {
82941
83277
  var _a;
@@ -83225,380 +83561,6 @@
83225
83561
  linksSeriesDataUpdate() {
83226
83562
  this._linkMark.getData().updateData();
83227
83563
  }
83228
- _handleClearEmpty() {
83229
- var _a, _b;
83230
- if (!this._needClear) {
83231
- return;
83232
- }
83233
- const allNodeElements = (_a = this._nodeMark) === null || _a === void 0 ? void 0 : _a.getGraphics();
83234
- if (!allNodeElements || !allNodeElements.length) {
83235
- return;
83236
- }
83237
- const allLinkElements = (_b = this._linkMark) === null || _b === void 0 ? void 0 : _b.getGraphics();
83238
- if (!allLinkElements || !allLinkElements.length) {
83239
- return;
83240
- }
83241
- allNodeElements.forEach(el => {
83242
- el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83243
- el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83244
- });
83245
- allLinkElements.forEach(el => {
83246
- el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83247
- el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83248
- });
83249
- this._needClear = false;
83250
- }
83251
- _handleNodeAdjacencyClick(graphic) {
83252
- const nodeDatum = getDatumOfGraphic(graphic);
83253
- const highlightNodes = [nodeDatum.key];
83254
- if (this._linkMark) {
83255
- const allLinkElements = this._linkMark.getGraphics();
83256
- if (!allLinkElements || !allLinkElements.length) {
83257
- return;
83258
- }
83259
- allLinkElements.forEach((linkEl, i) => {
83260
- const linkDatum = getDatumOfGraphic(linkEl);
83261
- if (linkDatum.source === nodeDatum.key) {
83262
- if (!highlightNodes.includes(linkDatum.target)) {
83263
- highlightNodes.push(linkDatum.target);
83264
- }
83265
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83266
- linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
83267
- }
83268
- else if (linkDatum.target === nodeDatum.key) {
83269
- if (!highlightNodes.includes(linkDatum.source)) {
83270
- highlightNodes.push(linkDatum.source);
83271
- }
83272
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83273
- linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
83274
- }
83275
- else {
83276
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83277
- linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83278
- }
83279
- });
83280
- }
83281
- if (this._nodeMark) {
83282
- this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83283
- }
83284
- this._needClear = true;
83285
- }
83286
- _handleLinkAdjacencyClick(graphic) {
83287
- const curLinkDatum = getDatumOfGraphic(graphic);
83288
- const highlightNodes = [curLinkDatum.source, curLinkDatum.target];
83289
- if (this._linkMark) {
83290
- const allLinkElements = this._linkMark.getGraphics();
83291
- if (!allLinkElements || !allLinkElements.length) {
83292
- return;
83293
- }
83294
- allLinkElements.forEach(linkEl => {
83295
- if (linkEl === graphic) {
83296
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83297
- addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio: 1 });
83298
- }
83299
- else {
83300
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83301
- linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83302
- }
83303
- });
83304
- }
83305
- if (this._nodeMark) {
83306
- this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83307
- }
83308
- this._needClear = true;
83309
- }
83310
- _handleNodeRelatedClick(graphic) {
83311
- var _a;
83312
- const nodeDatum = getDatumOfGraphic(graphic);
83313
- const allNodeElements = this._nodeMark.getGraphics();
83314
- if (!allNodeElements || !allNodeElements.length) {
83315
- return;
83316
- }
83317
- const allLinkElements = this._linkMark.getGraphics();
83318
- if (!allLinkElements || !allLinkElements.length) {
83319
- return;
83320
- }
83321
- const father = ((_a = getDatumOfGraphic(allLinkElements[0])) === null || _a === void 0 ? void 0 : _a.parents) ? 'parents' : 'source';
83322
- if (father === 'source') {
83323
- const highlightNodes = [nodeDatum.key];
83324
- const highlightLinks = [];
83325
- allLinkElements.forEach((linkEl, i) => {
83326
- var _a, _b, _c, _d;
83327
- const linkDatum = getDatumOfGraphic(linkEl);
83328
- const father = (linkDatum === null || linkDatum === void 0 ? void 0 : linkDatum.parents) ? 'parents' : 'source';
83329
- if (array(linkDatum[father]).includes(nodeDatum.key)) {
83330
- if (!highlightLinks.includes((_a = linkDatum.key) !== null && _a !== void 0 ? _a : linkDatum.index)) {
83331
- highlightLinks.push((_b = linkDatum.key) !== null && _b !== void 0 ? _b : linkDatum.index);
83332
- }
83333
- if (!highlightNodes.includes(linkDatum.source)) {
83334
- highlightNodes.push(linkDatum.source);
83335
- }
83336
- if (!highlightNodes.includes(linkDatum.target)) {
83337
- highlightNodes.push(linkDatum.target);
83338
- const targetNode = allNodeElements.find(nodeElement => {
83339
- return nodeElement.data[0].key === linkDatum.target;
83340
- });
83341
- let targetNodeSourceLinks = targetNode.data[0].sourceLinks;
83342
- while ((targetNodeSourceLinks === null || targetNodeSourceLinks === void 0 ? void 0 : targetNodeSourceLinks.length) > 0) {
83343
- const newTargetNodeSourceLinks = [];
83344
- targetNodeSourceLinks.forEach((targetNodeSourceLinkDatum) => {
83345
- var _a, _b;
83346
- if (!highlightLinks.includes((_a = targetNodeSourceLinkDatum.key) !== null && _a !== void 0 ? _a : targetNodeSourceLinkDatum.index)) {
83347
- highlightLinks.push((_b = targetNodeSourceLinkDatum.key) !== null && _b !== void 0 ? _b : targetNodeSourceLinkDatum.index);
83348
- if (!highlightNodes.includes(targetNodeSourceLinkDatum.target)) {
83349
- highlightNodes.push(targetNodeSourceLinkDatum.target);
83350
- const sourceNodeTemp = allNodeElements.find(nodeElement => {
83351
- return nodeElement.data[0].key === targetNodeSourceLinkDatum.target;
83352
- });
83353
- newTargetNodeSourceLinks.push(sourceNodeTemp.data[0].targetLinks);
83354
- }
83355
- else {
83356
- return;
83357
- }
83358
- }
83359
- else {
83360
- return;
83361
- }
83362
- });
83363
- targetNodeSourceLinks = newTargetNodeSourceLinks;
83364
- return;
83365
- }
83366
- }
83367
- }
83368
- else if (linkDatum.target === nodeDatum.key) {
83369
- if (!highlightLinks.includes((_c = linkDatum.key) !== null && _c !== void 0 ? _c : linkDatum.index)) {
83370
- highlightLinks.push((_d = linkDatum.key) !== null && _d !== void 0 ? _d : linkDatum.index);
83371
- }
83372
- if (!highlightNodes.includes(linkDatum.source)) {
83373
- highlightNodes.push(linkDatum.source);
83374
- const sourceNode = allNodeElements.find(nodeElement => {
83375
- return nodeElement.data[0].key === linkDatum.source;
83376
- });
83377
- let sourceNodeTargetLinks = sourceNode.data[0].targetLinks;
83378
- while ((sourceNodeTargetLinks === null || sourceNodeTargetLinks === void 0 ? void 0 : sourceNodeTargetLinks.length) > 0) {
83379
- const newSourceNodeTargetLinks = [];
83380
- sourceNodeTargetLinks.forEach((sourceNodeTargetLinkDatum) => {
83381
- var _a, _b;
83382
- if (!highlightLinks.includes((_a = sourceNodeTargetLinkDatum.key) !== null && _a !== void 0 ? _a : sourceNodeTargetLinkDatum.index)) {
83383
- highlightLinks.push((_b = sourceNodeTargetLinkDatum.key) !== null && _b !== void 0 ? _b : sourceNodeTargetLinkDatum.index);
83384
- if (!highlightNodes.includes(sourceNodeTargetLinkDatum.source)) {
83385
- highlightNodes.push(sourceNodeTargetLinkDatum.source);
83386
- const sourceNodeTemp = allNodeElements.find(nodeElement => {
83387
- return nodeElement.data[0].key === sourceNodeTargetLinkDatum.source;
83388
- });
83389
- newSourceNodeTargetLinks.push(sourceNodeTemp.data[0].targetLinks);
83390
- }
83391
- else {
83392
- return;
83393
- }
83394
- }
83395
- else {
83396
- return;
83397
- }
83398
- });
83399
- sourceNodeTargetLinks = newSourceNodeTargetLinks;
83400
- return;
83401
- }
83402
- }
83403
- }
83404
- });
83405
- if (this._linkMark) {
83406
- const allLinkElements = this._linkMark.getGraphics();
83407
- if (!allLinkElements || !allLinkElements.length) {
83408
- return;
83409
- }
83410
- allLinkElements.forEach((linkEl, i) => {
83411
- var _a;
83412
- const linkDatum = getDatumOfGraphic(linkEl);
83413
- if (highlightLinks.includes((_a = linkDatum.key) !== null && _a !== void 0 ? _a : linkDatum.index)) {
83414
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83415
- linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, true);
83416
- }
83417
- else {
83418
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83419
- linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83420
- }
83421
- });
83422
- }
83423
- if (this._nodeMark) {
83424
- this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83425
- }
83426
- }
83427
- else {
83428
- const highlightNodes = [nodeDatum.key];
83429
- const upstreamLinks = nodeDatum.targetLinks.reduce((res, link) => {
83430
- const dividedLinks = array(link.datum);
83431
- dividedLinks.forEach(dividedLink => {
83432
- const parents = dividedLink.parents;
83433
- const len = parents.length;
83434
- for (let i = 0; i < len; i++) {
83435
- const source = parents[i].key;
83436
- const target = parents[i + 1] ? parents[i + 1].key : nodeDatum.key;
83437
- const value = dividedLink.value;
83438
- const existingItem = res.find(item => item.source === source && item.target === target);
83439
- if (existingItem) {
83440
- existingItem.value += value;
83441
- }
83442
- else {
83443
- res.push({ source, target, value });
83444
- }
83445
- }
83446
- });
83447
- return res;
83448
- }, []);
83449
- allLinkElements.forEach((linkEl, i) => {
83450
- const linkDatum = getDatumOfGraphic(linkEl);
83451
- const originalDatum = linkDatum.datum;
83452
- const selectedDatum = originalDatum
83453
- ? originalDatum.filter((entry) => entry[father].some((par) => par.key === nodeDatum.key))
83454
- : null;
83455
- const upSelectedLink = upstreamLinks.find((upLink) => upLink.source === linkDatum.source && upLink.target === linkDatum.target);
83456
- if (selectedDatum && selectedDatum.length) {
83457
- if (!highlightNodes.includes(linkDatum.source)) {
83458
- highlightNodes.push(linkDatum.source);
83459
- }
83460
- if (!highlightNodes.includes(linkDatum.target)) {
83461
- highlightNodes.push(linkDatum.target);
83462
- }
83463
- const val = selectedDatum.reduce((sum, d) => {
83464
- return (sum += d.value);
83465
- }, 0);
83466
- const ratio = val / linkDatum.value;
83467
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83468
- addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio });
83469
- return;
83470
- }
83471
- if (upSelectedLink) {
83472
- if (!highlightNodes.includes(linkDatum.source)) {
83473
- highlightNodes.push(linkDatum.source);
83474
- }
83475
- if (!highlightNodes.includes(linkDatum.target)) {
83476
- highlightNodes.push(linkDatum.target);
83477
- }
83478
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83479
- addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
83480
- ratio: upSelectedLink.value / linkDatum.value
83481
- });
83482
- return;
83483
- }
83484
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83485
- linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83486
- return;
83487
- });
83488
- if (this._nodeMark) {
83489
- this._highLightElements(this._nodeMark.getGraphics(), highlightNodes);
83490
- }
83491
- }
83492
- this._needClear = true;
83493
- }
83494
- _handleLinkRelatedClick(graphic) {
83495
- const allNodeElements = this._nodeMark.getGraphics();
83496
- if (!allNodeElements || !allNodeElements.length) {
83497
- return;
83498
- }
83499
- const allLinkElements = this._linkMark.getGraphics();
83500
- if (!allLinkElements || !allLinkElements.length) {
83501
- return;
83502
- }
83503
- const father = getDatumOfGraphic(graphic) ? 'parents' : 'source';
83504
- if (father === 'source') {
83505
- if (this._linkMark) {
83506
- allLinkElements.forEach(linkEl => {
83507
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83508
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83509
- });
83510
- }
83511
- if (this._nodeMark) {
83512
- allNodeElements.forEach(el => {
83513
- el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83514
- el.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83515
- });
83516
- }
83517
- }
83518
- else {
83519
- const curLinkDatum = getDatumOfGraphic(graphic);
83520
- const highlightNodes = [curLinkDatum.source, curLinkDatum.target];
83521
- const upstreamLinks = [];
83522
- const dividedLinks = array(curLinkDatum.datum);
83523
- dividedLinks.forEach(dividedLink => {
83524
- const parents = dividedLink.parents;
83525
- const len = parents.length;
83526
- for (let i = 0; i < len - 1; i++) {
83527
- const source = parents[i].key;
83528
- const target = parents[i + 1].key;
83529
- const value = dividedLink.value;
83530
- const existingItem = upstreamLinks.find(item => item.source === source && item.target === target);
83531
- upstreamLinks.push({
83532
- source: parents[i].key,
83533
- target: parents[i + 1].key,
83534
- value: dividedLink.value
83535
- });
83536
- if (existingItem) {
83537
- existingItem.value += value;
83538
- }
83539
- else {
83540
- upstreamLinks.push({ source, target, value });
83541
- }
83542
- }
83543
- });
83544
- allLinkElements.forEach(linkEl => {
83545
- const linkDatum = getDatumOfGraphic(linkEl);
83546
- const originalDatum = linkDatum.datum;
83547
- if (linkDatum.source === curLinkDatum.source && linkDatum.target === curLinkDatum.target) {
83548
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83549
- addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio: 1 });
83550
- return;
83551
- }
83552
- const selectedDatum = originalDatum
83553
- ? originalDatum.filter((entry) => {
83554
- const parentKeysList = entry.parents.map((item) => item.key);
83555
- return parentKeysList.includes(curLinkDatum.source) && parentKeysList.includes(curLinkDatum.target);
83556
- })
83557
- : null;
83558
- if (selectedDatum && selectedDatum.length) {
83559
- if (!highlightNodes.includes(linkDatum.source)) {
83560
- highlightNodes.push(linkDatum.source);
83561
- }
83562
- if (!highlightNodes.includes(linkDatum.target)) {
83563
- highlightNodes.push(linkDatum.target);
83564
- }
83565
- const val = selectedDatum
83566
- .filter((entry) => {
83567
- return entry.parents.some((par, index) => {
83568
- var _a;
83569
- return par.key === curLinkDatum.source && ((_a = entry.parents[index + 1]) === null || _a === void 0 ? void 0 : _a.key) === curLinkDatum.target;
83570
- });
83571
- })
83572
- .reduce((sum, d) => {
83573
- return (sum += d.value);
83574
- }, 0);
83575
- const ratio = val / linkDatum.value;
83576
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83577
- addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, { ratio });
83578
- return;
83579
- }
83580
- const upSelectedLink = upstreamLinks.find((upLink) => upLink.source === linkDatum.source && upLink.target === linkDatum.target);
83581
- if (upSelectedLink) {
83582
- if (!highlightNodes.includes(linkDatum.source)) {
83583
- highlightNodes.push(linkDatum.source);
83584
- }
83585
- if (!highlightNodes.includes(linkDatum.target)) {
83586
- highlightNodes.push(linkDatum.target);
83587
- }
83588
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
83589
- addRuntimeState(linkEl, exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
83590
- ratio: upSelectedLink.value / linkDatum.value
83591
- });
83592
- return;
83593
- }
83594
- linkEl.removeState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS);
83595
- linkEl.addState(exports.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, true);
83596
- return;
83597
- });
83598
- this._highLightElements(allNodeElements, highlightNodes);
83599
- }
83600
- this._needClear = true;
83601
- }
83602
83564
  _highLightElements(graphics, highlightNodes) {
83603
83565
  if (!graphics || !graphics.length) {
83604
83566
  return;
@@ -100439,7 +100401,6 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
100439
100401
  exports.STACK_FIELD_TOTAL_PERCENT = STACK_FIELD_TOTAL_PERCENT;
100440
100402
  exports.STACK_FIELD_TOTAL_TOP = STACK_FIELD_TOTAL_TOP;
100441
100403
  exports.SankeyChart = SankeyChart;
100442
- exports.SankeyChartSpecTransformer = SankeyChartSpecTransformer;
100443
100404
  exports.SankeySeries = SankeySeries;
100444
100405
  exports.ScatterChart = ScatterChart;
100445
100406
  exports.ScatterSeries = ScatterSeries;