@visactor/vchart-extension 1.13.22-alpha.0 → 1.13.22-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/build/index.js +256 -24
  2. package/build/index.min.js +2 -2
  3. package/cjs/charts/compare-sankey/compare-sankey.d.ts +1 -3
  4. package/cjs/charts/compare-sankey/compare-sankey.js +3 -24
  5. package/cjs/charts/compare-sankey/compare-sankey.js.map +1 -1
  6. package/cjs/charts/compare-sankey/utils.d.ts +8 -0
  7. package/cjs/charts/compare-sankey/utils.js +36 -2
  8. package/cjs/charts/compare-sankey/utils.js.map +1 -1
  9. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-data.d.ts +8 -0
  10. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-data.js +85 -0
  11. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-data.js.map +1 -0
  12. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-transformer.d.ts +7 -0
  13. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-transformer.js +25 -0
  14. package/cjs/charts/compare-sankey-diff/compare-sankey-diff-transformer.js.map +1 -0
  15. package/cjs/charts/compare-sankey-diff/compare-sankey-diff.d.ts +34 -0
  16. package/cjs/charts/compare-sankey-diff/compare-sankey-diff.js +98 -0
  17. package/cjs/charts/compare-sankey-diff/compare-sankey-diff.js.map +1 -0
  18. package/cjs/charts/compare-sankey-diff/index.d.ts +2 -0
  19. package/cjs/charts/compare-sankey-diff/index.js +20 -0
  20. package/cjs/charts/compare-sankey-diff/index.js.map +1 -0
  21. package/cjs/charts/compare-sankey-diff/interface.d.ts +24 -0
  22. package/cjs/charts/compare-sankey-diff/interface.js +6 -0
  23. package/cjs/charts/compare-sankey-diff/interface.js.map +1 -0
  24. package/cjs/charts/conversion-funnel/index.js +2 -1
  25. package/cjs/charts/sequence-scatter-kde/constant.js +1 -2
  26. package/cjs/charts/sequence-scatter-link/interface.js +2 -1
  27. package/cjs/components/bar-link/index.js +1 -2
  28. package/cjs/components/series-break/series-break.js +2 -1
  29. package/cjs/components/series-label/constant.js +1 -1
  30. package/cjs/components/series-label/index.js +1 -1
  31. package/cjs/components/series-label/series-label.js +1 -1
  32. package/cjs/components/series-label/type.js +1 -1
  33. package/cjs/components/series-label/util.js +1 -1
  34. package/cjs/index.d.ts +1 -0
  35. package/cjs/index.js +3 -2
  36. package/cjs/index.js.map +1 -1
  37. package/esm/charts/compare-sankey/compare-sankey.d.ts +1 -3
  38. package/esm/charts/compare-sankey/compare-sankey.js +4 -25
  39. package/esm/charts/compare-sankey/compare-sankey.js.map +1 -1
  40. package/esm/charts/compare-sankey/utils.d.ts +8 -0
  41. package/esm/charts/compare-sankey/utils.js +33 -0
  42. package/esm/charts/compare-sankey/utils.js.map +1 -1
  43. package/esm/charts/compare-sankey-diff/compare-sankey-diff-data.d.ts +8 -0
  44. package/esm/charts/compare-sankey-diff/compare-sankey-diff-data.js +77 -0
  45. package/esm/charts/compare-sankey-diff/compare-sankey-diff-data.js.map +1 -0
  46. package/esm/charts/compare-sankey-diff/compare-sankey-diff-transformer.d.ts +7 -0
  47. package/esm/charts/compare-sankey-diff/compare-sankey-diff-transformer.js +17 -0
  48. package/esm/charts/compare-sankey-diff/compare-sankey-diff-transformer.js.map +1 -0
  49. package/esm/charts/compare-sankey-diff/compare-sankey-diff.d.ts +34 -0
  50. package/esm/charts/compare-sankey-diff/compare-sankey-diff.js +97 -0
  51. package/esm/charts/compare-sankey-diff/compare-sankey-diff.js.map +1 -0
  52. package/esm/charts/compare-sankey-diff/index.d.ts +2 -0
  53. package/esm/charts/compare-sankey-diff/index.js +3 -0
  54. package/esm/charts/compare-sankey-diff/index.js.map +1 -0
  55. package/esm/charts/compare-sankey-diff/interface.d.ts +24 -0
  56. package/esm/charts/compare-sankey-diff/interface.js +2 -0
  57. package/esm/charts/compare-sankey-diff/interface.js.map +1 -0
  58. package/esm/charts/conversion-funnel/index.js +2 -1
  59. package/esm/charts/sequence-scatter-kde/constant.js +1 -2
  60. package/esm/charts/sequence-scatter-link/interface.js +2 -1
  61. package/esm/components/bar-link/index.js +1 -2
  62. package/esm/components/series-break/series-break.js +2 -1
  63. package/esm/components/series-label/constant.js +1 -1
  64. package/esm/components/series-label/index.js +1 -1
  65. package/esm/components/series-label/series-label.js +1 -1
  66. package/esm/components/series-label/type.js +1 -1
  67. package/esm/components/series-label/util.js +1 -1
  68. package/esm/index.d.ts +1 -0
  69. package/esm/index.js +2 -0
  70. package/esm/index.js.map +1 -1
  71. package/package.json +4 -4
