@visactor/vchart 1.12.1-alpha.0 → 1.12.2-alpha.0

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 (141) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +439 -119
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base/base-chart-transformer.js +2 -2
  6. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  7. package/cjs/chart/base/base-chart.js +12 -1
  8. package/cjs/chart/base/base-chart.js.map +1 -1
  9. package/cjs/component/axis/base-axis.d.ts +1 -1
  10. package/cjs/component/axis/base-axis.js +5 -3
  11. package/cjs/component/axis/base-axis.js.map +1 -1
  12. package/cjs/component/axis/cartesian/axis.d.ts +4 -2
  13. package/cjs/component/axis/cartesian/axis.js +22 -10
  14. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  15. package/cjs/component/axis/cartesian/linear-axis.d.ts +5 -1
  16. package/cjs/component/axis/cartesian/linear-axis.js +33 -1
  17. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  18. package/cjs/component/axis/interface/common.js.map +1 -1
  19. package/cjs/component/axis/interface/spec.d.ts +5 -1
  20. package/cjs/component/axis/interface/spec.js.map +1 -1
  21. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +5 -0
  22. package/cjs/component/axis/mixin/linear-axis-mixin.js +41 -13
  23. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  24. package/cjs/component/axis/mixin/util/break-data.d.ts +5 -0
  25. package/cjs/component/axis/mixin/util/break-data.js +49 -0
  26. package/cjs/component/axis/mixin/util/break-data.js.map +1 -0
  27. package/cjs/component/axis/polar/axis.d.ts +1 -1
  28. package/cjs/component/axis/polar/axis.js +11 -9
  29. package/cjs/component/axis/polar/axis.js.map +1 -1
  30. package/cjs/component/axis/polar/util/common.d.ts +4 -1
  31. package/cjs/component/axis/polar/util/common.js +7 -2
  32. package/cjs/component/axis/polar/util/common.js.map +1 -1
  33. package/cjs/component/brush/brush.js +5 -2
  34. package/cjs/component/brush/brush.js.map +1 -1
  35. package/cjs/component/data-zoom/data-filter-base-component.js +9 -7
  36. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  37. package/cjs/component/data-zoom/data-zoom/data-zoom.js +1 -1
  38. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  39. package/cjs/component/data-zoom/util.js +3 -2
  40. package/cjs/component/data-zoom/util.js.map +1 -1
  41. package/cjs/component/title/title.js +4 -2
  42. package/cjs/component/title/title.js.map +1 -1
  43. package/cjs/core/index.d.ts +1 -1
  44. package/cjs/core/index.js +1 -1
  45. package/cjs/core/index.js.map +1 -1
  46. package/cjs/data/transforms/add-property.js +1 -1
  47. package/cjs/data/transforms/add-property.js.map +1 -1
  48. package/cjs/data/transforms/copy-data-view.js +1 -1
  49. package/cjs/data/transforms/copy-data-view.js.map +1 -1
  50. package/cjs/data/transforms/dimension-statistics.js +1 -1
  51. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  52. package/cjs/data/transforms/stack-split.js +1 -1
  53. package/cjs/data/transforms/stack-split.js.map +1 -1
  54. package/cjs/event/events/dimension/util/cartesian.js +2 -4
  55. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  56. package/cjs/plugin/chart/media-query/util/filter.js +5 -2
  57. package/cjs/plugin/chart/media-query/util/filter.js.map +1 -1
  58. package/cjs/plugin/components/axis-sync/tick-align-transform.js +3 -3
  59. package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  60. package/cjs/plugin/components/axis-sync/zero-align-transform.js +5 -3
  61. package/cjs/plugin/components/axis-sync/zero-align-transform.js.map +1 -1
  62. package/cjs/plugin/components/tooltip-handler/base.js +3 -3
  63. package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
  64. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +1 -1
  65. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  66. package/cjs/series/pie/pie.js +4 -1
  67. package/cjs/series/pie/pie.js.map +1 -1
  68. package/cjs/series/progress/linear/linear.js +4 -2
  69. package/cjs/series/progress/linear/linear.js.map +1 -1
  70. package/cjs/util/array.d.ts +1 -0
  71. package/cjs/util/array.js +11 -2
  72. package/cjs/util/array.js.map +1 -1
  73. package/esm/chart/base/base-chart-transformer.js +2 -2
  74. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  75. package/esm/chart/base/base-chart.js +12 -1
  76. package/esm/chart/base/base-chart.js.map +1 -1
  77. package/esm/component/axis/base-axis.d.ts +1 -1
  78. package/esm/component/axis/base-axis.js +6 -2
  79. package/esm/component/axis/base-axis.js.map +1 -1
  80. package/esm/component/axis/cartesian/axis.d.ts +4 -2
  81. package/esm/component/axis/cartesian/axis.js +22 -10
  82. package/esm/component/axis/cartesian/axis.js.map +1 -1
  83. package/esm/component/axis/cartesian/linear-axis.d.ts +5 -1
  84. package/esm/component/axis/cartesian/linear-axis.js +36 -1
  85. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  86. package/esm/component/axis/interface/common.js.map +1 -1
  87. package/esm/component/axis/interface/spec.d.ts +5 -1
  88. package/esm/component/axis/interface/spec.js.map +1 -1
  89. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +5 -0
  90. package/esm/component/axis/mixin/linear-axis-mixin.js +43 -14
  91. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  92. package/esm/component/axis/mixin/util/break-data.d.ts +5 -0
  93. package/esm/component/axis/mixin/util/break-data.js +41 -0
  94. package/esm/component/axis/mixin/util/break-data.js.map +1 -0
  95. package/esm/component/axis/polar/axis.d.ts +1 -1
  96. package/esm/component/axis/polar/axis.js +11 -9
  97. package/esm/component/axis/polar/axis.js.map +1 -1
  98. package/esm/component/axis/polar/util/common.d.ts +4 -1
  99. package/esm/component/axis/polar/util/common.js +7 -2
  100. package/esm/component/axis/polar/util/common.js.map +1 -1
  101. package/esm/component/brush/brush.js +3 -3
  102. package/esm/component/brush/brush.js.map +1 -1
  103. package/esm/component/data-zoom/data-filter-base-component.js +6 -6
  104. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  105. package/esm/component/data-zoom/data-zoom/data-zoom.js +2 -2
  106. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  107. package/esm/component/data-zoom/util.js +3 -1
  108. package/esm/component/data-zoom/util.js.map +1 -1
  109. package/esm/component/title/title.js +4 -2
  110. package/esm/component/title/title.js.map +1 -1
  111. package/esm/core/index.d.ts +1 -1
  112. package/esm/core/index.js +1 -1
  113. package/esm/core/index.js.map +1 -1
  114. package/esm/data/transforms/add-property.js +1 -1
  115. package/esm/data/transforms/add-property.js.map +1 -1
  116. package/esm/data/transforms/copy-data-view.js +1 -1
  117. package/esm/data/transforms/copy-data-view.js.map +1 -1
  118. package/esm/data/transforms/dimension-statistics.js +1 -1
  119. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  120. package/esm/data/transforms/stack-split.js +1 -1
  121. package/esm/data/transforms/stack-split.js.map +1 -1
  122. package/esm/event/events/dimension/util/cartesian.js +2 -4
  123. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  124. package/esm/plugin/chart/media-query/util/filter.js +5 -2
  125. package/esm/plugin/chart/media-query/util/filter.js.map +1 -1
  126. package/esm/plugin/components/axis-sync/tick-align-transform.js +4 -2
  127. package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  128. package/esm/plugin/components/axis-sync/zero-align-transform.js +4 -4
  129. package/esm/plugin/components/axis-sync/zero-align-transform.js.map +1 -1
  130. package/esm/plugin/components/tooltip-handler/base.js +3 -3
  131. package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
  132. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +1 -1
  133. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  134. package/esm/series/pie/pie.js +4 -1
  135. package/esm/series/pie/pie.js.map +1 -1
  136. package/esm/series/progress/linear/linear.js +3 -2
  137. package/esm/series/progress/linear/linear.js.map +1 -1
  138. package/esm/util/array.d.ts +1 -0
  139. package/esm/util/array.js +9 -0
  140. package/esm/util/array.js.map +1 -1
  141. package/package.json +10 -10
package/build/index.js CHANGED
@@ -591,7 +591,7 @@
591
591
  const length = objValue.length;
