@visactor/vchart 1.10.2-alpha.4 → 1.10.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 (61) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +137 -52
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.d.ts +3 -3
  6. package/cjs/animation/utils.js.map +1 -1
  7. package/cjs/compile/compiler.js +1 -1
  8. package/cjs/compile/compiler.js.map +1 -1
  9. package/cjs/compile/mark/compilable-mark.js +3 -3
  10. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  11. package/cjs/component/custom-mark/custom-mark.d.ts +4 -0
  12. package/cjs/component/custom-mark/custom-mark.js +32 -13
  13. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  14. package/cjs/component/label/total-label.js +1 -1
  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/event/event-dispatcher.d.ts +2 -0
  20. package/cjs/event/event-dispatcher.js +21 -2
  21. package/cjs/event/event-dispatcher.js.map +1 -1
  22. package/cjs/event/interface.d.ts +8 -0
  23. package/cjs/event/interface.js.map +1 -1
  24. package/cjs/interaction/interaction.js +1 -1
  25. package/cjs/interaction/interaction.js.map +1 -1
  26. package/cjs/interaction/interface.d.ts +8 -8
  27. package/cjs/interaction/interface.js.map +1 -1
  28. package/cjs/mark/group.js +1 -3
  29. package/cjs/mark/group.js.map +1 -1
  30. package/cjs/series/base/base-series.d.ts +2 -2
  31. package/cjs/series/base/base-series.js +41 -30
  32. package/cjs/series/base/base-series.js.map +1 -1
  33. package/esm/animation/utils.d.ts +3 -3
  34. package/esm/animation/utils.js.map +1 -1
  35. package/esm/compile/compiler.js +1 -1
  36. package/esm/compile/compiler.js.map +1 -1
  37. package/esm/compile/mark/compilable-mark.js +3 -3
  38. package/esm/compile/mark/compilable-mark.js.map +1 -1
  39. package/esm/component/custom-mark/custom-mark.d.ts +4 -0
  40. package/esm/component/custom-mark/custom-mark.js +33 -12
  41. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  42. package/esm/component/label/total-label.js +1 -1
  43. package/esm/component/label/total-label.js.map +1 -1
  44. package/esm/core/index.d.ts +1 -1
  45. package/esm/core/index.js +1 -1
  46. package/esm/core/index.js.map +1 -1
  47. package/esm/event/event-dispatcher.d.ts +2 -0
  48. package/esm/event/event-dispatcher.js +22 -1
  49. package/esm/event/event-dispatcher.js.map +1 -1
  50. package/esm/event/interface.d.ts +8 -0
  51. package/esm/event/interface.js.map +1 -1
  52. package/esm/interaction/interaction.js +1 -1
  53. package/esm/interaction/interaction.js.map +1 -1
  54. package/esm/interaction/interface.d.ts +8 -8
  55. package/esm/interaction/interface.js.map +1 -1
  56. package/esm/mark/group.js +1 -3
  57. package/esm/mark/group.js.map +1 -1
  58. package/esm/series/base/base-series.d.ts +2 -2
  59. package/esm/series/base/base-series.js +41 -30
  60. package/esm/series/base/base-series.js.map +1 -1
  61. package/package.json +11 -11
package/build/index.js CHANGED
@@ -27681,6 +27681,9 @@
27681
27681
  constructor(view, options) {
27682
27682
  this.references = new Map(), this.view = view, this.depend(null == options ? void 0 : options.dependency);
27683
27683
  }
27684
+ getStartState() {
27685
+ return null;
27686
+ }
27684
27687
  depend(grammar) {
27685
27688
  this.references.clear(), array(grammar).map(grammar => isString$1(grammar) ? this.view.getGrammarById(grammar) : grammar).filter(ref => !isNil$3(ref)).forEach(ref => {
27686
27689
  var _a;
@@ -27733,6 +27736,9 @@
27733
27736
  handler: this.handleReset
27734
27737
  }];
27735
27738
  }
27739
+ getStartState() {
27740
+ return this.options.state;
27741
+ }
27736
27742
  start(element) {
27737
27743
  element && this._marks && this._marks.includes(element.mark) && element.addState(this.options.state);
27738
27744
  }
@@ -27779,6 +27785,9 @@
27779
27785
  this.reset(e.element);
