@@ -600,16 +600,29 @@ module.exports = function setConvert(ax, fullLayout) {
600
600
var rangebreaksIn = ax . rangebreaks || [ ] ;
601
601
var bnds , b0 , b1 , vb , vDate ;
602
602
603
+
604
+ if ( ! rangebreaksIn . _cachedPatterns ) {
605
+ rangebreaksIn . _cachedPatterns = rangebreaksIn . map ( function ( brk ) {
606
+ return brk . enabled && brk . bounds ? Lib . simpleMap ( brk . bounds , brk . pattern ?
607
+ cleanNumber :
608
+ ax . d2c // case of pattern: ''
609
+ ) : null ;
610
+ } ) ;
611
+ }
612
+ if ( ! rangebreaksIn . _cachedValues ) {
613
+ rangebreaksIn . _cachedValues = rangebreaksIn . map ( function ( brk ) {
614
+ return brk . enabled && brk . values ? Lib . simpleMap ( brk . values , ax . d2c ) . sort ( Lib . sorterAsc ) : null ;
615
+ } ) ;
616
+ }
617
+
618
+
603
619
for ( var i = 0 ; i < rangebreaksIn . length ; i ++ ) {
604
620
var brk = rangebreaksIn [ i ] ;
605
621
606
622
if ( brk . enabled ) {
607
623
if ( brk . bounds ) {
608
624
var pattern = brk . pattern ;
609
- bnds = Lib . simpleMap ( brk . bounds , pattern ?
610
- cleanNumber :
611
- ax . d2c // case of pattern: ''
612
- ) ;
625
+ bnds = rangebreaksIn . _cachedPatterns [ i ] ;
613
626
b0 = bnds [ 0 ] ;
614
627
b1 = bnds [ 1 ] ;
615
628
@@ -653,7 +666,7 @@ module.exports = function setConvert(ax, fullLayout) {
653
666
654
667
if ( vb >= b0 && vb < b1 ) return BADNUM ;
655
668
} else {
656
- var vals = Lib . simpleMap ( brk . values , ax . d2c ) . sort ( Lib . sorterAsc ) ;
669
+ var vals = rangebreaksIn . _cachedValues [ i ] ;
657
670
for ( var j = 0 ; j < vals . length ; j ++ ) {
658
671
b0 = vals [ j ] ;
659
672
b1 = b0 + brk . dvalue ;
0 commit comments