@visactor/vchart 2.0.7-alpha.5 → 2.0.7-alpha.6

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 (74) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +113 -12
  3. package/build/index.js +114 -11
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/component/crosshair/base.d.ts +1 -1
  7. package/cjs/component/crosshair/base.js +10 -6
  8. package/cjs/component/crosshair/base.js.map +1 -1
  9. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  10. package/cjs/component/legend/discrete/util.js +5 -1
  11. package/cjs/component/legend/discrete/util.js.map +1 -1
  12. package/cjs/core/index.d.ts +1 -1
  13. package/cjs/core/index.js +1 -1
  14. package/cjs/core/index.js.map +1 -1
  15. package/cjs/core/interface.js +1 -1
  16. package/cjs/core/util.js +1 -1
  17. package/cjs/core/vchart.js +2 -1
  18. package/cjs/core/vchart.js.map +1 -1
  19. package/cjs/data/initialize.js +1 -1
  20. package/cjs/data/register.js +1 -1
  21. package/cjs/layout/base-layout.d.ts +2 -2
  22. package/cjs/layout/base-layout.js +12 -7
  23. package/cjs/layout/base-layout.js.map +1 -1
  24. package/cjs/layout/interface.d.ts +1 -0
  25. package/cjs/layout/interface.js.map +1 -1
  26. package/cjs/plugin/chart/index.d.ts +1 -0
  27. package/cjs/plugin/chart/index.js +2 -1
  28. package/cjs/plugin/chart/index.js.map +1 -1
  29. package/cjs/plugin/chart/interface.d.ts +2 -0
  30. package/cjs/plugin/chart/interface.js.map +1 -1
  31. package/cjs/plugin/chart/plugin-service.d.ts +1 -0
  32. package/cjs/plugin/chart/plugin-service.js +5 -0
  33. package/cjs/plugin/chart/plugin-service.js.map +1 -1
  34. package/cjs/plugin/chart/resize-zoom/index.d.ts +1 -0
  35. package/cjs/plugin/chart/resize-zoom/index.js +21 -0
  36. package/cjs/plugin/chart/resize-zoom/index.js.map +1 -0
  37. package/cjs/plugin/chart/resize-zoom/zoom.d.ts +21 -0
  38. package/cjs/plugin/chart/resize-zoom/zoom.js +62 -0
  39. package/cjs/plugin/chart/resize-zoom/zoom.js.map +1 -0
  40. package/esm/component/crosshair/base.d.ts +1 -1
  41. package/esm/component/crosshair/base.js +10 -6
  42. package/esm/component/crosshair/base.js.map +1 -1
  43. package/esm/component/geo/geo-coordinate.js.map +1 -1
  44. package/esm/component/legend/discrete/util.js +5 -2
  45. package/esm/component/legend/discrete/util.js.map +1 -1
  46. package/esm/core/index.d.ts +1 -1
  47. package/esm/core/index.js +1 -1
  48. package/esm/core/index.js.map +1 -1
  49. package/esm/core/interface.js +1 -1
  50. package/esm/core/util.js +1 -1
  51. package/esm/core/vchart.js +2 -1
  52. package/esm/core/vchart.js.map +1 -1
  53. package/esm/data/initialize.js +1 -1
  54. package/esm/data/register.js +1 -1
  55. package/esm/layout/base-layout.d.ts +2 -2
  56. package/esm/layout/base-layout.js +12 -7
  57. package/esm/layout/base-layout.js.map +1 -1
  58. package/esm/layout/interface.d.ts +1 -0
  59. package/esm/layout/interface.js.map +1 -1
  60. package/esm/plugin/chart/index.d.ts +1 -0
  61. package/esm/plugin/chart/index.js +2 -0
  62. package/esm/plugin/chart/index.js.map +1 -1
  63. package/esm/plugin/chart/interface.d.ts +2 -0
  64. package/esm/plugin/chart/interface.js.map +1 -1
  65. package/esm/plugin/chart/plugin-service.d.ts +1 -0
  66. package/esm/plugin/chart/plugin-service.js +5 -0
  67. package/esm/plugin/chart/plugin-service.js.map +1 -1
  68. package/esm/plugin/chart/resize-zoom/index.d.ts +1 -0
  69. package/esm/plugin/chart/resize-zoom/index.js +2 -0
  70. package/esm/plugin/chart/resize-zoom/index.js.map +1 -0
  71. package/esm/plugin/chart/resize-zoom/zoom.d.ts +21 -0
  72. package/esm/plugin/chart/resize-zoom/zoom.js +59 -0
  73. package/esm/plugin/chart/resize-zoom/zoom.js.map +1 -0
  74. package/package.json +4 -4
package/build/index.es.js CHANGED
@@ -54258,11 +54258,13 @@ let Layout$1 = class Layout {
54258
54258
  };
54259
54259
  }
54260
54260
  layoutItems(_chart, items, chartLayoutRect, chartViewBox) {
54261
+ var _a, _b, _c;
54261
54262
  this._layoutInit(_chart, items, chartLayoutRect, chartViewBox);
54262
54263
  const recompute = {
54263
54264
  recomputeWidth: this.recomputeWidth,
54264
54265
  recomputeHeight: this.recomputeHeight
54265
54266
  };
54267
+ const secondLayoutLeftRight = (_c = (_b = (_a = _chart === null || _chart === void 0 ? void 0 : _chart.getSpec()) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.secondLayoutLeftRight) !== null && _c !== void 0 ? _c : false;
54266
54268
  this._layoutNormalItems(items, recompute);
54267
54269
  const layoutTemp = {
54268
54270
  left: this.leftCurrent,
@@ -54271,8 +54273,8 @@ let Layout$1 = class Layout {
54271
54273
  bottom: this.bottomCurrent
54272
54274
  };
54273
54275
  const { regionItems, relativeItems, relativeOverlapItems, allRelatives, overlapItems } = this._groupItems(items);
54274
- this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute);
54275
- this._processAutoIndent(regionItems, relativeItems, relativeOverlapItems, overlapItems, allRelatives, layoutTemp, recompute);
54276
+ this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute, secondLayoutLeftRight);
54277
+ this._processAutoIndent(regionItems, relativeItems, relativeOverlapItems, overlapItems, allRelatives, layoutTemp, recompute, secondLayoutLeftRight);
54276
54278
  this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));
