@visactor/vchart 1.13.21-alpha.1 → 1.13.21-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +267 -20
  3. package/build/index.js +268 -19
  4. package/build/index.min.js +1 -1
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/sankey/sankey-transformer.js +1 -1
  7. package/cjs/chart/sankey/sankey-transformer.js.map +1 -1
  8. package/cjs/constant/funnel.js +2 -1
  9. package/cjs/constant/sunburst.js +1 -2
  10. package/cjs/core/index.d.ts +1 -1
  11. package/cjs/core/index.js +1 -1
  12. package/cjs/core/index.js.map +1 -1
  13. package/cjs/core/interface.js +2 -1
  14. package/cjs/core/vchart.d.ts +2 -0
  15. package/cjs/core/vchart.js +4 -2
  16. package/cjs/core/vchart.js.map +1 -1
  17. package/cjs/data/transforms/sankey.d.ts +2 -0
  18. package/cjs/data/transforms/sankey.js +2 -1
  19. package/cjs/data/transforms/sankey.js.map +1 -1
  20. package/cjs/plugin/chart/index.d.ts +1 -0
  21. package/cjs/plugin/chart/index.js +1 -1
  22. package/cjs/plugin/chart/index.js.map +1 -1
  23. package/cjs/plugin/chart/plugin-service.d.ts +1 -0
  24. package/cjs/plugin/chart/plugin-service.js +3 -0
  25. package/cjs/plugin/chart/plugin-service.js.map +1 -1
  26. package/cjs/plugin/chart/scroll/index.js.map +1 -1
  27. package/cjs/plugin/chart/scroll/scroll.d.ts +16 -2
  28. package/cjs/plugin/chart/scroll/scroll.js +98 -23
  29. package/cjs/plugin/chart/scroll/scroll.js.map +1 -1
  30. package/cjs/series/sankey/interface.d.ts +4 -0
  31. package/cjs/series/sankey/interface.js.map +1 -1
  32. package/cjs/series/sankey/sankey.js +3 -1
  33. package/cjs/series/sankey/sankey.js.map +1 -1
  34. package/esm/chart/sankey/sankey-transformer.js +1 -1
  35. package/esm/chart/sankey/sankey-transformer.js.map +1 -1
  36. package/esm/constant/funnel.js +2 -1
  37. package/esm/constant/sunburst.js +1 -2
  38. package/esm/core/index.d.ts +1 -1
  39. package/esm/core/index.js +1 -1
  40. package/esm/core/index.js.map +1 -1
  41. package/esm/core/interface.js +2 -1
  42. package/esm/core/vchart.d.ts +2 -0
  43. package/esm/core/vchart.js +4 -2
  44. package/esm/core/vchart.js.map +1 -1
  45. package/esm/data/transforms/sankey.d.ts +2 -0
  46. package/esm/data/transforms/sankey.js +2 -1
  47. package/esm/data/transforms/sankey.js.map +1 -1
  48. package/esm/plugin/chart/index.d.ts +1 -0
  49. package/esm/plugin/chart/index.js +2 -0
  50. package/esm/plugin/chart/index.js.map +1 -1
  51. package/esm/plugin/chart/plugin-service.d.ts +1 -0
  52. package/esm/plugin/chart/plugin-service.js +3 -0
  53. package/esm/plugin/chart/plugin-service.js.map +1 -1
  54. package/esm/plugin/chart/scroll/index.js.map +1 -1
  55. package/esm/plugin/chart/scroll/scroll.d.ts +16 -2
  56. package/esm/plugin/chart/scroll/scroll.js +102 -23
  57. package/esm/plugin/chart/scroll/scroll.js.map +1 -1
  58. package/esm/series/sankey/interface.d.ts +4 -0
  59. package/esm/series/sankey/interface.js.map +1 -1
  60. package/esm/series/sankey/sankey.js +3 -1
  61. package/esm/series/sankey/sankey.js.map +1 -1
  62. package/package.json +10 -10
package/build/index.es.js CHANGED
@@ -31833,8 +31833,8 @@ const DEFAULT_HTML_TEXT_SPEC = {
31833
31833
  style: {}
31834
31834
  };
31835
31835
  const SCROLLBAR_START_EVENT = "scrollDown";
31836
- const SCROLLBAR_EVENT$1 = "scrollDrag";
31837
- const SCROLLBAR_END_EVENT$1 = "scrollUp";
31836
+ const SCROLLBAR_EVENT$2 = "scrollDrag";
31837
+ const SCROLLBAR_END_EVENT$2 = "scrollUp";
31838
31838
 
31839
31839
  function getEndTriggersOfDrag() {
31840
31840
  return "browser" === vglobal.env ? ["pointerup", "pointerleave", "pointercancel"] : ["pointerup", "pointerleave", "pointerupoutside"];
@@ -31929,7 +31929,7 @@ let ScrollBar$1 = class ScrollBar extends AbstractComponent {
31929
31929
  preScrollRange = this.getScrollRange(),
31930
31930
  [currentPos, currentScrollValue] = this._computeScrollValue(e),
31931
31931
  range = [preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue];
31932
- this._prePos = null, this._dispatchEvent(SCROLLBAR_END_EVENT$1, {
31932
+ this._prePos = null, this._dispatchEvent(SCROLLBAR_END_EVENT$2, {
31933
31933
  pre: preRange,
31934
31934
  value: clampRange$1(range, limitRange[0], limitRange[1])
31935
31935
  }), this._clearDragEvents();
@@ -31957,7 +31957,7 @@ let ScrollBar$1 = class ScrollBar extends AbstractComponent {
31957
31957
  }, !0), this.stage && !this.stage.autoRender && this.stage.renderNextFrame();
31958
31958
  }
31959
31959
  }
31960
- this.attribute.range = currScrollRange, realTime && this._dispatchEvent(SCROLLBAR_EVENT$1, {
31960
+ this.attribute.range = currScrollRange, realTime && this._dispatchEvent(SCROLLBAR_EVENT$2, {
31961
31961
  pre: preRange,
31962
31962
  value: currScrollRange
31963
31963
  });
@@ -32196,7 +32196,7 @@ let ScrollBarPlugin = ScrollBarPlugin_1 = class {
32196
32196
  scrollbar.setAttribute("visibleAll", !0);
32197
32197
  }), scrollbar.addEventListener("pointerout", () => {
32198
32198
  scrollbar.setAttribute("visibleAll", !0);
32199
- }), scrollbar.addEventListener("scrollUp", this.handleScrollBarChange), scrollbar.addEventListener(SCROLLBAR_EVENT$1, this.handleScrollBarChange);
32199
+ }), scrollbar.addEventListener("scrollUp", this.handleScrollBarChange), scrollbar.addEventListener(SCROLLBAR_EVENT$2, this.handleScrollBarChange);
32200
32200
  }
