99
1010'use strict' ;
1111
12- var tinycolor = require ( 'tinycolor2' ) ;
1312var isNumeric = require ( 'fast-isnumeric' ) ;
13+ var rgba = require ( 'color-rgba' ) ;
1414
1515var Colorscale = require ( '../components/colorscale' ) ;
1616var colorDflt = require ( '../components/color/attributes' ) . defaultLine ;
1717
18- var str2RgbaArray = require ( './str2rgbarray' ) ;
19-
18+ var colorDfltRgba = rgba ( colorDflt ) ;
2019var opacityDflt = 1 ;
2120
2221function calculateColor ( colorIn , opacityIn ) {
23- var colorOut = str2RgbaArray ( colorIn ) ;
22+ var colorOut = colorIn ;
2423 colorOut [ 3 ] *= opacityIn ;
2524 return colorOut ;
2625}
2726
2827function validateColor ( colorIn ) {
29- return tinycolor ( colorIn ) . isValid ( ) ? colorIn : colorDflt ;
28+ if ( isNumeric ( colorIn ) ) return colorDfltRgba ;
29+
30+ var colorOut = rgba ( colorIn ) ;
31+
32+ return colorOut . length ? colorOut : colorDfltRgba ;
3033}
3134
3235function validateOpacity ( opacityIn ) {
@@ -50,11 +53,13 @@ function formatColor(containerIn, opacityIn, len) {
5053 )
5154 ) ;
5255 }
53- else sclFunc = validateColor ;
56+ else {
57+ sclFunc = validateColor ;
58+ }
5459
5560 if ( isArrayColorIn ) {
5661 getColor = function ( c , i ) {
57- return c [ i ] === undefined ? colorDflt : sclFunc ( c [ i ] ) ;
62+ return c [ i ] === undefined ? colorDfltRgba : rgba ( sclFunc ( c [ i ] ) ) ;
5863 } ;
5964 }
6065 else getColor = validateColor ;
@@ -73,7 +78,7 @@ function formatColor(containerIn, opacityIn, len) {
7378 colorOut [ i ] = calculateColor ( colori , opacityi ) ;
7479 }
7580 }
76- else colorOut = calculateColor ( colorIn , opacityIn ) ;
81+ else colorOut = calculateColor ( rgba ( colorIn ) , opacityIn ) ;
7782
7883 return colorOut ;
7984}
0 commit comments