54277
54279
  items.forEach(item => {
54278
54280
  item.clearWillLayoutTag();
@@ -54284,7 +54286,7 @@ let Layout$1 = class Layout {
54284
54286
  top: { items: [], rect: { width: 0, height: 0 } },
54285
54287
  bottom: { items: [], rect: { width: 0, height: 0 } },
54286
54288
  z: { items: [], rect: { width: 0, height: 0 } }
54287
- }, allRelatives, layoutTemp, recompute) {
54289
+ }, allRelatives, layoutTemp, recompute, secondLayoutLeftRight = false) {
54288
54290
  if (allRelatives.some(i => i.autoIndent)) {
54289
54291
  const { top, bottom, left, right } = this._checkAutoIndent(allRelatives, layoutTemp);
54290
54292
  if (top || bottom || left || right) {
@@ -54292,7 +54294,7 @@ let Layout$1 = class Layout {
54292
54294
  this.bottomCurrent = layoutTemp.bottom - bottom;
54293
54295
  this.leftCurrent = layoutTemp.left + left;
54294
54296
  this.rightCurrent = layoutTemp.right - right;
54295
- this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute);
54297
+ this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute, secondLayoutLeftRight);
54296
54298
  }
54297
54299
  }
54298
54300
  }
@@ -54445,7 +54447,9 @@ let Layout$1 = class Layout {
54445
54447
  top: { items: [], rect: { width: 0, height: 0 } },
54446
54448
  bottom: { items: [], rect: { width: 0, height: 0 } },
54447
54449
  z: { items: [], rect: { width: 0, height: 0 } }
54448
- }, recompute) {
54450
+ }, recompute, secondLayoutLeftRight = false) {
54451
+ const leftBeforeLayout = this.leftCurrent;
54452
+ const rightBeforeLayout = this.rightCurrent;
54449
54453
  let regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;
54450
54454
  let regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
54451
54455
  regionRelativeItems
@@ -54464,6 +54468,16 @@ let Layout$1 = class Layout {
54464
54468
  this._layoutRelativeOverlap('top', overlapItems.top, recompute);
54465
54469
  this._layoutRelativeOverlap('bottom', overlapItems.bottom, recompute);
54466
54470
  regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
54471
+ if (secondLayoutLeftRight) {
54472
+ this.leftCurrent = leftBeforeLayout;
54473
+ this.rightCurrent = rightBeforeLayout;
54474
+ regionRelativeItems
54475
+ .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')
54476
+ .forEach(item => {
54477
+ this._layoutRelativeItem(item, recompute);
54478
+ });
54479
+ regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;
54480
+ }
54467
54481
  const { regionWidth, regionHeight } = this._layoutRegionItem(regionItems, regionRelativeTotalWidth, regionRelativeTotalHeight);
54468
54482
  regionRelativeItems.concat(regionRelativeOverlapItems).forEach(item => {
54469
54483
  if (['left', 'right'].includes(item.layoutOrient)) {
@@ -56777,6 +56791,11 @@ class ChartPluginService extends BasePluginService {
56777
56791
  plugin.onBeforeInitChart && plugin.onBeforeInitChart(this, chartSpec, actionSource);
56778
56792
  });
56779
56793
  }
56794
+ onAfterInitChart(chartSpec, actionSource) {
56795
+ this._plugins.forEach(plugin => {
56796
+ plugin.onAfterInitChart && plugin.onAfterInitChart(this, chartSpec, actionSource);
56797
+ });
56798
+ }
56780
56799
  releaseAll() {
56781
56800
  super.releaseAll();
56782
56801
  this.globalInstance = null;
@@ -57864,6 +57883,7 @@ class VChart {
57864
57883
  if (!this._chart || !this._compiler) {
57865
57884
  return false;
57866
57885
  }
57886
+ this._chartPluginApply('onAfterInitChart', this._spec, actionSource);
57867
57887
  (_f = (_e = this._option.performanceHook) === null || _e === void 0 ? void 0 : _e.beforeCompileToVGrammar) === null || _f === void 0 ? void 0 : _f.call(_e, this);
57868
57888
  this._compiler.compile({ chart: this._chart, vChart: this }, option);
57869
57889
  (_h = (_g = this._option.performanceHook) === null || _g === void 0 ? void 0 : _g.afterCompileToVGrammar) === null || _h === void 0 ? void 0 : _h.call(_g, this);
@@ -58846,7 +58866,7 @@ const lookup = (data, opt) => {
58846
58866
  });
58847
58867
  };
58848
58868
 
58849
- const version = "2.0.7-alpha.5";
58869
+ const version = "2.0.7-alpha.6";
58850
58870
 
58851
58871
  const addVChartProperty = (data, op) => {
58852
58872
  const context = op.beforeCall();
@@ -90338,7 +90358,12 @@ function transformLegendTitleAttributes(title) {
90338
90358
  }
90339
90359
 
90340
90360
  function getLegendAttributes(spec, rect) {
90341
- const { title = {}, item = {}, pager = {}, background = {}, type, id, visible, orient, position, data, filter, regionId, regionIndex, seriesIndex, seriesId, padding } = spec, restSpec = __rest$e(spec, ["title", "item", "pager", "background", "type", "id", "visible", "orient", "position", "data", "filter", "regionId", "regionIndex", "seriesIndex", "seriesId", "padding"]);
90361
+ const restSpec = __rest$e(spec, ["title", "item", "pager", "background", "type", "id", "visible", "orient", "position", "data", "filter", "regionId", "regionIndex", "seriesIndex", "seriesId", "padding"]);
90362
+ let { title = {}, item = {}, pager = {}, background = {} } = spec;
90363
+ title = cloneDeep(title);
90364
+ item = cloneDeep(item);
90365
+ pager = cloneDeep(pager);
90366
+ background = cloneDeep(background);
90342
90367
  const attrs = restSpec;
90343
90368
  if (title.visible) {
90344
90369
  attrs.title = transformLegendTitleAttributes(title);
@@ -92338,7 +92363,7 @@ class BaseCrossHair extends BaseComponent {
92338
92363
  return;
92339
92364
  }
92340
92365
  this.clearOutEvent();
92341
- this.hide();
92366
+ this.hideCrosshair();
92342
92367
  };
92343
92368
  this._handleTooltipShow = (params) => {
92344
92369
  const tooltipData = params.tooltipData;
@@ -92360,7 +92385,7 @@ class BaseCrossHair extends BaseComponent {
92360
92385
  };
92361
92386
  this._handleTooltipHideOrRelease = () => {
92362
92387
  this.clearOutEvent();
92363
- this.hide();
92388
+ this.hideCrosshair();
92364
92389
  };
92365
92390
  this.enable = true;
92366
92391
  this.showDefault = true;
@@ -92428,17 +92453,20 @@ class BaseCrossHair extends BaseComponent {
92428
92453
  return this._limitBounds;
92429
92454
  }
92430
92455
  _showDefaultCrosshairBySpec() {
92456
+ let hasDefaultCrosshair = false;
92431
92457
  Object.keys(this._stateByField).forEach(field => {
92432
92458
  const fieldSpec = this._spec[field];
92433
92459
  if (fieldSpec && fieldSpec.visible && fieldSpec.defaultSelect) {
92434
92460
  const { axisIndex = 0, datum } = fieldSpec.defaultSelect;
92435
92461
  const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex);
92436
92462
  if (axis) {
92463
+ hasDefaultCrosshair = true;
92437
92464
  this._stateByField[field].currentValue.clear();
92438
92465
  this._stateByField[field].currentValue.set(axisIndex, { axis, datum });
92439
92466
  }
92440
92467
  }
92441
92468
  });
92469
+ return hasDefaultCrosshair;
92442
92470
  }
92443
92471
  _updateVisibleCrosshair() {
92444
92472
  let hasVisible = false;
@@ -92457,8 +92485,8 @@ class BaseCrossHair extends BaseComponent {
92457
92485
  }
92458
92486
  _showDefaultCrosshair() {
92459
92487
  if (this.showDefault) {
92460
- this._showDefaultCrosshairBySpec();
92461
- this.layoutByValue(false);
92488
+ const hasDefault = this._showDefaultCrosshairBySpec();
92489
+ hasDefault && this.layoutByValue(false);
92462
92490
  }
92463
92491
  else {
92464
92492
  this._updateVisibleCrosshair();
@@ -101992,6 +102020,79 @@ const registerMediaQuery = () => {
101992
102020
  registerChartPlugin(MediaQuery);
101993
102021
  };
101994
102022
 
102023
+ const MIN_ZOOM = 0.1;
102024
+ const MAX_ZOOM = 10;
102025
+ class ChartResizeZoomPlugin extends BasePlugin {
102026
+ constructor() {
102027
+ super(ChartResizeZoomPlugin.type);
102028
+ this.type = 'ChartResizeZoomPlugin';
102029
+ this._zoom = 1;
102030
+ this._onWheel = (e) => {
102031
+ e.preventDefault();
102032
+ e.stopImmediatePropagation();
102033
+ const zoom = Math.pow(1.005, -e.deltaY * Math.pow(16, e.deltaMode) * 0.2 * this._rate);
102034
+ const center = { x: e.offsetX, y: e.offsetY };
102035
+ this.zoom(zoom, center);
102036
+ };
102037
+ }
102038
+ onAfterInitChart(service, chartSpec) {
102039
+ var _a, _b, _c, _d, _e;
102040
+ const chart = service.globalInstance;
102041
+ const spec = (_b = (_a = chart.getSpec()) === null || _a === void 0 ? void 0 : _a[ChartResizeZoomPlugin.specKey]) !== null && _b !== void 0 ? _b : { enabled: false };
102042
+ if (spec.enabled !== true) {
102043
+ return;
102044
+ }
102045
+ this._minZoom = (_c = spec.min) !== null && _c !== void 0 ? _c : MIN_ZOOM;
102046
+ this._maxZoom = (_d = spec.max) !== null && _d !== void 0 ? _d : MAX_ZOOM;
102047
+ this._rate = (_e = spec.rate) !== null && _e !== void 0 ? _e : 0.1;
102048
+ this._container = chart.getContainer();
102049
+ this._triggerEvent = getDefaultTriggerEventByMode(service.globalInstance.getChart().getOption().mode).zoom;
102050
+ if (this._container && this._triggerEvent) {
102051
+ this._container.addEventListener(this._triggerEvent, this._onWheel);
102052
+ }
102053
+ }
102054
+ zoom(zoom, pointerPos) {
102055
+ const vchart = this.service.globalInstance;
102056
+ if (!vchart) {
102057
+ return;
102058
+ }
102059
+ const oldZoom = this._zoom;
102060
+ let tempZoom = this._zoom * zoom;
102061
+ if ((tempZoom <= this._minZoom && zoom < 1) || (tempZoom >= this._maxZoom && zoom > 1)) {
102062
+ if (tempZoom <= this._minZoom && this._zoom > this._minZoom) {
102063
+ tempZoom = this._minZoom;
102064
+ }
102065
+ else if (tempZoom >= this._maxZoom && this._zoom < this._maxZoom) {
102066
+ tempZoom = this._maxZoom;
102067
+ }
102068
+ else {
102069
+ return;
102070
+ }
102071
+ }
102072
+ if (tempZoom === oldZoom) {
102073
+ return;
102074
+ }
102075
+ const actualZoomRatio = tempZoom / oldZoom;
102076
+ this._zoom = tempZoom;
102077
+ vchart.resize(vchart.getCurrentSize().width * this._zoom, vchart.getCurrentSize().height * this._zoom);
102078
+ if (pointerPos && this._container) {
102079
+ const { scrollLeft, scrollTop } = this._container;
102080
+ this._container.scrollLeft = scrollLeft + pointerPos.x * (actualZoomRatio - 1);
102081
+ this._container.scrollTop = scrollTop + pointerPos.y * (actualZoomRatio - 1);
102082
+ }
102083
+ }
102084
+ release() {
102085
+ if (this._container && this._triggerEvent) {
102086
+ this._container.removeEventListener(this._triggerEvent, this._onWheel);
102087
+ }
102088
+ }
102089
+ }
102090
+ ChartResizeZoomPlugin.specKey = 'resizeZoom';
102091
+ ChartResizeZoomPlugin.type = 'ChartResizeZoomPlugin';
102092
+ const registerChartResizeZoomPlugin = () => {
102093
+ registerChartPlugin(ChartResizeZoomPlugin);
102094
+ };
102095
+
101995
102096
  function registerStateTransition() {
101996
102097
  const animationTransitionRegistry = AnimationTransitionRegistry.getInstance();
101997
102098
  animationTransitionRegistry.registerTransition('update', '*', () => ({
@@ -102377,4 +102478,4 @@ function registerSequentialAnimate() {
102377
102478
  mixin(BaseMark, SequentialAnimate);
102378
102479
  }
102379
102480
 
102380
- export { ArcMark, AreaChart, AreaMark, AreaSeries, AttributeLevel, AxisSyncPlugin, BandAxisMixin, BarChart, BarChartSpecTransformer, BarSeries, BarSeriesSpecTransformer, BaseArcMark, BaseChart, BaseChartSpecTransformer, BaseComponent, BaseComponentSpecTransformer, BaseHistogramChart, BaseMark, BasePieChart, BasePieChartSpecTransformer, BasePieSeries, BasePlugin, BasePolygonMark, BaseSeries, BaseSeriesSpecTransformer, BaseSeriesTooltipHelper, BaseWordCloudChart, BaseWordCloudChartSpecTransformer, BaseWordCloudSeries, BoxPlotChart, BoxPlotSeries, Brush, CanvasTooltipHandler, CartesianAxis, CartesianBandAxis, CartesianChartSpecTransformer, CartesianCrossHair, CartesianLinearAxis, CartesianLogAxis, CartesianMarkArea, CartesianMarkLine, CartesianMarkPoint, CartesianSeries, CartesianSymlogAxis, CartesianTimeAxis, ChartEvent, CirclePackingChart, CirclePackingSeries, CircularProgressChart, CircularProgressSeries, CommonChart, CommonChartSpecTransformer, CompilableData, ComponentMark, ContinuousLegend, CorrelationChart, CorrelationSeries, CustomMark, DEFAULT_ANIMATION_CONFIG, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD, DEFAULT_KEY, DEFAULT_LAYOUT_RECT_LEVEL, DEFAULT_LAYOUT_RECT_LEVEL_MIN, DEFAULT_LINEAR_INTERPOLATE, DEFAULT_MEASURE_CANVAS_ID, DEFAULT_SERIES_STYLE_NAME, DEFAULT_SMOOTH_INTERPOLATE, DataZoom, DimensionClickEvent, DimensionEventEnum, DimensionHoverEvent, Direction, DiscreteLegend, DomTooltipHandler, DotSeries, ElementHighlight, ElementSelect, Event$1 as Event, Factory, FormatterPlugin, FunnelChart, FunnelChartSpecTransformer, FunnelSeries, FunnelSeriesSpecTransformer, GaugeChart, GaugePointerSeries, GaugeSeries, GeoCoordinate, GeoMarkPoint, GeoSeries, GlyphMark, GridLayout, GroupMark, HeatmapChart, HeatmapSeries, HistogramChart, HistogramChartSpecTransformer, ImageMark, Indicator, Label, Layout$1 as Layout, LayoutLevel, LayoutZIndex, LineChart, LineMark, LineSeries, LinearAxisMixin, LinearProgressChart, LinearProgressSeries, LinkSeries, LiquidChart, LiquidSeries, MOSAIC_CAT_END_PERCENT, MOSAIC_CAT_START_PERCENT, MOSAIC_VALUE_END_PERCENT, MOSAIC_VALUE_START_PERCENT, ManualTicker, MapChart, MapSeries, MarkTypeEnum, MediaQuery, MosaicChart, MosaicSeries, PREFIX, PathMark, PieChart, PieSeries, PieSeriesSpecTransformer, Player, PolarAxis, PolarBandAxis, PolarCrossHair, PolarLinearAxis, PolarMarkArea, PolarMarkLine, PolarMarkPoint, PolarSeries, PolygonMark, PositionEnum, ProgressLikeSeries, RadarChart, RadarSeries, RangeAreaChart, RangeAreaSeries, RangeColumnChart, RangeColumnSeries, RangeColumnSeriesSpecTransformer, RectMark, RenderModeEnum, RippleMark, RoseChart, RoseLikeSeries, RoseSeries, RuleMark, SEGMENT_FIELD_END, SEGMENT_FIELD_START, STACK_FIELD_END, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_END_PERCENT, STACK_FIELD_KEY, STACK_FIELD_START, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_START_PERCENT, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_BOTTOM, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STATE_VALUE_ENUM, SankeyChart, SankeySeries, ScatterChart, ScatterSeries, ScrollBar, SequenceChart, SeriesMarkNameEnum, SeriesTypeEnum, SeriesTypeForThemeEnum, Stack, StackChartMixin, StreamLight, SunburstChart, SunburstSeries, SymbolMark, TextMark, ThemeManager, Title, Tooltip, TooltipResult, TotalLabel, TransformLevel, TreemapChart, TreemapSeries, USER_LAYOUT_RECT_LEVEL, VChart, VennChart, VennSeries, WaterfallChart, WaterfallSeries, WordCloudChart, WordCloudSeries, alternatingWave, animationConfig, barGrowIn, barGrowOut, barPresetAnimation, baseSeriesMark, boundsInRect, builtinThemes, calcLayoutNumber, calcPadding, centerToCorner, columnCenterToEdge, columnEdgeToCenter, columnLeftToRight, columnRightToLeft, computeActualDataScheme, convertPoint, cornerToCenter, createArc, createArea, createGroup, createLine, createRect, createRichText, createScale, createScaleWithSpec, createSymbol, createText, darkTheme, dataScheme, VChart as default, defaultThemeName, diagonalCenterToEdge, diagonalTopLeftToBottomRight, findMarkGraphic, functionTransform, getActualColor, getActualNumValue, getCartesianCrosshairRect, getCartesianDimensionInfo, getColorSchemeBySeries, getCombinedSizeOfRegions, getDataScheme, getDatumOfGraphic, getDiffAttributesOfGraphic, getDimensionInfoByValue, getFieldAlias, getFunnelTheme, getGroupAnimationParams, getMergedTheme, getPolarDimensionInfo, getRegionStackGroup, getSpecInfo, getTheme, hasThemeMerged, isCollectionMark, isColorKey, isPercent, isPercentOffset, isPolarAxisSeries, isProgressiveDataColorScheme, isSpecValueWithScale, isTokenKey, isValidOrient, isValueInScaleDomain, isXAxis, isYAxis, isZAxis, lightTheme, lookup, measureText, mergeFields, normalizeLayoutPaddingSpec, particleEffect, pieDisappear, pieEnter, pieExit, piePresetAnimation, pulseWave, queryColorFromColorScheme, queryToken, randomOpacity, registerAllEnv, registerAllMarks, registerAnimate, registerArcAnimation, registerArcMark, registerAreaChart, registerAreaMark, registerAreaSeries, registerBarAnimation, registerBarChart, registerBarSeries, registerBoxplotChart, registerBoxplotSeries, registerBrowserEnv, registerBrush, registerCanvasTooltipHandler, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerChartPlugin, registerCirclePackingChart, registerCirclePackingSeries, registerCircularProgressChart, registerCircularProgressSeries, registerCommonChart, registerComponentMark, registerContinuousLegend, registerCorrelationChart, registerCustomAnimate, registerCustomMark, registerDataSetInstanceParser, registerDataSetInstanceTransform, registerDataZoom, registerDimensionEvents, registerDimensionHover, registerDimensionTooltipProcessor, registerDiscreteLegend, registerDomTooltipHandler, registerDotSeries, registerDragPlugin, registerElementActive, registerElementActiveByLegend, registerElementHighlight, registerElementHighlightByGroup, registerElementHighlightByKey, registerElementHighlightByLegend, registerElementHighlightByName, registerElementSelect, registerFormatPlugin, registerFunnelChart, registerFunnelSeries, registerGaugeChart, registerGaugePointerSeries, registerGaugeSeries, registerGeoCoordinate, registerGeoMarkPoint, registerGesturePlugin, registerGlyphMark, registerGridLayout, registerGroupMark, registerGroupTooltipProcessor, registerHarmonyEnv, registerHeatmapChart, registerHeatmapSeries, registerHistogramChart, registerHtmlAttributePlugin, registerImageMark, registerIndicator, registerLabel, registerLarkEnv, registerLineChart, registerLineMark, registerLineSeries, registerLinearProgressChart, registerLinearProgressSeries, registerLinkSeries, registerLiquidChart, registerLiquidSeries, registerLynxEnv, registerMapChart, registerMapSeries, registerMarkArea, registerMarkFilterTransform, registerMarkLine, registerMarkMapTransform, registerMarkPoint, registerMarkTooltipProcessor, registerMediaQuery, registerMosaicChart, registerMosaicSeries, registerNodeEnv, registerPathMark, registerPieChart, registerPieSeries, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPolarMarkArea, registerPolarMarkLine, registerPolarMarkPoint, registerPolygonAnimation, registerPolygonMark, registerPoptip, registerRadarChart, registerRadarSeries, registerRangeAreaChart, registerRangeAreaSeries, registerRangeColumnChart, registerRangeColumnSeries, registerReactAttributePlugin, registerRectAnimation, registerRectMark, registerRippleMark, registerRoseChart, registerRoseSeries, registerRuleMark, registerSankeyChart, registerSankeySeries, registerScaleInOutAnimation, registerScatterChart, registerScatterSeries, registerScrollBar, registerSequenceChart, registerSequentialAnimate, registerStateTransition, registerSunBurstSeries, registerSunburstChart, registerSymbolMark, registerTTEnv, registerTaroEnv, registerTextMark, registerTheme, registerTitle, registerTooltip, registerTotalLabel, registerTreemapChart, registerTreemapSeries, registerAnimate$1 as registerVRenderAnimate, registerVennChart, registerVennSeries, registerWXEnv, registerWaterfallChart, registerWaterfallSeries, registerWordCloudChart, registerWordCloudSeries, registerWordCloudShapeChart, removeTheme, rippleEffect, rotationScan, rowBottomToTop, rowCenterToEdge, rowEdgeToCenter, rowTopToBottom, setDefaultCrosshairForCartesianChart, shouldMarkDoMorph, snakeWave, sortDataInAxisHelper, sortStackValueGroup, specTransform, spiralEffect, stack, stackGroup, stackMosaic, stackMosaicTotal, stackOffsetSilhouette, stackTotal, themeExist, themes, token, transformColorSchemeToStandardStruct, transformToGraphic, userAnimationConfig, valueInScaleRange, version, vglobal, warn };
102481
+ export { ArcMark, AreaChart, AreaMark, AreaSeries, AttributeLevel, AxisSyncPlugin, BandAxisMixin, BarChart, BarChartSpecTransformer, BarSeries, BarSeriesSpecTransformer, BaseArcMark, BaseChart, BaseChartSpecTransformer, BaseComponent, BaseComponentSpecTransformer, BaseHistogramChart, BaseMark, BasePieChart, BasePieChartSpecTransformer, BasePieSeries, BasePlugin, BasePolygonMark, BaseSeries, BaseSeriesSpecTransformer, BaseSeriesTooltipHelper, BaseWordCloudChart, BaseWordCloudChartSpecTransformer, BaseWordCloudSeries, BoxPlotChart, BoxPlotSeries, Brush, CanvasTooltipHandler, CartesianAxis, CartesianBandAxis, CartesianChartSpecTransformer, CartesianCrossHair, CartesianLinearAxis, CartesianLogAxis, CartesianMarkArea, CartesianMarkLine, CartesianMarkPoint, CartesianSeries, CartesianSymlogAxis, CartesianTimeAxis, ChartEvent, ChartResizeZoomPlugin, CirclePackingChart, CirclePackingSeries, CircularProgressChart, CircularProgressSeries, CommonChart, CommonChartSpecTransformer, CompilableData, ComponentMark, ContinuousLegend, CorrelationChart, CorrelationSeries, CustomMark, DEFAULT_ANIMATION_CONFIG, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD, DEFAULT_KEY, DEFAULT_LAYOUT_RECT_LEVEL, DEFAULT_LAYOUT_RECT_LEVEL_MIN, DEFAULT_LINEAR_INTERPOLATE, DEFAULT_MEASURE_CANVAS_ID, DEFAULT_SERIES_STYLE_NAME, DEFAULT_SMOOTH_INTERPOLATE, DataZoom, DimensionClickEvent, DimensionEventEnum, DimensionHoverEvent, Direction, DiscreteLegend, DomTooltipHandler, DotSeries, ElementHighlight, ElementSelect, Event$1 as Event, Factory, FormatterPlugin, FunnelChart, FunnelChartSpecTransformer, FunnelSeries, FunnelSeriesSpecTransformer, GaugeChart, GaugePointerSeries, GaugeSeries, GeoCoordinate, GeoMarkPoint, GeoSeries, GlyphMark, GridLayout, GroupMark, HeatmapChart, HeatmapSeries, HistogramChart, HistogramChartSpecTransformer, ImageMark, Indicator, Label, Layout$1 as Layout, LayoutLevel, LayoutZIndex, LineChart, LineMark, LineSeries, LinearAxisMixin, LinearProgressChart, LinearProgressSeries, LinkSeries, LiquidChart, LiquidSeries, MOSAIC_CAT_END_PERCENT, MOSAIC_CAT_START_PERCENT, MOSAIC_VALUE_END_PERCENT, MOSAIC_VALUE_START_PERCENT, ManualTicker, MapChart, MapSeries, MarkTypeEnum, MediaQuery, MosaicChart, MosaicSeries, PREFIX, PathMark, PieChart, PieSeries, PieSeriesSpecTransformer, Player, PolarAxis, PolarBandAxis, PolarCrossHair, PolarLinearAxis, PolarMarkArea, PolarMarkLine, PolarMarkPoint, PolarSeries, PolygonMark, PositionEnum, ProgressLikeSeries, RadarChart, RadarSeries, RangeAreaChart, RangeAreaSeries, RangeColumnChart, RangeColumnSeries, RangeColumnSeriesSpecTransformer, RectMark, RenderModeEnum, RippleMark, RoseChart, RoseLikeSeries, RoseSeries, RuleMark, SEGMENT_FIELD_END, SEGMENT_FIELD_START, STACK_FIELD_END, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_END_PERCENT, STACK_FIELD_KEY, STACK_FIELD_START, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_START_PERCENT, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_BOTTOM, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STATE_VALUE_ENUM, SankeyChart, SankeySeries, ScatterChart, ScatterSeries, ScrollBar, SequenceChart, SeriesMarkNameEnum, SeriesTypeEnum, SeriesTypeForThemeEnum, Stack, StackChartMixin, StreamLight, SunburstChart, SunburstSeries, SymbolMark, TextMark, ThemeManager, Title, Tooltip, TooltipResult, TotalLabel, TransformLevel, TreemapChart, TreemapSeries, USER_LAYOUT_RECT_LEVEL, VChart, VennChart, VennSeries, WaterfallChart, WaterfallSeries, WordCloudChart, WordCloudSeries, alternatingWave, animationConfig, barGrowIn, barGrowOut, barPresetAnimation, baseSeriesMark, boundsInRect, builtinThemes, calcLayoutNumber, calcPadding, centerToCorner, columnCenterToEdge, columnEdgeToCenter, columnLeftToRight, columnRightToLeft, computeActualDataScheme, convertPoint, cornerToCenter, createArc, createArea, createGroup, createLine, createRect, createRichText, createScale, createScaleWithSpec, createSymbol, createText, darkTheme, dataScheme, VChart as default, defaultThemeName, diagonalCenterToEdge, diagonalTopLeftToBottomRight, findMarkGraphic, functionTransform, getActualColor, getActualNumValue, getCartesianCrosshairRect, getCartesianDimensionInfo, getColorSchemeBySeries, getCombinedSizeOfRegions, getDataScheme, getDatumOfGraphic, getDiffAttributesOfGraphic, getDimensionInfoByValue, getFieldAlias, getFunnelTheme, getGroupAnimationParams, getMergedTheme, getPolarDimensionInfo, getRegionStackGroup, getSpecInfo, getTheme, hasThemeMerged, isCollectionMark, isColorKey, isPercent, isPercentOffset, isPolarAxisSeries, isProgressiveDataColorScheme, isSpecValueWithScale, isTokenKey, isValidOrient, isValueInScaleDomain, isXAxis, isYAxis, isZAxis, lightTheme, lookup, measureText, mergeFields, normalizeLayoutPaddingSpec, particleEffect, pieDisappear, pieEnter, pieExit, piePresetAnimation, pulseWave, queryColorFromColorScheme, queryToken, randomOpacity, registerAllEnv, registerAllMarks, registerAnimate, registerArcAnimation, registerArcMark, registerAreaChart, registerAreaMark, registerAreaSeries, registerBarAnimation, registerBarChart, registerBarSeries, registerBoxplotChart, registerBoxplotSeries, registerBrowserEnv, registerBrush, registerCanvasTooltipHandler, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerChartPlugin, registerChartResizeZoomPlugin, registerCirclePackingChart, registerCirclePackingSeries, registerCircularProgressChart, registerCircularProgressSeries, registerCommonChart, registerComponentMark, registerContinuousLegend, registerCorrelationChart, registerCustomAnimate, registerCustomMark, registerDataSetInstanceParser, registerDataSetInstanceTransform, registerDataZoom, registerDimensionEvents, registerDimensionHover, registerDimensionTooltipProcessor, registerDiscreteLegend, registerDomTooltipHandler, registerDotSeries, registerDragPlugin, registerElementActive, registerElementActiveByLegend, registerElementHighlight, registerElementHighlightByGroup, registerElementHighlightByKey, registerElementHighlightByLegend, registerElementHighlightByName, registerElementSelect, registerFormatPlugin, registerFunnelChart, registerFunnelSeries, registerGaugeChart, registerGaugePointerSeries, registerGaugeSeries, registerGeoCoordinate, registerGeoMarkPoint, registerGesturePlugin, registerGlyphMark, registerGridLayout, registerGroupMark, registerGroupTooltipProcessor, registerHarmonyEnv, registerHeatmapChart, registerHeatmapSeries, registerHistogramChart, registerHtmlAttributePlugin, registerImageMark, registerIndicator, registerLabel, registerLarkEnv, registerLineChart, registerLineMark, registerLineSeries, registerLinearProgressChart, registerLinearProgressSeries, registerLinkSeries, registerLiquidChart, registerLiquidSeries, registerLynxEnv, registerMapChart, registerMapSeries, registerMarkArea, registerMarkFilterTransform, registerMarkLine, registerMarkMapTransform, registerMarkPoint, registerMarkTooltipProcessor, registerMediaQuery, registerMosaicChart, registerMosaicSeries, registerNodeEnv, registerPathMark, registerPieChart, registerPieSeries, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPolarMarkArea, registerPolarMarkLine, registerPolarMarkPoint, registerPolygonAnimation, registerPolygonMark, registerPoptip, registerRadarChart, registerRadarSeries, registerRangeAreaChart, registerRangeAreaSeries, registerRangeColumnChart, registerRangeColumnSeries, registerReactAttributePlugin, registerRectAnimation, registerRectMark, registerRippleMark, registerRoseChart, registerRoseSeries, registerRuleMark, registerSankeyChart, registerSankeySeries, registerScaleInOutAnimation, registerScatterChart, registerScatterSeries, registerScrollBar, registerSequenceChart, registerSequentialAnimate, registerStateTransition, registerSunBurstSeries, registerSunburstChart, registerSymbolMark, registerTTEnv, registerTaroEnv, registerTextMark, registerTheme, registerTitle, registerTooltip, registerTotalLabel, registerTreemapChart, registerTreemapSeries, registerAnimate$1 as registerVRenderAnimate, registerVennChart, registerVennSeries, registerWXEnv, registerWaterfallChart, registerWaterfallSeries, registerWordCloudChart, registerWordCloudSeries, registerWordCloudShapeChart, removeTheme, rippleEffect, rotationScan, rowBottomToTop, rowCenterToEdge, rowEdgeToCenter, rowTopToBottom, setDefaultCrosshairForCartesianChart, shouldMarkDoMorph, snakeWave, sortDataInAxisHelper, sortStackValueGroup, specTransform, spiralEffect, stack, stackGroup, stackMosaic, stackMosaicTotal, stackOffsetSilhouette, stackTotal, themeExist, themes, token, transformColorSchemeToStandardStruct, transformToGraphic, userAnimationConfig, valueInScaleRange, version, vglobal, warn };
package/build/index.js CHANGED
@@ -54264,11 +54264,13 @@
54264
54264
  };
54265
54265
  }
54266
54266
  layoutItems(_chart, items, chartLayoutRect, chartViewBox) {
54267
+ var _a, _b, _c;
54267
54268
  this._layoutInit(_chart, items, chartLayoutRect, chartViewBox);
54268
54269
  const recompute = {
54269
54270
  recomputeWidth: this.recomputeWidth,
54270
54271
  recomputeHeight: this.recomputeHeight
54271
54272
  };
54273
+ const secondLayoutLeftRight = (_c = (_b = (_a = _chart === null || _chart === void 0 ? void 0 : _chart.getSpec()) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.secondLayoutLeftRight) !== null && _c !== void 0 ? _c : false;
54272
54274
  this._layoutNormalItems(items, recompute);
54273
54275
  const layoutTemp = {
54274
54276
  left: this.leftCurrent,
@@ -54277,8 +54279,8 @@
54277
54279
  bottom: this.bottomCurrent
54278
54280
  };
54279
54281
  const { regionItems, relativeItems, relativeOverlapItems, allRelatives, overlapItems } = this._groupItems(items);
54280
- this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute);
54281
- this._processAutoIndent(regionItems, relativeItems, relativeOverlapItems, overlapItems, allRelatives, layoutTemp, recompute);
54282
+ this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute, secondLayoutLeftRight);
54283
+ this._processAutoIndent(regionItems, relativeItems, relativeOverlapItems, overlapItems, allRelatives, layoutTemp, recompute, secondLayoutLeftRight);
54282
54284
  this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));
54283
54285
  items.forEach(item => {
54284
54286
  item.clearWillLayoutTag();
@@ -54290,7 +54292,7 @@
54290
54292
  top: { items: [], rect: { width: 0, height: 0 } },
54291
54293
  bottom: { items: [], rect: { width: 0, height: 0 } },
54292
54294
  z: { items: [], rect: { width: 0, height: 0 } }
54293
- }, allRelatives, layoutTemp, recompute) {
54295
+ }, allRelatives, layoutTemp, recompute, secondLayoutLeftRight = false) {
54294
54296
  if (allRelatives.some(i => i.autoIndent)) {
54295
54297
  const { top, bottom, left, right } = this._checkAutoIndent(allRelatives, layoutTemp);
54296
54298
  if (top || bottom || left || right) {
@@ -54298,7 +54300,7 @@
54298
54300
  this.bottomCurrent = layoutTemp.bottom - bottom;
54299
54301
  this.leftCurrent = layoutTemp.left + left;
54300
54302
  this.rightCurrent = layoutTemp.right - right;
54301
- this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute);
54303
+ this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute, secondLayoutLeftRight);
54302
54304
  }
54303
54305
  }
54304
54306
  }
@@ -54451,7 +54453,9 @@
54451
54453
  top: { items: [], rect: { width: 0, height: 0 } },
54452
54454
  bottom: { items: [], rect: { width: 0, height: 0 } },
54453
54455
  z: { items: [], rect: { width: 0, height: 0 } }
54454
- }, recompute) {
54456
+ }, recompute, secondLayoutLeftRight = false) {
54457
+ const leftBeforeLayout = this.leftCurrent;
54458
+ const rightBeforeLayout = this.rightCurrent;
54455
54459
  let regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;
54456
54460
  let regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
54457
54461
  regionRelativeItems
@@ -54470,6 +54474,16 @@
54470
54474
  this._layoutRelativeOverlap('top', overlapItems.top, recompute);
54471
54475
  this._layoutRelativeOverlap('bottom', overlapItems.bottom, recompute);
54472
54476
  regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
54477
+ if (secondLayoutLeftRight) {
54478
+ this.leftCurrent = leftBeforeLayout;
54479
+ this.rightCurrent = rightBeforeLayout;
54480
+ regionRelativeItems
54481
+ .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')
54482
+ .forEach(item => {
54483
+ this._layoutRelativeItem(item, recompute);
54484
+ });
54485
+ regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;
54486
+ }
54473
54487
  const { regionWidth, regionHeight } = this._layoutRegionItem(regionItems, regionRelativeTotalWidth, regionRelativeTotalHeight);
54474
54488
  regionRelativeItems.concat(regionRelativeOverlapItems).forEach(item => {
54475
54489
  if (['left', 'right'].includes(item.layoutOrient)) {
@@ -56783,6 +56797,11 @@
56783
56797
  plugin.onBeforeInitChart && plugin.onBeforeInitChart(this, chartSpec, actionSource);
56784
56798
  });
56785
56799
  }
56800
+ onAfterInitChart(chartSpec, actionSource) {
56801
+ this._plugins.forEach(plugin => {
56802
+ plugin.onAfterInitChart && plugin.onAfterInitChart(this, chartSpec, actionSource);
56803
+ });
56804
+ }
56786
56805
  releaseAll() {
56787
56806
  super.releaseAll();
56788
56807
  this.globalInstance = null;
@@ -57870,6 +57889,7 @@
57870
57889
  if (!this._chart || !this._compiler) {
57871
57890
  return false;
57872
57891
  }
57892
+ this._chartPluginApply('onAfterInitChart', this._spec, actionSource);
57873
57893
  (_f = (_e = this._option.performanceHook) === null || _e === void 0 ? void 0 : _e.beforeCompileToVGrammar) === null || _f === void 0 ? void 0 : _f.call(_e, this);
57874
57894
  this._compiler.compile({ chart: this._chart, vChart: this }, option);
57875
57895
  (_h = (_g = this._option.performanceHook) === null || _g === void 0 ? void 0 : _g.afterCompileToVGrammar) === null || _h === void 0 ? void 0 : _h.call(_g, this);
@@ -58852,7 +58872,7 @@
58852
58872
  });
58853
58873
  };
58854
58874
 
58855
- const version = "2.0.7-alpha.5";
58875
+ const version = "2.0.7-alpha.6";
58856
58876
 
58857
58877
  const addVChartProperty = (data, op) => {
58858
58878
  const context = op.beforeCall();
@@ -90344,7 +90364,12 @@
90344
90364
  }
90345
90365
 
90346
90366
  function getLegendAttributes(spec, rect) {
90347
- const { title = {}, item = {}, pager = {}, background = {}, type, id, visible, orient, position, data, filter, regionId, regionIndex, seriesIndex, seriesId, padding } = spec, restSpec = __rest$e(spec, ["title", "item", "pager", "background", "type", "id", "visible", "orient", "position", "data", "filter", "regionId", "regionIndex", "seriesIndex", "seriesId", "padding"]);
90367
+ const restSpec = __rest$e(spec, ["title", "item", "pager", "background", "type", "id", "visible", "orient", "position", "data", "filter", "regionId", "regionIndex", "seriesIndex", "seriesId", "padding"]);
90368
+ let { title = {}, item = {}, pager = {}, background = {} } = spec;
90369
+ title = cloneDeep(title);
90370
+ item = cloneDeep(item);
90371
+ pager = cloneDeep(pager);
90372
+ background = cloneDeep(background);
90348
90373
  const attrs = restSpec;
90349
90374
  if (title.visible) {
90350
90375
  attrs.title = transformLegendTitleAttributes(title);
@@ -92344,7 +92369,7 @@
92344
92369
  return;
92345
92370
  }
92346
92371
  this.clearOutEvent();
92347
- this.hide();
92372
+ this.hideCrosshair();
92348
92373
  };
92349
92374
  this._handleTooltipShow = (params) => {
92350
92375
  const tooltipData = params.tooltipData;
@@ -92366,7 +92391,7 @@
92366
92391
  };
92367
92392
  this._handleTooltipHideOrRelease = () => {
92368
92393
  this.clearOutEvent();
92369
- this.hide();
92394
+ this.hideCrosshair();
92370
92395
  };
92371
92396
  this.enable = true;
92372
92397
  this.showDefault = true;
@@ -92434,17 +92459,20 @@
92434
92459
  return this._limitBounds;
92435
92460
  }
