@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;
@@ -20,7 +20,7 @@ import { STATE_VALUE_ENUM } from "../../compile/mark/interface";
20
20
 
21
21
  import { DataView } from "@visactor/vdataset";
22
22
 
23
- import { LayoutZIndex, AttributeLevel, Event_Bubble_Level, DEFAULT_DATA_INDEX } from "../../constant";
23
+ import { LayoutZIndex, AttributeLevel, Event_Bubble_Level } from "../../constant";
24
24
 
25
25
  import { SeriesData } from "../base/series-data";
26
26
 
@@ -58,26 +58,24 @@ export class SankeySeries extends CartesianSeries {
58
58
  const element = params.item;
59
59
  element && element.mark.id().includes("node") ? this._handleNodeRelatedClick(element) : element && element.mark.id().includes("link") ? this._handleLinkRelatedClick(element) : this._handleClearEmpty();
60
60
  }, this._handleClearEmpty = () => {
61
- const nodeVGrammarMark = this._nodeMark.getProduct();
62
- if (!nodeVGrammarMark || !nodeVGrammarMark.elements || !nodeVGrammarMark.elements.length) return;
63
- const allNodeElements = nodeVGrammarMark.elements, linkVGrammarMark = this._linkMark.getProduct();
64
- if (!linkVGrammarMark || !linkVGrammarMark.elements || !linkVGrammarMark.elements.length) return;
65
- const allLinkElements = linkVGrammarMark.elements, labelVGrammarMark = this._labelMark.getProduct();
66
- if (!labelVGrammarMark || !labelVGrammarMark.elements || !labelVGrammarMark.elements.length) return;
67
- const allLabelElements = labelVGrammarMark.elements;
68
- allNodeElements.forEach((el => {
61
+ const allNodeElements = this._nodeMark.getProductElements();
62
+ if (!allNodeElements || !allNodeElements.length) return;
63
+ const allLinkElements = this._linkMark.getProductElements();
64
+ if (!allLinkElements || !allLinkElements.length) return;
65
+ const allLabelElements = this._labelMark.getProductElements();
66
+ allLabelElements && allLabelElements.length && (allNodeElements.forEach((el => {
69
67
  el.clearStates();
70
68
  })), allLinkElements.forEach((el => {
71
69
  el.clearStates();
72
70
  })), allLabelElements.forEach((el => {
73
71
  el.clearStates();
74
- }));
72
+ })));
75
73
  }, this._handleNodeAdjacencyClick = element => {
76
74
  const nodeDatum = element.getDatum(), highlightNodes = [ nodeDatum.key ];
77
75
  if (this._linkMark) {
78
- const vGrammarMark = this._linkMark.getProduct();
79
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
80
- vGrammarMark.elements.forEach(((linkEl, i) => {
76
+ const allLinkElements = this._linkMark.getProductElements();
77
+ if (!allLinkElements || !allLinkElements.length) return;
78
+ allLinkElements.forEach(((linkEl, i) => {
81
79
  linkEl.clearStates();
82
80
  const linkDatum = linkEl.getDatum(), father = (null == linkDatum ? void 0 : linkDatum.parents) ? "parents" : "source";
83
81
  if (array(linkDatum[father]).includes(nodeDatum.key)) {
@@ -94,52 +92,27 @@ export class SankeySeries extends CartesianSeries {
94
92
  } else linkDatum.target === nodeDatum.key ? highlightNodes.includes(linkDatum.source) || highlightNodes.push(linkDatum.source) : linkEl.useStates([ "blur" ]);
95
93
  }));
96
94
  }
97
- if (this._nodeMark) {
98
- const vGrammarMark = this._nodeMark.getProduct();
99
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
100
- vGrammarMark.elements.forEach((el => {
101
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
102
- }));
103
- }
104
- if (this._labelMark) {
105
- const vGrammarMark = this._labelMark.getProduct();
106
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
107
- vGrammarMark.elements.forEach((el => {
108
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
109
- }));
110
- }
95
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
96
+ this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
111
97
  }, this._handleLinkAdjacencyClick = element => {
112
98
  const curLinkDatum = element.getDatum(), highlightNodes = [ curLinkDatum.source, curLinkDatum.target ];
113
99
  if (this._linkMark) {
114
- const vGrammarMark = this._linkMark.getProduct();
115
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
116
- vGrammarMark.elements.forEach((linkEl => {
100
+ const allLinkElements = this._linkMark.getProductElements();
101
+ if (!allLinkElements || !allLinkElements.length) return;
102
+ allLinkElements.forEach((linkEl => {
117
103
  linkEl.clearStates(), linkEl === element ? linkEl.addState("selected", {
118
104
  ratio: 1
119
105
  }) : linkEl.useStates([ "blur" ]);
120
106
  }));
121
107
  }
122
- if (this._nodeMark) {
123
- const vGrammarMark = this._nodeMark.getProduct();
124
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
125
- vGrammarMark.elements.forEach((el => {
126
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
127
- }));
128
- }
129
- if (this._labelMark) {
130
- const vGrammarMark = this._labelMark.getProduct();
131
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
132
- vGrammarMark.elements.forEach((el => {
133
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
134
- }));
135
- }
108
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
109
+ this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
136
110
  }, this._handleNodeRelatedClick = element => {
137
111
  var _a;
138
- const nodeDatum = element.getDatum(), nodeVGrammarMark = this._nodeMark.getProduct();
139
- if (!nodeVGrammarMark || !nodeVGrammarMark.elements || !nodeVGrammarMark.elements.length) return;
140
- const allNodeElements = nodeVGrammarMark.elements, linkVGrammarMark = this._linkMark.getProduct();
141
- if (!linkVGrammarMark || !linkVGrammarMark.elements || !linkVGrammarMark.elements.length) return;
142
- const allLinkElements = linkVGrammarMark.elements;
112
+ const nodeDatum = element.getDatum(), allNodeElements = this._nodeMark.getProductElements();
113
+ if (!allNodeElements || !allNodeElements.length) return;
114
+ const allLinkElements = this._linkMark.getProductElements();
115
+ if (!allLinkElements || !allLinkElements.length) return;
143
116
  if ("source" === ((null === (_a = allLinkElements[0].getDatum()) || void 0 === _a ? void 0 : _a.parents) ? "parents" : "source")) {
144
117
  const highlightNodes = [ nodeDatum.key ], highlightLinks = [];
145
118
  if (allLinkElements.forEach(((linkEl, i) => {
@@ -183,27 +156,15 @@ export class SankeySeries extends CartesianSeries {
183
156
  }
184
157
  }
185
158
  })), this._linkMark) {
186
- const vGrammarMark = this._linkMark.getProduct();
187
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
188
- vGrammarMark.elements.forEach(((linkEl, i) => {
159
+ const allLinkElements = this._linkMark.getProductElements();
160
+ if (!allLinkElements || !allLinkElements.length) return;
161
+ allLinkElements.forEach(((linkEl, i) => {
189
162
  var _a;
190
163
  linkEl.clearStates(), highlightLinks.includes(null !== (_a = linkEl.getDatum().key) && void 0 !== _a ? _a : linkEl.getDatum().index) ? linkEl.useStates([ "selected" ]) : linkEl.useStates([ "blur" ]);
191
164
  }));
192
165
  }
193
- if (this._nodeMark) {
194
- const vGrammarMark = this._nodeMark.getProduct();
195
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
196
- vGrammarMark.elements.forEach((el => {
197
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
198
- }));
199
- }
200
- if (this._labelMark) {
201
- const vGrammarMark = this._labelMark.getProduct();
202
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
203
- vGrammarMark.elements.forEach((el => {
204
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
205
- }));
206
- }
166
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
167
+ this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
207
168
  } else {
208
169
  const highlightNodes = [ nodeDatum.key ], upstreamLinks = nodeDatum.targetLinks.reduce(((res, link) => (array(link.datum).forEach((dividedLink => {
209
170
  const parents = dividedLink.parents, len = parents.length;
@@ -216,7 +177,7 @@ export class SankeySeries extends CartesianSeries {
216
177
  });
217
178
  }
218
179
  })), res)), []);
219
- if (allLinkElements.forEach(((linkEl, i) => {
180
+ allLinkElements.forEach(((linkEl, i) => {
220
181
  linkEl.clearStates();
221
182
  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));
222
183
  if (selectedDatum && selectedDatum.length) {
@@ -233,53 +194,30 @@ export class SankeySeries extends CartesianSeries {
233
194
  ratio: upSelectedLink.value / linkDatum.value
234
195
  });
235
196
  linkEl.useStates([ "blur" ]);
236
- })), this._nodeMark) {
237
- const vGrammarMark = this._nodeMark.getProduct();
238
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
239
- vGrammarMark.elements.forEach((el => {
240
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
241
- }));
242
- }
243
- if (this._labelMark) {
244
- const vGrammarMark = this._labelMark.getProduct();
245
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
246
- vGrammarMark.elements.forEach((el => {
247
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
248
- }));
249
- }
197
+ })), this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
198
+ this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
250
199
  }
251
200
  }, this._handleLinkRelatedClick = element => {
252
201
  var _a;
253
- const nodeVGrammarMark = this._nodeMark.getProduct();
254
- if (!nodeVGrammarMark || !nodeVGrammarMark.elements || !nodeVGrammarMark.elements.length) return;
255
- const allNodeElements = nodeVGrammarMark.elements, linkVGrammarMark = this._linkMark.getProduct();
256
- if (!linkVGrammarMark || !linkVGrammarMark.elements || !linkVGrammarMark.elements.length) return;
257
- const allLinkElements = linkVGrammarMark.elements;
202
+ const allNodeElements = this._nodeMark.getProductElements();
203
+ if (!allNodeElements || !allNodeElements.length) return;
204
+ const allLinkElements = this._linkMark.getProductElements();
205
+ if (!allLinkElements || !allLinkElements.length) return;
258
206
  if ("source" === ((null === (_a = element.getDatum()) || void 0 === _a ? void 0 : _a.parents) ? "parents" : "source")) {
259
- if (this._linkMark) {
260
- const vGrammarMark = this._linkMark.getProduct();
261
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
262
- vGrammarMark.elements.forEach((linkEl => {
263
- linkEl.clearStates();
264
- }));
265
- }
266
- if (this._nodeMark) {
267
- const vGrammarMark = this._nodeMark.getProduct();
268
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
269
- vGrammarMark.elements.forEach((el => {
270
- el.clearStates();
271
- }));
272
- }
273
- if (this._labelMark) {
274
- const vGrammarMark = this._labelMark.getProduct();
275
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
276
- vGrammarMark.elements.forEach((el => {
207
+ if (this._linkMark && allLinkElements.forEach((linkEl => {
208
+ linkEl.clearStates();
209
+ })), this._nodeMark && allNodeElements.forEach((el => {
210
+ el.clearStates();
211
+ })), this._labelMark) {
212
+ const allLabelElements = this._labelMark.getProductElements();
213
+ if (!allLabelElements || !allLabelElements.length) return;
214
+ allLabelElements.forEach((el => {
277
215
  el.clearStates();
278
216
  }));
279
217
  }
280
218
  } else {
281
219
  const curLinkDatum = element.getDatum(), highlightNodes = [ curLinkDatum.source, curLinkDatum.target ], upstreamLinks = [];
282
- if (array(curLinkDatum.datum).forEach((dividedLink => {
220
+ array(curLinkDatum.datum).forEach((dividedLink => {
283
221
  const parents = dividedLink.parents, len = parents.length;
284
222
  for (let i = 0; i < len - 1; i++) {
285
223
  const source = parents[i].key, target = parents[i + 1].key, value = dividedLink.value, existingItem = upstreamLinks.find((item => item.source === source && item.target === target));
@@ -322,15 +260,7 @@ export class SankeySeries extends CartesianSeries {
322
260
  ratio: upSelectedLink.value / linkDatum.value
323
261
  });
324
262
  linkEl.useStates([ "blur" ]);
325
- })), allNodeElements.forEach((el => {
326
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
327
- })), this._labelMark) {
328
- const vGrammarMark = this._labelMark.getProduct();
329
- if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) return;
330
- vGrammarMark.elements.forEach((el => {
331
- el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
332
- }));
333
- }
263
+ })), this._highLightElements(allNodeElements, highlightNodes), this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
334
264
  }
335
265
  };
336
266
  }
@@ -432,10 +362,9 @@ export class SankeySeries extends CartesianSeries {
432
362
  }
433
363
  }
434
364
  initMark() {
435
- var _a, _b, _c, _d, _e;
365
+ var _a, _b, _c, _d;
436
366
  const nodeMark = this._createMark(SankeySeries.mark.node, {
437
367
  isSeriesMark: !0,
438
- key: DEFAULT_DATA_INDEX,
439
368
  dataView: this._nodesSeriesData.getDataView(),
440
369
  dataProductId: this._nodesSeriesData.getProductId(),
441
370
  customShape: null === (_a = this._spec.node) || void 0 === _a ? void 0 : _a.customShape,
@@ -443,15 +372,13 @@ export class SankeySeries extends CartesianSeries {
443
372
  });
444
373
  nodeMark && (nodeMark.setZIndex(this._nodeLayoutZIndex), this._nodeMark = nodeMark);
445
374
  const linkMark = this._createMark(SankeySeries.mark.link, {
446
- key: DEFAULT_DATA_INDEX,
447
375
  dataView: this._linksSeriesData.getDataView(),
448
376
  dataProductId: this._linksSeriesData.getProductId(),
449
377
  customShape: null === (_c = this._spec.link) || void 0 === _c ? void 0 : _c.customShape,
450
378
  stateSort: null === (_d = this._spec.link) || void 0 === _d ? void 0 : _d.stateSort
451
379
  });
452
- if (linkMark && (this._linkMark = linkMark), null === (_e = this._spec.label) || void 0 === _e ? void 0 : _e.visible) {
380
+ if (linkMark && (this._linkMark = linkMark), this._spec.label && this._spec.label.visible) {
453
381
  const labelMark = this._createMark(SankeySeries.mark.label, {
454
- key: DEFAULT_DATA_INDEX,
455
382
  dataView: this._nodesSeriesData.getDataView(),
456
383
  dataProductId: this._nodesSeriesData.getProductId()
457
384
  });
@@ -647,6 +574,11 @@ export class SankeySeries extends CartesianSeries {
647
574
  linksSeriesDataUpdate() {
648
575
  this._linksSeriesData.updateData();
649
576
  }
577
+ _highLightElements(vGrammarElements, highlightNodes) {
578
+ vGrammarElements && vGrammarElements.length && vGrammarElements.forEach((el => {
579
+ el.clearStates(), highlightNodes.includes(el.getDatum().key) || el.useStates([ "blur" ]);
580
+ }));
581
+ }
650
582
  initTooltip() {
651
583
  this._tooltipHelper = new SankeySeriesTooltipHelper(this), this._nodeMark && this._tooltipHelper.activeTriggerSet.mark.add(this._nodeMark),
652
584
  this._linkMark && this._tooltipHelper.activeTriggerSet.mark.add(this._linkMark),