@@ -149,30 +149,44 @@ function prepSelect(evt, startX, startY, dragOptions, mode) {
149149 if ( plotinfo . fillRangeItems ) {
150150 fillRangeItems = plotinfo . fillRangeItems ;
151151 } else {
152- if ( isRectMode ) {
153- fillRangeItems = function ( eventData , poly ) {
154- var ranges = eventData . range = { } ;
152+ fillRangeItems = function ( eventData , poly , filterPoly ) {
153+ var range = { } ;
154+ var ranges = { } ;
155+
156+ var hasRange = false ;
157+ var hasRanges = false ;
158+
159+ for ( i = 0 ; i < allAxes . length ; i ++ ) {
160+ var ax = allAxes [ i ] ;
161+ var axLetter = ax . _id . charAt ( 0 ) ;
155162
156- for ( i = 0 ; i < allAxes . length ; i ++ ) {
157- var ax = allAxes [ i ] ;
158- var axLetter = ax . _id . charAt ( 0 ) ;
163+ var min = poly [ axLetter + 'min' ] ;
164+ var max = poly [ axLetter + 'max' ] ;
159165
160- ranges [ ax . _id ] = [
161- p2r ( ax , poly [ axLetter + 'min' ] ) ,
162- p2r ( ax , poly [ axLetter + 'max' ] )
166+ if ( min !== undefined && max !== undefined ) {
167+ range [ ax . _id ] = [
168+ p2r ( ax , min ) ,
169+ p2r ( ax , max )
163170 ] . sort ( ascending ) ;
171+
172+ hasRange = true ;
164173 }
165- } ;
166- } else { // case of isFreeMode
167- fillRangeItems = function ( eventData , poly , filterPoly ) {
168- var dataPts = eventData . lassoPoints = { } ;
169-
170- for ( i = 0 ; i < allAxes . length ; i ++ ) {
171- var ax = allAxes [ i ] ;
172- dataPts [ ax . _id ] = filterPoly . filtered . map ( axValue ( ax ) ) ;
174+
175+ if ( filterPoly . filtered ) {
176+ ranges [ ax . _id ] = filterPoly . filtered . map ( axValue ( ax ) ) ;
177+
178+ hasRanges = true ;
173179 }
174- } ;
175- }
180+ }
181+
182+ if ( hasRange ) {
183+ eventData . range = range ;
184+ }
185+
186+ if ( hasRanges ) {
187+ eventData . lassoPoints = ranges ;
188+ }
189+ } ;
176190 }
177191
178192 dragOptions . moveFn = function ( dx0 , dy0 ) {
0 commit comments