@visactor/vchart 1.10.2 → 1.10.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.
Files changed (75) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +7178 -7239
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/map/map-transformer.js +2 -1
  6. package/cjs/chart/map/map-transformer.js.map +1 -1
  7. package/cjs/compile/mark/compilable-mark.d.ts +2 -1
  8. package/cjs/compile/mark/compilable-mark.js +4 -0
  9. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  10. package/cjs/compile/mark/interface.d.ts +1 -0
  11. package/cjs/compile/mark/interface.js.map +1 -1
  12. package/cjs/component/axis/polar/axis.js +2 -1
  13. package/cjs/component/axis/polar/axis.js.map +1 -1
  14. package/cjs/component/label/total-label.js +8 -5
  15. package/cjs/component/label/total-label.js.map +1 -1
  16. package/cjs/core/index.d.ts +1 -1
  17. package/cjs/core/index.js +1 -1
  18. package/cjs/core/index.js.map +1 -1
  19. package/cjs/core/vchart.js +1 -1
  20. package/cjs/core/vchart.js.map +1 -1
  21. package/cjs/data/transforms/map.js +4 -2
  22. package/cjs/data/transforms/map.js.map +1 -1
  23. package/cjs/plugin/components/tooltip-handler/base.js +3 -3
  24. package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
  25. package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  26. package/cjs/series/base/base-series.d.ts +1 -0
  27. package/cjs/series/base/base-series.js +3 -0
  28. package/cjs/series/base/base-series.js.map +1 -1
  29. package/cjs/series/interface/series.d.ts +1 -0
  30. package/cjs/series/interface/series.js.map +1 -1
  31. package/cjs/series/map/interface.d.ts +1 -0
  32. package/cjs/series/map/interface.js.map +1 -1
  33. package/cjs/series/map/map.js +8 -2
  34. package/cjs/series/map/map.js.map +1 -1
  35. package/cjs/series/sankey/sankey.d.ts +2 -1
  36. package/cjs/series/sankey/sankey.js +50 -118
  37. package/cjs/series/sankey/sankey.js.map +1 -1
  38. package/cjs/series/word-cloud/base.js +3 -13
  39. package/cjs/series/word-cloud/base.js.map +1 -1
  40. package/esm/chart/map/map-transformer.js +2 -1
  41. package/esm/chart/map/map-transformer.js.map +1 -1
  42. package/esm/compile/mark/compilable-mark.d.ts +2 -1
  43. package/esm/compile/mark/compilable-mark.js +4 -0
  44. package/esm/compile/mark/compilable-mark.js.map +1 -1
  45. package/esm/compile/mark/interface.d.ts +1 -0
  46. package/esm/compile/mark/interface.js.map +1 -1
  47. package/esm/component/axis/polar/axis.js +2 -1
  48. package/esm/component/axis/polar/axis.js.map +1 -1
  49. package/esm/component/label/total-label.js +8 -5
  50. package/esm/component/label/total-label.js.map +1 -1
  51. package/esm/core/index.d.ts +1 -1
  52. package/esm/core/index.js +1 -1
  53. package/esm/core/index.js.map +1 -1
  54. package/esm/core/vchart.js +1 -1
  55. package/esm/core/vchart.js.map +1 -1
  56. package/esm/data/transforms/map.js +4 -2
  57. package/esm/data/transforms/map.js.map +1 -1
  58. package/esm/plugin/components/tooltip-handler/base.js +3 -3
  59. package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
  60. package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  61. package/esm/series/base/base-series.d.ts +1 -0
  62. package/esm/series/base/base-series.js +3 -0
  63. package/esm/series/base/base-series.js.map +1 -1
  64. package/esm/series/interface/series.d.ts +1 -0
  65. package/esm/series/interface/series.js.map +1 -1
  66. package/esm/series/map/interface.d.ts +1 -0
  67. package/esm/series/map/interface.js.map +1 -1
  68. package/esm/series/map/map.js +8 -2
  69. package/esm/series/map/map.js.map +1 -1
  70. package/esm/series/sankey/sankey.d.ts +2 -1
  71. package/esm/series/sankey/sankey.js +51 -119
  72. package/esm/series/sankey/sankey.js.map +1 -1
  73. package/esm/series/word-cloud/base.js +4 -14
  74. package/esm/series/word-cloud/base.js.map +1 -1
  75. package/package.json +14 -14