package/build/index.js CHANGED
@@ -4471,6 +4471,34 @@
4471
4471
  }
4472
4472
  });
4473
4473
  };
4474
+ function getSubNodeDatum(allNodeElements, filter) {
4475
+ return allNodeElements.filter((n) => filter(n.data[0]));
4476
+ }
4477
+ function getNodeDatumInTree(nodes, filter) {
4478
+ const result = [];
4479
+ nodes.forEach((node) => {
4480
+ traverseTree([node], (node) => {
4481
+ if (filter(node)) {
4482
+ result.push(node);
4483
+ }
4484
+ });
4485
+ });
4486
+ return result;
4487
+ }
4488
+ function getNodeDatumInSubTree(subNodes, filter) {
4489
+ const list = [];
4490
+ subNodes.forEach((subNode) => {
4491
+ const { nodes } = subNode, result = __rest(subNode, ["nodes"]);
4492
+ result.datum = [];
4493
+ nodes.forEach((node) => {
4494
+ if (filter(node)) {
4495
+ result.datum.push(node);
4496
+ }
4497
+ });
4498
+ list.push(result);
4499
+ });
4500
+ return list;
4501
+ }
4474
4502
 
4475
4503
  class CompareSankeyChart extends vchart.SankeyChart {
4476
4504
  constructor() {
@@ -4682,34 +4710,13 @@
4682
4710
  }
4683
4711
  }
4684
4712
  getSubNodeDatum(filter) {
4685
- return this._nodeMark.getProductElements().filter((n) => filter(n.data[0]));
4713
+ return getSubNodeDatum(this._nodeMark.getProductElements(), filter);
4686
4714
  }
4687
4715
  getNodeDatumInTree(filter) {
4688
- const result = [];
4689
- const nodes = this._rawData.latestData[0].nodes;
4690
- nodes.forEach((node) => {
4691
- traverseTree([node], (node) => {
4692
- if (filter(node)) {
4693
- result.push(node);
4694
- }
4695
- });
4696
- });
4697
- return result;
4716
+ return getNodeDatumInTree(this._rawData.latestData[0].nodes, filter);
4698
4717
  }
4699
4718
  getNodeDatumInSubTree(filter) {
4700
- const list = [];
4701
- const subNodes = this._rawData.latestData[0].subNode;
4702
- subNodes.forEach((subNode) => {
4703
- const { nodes } = subNode, result = __rest(subNode, ["nodes"]);
4704
- result.datum = [];
4705
- nodes.forEach((node) => {
4706
- if (filter(node)) {
4707
- result.datum.push(node);
4708
- }
4709
- });
4710
- list.push(result);
4711
- });
4712
- return list;
4719
+ return getNodeDatumInSubTree(this._rawData.latestData[0].subNode, filter);
4713
4720
  }
4714
4721
  }
4715
4722
  CompareSankeySeries.type = 'compareSankey';
@@ -4721,6 +4728,228 @@
4721
4728
  }
4722
4729
  };
4723
4730
 
