@visactor/vrender-components 0.20.1-alpha.5 → 0.20.1-alpha.7

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 (94) hide show
  1. package/cjs/axis/config.d.ts +6 -0
  2. package/cjs/axis/config.js +7 -1
  3. package/cjs/axis/config.js.map +1 -1
  4. package/cjs/axis/constant.d.ts +3 -1
  5. package/cjs/axis/constant.js +2 -1
  6. package/cjs/axis/constant.js.map +1 -1
  7. package/cjs/axis/line.d.ts +1 -0
  8. package/cjs/axis/line.js +45 -4
  9. package/cjs/axis/line.js.map +1 -1
  10. package/cjs/axis/tick-data/continuous.js +35 -11
  11. package/cjs/axis/tick-data/continuous.js.map +1 -1
  12. package/cjs/axis/type.d.ts +26 -4
  13. package/cjs/axis/type.js.map +1 -1
  14. package/cjs/axis/util.d.ts +2 -0
  15. package/cjs/axis/util.js +16 -4
  16. package/cjs/axis/util.js.map +1 -1
  17. package/cjs/brush/type.js +1 -2
  18. package/cjs/checkbox/checkbox.d.ts +2 -0
  19. package/cjs/checkbox/checkbox.js +4 -0
  20. package/cjs/checkbox/checkbox.js.map +1 -1
  21. package/cjs/index.d.ts +1 -1
  22. package/cjs/index.js +1 -1
  23. package/cjs/index.js.map +1 -1
  24. package/cjs/label/arc.d.ts +2 -2
  25. package/cjs/label/arc.js +18 -4
  26. package/cjs/label/arc.js.map +1 -1
  27. package/cjs/label/base.js +15 -2
  28. package/cjs/label/base.js.map +1 -1
  29. package/cjs/label/dataLabel.js +14 -2
  30. package/cjs/label/dataLabel.js.map +1 -1
  31. package/cjs/label/line.js +14 -2
  32. package/cjs/label/line.js.map +1 -1
  33. package/cjs/label/polygon.js +14 -2
  34. package/cjs/label/polygon.js.map +1 -1
  35. package/cjs/label/rect.js +14 -1
  36. package/cjs/label/rect.js.map +1 -1
  37. package/cjs/label/symbol.js +14 -2
  38. package/cjs/label/symbol.js.map +1 -1
  39. package/cjs/label/type.d.ts +1 -1
  40. package/cjs/label/type.js.map +1 -1
  41. package/cjs/radio/radio.d.ts +2 -0
  42. package/cjs/radio/radio.js +4 -0
  43. package/cjs/radio/radio.js.map +1 -1
  44. package/cjs/tag/tag.d.ts +10 -0
  45. package/cjs/tag/tag.js +32 -2
  46. package/cjs/tag/tag.js.map +1 -1
  47. package/dist/index.es.js +204 -20
  48. package/es/axis/config.d.ts +6 -0
  49. package/es/axis/config.js +7 -0
  50. package/es/axis/config.js.map +1 -1
  51. package/es/axis/constant.d.ts +3 -1
  52. package/es/axis/constant.js +2 -1
  53. package/es/axis/constant.js.map +1 -1
  54. package/es/axis/line.d.ts +1 -0
  55. package/es/axis/line.js +46 -3
  56. package/es/axis/line.js.map +1 -1
  57. package/es/axis/tick-data/continuous.js +34 -11
  58. package/es/axis/tick-data/continuous.js.map +1 -1
  59. package/es/axis/type.d.ts +26 -4
  60. package/es/axis/type.js.map +1 -1
  61. package/es/axis/util.d.ts +2 -0
  62. package/es/axis/util.js +14 -2
  63. package/es/axis/util.js.map +1 -1
  64. package/es/brush/type.js +1 -2
  65. package/es/checkbox/checkbox.d.ts +2 -0
  66. package/es/checkbox/checkbox.js +4 -0
  67. package/es/checkbox/checkbox.js.map +1 -1
  68. package/es/index.d.ts +1 -1
  69. package/es/index.js +1 -1
  70. package/es/index.js.map +1 -1
  71. package/es/label/arc.d.ts +2 -2
  72. package/es/label/arc.js +18 -4
  73. package/es/label/arc.js.map +1 -1
  74. package/es/label/base.js +15 -2
  75. package/es/label/base.js.map +1 -1
  76. package/es/label/dataLabel.js +14 -2
  77. package/es/label/dataLabel.js.map +1 -1
  78. package/es/label/line.js +14 -2
  79. package/es/label/line.js.map +1 -1
  80. package/es/label/polygon.js +14 -2
  81. package/es/label/polygon.js.map +1 -1
  82. package/es/label/rect.js +14 -1
  83. package/es/label/rect.js.map +1 -1
  84. package/es/label/symbol.js +14 -2
  85. package/es/label/symbol.js.map +1 -1
  86. package/es/label/type.d.ts +1 -1
  87. package/es/label/type.js.map +1 -1
  88. package/es/radio/radio.d.ts +2 -0
  89. package/es/radio/radio.js +4 -0
  90. package/es/radio/radio.js.map +1 -1
  91. package/es/tag/tag.d.ts +10 -0
  92. package/es/tag/tag.js +32 -2
  93. package/es/tag/tag.js.map +1 -1
  94. package/package.json +5 -5
package/dist/index.es.js CHANGED
@@ -4343,7 +4343,7 @@ class ResourceLoader {
4343
4343
  var _a;
4344
4344
  data.loadState = (null == res ? void 0 : res.data) ? "success" : "fail", data.data = null == res ? void 0 : res.data, null === (_a = data.waitingMark) || void 0 === _a || _a.map((mark, index) => {
4345
4345
  (null == res ? void 0 : res.data) ? (data.loadState = "success", data.data = res.data, mark.imageLoadSuccess(svgStr, res.data)) : (data.loadState = "fail", mark.imageLoadFail(svgStr));
4346
- });
4346
+ }), data.waitingMark && (data.waitingMark = []);
4347
4347
  })) : (data.loadState = "fail", mark.imageLoadFail(svgStr)));
4348
4348
  }