27780
27786
  }, this.options = Object.assign({}, ElementSelect.defaultOptions, options), this._marks = view.getMarksBySelector(this.options.selector), this._stateMarks = groupMarksByState(this._marks, [this.options.state, this.options.reverseState]);
27781
27787
  }
27788
+ getStartState() {
27789
+ return this.options.state;
27790
+ }
27782
27791
  getEvents() {
27783
27792
  const triggerOff = this.options.triggerOff,
27784
27793
  trigger = this.options.trigger,
@@ -27824,6 +27833,9 @@
27824
27833
  this.reset(e.element);
27825
27834
  }, this.options = Object.assign({}, ElementHighlight.defaultOptions, options), this._marks = view.getMarksBySelector(this.options.selector), this._stateMarks = groupMarksByState(this._marks, [this.options.highlightState, this.options.blurState]);
27826
27835
  }
27836
+ getStartState() {
27837
+ return this.options.highlightState;
27838
+ }
27827
27839
  getEvents() {
27828
27840
  const triggerOff = this.options.triggerOff,
27829
27841
  events = [{
@@ -27880,6 +27892,9 @@
27880
27892
  e.element && this._marks && this._marks.includes(e.element.mark) && this.clearPrevElements();
27881
27893
  }, this.options = Object.assign({}, ElementHighlightByKey.defaultOptions, options), this._marks = view.getMarksBySelector(this.options.selector);
27882
27894
  }
27895
+ getStartState() {
27896
+ return this.options.highlightState;
27897
+ }
27883
27898
  getEvents() {
27884
27899
  return [{
27885
27900
  type: this.options.trigger,
@@ -27934,6 +27949,9 @@
27934
27949
  this.reset(e.element);
27935
27950
  }, this.options = Object.assign({}, ElementHighlightByGroup.defaultOptions, options), this._marks = view.getMarksBySelector(this.options.selector);
27936
27951
  }
27952
+ getStartState() {
27953
+ return this.options.highlightState;
27954
+ }
27937
27955
  getEvents() {
27938
27956
  return [{
27939
27957
  type: this.options.trigger,
@@ -43363,6 +43381,9 @@
43363
43381
  handler: this.handleReset
43364
43382
  }];
43365
43383
  }
43384
+ getStartState() {
43385
+ return this.options.state;
43386
+ }
43366
43387
  start(element) {
43367
43388
  const itemKey = element;
43368
43389
  if (isNil$3(itemKey)) return;
@@ -43395,6 +43416,9 @@
43395
43416
  this.reset();
43396
43417
  }, this.options = Object.assign({}, ElementHighlightByLegend.defaultOptions, options), this._marks = view.getMarksBySelector(this.options.selector);
43397
43418
  }
43419
+ getStartState() {
43420
+ return this.options.highlightState;
43421
+ }
43398
43422
  getEvents() {
43399
43423
  return [{
43400
43424
  type: LegendEvent.legendItemHover,
@@ -43438,6 +43462,9 @@
43438
43462
  (this.options.shouldReset ? this.options.shouldReset(e) : this._filterByName(e)) && this.reset();
43439
43463
  }, this.options = Object.assign({}, ElementHighlightByName.defaultOptions, options), this._marks = view.getMarksBySelector(this.options.selector);
43440
43464
  }
43465
+ getStartState() {
43466
+ return this.options.highlightState;
43467
+ }
43441
43468
  getEvents() {
43442
43469
  return [{
43443
43470
  type: this.options.trigger,
@@ -54405,11 +54432,29 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
54405
54432
  };
54406
54433
  this.dispatch(listenerParams.type, params);
54407
54434
  };
54435
+ this._onDelegateInteractionEvent = (listenerParams) => {
54436
+ const chart = this.globalInstance.getChart();
54437
+ const event = listenerParams.event;
54438
+ let items = null;
54439
+ if (event.elements) {
54440
+ items = event.elements;
54441
+ }
54442
+ const params = {
54443
+ event: listenerParams.event,
54444
+ chart,
54445
+ items,
54446
+ datums: items &&
54447
+ items.map(item => {
54448
+ return item.getDatum();
54449
+ })
54450
+ };
54451
+ this.dispatch(listenerParams.type, params);
54452
+ };
54408
54453
  this.globalInstance = vchart;
54409
54454
  this._compiler = compiler;
54410
54455
  }
54411
54456
  register(eType, handler) {
54412
- var _a, _b, _c, _d;
54457
+ var _a, _b, _c, _d, _e;
54413
54458
  this._parseQuery(handler);
54414
54459
  const bubbles = this.getEventBubble(((_a = handler.filter) === null || _a === void 0 ? void 0 : _a.source) || exports.Event_Source_Type.chart);
54415
54460
  const listeners = this.getEventListeners(((_b = handler.filter) === null || _b === void 0 ? void 0 : _b.source) || exports.Event_Source_Type.chart);
@@ -54423,6 +54468,11 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
54423
54468
  this._compiler.addEventListener((_d = handler.filter) === null || _d === void 0 ? void 0 : _d.source, eType, callback);
54424
54469
  listeners.set(eType, callback);
54425
54470
  }
54471
+ else if (this._isInteractionEvent(eType) && !listeners.has(eType)) {
54472
+ const callback = this._onDelegateInteractionEvent.bind(this);
54473
+ this._compiler.addEventListener((_e = handler.filter) === null || _e === void 0 ? void 0 : _e.source, eType, callback);
54474
+ listeners.set(eType, callback);
54475
+ }
54426
54476
  return this;
54427
54477
  }
54428
54478
  unregister(eType, handler) {
@@ -54651,6 +54701,12 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
54651
54701
  _isValidEvent(eType) {
54652
54702
  return BASE_EVENTS.includes(eType) || Object.values(exports.VGRAMMAR_HOOK_EVENT).includes(eType);
54653
54703
  }
54704
+ _isInteractionEvent(eType) {
54705
+ let interactionType;
54706
+ return (eType &&
54707
+ ((interactionType = eType.split(':')[0]), interactionType) &&
54708
+ Factory$1.hasInteraction(interactionType));
54709
+ }
54654
54710
  }
54655
54711
 
54656
54712
  function registerDataSetInstanceTransform(dataSet, name, transform) {
@@ -55018,7 +55074,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
55018
55074
  if (this._compileChart) {
55019
55075
  const region = this._compileChart.getRegionsInIds([regionCombindInteractions[key].regionId])[0];
55020
55076
  if (region) {
55021
- region.interaction.addVgrammarInteraction(regionCombindInteractions[key].vchartState, interaction);
55077
+ region.interaction.addVgrammarInteraction(interaction.getStartState(), interaction);
55022
55078
  }
55023
55079
  }
55024
55080
  });