4731
+ class CompareSankeyDiffChartSpecTransformer extends vchart.SankeyChartSpecTransformer {
4732
+ constructor() {
4733
+ super(...arguments);
4734
+ this.seriesType = 'compareSankeyDiff';
4735
+ }
4736
+ transformSpec(spec) {
4737
+ super.transformSpec(spec);
4738
+ }
4739
+ _getDefaultSeriesSpec(spec) {
4740
+ const seriesSpec = super._getDefaultSeriesSpec(spec);
4741
+ seriesSpec.subNodeGap = spec.subNodeGap;
4742
+ seriesSpec.subNodeMinSize = spec.subNodeMinSize;
4743
+ seriesSpec.compareNodeColor = spec.compareNodeColor;
4744
+ seriesSpec.compareLinkColor = spec.compareLinkColor;
4745
+ return seriesSpec;
4746
+ }
4747
+ }
4748
+
4749
+ const compareSankeyDiffSubData = (data, opt) => {
4750
+ var _a, _b, _c, _d, _e, _f, _g;
4751
+ const viewData = data[0];
4752
+ if (!((_a = viewData.latestData) === null || _a === void 0 ? void 0 : _a.length)) {
4753
+ return {};
4754
+ }
4755
+ const subNodeMinSize = (_b = opt.subNodeMinSize) !== null && _b !== void 0 ? _b : 0;
4756
+ const subNodeGap = opt.subNodeGap;
4757
+ const subDataList = [];
4758
+ const sankeyLayoutTransform = viewData.dataSet.getTransform('sankeyLayout');
4759
+ const sankeyTransformOption = Object.assign({}, viewData.transformsArr.find(t => t.type === 'sankeyLayout').options);
4760
+ delete sankeyTransformOption.customLayout;
4761
+ const viewDataLatest = viewData.latestData[0];
4762
+ (_g = (_f = (_e = (_d = (_c = viewData.rawData) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.latestData) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.subNode) === null || _g === void 0 ? void 0 : _g.forEach((subGroup) => {
4763
+ const { nodes } = subGroup, rest = __rest(subGroup, ["nodes"]);
4764
+ const data = sankeyLayoutTransform([Object.assign({ nodes }, rest)], sankeyTransformOption);
4765
+ Object.keys(rest).forEach(key => {
4766
+ data[0].nodes.forEach((n) => {
4767
+ n[key] = rest[key];
4768
+ });
4769
+ });
4770
+ subDataList.push({ data: data, external: rest });
4771
+ });
4772
+ const subCount = subDataList.length;
4773
+ viewData.latestData[0].nodes.forEach((n, index) => {
4774
+ let currentY = n.y0;
4775
+ const totalSize = n.y1 - n.y0 - (subCount - 1) * subNodeGap;
4776
+ const totalValue = n.value;
4777
+ subDataList.forEach((subData) => {
4778
+ var _a;
4779
+ let subN = subData.data[0].nodes[index];
4780
+ if (subN.key !== n.key) {
4781
+ subN = subData.data[0].nodes.find((n) => n.key === n.key);
4782
+ }
4783
+ if (!subN) {
4784
+ return;
4785
+ }
4786
+ const percent = totalValue === 0 ? 0 : subN.value / totalValue;
4787
+ const nodeSize = Math.max(subNodeMinSize, totalSize * percent);
4788
+ const diffX = n.x0 - subN.x0;
4789
+ const lastY0 = subN.y0;
4790
+ const lastSize = subN.y1 - subN.y0;
4791
+ const sizeMultiply = nodeSize / lastSize;
4792
+ subN._compare_compute_temp = {
4793
+ diffX,
4794
+ lastY0,
4795
+ lastSize,
4796
+ sizeMultiply
4797
+ };
4798
+ subN.x0 = n.x0;
4799
+ subN.x1 = n.x1;
4800
+ subN.y0 = currentY;
4801
+ subN.y1 = currentY + nodeSize;
4802
+ currentY += nodeSize + subNodeGap;
4803
+ (_a = subN.sourceLinks) === null || _a === void 0 ? void 0 : _a.forEach(link => {
4804
+ var _a;
4805
+ link.type = subN.type;
4806
+ link.x0 = ((_a = link.x0) !== null && _a !== void 0 ? _a : 0) + diffX;
4807
+ link.thickness = link.thickness * sizeMultiply;
4808
+ link.y0 = (link.y0 - lastY0) * sizeMultiply + subN.y0;
4809
+ if (link.sourceRect) {
4810
+ link.sourceRect.x0 = subN.x0;
4811
+ link.sourceRect.x1 = subN.x1;
4812
+ link.sourceRect.y0 = subN.y0;
4813
+ link.sourceRect.y1 = subN.y1;
4814
+ }
4815
+ });
4816
+ });
4817
+ });
4818
+ subDataList.forEach((subData) => {
4819
+ subData.data[0].nodes.forEach((n) => {
4820
+ var _a;
4821
+ const { diffX, lastY0, sizeMultiply } = n._compare_compute_temp;
4822
+ (_a = n.targetLinks) === null || _a === void 0 ? void 0 : _a.forEach(link => {
4823
+ var _a;
4824
+ link.x1 = ((_a = link.x1) !== null && _a !== void 0 ? _a : 0) + diffX;
4825
+ link.y1 = (link.y1 - lastY0) * sizeMultiply + n.y0;
4826
+ if (link.targetRect) {
4827
+ link.targetRect.x0 = n.x0;
4828
+ link.targetRect.x1 = n.x1;
4829
+ link.targetRect.y0 = n.y0;
4830
+ link.targetRect.y1 = n.y1;
4831
+ }
4832
+ });
4833
+ });
4834
+ });
4835
+ const finalViewData = {
4836
+ columns: [],
4837
+ links: [],
4838
+ nodes: []
4839
+ };
4840
+ finalViewData.columns = viewDataLatest.columns.reduce((prev, cur, curIndex) => {
4841
+ prev.push(subDataList.reduce((prev, cur) => prev.concat(cur.data[0].columns[curIndex]), []));
4842
+ return prev;
4843
+ }, []);
4844
+ finalViewData.links = subDataList.reduce((prev, cur) => prev.concat(cur.data[0].links), []);
4845
+ finalViewData.nodes = subDataList.reduce((prev, cur) => prev.concat(cur.data[0].nodes), []);
4846
+ return [finalViewData];
4847
+ };
4848
+
4849
+ class CompareSankeyDiffChart extends vchart.SankeyChart {
4850
+ constructor() {
4851
+ super(...arguments);
4852
+ this.type = 'compareSankeyDiff';
4853
+ this.seriesType = CompareSankeyDiffSeries.type;
4854
+ this.transformerConstructor = CompareSankeyDiffChartSpecTransformer;
4855
+ }
4856
+ }
4857
+ CompareSankeyDiffChart.type = 'compareSankeyDiff';
4858
+ CompareSankeyDiffChart.transformerConstructor = CompareSankeyDiffChartSpecTransformer;
4859
+ class CompareSankeyDiffSeries extends vchart.SankeySeries {
4860
+ constructor() {
4861
+ super(...arguments);
4862
+ this.type = 'compareSankeyDiff';
4863
+ this._fillCompareNode = (datum) => {
4864
+ var _a, _b, _c, _d;
4865
+ const specAny = this._spec;
4866
+ if ((_a = specAny.compareNodeColor) === null || _a === void 0 ? void 0 : _a[datum.type]) {
4867
+ return specAny.compareNodeColor[datum.type];
4868
+ }
4869
+ return (_d = (_c = (_b = this._spec.node) === null || _b === void 0 ? void 0 : _b.style) === null || _c === void 0 ? void 0 : _c.fill) !== null && _d !== void 0 ? _d : this._fillByNode(datum);
4870
+ };
4871
+ this._fillCompareLink = (datum) => {
4872
+ var _a, _b, _c, _d;
4873
+ const specAny = this._spec;
4874
+ if ((_a = specAny.compareLinkColor) === null || _a === void 0 ? void 0 : _a[datum.type]) {
4875
+ return specAny.compareLinkColor[datum.type];
4876
+ }
4877
+ return (_d = (_c = (_b = this._spec.link) === null || _b === void 0 ? void 0 : _b.style) === null || _c === void 0 ? void 0 : _c.fill) !== null && _d !== void 0 ? _d : this._fillByLink(datum);
4878
+ };
4879
+ }
4880
+ initData() {
4881
+ var _a, _b;
4882
+ super.initData();
4883
+ const { dataSet } = this._option;
4884
+ const compareData = new DataView(dataSet, { name: `compare-sankey-diff-compare-data-${this.id}-data` });
4885
+ compareData.parse([this.getViewData()], { type: 'dataview' });
4886
+ vchart.registerDataSetInstanceTransform(this._dataSet, 'compareSankeyDiffSubData', compareSankeyDiffSubData);
4887
+ compareData.transform({
4888
+ type: 'compareSankeyDiffSubData',
4889
+ options: {
4890
+ rawData: () => this.getRawData(),
4891
+ valueField: this._valueField,
4892
+ nodeKey: this._spec.nodeKey,
4893
+ subNodeGap: (_a = this._spec.subNodeGap) !== null && _a !== void 0 ? _a : 2,
4894
+ subNodeMinSize: (_b = this._spec.subNodeMinSize) !== null && _b !== void 0 ? _b : 0
4895
+ }
4896
+ });
4897
+ this._nodesSeriesData.getDataView().parse([compareData], {
4898
+ type: 'dataview'
4899
+ });
4900
+ this._linksSeriesData.getDataView().parse([compareData], {
4901
+ type: 'dataview'
4902
+ });
4903
+ }
4904
+ compileData() {
4905
+ super.compileData();
4906
+ }
4907
+ _initLinkMarkStyle() {
4908
+ super._initLinkMarkStyle();
4909
+ if (this._spec.compareLinkColor) {
4910
+ this.setMarkStyle(this._linkMark, { fill: this._fillCompareLink }, 'normal', vchart.AttributeLevel.User_Mark);
4911
+ }
4912
+ }
4913
+ _initNodeMarkStyle() {
4914
+ super._initNodeMarkStyle();
4915
+ if (this._spec.compareNodeColor) {
4916
+ this.setMarkStyle(this._nodeMark, { fill: this._fillCompareNode }, 'normal', vchart.AttributeLevel.User_Mark);
4917
+ }
4918
+ }
4919
+ _handleClearEmpty(highlightState, blurState) {
4920
+ super._handleClearEmpty(highlightState, blurState);
4921
+ const allNodeElements = this._nodeMark.getProductElements();
4922
+ if (allNodeElements || !allNodeElements.length) {
4923
+ allNodeElements.forEach(el => {
4924
+ el.removeState(vchart.STATE_VALUE_ENUM.STATE_HOVER);
4925
+ });
4926
+ }
4927
+ const allLinkElements = this._linkMark.getProductElements();
4928
+ if (allLinkElements || !allLinkElements.length) {
4929
+ allLinkElements.forEach(el => {
4930
+ el.removeState(vchart.STATE_VALUE_ENUM.STATE_HOVER);
4931
+ });
4932
+ }
4933
+ }
4934
+ getSubNodeDatum(filter) {
4935
+ return getSubNodeDatum(this._nodeMark.getProductElements(), filter);
4936
+ }
4937
+ getNodeDatumInTree(filter) {
4938
+ return getNodeDatumInTree(this._rawData.latestData[0].nodes, filter);
4939
+ }
4940
+ getNodeDatumInSubTree(filter) {
4941
+ return getNodeDatumInSubTree(this._rawData.latestData[0].subNode, filter);
4942
+ }
4943
+ }
4944
+ CompareSankeyDiffSeries.type = 'compareSankeyDiff';
4945
+ const registerCompareSankeyDiffChart = (option) => {
4946
+ const vchartConstructor = (option === null || option === void 0 ? void 0 : option.VChart) || vchart.VChart;
4947
+ if (vchartConstructor) {
4948
+ vchartConstructor.useChart([CompareSankeyDiffChart]);
4949
+ vchartConstructor.useSeries([CompareSankeyDiffSeries]);
4950
+ }
4951
+ };
4952
+
4724
4953
  class Generator {
4725
4954
  static GenAutoIncrementId() {
4726
4955
  return Generator.auto_increment_id++;
@@ -14447,6 +14676,8 @@
14447
14676
  exports.BAR_LINK = BAR_LINK;
14448
14677
  exports.BarLinkComponent = BarLinkComponent;
14449
14678
  exports.CompareSankeyChart = CompareSankeyChart;
14679
+ exports.CompareSankeyDiffChart = CompareSankeyDiffChart;
14680
+ exports.CompareSankeyDiffSeries = CompareSankeyDiffSeries;
14450
14681
  exports.CompareSankeySeries = CompareSankeySeries;
14451
14682
  exports.ConversionFunnelChart = ConversionFunnelChart;
14452
14683
  exports.ConversionFunnelSeries = ConversionFunnelSeries;
@@ -14470,6 +14701,7 @@
14470
14701
  exports.getSeriesLabelConfig = getSeriesLabelConfig;
14471
14702
  exports.registerBarLink = registerBarLink;
14472
14703
  exports.registerCompareSankeyChart = registerCompareSankeyChart;
14704
+ exports.registerCompareSankeyDiffChart = registerCompareSankeyDiffChart;
14473
14705
  exports.registerConversionFunnelChart = registerConversionFunnelChart;
14474
14706
  exports.registerRankingBarChart = registerRankingBarChart;
14475
14707
  exports.registerRankingList = registerRankingList;