4349
4349
  static GetFile(url, type) {
@@ -4374,7 +4374,7 @@ class ResourceLoader {
4374
4374
  var _a;
4375
4375
  data.loadState = (null == res ? void 0 : res.data) ? "success" : "fail", data.data = null == res ? void 0 : res.data, null === (_a = data.waitingMark) || void 0 === _a || _a.map((mark, index) => {
4376
4376
  (null == res ? void 0 : res.data) ? (data.loadState = "success", data.data = res.data, mark.imageLoadSuccess(url, res.data)) : (data.loadState = "fail", mark.imageLoadFail(url));
4377
- });
4377
+ }), data.waitingMark && (data.waitingMark = []);
4378
4378
  });
4379
4379
  promises.push(end);
4380
4380
  } else data.loadState = "fail", marks.forEach(mark => mark.imageLoadFail(url));
@@ -14734,9 +14734,14 @@ class Tag extends AbstractComponent {
14734
14734
  constructor(attributes, options) {
14735
14735
  super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : merge({}, Tag.defaultAttributes, attributes));
14736
14736
  this.name = 'tag';
14737
+ this._tagStates = [];
14738
+ this._rectStates = [];
14739
+ this._symbolStates = [];
14740
+ this._textStates = [];
14737
14741
  }
14738
14742
  render() {
14739
14743
  var _a, _b, _c;
14744
+ this.cacheStates();
14740
14745
  const { text = '', textStyle = {}, shape = {}, panel = {}, space = 4, minWidth, maxWidth, padding = 4, visible, state, type, textAlwaysCenter, containerTextAlign } = this.attribute;
14741
14746
  const parsedPadding = normalizePadding(padding);
14742
14747
  const group = this.createOrUpdateChild('tag-content', { x: 0, y: 0, zIndex: 1 }, 'group');
@@ -14921,6 +14926,55 @@ class Tag extends AbstractComponent {
14921
14926
  }
14922
14927
  }
14923
14928
  this._textShape = textShape;
14929
+ this._symbol = symbol;
14930
+ this.resetStates();
14931
+ }
14932
+ initAttributes(params, options) {
14933
+ params = (options === null || options === void 0 ? void 0 : options.skipDefault) ? params : merge({}, Tag.defaultAttributes, params);
14934
+ super.initAttributes(params);
14935
+ this.render();
14936
+ }
14937
+ addState(stateName, keepCurrentStates, hasAnimation) {
14938
+ super.addState(stateName, keepCurrentStates, hasAnimation);
14939
+ if (this._textShape) {
14940
+ this._textShape.addState(stateName, keepCurrentStates, hasAnimation);
14941
+ }
14942
+ if (this._bgRect) {
14943
+ this._bgRect.addState(stateName, keepCurrentStates, hasAnimation);
14944
+ }
14945
+ if (this._symbol) {
14946
+ this._symbol.addState(stateName, keepCurrentStates, hasAnimation);
14947
+ }
14948
+ }
14949
+ removeState(stateName, hasAnimation) {
14950
+ super.removeState(stateName, hasAnimation);
14951
+ if (this._textShape) {
14952
+ this._textShape.removeState(stateName, hasAnimation);
14953
+ }
14954
+ if (this._bgRect) {
14955
+ this._bgRect.removeState(stateName, hasAnimation);
14956
+ }
14957
+ if (this._symbol) {
14958
+ this._symbol.removeState(stateName, hasAnimation);
14959
+ }
14960
+ }
14961
+ cacheStates() {
14962
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
14963
+ this._tagStates = (_b = (_a = this.currentStates) === null || _a === void 0 ? void 0 : _a.slice()) !== null && _b !== void 0 ? _b : [];
14964
+ this._rectStates = (_e = (_d = (_c = this._bgRect) === null || _c === void 0 ? void 0 : _c.currentStates) === null || _d === void 0 ? void 0 : _d.slice()) !== null && _e !== void 0 ? _e : [];
14965
+ this._symbolStates = (_h = (_g = (_f = this._symbol) === null || _f === void 0 ? void 0 : _f.currentStates) === null || _g === void 0 ? void 0 : _g.slice()) !== null && _h !== void 0 ? _h : [];
14966
+ this._textStates = (_l = (_k = (_j = this._textShape) === null || _j === void 0 ? void 0 : _j.currentStates) === null || _k === void 0 ? void 0 : _k.slice()) !== null && _l !== void 0 ? _l : [];
14967
+ this.clearStates();
14968
+ (_m = this._bgRect) === null || _m === void 0 ? void 0 : _m.clearStates();
14969
+ (_o = this._symbol) === null || _o === void 0 ? void 0 : _o.clearStates();
14970
+ (_p = this._textShape) === null || _p === void 0 ? void 0 : _p.clearStates();
14971
+ }
14972
+ resetStates() {
14973
+ var _a, _b, _c;
14974
+ this._tagStates.length && this.useStates(this._tagStates);
14975
+ this._rectStates.length && ((_a = this._bgRect) === null || _a === void 0 ? void 0 : _a.useStates(this._rectStates));
14976
+ this._symbolStates.length && ((_b = this._symbol) === null || _b === void 0 ? void 0 : _b.useStates(this._symbolStates));
14977
+ this._textStates.length && ((_c = this._textShape) === null || _c === void 0 ? void 0 : _c.useStates(this._textStates));
14924
14978
  }
14925
14979
  }
14926
14980
  Tag.defaultAttributes = {
@@ -16071,7 +16125,8 @@ class LabelBase extends AbstractComponent {
16071
16125
  this._bmpTool = bmpTool;
16072
16126
  }
16073
16127
  constructor(attributes, options) {
16074
- super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : merge({}, LabelBase.defaultAttributes, attributes));
16128
+ const { data } = attributes, restAttributes = __rest(attributes, ["data"]);
16129
+ super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : Object.assign({ data }, merge({}, LabelBase.defaultAttributes, restAttributes)));
16075
16130
  this.name = 'label';