92436
92461
  _showDefaultCrosshairBySpec() {
92462
+ let hasDefaultCrosshair = false;
92437
92463
  Object.keys(this._stateByField).forEach(field => {
92438
92464
  const fieldSpec = this._spec[field];
92439
92465
  if (fieldSpec && fieldSpec.visible && fieldSpec.defaultSelect) {
92440
92466
  const { axisIndex = 0, datum } = fieldSpec.defaultSelect;
92441
92467
  const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex);
92442
92468
  if (axis) {
92469
+ hasDefaultCrosshair = true;
92443
92470
  this._stateByField[field].currentValue.clear();
92444
92471
  this._stateByField[field].currentValue.set(axisIndex, { axis, datum });
92445
92472
  }
92446
92473
  }
92447
92474
  });
92475
+ return hasDefaultCrosshair;
92448
92476
  }
92449
92477
  _updateVisibleCrosshair() {
92450
92478
  let hasVisible = false;
@@ -92463,8 +92491,8 @@
92463
92491
  }
92464
92492
  _showDefaultCrosshair() {
92465
92493
  if (this.showDefault) {
92466
- this._showDefaultCrosshairBySpec();
92467
- this.layoutByValue(false);
92494
+ const hasDefault = this._showDefaultCrosshairBySpec();
92495
+ hasDefault && this.layoutByValue(false);
92468
92496
  }
92469
92497
  else {
92470
92498
  this._updateVisibleCrosshair();
@@ -101998,6 +102026,79 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
101998
102026
  registerChartPlugin(MediaQuery);
101999
102027
  };
102000
102028
 
102029
+ const MIN_ZOOM = 0.1;
102030
+ const MAX_ZOOM = 10;
102031
+ class ChartResizeZoomPlugin extends BasePlugin {
102032
+ constructor() {
102033
+ super(ChartResizeZoomPlugin.type);
102034
+ this.type = 'ChartResizeZoomPlugin';
102035
+ this._zoom = 1;
102036
+ this._onWheel = (e) => {
102037
+ e.preventDefault();
102038
+ e.stopImmediatePropagation();
102039
+ const zoom = Math.pow(1.005, -e.deltaY * Math.pow(16, e.deltaMode) * 0.2 * this._rate);
102040
+ const center = { x: e.offsetX, y: e.offsetY };
102041
+ this.zoom(zoom, center);
102042
+ };
102043
+ }
102044
+ onAfterInitChart(service, chartSpec) {
102045
+ var _a, _b, _c, _d, _e;
102046
+ const chart = service.globalInstance;
102047
+ const spec = (_b = (_a = chart.getSpec()) === null || _a === void 0 ? void 0 : _a[ChartResizeZoomPlugin.specKey]) !== null && _b !== void 0 ? _b : { enabled: false };
102048
+ if (spec.enabled !== true) {
102049
+ return;
102050
+ }
102051
+ this._minZoom = (_c = spec.min) !== null && _c !== void 0 ? _c : MIN_ZOOM;
102052
+ this._maxZoom = (_d = spec.max) !== null && _d !== void 0 ? _d : MAX_ZOOM;
102053
+ this._rate = (_e = spec.rate) !== null && _e !== void 0 ? _e : 0.1;
102054
+ this._container = chart.getContainer();
102055
+ this._triggerEvent = getDefaultTriggerEventByMode(service.globalInstance.getChart().getOption().mode).zoom;
102056
+ if (this._container && this._triggerEvent) {
102057
+ this._container.addEventListener(this._triggerEvent, this._onWheel);
102058
+ }
102059
+ }
102060
+ zoom(zoom, pointerPos) {
102061
+ const vchart = this.service.globalInstance;
102062
+ if (!vchart) {
102063
+ return;
102064
+ }
102065
+ const oldZoom = this._zoom;
102066
+ let tempZoom = this._zoom * zoom;
102067
+ if ((tempZoom <= this._minZoom && zoom < 1) || (tempZoom >= this._maxZoom && zoom > 1)) {
102068
+ if (tempZoom <= this._minZoom && this._zoom > this._minZoom) {
102069
+ tempZoom = this._minZoom;
102070
+ }
102071
+ else if (tempZoom >= this._maxZoom && this._zoom < this._maxZoom) {
102072
+ tempZoom = this._maxZoom;
102073
+ }
102074
+ else {
102075
+ return;
102076
+ }
102077
+ }
102078
+ if (tempZoom === oldZoom) {
102079
+ return;
102080
+ }
102081
+ const actualZoomRatio = tempZoom / oldZoom;
102082
+ this._zoom = tempZoom;
102083
+ vchart.resize(vchart.getCurrentSize().width * this._zoom, vchart.getCurrentSize().height * this._zoom);
102084
+ if (pointerPos && this._container) {
102085
+ const { scrollLeft, scrollTop } = this._container;
102086
+ this._container.scrollLeft = scrollLeft + pointerPos.x * (actualZoomRatio - 1);
102087
+ this._container.scrollTop = scrollTop + pointerPos.y * (actualZoomRatio - 1);
102088
+ }
102089
+ }
102090
+ release() {
102091
+ if (this._container && this._triggerEvent) {
102092
+ this._container.removeEventListener(this._triggerEvent, this._onWheel);
102093
+ }
102094
+ }
102095
+ }
102096
+ ChartResizeZoomPlugin.specKey = 'resizeZoom';
102097
+ ChartResizeZoomPlugin.type = 'ChartResizeZoomPlugin';
102098
+ const registerChartResizeZoomPlugin = () => {
102099
+ registerChartPlugin(ChartResizeZoomPlugin);
102100
+ };
102101
+
102001
102102
  function registerStateTransition() {
102002
102103
  const animationTransitionRegistry = AnimationTransitionRegistry.getInstance();
102003
102104
  animationTransitionRegistry.registerTransition('update', '*', () => ({
@@ -102427,6 +102528,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
102427
102528
  exports.CartesianSeries = CartesianSeries;
102428
102529
  exports.CartesianSymlogAxis = CartesianSymlogAxis;
102429
102530
  exports.CartesianTimeAxis = CartesianTimeAxis;
102531
+ exports.ChartResizeZoomPlugin = ChartResizeZoomPlugin;
102430
102532
  exports.CirclePackingChart = CirclePackingChart;
102431
102533
  exports.CirclePackingSeries = CirclePackingSeries;
102432
102534
  exports.CircularProgressChart = CircularProgressChart;
@@ -102678,6 +102780,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
102678
102780
  exports.registerCartesianSymlogAxis = registerCartesianSymlogAxis;
102679
102781
  exports.registerCartesianTimeAxis = registerCartesianTimeAxis;
102680
102782
  exports.registerChartPlugin = registerChartPlugin;
102783
+ exports.registerChartResizeZoomPlugin = registerChartResizeZoomPlugin;
102681
102784
  exports.registerCirclePackingChart = registerCirclePackingChart;
102682
102785
  exports.registerCirclePackingSeries = registerCirclePackingSeries;
102683
102786
  exports.registerCircularProgressChart = registerCircularProgressChart;