@visactor/vchart 2.0.7-alpha.4 → 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 (70) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +195 -12
  3. package/build/index.js +196 -11
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/box-plot/box-plot.js +3 -2
  7. package/cjs/chart/box-plot/box-plot.js.map +1 -1
  8. package/cjs/component/crosshair/base.d.ts +1 -1
  9. package/cjs/component/crosshair/base.js +10 -6
  10. package/cjs/component/crosshair/base.js.map +1 -1
  11. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  12. package/cjs/component/legend/discrete/util.js +5 -1
  13. package/cjs/component/legend/discrete/util.js.map +1 -1
  14. package/cjs/core/index.d.ts +1 -1
  15. package/cjs/core/index.js +1 -1
  16. package/cjs/core/index.js.map +1 -1
  17. package/cjs/core/vchart.js +2 -1
  18. package/cjs/core/vchart.js.map +1 -1
  19. package/cjs/layout/base-layout.d.ts +2 -2
  20. package/cjs/layout/base-layout.js +12 -7
  21. package/cjs/layout/base-layout.js.map +1 -1
  22. package/cjs/layout/interface.d.ts +1 -0
  23. package/cjs/layout/interface.js.map +1 -1
  24. package/cjs/plugin/chart/index.d.ts +1 -0
  25. package/cjs/plugin/chart/index.js +2 -1
  26. package/cjs/plugin/chart/index.js.map +1 -1
  27. package/cjs/plugin/chart/interface.d.ts +2 -0
  28. package/cjs/plugin/chart/interface.js.map +1 -1
  29. package/cjs/plugin/chart/plugin-service.d.ts +1 -0
  30. package/cjs/plugin/chart/plugin-service.js +5 -0
  31. package/cjs/plugin/chart/plugin-service.js.map +1 -1
  32. package/cjs/plugin/chart/resize-zoom/index.d.ts +1 -0
  33. package/cjs/plugin/chart/resize-zoom/index.js +21 -0
  34. package/cjs/plugin/chart/resize-zoom/index.js.map +1 -0
  35. package/cjs/plugin/chart/resize-zoom/zoom.d.ts +21 -0
  36. package/cjs/plugin/chart/resize-zoom/zoom.js +62 -0
  37. package/cjs/plugin/chart/resize-zoom/zoom.js.map +1 -0
  38. package/esm/chart/box-plot/box-plot.js +4 -1
  39. package/esm/chart/box-plot/box-plot.js.map +1 -1
  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/vchart.js +2 -1
  50. package/esm/core/vchart.js.map +1 -1
  51. package/esm/layout/base-layout.d.ts +2 -2
  52. package/esm/layout/base-layout.js +12 -7
  53. package/esm/layout/base-layout.js.map +1 -1
  54. package/esm/layout/interface.d.ts +1 -0
  55. package/esm/layout/interface.js.map +1 -1
  56. package/esm/plugin/chart/index.d.ts +1 -0
  57. package/esm/plugin/chart/index.js +2 -0
  58. package/esm/plugin/chart/index.js.map +1 -1
  59. package/esm/plugin/chart/interface.d.ts +2 -0
  60. package/esm/plugin/chart/interface.js.map +1 -1
  61. package/esm/plugin/chart/plugin-service.d.ts +1 -0
  62. package/esm/plugin/chart/plugin-service.js +5 -0
  63. package/esm/plugin/chart/plugin-service.js.map +1 -1
  64. package/esm/plugin/chart/resize-zoom/index.d.ts +1 -0
  65. package/esm/plugin/chart/resize-zoom/index.js +2 -0
  66. package/esm/plugin/chart/resize-zoom/index.js.map +1 -0
  67. package/esm/plugin/chart/resize-zoom/zoom.d.ts +21 -0
  68. package/esm/plugin/chart/resize-zoom/zoom.js +59 -0
  69. package/esm/plugin/chart/resize-zoom/zoom.js.map +1 -0
  70. package/package.json +5 -5