16076
16131
  this._onHover = (e) => {
16077
16132
  const target = e.target;
@@ -16773,7 +16828,8 @@ const getLabelComponent = (type) => {
16773
16828
 
16774
16829
  class SymbolLabel extends LabelBase {
16775
16830
  constructor(attributes, options) {
16776
- super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : merge({}, SymbolLabel.defaultAttributes, attributes));
16831
+ const { data } = attributes, restAttributes = __rest(attributes, ["data"]);
16832
+ super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : Object.assign({ data }, merge({}, SymbolLabel.defaultAttributes, restAttributes)));
16777
16833
  this.name = 'symbol-label';
16778
16834
  }
16779
16835
  labeling(textBounds, graphicBounds, position = 'top', offset = 0) {
@@ -16794,7 +16850,8 @@ const registerSymbolDataLabel = () => {
16794
16850
 
16795
16851
  class RectLabel extends LabelBase {
16796
16852
  constructor(attributes, options) {
16797
- super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : merge({}, RectLabel.defaultAttributes, attributes));
16853
+ const { data } = attributes, restAttributes = __rest(attributes, ["data"]);
16854
+ super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : Object.assign({ data }, merge({}, RectLabel.defaultAttributes, restAttributes)));
16798
16855
  }
16799
16856
  labeling(textBounds, graphicBounds, position = 'top', offset = 0) {
16800
16857
  if (!textBounds || !graphicBounds) {
@@ -16848,7 +16905,8 @@ const registerRectDataLabel = () => {
16848
16905
 
16849
16906
  class LineLabel extends LabelBase {
16850
16907
  constructor(attributes, options) {
16851
- super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : merge({}, LineLabel.defaultAttributes, attributes));
16908
+ const { data } = attributes, restAttributes = __rest(attributes, ["data"]);
16909
+ super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : Object.assign({ data }, merge({}, LineLabel.defaultAttributes, restAttributes)));
16852
16910
  this.name = 'line-label';
16853
16911
  }
16854
16912
  getGraphicBounds(graphic, point = {}, position = 'end') {
@@ -16921,7 +16979,8 @@ class ArcInfo {
16921
16979
  }
16922
16980
  class ArcLabel extends LabelBase {
16923
16981
  constructor(attributes, options) {
16924
- super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : merge({}, ArcLabel.defaultAttributes, attributes));
16982
+ const { data } = attributes, restAttributes = __rest(attributes, ["data"]);
16983
+ super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : Object.assign({ data }, merge({}, ArcLabel.defaultAttributes, restAttributes)));
16925
16984
  this.name = 'arc-label';
16926
16985
  this._ellipsisWidth = 0;
16927
16986
  this._arcLeft = new Map();
@@ -17018,6 +17077,7 @@ class ArcLabel extends LabelBase {
17018
17077
  case 'inside':
17019
17078
  case 'inside-inner':
17020
17079
  case 'inside-outer':
17080
+ case 'inside-center':
17021
17081
  arcs.push(...this._layoutInsideLabels(rightArcs, attribute, currentMarks));
17022
17082
  arcs.push(...this._layoutInsideLabels(leftArcs, attribute, currentMarks));
17023
17083
  break;
@@ -17070,6 +17130,9 @@ class ArcLabel extends LabelBase {
17070
17130
  if (position === 'inside-inner') {
17071
17131
  labelRadius = innerRadius - offsetRadius + alignOffset;
17072
17132
  }
17133
+ else if (position === 'inside-center') {
17134
+ labelRadius = innerRadius + (outerRadius - innerRadius) / 2;
17135
+ }
17073
17136
  else {
17074
17137
  labelRadius = outerRadius + offsetRadius - alignOffset;
17075
17138
  }
@@ -17602,7 +17665,7 @@ class ArcLabel extends LabelBase {
17602
17665
  return Math.min(width / 2, height / 2);
17603
17666
  }
17604
17667
  _canPlaceInside(textBound, shapeBound) {
17605
- return this.attribute.position === 'inside';
17668
+ return this.attribute.position === 'inside' || this.attribute.position === 'inside-center';
17606
17669
  }
17607
17670
  computeLayoutOuterRadius(r, width, height) {
17608
17671
  return r / (Math.min(width, height) / 2);
@@ -17642,7 +17705,8 @@ const registerArcDataLabel = () => {
17642
17705
 
17643
17706
  class DataLabel extends AbstractComponent {
17644
17707
  constructor(attributes, options) {
17645
- super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : merge({}, DataLabel.defaultAttributes, attributes));
17708
+ const { dataLabels } = attributes, restAttributes = __rest(attributes, ["dataLabels"]);
17709
+ super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : Object.assign({ dataLabels }, merge({}, DataLabel.defaultAttributes, restAttributes)));
17646
17710
  this.name = 'data-label';
17647
17711
  }
17648
17712
  render() {
@@ -18022,6 +18086,8 @@ var AXIS_ELEMENT_NAME;
18022
18086
  AXIS_ELEMENT_NAME["line"] = "axis-line";
18023
18087
  AXIS_ELEMENT_NAME["background"] = "axis-background";
18024
18088
  AXIS_ELEMENT_NAME["axisLabelBackground"] = "axis-label-background";
18089
+ AXIS_ELEMENT_NAME["axisBreak"] = "axis-break";
18090
+ AXIS_ELEMENT_NAME["axisBreakSymbol"] = "axis-break-symbol";
18025
18091
  })(AXIS_ELEMENT_NAME || (AXIS_ELEMENT_NAME = {}));
18026
18092
  var AxisStateValue;
18027
18093
  (function (AxisStateValue) {
@@ -18091,6 +18157,12 @@ const DEFAULT_AXIS_THEME = {
18091
18157
  }
18092
18158
  }
18093
18159
  };
18160
+ const DEFAULT_AXIS_BREAK_SYMBOL_STYLE = {
18161
+ size: 8,
18162
+ stroke: '#000',
18163
+ lineWidth: 1,
18164
+ zIndex: 1
18165
+ };
18094
18166
 
18095
18167
  const clampRadian = (angle = 0) => {
18096
18168
  if (angle < 0) {
@@ -18148,6 +18220,13 @@ function getCircleLabelPosition(tickPosition, tickVector, text, style) {
18148
18220
  const y = baseY - dy;
18149
18221
  return { x, y };
18150
18222
  }
18223
+ function getAxisBreakSymbolAttrs(props = {}) {
18224
+ var _a, _b;
18225
+ const { style = {}, angle = Math.PI * 0.5 } = props;
18226
+ const symbolStyle = merge({}, DEFAULT_AXIS_BREAK_SYMBOL_STYLE, style);
18227
+ const symbolSize = (_a = symbolStyle.size) !== null && _a !== void 0 ? _a : DEFAULT_AXIS_BREAK_SYMBOL_STYLE.size;
18228
+ return Object.assign(Object.assign({}, symbolStyle), { symbolType: (_b = symbolStyle.symbolType) !== null && _b !== void 0 ? _b : `M ${-symbolSize / 2} ${symbolSize * Math.sin(angle)} L ${symbolSize / 2} ${-symbolSize * Math.sin(angle)}`, symbolSize });
18229
+ }
18151
18230
  function getElMap(g) {
18152
18231
  const elMap = {};
18153
18232
  traverseGroup(g, (el) => {
@@ -19084,7 +19163,43 @@ class LineAxis extends AxisBase {
19084
19163
  }
19085
19164
  _renderInner(container) {
19086
19165
  var _a;
19166
+ if (this.attribute.breaks && this.attribute.breaks.length) {
19167
+ const transformedBreaks = [];
19168
+ for (let index = 0; index < this.attribute.breaks.length; index++) {
19169
+ const aBreak = this.attribute.breaks[index];
19170
+ const { range, breakSymbol, rawRange } = aBreak;
19171
+ transformedBreaks.push({
19172
+ startPoint: this.getTickCoord(range[0]),
19173
+ endPoint: this.getTickCoord(range[1]),
19174
+ range,
19175
+ breakSymbol,
19176
+ rawRange
19177
+ });
19178
+ }
19179
+ this._breaks = transformedBreaks;
19180
+ }
19087
19181
  super._renderInner(container);
19182
+ if (this._breaks && this._breaks.length) {
19183
+ this._breaks.forEach((b, index) => {
19184
+ const { startPoint, endPoint, breakSymbol, rawRange } = b;
19185
+ if ((breakSymbol === null || breakSymbol === void 0 ? void 0 : breakSymbol.visible) !== false) {
19186
+ const axisBreakGroup = graphicCreator.group({
19187
+ zIndex: 99
19188
+ });
19189
+ axisBreakGroup.name = AXIS_ELEMENT_NAME.axisBreak;
19190
+ axisBreakGroup.id = this._getNodeId(`${AXIS_ELEMENT_NAME.axisBreak}-${index}`);
19191
+ axisBreakGroup.data = rawRange;
19192
+ const symbolStyle = getAxisBreakSymbolAttrs(breakSymbol);
19193
+ const shape1 = graphicCreator.symbol(Object.assign({ x: startPoint.x, y: startPoint.y }, symbolStyle));
19194
+ shape1.name = AXIS_ELEMENT_NAME.axisBreakSymbol;
19195
+ const shape2 = graphicCreator.symbol(Object.assign({ x: endPoint.x, y: endPoint.y }, symbolStyle));
19196
+ shape2.name = AXIS_ELEMENT_NAME.axisBreakSymbol;
19197
+ axisBreakGroup.add(shape1);
19198
+ axisBreakGroup.add(shape2);
19199
+ container.add(axisBreakGroup);
19200
+ }
19201
+ });
19202
+ }
19088
19203
  const { panel } = this.attribute;
19089
19204
  if (panel && panel.visible) {
19090
19205
  const axisContainer = this.axisContainer;
@@ -19098,9 +19213,24 @@ class LineAxis extends AxisBase {
19098
19213
  }
19099
19214
  renderLine(container) {
19100
19215
  const { start, end, line } = this.attribute;
19101
- const _a = line, { startSymbol, endSymbol, style, breakRange, breakShape, breakShapeStyle, state } = _a, restLineAttrs = __rest(_a, ["startSymbol", "endSymbol", "style", "breakRange", "breakShape", "breakShapeStyle", "state"]);
19102
- const lineAttrs = Object.assign({ points: [start, end], startSymbol,
19216
+ const _a = line, { startSymbol, endSymbol, style, state } = _a, restLineAttrs = __rest(_a, ["startSymbol", "endSymbol", "style", "state"]);
19217
+ const lineAttrs = Object.assign({ startSymbol,
19103
19218
  endSymbol, lineStyle: style }, restLineAttrs);
19219
+ if (this._breaks && this._breaks.length) {
19220
+ const linePoints = [];
19221
+ let lastStartPoint = start;
19222
+ this._breaks.forEach(b => {
19223
+ const { startPoint, endPoint } = b;
19224
+ linePoints.push([lastStartPoint, startPoint]);
19225
+ lastStartPoint = endPoint;
19226
+ });
19227
+ linePoints.push([lastStartPoint, end]);
19228
+ lineAttrs.points = linePoints;
19229
+ lineAttrs.multiSegment = true;
19230
+ }
19231
+ else {
19232
+ lineAttrs.points = [start, end];
19233
+ }
19104
19234
  if (!isEmpty(state)) {
19105
19235
  lineAttrs.state = {
19106
19236
  line: merge({}, DEFAULT_STATES$1, state),
@@ -19855,8 +19985,34 @@ const isAxisHorizontal = (axisOrientType) => {
19855
19985
  return ['bottom', 'top', 'z'].includes(axisOrientType);
19856
19986
  };
19857
19987
 
19988
+ function getScaleTicks(op, scale, count, getTicks) {
19989
+ let scaleTicks;
19990
+ const { breakData } = op;
19991
+ if (breakData && breakData()) {
19992
+ const { range: breakRanges, scope } = breakData();
19993
+ const domain = scale.domain();
19994
+ scaleTicks = [];
19995
+ for (let i = 0; i < domain.length; i++) {
19996
+ if (i < domain.length - 1) {
19997
+ const range = [domain[i], domain[i + 1]];
19998
+ const ticks = getTicks(count, range);
19999
+ ticks.forEach(tick => {
20000
+ if (!breakRanges.some(breakRange => tick >= breakRange[0] && tick <= breakRange[1])) {
20001
+ scaleTicks.push(tick);
20002
+ }
20003
+ });
20004
+ }
20005
+ }
20006
+ scale.domain(domain);
20007
+ }
20008
+ else {
20009
+ scaleTicks = getTicks(count);
20010
+ }
20011
+ return scaleTicks;
20012
+ }
19858
20013
  const DEFAULT_CONTINUOUS_TICK_COUNT = 5;
19859
20014
  const continuousTicks = (scale, op) => {
20015
+ var _a, _b;
19860
20016
  if (!isContinuous(scale.type)) {
19861
20017
  return convertDomainToTickData(scale.domain());
19862
20018
  }
@@ -19865,22 +20021,37 @@ const continuousTicks = (scale, op) => {
19865
20021
  if (rangeSize < 2) {
19866
20022
  return convertDomainToTickData([scale.domain()[0]]);
19867
20023
  }
19868
- const { tickCount, forceTickCount, tickStep, noDecimals = false, labelStyle } = op;
20024
+ const { tickCount, forceTickCount, tickStep, noDecimals = false, labelStyle, breakData } = op;
19869
20025
  let scaleTicks;
19870
20026
  if (isValid(tickStep)) {
19871
20027
  scaleTicks = scale.stepTicks(tickStep);
19872
20028
  }
19873
20029
  else if (isValid(forceTickCount)) {
19874
- scaleTicks = scale.forceTicks(forceTickCount);
20030
+ scaleTicks = getScaleTicks(op, scale, forceTickCount, (count, range) => {
20031
+ if (range && range.length) {
20032
+ return scale.domain(range).forceTicks(count);
20033
+ }
20034
+ return scale.forceTicks(count);
20035
+ });
19875
20036
  }
19876
20037
  else if (op.tickMode === 'd3') {
19877
- const count = isFunction(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;
19878
- scaleTicks = scale.d3Ticks(count !== null && count !== void 0 ? count : DEFAULT_CONTINUOUS_TICK_COUNT, { noDecimals });
20038
+ const count = (_a = (isFunction(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount)) !== null && _a !== void 0 ? _a : DEFAULT_CONTINUOUS_TICK_COUNT;
20039
+ scaleTicks = getScaleTicks(op, scale, count, (count, range) => {
20040
+ if (range && range.length) {
20041
+ return scale.domain(range).d3Ticks(count, { noDecimals });
20042
+ }
20043
+ return scale.d3Ticks(count, { noDecimals });
20044
+ });
19879
20045
  }
19880
20046
  else {
19881
- const count = isFunction(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;
20047
+ const count = (_b = (isFunction(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount)) !== null && _b !== void 0 ? _b : DEFAULT_CONTINUOUS_TICK_COUNT;
19882
20048
  const customTicks = isFunction(op.tickMode) ? op.tickMode : undefined;
19883
- scaleTicks = scale.ticks(count !== null && count !== void 0 ? count : DEFAULT_CONTINUOUS_TICK_COUNT, { noDecimals, customTicks });
20049
+ scaleTicks = getScaleTicks(op, scale, count, (count, range) => {
20050
+ if (range && range.length) {
20051
+ return scale.domain(range).ticks(count, { noDecimals, customTicks });
20052
+ }
20053
+ return scale.ticks(count, { noDecimals, customTicks });
20054
+ });
19884
20055
  }
19885
20056
  if (op.sampling) {
19886
20057
  if (op.coordinateType === 'cartesian' || (op.coordinateType === 'polar' && op.axisOrientType === 'radius')) {
@@ -19889,8 +20060,9 @@ const continuousTicks = (scale, op) => {
19889
20060
  AABBBounds: bounds,
19890
20061
  value: scaleTicks[i]
19891
20062
  }));
20063
+ const samplingMethod = breakData ? methods.greedy : methods.parity;
19892
20064
  while (items.length >= 3 && hasOverlap(items, labelGap)) {
19893
- items = methods.parity(items);
20065
+ items = samplingMethod(items, labelGap);
19894
20066
  }
19895
20067
  const ticks = items.map(item => item.value);
19896
20068
  if (ticks.length < 3 && labelFlush) {
@@ -28291,6 +28463,12 @@ class CheckBox extends AbstractComponent {
28291
28463
  y: textY
28292
28464
  });
28293
28465
  }
28466
+ initAttributes(params, options) {
28467
+ params = (options === null || options === void 0 ? void 0 : options.skipDefault) ? params : merge({}, CheckBox.defaultAttributes, params);
28468
+ super.initAttributes(params);
28469
+ this.renderGroup();
28470
+ this.render();
28471
+ }
28294
28472
  }
28295
28473
  CheckBox.defaultAttributes = {
28296
28474
  interactive: true,
@@ -28420,6 +28598,12 @@ class Radio extends AbstractComponent {
28420
28598
  y: textY
28421
28599
  });
28422
28600
  }
28601
+ initAttributes(params, options) {
28602
+ params = (options === null || options === void 0 ? void 0 : options.skipDefault) ? params : merge({}, Radio.defaultAttributes, params);
28603
+ super.initAttributes(params);
28604
+ this.renderGroup();
28605
+ this.render();
28606
+ }
28423
28607
  }
28424
28608
  Radio.defaultAttributes = {
28425
28609
  interactive: true,
@@ -28509,6 +28693,6 @@ EmptyTip.defaultAttributes = {
28509
28693
  }
28510
28694
  };
28511
28695
 
28512
- const version = "0.20.1-alpha.5";
28696
+ const version = "0.20.1-alpha.7";
28513
28697
 
28514
- export { AXIS_ELEMENT_NAME, AbstractComponent, ArcInfo, ArcLabel, ArcSegment, AxisStateValue, BasePlayer, Brush, CheckBox, CircleAxis, CircleAxisGrid, CircleCrosshair, ColorContinuousLegend, ContinuousPlayer, DEFAULT_ITEM_SPACE_COL, DEFAULT_ITEM_SPACE_ROW, DEFAULT_LABEL_SPACE, DEFAULT_PAGER_SPACE, DEFAULT_SHAPE_SIZE, DEFAULT_SHAPE_SPACE, DEFAULT_STATES$1 as DEFAULT_STATES, DEFAULT_TITLE_SPACE, DEFAULT_VALUE_SPACE, DataLabel, DataZoom, DataZoomActiveTag, DirectionEnum, DiscreteLegend, DiscretePlayer, EmptyTip, GroupTransition, IMarkAreaLabelPosition, IMarkCommonArcLabelPosition, IMarkLineLabelPosition, IMarkPointItemPosition, IOperateType, Indicator, LEGEND_ELEMENT_NAME, LabelBase, LegendEvent, LegendStateValue, LineAxis, LineAxisGrid, LineCrosshair, LineLabel, LinkPath, MarkArcArea, MarkArcLine, MarkArea, MarkLine, MarkPoint, Pager, PlayerEventEnum, PolygonCrosshair, PopTip, Radio, RectCrosshair, RectLabel, SLIDER_ELEMENT_NAME, ScrollBar, SectorCrosshair, Segment, SizeContinuousLegend, Slider, SymbolLabel, Tag, Timeline, Title, Tooltip, VTag, alignTextInLine, angle, angleLabelOrientAttribute, angleTo, cartesianTicks, clampRadian, computeOffsetForlimit, continuousTicks, contrastAccessibilityChecker, convertDomainToTickData, createTextGraphicByType, deltaXYToAngle, fuzzyEqualNumber, getCircleLabelPosition, getCirclePoints, getCircleVerticalVector, getElMap, getHorizontalPath, getMarksByName, getNoneGroupMarksByName, getPolarAngleLabelPosition, getPolygonPath, getSizeHandlerPath, getTextAlignAttrOfVerticalDir, getTextType, getVerticalCoord, getVerticalPath, htmlAttributeTransform, initTextMeasure, isInRange, isPostiveXAxis, isRichText, isVisible, labelSmartInvert, length, limitShapeInBounds, linearDiscreteTicks, loadPoptip, measureTextSize, normalize, polarAngleAxisDiscreteTicks, polarTicks, reactAttributeTransform, registerArcDataLabel, registerLineDataLabel, registerMarkArcAreaAnimate, registerMarkArcLineAnimate, registerMarkAreaAnimate, registerMarkLineAnimate, registerMarkPointAnimate, registerRectDataLabel, registerSymbolDataLabel, removeRepeatPoint, richTextAttributeTransform, scale, setPoptipTheme, smartInvertStrategy, tan2AngleToAngle, ticks, traverseGroup, version };
28698
+ export { AXIS_ELEMENT_NAME, AbstractComponent, ArcInfo, ArcLabel, ArcSegment, AxisStateValue, BasePlayer, Brush, CheckBox, CircleAxis, CircleAxisGrid, CircleCrosshair, ColorContinuousLegend, ContinuousPlayer, DEFAULT_ITEM_SPACE_COL, DEFAULT_ITEM_SPACE_ROW, DEFAULT_LABEL_SPACE, DEFAULT_PAGER_SPACE, DEFAULT_SHAPE_SIZE, DEFAULT_SHAPE_SPACE, DEFAULT_STATES$1 as DEFAULT_STATES, DEFAULT_TITLE_SPACE, DEFAULT_VALUE_SPACE, DataLabel, DataZoom, DataZoomActiveTag, DirectionEnum, DiscreteLegend, DiscretePlayer, EmptyTip, GroupTransition, IMarkAreaLabelPosition, IMarkCommonArcLabelPosition, IMarkLineLabelPosition, IMarkPointItemPosition, IOperateType, Indicator, LEGEND_ELEMENT_NAME, LabelBase, LegendEvent, LegendStateValue, LineAxis, LineAxisGrid, LineCrosshair, LineLabel, LinkPath, MarkArcArea, MarkArcLine, MarkArea, MarkLine, MarkPoint, Pager, PlayerEventEnum, PolygonCrosshair, PopTip, Radio, RectCrosshair, RectLabel, SLIDER_ELEMENT_NAME, ScrollBar, SectorCrosshair, Segment, SizeContinuousLegend, Slider, SymbolLabel, Tag, Timeline, Title, Tooltip, VTag, alignTextInLine, angle, angleLabelOrientAttribute, angleTo, cartesianTicks, clampRadian, computeOffsetForlimit, continuousTicks, contrastAccessibilityChecker, convertDomainToTickData, createTextGraphicByType, deltaXYToAngle, fuzzyEqualNumber, getAxisBreakSymbolAttrs, getCircleLabelPosition, getCirclePoints, getCircleVerticalVector, getElMap, getHorizontalPath, getMarksByName, getNoneGroupMarksByName, getPolarAngleLabelPosition, getPolygonPath, getSizeHandlerPath, getTextAlignAttrOfVerticalDir, getTextType, getVerticalCoord, getVerticalPath, htmlAttributeTransform, initTextMeasure, isInRange, isPostiveXAxis, isRichText, isVisible, labelSmartInvert, length, limitShapeInBounds, linearDiscreteTicks, loadPoptip, measureTextSize, normalize, polarAngleAxisDiscreteTicks, polarTicks, reactAttributeTransform, registerArcDataLabel, registerLineDataLabel, registerMarkArcAreaAnimate, registerMarkArcLineAnimate, registerMarkAreaAnimate, registerMarkLineAnimate, registerMarkPointAnimate, registerRectDataLabel, registerSymbolDataLabel, removeRepeatPoint, richTextAttributeTransform, scale, setPoptipTheme, smartInvertStrategy, tan2AngleToAngle, ticks, traverseGroup, version };
@@ -52,3 +52,9 @@ export declare const DEFAULT_AXIS_THEME: {
52
52
  };
53
53
  };
54
54
  };
55
+ export declare const DEFAULT_AXIS_BREAK_SYMBOL_STYLE: {
56
+ size: number;
57
+ stroke: string;
58
+ lineWidth: number;
59
+ zIndex: number;
60
+ };
package/es/axis/config.js CHANGED
@@ -52,4 +52,11 @@ export const DEFAULT_AXIS_THEME = {
52
52
  }
53
53
  }
54
54
  };
55
+
56
+ export const DEFAULT_AXIS_BREAK_SYMBOL_STYLE = {
57
+ size: 8,
58
+ stroke: "#000",
59
+ lineWidth: 1,
60
+ zIndex: 1
61
+ };
55
62
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/axis/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE;QACL,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,SAAS,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,KAAK,EAAE;YACL,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,CAAC;SACf;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,IAAI;QACpB,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,CAAC;SACjB;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,CAAC;SACjB;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,CAAC;SACjB;KACF;CACF,CAAC","file":"config.js","sourcesContent":["export const DEFAULT_AXIS_THEME = {\n title: {\n space: 4,\n padding: 0,\n textStyle: {\n fontSize: 12,\n fill: '#333333',\n fontWeight: 'normal',\n fillOpacity: 1\n }\n },\n label: {\n visible: true,\n inside: false,\n space: 4,\n padding: 0,\n style: {\n fontSize: 12,\n fill: '#333',\n fontWeight: 'normal',\n fillOpacity: 1\n }\n },\n tick: {\n visible: true,\n inside: false,\n alignWithLabel: true,\n length: 4,\n style: {\n lineWidth: 1,\n stroke: '#000',\n strokeOpacity: 1\n }\n },\n subTick: {\n visible: false,\n inside: false,\n count: 4,\n length: 2,\n style: {\n lineWidth: 1,\n stroke: '#999',\n strokeOpacity: 1\n }\n },\n line: {\n visible: true,\n style: {\n lineWidth: 1,\n stroke: '#000',\n strokeOpacity: 1\n }\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/axis/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE;QACL,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,SAAS,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,KAAK,EAAE;YACL,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,CAAC;SACf;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,IAAI;QACpB,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,CAAC;SACjB;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,CAAC;SACjB;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,CAAC;SACjB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;CACV,CAAC","file":"config.js","sourcesContent":["export const DEFAULT_AXIS_THEME = {\n title: {\n space: 4,\n padding: 0,\n textStyle: {\n fontSize: 12,\n fill: '#333333',\n fontWeight: 'normal',\n fillOpacity: 1\n }\n },\n label: {\n visible: true,\n inside: false,\n space: 4,\n padding: 0,\n style: {\n fontSize: 12,\n fill: '#333',\n fontWeight: 'normal',\n fillOpacity: 1\n }\n },\n tick: {\n visible: true,\n inside: false,\n alignWithLabel: true,\n length: 4,\n style: {\n lineWidth: 1,\n stroke: '#000',\n strokeOpacity: 1\n }\n },\n subTick: {\n visible: false,\n inside: false,\n count: 4,\n length: 2,\n style: {\n lineWidth: 1,\n stroke: '#999',\n strokeOpacity: 1\n }\n },\n line: {\n visible: true,\n style: {\n lineWidth: 1,\n stroke: '#000',\n strokeOpacity: 1\n }\n }\n};\n\nexport const DEFAULT_AXIS_BREAK_SYMBOL_STYLE = {\n size: 8,\n stroke: '#000',\n lineWidth: 1,\n zIndex: 1\n};\n"]}
@@ -12,7 +12,9 @@ export declare enum AXIS_ELEMENT_NAME {
12
12
  gridRegion = "axis-grid-region",
13
13
  line = "axis-line",
14
14
  background = "axis-background",
15
- axisLabelBackground = "axis-label-background"
15
+ axisLabelBackground = "axis-label-background",
16
+ axisBreak = "axis-break",
17
+ axisBreakSymbol = "axis-break-symbol"
16
18
  }
17
19
  export declare enum AxisStateValue {
18
20
  selected = "selected",
@@ -7,7 +7,8 @@ export var AXIS_ELEMENT_NAME;
7
7
  AXIS_ELEMENT_NAME.label = "axis-label", AXIS_ELEMENT_NAME.title = "axis-title",
8
8
  AXIS_ELEMENT_NAME.gridContainer = "axis-grid-container", AXIS_ELEMENT_NAME.grid = "axis-grid",
9
9
  AXIS_ELEMENT_NAME.gridRegion = "axis-grid-region", AXIS_ELEMENT_NAME.line = "axis-line",
10
- AXIS_ELEMENT_NAME.background = "axis-background", AXIS_ELEMENT_NAME.axisLabelBackground = "axis-label-background";
10
+ AXIS_ELEMENT_NAME.background = "axis-background", AXIS_ELEMENT_NAME.axisLabelBackground = "axis-label-background",
11
+ AXIS_ELEMENT_NAME.axisBreak = "axis-break", AXIS_ELEMENT_NAME.axisBreakSymbol = "axis-break-symbol";
11
12
  }(AXIS_ELEMENT_NAME || (AXIS_ELEMENT_NAME = {}));
12
13
 
13
14
  export var AxisStateValue;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/axis/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBAeX;AAfD,WAAY,iBAAiB;IAC3B,6CAAwB,CAAA;IACxB,qDAAgC,CAAA;IAChC,4DAAuC,CAAA;IACvC,0DAAqC,CAAA;IACrC,uCAAkB,CAAA;IAClB,8CAAyB,CAAA;IACzB,yCAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,0DAAqC,CAAA;IACrC,uCAAkB,CAAA;IAClB,oDAA+B,CAAA;IAC/B,uCAAkB,CAAA;IAClB,mDAA8B,CAAA;IAC9B,kEAA6C,CAAA;AAC/C,CAAC,EAfW,iBAAiB,KAAjB,iBAAiB,QAe5B;AAED,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,sDAAoC,CAAA;IACpC,iCAAe,CAAA;IACf,gDAA8B,CAAA;AAChC,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE;IACpC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC7B,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE;IAC1B,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE;CAClC,CAAC","file":"constant.js","sourcesContent":["export enum AXIS_ELEMENT_NAME {\n innerView = 'inner-view',\n axisContainer = 'axis-container',\n labelContainer = 'axis-label-container',\n tickContainer = 'axis-tick-container',\n tick = 'axis-tick',\n subTick = 'axis-sub-tick',\n label = 'axis-label',\n title = 'axis-title',\n gridContainer = 'axis-grid-container',\n grid = 'axis-grid',\n gridRegion = 'axis-grid-region',\n line = 'axis-line',\n background = 'axis-background',\n axisLabelBackground = 'axis-label-background'\n}\n\nexport enum AxisStateValue {\n selected = 'selected',\n selectedReverse = 'selected_reverse',\n hover = 'hover',\n hoverReverse = 'hover_reverse'\n}\n\nexport const DEFAULT_STATES = {\n [AxisStateValue.selectedReverse]: {},\n [AxisStateValue.selected]: {},\n [AxisStateValue.hover]: {},\n [AxisStateValue.hoverReverse]: {}\n};\n"]}
1
+ {"version":3,"sources":["../src/axis/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBAiBX;AAjBD,WAAY,iBAAiB;IAC3B,6CAAwB,CAAA;IACxB,qDAAgC,CAAA;IAChC,4DAAuC,CAAA;IACvC,0DAAqC,CAAA;IACrC,uCAAkB,CAAA;IAClB,8CAAyB,CAAA;IACzB,yCAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,0DAAqC,CAAA;IACrC,uCAAkB,CAAA;IAClB,oDAA+B,CAAA;IAC/B,uCAAkB,CAAA;IAClB,mDAA8B,CAAA;IAC9B,kEAA6C,CAAA;IAC7C,6CAAwB,CAAA;IACxB,0DAAqC,CAAA;AACvC,CAAC,EAjBW,iBAAiB,KAAjB,iBAAiB,QAiB5B;AAED,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,sDAAoC,CAAA;IACpC,iCAAe,CAAA;IACf,gDAA8B,CAAA;AAChC,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE;IACpC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC7B,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE;IAC1B,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE;CAClC,CAAC","file":"constant.js","sourcesContent":["export enum AXIS_ELEMENT_NAME {\n innerView = 'inner-view',\n axisContainer = 'axis-container',\n labelContainer = 'axis-label-container',\n tickContainer = 'axis-tick-container',\n tick = 'axis-tick',\n subTick = 'axis-sub-tick',\n label = 'axis-label',\n title = 'axis-title',\n gridContainer = 'axis-grid-container',\n grid = 'axis-grid',\n gridRegion = 'axis-grid-region',\n line = 'axis-line',\n background = 'axis-background',\n axisLabelBackground = 'axis-label-background',\n axisBreak = 'axis-break',\n axisBreakSymbol = 'axis-break-symbol'\n}\n\nexport enum AxisStateValue {\n selected = 'selected',\n selectedReverse = 'selected_reverse',\n hover = 'hover',\n hoverReverse = 'hover_reverse'\n}\n\nexport const DEFAULT_STATES = {\n [AxisStateValue.selectedReverse]: {},\n [AxisStateValue.selected]: {},\n [AxisStateValue.hover]: {},\n [AxisStateValue.hoverReverse]: {}\n};\n"]}
package/es/axis/line.d.ts CHANGED
@@ -62,6 +62,7 @@ export declare class LineAxis extends AxisBase<LineAxisAttributes> {
62
62
  };
63
63
  };
64
64
  constructor(attributes: LineAxisAttributes, options?: ComponentOptions);
65
+ private _breaks;
65
66
  protected _renderInner(container: IGroup): void;
66
67
  protected renderLine(container: IGroup): void;
67
68
  protected getTitleAttribute(): TagAttributes;
package/es/axis/line.js CHANGED
@@ -36,6 +36,8 @@ import { LineAxisMixin } from "./mixin/line";
36
36
 
37
37
  import { loadLineAxisComponent } from "./register";
38
38
 
39
+ import { getAxisBreakSymbolAttrs } from "./util";
40
+
39
41
  loadLineAxisComponent();
40
42
 
41
43
  export class LineAxis extends AxisBase {
@@ -44,7 +46,41 @@ export class LineAxis extends AxisBase {
44
46
  }
45
47
  _renderInner(container) {
46
48
  var _a;
47
- super._renderInner(container);
49
+ if (this.attribute.breaks && this.attribute.breaks.length) {
50
+ const transformedBreaks = [];
51
+ for (let index = 0; index < this.attribute.breaks.length; index++) {
52
+ const aBreak = this.attribute.breaks[index], {range: range, breakSymbol: breakSymbol, rawRange: rawRange} = aBreak;
53
+ transformedBreaks.push({
54
+ startPoint: this.getTickCoord(range[0]),
55
+ endPoint: this.getTickCoord(range[1]),
56
+ range: range,
57
+ breakSymbol: breakSymbol,
58
+ rawRange: rawRange
59
+ });
60
+ }
61
+ this._breaks = transformedBreaks;
62
+ }
63
+ super._renderInner(container), this._breaks && this._breaks.length && this._breaks.forEach(((b, index) => {
64
+ const {startPoint: startPoint, endPoint: endPoint, breakSymbol: breakSymbol, rawRange: rawRange} = b;
65
+ if (!1 !== (null == breakSymbol ? void 0 : breakSymbol.visible)) {
66
+ const axisBreakGroup = graphicCreator.group({
67
+ zIndex: 99
68
+ });
69
+ axisBreakGroup.name = AXIS_ELEMENT_NAME.axisBreak, axisBreakGroup.id = this._getNodeId(`${AXIS_ELEMENT_NAME.axisBreak}-${index}`),
70
+ axisBreakGroup.data = rawRange;
71
+ const symbolStyle = getAxisBreakSymbolAttrs(breakSymbol), shape1 = graphicCreator.symbol(Object.assign({
72
+ x: startPoint.x,
73
+ y: startPoint.y
74
+ }, symbolStyle));
75
+ shape1.name = AXIS_ELEMENT_NAME.axisBreakSymbol;
76
+ const shape2 = graphicCreator.symbol(Object.assign({
77
+ x: endPoint.x,
78
+ y: endPoint.y
79
+ }, symbolStyle));
80
+ shape2.name = AXIS_ELEMENT_NAME.axisBreakSymbol, axisBreakGroup.add(shape1), axisBreakGroup.add(shape2),
81
+ container.add(axisBreakGroup);
82
+ }
83
+ }));
48
84
  const {panel: panel} = this.attribute;
49
85
  if (panel && panel.visible) {
50
86
  const axisContainer = this.axisContainer, axisContainerBounds = axisContainer.AABBBounds, bgRect = graphicCreator.rect(Object.assign({
@@ -59,12 +95,19 @@ export class LineAxis extends AxisBase {
59
95
  }
60
96
  }
61
97
  renderLine(container) {
62
- const {start: start, end: end, line: line} = this.attribute, _a = line, {startSymbol: startSymbol, endSymbol: endSymbol, style: style, breakRange: breakRange, breakShape: breakShape, breakShapeStyle: breakShapeStyle, state: state} = _a, restLineAttrs = __rest(_a, [ "startSymbol", "endSymbol", "style", "breakRange", "breakShape", "breakShapeStyle", "state" ]), lineAttrs = Object.assign({
63
- points: [ start, end ],
98
+ const {start: start, end: end, line: line} = this.attribute, _a = line, {startSymbol: startSymbol, endSymbol: endSymbol, style: style, state: state} = _a, restLineAttrs = __rest(_a, [ "startSymbol", "endSymbol", "style", "state" ]), lineAttrs = Object.assign({
64
99
  startSymbol: startSymbol,
65
100
  endSymbol: endSymbol,
66
101
  lineStyle: style
67
102
  }, restLineAttrs);
103
+ if (this._breaks && this._breaks.length) {
104
+ const linePoints = [];
105
+ let lastStartPoint = start;
106
+ this._breaks.forEach((b => {
107
+ const {startPoint: startPoint, endPoint: endPoint} = b;
108
+ linePoints.push([ lastStartPoint, startPoint ]), lastStartPoint = endPoint;
109
+ })), linePoints.push([ lastStartPoint, end ]), lineAttrs.points = linePoints, lineAttrs.multiSegment = !0;
110
+ } else lineAttrs.points = [ start, end ];
68
111
  isEmpty(state) || (lineAttrs.state = {
69
112
  line: merge({}, DEFAULT_STATES, state),
70
113
  symbol: merge({}, DEFAULT_STATES, state)