@@ -12,6 +12,7 @@ export default function (colors) {
1212 let _nacol = chroma ( '#ccc' ) ;
1313 let _spread = 0 ;
1414 // const _fixed = false;
15+ let _positions = [ 0 , 1 ] ;
1516 let _domain = [ 0 , 1 ] ;
1617 let _pos = [ ] ;
1718 let _padding = [ 0 , 0 ] ;
@@ -180,9 +181,9 @@ export default function (colors) {
180181 if ( classes != null ) {
181182 if ( type ( classes ) === 'array' ) {
182183 _classes = classes ;
183- _domain = [ classes [ 0 ] , classes [ classes . length - 1 ] ] ;
184+ _positions = [ classes [ 0 ] , classes [ classes . length - 1 ] ] ;
184185 } else {
185- const d = chroma . analyze ( _domain ) ;
186+ const d = chroma . analyze ( _positions ) ;
186187 if ( classes === 0 ) {
187188 _classes = [ d . min , d . max ] ;
188189 } else {
@@ -196,8 +197,11 @@ export default function (colors) {
196197
197198 f . domain = function ( domain ) {
198199 if ( ! arguments . length ) {
199- return _pos . map ( p => _min + p * ( _max - _min ) ) ; ;
200+ // return original domain
201+ return _domain ;
200202 }
203+ // store original domain so we can return it later
204+ _domain = domain . slice ( 0 ) ;
201205 _min = domain [ 0 ] ;
202206 _max = domain [ domain . length - 1 ] ;
203207 _pos = [ ] ;
@@ -228,7 +232,7 @@ export default function (colors) {
228232 }
229233 }
230234 }
231- _domain = [ _min , _max ] ;
235+ _positions = [ _min , _max ] ;
232236 return f ;
233237 } ;
234238
@@ -324,8 +328,8 @@ export default function (colors) {
324328 } else if ( numColors === 1 ) {
325329 result = [ f ( 0.5 ) ] ;
326330 } else if ( numColors > 1 ) {
327- const dm = _domain [ 0 ] ;
328- const dd = _domain [ 1 ] - dm ;
331+ const dm = _positions [ 0 ] ;
332+ const dd = _positions [ 1 ] - dm ;
329333 result = __range__ ( 0 , numColors , false ) . map ( ( i ) =>
330334 f ( dm + ( i / ( numColors - 1 ) ) * dd )
331335 ) ;
@@ -342,7 +346,7 @@ export default function (colors) {
342346 samples . push ( ( _classes [ i - 1 ] + _classes [ i ] ) * 0.5 ) ;
343347 }
344348 } else {
345- samples = _domain ;
349+ samples = _positions ;
346350 }
347351 result = samples . map ( ( v ) => f ( v ) ) ;
348352 }
0 commit comments