package/build/index.es.js CHANGED
@@ -6165,6 +6165,87 @@ const bin = (data, options) => {
6165
6165
  return out;
6166
6166
  };
6167
6167
 
6168
+ const boxplot = (data, options) => {
6169
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
6170
+ const field = null == options ? void 0 : options.field;
6171
+ if (!field) return [];
6172
+ const groupField = null == options ? void 0 : options.groupField;
6173
+ let whiskers = null !== (_a = null == options ? void 0 : options.whiskers) && void 0 !== _a ? _a : 1.5;
6174
+ const includeValues = !!(null == options ? void 0 : options.includeValues),
6175
+ names = null !== (_b = null == options ? void 0 : options.outputNames) && void 0 !== _b ? _b : {},
6176
+ keyName = null !== (_c = names.key) && void 0 !== _c ? _c : isArray$1(groupField) ? null : null !== (_d = groupField) && void 0 !== _d ? _d : "key",
6177
+ countName = null !== (_e = names.count) && void 0 !== _e ? _e : "count",
6178
+ meanName = null !== (_f = names.mean) && void 0 !== _f ? _f : "mean",
6179
+ q1Name = null !== (_g = names.q1) && void 0 !== _g ? _g : "q1",
6180
+ medianName = null !== (_h = names.median) && void 0 !== _h ? _h : "median",
6181
+ q3Name = null !== (_j = names.q3) && void 0 !== _j ? _j : "q3",
6182
+ iqrName = null !== (_k = names.iqr) && void 0 !== _k ? _k : "iqr",
6183
+ minName = null !== (_l = names.min) && void 0 !== _l ? _l : "min",
6184
+ maxName = null !== (_m = names.max) && void 0 !== _m ? _m : "max",
6185
+ lowerWhiskerName = null !== (_o = names.lowerWhisker) && void 0 !== _o ? _o : "lowerWhisker",
6186
+ upperWhiskerName = null !== (_p = names.upperWhisker) && void 0 !== _p ? _p : "upperWhisker",
6187
+ outliersName = null !== (_q = names.outliers) && void 0 !== _q ? _q : "outliers",
6188
+ valuesName = null !== (_r = names.values) && void 0 !== _r ? _r : "values",
6189
+ groups = new Map(),
6190
+ rawValues = new Map(),
6191
+ keyToGroup = new Map(),
6192
+ n = data.length;
6193
+ for (let i = 0; i < n; i++) {
6194
+ const d = data[i],
6195
+ v = d[field];
6196
+ if (isNil$1(v)) continue;
6197
+ const num = +v;
6198
+ if (!Number.isFinite(num)) continue;
6199
+ let key;
6200
+ key = isArray$1(groupField) ? groupField.map(f => String(d[f])).join("||") : groupField ? String(d[groupField]) : "___all", groups.has(key) || (groups.set(key, []), includeValues && rawValues.set(key, []), isArray$1(groupField) ? keyToGroup.set(key, Object.fromEntries(groupField.map(f => [f, d[f]]))) : keyToGroup.set(key, groupField ? d[groupField] : null));
6201
+ const arr = groups.get(key);
6202
+ if (arr && arr.push(num), includeValues) {
6203
+ const rv = rawValues.get(key);
6204
+ rv && rv.push(d);
6205
+ }
6206
+ }
6207
+ if (isArray$1(whiskers)) {
6208
+ whiskers = [clamp$1(Math.min.apply(null, whiskers), 0, 1), clamp$1(Math.max.apply(null, whiskers), 0, 1)];
6209
+ }
6210
+ const out = [];
6211
+ for (const [key, vals] of groups) {
6212
+ if (!vals || 0 === vals.length) continue;
6213
+ const sorted = vals.slice().sort((a, b) => a - b),
6214
+ count = sorted.length,
6215
+ dataMin = sorted[0],
6216
+ dataMax = sorted[sorted.length - 1];
6217
+ let sum = 0;
6218
+ for (let i = 0; i < sorted.length; i++) sum += sorted[i];
6219
+ const mean = sum / count,
6220
+ q1 = quantileSorted(sorted, .25),
6221
+ median = quantileSorted(sorted, .5),
6222
+ q3 = quantileSorted(sorted, .75),
6223
+ iqr = q3 - q1,
6224
+ lowerBound = isArray$1(whiskers) ? quantileSorted(sorted, whiskers[0]) : q1 - whiskers * iqr,
6225
+ upperBound = isArray$1(whiskers) ? quantileSorted(sorted, whiskers[1]) : q3 + whiskers * iqr;
6226
+ let lowerWhisker = dataMin;
6227
+ for (let i = 0; i < sorted.length; i++) if (sorted[i] >= lowerBound) {
6228
+ lowerWhisker = sorted[i];
6229
+ break;
6230
+ }
6231
+ let upperWhisker = dataMax;
6232
+ for (let i = sorted.length - 1; i >= 0; i--) if (sorted[i] <= upperBound) {
6233
+ upperWhisker = sorted[i];
6234
+ break;
6235
+ }
6236
+ const outliers = [];
6237
+ for (let i = 0; i < sorted.length; i++) (sorted[i] < lowerWhisker || sorted[i] > upperWhisker) && outliers.push(sorted[i]);
6238
+ const obj = {},
6239
+ representative = keyToGroup.get(key);
6240
+ if (null !== keyName) obj[keyName] = representative;else if (isArray$1(groupField)) {
6241
+ const groupObj = representative || {};
6242
+ for (const f of groupField) obj[f] = groupObj[f];
6243
+ }
6244
+ obj[countName] = count, obj[meanName] = mean, obj[q1Name] = q1, obj[medianName] = median, obj[q3Name] = q3, obj[iqrName] = iqr, obj[minName] = dataMin, obj[maxName] = dataMax, obj[lowerWhiskerName] = lowerWhisker, obj[upperWhiskerName] = upperWhisker, obj[outliersName] = outliers, includeValues && (obj[valuesName] = rawValues.get(key) || []), out.push(obj);
6245
+ }
6246
+ return out;
6247
+ };
6248
+
6168
6249
  var EOL = {},