@@ -5,7 +5,7 @@ import type { Datum } from '../../typings';
5
5
  import { SeriesData } from '../base/series-data';
6
6
  import type { ISankeySeriesSpec } from './interface';
7
7
  import type { ExtendEventParam } from '../../event/interface';
8
- import type { IElement, IGlyphElement } from '@visactor/vgrammar-core';
8
+ import type { IElement, IGlyphElement, IMark as IVgrammarMark } from '@visactor/vgrammar-core';
9
9
  import type { IMark } from '../../mark/interface';
10
10
  export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpec> extends CartesianSeries<T> {
11
11
  static readonly type: string;
@@ -46,6 +46,7 @@ export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpe
46
46
  protected _handleLinkAdjacencyClick: (element: IGlyphElement) => void;
47
47
  protected _handleNodeRelatedClick: (element: IElement) => void;
48
48
  protected _handleLinkRelatedClick: (element: IGlyphElement) => void;
49
+ protected _highLightElements(vGrammarElements: IVgrammarMark['elements'], highlightNodes: string[]): void;
49
50
  protected initTooltip(): void;
50
51
  _setNodeOrdinalColorScale(): void;
51
52
  getNodeList(): any;
@@ -17,26 +17,24 @@ class SankeySeries extends cartesian_1.CartesianSeries {
17
17
  const element = params.item;
18
18
  element && element.mark.id().includes("node") ? this._handleNodeRelatedClick(element) : element && element.mark.id().includes("link") ? this._handleLinkRelatedClick(element) : this._handleClearEmpty();
19
19
  }, this._handleClearEmpty = () => {
20
- const nodeVGrammarMark = this._nodeMark.getProduct();
21
- if (!nodeVGrammarMark || !nodeVGrammarMark.elements || !nodeVGrammarMark.elements.length) return;
22
- const allNodeElements = nodeVGrammarMark.elements, linkVGrammarMark = this._linkMark.getProduct();
23
- if (!linkVGrammarMark || !linkVGrammarMark.elements || !linkVGrammarMark.elements.length) return;
24
- const allLinkElements = linkVGrammarMark.elements, labelVGrammarMark = this._labelMark.getProduct();
25
- if (!labelVGrammarMark || !labelVGrammarMark.elements || !labelVGrammarMark.elements.length) return;
26
- const allLabelElements = labelVGrammarMark.elements;
27
- allNodeElements.forEach((el => {
20
+ const allNodeElements = this._nodeMark.getProductElements();
21
+ if (!allNodeElements || !allNodeElements.length) return;
22
+ const allLinkElements = this._linkMark.getProductElements();
23
+ if (!allLinkElements || !allLinkElements.length) return;
24
+ const allLabelElements = this._labelMark.getProductElements();
25
+ allLabelElements && allLabelElements.length && (allNodeElements.forEach((el => {
28
26
  el.clearStates();
29
27
  })), allLinkElements.forEach((el => {
30
28
  el.clearStates();
31
29
  })), allLabelElements.forEach((el => {
32
30
  el.clearStates();
33
- }));
31
+ })));
34
32
  }, this._handleNodeAdjacencyClick = element => {
35
33
  const nodeDatum = element.getDatum(), highlightNodes = [ nodeDatum.key ];
36
34
  if (this._linkMark) {
37
- const vGrammarMark = this._linkMark.getProduct();
38
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
39
- vGrammarMark.elements.forEach(((linkEl, i) => {
35
+ const allLinkElements = this._linkMark.getProductElements();
36
+ if (!allLinkElements || !allLinkElements.length) return;
37
+ allLinkElements.forEach(((linkEl, i) => {
40
38
  linkEl.clearStates();
41
39
  const linkDatum = linkEl.getDatum(), father = (null == linkDatum ? void 0 : linkDatum.parents) ? "parents" : "source";
42
40
  if ((0, vutils_1.array)(linkDatum[father]).includes(nodeDatum.key)) {
@@ -53,52 +51,27 @@ class SankeySeries extends cartesian_1.CartesianSeries {
53
51
  } else linkDatum.target === nodeDatum.key ? highlightNodes.includes(linkDatum.source) || highlightNodes.push(linkDatum.source) : linkEl.useStates([ "blur" ]);
54
52
  }));
55
53
  }
56
- if (this._nodeMark) {
57
- const vGrammarMark = this._nodeMark.getProduct();
58
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
59
- vGrammarMark.elements.forEach((el => {
60
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
61
- }));
62
- }
63
- if (this._labelMark) {
64
- const vGrammarMark = this._labelMark.getProduct();
65
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
66
- vGrammarMark.elements.forEach((el => {
67
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
68
- }));
69
- }
54
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
55
+ this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
70
56
  }, this._handleLinkAdjacencyClick = element => {
71
57
  const curLinkDatum = element.getDatum(), highlightNodes = [ curLinkDatum.source, curLinkDatum.target ];
72
58
  if (this._linkMark) {
73
- const vGrammarMark = this._linkMark.getProduct();
74
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
75
- vGrammarMark.elements.forEach((linkEl => {
59
+ const allLinkElements = this._linkMark.getProductElements();
60
+ if (!allLinkElements || !allLinkElements.length) return;
61
+ allLinkElements.forEach((linkEl => {
76
62
  linkEl.clearStates(), linkEl === element ? linkEl.addState("selected", {
77
63
  ratio: 1
78
64
  }) : linkEl.useStates([ "blur" ]);
79
65
  }));
80
66
  }
81
- if (this._nodeMark) {
82
- const vGrammarMark = this._nodeMark.getProduct();
83
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
84
- vGrammarMark.elements.forEach((el => {
85
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
86
- }));
87
- }
88
- if (this._labelMark) {
89
- const vGrammarMark = this._labelMark.getProduct();
90
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
91
- vGrammarMark.elements.forEach((el => {
92
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
93
- }));
94
- }
67
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
68
+ this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
95
69
  }, this._handleNodeRelatedClick = element => {
96
70
  var _a;
97
- const nodeDatum = element.getDatum(), nodeVGrammarMark = this._nodeMark.getProduct();
98
- if (!nodeVGrammarMark || !nodeVGrammarMark.elements || !nodeVGrammarMark.elements.length) return;
99
- const allNodeElements = nodeVGrammarMark.elements, linkVGrammarMark = this._linkMark.getProduct();
100
- if (!linkVGrammarMark || !linkVGrammarMark.elements || !linkVGrammarMark.elements.length) return;
101
- const allLinkElements = linkVGrammarMark.elements;
71
+ const nodeDatum = element.getDatum(), allNodeElements = this._nodeMark.getProductElements();
72
+ if (!allNodeElements || !allNodeElements.length) return;
73
+ const allLinkElements = this._linkMark.getProductElements();
74
+ if (!allLinkElements || !allLinkElements.length) return;
102
75
  if ("source" === ((null === (_a = allLinkElements[0].getDatum()) || void 0 === _a ? void 0 : _a.parents) ? "parents" : "source")) {
103
76
  const highlightNodes = [ nodeDatum.key ], highlightLinks = [];
104
77
  if (allLinkElements.forEach(((linkEl, i) => {
@@ -142,27 +115,15 @@ class SankeySeries extends cartesian_1.CartesianSeries {
142
115
  }
143
116
  }
144
117
  })), this._linkMark) {
145
- const vGrammarMark = this._linkMark.getProduct();
146
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
147
- vGrammarMark.elements.forEach(((linkEl, i) => {
118
+ const allLinkElements = this._linkMark.getProductElements();
119
+ if (!allLinkElements || !allLinkElements.length) return;
120
+ allLinkElements.forEach(((linkEl, i) => {
148
121
  var _a;
149
122
  linkEl.clearStates(), highlightLinks.includes(null !== (_a = linkEl.getDatum().key) && void 0 !== _a ? _a : linkEl.getDatum().index) ? linkEl.useStates([ "selected" ]) : linkEl.useStates([ "blur" ]);
150
123
  }));
151
124
  }
152
- if (this._nodeMark) {
153
- const vGrammarMark = this._nodeMark.getProduct();
154
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
155
- vGrammarMark.elements.forEach((el => {
156
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
157
- }));
158
- }
159
- if (this._labelMark) {
160
- const vGrammarMark = this._labelMark.getProduct();
161
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
162
- vGrammarMark.elements.forEach((el => {
163
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
164
- }));
165
- }
125
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
126
+ this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
166
127
  } else {
167
128
  const highlightNodes = [ nodeDatum.key ], upstreamLinks = nodeDatum.targetLinks.reduce(((res, link) => ((0,
168
129
  vutils_1.array)(link.datum).forEach((dividedLink => {
@@ -176,7 +137,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
176
137
  });
177
138
  }
178
139
  })), res)), []);
179
- if (allLinkElements.forEach(((linkEl, i) => {
140
+ allLinkElements.forEach(((linkEl, i) => {
180
141
  linkEl.clearStates();
181
142
  const linkDatum = linkEl.getDatum(), father = (null == linkDatum ? void 0 : linkDatum.parents) ? "parents" : "source", originalDatum = linkDatum.datum, selectedDatum = originalDatum ? originalDatum.filter((entry => entry[father].some((par => par.key === nodeDatum.key)))) : null, upSelectedLink = upstreamLinks.find((upLink => upLink.source === linkDatum.source && upLink.target === linkDatum.target));
182
143
  if (selectedDatum && selectedDatum.length) {
@@ -193,53 +154,30 @@ class SankeySeries extends cartesian_1.CartesianSeries {
193
154
  ratio: upSelectedLink.value / linkDatum.value
194
155
  });
195
156
  linkEl.useStates([ "blur" ]);
196
- })), this._nodeMark) {
197
- const vGrammarMark = this._nodeMark.getProduct();
198
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
199
- vGrammarMark.elements.forEach((el => {
200
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
201
- }));
202
- }
203
- if (this._labelMark) {
204
- const vGrammarMark = this._labelMark.getProduct();
205
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
206
- vGrammarMark.elements.forEach((el => {
207
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
208
- }));
209
- }
157
+ })), this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
158
+ this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
210
159
  }
211
160
  }, this._handleLinkRelatedClick = element => {
212
161
  var _a;
213
- const nodeVGrammarMark = this._nodeMark.getProduct();
214
- if (!nodeVGrammarMark || !nodeVGrammarMark.elements || !nodeVGrammarMark.elements.length) return;
215
- const allNodeElements = nodeVGrammarMark.elements, linkVGrammarMark = this._linkMark.getProduct();
216
- if (!linkVGrammarMark || !linkVGrammarMark.elements || !linkVGrammarMark.elements.length) return;
217
- const allLinkElements = linkVGrammarMark.elements;
162
+ const allNodeElements = this._nodeMark.getProductElements();
163
+ if (!allNodeElements || !allNodeElements.length) return;
164
+ const allLinkElements = this._linkMark.getProductElements();
165
+ if (!allLinkElements || !allLinkElements.length) return;
218
166
  if ("source" === ((null === (_a = element.getDatum()) || void 0 === _a ? void 0 : _a.parents) ? "parents" : "source")) {
219
- if (this._linkMark) {
220
- const vGrammarMark = this._linkMark.getProduct();
221
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
222
- vGrammarMark.elements.forEach((linkEl => {
223
- linkEl.clearStates();
224
- }));
225
- }
226
- if (this._nodeMark) {
227
- const vGrammarMark = this._nodeMark.getProduct();
228
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
229
- vGrammarMark.elements.forEach((el => {
230
- el.clearStates();
231
- }));
232
- }
233
- if (this._labelMark) {
234
- const vGrammarMark = this._labelMark.getProduct();
235
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
236
- vGrammarMark.elements.forEach((el => {
167
+ if (this._linkMark && allLinkElements.forEach((linkEl => {
168
+ linkEl.clearStates();
169
+ })), this._nodeMark && allNodeElements.forEach((el => {
170
+ el.clearStates();
171
+ })), this._labelMark) {
172
+ const allLabelElements = this._labelMark.getProductElements();
173
+ if (!allLabelElements || !allLabelElements.length) return;
174
+ allLabelElements.forEach((el => {
237
175
  el.clearStates();
238
176
  }));
239
177
  }
240
178
  } else {
241
179
  const curLinkDatum = element.getDatum(), highlightNodes = [ curLinkDatum.source, curLinkDatum.target ], upstreamLinks = [];
242
- if ((0, vutils_1.array)(curLinkDatum.datum).forEach((dividedLink => {
180
+ (0, vutils_1.array)(curLinkDatum.datum).forEach((dividedLink => {
243
181
  const parents = dividedLink.parents, len = parents.length;
244
182
  for (let i = 0; i < len - 1; i++) {
245
183
  const source = parents[i].key, target = parents[i + 1].key, value = dividedLink.value, existingItem = upstreamLinks.find((item => item.source === source && item.target === target));
@@ -282,15 +220,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
282
220
  ratio: upSelectedLink.value / linkDatum.value
283
221
  });
284
222
  linkEl.useStates([ "blur" ]);
285
- })), allNodeElements.forEach((el => {
286
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
287
- })), this._labelMark) {
288
- const vGrammarMark = this._labelMark.getProduct();
289
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
290
- vGrammarMark.elements.forEach((el => {
291
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
292
- }));
293
- }
223
+ })), this._highLightElements(allNodeElements, highlightNodes), this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
294
224
  }
295
225
  };
296
226
  }
@@ -395,10 +325,9 @@ class SankeySeries extends cartesian_1.CartesianSeries {
395
325
  }
396
326
  }
397
327
  initMark() {
398
- var _a, _b, _c, _d, _e;
328
+ var _a, _b, _c, _d;
399
329
  const nodeMark = this._createMark(SankeySeries.mark.node, {
400
330
  isSeriesMark: !0,
401
- key: constant_1.DEFAULT_DATA_INDEX,
402
331
  dataView: this._nodesSeriesData.getDataView(),
403
332
  dataProductId: this._nodesSeriesData.getProductId(),
404
333
  customShape: null === (_a = this._spec.node) || void 0 === _a ? void 0 : _a.customShape,
@@ -406,15 +335,13 @@ class SankeySeries extends cartesian_1.CartesianSeries {
406
335
  });
407
336
  nodeMark && (nodeMark.setZIndex(this._nodeLayoutZIndex), this._nodeMark = nodeMark);
408
337
  const linkMark = this._createMark(SankeySeries.mark.link, {
409
- key: constant_1.DEFAULT_DATA_INDEX,
410
338
  dataView: this._linksSeriesData.getDataView(),
411
339
  dataProductId: this._linksSeriesData.getProductId(),
412
340
  customShape: null === (_c = this._spec.link) || void 0 === _c ? void 0 : _c.customShape,
413
341
  stateSort: null === (_d = this._spec.link) || void 0 === _d ? void 0 : _d.stateSort
414
342
  });
415
- if (linkMark && (this._linkMark = linkMark), null === (_e = this._spec.label) || void 0 === _e ? void 0 : _e.visible) {
343
+ if (linkMark && (this._linkMark = linkMark), this._spec.label && this._spec.label.visible) {
416
344
  const labelMark = this._createMark(SankeySeries.mark.label, {
417
- key: constant_1.DEFAULT_DATA_INDEX,
418
345
  dataView: this._nodesSeriesData.getDataView(),
419
346
  dataProductId: this._nodesSeriesData.getProductId()
420
347
  });
@@ -614,6 +541,11 @@ class SankeySeries extends cartesian_1.CartesianSeries {
614
541
  linksSeriesDataUpdate() {
615
542
  this._linksSeriesData.updateData();
616
543
  }
544
+ _highLightElements(vGrammarElements, highlightNodes) {
545
+ vGrammarElements && vGrammarElements.length && vGrammarElements.forEach((el => {
546
+ el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
547
+ }));
548
+ }
617
549
  initTooltip() {
618
550
  this._tooltipHelper = new tooltip_helper_1.SankeySeriesTooltipHelper(this), this._nodeMark && this._tooltipHelper.activeTriggerSet.mark.add(this._nodeMark),
619
551
  this._linkMark && this._tooltipHelper.activeTriggerSet.mark.add(this._linkMark),