@@ -55627,6 +55683,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
55627
55683
  this._disableTriggerEvent = false;
55628
55684
  }
55629
55685
  addVgrammarInteraction(state, i) {
55686
+ if (!state) {
55687
+ return;
55688
+ }
55630
55689
  if (!this._vgrammarInteractions.get(state)) {
55631
55690
  !this._vgrammarInteractions.set(state, [i]);
55632
55691
  }
@@ -58222,15 +58281,15 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
58222
58281
  this.state.compileState(this._product, this._stateSort);
58223
58282
  }
58224
58283
  compileAnimation() {
58225
- var _a, _b;
58284
+ var _a, _b, _c, _d;
58226
58285
  if (this._animationConfig) {
58227
58286
  let stateSignal;
58228
58287
  if (this.type === 'component') {
58229
58288
  stateSignal = (_a = this.model.animate) === null || _a === void 0 ? void 0 : _a.getAnimationStateSignalName();
58230
58289
  }
58231
58290
  else {
58232
- const region = this.model.getRegion();
58233
- stateSignal = (_b = region.animate) === null || _b === void 0 ? void 0 : _b.getAnimationStateSignalName();
58291
+ const region = (_c = (_b = this.model).getRegion) === null || _c === void 0 ? void 0 : _c.call(_b);
58292
+ stateSignal = (_d = region === null || region === void 0 ? void 0 : region.animate) === null || _d === void 0 ? void 0 : _d.getAnimationStateSignalName();
58234
58293
  }
58235
58294
  this._product.animation(this._animationConfig);
58236
58295
  this._product.animationState({
@@ -58707,7 +58766,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
58707
58766
  return this._marks;
58708
58767
  }
58709
58768
  _getDefaultStyle() {
58710
- const defaultStyle = Object.assign(Object.assign({}, super._getDefaultStyle()), { clip: false });
58769
+ const defaultStyle = Object.assign({}, super._getDefaultStyle());
58711
58770
  return defaultStyle;
58712
58771
  }
58713
58772
  isMarkExist(mark) {
@@ -64463,7 +64522,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
64463
64522
  registerComponentPlugin(CanvasTooltipHandler);
64464
64523
  };
64465
64524
 
64466
- const version = "1.10.2-alpha.4";
64525
+ const version = "1.10.2";
64467
64526
 
64468
64527
  const addVChartProperty = (data, op) => {
64469
64528
  const context = op.beforeCall();
@@ -65482,6 +65541,32 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65482
65541
  var _a;
65483
65542
  return (_a = this._viewStackData) === null || _a === void 0 ? void 0 : _a.latestData;
65484
65543
  }
65544
+ _parseSelectorOfInteraction(interactionSpec, marks) {
65545
+ if (!marks || !marks.length) {
65546
+ return [];
65547
+ }
65548
+ const selector = [];
65549
+ if (interactionSpec.markIds) {
65550
+ marks.filter(mark => {
65551
+ if (interactionSpec.markIds.includes(mark.getProductId())) {
65552
+ selector.push(`#${mark.getProductId()}`);
65553
+ }
65554
+ });
65555
+ }
65556
+ else if (interactionSpec.markNames) {
65557
+ marks.forEach(mark => {
65558
+ if (interactionSpec.markNames.includes(mark.name)) {
65559
+ selector.push(`#${mark.getProductId()}`);
65560
+ }
65561
+ });
65562
+ }
65563
+ else {
65564
+ marks.forEach(mark => {
65565
+ selector.push(`#${mark.getProductId()}`);
65566
+ });
65567
+ }
65568
+ return selector;
65569
+ }
65485
65570
  _parseDefaultInteractionConfig(mainMarks) {
65486
65571
  var _a;
65487
65572
  if (!(mainMarks === null || mainMarks === void 0 ? void 0 : mainMarks.length)) {
@@ -65508,31 +65593,33 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65508
65593
  }
65509
65594
  const res = [];
65510
65595
  if (finalHoverSpec.enable) {
65511
- res.push({
65512
- vchartState: STATE_VALUE_ENUM.STATE_HOVER,
65513
- seriesId: this.id,
65514
- regionId: this._region.id,
65515
- selector: mainMarks.map(mark => `#${mark.getProductId()}`),
65516
- type: 'element-highlight',
65517
- trigger: finalHoverSpec.trigger,
65518
- triggerOff: finalHoverSpec.triggerOff,
65519
- blurState: STATE_VALUE_ENUM.STATE_HOVER_REVERSE,
65520
- highlightState: STATE_VALUE_ENUM.STATE_HOVER
65521
- });
65596
+ const selector = this._parseSelectorOfInteraction(finalHoverSpec, mainMarks);
65597
+ selector.length &&
65598
+ res.push({
65599
+ seriesId: this.id,
65600
+ regionId: this._region.id,
65601
+ selector,
65602
+ type: 'element-highlight',
65603
+ trigger: finalHoverSpec.trigger,
65604
+ triggerOff: finalHoverSpec.triggerOff,
65605
+ blurState: STATE_VALUE_ENUM.STATE_HOVER_REVERSE,
65606
+ highlightState: STATE_VALUE_ENUM.STATE_HOVER
65607
+ });
65522
65608
  }
65523
65609
  if (finalSelectSpec.enable) {
65524
- res.push({
65525
- vchartState: STATE_VALUE_ENUM.STATE_SELECTED,
65526
- type: 'element-select',
65527
- seriesId: this.id,
65528
- regionId: this._region.id,
65529
- selector: mainMarks.map(mark => `#${mark.getProductId()}`),
65530
- trigger: finalSelectSpec.trigger,
65531
- triggerOff: ((_a = finalSelectSpec.triggerOff) !== null && _a !== void 0 ? _a : 'empty'),
65532
- reverseState: STATE_VALUE_ENUM.STATE_SELECTED_REVERSE,
65533
- state: STATE_VALUE_ENUM.STATE_SELECTED,
65534
- isMultiple: finalSelectSpec.mode === 'multiple'
65535
- });
65610
+ const selector = this._parseSelectorOfInteraction(finalSelectSpec, mainMarks);
65611
+ selector.length &&
65612
+ res.push({
65613
+ type: 'element-select',
65614
+ seriesId: this.id,
65615
+ regionId: this._region.id,
65616
+ selector,
65617
+ trigger: finalSelectSpec.trigger,
65618
+ triggerOff: ((_a = finalSelectSpec.triggerOff) !== null && _a !== void 0 ? _a : 'empty'),
65619
+ reverseState: STATE_VALUE_ENUM.STATE_SELECTED_REVERSE,
65620
+ state: STATE_VALUE_ENUM.STATE_SELECTED,
65621
+ isMultiple: finalSelectSpec.mode === 'multiple'
65622
+ });
65536
65623
  }
65537
65624
  return res;
65538
65625
  }
@@ -65550,26 +65637,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65550
65637
  }
65551
65638
  if (interactions && interactions.length) {
65552
65639
  interactions.forEach(interaction => {
65553
- const selectors = [];
65554
- if (interaction.markIds) {
65555
- this.getMarks().filter(mark => {
65556
- if (interaction.markIds.includes(mark.getProductId())) {
65557
- selectors.push(`#${mark.getProductId()}`);
65558
- }
65559
- });
65560
- }
65561
- else if (interaction.markNames) {
65562
- this.getMarks().forEach(mark => {
65563
- if (interaction.markNames.includes(mark.name)) {
65564
- selectors.push(`#${mark.getProductId()}`);
65565
- }
65566
- });
65567
- }
65568
- else if (mainMarks === null || mainMarks === void 0 ? void 0 : mainMarks.length) {
65569
- mainMarks.forEach(mark => {
65570
- selectors.push(`#${mark.getProductId()}`);
65571
- });
65572
- }
65640
+ const selectors = this._parseSelectorOfInteraction(interaction, this.getMarks());
65573
65641
  if (selectors.length) {
65574
65642
  compiler.addInteraction(Object.assign(Object.assign({}, interaction), { selector: selectors, seriesId: this.id, regionId: this._region.id }));
65575
65643
  }
@@ -94668,7 +94736,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
94668
94736
  var _a;
94669
94737
  const series = this._getSeries();
94670
94738
  if ((_a = series.getSpec().totalLabel) === null || _a === void 0 ? void 0 : _a.visible) {
94671
- const mark = series.getMarksInType(["rect", "symbol"])[0];
94739
+ const mark = series.getMarkInName(series.type);
94672
94740
  const textMark = this._createMark({ type: "label", name: `${mark.name}-total-label` });
94673
94741
  this._baseMark = mark;
94674
94742
  this._textMark = textMark;
@@ -95535,11 +95603,24 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95535
95603
  this.initMarks();
95536
95604
  this.initEvent();
95537
95605
  }
95606
+ getMarkAttributeContext() {
95607
+ return this._markAttributeContext;
95608
+ }
95609
+ _buildMarkAttributeContext() {
95610
+ this._markAttributeContext = {
95611
+ vchart: this._option.globalInstance,
95612
+ globalScale: (key, value) => {
95613
+ var _a;
95614
+ return (_a = this._option.globalScale.getScale(key)) === null || _a === void 0 ? void 0 : _a.scale(value);
95615
+ }
95616
+ };
95617
+ }
95538
95618
  initMarks() {
95539
95619
  if (!this._spec) {
95540
95620
  return;
95541
95621
  }
95542
95622
  const series = this._option && this._option.getAllSeries();
95623
+ const hasAnimation = this._option.animation !== false;
95543
95624
  const depend = [];
95544
95625
  if (series && series.length) {
95545
95626
  series.forEach(s => {
@@ -95552,7 +95633,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95552
95633
  });
95553
95634
  }
95554
95635
  this._spec.forEach((m, i) => {
95555
- this._createExtensionMark(m, null, `${PREFIX}_series_${this.id}_extensionMark`, i, { depend });
95636
+ this._createExtensionMark(m, null, `${PREFIX}_series_${this.id}_extensionMark`, i, { depend, hasAnimation });
95556
95637
  });
95557
95638
  }
95558
95639
  _createExtensionMark(spec, parentMark, namePrefix, index, options) {
@@ -95569,6 +95650,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95569
95650
  if (!mark) {
95570
95651
  return;
95571
95652
  }
95653
+ if (options.hasAnimation) {
95654
+ const config = animationConfig({}, userAnimationConfig(spec.type, spec, this._markAttributeContext));
95655
+ mark.setAnimationConfig(config);
95656
+ }
95572
95657
  if (options.depend && options.depend.length) {
95573
95658
  mark.setDepend(...options.depend);
95574
95659
  }