592
592
  for (; ++index < length;) newValue[index] = objValue[index];
593
593
  }
594
- } else isPlainObject$1(srcValue) ? (newValue = objValue, "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
594
+ } else isPlainObject$1(srcValue) ? (newValue = null != objValue ? objValue : {}, "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
595
595
  isCommon && baseMerge(newValue, srcValue, shallowArray, skipTargetArray), assignMergeValue(target, key, newValue);
596
596
  }
597
597
  function assignMergeValue(target, key, value) {
@@ -24587,6 +24587,16 @@
24587
24587
  Factory$2.registerPlugin("ViewTransform3dPlugin", ViewTransform3dPlugin);
24588
24588
  };
24589
24589
 
24590
+ function combineArray(arr) {
24591
+ const uniqueValues = new Set();
24592
+ arr.forEach(subArray => {
24593
+ subArray.forEach(value => {
24594
+ uniqueValues.add(value);
24595
+ });
24596
+ });
24597
+ return Array.from(uniqueValues);
24598
+ }
24599
+
24590
24600
  const warn = (msg, detail) => {
24591
24601
  if (isFunction$1(config.warnHandler)) {
24592
24602
  config.warnHandler.call(null, msg, detail);
@@ -33236,7 +33246,7 @@
33236
33246
 
33237
33247
  var AXIS_ELEMENT_NAME;
33238
33248
  !function (AXIS_ELEMENT_NAME) {
33239
- AXIS_ELEMENT_NAME.innerView = "inner-view", AXIS_ELEMENT_NAME.axisContainer = "axis-container", AXIS_ELEMENT_NAME.labelContainer = "axis-label-container", AXIS_ELEMENT_NAME.tickContainer = "axis-tick-container", AXIS_ELEMENT_NAME.tick = "axis-tick", AXIS_ELEMENT_NAME.subTick = "axis-sub-tick", AXIS_ELEMENT_NAME.label = "axis-label", AXIS_ELEMENT_NAME.title = "axis-title", AXIS_ELEMENT_NAME.gridContainer = "axis-grid-container", AXIS_ELEMENT_NAME.grid = "axis-grid", AXIS_ELEMENT_NAME.gridRegion = "axis-grid-region", AXIS_ELEMENT_NAME.line = "axis-line", AXIS_ELEMENT_NAME.background = "axis-background", AXIS_ELEMENT_NAME.axisLabelBackground = "axis-label-background";
33249
+ AXIS_ELEMENT_NAME.innerView = "inner-view", AXIS_ELEMENT_NAME.axisContainer = "axis-container", AXIS_ELEMENT_NAME.labelContainer = "axis-label-container", AXIS_ELEMENT_NAME.tickContainer = "axis-tick-container", AXIS_ELEMENT_NAME.tick = "axis-tick", AXIS_ELEMENT_NAME.subTick = "axis-sub-tick", AXIS_ELEMENT_NAME.label = "axis-label", AXIS_ELEMENT_NAME.title = "axis-title", AXIS_ELEMENT_NAME.gridContainer = "axis-grid-container", AXIS_ELEMENT_NAME.grid = "axis-grid", AXIS_ELEMENT_NAME.gridRegion = "axis-grid-region", AXIS_ELEMENT_NAME.line = "axis-line", AXIS_ELEMENT_NAME.background = "axis-background", AXIS_ELEMENT_NAME.axisLabelBackground = "axis-label-background", AXIS_ELEMENT_NAME.axisBreakSymbol = "axis-break-symbol";
33240
33250
  }(AXIS_ELEMENT_NAME || (AXIS_ELEMENT_NAME = {}));
33241
33251
  var AxisStateValue;
33242
33252
  !function (AxisStateValue) {
@@ -33303,6 +33313,12 @@
33303
33313
  }
33304
33314
  }
33305
33315
  };
33316
+ const DEFAULT_AXIS_BREAK_SYMBOL_STYLE = {
33317
+ size: 8,
33318
+ stroke: "#000",
33319
+ lineWidth: 1,
33320
+ zIndex: 1
33321
+ };
33306
33322
 
33307
33323
  const clampRadian = function () {
33308
33324
  let angle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
@@ -33334,6 +33350,19 @@
33334
33350
  y: baseY - dy
33335
33351
  };
33336
33352
  }