6169
6250
  EOF = {},
6170
6251
  QUOTE = 34,
@@ -54177,11 +54258,13 @@ let Layout$1 = class Layout {
54177
54258
  };
54178
54259
  }
54179
54260
  layoutItems(_chart, items, chartLayoutRect, chartViewBox) {
54261
+ var _a, _b, _c;
54180
54262
  this._layoutInit(_chart, items, chartLayoutRect, chartViewBox);
54181
54263
  const recompute = {
54182
54264
  recomputeWidth: this.recomputeWidth,
54183
54265
  recomputeHeight: this.recomputeHeight
54184
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;
54185
54268
  this._layoutNormalItems(items, recompute);
54186
54269
  const layoutTemp = {
54187
54270
  left: this.leftCurrent,
@@ -54190,8 +54273,8 @@ let Layout$1 = class Layout {
54190
54273
  bottom: this.bottomCurrent
54191
54274
  };
54192
54275
  const { regionItems, relativeItems, relativeOverlapItems, allRelatives, overlapItems } = this._groupItems(items);
54193
- this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute);
54194
- 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);
54195
54278
  this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));
54196
54279
  items.forEach(item => {
54197
54280
  item.clearWillLayoutTag();
@@ -54203,7 +54286,7 @@ let Layout$1 = class Layout {
54203
54286
  top: { items: [], rect: { width: 0, height: 0 } },
54204
54287
  bottom: { items: [], rect: { width: 0, height: 0 } },
54205
54288
  z: { items: [], rect: { width: 0, height: 0 } }
54206
- }, allRelatives, layoutTemp, recompute) {
54289
+ }, allRelatives, layoutTemp, recompute, secondLayoutLeftRight = false) {
54207
54290
  if (allRelatives.some(i => i.autoIndent)) {
54208
54291
  const { top, bottom, left, right } = this._checkAutoIndent(allRelatives, layoutTemp);
54209
54292
  if (top || bottom || left || right) {
@@ -54211,7 +54294,7 @@ let Layout$1 = class Layout {
54211
54294
  this.bottomCurrent = layoutTemp.bottom - bottom;
54212
54295
  this.leftCurrent = layoutTemp.left + left;
54213
54296
  this.rightCurrent = layoutTemp.right - right;
54214
- this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute);
54297
+ this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems, recompute, secondLayoutLeftRight);
54215
54298
  }
54216
54299
  }