32201
32201
  addOrUpdateScroll(showH, showV, container, scrollContainer) {
32202
32202
  if (showH) {
@@ -62888,6 +62888,9 @@ class ChartPluginService extends BasePluginService {
62888
62888
  super();
62889
62889
  this.globalInstance = globalInstance;
62890
62890
  }
62891
+ getPlugin(name) {
62892
+ return this._plugins.find(plugin => plugin.name === name);
62893
+ }
62891
62894
  onInit(chartSpec) {
62892
62895
  this._plugins.forEach(plugin => {
62893
62896
  plugin.onInit && plugin.onInit(this, chartSpec);
@@ -63048,6 +63051,9 @@ class VChart {
63048
63051
  getDataSet() {
63049
63052
  return this._dataSet;
63050
63053
  }
63054
+ get chartPlugin() {
63055
+ return this._chartPlugin;
63056
+ }
63051
63057
  constructor(spec, options) {
63052
63058
  var _a, _b, _c, _d, _e, _f, _g, _h;
63053
63059
  this.id = createID();
@@ -64268,7 +64274,7 @@ const registerVChartCore = () => {
64268
64274
  };
64269
64275
  registerVChartCore();
64270
64276
 
64271
- const version = "1.13.21-alpha.1";
64277
+ const version = "1.13.21-alpha.3";
64272
64278
 
64273
64279
  const addVChartProperty = (data, op) => {
64274
64280
  const context = op.beforeCall();
@@ -85797,7 +85803,10 @@ class SankeyLayout {
85797
85803
  this._ascendingSourceBreadth = (a, b) => ascendingNodeBreadth(this._nodeMap[a.source], this._nodeMap[b.source]) || a.index - b.index, this._ascendingTargetBreadth = (a, b) => ascendingNodeBreadth(this._nodeMap[a.target], this._nodeMap[b.target]) || a.index - b.index, this.options = Object.assign({}, SankeyLayout.defaultOptions, options);
85798
85804
  const keyOption = this.options.nodeKey,
85799
85805
  keyFunc = isFunction$1(keyOption) ? keyOption : keyOption ? field$3(keyOption) : null;
85800
- this._getNodeKey = keyFunc, this._logger = Logger.getInstance(), this._alignFunc = isFunction$1(this.options.setNodeLayer) ? node => this.options.setNodeLayer(node.datum) : alignFunctions[this.options.nodeAlign];
85806
+ this._getNodeKey = keyFunc;
85807
+ const depthOption = this.options.depthKey,
85808
+ depthFunc = isFunction$1(depthOption) ? depthOption : depthOption ? field$3(depthOption) : null;
85809
+ this._getNodeDepth = depthFunc, this._logger = Logger.getInstance(), this._alignFunc = isFunction$1(this.options.setNodeLayer) ? node => this.options.setNodeLayer(node.datum) : alignFunctions[this.options.nodeAlign];
85801
85810
  }
85802
85811
  layout(data, config) {
85803
85812
  if (!data) return null;
@@ -85902,11 +85911,12 @@ class SankeyLayout {
85902
85911
  calculateNodeValue(originalNodes);
85903
85912
  const doSubTree = (subTree, depth, parents) => {
85904
85913
  subTree.forEach((node, index) => {
85914
+ var _a;
85905
85915
  const nodeKey = this._getNodeKey ? this._getNodeKey(node) : parents ? `${parents[parents.length - 1].key}-${index}` : `${depth}-${index}`,
85906
85916
  nodeValue = isNil$1(node.value) ? 0 : toValidNumber$1(node.value);
85907
85917
  if (nodeMap[nodeKey]) nodeMap[nodeKey].value = void 0;else {
85908
85918
  const nodeElement = {
85909
- depth: depth,
85919
+ depth: this._getNodeDepth && null !== (_a = this._getNodeDepth(node)) && void 0 !== _a ? _a : depth,
85910
85920
  datum: node,
85911
85921
  index: index,
85912
85922
  key: nodeKey,
@@ -86024,7 +86034,7 @@ class SankeyLayout {
86024
86034
  }
86025
86035
  }
86026
86036
  computeNodeDepths(nodes) {
86027
- var _a;
86037
+ var _a, _b;
86028
86038
  const n = nodes.length;
86029
86039
  let next,
86030
86040
  nextMap,
@@ -86036,9 +86046,12 @@ class SankeyLayout {
86036
86046
  next = [], nextMap = {};
86037
86047
  for (let i = 0, curLen = current.length; i < curLen; i++) {
86038
86048
  const node = current[i];
86039
- if (node && (node.depth = setNodeLayer && null !== (_a = setNodeLayer(node.datum)) && void 0 !== _a ? _a : depth, setNodeLayer && (maxDepth = Math.max(node.depth, maxDepth)), node.sourceLinks && node.sourceLinks.length)) for (let j = 0, linkLen = node.sourceLinks.length; j < linkLen; j++) {
86040
- const link = node.sourceLinks[j];
86041
- nextMap[link.target] || (next.push(this._nodeMap[link.target]), nextMap[link.target] = !0);
86049
+ if (node) {
86050
+ const tempDepth = setNodeLayer && null !== (_a = setNodeLayer(node.datum)) && void 0 !== _a ? _a : depth;
86051
+ if (node.depth = this._getNodeDepth && null !== (_b = this._getNodeDepth(node.datum)) && void 0 !== _b ? _b : tempDepth, setNodeLayer && (maxDepth = Math.max(node.depth, maxDepth)), node.sourceLinks && node.sourceLinks.length) for (let j = 0, linkLen = node.sourceLinks.length; j < linkLen; j++) {
86052
+ const link = node.sourceLinks[j];
86053
+ nextMap[link.target] || (next.push(this._nodeMap[link.target]), nextMap[link.target] = !0);
86054
+ }
86042
86055
  }
86043
86056
  }
86044
86057
  current = next, depth += 1;
@@ -86442,7 +86455,12 @@ const sankeyLayout = (data, op) => {
86442
86455
  }
86443
86456
  const layout = new SankeyLayout(op);
86444
86457
  const result = [];
86445
- result.push(layout.layout(originalData, view));
86458
+ if (op.customLayout) {
86459
+ result.push(op.customLayout(layout, originalData, view, op));
86460
+ }
86461
+ else {
86462
+ result.push(layout.layout(originalData, view));
86463
+ }
86446
86464
  return result;
86447
86465
  };
86448
86466
 
@@ -86762,6 +86780,7 @@ class SankeySeries extends CartesianSeries {
86762
86780
  maxLinkHeight: this._spec.maxLinkHeight,
86763
86781
  iterations: this._spec.iterations,
86764
86782
  nodeKey: this._spec.nodeKey,
86783
+ depthKey: this._spec.depthKey,
86765
86784
  linkSortBy: this._spec.linkSortBy,
86766
86785
  nodeSortBy: this._spec.nodeSortBy,
86767
86786
  setNodeLayer: this._spec.setNodeLayer,
@@ -86770,7 +86789,8 @@ class SankeySeries extends CartesianSeries {
86770
86789
  linkHeight: this._spec.linkHeight,
86771
86790
  equalNodeHeight: this._spec.equalNodeHeight,
86772
86791
  linkOverlap: this._spec.linkOverlap,
86773
- inverse: this._spec.inverse
86792
+ inverse: this._spec.inverse,
86793
+ customLayout: this._spec.customLayout
86774
86794
  },
86775
86795
  level: TransformLevel.sankeyLayout
86776
86796
  });
@@ -92704,6 +92724,7 @@ class SankeyChartSpecTransformer extends BaseChartSpecTransformer {
92704
92724
  'linkOverlap',
92705
92725
  'iterations',
92706
92726
  'nodeKey',
92727
+ 'depthKey',
92707
92728
  'linkSortBy',
92708
92729
  'nodeSortBy',
92709
92730
  'setNodeLayer',
@@ -92711,7 +92732,8 @@ class SankeyChartSpecTransformer extends BaseChartSpecTransformer {
92711
92732
  'link',
92712
92733
  'emphasis',
92713
92734
  'inverse',
92714
- 'overflow'
92735
+ 'overflow',
92736
+ 'customLayout'
92715
92737
  ]);
92716
92738
  return series;
92717
92739
  }
@@ -97494,8 +97516,8 @@ const registerDataZoom = () => {
97494
97516
  Factory$1.registerComponent(DataZoom.type, DataZoom);
97495
97517
  };
97496
97518
 
97497
- const SCROLLBAR_EVENT = 'scrollDrag';
97498
- const SCROLLBAR_END_EVENT = 'scrollUp';
97519
+ const SCROLLBAR_EVENT$1 = 'scrollDrag';
97520
+ const SCROLLBAR_END_EVENT$1 = 'scrollUp';
97499
97521
  class ScrollBar extends DataFilterBaseComponent {
97500
97522
  constructor(spec, options) {
97501
97523
  var _a;
@@ -97565,11 +97587,11 @@ class ScrollBar extends DataFilterBaseComponent {
97565
97587
  else {
97566
97588
  const container = this.getContainer();
97567
97589
  this._component = new ScrollBar$1(attrs);
97568
- this._component.addEventListener(SCROLLBAR_EVENT, (e) => {
97590
+ this._component.addEventListener(SCROLLBAR_EVENT$1, (e) => {
97569
97591
  const value = e.detail.value;
97570
97592
  this._handleChange(value[0], value[1]);
97571
97593
  });
97572
- this._component.addEventListener(SCROLLBAR_END_EVENT, (e) => {
97594
+ this._component.addEventListener(SCROLLBAR_END_EVENT$1, (e) => {
97573
97595
  const value = e.detail.value;
97574
97596
  this._handleChange(value[0], value[1]);
97575
97597
  });
@@ -104663,4 +104685,229 @@ const registerMediaQuery = () => {
104663
104685
  registerChartPlugin(MediaQuery);
104664
104686
  };
104665
104687
 
104666
- export { Arc3dMark, ArcMark, AreaChart, AreaMark, AreaSeries, AttributeLevel, AxisSyncPlugin, Bar3dChart, Bar3dSeries, BarChart, BarSeries, BaseChart, BaseChartSpecTransformer, BaseMark, BaseSeries, BoxPlotChart, BoxPlotSeries, Brush, CanvasTooltipHandler, CartesianAxis, CartesianBandAxis, CartesianChartSpecTransformer, CartesianCrossHair, CartesianLinearAxis, CartesianLogAxis, CartesianMarkArea, CartesianMarkLine, CartesianMarkPoint, CartesianSeries, CartesianSymlogAxis, CartesianTimeAxis, CirclePackingChart, CirclePackingSeries, CircularProgressChart, CircularProgressSeries, CommonChart, CommonChartSpecTransformer, ComponentMark, ComposedEventMapper, ContinuousLegend, CorrelationChart, CorrelationSeries, CustomMark, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD, DEFAULT_MEASURE_CANVAS_ID, DEFAULT_SERIES_STYLE_NAME, DataZoom, DimensionClickEvent, DimensionEventEnum, DimensionHoverEvent, DiscreteLegend, DomTooltipHandler, DotSeries, Event$1 as Event, Factory$1 as Factory, FormatterPlugin, Funnel3dChart, Funnel3dSeries, FunnelChart, FunnelSeries, GaugeChart, GaugePointerSeries, GaugeSeries, GeoCoordinate, GeoMarkPoint, GridLayout, GroupMark, HeatmapChart, HeatmapSeries, Histogram3dChart, HistogramChart, ImageMark, Indicator, Label, Layout$1 as Layout, Layout3d, LineChart, LineMark, LineSeries, LinearProgressChart, LinearProgressSeries, LinkPathMark, LinkSeries, LiquidChart, LiquidSeries, MOSAIC_CAT_END_PERCENT, MOSAIC_CAT_START_PERCENT, MOSAIC_VALUE_END_PERCENT, MOSAIC_VALUE_START_PERCENT, ManualTicker, MapChart, MapLabelComponent, MapSeries, MediaQuery, MosaicChart, MosaicSeries, PREFIX, PathMark, PictogramChart, PictogramSeries, Pie3dChart, Pie3dSeries, PieChart, PieSeries, Player, PolarAxis, PolarBandAxis, PolarCrossHair, PolarLinearAxis, PolarMarkArea, PolarMarkLine, PolarMarkPoint, PolarSeries, PolygonMark, ProgressLikeSeries, Pyramid3dMark, RadarChart, RadarSeries, RangeAreaChart, RangeAreaSeries, RangeColumn3dChart, RangeColumn3dSeries, RangeColumnChart, RangeColumnSeries, Rect3dMark, 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, STATE_VALUE_ENUM_REVERSE, SankeyChart, SankeyChartSpecTransformer, SankeySeries, ScatterChart, ScatterSeries, ScrollBar, SequenceChart, SeriesMarkNameEnum, SeriesTypeEnum, SeriesTypeForThemeEnum, StreamLight, SunburstChart, SunburstSeries, SymbolMark, TextMark, ThemeManager$1 as ThemeManager, Title, Tooltip, TooltipResult, TotalLabel, TreemapChart, TreemapSeries, VChart, VennChart, VennSeries, WaterfallChart, WaterfallSeries, WordCloud3dChart, WordCloud3dSeries, WordCloudChart, WordCloudSeries, alternatingWave, builtinThemes, centerToCorner, columnCenterToEdge, columnEdgeToCenter, columnLeftToRight, columnRightToLeft, computeActualDataScheme, cornerToCenter, createArc, createArea, createGroup, createLine, createRect, createRichText, createSymbol, createText, darkTheme$1 as darkTheme, dataScheme, VChart as default, defaultThemeName, diagonalCenterToEdge, diagonalTopLeftToBottomRight, functionTransform, getActualColor, getCartesianDimensionInfo, getColorSchemeBySeries, getDataScheme, getFieldAlias, getMergedTheme, getPolarDimensionInfo, getRegionStackGroup, getTheme, hasThemeMerged, isColorKey, isProgressiveDataColorScheme, isTokenKey, lightTheme, mergeFields, particleEffect, pulseWave, queryColorFromColorScheme, queryToken, randomOpacity, register3DPlugin, registerAllEnv, registerAllMarks, registerAnimate, registerArc3dMark, registerArcMark, registerAreaChart, registerAreaMark, registerAreaSeries, registerBar3dChart, registerBar3dSeries, registerBarChart, registerBarSeries, registerBoxplotChart, registerBoxplotSeries, registerBrowserEnv, registerBrush, registerCanvasTooltipHandler, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerChartPlugin, registerCirclePackingChart, registerCirclePackingSeries, registerCircularProgressChart, registerCircularProgressSeries, registerCommonChart, registerComponentMark, registerContinuousLegend, registerCorrelationChart, registerCustomMark, registerDataSetInstanceParser, registerDataSetInstanceTransform, registerDataZoom, registerDiscreteLegend, registerDomTooltipHandler, registerDotSeries, registerDragPlugin, registerFormatPlugin, registerFunnel3dChart, registerFunnel3dSeries, registerFunnelChart, registerFunnelSeries, registerGaugeChart, registerGaugePointerSeries, registerGaugeSeries, registerGeoCoordinate, registerGeoMarkPoint, registerGesturePlugin, registerGridLayout, registerGroupMark, registerHarmonyEnv, registerHeatmapChart, registerHeatmapSeries, registerHistogram3dChart, registerHistogramChart, registerHtmlAttributePlugin, registerImageMark, registerIndicator, registerLabel, registerLarkEnv, registerLayout3d, registerLineChart, registerLineMark, registerLineSeries, registerLinearProgressChart, registerLinearProgressSeries, registerLinkPathMark, registerLinkSeries, registerLiquidChart, registerLiquidSeries, registerLynxEnv, registerMapChart, registerMapLabel, registerMapSeries, registerMarkArea, registerMarkLine, registerMarkPoint, registerMediaQuery, registerMorph, registerMosaicChart, registerMosaicSeries, registerNodeEnv, registerPathMark, registerPictogramChart, registerPictogramSeries, registerPie3dChart, registerPie3dSeries, registerPieChart, registerPieSeries, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPolarMarkArea, registerPolarMarkLine, registerPolarMarkPoint, registerPolygonMark, registerPoptip, registerPyramid3dMark, registerRadarChart, registerRadarSeries, registerRangeAreaChart, registerRangeAreaSeries, registerRangeColumn3dChart, registerRangeColumn3dSeries, registerRangeColumnChart, registerRangeColumnSeries, registerReactAttributePlugin, registerRect3dMark, registerRectMark, registerRippleMark, registerRoseChart, registerRoseSeries, registerRuleMark, registerSankeyChart, registerSankeySeries, registerScatterChart, registerScatterSeries, registerScrollBar, registerSequenceChart, registerSunBurstSeries, registerSunburstChart, registerSymbolMark, registerTTEnv, registerTaroEnv, registerTextMark, registerTheme, registerTitle, registerTooltip, registerTotalLabel, registerTreemapChart, registerTreemapSeries, registerVennChart, registerVennSeries, registerWXEnv, registerWaterfallChart, registerWaterfallSeries, registerWordCloud3dChart, registerWordCloud3dSeries, registerWordCloudChart, registerWordCloudSeries, registerWordCloudShapeChart, removeTheme, rippleEffect, rotationScan, rowBottomToTop, rowCenterToEdge, rowEdgeToCenter, rowTopToBottom, snakeWave, sortStackValueGroup, specTransform, spiralEffect, stack, stackGroup, stackMosaic, stackMosaicTotal, stackOffsetSilhouette, stackTotal, themeExist, themes, token, transformColorSchemeToStandardStruct, version, vglobal };
104688
+ const SCROLLBAR_EVENT = 'scrollDrag';
104689
+ const SCROLLBAR_END_EVENT = 'scrollUp';
104690
+ const DefaultTheme = {
104691
+ size: 10,
104692
+ railStyle: undefined,
104693
+ sliderStyle: undefined
104694
+ };
104695
+ class ScrollPlugin extends BasePlugin {
104696
+ constructor() {
104697
+ super(ScrollPlugin.type);
104698
+ this.type = 'chartScroll';
104699
+ this.name = ScrollPlugin.type;
104700
+ this._lastScrollX = 0;
104701
+ this._lastScrollY = 0;
104702
+ this._scrollLimit = {
104703
+ x: {
104704
+ min: 0,
104705
+ max: 0,
104706
+ size: 0,
104707
+ percent: 0
104708
+ },
104709
+ y: {
104710
+ min: 0,
104711
+ max: 0,
104712
+ size: 0,
104713
+ percent: 0
104714
+ }
104715
+ };
104716
+ this.onWheel = (e) => {
104717
+ var _a, _b;
104718
+ const scrollX = e.deltaX;
104719
+ const scrollY = e.deltaY;
104720
+ const rootMark = this.getRootMark();
104721
+ if (!rootMark) {
104722
+ return;
104723
+ }
104724
+ const { percent: yPercent, y } = (_a = this._computeFinalScrollY(rootMark.attribute.y - scrollY)) !== null && _a !== void 0 ? _a : {};
104725
+ const { percent: xPercent, x } = (_b = this._computeFinalScrollX(rootMark.attribute.x - scrollX)) !== null && _b !== void 0 ? _b : {};
104726
+ const eventResult = {};
104727
+ if (isValidNumber$1(x)) {
104728
+ this._updateScrollX(rootMark, x, xPercent);
104729
+ eventResult.x = x;
104730
+ }
104731
+ if (isValidNumber$1(y)) {
104732
+ this._updateScrollY(rootMark, y, yPercent);
104733
+ eventResult.y = y;
104734
+ }
104735
+ this._event.emit('chartScroll', eventResult);
104736
+ };
104737
+ }
104738
+ onInit(service, chartSpec) {
104739
+ var _a;
104740
+ this._spec = (_a = chartSpec[ScrollPlugin.type]) !== null && _a !== void 0 ? _a : {};
104741
+ this._service = service;
104742
+ this._bindEvent(service);
104743
+ }
104744
+ onLayoutRectUpdate(service) {
104745
+ const viewBoxSize = service.globalInstance.getChart().getViewRect();
104746
+ const canvasSize = service.globalInstance.getChart().getCanvasRect();
104747
+ this._scrollLimit.x.min = Math.min(canvasSize.width - viewBoxSize.width, 0);
104748
+ this._scrollLimit.x.percent = Math.abs(canvasSize.width / viewBoxSize.width);
104749
+ this._scrollLimit.x.size = viewBoxSize.width;
104750
+ this._scrollLimit.y.min = Math.min(canvasSize.height - viewBoxSize.height, 0);
104751
+ this._scrollLimit.y.percent = Math.abs(canvasSize.height / viewBoxSize.height);
104752
+ this._scrollLimit.y.size = viewBoxSize.height;
104753
+ if (!this._event) {
104754
+ this._event = new Event$1(this._service.globalInstance.getChart().getOption().eventDispatcher, null);
104755
+ }
104756
+ }
104757
+ onAfterRender() {
104758
+ const rootMark = this.getRootMark();
104759
+ if (rootMark) {
104760
+ if (!this._xScrollComponent) {
104761
+ this._updateScrollX(rootMark, 0, 0);
104762
+ }
104763
+ if (!this._yScrollComponent) {
104764
+ this._updateScrollY(rootMark, 0, 0);
104765
+ }
104766
+ }
104767
+ }
104768
+ release() {
104769
+ var _a;
104770
+ (_a = this._service.globalInstance.getStage()) === null || _a === void 0 ? void 0 : _a.off('wheel', this.onWheel);
104771
+ }
104772
+ _bindEvent(service) {
104773
+ var _a;
104774
+ (_a = service.globalInstance.getStage()) === null || _a === void 0 ? void 0 : _a.on('wheel', this.onWheel);
104775
+ }
104776
+ getRootMark() {
104777
+ var _a;
104778
+ return (_a = this._service.globalInstance.getStage()) === null || _a === void 0 ? void 0 : _a.find(node => node.name === 'root', true);
104779
+ }
104780
+ _computeFinalScrollY(y) {
104781
+ var _a;
104782
+ if (this._lastScrollY === y) {
104783
+ return null;
104784
+ }
104785
+ this._lastScrollY = y;
104786
+ if (((_a = this._spec.y) === null || _a === void 0 ? void 0 : _a.enable) === false) {
104787
+ return null;
104788
+ }
104789
+ const finalY = Math.max(this._scrollLimit.y.min, Math.min(y, this._scrollLimit.y.max));
104790
+ const percent = Math.abs(finalY / this._scrollLimit.y.size);
104791
+ return {
104792
+ y: finalY,
104793
+ percent
104794
+ };
104795
+ }
104796
+ _computeFinalScrollX(x) {
104797
+ var _a;
104798
+ if (this._lastScrollX === x) {
104799
+ return null;
104800
+ }
104801
+ this._lastScrollX = x;
104802
+ if (((_a = this._spec.x) === null || _a === void 0 ? void 0 : _a.enable) === false) {
104803
+ return null;
104804
+ }
104805
+ const finalX = Math.max(this._scrollLimit.x.min, Math.min(x, this._scrollLimit.x.max));
104806
+ const percent = Math.abs(finalX / this._scrollLimit.x.size);
104807
+ return {
104808
+ x: finalX,
104809
+ percent
104810
+ };
104811
+ }
104812
+ _updateScrollY(rootMark, y, percent) {
104813
+ const yScrollComponent = this._getYScrollComponent();
104814
+ yScrollComponent.setAttribute('range', [percent, percent + this._scrollLimit.y.percent]);
104815
+ rootMark.setAttributes({
104816
+ y: y
104817
+ });
104818
+ }
104819
+ _getYScrollComponent() {
104820
+ var _a, _b, _c, _d, _e;
104821
+ if (!this._yScrollComponent) {
104822
+ const canvasSize = this._service.globalInstance.getChart().getCanvasRect();
104823
+ const viewSize = this._service.globalInstance.getChart().getViewRect();
104824
+ const _f = (_b = (_a = this._spec) === null || _a === void 0 ? void 0 : _a.y) !== null && _b !== void 0 ? _b : {}, rest = __rest$e(_f, ["enable"]);
104825
+ this._yScrollComponent = new ScrollBar$1(Object.assign(Object.assign({}, rest), { zIndex: 9999, x: canvasSize.width - DefaultTheme.size, y: 0, width: DefaultTheme.size, height: canvasSize.height, range: [0, canvasSize.height / viewSize.height], direction: 'vertical', delayTime: (_c = rest === null || rest === void 0 ? void 0 : rest.delayTime) !== null && _c !== void 0 ? _c : 30, realTime: (_d = rest === null || rest === void 0 ? void 0 : rest.realTime) !== null && _d !== void 0 ? _d : true, railStyle: DefaultTheme.railStyle, sliderStyle: DefaultTheme.sliderStyle }));
104826
+ this._yScrollComponent.addEventListener(SCROLLBAR_EVENT, (e) => {
104827
+ var _a;
104828
+ const value = e.detail.value;
104829
+ const { percent, y } = (_a = this._computeFinalScrollY(-value[0] * this._scrollLimit.y.size)) !== null && _a !== void 0 ? _a : {};
104830
+ if (percent !== undefined && y !== undefined) {
104831
+ this._updateScrollY(this.getRootMark(), y, percent);
104832
+ this._event.emit('chartScroll', { y });
104833
+ }
104834
+ });
104835
+ this._yScrollComponent.addEventListener(SCROLLBAR_END_EVENT, (e) => {
104836
+ var _a;
104837
+ const value = e.detail.value;
104838
+ const { percent, y } = (_a = this._computeFinalScrollY(-value[0] * this._scrollLimit.y.size)) !== null && _a !== void 0 ? _a : {};
104839
+ if (percent !== undefined && y !== undefined) {
104840
+ this._updateScrollY(this.getRootMark(), y, percent);
104841
+ this._event.emit('chartScroll', { y });
104842
+ }
104843
+ });
104844
+ (_e = this.getRootMark().parent) === null || _e === void 0 ? void 0 : _e.addChild(this._yScrollComponent);
104845
+ }
104846
+ return this._yScrollComponent;
104847
+ }
104848
+ _updateScrollX(rootMark, x, percent) {
104849
+ const xScrollComponent = this._getXScrollComponent();
104850
+ xScrollComponent.setAttribute('range', [percent, percent + this._scrollLimit.x.percent]);
104851
+ rootMark.setAttributes({
104852
+ x: x
104853
+ });
104854
+ }
104855
+ _getXScrollComponent() {
104856
+ var _a, _b, _c, _d, _e;
104857
+ if (!this._xScrollComponent) {
104858
+ const canvasSize = this._service.globalInstance.getChart().getCanvasRect();
104859
+ const viewSize = this._service.globalInstance.getChart().getViewRect();
104860
+ const _f = (_b = (_a = this._spec) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : {}, rest = __rest$e(_f, ["enable"]);
104861
+ this._xScrollComponent = new ScrollBar$1(Object.assign(Object.assign({}, rest), { zIndex: 9999, x: 0, y: canvasSize.height - DefaultTheme.size, width: canvasSize.width, height: DefaultTheme.size, range: [0, canvasSize.width / viewSize.width], direction: 'horizontal', delayTime: (_c = rest === null || rest === void 0 ? void 0 : rest.delayTime) !== null && _c !== void 0 ? _c : 30, realTime: (_d = rest === null || rest === void 0 ? void 0 : rest.realTime) !== null && _d !== void 0 ? _d : true, sliderStyle: DefaultTheme.sliderStyle, railStyle: DefaultTheme.railStyle }));
104862
+ this._xScrollComponent.addEventListener(SCROLLBAR_EVENT, (e) => {
104863
+ var _a;
104864
+ const value = e.detail.value;
104865
+ const { percent, x } = (_a = this._computeFinalScrollX(-value[0] * this._scrollLimit.x.size)) !== null && _a !== void 0 ? _a : {};
104866
+ if (percent !== undefined && x !== undefined) {
104867
+ this._updateScrollX(this.getRootMark(), x, percent);
104868
+ this._event.emit('chartScroll', { x });
104869
+ }
104870
+ });
104871
+ this._xScrollComponent.addEventListener(SCROLLBAR_END_EVENT, (e) => {
104872
+ var _a;
104873
+ const value = e.detail.value;
104874
+ const { percent, x } = (_a = this._computeFinalScrollX(-value[0] * this._scrollLimit.x.size)) !== null && _a !== void 0 ? _a : {};
104875
+ if (percent !== undefined && x !== undefined) {
104876
+ this._updateScrollX(this.getRootMark(), x, percent);
104877
+ this._event.emit('chartScroll', { x });
104878
+ }
104879
+ });
104880
+ (_e = this.getRootMark().parent) === null || _e === void 0 ? void 0 : _e.addChild(this._xScrollComponent);
104881
+ }
104882
+ return this._xScrollComponent;
104883
+ }
104884
+ scrollTo({ x, y }) {
104885
+ var _a, _b;
104886
+ const rootMark = this.getRootMark();
104887
+ if (rootMark) {
104888
+ if (x !== undefined) {
104889
+ const { x: finalX, percent } = (_a = this._computeFinalScrollX(x)) !== null && _a !== void 0 ? _a : {};
104890
+ if (finalX !== undefined && percent !== undefined) {
104891
+ this._updateScrollX(rootMark, finalX, percent);
104892
+ }
104893
+ }
104894
+ if (y !== undefined) {
104895
+ const { y: finalY, percent } = (_b = this._computeFinalScrollY(y)) !== null && _b !== void 0 ? _b : {};
104896
+ if (finalY !== undefined && percent !== undefined) {
104897
+ this._updateScrollY(rootMark, finalY, percent);
104898
+ }
104899
+ }
104900
+ }
104901
+ }
104902
+ }
104903
+ ScrollPlugin.pluginType = 'chart';
104904
+ ScrollPlugin.type = 'chartScroll';
104905
+ const registerScrollPlugin = (theme) => {
104906
+ var _a, _b, _c, _d, _e;
104907
+ DefaultTheme.size = (_a = theme === null || theme === void 0 ? void 0 : theme.size) !== null && _a !== void 0 ? _a : DefaultTheme.size;
104908
+ DefaultTheme.railStyle = merge$1({}, (_b = DefaultTheme.railStyle) !== null && _b !== void 0 ? _b : {}, (_c = theme === null || theme === void 0 ? void 0 : theme.railStyle) !== null && _c !== void 0 ? _c : {});
104909
+ DefaultTheme.sliderStyle = merge$1({}, (_d = DefaultTheme.sliderStyle) !== null && _d !== void 0 ? _d : {}, (_e = theme === null || theme === void 0 ? void 0 : theme.sliderStyle) !== null && _e !== void 0 ? _e : {});
104910
+ registerChartPlugin(ScrollPlugin);
104911
+ };
104912
+
104913
+ export { Arc3dMark, ArcMark, AreaChart, AreaMark, AreaSeries, AttributeLevel, AxisSyncPlugin, Bar3dChart, Bar3dSeries, BarChart, BarSeries, BaseChart, BaseChartSpecTransformer, BaseMark, BaseSeries, BoxPlotChart, BoxPlotSeries, Brush, CanvasTooltipHandler, CartesianAxis, CartesianBandAxis, CartesianChartSpecTransformer, CartesianCrossHair, CartesianLinearAxis, CartesianLogAxis, CartesianMarkArea, CartesianMarkLine, CartesianMarkPoint, CartesianSeries, CartesianSymlogAxis, CartesianTimeAxis, CirclePackingChart, CirclePackingSeries, CircularProgressChart, CircularProgressSeries, CommonChart, CommonChartSpecTransformer, ComponentMark, ComposedEventMapper, ContinuousLegend, CorrelationChart, CorrelationSeries, CustomMark, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD, DEFAULT_MEASURE_CANVAS_ID, DEFAULT_SERIES_STYLE_NAME, DataZoom, DimensionClickEvent, DimensionEventEnum, DimensionHoverEvent, DiscreteLegend, DomTooltipHandler, DotSeries, Event$1 as Event, Factory$1 as Factory, FormatterPlugin, Funnel3dChart, Funnel3dSeries, FunnelChart, FunnelSeries, GaugeChart, GaugePointerSeries, GaugeSeries, GeoCoordinate, GeoMarkPoint, GridLayout, GroupMark, HeatmapChart, HeatmapSeries, Histogram3dChart, HistogramChart, ImageMark, Indicator, Label, Layout$1 as Layout, Layout3d, LineChart, LineMark, LineSeries, LinearProgressChart, LinearProgressSeries, LinkPathMark, LinkSeries, LiquidChart, LiquidSeries, MOSAIC_CAT_END_PERCENT, MOSAIC_CAT_START_PERCENT, MOSAIC_VALUE_END_PERCENT, MOSAIC_VALUE_START_PERCENT, ManualTicker, MapChart, MapLabelComponent, MapSeries, MediaQuery, MosaicChart, MosaicSeries, PREFIX, PathMark, PictogramChart, PictogramSeries, Pie3dChart, Pie3dSeries, PieChart, PieSeries, Player, PolarAxis, PolarBandAxis, PolarCrossHair, PolarLinearAxis, PolarMarkArea, PolarMarkLine, PolarMarkPoint, PolarSeries, PolygonMark, ProgressLikeSeries, Pyramid3dMark, RadarChart, RadarSeries, RangeAreaChart, RangeAreaSeries, RangeColumn3dChart, RangeColumn3dSeries, RangeColumnChart, RangeColumnSeries, Rect3dMark, 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, STATE_VALUE_ENUM_REVERSE, SankeyChart, SankeyChartSpecTransformer, SankeySeries, ScatterChart, ScatterSeries, ScrollBar, ScrollPlugin, SequenceChart, SeriesMarkNameEnum, SeriesTypeEnum, SeriesTypeForThemeEnum, StreamLight, SunburstChart, SunburstSeries, SymbolMark, TextMark, ThemeManager$1 as ThemeManager, Title, Tooltip, TooltipResult, TotalLabel, TreemapChart, TreemapSeries, VChart, VennChart, VennSeries, WaterfallChart, WaterfallSeries, WordCloud3dChart, WordCloud3dSeries, WordCloudChart, WordCloudSeries, alternatingWave, builtinThemes, centerToCorner, columnCenterToEdge, columnEdgeToCenter, columnLeftToRight, columnRightToLeft, computeActualDataScheme, cornerToCenter, createArc, createArea, createGroup, createLine, createRect, createRichText, createSymbol, createText, darkTheme$1 as darkTheme, dataScheme, VChart as default, defaultThemeName, diagonalCenterToEdge, diagonalTopLeftToBottomRight, functionTransform, getActualColor, getCartesianDimensionInfo, getColorSchemeBySeries, getDataScheme, getFieldAlias, getMergedTheme, getPolarDimensionInfo, getRegionStackGroup, getTheme, hasThemeMerged, isColorKey, isProgressiveDataColorScheme, isTokenKey, lightTheme, mergeFields, particleEffect, pulseWave, queryColorFromColorScheme, queryToken, randomOpacity, register3DPlugin, registerAllEnv, registerAllMarks, registerAnimate, registerArc3dMark, registerArcMark, registerAreaChart, registerAreaMark, registerAreaSeries, registerBar3dChart, registerBar3dSeries, registerBarChart, registerBarSeries, registerBoxplotChart, registerBoxplotSeries, registerBrowserEnv, registerBrush, registerCanvasTooltipHandler, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerChartPlugin, registerCirclePackingChart, registerCirclePackingSeries, registerCircularProgressChart, registerCircularProgressSeries, registerCommonChart, registerComponentMark, registerContinuousLegend, registerCorrelationChart, registerCustomMark, registerDataSetInstanceParser, registerDataSetInstanceTransform, registerDataZoom, registerDiscreteLegend, registerDomTooltipHandler, registerDotSeries, registerDragPlugin, registerFormatPlugin, registerFunnel3dChart, registerFunnel3dSeries, registerFunnelChart, registerFunnelSeries, registerGaugeChart, registerGaugePointerSeries, registerGaugeSeries, registerGeoCoordinate, registerGeoMarkPoint, registerGesturePlugin, registerGridLayout, registerGroupMark, registerHarmonyEnv, registerHeatmapChart, registerHeatmapSeries, registerHistogram3dChart, registerHistogramChart, registerHtmlAttributePlugin, registerImageMark, registerIndicator, registerLabel, registerLarkEnv, registerLayout3d, registerLineChart, registerLineMark, registerLineSeries, registerLinearProgressChart, registerLinearProgressSeries, registerLinkPathMark, registerLinkSeries, registerLiquidChart, registerLiquidSeries, registerLynxEnv, registerMapChart, registerMapLabel, registerMapSeries, registerMarkArea, registerMarkLine, registerMarkPoint, registerMediaQuery, registerMorph, registerMosaicChart, registerMosaicSeries, registerNodeEnv, registerPathMark, registerPictogramChart, registerPictogramSeries, registerPie3dChart, registerPie3dSeries, registerPieChart, registerPieSeries, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPolarMarkArea, registerPolarMarkLine, registerPolarMarkPoint, registerPolygonMark, registerPoptip, registerPyramid3dMark, registerRadarChart, registerRadarSeries, registerRangeAreaChart, registerRangeAreaSeries, registerRangeColumn3dChart, registerRangeColumn3dSeries, registerRangeColumnChart, registerRangeColumnSeries, registerReactAttributePlugin, registerRect3dMark, registerRectMark, registerRippleMark, registerRoseChart, registerRoseSeries, registerRuleMark, registerSankeyChart, registerSankeySeries, registerScatterChart, registerScatterSeries, registerScrollBar, registerScrollPlugin, registerSequenceChart, registerSunBurstSeries, registerSunburstChart, registerSymbolMark, registerTTEnv, registerTaroEnv, registerTextMark, registerTheme, registerTitle, registerTooltip, registerTotalLabel, registerTreemapChart, registerTreemapSeries, registerVennChart, registerVennSeries, registerWXEnv, registerWaterfallChart, registerWaterfallSeries, registerWordCloud3dChart, registerWordCloud3dSeries, registerWordCloudChart, registerWordCloudSeries, registerWordCloudShapeChart, removeTheme, rippleEffect, rotationScan, rowBottomToTop, rowCenterToEdge, rowEdgeToCenter, rowTopToBottom, snakeWave, sortStackValueGroup, specTransform, spiralEffect, stack, stackGroup, stackMosaic, stackMosaicTotal, stackOffsetSilhouette, stackTotal, themeExist, themes, token, transformColorSchemeToStandardStruct, version, vglobal };