33353
+ function getAxisBreakSymbolAttrs() {
33354
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
33355
+ var _a, _b;
33356
+ const {
33357
+ style = {}
33358
+ } = props,
33359
+ symbolStyle = merge$2({}, DEFAULT_AXIS_BREAK_SYMBOL_STYLE, style),
33360
+ symbolSize = null !== (_a = symbolStyle.size) && void 0 !== _a ? _a : DEFAULT_AXIS_BREAK_SYMBOL_STYLE.size;
33361
+ return Object.assign(Object.assign({}, symbolStyle), {
33362
+ symbolType: null !== (_b = symbolStyle.symbolType) && void 0 !== _b ? _b : `M ${-symbolSize / 2} ${symbolSize / 6} L ${symbolSize / 2} ${-symbolSize / 6}`,
33363
+ symbolSize: symbolSize
33364
+ });
33365
+ }
33337
33366
  function getElMap(g) {
33338
33367
  const elMap = {};
33339
33368
  return traverseGroup(g, el => {
@@ -34024,7 +34053,37 @@
34024
34053
  }
34025
34054
  _renderInner(container) {
34026
34055
  var _a;
34027
- super._renderInner(container);
34056
+ this.attribute.breaks && this.attribute.breaks.length && (this._breaks = this.attribute.breaks.sort((preBreak, currBreak) => preBreak.range[0] - currBreak.range[1]).map(breakProps => {
34057
+ const {
34058
+ range: range,
34059
+ breakSymbol: breakSymbol
34060
+ } = breakProps;
34061
+ return {
34062
+ startPoint: this.getTickCoord(range[0]),
34063
+ endPoint: this.getTickCoord(range[1]),
34064
+ range: range,
34065
+ breakSymbol: breakSymbol
34066
+ };
34067
+ })), super._renderInner(container), this._breaks && this._breaks.length && this._breaks.forEach(b => {
34068
+ const {
34069
+ startPoint: startPoint,
34070
+ endPoint: endPoint,
34071
+ breakSymbol: breakSymbol
34072
+ } = b;
34073
+ if (!1 !== (null == breakSymbol ? void 0 : breakSymbol.visible)) {
34074
+ const symbolStyle = getAxisBreakSymbolAttrs(breakSymbol),
34075
+ shape1 = graphicCreator.symbol(Object.assign({
34076
+ x: startPoint.x,
34077
+ y: startPoint.y
34078
+ }, symbolStyle));
34079
+ shape1.name = AXIS_ELEMENT_NAME.axisBreakSymbol;
34080
+ const shape2 = graphicCreator.symbol(Object.assign({
34081
+ x: endPoint.x,
34082
+ y: endPoint.y
34083
+ }, symbolStyle));
34084
+ shape2.name = AXIS_ELEMENT_NAME.axisBreakSymbol, container.add(shape1), container.add(shape2);
34085
+ }
34086
+ });
34028
34087
  const {
34029
34088
  panel: panel
34030
34089
  } = this.attribute;
@@ -34051,18 +34110,25 @@
34051
34110
  startSymbol: startSymbol,
34052
34111
  endSymbol: endSymbol,
34053
34112
  style: style,
34054
- breakRange: breakRange,
34055
- breakShape: breakShape,
34056
- breakShapeStyle: breakShapeStyle,
34057
34113
  state: state
34058
34114
  } = _a,
34059
- restLineAttrs = __rest$4(_a, ["startSymbol", "endSymbol", "style", "breakRange", "breakShape", "breakShapeStyle", "state"]),
34115
+ restLineAttrs = __rest$4(_a, ["startSymbol", "endSymbol", "style", "state"]),
34060
34116
  lineAttrs = Object.assign({
34061
- points: [start, end],
34062
34117
  startSymbol: startSymbol,
34063
34118
  endSymbol: endSymbol,
34064
34119
  lineStyle: style
34065
34120
  }, restLineAttrs);
34121
+ if (this._breaks && this._breaks.length) {
34122
+ const linePoints = [];
34123
+ let lastStartPoint = start;
34124
+ this._breaks.forEach(b => {
34125
+ const {
34126
+ startPoint: startPoint,
34127
+ endPoint: endPoint
34128
+ } = b;
34129
+ linePoints.push([lastStartPoint, startPoint]), lastStartPoint = endPoint;
34130
+ }), linePoints.push([lastStartPoint, end]), lineAttrs.points = linePoints, lineAttrs.multiSegment = !0;
34131
+ } else lineAttrs.points = [start, end];
34066
34132
  isEmpty(state) || (lineAttrs.state = {
34067
34133
  line: merge$2({}, DEFAULT_STATES$1, state),
34068
34134
  symbol: merge$2({}, DEFAULT_STATES$1, state)
@@ -35669,7 +35735,34 @@
35669
35735
  }
35670
35736
  }
35671
35737
 
35738
+ function getScaleTicks(op, scale, count, getTicks) {
35739
+ let scaleTicks;
35740
+ const {
35741
+ breakData: breakData
35742
+ } = op;
35743
+ if (breakData) {
35744
+ const {
35745
+ scope: scope,
35746
+ range: breakRanges
35747
+ } = breakData(),
35748
+ domain = scale.domain();
35749
+ scaleTicks = [];
35750
+ for (let i = 0; i < domain.length; i++) if (i < domain.length - 1) {
35751
+ const range = [domain[i], domain[i + 1]],
35752
+ [start, end] = scope[i],
35753
+ subCount = (end - start) * count;
35754
+ if (subCount > 0) {
35755
+ getTicks(subCount > 1 ? Math.floor(subCount) : 1, range).forEach(tick => {
35756
+ breakRanges.some(breakRange => tick >= breakRange[0] && tick <= breakRange[1]) || scaleTicks.push(tick);
35757
+ });
35758
+ }
35759
+ }
35760
+ scale.domain(domain);
35761
+ } else scaleTicks = getTicks(count);
35762
+ return scaleTicks;
35763
+ }
35672
35764
  const continuousTicks = (scale, op) => {
35765
+ var _a, _b;
35673
35766
  if (!isContinuous(scale.type)) return convertDomainToTickData(scale.domain());
35674
35767
  const range = scale.range(),
35675
35768
  rangeSize = Math.abs(range[range.length - 1] - range[0]);
@@ -35679,27 +35772,33 @@
35679
35772
  forceTickCount: forceTickCount,
35680
35773
  tickStep: tickStep,
35681
35774
  noDecimals = !1,
35682
- labelStyle: labelStyle
35775
+ labelStyle: labelStyle,
35776
+ breakData: breakData
35683
35777
  } = op;
35684
35778
  let scaleTicks;
35685
- if (isValid$1(tickStep)) scaleTicks = scale.stepTicks(tickStep);else if (isValid$1(forceTickCount)) scaleTicks = scale.forceTicks(forceTickCount);else if ("d3" === op.tickMode) {
35686
- const count = isFunction$1(tickCount) ? tickCount({
35779
+ if (isValid$1(tickStep)) scaleTicks = scale.stepTicks(tickStep);else if (isValid$1(forceTickCount)) scaleTicks = getScaleTicks(op, scale, forceTickCount, (count, range) => range && range.length ? scale.domain(range).forceTicks(count) : scale.forceTicks(count));else if ("d3" === op.tickMode) {
35780
+ const count = null !== (_a = isFunction$1(tickCount) ? tickCount({
35687
35781
  axisLength: rangeSize,
35688
35782
  labelStyle: labelStyle
35689
- }) : tickCount;
35690
- scaleTicks = scale.d3Ticks(null != count ? count : 5, {
35783
+ }) : tickCount) && void 0 !== _a ? _a : 5;
35784
+ scaleTicks = getScaleTicks(op, scale, count, (count, range) => range && range.length ? scale.domain(range).d3Ticks(count, {
35691
35785
  noDecimals: noDecimals
35692
- });
35786
+ }) : scale.d3Ticks(count, {
35787
+ noDecimals: noDecimals
35788
+ }));
35693
35789
  } else {
35694
- const count = isFunction$1(tickCount) ? tickCount({
35790
+ const count = null !== (_b = isFunction$1(tickCount) ? tickCount({
35695
35791
  axisLength: rangeSize,
35696
35792
  labelStyle: labelStyle
35697
- }) : tickCount,
35793
+ }) : tickCount) && void 0 !== _b ? _b : 5,
35698
35794
  customTicks = isFunction$1(op.tickMode) ? op.tickMode : void 0;
35699
- scaleTicks = scale.ticks(null != count ? count : 5, {
35795
+ scaleTicks = getScaleTicks(op, scale, count, (count, range) => range && range.length ? scale.domain(range).ticks(count, {
35700
35796
  noDecimals: noDecimals,
35701
35797
  customTicks: customTicks
35702
- });
35798
+ }) : scale.ticks(count, {
35799
+ noDecimals: noDecimals,
35800
+ customTicks: customTicks
35801
+ }));
35703
35802
  }
35704
35803
  if (op.sampling && ("cartesian" === op.coordinateType || "polar" === op.coordinateType && "radius" === op.axisOrientType)) {
35705
35804
  const {
@@ -41285,6 +41384,15 @@
41285
41384
  const forwardStep = (direction, currentIndex, min, max) => "default" === direction ? Math.min(currentIndex + 1, max) : Math.max(currentIndex - 1, min);
41286
41385
 
41287
41386
  class BasePlayer extends AbstractComponent {
41387
+ getMinIndex() {
41388
+ return this._minIndex;
41389
+ }
41390
+ getMaxIndex() {
41391
+ return this._maxIndex;
41392
+ }
41393
+ getDataIndex() {
41394
+ return this._dataIndex;
41395
+ }
41288
41396
  constructor(attributes, options) {
41289
41397
  super((null == options ? void 0 : options.skipDefault) ? attributes : merge$2({}, BasePlayer.defaultAttributes, attributes)), this._data = [], this._dataIndex = 0, this._layoutInfo = {}, this._updateSliderAttrs = () => {
41290
41398
  var _a, _b;
@@ -54382,13 +54490,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
54382
54490
  return targetAxisInfo;
54383
54491
  };
54384
54492
  const getDimensionInfoByPosition = (axis, posValue, posKey, getDimensionField) => {
54385
- const scale = axis.getScale();
54386
- const scalePos = posValue - axis.getLayoutStartPoint()[posKey];
54387
- if ((scalePos - scale.range()[0]) * (scalePos - scale.range()[1]) > 0) {
54388
- return null;
54389
- }
54390
- const value = scale.invert(scalePos);
54391
- return getDimensionInfoByValue(axis, value, getDimensionField);
54493
+ const value = axis.positionToData(posValue, true);
54494
+ return isNil$1(value) ? null : getDimensionInfoByValue(axis, value, getDimensionField);
54392
54495
  };
54393
54496
  const getDimensionInfoByValue = (axis, value, getDimensionField) => {
54394
54497
  const scale = axis.getScale();
@@ -55135,7 +55238,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
55135
55238
  if (_deep) {
55136
55239
  return cloneDeep(d.latestData);
55137
55240
  }
55138
- return d.latestData.slice();
55241
+ return d.latestData && d.latestData.slice();
55139
55242
  }
55140
55243
  const copyDataView = (data, options) => {
55141
55244
  if (data.length === 0) {
@@ -60732,11 +60835,11 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
60732
60835
  };
60733
60836
  registerVChartCore();
60734
60837
 
60735
- const version = "1.12.1-alpha.0";
60838
+ const version = "1.12.2-alpha.0";
60736
60839
 
60737
60840
  const addVChartProperty = (data, op) => {
60738
60841
  const context = op.beforeCall();
60739
- data.forEach((d, i) => op.call(d, i, context));
60842
+ data && data.forEach((d, i) => op.call(d, i, context));
60740
60843
  if (context.keyMap) {
60741
60844
  context.keyMap.clear();
60742
60845
  context.keyMap = null;
@@ -61028,11 +61131,12 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
61028
61131
  const isNumberField = operations.some(op => op === 'min' || op === 'max' || op === 'allValid');
61029
61132
  let allValid = true;
61030
61133
  fValues.length = 0;
61031
- latestData.forEach((d) => {
61032
- if (d) {
61033
- fValues.push(d[key]);
61034
- }
61035
- });
61134
+ latestData &&
61135
+ latestData.forEach((d) => {
61136
+ if (d) {
61137
+ fValues.push(d[key]);
61138
+ }
61139
+ });
61036
61140
  const len = fValues.length;
61037
61141
  if (isNumberField) {
61038
61142
  nextFValues.length = 0;
@@ -63644,13 +63748,13 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
63644
63748
  }
63645
63749
 
63646
63750
  function isValidAlignDomain(domain) {
63647
- return domain.length === 2 && isValidNumber$1(domain[0]) && isValidNumber$1(domain[1]) && domain[1] >= domain[0];
63751
+ return domain.length === 2 && isValidNumber$1(domain[0]) && isValidNumber$1(last(domain)) && last(domain) >= domain[0];
63648
63752
  }
63649
63753
  function getScaleInfo(axis, domain) {
63650
- const total = domain[1] - domain[0];
63651
- const includeZero = domain[1] * domain[0] < 0;
63754
+ const total = last(domain) - domain[0];
63755
+ const includeZero = last(domain) * domain[0] < 0;
63652
63756
  let negative = domain[0] <= 0 ? 0 - domain[0] : 0;
63653
- let positive = domain[1] > 0 ? domain[1] - 0 : 0;
63757
+ let positive = last(domain) > 0 ? last(domain) - 0 : 0;
63654
63758
  if (total === 0) {
63655
63759
  if (domain[0] < 0) {
63656
63760
  negative = 1;
@@ -63885,12 +63989,12 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
63885
63989
  return data;
63886
63990
  }
63887
63991
  const targetDomain = targetScale.domain();
63888
- const targetRange = targetDomain[1] - targetDomain[0];
63992
+ const targetRange = last(targetDomain) - targetDomain[0];
63889
63993
  if (targetRange === 0) {
63890
63994
  return data;
63891
63995
  }
63892
63996
  const currentDomain = currentScale.domain();
63893
- const currentRange = currentDomain[1] - currentDomain[0];
63997
+ const currentRange = last(currentDomain) - currentDomain[0];
63894
63998
  if (targetRange === 0) {
63895
63999
  return data;
63896
64000
  }
@@ -64510,10 +64614,16 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
64510
64614
  }
64511
64615
  else if (viewData && viewData.latestData && viewData.latestData.length) {
64512
64616
  const seriesData = (_a = s.getViewDataStatistics) === null || _a === void 0 ? void 0 : _a.call(s);
64617
+ const userSetBreaks = this.type === ComponentTypeEnum.cartesianLinearAxis && this._spec.breaks && this._spec.breaks.length;
64513
64618
  field.forEach(f => {
64514
64619
  var _a;
64515
64620
  if ((_a = seriesData === null || seriesData === void 0 ? void 0 : seriesData.latestData) === null || _a === void 0 ? void 0 : _a[f]) {
64516
- data.push(seriesData.latestData[f]);
64621
+ if (userSetBreaks) {
64622
+ data.push(Object.assign(Object.assign({}, seriesData.latestData[f]), { values: viewData.latestData.map((obj) => obj[f]) }));
64623
+ }
64624
+ else {
64625
+ data.push(seriesData.latestData[f]);
64626
+ }
64517
64627
  }
64518
64628
  });
64519
64629
  }
@@ -64984,7 +65094,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
64984
65094
  ? (_a = item
64985
65095
  .getTickData()
64986
65096
  .getLatestData()) === null || _a === void 0 ? void 0 : _a.find((d) => d.value === 0)
64987
- : item.getScale().domain()[0] <= 0 && item.getScale().domain()[1] >= 0));
65097
+ : item.getScale().domain()[0] <= 0 && last(item.getScale().domain()) >= 0));
64988
65098
  };
64989
65099
  const relativeAxes = axesComponents.filter(item => isValidAxis(item));
64990
65100
  if (relativeAxes.length) {
@@ -65090,8 +65200,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65090
65200
  setLayout3dBox(box3d) {
65091
65201
  this.layout3dBox = box3d;
65092
65202
  }
65093
- updateScaleRange() {
65094
- let isScaleChange = false;
65203
+ getNewScaleRange() {
65095
65204
  const { width, height } = this.getLayoutRect();
65096
65205
  const { left, right, top, bottom } = this._innerOffset;
65097
65206
  let newRange = [];
@@ -65111,8 +65220,16 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65111
65220
  newRange = this._inverse ? [top, height - bottom] : [height - bottom, top];
65112
65221
  }
65113
65222
  }
65114
- const [start, end] = this._scale.range();
65115
- if (newRange[0] !== start || newRange[1] !== end) {
65223
+ return newRange;
65224
+ }
65225
+ updateScaleRange() {
65226
+ let isScaleChange = false;
65227
+ const newRange = this.getNewScaleRange();
65228
+ const range = this._scale.range();
65229
+ if (newRange.length === range.length && newRange.every((value, index) => value === range[index])) {
65230
+ isScaleChange = false;
65231
+ }
65232
+ else {
65116
65233
  isScaleChange = true;
65117
65234
  this._scale.range(newRange);
65118
65235
  }
@@ -65337,6 +65454,22 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65337
65454
  }
65338
65455
  return result;
65339
65456
  }
65457
+ positionToData(pos, isViewPos) {
65458
+ const isX = isXAxis(this.getOrient());
65459
+ if (isViewPos) {
65460
+ pos -= isX ? this.getLayoutStartPoint().x : this.getLayoutStartPoint().y;
65461
+ }
65462
+ if (this._innerOffset) {
65463
+ pos = isX
65464
+ ? clamp$1(pos, this._innerOffset.left, this.getLayoutRect().width - this._innerOffset.right)
65465
+ : clamp$1(pos, this._innerOffset.top, this.getLayoutRect().height - this._innerOffset.bottom);
65466
+ }
65467
+ const range = this._scale.range();
65468
+ if ((pos - range[0]) * (pos - last(range)) > 0) {
65469
+ return null;
65470
+ }
65471
+ return this._scale.invert(pos);
65472
+ }
65340
65473
  _getTitleLimit(isX) {
65341
65474
  var _a, _b, _c, _d, _e;
65342
65475
  if (this._spec.title.visible && isNil$1((_a = this._spec.title.style) === null || _a === void 0 ? void 0 : _a.maxLineWidth)) {
@@ -65466,12 +65599,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65466
65599
  const tickLatestData = (_a = this.getTickData()) === null || _a === void 0 ? void 0 : _a.getLatestData();
65467
65600
  if (tickLatestData && tickLatestData.length) {
65468
65601
  return [
65469
- tickLatestData
65470
- .map((obj) => {
65602
+ tickLatestData.map((obj) => {
65471
65603
  const normalizedValue = this._getNormalizedValue([obj.value], length);
65472
65604
  return getAxisItem(obj.value, normalizedValue);
65473
65605
  })
65474
- .filter((entry) => entry.value >= 0 && entry.value <= 1)
65475
65606
  ];
65476
65607
  }
65477
65608
  return [];
@@ -65500,17 +65631,21 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65500
65631
  });
65501
65632
  if (this._autoIndentOnce && this._hasAutoIndent) {
65502
65633
  ['x1', 'x2', 'y1', 'y2'].forEach(key => {
65503
- this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];
65634
+ this.layout.getLastComputeOutBounds()[key] =
65635
+ this._layoutCache._lastComputeOutBounds[key];
65504
65636
  });
65505
65637
  }
65506
65638
  else {
65507
65639
  this._hasAutoIndent = true;
65508
65640
  ['x1', 'x2', 'y1', 'y2'].forEach(key => {
65509
- if (this.layout.getLastComputeOutBounds()[key] < this._layoutCache._lastComputeOutBounds[key]) {
65510
- this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];
65641
+ if (this.layout.getLastComputeOutBounds()[key] <
65642
+ this._layoutCache._lastComputeOutBounds[key]) {
65643
+ this.layout.getLastComputeOutBounds()[key] =
65644
+ this._layoutCache._lastComputeOutBounds[key];
65511
65645
  }
65512
65646
  else {
65513
- this._layoutCache._lastComputeOutBounds[key] = this.layout.getLastComputeOutBounds()[key];
65647
+ this._layoutCache._lastComputeOutBounds[key] =
65648
+ this.layout.getLastComputeOutBounds()[key];
65514
65649
  }
65515
65650
  });
65516
65651
  }
@@ -65580,6 +65715,72 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65580
65715
  CartesianAxis.type = ComponentTypeEnum.cartesianAxis;
65581
65716
  CartesianAxis.specKey = 'axes';
65582
65717
 
65718
+ const setDomain = (min, max, breaks) => breaks.reduce((r, b, i) => {
65719
+ r.push([b, breaks.length === i + 1 ? max : breaks[i + 1]]);
65720
+ return r;
65721
+ }, [[min, breaks[0]]]);
65722
+ function breakDomain(data, points) {
65723
+ const min = data[0];
65724
+ const max = data[data.length - 1];
65725
+ const breaks = points.sort().filter(point => point > min && point < max);
65726
+ return setDomain(min, max, breaks);
65727
+ }
65728
+ const sorter = (a, b) => a - b;
65729
+ const fillBins = (data, points) => {
65730
+ const bins = [0];
65731
+ let i = 0;
65732
+ let j = 0;
65733
+ while (i < points.length) {
65734
+ if (data[j] <= points[i]) {
65735
+ bins[i] += 1;
65736
+ j += 1;
65737
+ }
65738
+ else {
65739
+ i += 1;
65740
+ bins[i] = 0;
65741
+ }
65742
+ }
65743
+ bins[i] = data.slice(j).length;
65744
+ return bins;
65745
+ };
65746
+ function breakScope(data, points) {
65747
+ const bins = fillBins(data, points);
65748
+ const count = data.length;
65749
+ return bins
65750
+ .reduce((res, bin, i) => {
65751
+ const last = res[i - 1] ? res[i - 1][1] : 0;
65752
+ const next = (last * 100 + +(bin / count).toFixed(2) * 100) / 100;
65753
+ res.push([last, next > 1 ? 1 : next > 0.95 ? 1 : next]);
65754
+ return res;
65755
+ }, [])
65756
+ .filter(s => {
65757
+ return !(s[0] === 0 && s[1] === 0) && !(s[0] === 1 && s[1] === 1);
65758
+ });
65759
+ }
65760
+ function breakData(data, points) {
65761
+ data.sort(sorter);
65762
+ points.sort(sorter);
65763
+ return {
65764
+ domain: breakDomain(data, points),
65765
+ scope: breakScope(data, points)
65766
+ };
65767
+ }
65768
+ function mergeAndSortRanges(ranges) {
65769
+ ranges.sort((a, b) => a[0] - b[0]);
65770
+ const merged = [ranges[0]];
65771
+ for (let index = 1; index < ranges.length; index++) {
65772
+ const last = merged[merged.length - 1];
65773
+ const range = ranges[index];
65774
+ if (range[0] <= last[1]) {
65775
+ last[1] = Math.max(last[1], range[1]);
65776
+ }
65777
+ else {
65778
+ merged.push(range);
65779
+ }
65780
+ }
65781
+ return merged;
65782
+ }
65783
+
65583
65784
  const e10 = Math.sqrt(50);
65584
65785
  const e5 = Math.sqrt(10);
65585
65786
  const e2 = Math.sqrt(2);
@@ -65671,13 +65872,60 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65671
65872
  return this._scale.scale(value);
65672
65873
  }
65673
65874
  computeLinearDomain(data) {
65674
- const domain = [];
65875
+ let domain = [];
65675
65876
  if (data.length) {
65877
+ const userSetBreaks = this._spec.breaks && this._spec.breaks.length;
65878
+ let values = [];
65879
+ let minDomain;
65880
+ let maxDomain;
65676
65881
  data.forEach(d => {
65677
65882
  const { min, max } = d;
65678
- domain[0] = domain[0] === undefined ? min : Math.min(domain[0], min);
65679
- domain[1] = domain[1] === undefined ? max : Math.max(domain[1], max);
65883
+ minDomain = minDomain === undefined ? min : Math.min(minDomain, min);
65884
+ maxDomain = maxDomain === undefined ? max : Math.max(maxDomain, max);
65885
+ if (userSetBreaks) {
65886
+ values = values.concat(d.values);
65887
+ }
65680
65888
  });
65889
+ if (userSetBreaks) {
65890
+ const breakRanges = mergeAndSortRanges(this._spec.breaks.map((breakSpec) => breakSpec.range));
65891
+ const breakDomains = [];
65892
+ const breakScopes = [];
65893
+ let source = [...values];
65894
+ for (let index = 0; index < breakRanges.length; index++) {
65895
+ const breakRange = breakRanges[index];
65896
+ const { domain, scope } = breakData(source, breakRange);
65897
+ let finalScope = scope;
65898
+ const finalDomain = domain;
65899
+ if (index > 0) {
65900
+ const lastRatio = last(breakScopes)[1];
65901
+ const restRarioRange = 1 - lastRatio;
65902
+ finalScope = scope.map(eachScope => {
65903
+ return [lastRatio + eachScope[0] * restRarioRange, lastRatio + eachScope[1] * restRarioRange];
65904
+ });
65905
+ finalDomain[0][0] = last(breakDomains)[1];
65906
+ }
65907
+ breakDomains.push(finalDomain[0]);
65908
+ breakDomains.push(finalDomain[1]);
65909
+ breakScopes.push(finalScope[0]);
65910
+ breakScopes.push(finalScope[1]);
65911
+ if (index === breakRanges.length - 1) {
65912
+ breakDomains.push(finalDomain[2]);
65913
+ breakScopes.push(finalScope[2]);
65914
+ }
65915
+ else {
65916
+ source = source.filter(val => val >= finalDomain[2][0]);
65917
+ }
65918
+ }
65919
+ domain = combineArray(breakDomains);
65920
+ this._break = {
65921
+ domain: breakDomains,
65922
+ scope: breakScopes,
65923
+ range: breakRanges
65924
+ };
65925
+ }
65926
+ else {
65927
+ domain = [minDomain, maxDomain];
65928
+ }
65681
65929
  }
65682
65930
  else {
65683
65931
  domain[0] = 0;
@@ -65724,7 +65972,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65724
65972
  num = Math.abs(num);
65725
65973
  if (num < 1) {
65726
65974
  domain[0] = 0;
65727
- domain[1] = 1;
65975
+ domain[domain.length - 1] = 1;
65728
65976
  }
65729
65977
  else {
65730
65978
  let step = num / DEFAULT_TICK_COUNT;
@@ -65732,12 +65980,12 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65732
65980
  const err = step / Math.pow(10, power);
65733
65981
  step = (err >= e10 ? 10 : err >= e5 ? 5 : err >= e2 ? 2 : 1) * Math.pow(10, power);
65734
65982
  domain[0] = 0;
65735
- domain[1] = step * 10;
65983
+ domain[domain.length - 1] = step * 10;
65736
65984
  }
65737
65985
  if (flag < 0) {
65738
65986
  domain.reverse();
65739
65987
  domain[0] *= -1;
65740
- domain[1] *= -1;
65988
+ domain[domain.length - 1] *= -1;
65741
65989
  }
65742
65990
  }
65743
65991
  return domain;
@@ -65787,7 +66035,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65787
66035
  }
65788
66036
  const { min, max } = this._domain;
65789
66037
  isValid$1(min) && (domain[0] = min);
65790
- isValid$1(max) && (domain[1] = max);
66038
+ isValid$1(max) && (domain[domain.length - 1] = max);
65791
66039
  }
65792
66040
  setSoftDomainMinMax(domain) {
65793
66041
  const { softMin, softMax } = this._spec;
@@ -65804,10 +66052,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65804
66052
  if (isValid$1(softMax)) {
65805
66053
  let softMaxValue = isFunction$1(softMax) ? softMax(domain) : softMax;
65806
66054
  if (isNil$1(softMaxValue)) {
65807
- softMaxValue = domain[1];
66055
+ softMaxValue = domain[domain.length - 1];
65808
66056
  }
65809
- if (softMaxValue >= domain[1]) {
65810
- domain[1] = softMaxValue;
66057
+ if (softMaxValue >= domain[domain.length - 1]) {
66058
+ domain[domain.length - 1] = softMaxValue;
65811
66059
  }
65812
66060
  this._softMaxValue = softMaxValue;
65813
66061
  }
@@ -65846,7 +66094,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65846
66094
  return this._domainAfterSpec;
65847
66095
  }
65848
66096
  _updateNiceLabelFormatter(domain) {
65849
- const domainSpan = Math.abs(domain[1] - domain[0]);
66097
+ const domainSpan = Math.abs(domain[domain.length - 1] - domain[0]);
65850
66098
  const n = Math.max(-Math.floor(Math.log10(domainSpan)), 0) + 2;
65851
66099
  const unit = Math.pow(10, n);
65852
66100
  this.niceLabelFormatter = (value) => {
@@ -65883,6 +66131,44 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
65883
66131
  }
65884
66132
  this._scale.domain(range);
65885
66133
  }
66134
+ _tickTransformOption() {
66135
+ var _a;
66136
+ return Object.assign(Object.assign({}, super._tickTransformOption()), { breakData: ((_a = this._spec.breaks) === null || _a === void 0 ? void 0 : _a.length) ? () => this._break : null });
66137
+ }
66138
+ _getUpdateAttribute(ignoreGrid) {
66139
+ var _a;
66140
+ const attrs = super._getUpdateAttribute(ignoreGrid);
66141
+ if (!isZAxis(this._orient) && ((_a = this._spec.breaks) === null || _a === void 0 ? void 0 : _a.length) && this._break) {
66142
+ const { width, height } = this.getLayoutRect();
66143
+ const isX = isXAxis(this._orient);
66144
+ const axisLength = isX ? width : height;
66145
+ attrs.breaks = this._spec.breaks.map(obj => {
66146
+ const { range, breakSymbol, gap = 6 } = obj;
66147
+ const index = this._break.domain.findIndex(domainRange => range[0] === domainRange[0] && range[1] === domainRange[1]);
66148
+ const ratio = 1 - (this._break.scope[index][0] + this._break.scope[index][1]) / 2;
66149
+ let gapRatio;
66150
+ if (isPercent(gap)) {
66151
+ gapRatio = Number(gap.substring(0, gap.length - 1)) / 100;
66152
+ }
66153
+ else {
66154
+ gapRatio = gap / axisLength;
66155
+ }
66156
+ return {
66157
+ range: [ratio - gapRatio / 2, ratio + gapRatio / 2],
66158
+ breakSymbol: Object.assign({ visible: true }, breakSymbol)
66159
+ };
66160
+ });
66161
+ }
66162
+ return attrs;
66163
+ }
66164
+ getNewScaleRange() {
66165
+ var _a, _b;
66166
+ let newRange = super.getNewScaleRange();
66167
+ if (((_a = this._spec.breaks) === null || _a === void 0 ? void 0 : _a.length) && ((_b = this._break) === null || _b === void 0 ? void 0 : _b.scope)) {
66168
+ newRange = combineArray(this._break.scope).map(val => newRange[0] + (last(newRange) - newRange[0]) * val);
66169
+ }
66170
+ return newRange;
66171
+ }
65886
66172
  computeDomain(data) {
65887
66173
  return this.computeLinearDomain(data);
65888
66174
  }
@@ -67413,11 +67699,19 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
67413
67699
  }
67414
67700
  updateComponentSpec(result) {
67415
67701
  const componentCache = {};
67702
+ const checkVisibleComponents = {
67703
+ [ComponentTypeEnum.title]: true,
67704
+ [ComponentTypeEnum.brush]: true,
67705
+ [ComponentTypeEnum.mapLabel]: true
67706
+ };
67416
67707
  this._components.forEach(c => {
67417
67708
  var _a, _b;
67418
67709
  if (c.type === ComponentTypeEnum.label || c.type === ComponentTypeEnum.totalLabel) {
67419
67710
  return;
67420
67711
  }
67712
+ if (checkVisibleComponents[c.type]) {
67713
+ checkVisibleComponents[c.type] = false;
67714
+ }
67421
67715
  const compSpecKey = c.specKey || c.type;
67422
67716
  const cmpSpec = (_a = this._spec[compSpecKey]) !== null && _a !== void 0 ? _a : {};
67423
67717
  if (isArray$1(cmpSpec)) {
@@ -67440,6 +67734,15 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
67440
67734
  }
67441
67735
  }
67442
67736
  }
67737
+ Object.keys(checkVisibleComponents).forEach(type => {
67738
+ if (checkVisibleComponents[type]) {
67739
+ const compSpec = this._spec[type];
67740
+ const switchToVisible = isArray$1(compSpec) ? compSpec.some(entry => entry === null || entry === void 0 ? void 0 : entry.visible) : compSpec === null || compSpec === void 0 ? void 0 : compSpec.visible;
67741
+ if (switchToVisible) {
67742
+ result.reMake = true;
67743
+ }
67744
+ }
67745
+ });
67443
67746
  }
67444
67747
  updateSeriesSpec(result) {
67445
67748
  if (this._spec.series.length !== this._series.length) {
@@ -67843,7 +68146,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
67843
68146
  transform = (constructor, specInfo, chartSpecInfo) => {
67844
68147
  const { spec, specPath, specInfoPath, type } = specInfo;
67845
68148
  const transformer = new constructor.transformerConstructor(Object.assign(Object.assign({}, this._option), { type }));
67846
- setProperty(chartSpecInfo, specInfoPath !== null && specInfoPath !== void 0 ? specInfoPath : specPath, Object.assign(Object.assign({}, specInfo), { theme: transformer.getTheme(spec, chartSpec) }));
68149
+ const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);
68150
+ setProperty(chartSpecInfo, specInfoPath !== null && specInfoPath !== void 0 ? specInfoPath : specPath, Object.assign(Object.assign(Object.assign({}, specInfo), transformResult), { theme: transformer.getTheme(spec, chartSpec) }));
67847
68151
  };
67848
68152
  }
67849
68153
  const currentChartSpecInfo = {};
@@ -68195,33 +68499,34 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
68195
68499
  let nextNode;
68196
68500
  let leaf;
68197
68501
  data.forEach(dv => {
68198
- dv.latestData.forEach((d) => {
68199
- temp = result;
68200
- for (let i = 0; i < fields.length; i++) {
68201
- const f = fields[i];
68202
- const fV = d[f];
68203
- if (isNil$1(fV)) {
68204
- break;
68205
- }
68206
- temp.groupField = f;
68207
- if (!temp.nodes[fV]) {
68502
+ dv.latestData &&
68503
+ dv.latestData.forEach((d) => {
68504
+ temp = result;
68505
+ for (let i = 0; i < fields.length; i++) {
68506
+ const f = fields[i];
68507
+ const fV = d[f];
68508
+ if (isNil$1(fV)) {
68509
+ break;
68510
+ }
68511
+ temp.groupField = f;
68512
+ if (!temp.nodes[fV]) {
68513
+ if (i === lastFieldIndex) {
68514
+ temp.nodes[fV] = { values: [] };
68515
+ }
68516
+ else {
68517
+ nextNode = { nodes: {} };
68518
+ temp.nodes[fV] = nextNode;
68519
+ }
68520
+ }
68208
68521
  if (i === lastFieldIndex) {
68209
- temp.nodes[fV] = { values: [] };
68522
+ leaf = temp.nodes[fV];
68523
+ leaf.values.push(d);
68210
68524
  }
68211
68525
  else {
68212
- nextNode = { nodes: {} };
68213
- temp.nodes[fV] = nextNode;
68526
+ temp = temp.nodes[fV];
68214
68527
  }
68215
68528
  }
68216
- if (i === lastFieldIndex) {
68217
- leaf = temp.nodes[fV];
68218
- leaf.values.push(d);
68219
- }
68220
- else {
68221
- temp = temp.nodes[fV];
68222
- }
68223
- }
68224
- });
68529
+ });
68225
68530
  });
68226
68531
  return result;
68227
68532
  };
@@ -73831,7 +74136,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
73831
74136
  layoutRadius: chartSpec.layoutRadius
73832
74137
  };
73833
74138
  };
73834
- const computeLayoutRadius = (layoutRadius, getLayoutRect, getCenter, startAngle = 0, endAngle = 0 * Math.PI) => {
74139
+ const computeLayoutRadius = (getLayoutRadius, getLayoutRect, getCenter, getAngles) => {
74140
+ const layoutRadius = getLayoutRadius();
73835
74141
  if (isNumber$1(layoutRadius)) {
73836
74142
  return layoutRadius;
73837
74143
  }
@@ -73840,6 +74146,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
73840
74146
  }
73841
74147
  const rect = getLayoutRect();
73842
74148
  if (layoutRadius === 'auto' && rect.width > 0 && rect.height > 0) {
74149
+ const { startAngle = 0, endAngle = 2 * Math.PI } = getAngles();
73843
74150
  return calculateMaxRadius(rect, getCenter(), startAngle, endAngle);
73844
74151
  }
73845
74152
  return Math.min(rect.width / 2, rect.height / 2);
@@ -73962,7 +74269,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
73962
74269
  return field$2(ARC_END_ANGLE)(datum);
73963
74270
  }
73964
74271
  _computeLayoutRadius() {
73965
- return computeLayoutRadius(this._spec.layoutRadius, this.getLayoutRect, this.getCenter, this._startAngle, this._endAngle);
74272
+ return computeLayoutRadius(() => this._spec.layoutRadius, this.getLayoutRect, this.getCenter, () => ({ startAngle: this._startAngle, endAngle: this._endAngle }));
73966
74273
  }
73967
74274
  initMarkStyle() {
73968
74275
  const initialStyle = {
@@ -74511,6 +74818,15 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
74511
74818
  const region = (_a = this.getRegions()) === null || _a === void 0 ? void 0 : _a[0];
74512
74819
  return region ? region.getLayoutStartPoint() : pos;
74513
74820
  };
74821
+ this.getCenter = () => {
74822
+ var _a, _b;
74823
+ const layoutRect = this.getRefLayoutRect();
74824
+ const { width, height } = layoutRect;
74825
+ return {
74826
+ x: calcLayoutNumber((_a = this._center) === null || _a === void 0 ? void 0 : _a.x, width, layoutRect, width / 2),
74827
+ y: calcLayoutNumber((_b = this._center) === null || _b === void 0 ? void 0 : _b.y, height, layoutRect, height / 2)
74828
+ };
74829
+ };
74514
74830
  this.getRefLayoutRect = () => {
74515
74831
  return this.getRegions()[0].getLayoutRect();
74516
74832
  };
@@ -74653,15 +74969,6 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
74653
74969
  angle: radian
74654
74970
  };
74655
74971
  }
74656
- getCenter() {
74657
- var _a, _b;
74658
- const layoutRect = this.getRefLayoutRect();
74659
- const { width, height } = layoutRect;
74660
- return {
74661
- x: calcLayoutNumber((_a = this._center) === null || _a === void 0 ? void 0 : _a.x, width, layoutRect, width / 2),
74662
- y: calcLayoutNumber((_b = this._center) === null || _b === void 0 ? void 0 : _b.y, height, layoutRect, height / 2)
74663
- };
74664
- }
74665
74972
  getOuterRadius() {
74666
74973
  return this.computeLayoutOuterRadius();
74667
74974
  }
@@ -74745,7 +75052,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
74745
75052
  return undefined;
74746
75053
  }
74747
75054
  _computeLayoutRadius() {
74748
- return computeLayoutRadius(this._spec.layoutRadius, this.getRefLayoutRect, this.getCenter, this._startAngle, this._endAngle);
75055
+ return computeLayoutRadius(() => this._spec.layoutRadius, this.getRefLayoutRect, this.getCenter, () => ({ startAngle: this._startAngle, endAngle: this._endAngle }));
74749
75056
  }
74750
75057
  computeLayoutOuterRadius() {
74751
75058
  var _a;
@@ -76661,7 +76968,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
76661
76968
  this._progressMark = null;
76662
76969
  this._trackMark = null;
76663
76970
  this._defaultProgressCustomShape = (datum, attrs, path) => {
76664
- const cornerRadius = this._spec.cornerRadius;
76971
+ var _a, _b;
76972
+ const cornerRadius = (_a = this._spec) === null || _a === void 0 ? void 0 : _a.cornerRadius;
76665
76973
  const width = isValid$1(attrs.width) ? attrs.width : attrs.x1 - attrs.x;
76666
76974
  const height = isValid$1(attrs.height) ? attrs.height : attrs.y1 - attrs.y;
76667
76975
  const x0 = Math.min(0, width);
@@ -76670,7 +76978,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
76670
76978
  const y1 = Math.max(0, height);
76671
76979
  if (cornerRadius > 0) {
76672
76980
  let realCornerRadius = cornerRadius;
76673
- if (this._spec.direction === 'vertical') {
76981
+ if (((_b = this._spec) === null || _b === void 0 ? void 0 : _b.direction) === 'vertical') {
76674
76982
  realCornerRadius = Math.min(Math.abs(width / 2), cornerRadius);
76675
76983
  if (2 * realCornerRadius > Math.abs(height)) {
76676
76984
  const angle = Math.acos((realCornerRadius - Math.abs(height) / 2) / realCornerRadius);
@@ -91765,7 +92073,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
91765
92073
  });
91766
92074
  let filter = null;
91767
92075
  if (isContinuous()) {
91768
- filter = (d) => d[datumField] >= newDomain[0] && d[datumField] <= newDomain[1];
92076
+ filter = (d) => d[datumField] >= newDomain[0] && d[datumField] <= last(newDomain);
91769
92077
  }
91770
92078
  else {
91771
92079
  filter = (d) => {
@@ -92263,15 +92571,15 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
92263
92571
  const domain = scale.domain();
92264
92572
  if (isContinuous(scale.type)) {
92265
92573
  if (this._isReverse()) {
92266
- return domain[0] + (domain[1] - domain[0]) * (1 - state);
92574
+ return domain[0] + (last(domain) - domain[0]) * (1 - state);
92267
92575
  }
92268
- return domain[0] + (domain[1] - domain[0]) * state;
92576
+ return domain[0] + (last(domain) - domain[0]) * state;
92269
92577
  }
92270
92578
  let range = scale.range();
92271
92579
  if (this._isReverse()) {
92272
92580
  range = range.slice().reverse();
92273
92581
  }
92274
- const posInRange = range[0] + (range[1] - range[0]) * state;
92582
+ const posInRange = range[0] + (last(range) - range[0]) * state;
92275
92583
  return scale.invert(posInRange);
92276
92584
  }
92277
92585
  dataToStatePoint(data) {
@@ -92281,7 +92589,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
92281
92589
  if (!this._isHorizontal && isContinuous(scale.type)) {
92282
92590
  range = range.slice().reverse();
92283
92591
  }
92284
- return (pos - range[0]) / (range[1] - range[0]);
92592
+ return (pos - range[0]) / (last(range) - range[0]);
92285
92593
  }
92286
92594
  _modeCheck(statePoint, mode) {
92287
92595
  if (statePoint === 'start') {
@@ -92315,12 +92623,12 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
92315
92623
  this._end = end;
92316
92624
  this._minSpan = (_a = this._spec.minSpan) !== null && _a !== void 0 ? _a : 0;
92317
92625
  this._maxSpan = (_b = this._spec.maxSpan) !== null && _b !== void 0 ? _b : 1;
92318
- if (isContinuous(this._stateScale.type) && this._stateScale.domain()[0] !== this._stateScale.domain()[1]) {
92626
+ if (isContinuous(this._stateScale.type) && this._stateScale.domain()[0] !== last(this._stateScale.domain())) {
92319
92627
  if (this._spec.minValueSpan) {
92320
- this._minSpan = this._spec.minValueSpan / (this._stateScale.domain()[1] - this._stateScale.domain()[0]);
92628
+ this._minSpan = this._spec.minValueSpan / (last(this._stateScale.domain()) - this._stateScale.domain()[0]);
92321
92629
  }
92322
92630
  if (this._spec.maxValueSpan) {
92323
- this._maxSpan = this._spec.maxValueSpan / (this._stateScale.domain()[1] - this._stateScale.domain()[0]);
92631
+ this._maxSpan = this._spec.maxValueSpan / (last(this._stateScale.domain()) - this._stateScale.domain()[0]);
92324
92632
  }
92325
92633
  }
92326
92634
  this._minSpan = Math.max(0, this._minSpan);
@@ -92792,7 +93100,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
92792
93100
  return false;
92793
93101
  }
92794
93102
  const domain = scale.domain();
92795
- if (isContinuous(scale.type) && domain[0] === domain[1]) {
93103
+ if (isContinuous(scale.type) && domain[0] === last(domain)) {
92796
93104
  return false;
92797
93105
  }
92798
93106
  if (isDiscrete(scale.type) && uniqArray(domain).length === 1) {
@@ -94817,7 +95125,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
94817
95125
  }
94818
95126
  _compareSpec(spec, prevSpec) {
94819
95127
  const result = super._compareSpec(spec, prevSpec);
94820
- if ((prevSpec === null || prevSpec === void 0 ? void 0 : prevSpec.orient) !== (spec === null || spec === void 0 ? void 0 : spec.orient)) {
95128
+ if ((prevSpec === null || prevSpec === void 0 ? void 0 : prevSpec.orient) !== (spec === null || spec === void 0 ? void 0 : spec.orient) || (prevSpec === null || prevSpec === void 0 ? void 0 : prevSpec.visible) !== spec.visible) {
94821
95129
  result.reMake = true;
94822
95130
  }
94823
95131
  result.change = true;
@@ -94869,6 +95177,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
94869
95177
  _getTitleAttrs() {
94870
95178
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
94871
95179
  const realWidth = Math.max(0, (_a = this._spec.width) !== null && _a !== void 0 ? _a : this.getLayoutRect().width);
95180
+ if (this._spec.visible === false) {
95181
+ return { visible: false };
95182
+ }
94872
95183
  return Object.assign(Object.assign({}, pickWithout(this._spec, ['padding'])), { textType: (_b = this._spec.textType) !== null && _b !== void 0 ? _b : 'text', text: (_c = this._spec.text) !== null && _c !== void 0 ? _c : '', subtextType: (_d = this._spec.subtextType) !== null && _d !== void 0 ? _d : 'text', subtext: (_e = this._spec.subtext) !== null && _e !== void 0 ? _e : '', x: (_f = this._spec.x) !== null && _f !== void 0 ? _f : 0, y: (_g = this._spec.y) !== null && _g !== void 0 ? _g : 0, width: realWidth, height: this._spec.height, minWidth: this._spec.minWidth, maxWidth: this._spec.maxWidth, minHeight: this._spec.minHeight, maxHeight: this._spec.maxHeight, padding: this._spec.innerPadding, align: (_h = this._spec.align) !== null && _h !== void 0 ? _h : 'left', verticalAlign: (_j = this._spec.verticalAlign) !== null && _j !== void 0 ? _j : 'top', textStyle: Object.assign({ width: realWidth }, this._spec.textStyle), subtextStyle: Object.assign({ width: realWidth }, this._spec.subtextStyle) });
94873
95184
  }
94874
95185
  _createOrUpdateTitleComponent(attrs) {
@@ -96726,7 +97037,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
96726
97037
  const endPercent = dataZoom.dataToStatePoint(endValue);
96727
97038
  const newStartPercent = this._stateClamp(startPercent - axisRangeExpand);
96728
97039
  const newEndPercent = this._stateClamp(endPercent + axisRangeExpand);
96729
- dataZoom.setStartAndEnd(newStartPercent, newEndPercent, ['percent', 'percent']);
97040
+ dataZoom.setStartAndEnd(Math.min(newStartPercent, newEndPercent), Math.max(newStartPercent, newEndPercent), [
97041
+ 'percent',
97042
+ 'percent'
97043
+ ]);
96730
97044
  this._zoomRecord.push({
96731
97045
  operateComponent: dataZoom,
96732
97046
  start: newStartPercent,
@@ -96736,13 +97050,13 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
96736
97050
  else {
96737
97051
  const range = axis.getScale().range();
96738
97052
  const rangeFactor = (_b = axis.getScale().rangeFactor()) !== null && _b !== void 0 ? _b : [0, 1];
96739
- const isAxisReverse = range[1] < range[0];
97053
+ const isAxisReverse = last(range) < range[0];
96740
97054
  const startPosTemp = boundsStart - region.getLayoutStartPoint()[regionStartAttr];
96741
97055
  const endPosTemp = boundsEnd - region.getLayoutStartPoint()[regionStartAttr];
96742
97056
  const endPos = isAxisReverse ? Math.min(startPosTemp, endPosTemp) : Math.max(startPosTemp, endPosTemp);
96743
97057
  const startPos = isAxisReverse ? Math.max(startPosTemp, endPosTemp) : Math.min(startPosTemp, endPosTemp);
96744
- const start = ((startPos - range[0]) / (range[1] - range[0])) * (rangeFactor[1] - rangeFactor[0]) + rangeFactor[0];
96745
- const end = ((endPos - range[0]) / (range[1] - range[0])) * (rangeFactor[1] - rangeFactor[0]) + rangeFactor[0];
97058
+ const start = ((startPos - range[0]) / (last(range) - range[0])) * (rangeFactor[1] - rangeFactor[0]) + rangeFactor[0];
97059
+ const end = ((endPos - range[0]) / (last(range) - range[0])) * (rangeFactor[1] - rangeFactor[0]) + rangeFactor[0];
96746
97060
  const newStart = this._stateClamp(start - axisRangeExpand);
96747
97061
  const newEnd = this._stateClamp(end + axisRangeExpand);
96748
97062
  axis.getScale().rangeFactor([newStart, newEnd]);
@@ -98476,7 +98790,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
98476
98790
  return 0;
98477
98791
  };
98478
98792
  this._getActualTooltipPosition = (actualTooltip, params, tooltipBoxSize) => {
98479
- var _a, _b, _c, _d, _e, _f, _g;
98793
+ var _a, _b, _c, _d, _e, _f, _g, _h;
98480
98794
  const event = params.event;
98481
98795
  const { tooltipSpec } = params;
98482
98796
  const firstDimensionInfo = (_a = params.dimensionInfo) === null || _a === void 0 ? void 0 : _a[0];
@@ -98512,8 +98826,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
98512
98826
  containerSize.width = window.innerWidth;
98513
98827
  containerSize.height = window.innerHeight;
98514
98828
  if (!isCanvas) {
98515
- tooltipParentElementRect = (_f = tooltipParentElement === null || tooltipParentElement === void 0 ? void 0 : tooltipParentElement.getBoundingClientRect()) !== null && _f !== void 0 ? _f : invalidPosition;
98516
- const chartElement = ((_g = this._compiler.getCanvas()) !== null && _g !== void 0 ? _g : this._chartContainer);
98829
+ tooltipParentElementRect = (_g = (_f = tooltipParentElement === null || tooltipParentElement === void 0 ? void 0 : tooltipParentElement.getBoundingClientRect) === null || _f === void 0 ? void 0 : _f.call(tooltipParentElement)) !== null && _g !== void 0 ? _g : invalidPosition;
98830
+ const chartElement = ((_h = this._compiler.getCanvas()) !== null && _h !== void 0 ? _h : this._chartContainer);
98517
98831
  const chartElementRect = chartElement === null || chartElement === void 0 ? void 0 : chartElement.getBoundingClientRect();
98518
98832
  relativePosOffset = {
98519
98833
  x: chartElementRect.x - tooltipParentElementRect.x,
@@ -99848,7 +100162,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
99848
100162
  initEl() {
99849
100163
  const tooltipSpec = this._component.getSpec();
99850
100164
  const parentElement = tooltipSpec.parentElement;
99851
- if (domDocument && parentElement) {
100165
+ if (domDocument && parentElement && parentElement.children && parentElement.children.length) {
99852
100166
  for (let i = 0; i < parentElement.children.length; i++) {
99853
100167
  if (parentElement.children[i].classList.contains(TOOLTIP_CONTAINER_EL_CLASS_NAME)) {
99854
100168
  this._container = parentElement.children[i];
@@ -100618,9 +100932,15 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
100618
100932
  const infoList = array((_f = (_e = chartSpecInfo.component) === null || _e === void 0 ? void 0 : _e[specKey]) !== null && _f !== void 0 ? _f : []);
100619
100933
  (_h = array((_g = chartSpec[specKey]) !== null && _g !== void 0 ? _g : [])) === null || _h === void 0 ? void 0 : _h.forEach((componentSpec, i) => {
100620
100934
  const specInfo = infoList[i];
100621
- if (specInfo.type === filterType) {
100935
+ if (specInfo && specInfo.type === filterType) {
100622
100936
  result.modelInfo.push(Object.assign(Object.assign({}, specInfo), { spec: componentSpec }));
100623
100937
  }
100938
+ else if (componentSpec && componentSpec.visible === false) {
100939
+ result.modelInfo.push({
100940
+ type: filterType,
100941
+ spec: componentSpec
100942
+ });
100943
+ }
100624
100944
  });
100625
100945
  }
100626
100946
  else {