54217
54300
  }
@@ -54364,7 +54447,9 @@ let Layout$1 = class Layout {
54364
54447
  top: { items: [], rect: { width: 0, height: 0 } },
54365
54448
  bottom: { items: [], rect: { width: 0, height: 0 } },
54366
54449
  z: { items: [], rect: { width: 0, height: 0 } }
54367
- }, recompute) {
54450
+ }, recompute, secondLayoutLeftRight = false) {
54451
+ const leftBeforeLayout = this.leftCurrent;
54452
+ const rightBeforeLayout = this.rightCurrent;
54368
54453
  let regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;
54369
54454
  let regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
54370
54455
  regionRelativeItems
@@ -54383,6 +54468,16 @@ let Layout$1 = class Layout {
54383
54468
  this._layoutRelativeOverlap('top', overlapItems.top, recompute);
54384
54469
  this._layoutRelativeOverlap('bottom', overlapItems.bottom, recompute);
54385
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
+ }
54386
54481
  const { regionWidth, regionHeight } = this._layoutRegionItem(regionItems, regionRelativeTotalWidth, regionRelativeTotalHeight);
54387
54482
  regionRelativeItems.concat(regionRelativeOverlapItems).forEach(item => {
54388
54483
  if (['left', 'right'].includes(item.layoutOrient)) {
@@ -56696,6 +56791,11 @@ class ChartPluginService extends BasePluginService {
56696
56791
  plugin.onBeforeInitChart && plugin.onBeforeInitChart(this, chartSpec, actionSource);
56697
56792
  });
56698
56793
  }
56794
+ onAfterInitChart(chartSpec, actionSource) {
56795
+ this._plugins.forEach(plugin => {
56796
+ plugin.onAfterInitChart && plugin.onAfterInitChart(this, chartSpec, actionSource);
56797
+ });
56798
+ }
56699
56799
  releaseAll() {
56700
56800
  super.releaseAll();
56701
56801
  this.globalInstance = null;
@@ -57783,6 +57883,7 @@ class VChart {
57783
57883
  if (!this._chart || !this._compiler) {
57784
57884
  return false;
57785
57885
  }
57886
+ this._chartPluginApply('onAfterInitChart', this._spec, actionSource);
57786
57887
  (_f = (_e = this._option.performanceHook) === null || _e === void 0 ? void 0 : _e.beforeCompileToVGrammar) === null || _f === void 0 ? void 0 : _f.call(_e, this);
57787
57888
  this._compiler.compile({ chart: this._chart, vChart: this }, option);
57788
57889
  (_h = (_g = this._option.performanceHook) === null || _g === void 0 ? void 0 : _g.afterCompileToVGrammar) === null || _h === void 0 ? void 0 : _h.call(_g, this);
@@ -58765,7 +58866,7 @@ const lookup = (data, opt) => {
58765
58866
  });
58766
58867
  };
58767
58868
 
58768
- const version = "2.0.7-alpha.4";
58869
+ const version = "2.0.7-alpha.6";
58769
58870
 
58770
58871
  const addVChartProperty = (data, op) => {
58771
58872
  const context = op.beforeCall();
@@ -90022,6 +90123,7 @@ const registerBoxplotChart = () => {
90022
90123
  registerDimensionEvents();
90023
90124
  registerDimensionHover();
90024
90125
  registerBoxplotSeries();
90126
+ Factory.registerTransform('boxplot', boxplot);
90025
90127
  Factory.registerChart(BoxPlotChart.type, BoxPlotChart);
90026
90128
  };
90027
90129
 
@@ -90256,7 +90358,12 @@ function transformLegendTitleAttributes(title) {
90256
90358
  }
90257
90359
 
90258
90360
  function getLegendAttributes(spec, rect) {
90259
- 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);
90260
90367
  const attrs = restSpec;
90261
90368
  if (title.visible) {
90262
90369
  attrs.title = transformLegendTitleAttributes(title);
@@ -92256,7 +92363,7 @@ class BaseCrossHair extends BaseComponent {
92256
92363
  return;
92257
92364
  }
92258
92365
  this.clearOutEvent();
92259
- this.hide();
92366
+ this.hideCrosshair();
92260
92367
  };
92261
92368
  this._handleTooltipShow = (params) => {
92262
92369
  const tooltipData = params.tooltipData;
@@ -92278,7 +92385,7 @@ class BaseCrossHair extends BaseComponent {
92278
92385
  };
92279
92386
  this._handleTooltipHideOrRelease = () => {
92280
92387
  this.clearOutEvent();
92281
- this.hide();
92388
+ this.hideCrosshair();
92282
92389
  };
92283
92390
  this.enable = true;
92284
92391
  this.showDefault = true;
@@ -92346,17 +92453,20 @@ class BaseCrossHair extends BaseComponent {
92346
92453
  return this._limitBounds;
92347
92454
  }
92348
92455
  _showDefaultCrosshairBySpec() {
92456
+ let hasDefaultCrosshair = false;
92349
92457
  Object.keys(this._stateByField).forEach(field => {
92350
92458
  const fieldSpec = this._spec[field];
92351
92459
  if (fieldSpec && fieldSpec.visible && fieldSpec.defaultSelect) {
92352
92460
  const { axisIndex = 0, datum } = fieldSpec.defaultSelect;
92353
92461
  const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex);
92354
92462
  if (axis) {
92463
+ hasDefaultCrosshair = true;
92355
92464
  this._stateByField[field].currentValue.clear();
92356
92465
  this._stateByField[field].currentValue.set(axisIndex, { axis, datum });
92357
92466
  }
92358
92467
  }
92359
92468
  });
92469
+ return hasDefaultCrosshair;
92360
92470
  }
92361
92471
  _updateVisibleCrosshair() {
92362
92472
  let hasVisible = false;
@@ -92375,8 +92485,8 @@ class BaseCrossHair extends BaseComponent {
92375
92485
  }
92376
92486
  _showDefaultCrosshair() {
92377
92487
  if (this.showDefault) {
92378
- this._showDefaultCrosshairBySpec();
92379
- this.layoutByValue(false);
92488
+ const hasDefault = this._showDefaultCrosshairBySpec();
92489
+ hasDefault && this.layoutByValue(false);
92380
92490
  }
92381
92491
  else {
92382
92492
  this._updateVisibleCrosshair();
@@ -101910,6 +102020,79 @@ const registerMediaQuery = () => {
101910
102020
  registerChartPlugin(MediaQuery);
101911
102021
  };
101912
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
+
101913
102096
  function registerStateTransition() {
101914
102097
  const animationTransitionRegistry = AnimationTransitionRegistry.getInstance();
101915
102098
  animationTransitionRegistry.registerTransition('update', '*', () => ({
@@ -102295,4 +102478,4 @@ function registerSequentialAnimate() {
102295
102478
  mixin(BaseMark, SequentialAnimate);
102296
102479
  }
102297
102480
 
102298
- 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 };