@@ -723,72 +723,66 @@ module.exports = function setConvert(ax, fullLayout) {
723
723
724
724
if ( brk . enabled ) {
725
725
if ( brk . bounds ) {
726
+ bnds = Lib . simpleMap ( brk . bounds , brk . pattern ? cleanNumber : ax . r2l ) ;
727
+ b0 = bnds [ 0 ] ;
728
+ b1 = bnds [ 1 ] ;
729
+
730
+ // r0 value as date
731
+ var r0Date = new Date ( r0 ) ;
732
+ // r0 value for break pattern
733
+ var bndDelta ;
734
+ // step in ms between rangebreaks
735
+ var step ;
736
+
737
+ var t0 = r0 ;
738
+ var t1 = r1 ;
739
+
740
+ switch ( brk . pattern ) {
741
+ case WEEKDAY_PATTERN :
742
+ step = 7 * ONEDAY ;
743
+
744
+ bndDelta = (
745
+ ( b1 < b0 ? 7 : 0 ) +
746
+ ( b1 - b0 )
747
+ ) * ONEDAY ;
748
+
749
+ t0 += b0 * ONEDAY - (
750
+ r0Date . getUTCDay ( ) * ONEDAY +
751
+ r0Date . getUTCHours ( ) * ONEHOUR +
752
+ r0Date . getUTCMinutes ( ) * ONEMIN +
753
+ r0Date . getUTCSeconds ( ) * ONESEC +
754
+ r0Date . getUTCMilliseconds ( )
755
+ ) ;
756
+ break ;
757
+ case HOUR_PATTERN :
758
+ step = ONEDAY ;
759
+
760
+ bndDelta = (
761
+ ( b1 < b0 ? 24 : 0 ) +
762
+ ( b1 - b0 )
763
+ ) * ONEHOUR ;
764
+
765
+ t0 += b0 * ONEHOUR - (
766
+ r0Date . getUTCHours ( ) * ONEHOUR +
767
+ r0Date . getUTCMinutes ( ) * ONEMIN +
768
+ r0Date . getUTCSeconds ( ) * ONESEC +
769
+ r0Date . getUTCMilliseconds ( )
770
+ ) ;
771
+ break ;
772
+ default :
773
+ t0 = Math . min ( bnds [ 0 ] , bnds [ 1 ] ) ;
774
+ t1 = Math . max ( bnds [ 0 ] , bnds [ 1 ] ) ;
775
+ step = t1 - t0 ;
776
+ bndDelta = step ;
777
+ }
778
+
726
779
if ( brk . pattern ) {
727
- bnds = Lib . simpleMap ( brk . bounds , cleanNumber ) ;
728
- b0 = bnds [ 0 ] ;
729
- b1 = bnds [ 1 ] ;
730
-
731
- // r0 value as date
732
- var r0Date = new Date ( r0 ) ;
733
- // r0 value for break pattern
734
- var bndDelta ;
735
- // step in ms between rangebreaks
736
- var step ;
737
-
738
- var t0 = r0 ;
739
- var t1 = r1 ;
740
-
741
- switch ( brk . pattern ) {
742
- case WEEKDAY_PATTERN :
743
- step = 7 * ONEDAY ;
744
-
745
- bndDelta = (
746
- ( b1 < b0 ? 7 : 0 ) +
747
- ( b1 - b0 )
748
- ) * ONEDAY ;
749
-
750
- t0 += b0 * ONEDAY - (
751
- r0Date . getUTCDay ( ) * ONEDAY +
752
- r0Date . getUTCHours ( ) * ONEHOUR +
753
- r0Date . getUTCMinutes ( ) * ONEMIN +
754
- r0Date . getUTCSeconds ( ) * ONESEC +
755
- r0Date . getUTCMilliseconds ( )
756
- ) ;
757
- break ;
758
- case HOUR_PATTERN :
759
- step = ONEDAY ;
760
-
761
- bndDelta = (
762
- ( b1 < b0 ? 24 : 0 ) +
763
- ( b1 - b0 )
764
- ) * ONEHOUR ;
765
-
766
- t0 += b0 * ONEHOUR - (
767
- r0Date . getUTCHours ( ) * ONEHOUR +
768
- r0Date . getUTCMinutes ( ) * ONEMIN +
769
- r0Date . getUTCSeconds ( ) * ONESEC +
770
- r0Date . getUTCMilliseconds ( )
771
- ) ;
772
- break ;
773
- }
780
+ // to remove decimal (most often found in auto ranges)
781
+ t0 = Math . floor ( t0 ) ;
782
+ }
774
783
775
- for ( var t = t0 ; t <= t1 ; t += step ) {
776
- // TODO we need to remove decimal (most often found
777
- // in auto ranges) for this to work correctly,
778
- // should this be Math.floor, Math.ceil or
779
- // Math.round ??
780
- addBreak ( Math . floor ( t ) , Math . floor ( t + bndDelta ) ) ;
781
- }
782
- } else {
783
- bnds = Lib . simpleMap ( brk . bounds , ax . r2l ) ;
784
- if ( bnds [ 0 ] <= bnds [ 1 ] ) {
785
- b0 = bnds [ 0 ] ;
786
- b1 = bnds [ 1 ] ;
787
- } else {
788
- b0 = bnds [ 1 ] ;
789
- b1 = bnds [ 0 ] ;
790
- }
791
- addBreak ( b0 , b1 ) ;
784
+ for ( var t = t0 ; t < t1 ; t += step ) {
785
+ addBreak ( t , t + bndDelta ) ;
792
786
}
793
787
} else {
794
788
var vals = Lib . simpleMap ( brk . values , ax . d2c ) ;
0 commit comments