cx 24.3.11 → 24.4.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.
package/dist/charts.css CHANGED
@@ -253,6 +253,12 @@
253
253
  fill: lightgray;
254
254
  }
255
255
 
256
+ .cxe-rangemarker-path {
257
+ stroke: #696969;
258
+ fill: none;
259
+ stroke-width: 1px;
260
+ }
261
+
256
262
  .cxs-color-0 {
257
263
  fill: #fbb4af;
258
264
  stroke: #e2a29e;
package/dist/charts.js CHANGED
@@ -544,8 +544,9 @@ var PieChart = /*#__PURE__*/ (function (_BoundedObject) {
544
544
  [this].concat(Array.prototype.slice.call(arguments), [
545
545
  {
546
546
  angle: undefined,
547
- startAngle: 0,
547
+ startAngle: undefined,
548
548
  clockwise: undefined,
549
+ gap: undefined,
549
550
  },
550
551
  ]),
551
552
  );
@@ -553,7 +554,7 @@ var PieChart = /*#__PURE__*/ (function (_BoundedObject) {
553
554
  _proto.explore = function explore(context, instance) {
554
555
  if (!instance.pie) instance.pie = new PieCalculator();
555
556
  var data = instance.data;
556
- instance.pie.reset(data.angle, data.startAngle, data.clockwise);
557
+ instance.pie.reset(data.angle, data.startAngle, data.clockwise, data.gap);
557
558
  context.push("pie", instance.pie);
558
559
  _BoundedObject.prototype.explore.call(this, context, instance);
559
560
  };
@@ -577,19 +578,28 @@ PieChart.prototype.anchors = "0 1 1 0";
577
578
  var PieCalculator = /*#__PURE__*/ (function () {
578
579
  function PieCalculator() {}
579
580
  var _proto2 = PieCalculator.prototype;
580
- _proto2.reset = function reset(angle, startAngle, clockwise) {
581
+ _proto2.reset = function reset(angle, startAngle, clockwise, gap) {
582
+ if (angle == 360) angle = 359.99; // really hacky way to draw full circles
581
583
  this.angleTotal = (angle / 180) * Math.PI;
582
584
  this.startAngle = (startAngle / 180) * Math.PI;
583
585
  this.clockwise = clockwise;
586
+ this.gap = gap;
584
587
  this.stacks = {};
585
588
  };
586
- _proto2.acknowledge = function acknowledge(stack, value) {
589
+ _proto2.acknowledge = function acknowledge(stack, value, r, r0, percentageRadius) {
587
590
  var s = this.stacks[stack];
588
591
  if (!s)
589
592
  s = this.stacks[stack] = {
590
593
  total: 0,
594
+ r0s: this.gap > 0 ? [] : null,
595
+ r0ps: this.gap > 0 ? [] : null,
591
596
  };
592
- if (value > 0) s.total += value;
597
+ if (value > 0) {
598
+ s.total += value;
599
+ if (this.gap > 0 && r0 > 0)
600
+ if (percentageRadius) s.r0ps.push(r0);
601
+ else s.r0s.push(r0);
602
+ }
593
603
  };
594
604
  _proto2.hash = function hash() {
595
605
  var _this = this;
@@ -605,28 +615,58 @@ var PieCalculator = /*#__PURE__*/ (function () {
605
615
  cx: this.cx,
606
616
  cy: this.cy,
607
617
  R: this.R,
618
+ gap: this.gap,
608
619
  };
609
620
  };
610
621
  _proto2.measure = function measure(rect) {
622
+ this.R = Math.max(0, Math.min(rect.width(), rect.height())) / 2;
611
623
  for (var s in this.stacks) {
612
624
  var stack = this.stacks[s];
613
- stack.angleFactor = stack.total > 0 ? this.angleTotal / stack.total : 0;
625
+ var gapAngleTotal = 0;
626
+ stack.gap = this.gap;
627
+ if (this.gap > 0) {
628
+ // gap cannot be larger of two times the smallest r0
629
+ for (var index = 0; index < stack.r0s.length; index++)
630
+ if (2 * stack.r0s[index] < stack.gap) stack.gap = 2 * stack.r0s[index];
631
+ for (var _index = 0; _index < stack.r0ps.length; _index++) {
632
+ var r0 = (stack.r0ps[_index] * this.R) / 100;
633
+ if (2 * r0 < stack.gap) stack.gap = 2 * r0;
634
+ }
635
+ }
636
+ while (stack.gap > 0) {
637
+ for (var _index2 = 0; _index2 < stack.r0s.length; _index2++)
638
+ gapAngleTotal += Math.asin(stack.gap / stack.r0s[_index2] / 2);
639
+ for (var _index3 = 0; _index3 < stack.r0ps.length; _index3++)
640
+ gapAngleTotal += Math.asin(stack.gap / ((stack.r0ps[_index3] * this.R) / 100) / 2);
641
+ if (gapAngleTotal < 0.25 * this.angleTotal) break;
642
+ stack.gap = stack.gap * 0.9;
643
+ gapAngleTotal = 0;
644
+ }
645
+ if (gapAngleTotal == 0) stack.gap = 0;
646
+ stack.angleFactor = stack.total > 0 ? (this.angleTotal - gapAngleTotal) / stack.total : 0;
614
647
  stack.lastAngle = this.startAngle;
615
648
  }
616
649
  this.cx = (rect.l + rect.r) / 2;
617
650
  this.cy = (rect.t + rect.b) / 2;
618
- this.R = Math.max(0, Math.min(rect.width(), rect.height())) / 2;
619
651
  };
620
- _proto2.map = function map(stack, value) {
652
+ _proto2.map = function map(stack, value, r, r0, percentageRadius) {
653
+ if (percentageRadius) {
654
+ r = (r * this.R) / 100;
655
+ r0 = (r0 * this.R) / 100;
656
+ }
621
657
  var s = this.stacks[stack];
622
658
  var angle = value * s.angleFactor;
623
659
  var startAngle = s.lastAngle;
624
- if (!this.clockwise) s.lastAngle += angle;
625
- else s.lastAngle -= angle;
660
+ var clockFactor = this.clockwise ? -1 : 1;
661
+ var gapAngle = r0 > 0 && s.gap > 0 ? Math.asin(s.gap / r0 / 2) : 0;
662
+ s.lastAngle += clockFactor * (angle + gapAngle);
663
+ var endAngle = startAngle + clockFactor * angle + gapAngle;
626
664
  return {
627
665
  startAngle: startAngle,
628
- endAngle: s.lastAngle,
629
- midAngle: (startAngle + s.lastAngle) / 2,
666
+ endAngle: startAngle + clockFactor * angle + gapAngle,
667
+ angle: angle,
668
+ midAngle: (startAngle + endAngle) / 2,
669
+ gap: s.gap,
630
670
  cx: this.cx,
631
671
  cy: this.cy,
632
672
  R: this.R,
@@ -634,101 +674,134 @@ var PieCalculator = /*#__PURE__*/ (function () {
634
674
  };
635
675
  return PieCalculator;
636
676
  })();
637
- function createSvgArc(x, y, r0, r, startAngleRadian, endAngleRadian, br) {
677
+ function createSvgArc(cx, cy, r0, r, startAngle, endAngle, br, gap) {
638
678
  if (r0 === void 0) {
639
679
  r0 = 0;
640
680
  }
641
681
  if (br === void 0) {
642
682
  br = 0;
643
683
  }
644
- if (startAngleRadian > endAngleRadian) {
645
- var s = startAngleRadian;
646
- startAngleRadian = endAngleRadian;
647
- endAngleRadian = s;
684
+ if (gap === void 0) {
685
+ gap = 0;
686
+ }
687
+ var gap2 = gap / 2;
688
+ if (startAngle > endAngle) {
689
+ var s = startAngle;
690
+ startAngle = endAngle;
691
+ endAngle = s;
648
692
  }
649
693
  var path = [];
650
694
  // limit br size based on r and r0
651
695
  if (br > (r - r0) / 2) br = (r - r0) / 2;
652
- var largeArc = endAngleRadian - startAngleRadian > Math.PI ? 1 : 0;
653
696
  if (br > 0) {
654
697
  if (r0 > 0) {
655
698
  var innerBr = br;
656
- var innerSmallArcAngle = Math.asin(br / (r0 + br));
657
- if (innerSmallArcAngle > (endAngleRadian - startAngleRadian) / 2) {
658
- innerSmallArcAngle = (endAngleRadian - startAngleRadian) / 2;
699
+ var innerSmallArcAngle = Math.asin((br + gap2) / (r0 + br));
700
+
701
+ // adjust br according to the available area
702
+ if (innerSmallArcAngle > (endAngle - startAngle) / 2) {
703
+ innerSmallArcAngle = (endAngle - startAngle) / 2;
659
704
  var sin = Math.sin(innerSmallArcAngle);
660
- // correct br according to newly calculated border radius angle
661
- innerBr = (r0 * sin) / (1 - sin);
705
+ innerBr = (r0 * sin - gap2) / (1 - sin);
662
706
  }
663
- var innerHip = Math.cos(innerSmallArcAngle) * (r0 + innerBr);
664
- var innerSmallArc1XFrom = x + Math.cos(endAngleRadian) * innerHip;
665
- var innerSmallArc1YFrom = y - Math.sin(endAngleRadian) * innerHip;
707
+ var innerHipDiagonal = (r0 + innerBr) * Math.cos(innerSmallArcAngle);
708
+ var innerSmallArc1XFrom = cx + Math.cos(endAngle) * innerHipDiagonal + Math.cos(endAngle - Math.PI / 2) * gap2;
709
+ var innerSmallArc1YFrom = cy - Math.sin(endAngle) * innerHipDiagonal - Math.sin(endAngle - Math.PI / 2) * gap2;
666
710
 
667
711
  // move from the first small inner arc
668
712
  path.push(move(innerSmallArc1XFrom, innerSmallArc1YFrom));
669
- var innerSmallArc1XTo = x + Math.cos(endAngleRadian - innerSmallArcAngle) * r0;
670
- var innerSmallArc1YTo = y - Math.sin(endAngleRadian - innerSmallArcAngle) * r0;
713
+ var innerSmallArc1XTo = cx + Math.cos(endAngle - innerSmallArcAngle) * r0;
714
+ var innerSmallArc1YTo = cy - Math.sin(endAngle - innerSmallArcAngle) * r0;
671
715
 
672
716
  // add first small inner arc
673
717
  path.push(arc(innerBr, innerBr, 0, 0, 0, innerSmallArc1XTo, innerSmallArc1YTo));
674
- var innerArcXTo = x + Math.cos(startAngleRadian + innerSmallArcAngle) * r0;
675
- var innerArcYTo = y - Math.sin(startAngleRadian + innerSmallArcAngle) * r0;
676
718
 
719
+ // SECOND ARC
720
+
721
+ var innerArcXTo = cx + Math.cos(startAngle + innerSmallArcAngle) * r0;
722
+ var innerArcYTo = cy - Math.sin(startAngle + innerSmallArcAngle) * r0;
677
723
  // add large inner arc
678
- path.push(arc(r0, r0, 0, largeArc, 1, innerArcXTo, innerArcYTo));
679
- var innerSmallArc2XTo = x + Math.cos(startAngleRadian) * innerHip;
680
- var innerSmallArc2YTo = y - Math.sin(startAngleRadian) * innerHip;
724
+ path.push(
725
+ arc(
726
+ r0,
727
+ r0,
728
+ 0,
729
+ largeArcFlag(endAngle - innerSmallArcAngle - startAngle - innerSmallArcAngle),
730
+ 1,
731
+ innerArcXTo,
732
+ innerArcYTo,
733
+ ),
734
+ );
735
+ var innerSmallArc2XTo = cx + Math.cos(startAngle) * innerHipDiagonal + Math.cos(startAngle + Math.PI / 2) * gap2;
736
+ var innerSmallArc2YTo = cy - Math.sin(startAngle) * innerHipDiagonal - Math.sin(startAngle + Math.PI / 2) * gap2;
681
737
  // add second small inner arc
682
738
  path.push(arc(innerBr, innerBr, 0, 0, 0, innerSmallArc2XTo, innerSmallArc2YTo));
683
739
  } else {
684
- path.push(move(x, y));
740
+ path.push(move(cx, cy));
685
741
  }
686
742
  var outerBr = br;
687
- var outerSmallArcAngle = Math.asin(br / (r - br));
688
- if (outerSmallArcAngle > (endAngleRadian - startAngleRadian) / 2) {
689
- outerSmallArcAngle = (endAngleRadian - startAngleRadian) / 2;
743
+ var outerSmallArcAngle = Math.asin((br + gap2) / (r - br));
744
+
745
+ // tweak br according to the available area
746
+ if (outerSmallArcAngle > (endAngle - startAngle) / 2) {
747
+ outerSmallArcAngle = (endAngle - startAngle) / 2;
690
748
  var _sin = Math.sin(outerSmallArcAngle);
691
- // correct br according to newly calculated border radius angle
692
- outerBr = (r * _sin) / (1 + _sin);
749
+ outerBr = (r * _sin - gap2) / (1 + _sin);
693
750
  }
694
- var outerHip = Math.cos(outerSmallArcAngle) * (r - outerBr);
695
- var outerSmallArc1XFrom = x + Math.cos(startAngleRadian) * outerHip;
696
- var outerSmallArc1YFrom = y - Math.sin(startAngleRadian) * outerHip;
697
- var outerSmallArc1XTo = x + Math.cos(startAngleRadian + outerSmallArcAngle) * r;
698
- var outerSmallArc1YTo = y - Math.sin(startAngleRadian + outerSmallArcAngle) * r;
699
- var outerLargeArcXTo = x + Math.cos(endAngleRadian - outerSmallArcAngle) * r;
700
- var outerLargeArcYTo = y - Math.sin(endAngleRadian - outerSmallArcAngle) * r;
701
- var outerSmallArc2XTo = x + Math.cos(endAngleRadian) * outerHip;
702
- var outerSmallArc2YTo = y - Math.sin(endAngleRadian) * outerHip;
751
+ var outerHipDiagonal = Math.cos(outerSmallArcAngle) * (r - outerBr);
752
+ var outerSmallArc1XFrom = cx + Math.cos(startAngle) * outerHipDiagonal + Math.cos(startAngle + Math.PI / 2) * gap2;
753
+ var outerSmallArc1YFrom = cy - Math.sin(startAngle) * outerHipDiagonal - Math.sin(startAngle + Math.PI / 2) * gap2;
754
+ var outerSmallArc1XTo = cx + Math.cos(startAngle + outerSmallArcAngle) * r;
755
+ var outerSmallArc1YTo = cy - Math.sin(startAngle + outerSmallArcAngle) * r;
756
+ var outerLargeArcXTo = cx + Math.cos(endAngle - outerSmallArcAngle) * r;
757
+ var outerLargeArcYTo = cy - Math.sin(endAngle - outerSmallArcAngle) * r;
758
+ var outerSmallArc2XTo = cx + Math.cos(endAngle) * outerHipDiagonal + Math.cos(endAngle - Math.PI / 2) * gap2;
759
+ var outerSmallArc2YTo = cy - Math.sin(endAngle) * outerHipDiagonal - Math.sin(endAngle - Math.PI / 2) * gap2;
703
760
  path.push(
704
761
  line$1(outerSmallArc1XFrom, outerSmallArc1YFrom),
705
762
  arc(outerBr, outerBr, 0, 0, 0, outerSmallArc1XTo, outerSmallArc1YTo),
706
- arc(r, r, 0, largeArc, 0, outerLargeArcXTo, outerLargeArcYTo),
763
+ arc(
764
+ r,
765
+ r,
766
+ 0,
767
+ largeArcFlag(endAngle - outerSmallArcAngle - startAngle - outerSmallArcAngle),
768
+ 0,
769
+ outerLargeArcXTo,
770
+ outerLargeArcYTo,
771
+ ),
707
772
  arc(outerBr, outerBr, 0, 0, 0, outerSmallArc2XTo, outerSmallArc2YTo),
708
773
  );
709
774
  } else {
710
775
  if (r0 > 0) {
711
- var startX = x + Math.cos(endAngleRadian) * r0;
712
- var startY = y - Math.sin(endAngleRadian) * r0;
776
+ var innerGapAngle = r0 > 0 && gap2 > 0 ? Math.asin(gap2 / r0) : 0;
777
+ var innerStartAngle = startAngle + innerGapAngle;
778
+ var innerEndAngle = endAngle - innerGapAngle;
779
+ var startX = cx + Math.cos(innerEndAngle) * r0;
780
+ var startY = cy - Math.sin(innerEndAngle) * r0;
713
781
  path.push(move(startX, startY));
714
- var innerArcToX = x + Math.cos(startAngleRadian) * r0;
715
- var innerArcToY = y - Math.sin(startAngleRadian) * r0;
716
- path.push(arc(r0, r0, 0, largeArc, 1, innerArcToX, innerArcToY));
782
+ var innerArcToX = cx + Math.cos(innerStartAngle) * r0;
783
+ var innerArcToY = cy - Math.sin(innerStartAngle) * r0;
784
+ path.push(arc(r0, r0, 0, largeArcFlag(innerStartAngle - innerEndAngle), 1, innerArcToX, innerArcToY));
717
785
  } else {
718
- path.push(move(x, y));
786
+ path.push(move(cx, cy));
719
787
  }
720
- var lineToX = x + Math.cos(startAngleRadian) * r;
721
- var lineToY = y - Math.sin(startAngleRadian) * r;
788
+ var outerGapAngle = r > 0 && gap2 > 0 ? Math.asin(gap2 / r) : 0;
789
+ var outerStartAngle = startAngle + outerGapAngle;
790
+ var outerEndAngle = endAngle - outerGapAngle;
791
+ var lineToX = cx + Math.cos(outerStartAngle) * r;
792
+ var lineToY = cy - Math.sin(outerStartAngle) * r;
722
793
  path.push(line$1(lineToX, lineToY));
723
- var arcToX = x + Math.cos(endAngleRadian) * r;
724
- var arcToY = y - Math.sin(endAngleRadian) * r;
725
- path.push(arc(r, r, 0, largeArc, 0, arcToX, arcToY));
794
+ var arcToX = cx + Math.cos(outerEndAngle) * r;
795
+ var arcToY = cy - Math.sin(outerEndAngle) * r;
796
+ path.push(arc(r, r, 0, largeArcFlag(outerEndAngle - outerStartAngle), 0, arcToX, arcToY));
726
797
  }
727
798
  path.push(z());
728
799
  return path.join(" ");
729
800
  }
730
801
  PieChart.prototype.anchors = "0 1 1 0";
731
802
  PieChart.prototype.angle = 360;
803
+ PieChart.prototype.startAngle = 0;
804
+ PieChart.prototype.gap = 0;
732
805
  Widget.alias("pie-slice");
733
806
  var PieSlice = /*#__PURE__*/ (function (_Container) {
734
807
  function PieSlice() {
@@ -783,7 +856,7 @@ var PieSlice = /*#__PURE__*/ (function (_Container) {
783
856
  if (instance.colorMap && data.colorName) instance.colorMap.acknowledge(data.colorName);
784
857
  instance.hoverSync = context.hoverSync;
785
858
  if (instance.valid && data.active) {
786
- instance.pie.acknowledge(data.stack, data.value);
859
+ instance.pie.acknowledge(data.stack, data.value, data.r, data.r0, this.percentageRadius);
787
860
  _Container.prototype.explore.call(this, context, instance);
788
861
  }
789
862
  };
@@ -798,7 +871,7 @@ var PieSlice = /*#__PURE__*/ (function (_Container) {
798
871
  if (instance.cache("colorIndex", data.colorIndex)) instance.markShouldUpdate(context);
799
872
  }
800
873
  if (instance.valid && data.active) {
801
- var seg = pie.map(data.stack, data.value);
874
+ var seg = pie.map(data.stack, data.value, data.r, data.r0, this.percentageRadius);
802
875
  if (
803
876
  !segment ||
804
877
  instance.shouldUpdate ||
@@ -887,6 +960,7 @@ var PieSlice = /*#__PURE__*/ (function (_Container) {
887
960
  segment.startAngle,
888
961
  segment.endAngle,
889
962
  data.br,
963
+ segment.gap,
890
964
  );
891
965
  return /*#__PURE__*/ jsxs(
892
966
  "g",
@@ -939,6 +1013,9 @@ function z() {
939
1013
  function arc(rx, ry, xRotation, largeArc, sweep, x, y) {
940
1014
  return "A " + rx + " " + ry + " " + xRotation + " " + largeArc + " " + sweep + " " + x + " " + y;
941
1015
  }
1016
+ function largeArcFlag(angle) {
1017
+ return angle > Math.PI || angle < -Math.PI ? 1 : 0;
1018
+ }
942
1019
  PieSlice.prototype.offset = 0;
943
1020
  PieSlice.prototype.r0 = 0;
944
1021
  PieSlice.prototype.r = 50;
@@ -951,6 +1028,7 @@ PieSlice.prototype.legendAction = "auto";
951
1028
  PieSlice.prototype.legendShape = "circle";
952
1029
  PieSlice.prototype.hoverChannel = "default";
953
1030
  PieSlice.prototype.styled = true;
1031
+ PieSlice.prototype.br = 0;
954
1032
  Widget.alias("pie-chart", PieChart);
955
1033
 
956
1034
  debug("The Pie class is deprecated. Please use PieChart instead.");
@@ -2718,6 +2796,172 @@ Swimlanes.prototype.vertical = false;
2718
2796
  Swimlanes.prototype.styled = true;
2719
2797
  BoundedObject.alias("swimlanes", Swimlanes);
2720
2798
 
2799
+ var RangeMarker = /*#__PURE__*/ (function (_BoundedObject) {
2800
+ function RangeMarker() {
2801
+ return _BoundedObject.apply(this, arguments) || this;
2802
+ }
2803
+ _inheritsLoose(RangeMarker, _BoundedObject);
2804
+ var _proto = RangeMarker.prototype;
2805
+ _proto.declareData = function declareData() {
2806
+ var _BoundedObject$protot;
2807
+ (_BoundedObject$protot = _BoundedObject.prototype.declareData).call.apply(
2808
+ _BoundedObject$protot,
2809
+ [this].concat(Array.prototype.slice.call(arguments), [
2810
+ {
2811
+ x: undefined,
2812
+ y: undefined,
2813
+ shape: undefined,
2814
+ vertical: undefined,
2815
+ size: undefined,
2816
+ laneOffset: undefined,
2817
+ lineStyle: {
2818
+ structured: true,
2819
+ },
2820
+ lineClass: {
2821
+ structured: true,
2822
+ },
2823
+ capSize: undefined,
2824
+ inflate: undefined,
2825
+ },
2826
+ ]),
2827
+ );
2828
+ };
2829
+ _proto.init = function init() {
2830
+ this.lineStyle = parseStyle(this.lineStyle);
2831
+ _BoundedObject.prototype.init.call(this);
2832
+ };
2833
+ _proto.prepareData = function prepareData(context, instance) {
2834
+ instance.axes = context.axes;
2835
+ instance.xAxis = context.axes[this.xAxis];
2836
+ instance.yAxis = context.axes[this.yAxis];
2837
+ _BoundedObject.prototype.prepareData.call(this, context, instance);
2838
+ };
2839
+ _proto.explore = function explore(context, instance) {
2840
+ var data = instance.data,
2841
+ xAxis = instance.xAxis,
2842
+ yAxis = instance.yAxis;
2843
+ if (this.affectsAxes) {
2844
+ if (xAxis && data.x != null) xAxis.acknowledge(data.x, 0, 0);
2845
+ if (yAxis && data.y != null) yAxis.acknowledge(data.y, 0, 0);
2846
+ }
2847
+ _BoundedObject.prototype.explore.call(this, context, instance);
2848
+ };
2849
+ _proto.calculateBounds = function calculateBounds(context, instance) {
2850
+ var data = instance.data,
2851
+ xAxis = instance.xAxis,
2852
+ yAxis = instance.yAxis;
2853
+ var l, r, t, b;
2854
+ if (data.x == null || data.y == null) {
2855
+ return _BoundedObject.prototype.calculateBounds.call(this, context, instance);
2856
+ }
2857
+ if (!this.vertical) {
2858
+ l = xAxis.map(data.x, data.laneOffset - data.size / 2) - data.inflate;
2859
+ r = xAxis.map(data.x, data.laneOffset + data.size / 2) + data.inflate;
2860
+ t = b = yAxis.map(data.y);
2861
+ if (data.shape == "max") {
2862
+ b += data.capSize;
2863
+ } else if (data.shape == "min") {
2864
+ t -= data.capSize;
2865
+ }
2866
+ } else {
2867
+ l = r = xAxis.map(data.x);
2868
+ t = yAxis.map(data.y, data.laneOffset - data.size / 2) + data.inflate;
2869
+ b = yAxis.map(data.y, data.laneOffset + data.size / 2) - data.inflate;
2870
+ if (data.shape == "max") {
2871
+ l -= data.capSize;
2872
+ } else if (data.shape == "min") {
2873
+ r += data.capSize;
2874
+ }
2875
+ }
2876
+ return new Rect({
2877
+ l: l,
2878
+ r: r,
2879
+ t: t,
2880
+ b: b,
2881
+ });
2882
+ };
2883
+ _proto.prepare = function prepare(context, instance) {
2884
+ _BoundedObject.prototype.prepare.call(this, context, instance);
2885
+ };
2886
+ _proto.render = function render(context, instance, key) {
2887
+ var data = instance.data;
2888
+ var CSS = this.CSS,
2889
+ baseClass = this.baseClass;
2890
+ var bounds = data.bounds,
2891
+ shape = data.shape;
2892
+ var path = "";
2893
+ if (this.vertical) {
2894
+ switch (shape) {
2895
+ default:
2896
+ case "line":
2897
+ path += "M " + bounds.r + " " + bounds.t + " ";
2898
+ path += "L " + bounds.r + " " + bounds.b;
2899
+ break;
2900
+ case "max":
2901
+ path += "M " + bounds.l + " " + bounds.t + " ";
2902
+ path += "L " + bounds.r + " " + bounds.t;
2903
+ path += "L " + bounds.r + " " + bounds.b;
2904
+ path += "L " + bounds.l + " " + bounds.b;
2905
+ break;
2906
+ case "min":
2907
+ path += "M " + bounds.r + " " + bounds.t + " ";
2908
+ path += "L " + bounds.l + " " + bounds.t;
2909
+ path += "L " + bounds.l + " " + bounds.b;
2910
+ path += "L " + bounds.r + " " + bounds.b;
2911
+ break;
2912
+ }
2913
+ } else {
2914
+ switch (shape) {
2915
+ default:
2916
+ case "line":
2917
+ path += "M " + bounds.r + " " + bounds.t + " ";
2918
+ path += "L " + bounds.l + " " + bounds.t;
2919
+ break;
2920
+ case "max":
2921
+ path += "M " + bounds.l + " " + bounds.b + " ";
2922
+ path += "L " + bounds.l + " " + bounds.t;
2923
+ path += "L " + bounds.r + " " + bounds.t;
2924
+ path += "L " + bounds.r + " " + bounds.b;
2925
+ break;
2926
+ case "min":
2927
+ path += "M " + bounds.l + " " + bounds.t + " ";
2928
+ path += "L " + bounds.l + " " + bounds.b;
2929
+ path += "L " + bounds.r + " " + bounds.b;
2930
+ path += "L " + bounds.r + " " + bounds.t;
2931
+ break;
2932
+ }
2933
+ }
2934
+ return /*#__PURE__*/ jsxs(
2935
+ "g",
2936
+ {
2937
+ class: data.classNames,
2938
+ style: data.style,
2939
+ children: [
2940
+ /*#__PURE__*/ jsx("path", {
2941
+ d: path,
2942
+ class: CSS.expand(CSS.element(baseClass, "path"), data.lineClass),
2943
+ style: data.lineStyle,
2944
+ }),
2945
+ this.renderChildren(context, instance),
2946
+ ],
2947
+ },
2948
+ key,
2949
+ );
2950
+ };
2951
+ return RangeMarker;
2952
+ })(BoundedObject);
2953
+ RangeMarker.prototype.baseClass = "rangemarker";
2954
+ RangeMarker.prototype.xAxis = "x";
2955
+ RangeMarker.prototype.yAxis = "y";
2956
+ RangeMarker.prototype.shape = "line";
2957
+ RangeMarker.prototype.vertical = false;
2958
+ RangeMarker.prototype.size = 1;
2959
+ RangeMarker.prototype.laneOffset = 0;
2960
+ RangeMarker.prototype.capSize = 5;
2961
+ RangeMarker.prototype.inflate = 0;
2962
+ RangeMarker.prototype.affectsAxes = true;
2963
+ Widget.alias("range-marker", RangeMarker);
2964
+
2721
2965
  var LineGraph = /*#__PURE__*/ (function (_Widget) {
2722
2966
  function LineGraph() {
2723
2967
  return _Widget.apply(this, arguments) || this;
@@ -4968,6 +5212,7 @@ export {
4968
5212
  PieSlice,
4969
5213
  PointReducer,
4970
5214
  Range,
5215
+ RangeMarker,
4971
5216
  ScatterGraph,
4972
5217
  SnapPointFinder,
4973
5218
  Swimlanes,