{"version":3,"sources":["webpack:///./node_modules/chartjs-color/node_modules/color-convert/conversions.js","webpack:///./node_modules/chartjs-color/node_modules/color-convert/index.js","webpack:///./node_modules/chartjs-color-string/color-string.js","webpack:///./node_modules/chartjs-color/index.js"],"names":["rgb2hsl","rgb","h","s","l","r","g","b","min","Math","max","delta","rgb2hsv","v","rgb2hwb","w","rgb2cmyk","c","m","y","k","rgb2keyword","reverseKeywords","JSON","stringify","rgb2xyz","pow","x","z","rgb2lab","a","xyz","rgb2lch","args","lab2lch","hsl2rgb","hsl","t1","t2","t3","val","i","hsl2hsv","sv","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2rgb","hsv","hi","floor","f","p","q","t","hsv2hsl","sl","hsv2hwb","hsv2cmyk","hsv2keyword","hwb2rgb","hwb","n","wh","bl","ratio","hwb2hsl","hwb2hsv","hwb2cmyk","hwb2keyword","cmyk2rgb","cmyk","cmyk2hsl","cmyk2hsv","cmyk2hwb","cmyk2keyword","xyz2rgb","xyz2lab","xyz2lch","lab2xyz","lab","y2","hr","atan2","PI","sqrt","lab2rgb","lch2lab","lch","cos","sin","lch2xyz","lch2rgb","keyword2rgb","keyword","cssKeywords","keyword2hsl","keyword2hsv","keyword2hwb","keyword2cmyk","keyword2lab","keyword2xyz","module","exports","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","key","conversions","convert","Converter","func","arg","Array","prototype","slice","call","arguments","pair","exec","from","to","undefined","length","round","this","convs","routeSpace","space","values","getValues","setValues","vals","fspace","forEach","colorNames","getRgba","string","abbr","hex","rgba","per","match","parseInt","parseFloat","scale","getHsla","alpha","isNaN","getHwb","getRgb","getHsl","hsla","getAlpha","hexString","hexDouble","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","num","str","toString","toUpperCase","name","Color","obj","valid","lightness","value","whiteness","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","concat","cmykArray","rgbaArray","hslaArray","setChannel","hue","saturation","saturationv","blackness","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","yiq","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","clone","type","result","source","target","prop","hasOwnProperty","console","error","spaces","maxes","charAt","capped","chans","sname","index","svalues","window"],"mappings":"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","file":"js/chunk-vendors~78819dd8.be1f0ca6.js","sourcesContent":["/* MIT license */\n\nmodule.exports = {\n rgb2hsl: rgb2hsl,\n rgb2hsv: rgb2hsv,\n rgb2hwb: rgb2hwb,\n rgb2cmyk: rgb2cmyk,\n rgb2keyword: rgb2keyword,\n rgb2xyz: rgb2xyz,\n rgb2lab: rgb2lab,\n rgb2lch: rgb2lch,\n\n hsl2rgb: hsl2rgb,\n hsl2hsv: hsl2hsv,\n hsl2hwb: hsl2hwb,\n hsl2cmyk: hsl2cmyk,\n hsl2keyword: hsl2keyword,\n\n hsv2rgb: hsv2rgb,\n hsv2hsl: hsv2hsl,\n hsv2hwb: hsv2hwb,\n hsv2cmyk: hsv2cmyk,\n hsv2keyword: hsv2keyword,\n\n hwb2rgb: hwb2rgb,\n hwb2hsl: hwb2hsl,\n hwb2hsv: hwb2hsv,\n hwb2cmyk: hwb2cmyk,\n hwb2keyword: hwb2keyword,\n\n cmyk2rgb: cmyk2rgb,\n cmyk2hsl: cmyk2hsl,\n cmyk2hsv: cmyk2hsv,\n cmyk2hwb: cmyk2hwb,\n cmyk2keyword: cmyk2keyword,\n\n keyword2rgb: keyword2rgb,\n keyword2hsl: keyword2hsl,\n keyword2hsv: keyword2hsv,\n keyword2hwb: keyword2hwb,\n keyword2cmyk: keyword2cmyk,\n keyword2lab: keyword2lab,\n keyword2xyz: keyword2xyz,\n\n xyz2rgb: xyz2rgb,\n xyz2lab: xyz2lab,\n xyz2lch: xyz2lch,\n\n lab2xyz: lab2xyz,\n lab2rgb: lab2rgb,\n lab2lch: lab2lch,\n\n lch2lab: lch2lab,\n lch2xyz: lch2xyz,\n lch2rgb: lch2rgb\n}\n\n\nfunction rgb2hsl(rgb) {\n var r = rgb[0]/255,\n g = rgb[1]/255,\n b = rgb[2]/255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, l;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g)/ delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n l = (min + max) / 2;\n\n if (max == min)\n s = 0;\n else if (l <= 0.5)\n s = delta / (max + min);\n else\n s = delta / (2 - max - min);\n\n return [h, s * 100, l * 100];\n}\n\nfunction rgb2hsv(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, v;\n\n if (max == 0)\n s = 0;\n else\n s = (delta/max * 1000)/10;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g) / delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n v = ((max / 255) * 1000) / 10;\n\n return [h, s, v];\n}\n\nfunction rgb2hwb(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n h = rgb2hsl(rgb)[0],\n w = 1/255 * Math.min(r, Math.min(g, b)),\n b = 1 - 1/255 * Math.max(r, Math.max(g, b));\n\n return [h, w * 100, b * 100];\n}\n\nfunction rgb2cmyk(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n c, m, y, k;\n\n k = Math.min(1 - r, 1 - g, 1 - b);\n c = (1 - r - k) / (1 - k) || 0;\n m = (1 - g - k) / (1 - k) || 0;\n y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n}\n\nfunction rgb2keyword(rgb) {\n return reverseKeywords[JSON.stringify(rgb)];\n}\n\nfunction rgb2xyz(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255;\n\n // assume sRGB\n r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n return [x * 100, y *100, z * 100];\n}\n\nfunction rgb2lab(rgb) {\n var xyz = rgb2xyz(rgb),\n x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction rgb2lch(args) {\n return lab2lch(rgb2lab(args));\n}\n\nfunction hsl2rgb(hsl) {\n var h = hsl[0] / 360,\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n t1, t2, t3, rgb, val;\n\n if (s == 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5)\n t2 = l * (1 + s);\n else\n t2 = l + s - l * s;\n t1 = 2 * l - t2;\n\n rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * - (i - 1);\n t3 < 0 && t3++;\n t3 > 1 && t3--;\n\n if (6 * t3 < 1)\n val = t1 + (t2 - t1) * 6 * t3;\n else if (2 * t3 < 1)\n val = t2;\n else if (3 * t3 < 2)\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n else\n val = t1;\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n}\n\nfunction hsl2hsv(hsl) {\n var h = hsl[0],\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n sv, v;\n\n if(l === 0) {\n // no need to do calc on black\n // also avoids divide by 0 error\n return [0, 0, 0];\n }\n\n l *= 2;\n s *= (l <= 1) ? l : 2 - l;\n v = (l + s) / 2;\n sv = (2 * s) / (l + s);\n return [h, sv * 100, v * 100];\n}\n\nfunction hsl2hwb(args) {\n return rgb2hwb(hsl2rgb(args));\n}\n\nfunction hsl2cmyk(args) {\n return rgb2cmyk(hsl2rgb(args));\n}\n\nfunction hsl2keyword(args) {\n return rgb2keyword(hsl2rgb(args));\n}\n\n\nfunction hsv2rgb(hsv) {\n var h = hsv[0] / 60,\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n hi = Math.floor(h) % 6;\n\n var f = h - Math.floor(h),\n p = 255 * v * (1 - s),\n q = 255 * v * (1 - (s * f)),\n t = 255 * v * (1 - (s * (1 - f))),\n v = 255 * v;\n\n switch(hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n}\n\nfunction hsv2hsl(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n sl, l;\n\n l = (2 - s) * v;\n sl = s * v;\n sl /= (l <= 1) ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n}\n\nfunction hsv2hwb(args) {\n return rgb2hwb(hsv2rgb(args))\n}\n\nfunction hsv2cmyk(args) {\n return rgb2cmyk(hsv2rgb(args));\n}\n\nfunction hsv2keyword(args) {\n return rgb2keyword(hsv2rgb(args));\n}\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nfunction hwb2rgb(hwb) {\n var h = hwb[0] / 360,\n wh = hwb[1] / 100,\n bl = hwb[2] / 100,\n ratio = wh + bl,\n i, v, f, n;\n\n // wh + bl cant be > 1\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n if ((i & 0x01) != 0) {\n f = 1 - f;\n }\n n = wh + f * (v - wh); // linear interpolation\n\n switch (i) {\n default:\n case 6:\n case 0: r = v; g = n; b = wh; break;\n case 1: r = n; g = v; b = wh; break;\n case 2: r = wh; g = v; b = n; break;\n case 3: r = wh; g = n; b = v; break;\n case 4: r = n; g = wh; b = v; break;\n case 5: r = v; g = wh; b = n; break;\n }\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction hwb2hsl(args) {\n return rgb2hsl(hwb2rgb(args));\n}\n\nfunction hwb2hsv(args) {\n return rgb2hsv(hwb2rgb(args));\n}\n\nfunction hwb2cmyk(args) {\n return rgb2cmyk(hwb2rgb(args));\n}\n\nfunction hwb2keyword(args) {\n return rgb2keyword(hwb2rgb(args));\n}\n\nfunction cmyk2rgb(cmyk) {\n var c = cmyk[0] / 100,\n m = cmyk[1] / 100,\n y = cmyk[2] / 100,\n k = cmyk[3] / 100,\n r, g, b;\n\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n}\n\nfunction cmyk2hsl(args) {\n return rgb2hsl(cmyk2rgb(args));\n}\n\nfunction cmyk2hsv(args) {\n return rgb2hsv(cmyk2rgb(args));\n}\n\nfunction cmyk2hwb(args) {\n return rgb2hwb(cmyk2rgb(args));\n}\n\nfunction cmyk2keyword(args) {\n return rgb2keyword(cmyk2rgb(args));\n}\n\n\nfunction xyz2rgb(xyz) {\n var x = xyz[0] / 100,\n y = xyz[1] / 100,\n z = xyz[2] / 100,\n r, g, b;\n\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n // assume sRGB\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n : r = (r * 12.92);\n\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n : g = (g * 12.92);\n\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n : b = (b * 12.92);\n\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction xyz2lab(xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction xyz2lch(args) {\n return lab2lch(xyz2lab(args));\n}\n\nfunction lab2xyz(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n x, y, z, y2;\n\n if (l <= 8) {\n y = (l * 100) / 903.3;\n y2 = (7.787 * (y / 100)) + (16 / 116);\n } else {\n y = 100 * Math.pow((l + 16) / 116, 3);\n y2 = Math.pow(y / 100, 1/3);\n }\n\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n return [x, y, z];\n}\n\nfunction lab2lch(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n hr, h, c;\n\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n}\n\nfunction lab2rgb(args) {\n return xyz2rgb(lab2xyz(args));\n}\n\nfunction lch2lab(lch) {\n var l = lch[0],\n c = lch[1],\n h = lch[2],\n a, b, hr;\n\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n}\n\nfunction lch2xyz(args) {\n return lab2xyz(lch2lab(args));\n}\n\nfunction lch2rgb(args) {\n return lab2rgb(lch2lab(args));\n}\n\nfunction keyword2rgb(keyword) {\n return cssKeywords[keyword];\n}\n\nfunction keyword2hsl(args) {\n return rgb2hsl(keyword2rgb(args));\n}\n\nfunction keyword2hsv(args) {\n return rgb2hsv(keyword2rgb(args));\n}\n\nfunction keyword2hwb(args) {\n return rgb2hwb(keyword2rgb(args));\n}\n\nfunction keyword2cmyk(args) {\n return rgb2cmyk(keyword2rgb(args));\n}\n\nfunction keyword2lab(args) {\n return rgb2lab(keyword2rgb(args));\n}\n\nfunction keyword2xyz(args) {\n return rgb2xyz(keyword2rgb(args));\n}\n\nvar cssKeywords = {\n aliceblue: [240,248,255],\n antiquewhite: [250,235,215],\n aqua: [0,255,255],\n aquamarine: [127,255,212],\n azure: [240,255,255],\n beige: [245,245,220],\n bisque: [255,228,196],\n black: [0,0,0],\n blanchedalmond: [255,235,205],\n blue: [0,0,255],\n blueviolet: [138,43,226],\n brown: [165,42,42],\n burlywood: [222,184,135],\n cadetblue: [95,158,160],\n chartreuse: [127,255,0],\n chocolate: [210,105,30],\n coral: [255,127,80],\n cornflowerblue: [100,149,237],\n cornsilk: [255,248,220],\n crimson: [220,20,60],\n cyan: [0,255,255],\n darkblue: [0,0,139],\n darkcyan: [0,139,139],\n darkgoldenrod: [184,134,11],\n darkgray: [169,169,169],\n darkgreen: [0,100,0],\n darkgrey: [169,169,169],\n darkkhaki: [189,183,107],\n darkmagenta: [139,0,139],\n darkolivegreen: [85,107,47],\n darkorange: [255,140,0],\n darkorchid: [153,50,204],\n darkred: [139,0,0],\n darksalmon: [233,150,122],\n darkseagreen: [143,188,143],\n darkslateblue: [72,61,139],\n darkslategray: [47,79,79],\n darkslategrey: [47,79,79],\n darkturquoise: [0,206,209],\n darkviolet: [148,0,211],\n deeppink: [255,20,147],\n deepskyblue: [0,191,255],\n dimgray: [105,105,105],\n dimgrey: [105,105,105],\n dodgerblue: [30,144,255],\n firebrick: [178,34,34],\n floralwhite: [255,250,240],\n forestgreen: [34,139,34],\n fuchsia: [255,0,255],\n gainsboro: [220,220,220],\n ghostwhite: [248,248,255],\n gold: [255,215,0],\n goldenrod: [218,165,32],\n gray: [128,128,128],\n green: [0,128,0],\n greenyellow: [173,255,47],\n grey: [128,128,128],\n honeydew: [240,255,240],\n hotpink: [255,105,180],\n indianred: [205,92,92],\n indigo: [75,0,130],\n ivory: [255,255,240],\n khaki: [240,230,140],\n lavender: [230,230,250],\n lavenderblush: [255,240,245],\n lawngreen: [124,252,0],\n lemonchiffon: [255,250,205],\n lightblue: [173,216,230],\n lightcoral: [240,128,128],\n lightcyan: [224,255,255],\n lightgoldenrodyellow: [250,250,210],\n lightgray: [211,211,211],\n lightgreen: [144,238,144],\n lightgrey: [211,211,211],\n lightpink: [255,182,193],\n lightsalmon: [255,160,122],\n lightseagreen: [32,178,170],\n lightskyblue: [135,206,250],\n lightslategray: [119,136,153],\n lightslategrey: [119,136,153],\n lightsteelblue: [176,196,222],\n lightyellow: [255,255,224],\n lime: [0,255,0],\n limegreen: [50,205,50],\n linen: [250,240,230],\n magenta: [255,0,255],\n maroon: [128,0,0],\n mediumaquamarine: [102,205,170],\n mediumblue: [0,0,205],\n mediumorchid: [186,85,211],\n mediumpurple: [147,112,219],\n mediumseagreen: [60,179,113],\n mediumslateblue: [123,104,238],\n mediumspringgreen: [0,250,154],\n mediumturquoise: [72,209,204],\n mediumvioletred: [199,21,133],\n midnightblue: [25,25,112],\n mintcream: [245,255,250],\n mistyrose: [255,228,225],\n moccasin: [255,228,181],\n navajowhite: [255,222,173],\n navy: [0,0,128],\n oldlace: [253,245,230],\n olive: [128,128,0],\n olivedrab: [107,142,35],\n orange: [255,165,0],\n orangered: [255,69,0],\n orchid: [218,112,214],\n palegoldenrod: [238,232,170],\n palegreen: [152,251,152],\n paleturquoise: [175,238,238],\n palevioletred: [219,112,147],\n papayawhip: [255,239,213],\n peachpuff: [255,218,185],\n peru: [205,133,63],\n pink: [255,192,203],\n plum: [221,160,221],\n powderblue: [176,224,230],\n purple: [128,0,128],\n rebeccapurple: [102, 51, 153],\n red: [255,0,0],\n rosybrown: [188,143,143],\n royalblue: [65,105,225],\n saddlebrown: [139,69,19],\n salmon: [250,128,114],\n sandybrown: [244,164,96],\n seagreen: [46,139,87],\n seashell: [255,245,238],\n sienna: [160,82,45],\n silver: [192,192,192],\n skyblue: [135,206,235],\n slateblue: [106,90,205],\n slategray: [112,128,144],\n slategrey: [112,128,144],\n snow: [255,250,250],\n springgreen: [0,255,127],\n steelblue: [70,130,180],\n tan: [210,180,140],\n teal: [0,128,128],\n thistle: [216,191,216],\n tomato: [255,99,71],\n turquoise: [64,224,208],\n violet: [238,130,238],\n wheat: [245,222,179],\n white: [255,255,255],\n whitesmoke: [245,245,245],\n yellow: [255,255,0],\n yellowgreen: [154,205,50]\n};\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\n}\n","var conversions = require(\"./conversions\");\n\nvar convert = function() {\n return new Converter();\n}\n\nfor (var func in conversions) {\n // export Raw versions\n convert[func + \"Raw\"] = (function(func) {\n // accept array or plain args\n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n return conversions[func](arg);\n }\n })(func);\n\n var pair = /(\\w+)2(\\w+)/.exec(func),\n from = pair[1],\n to = pair[2];\n\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\n convert[from] = convert[from] || {};\n\n convert[from][to] = convert[func] = (function(func) { \n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n \n var val = conversions[func](arg);\n if (typeof val == \"string\" || val === undefined)\n return val; // keyword\n\n for (var i = 0; i < val.length; i++)\n val[i] = Math.round(val[i]);\n return val;\n }\n })(func);\n}\n\n\n/* Converter does lazy conversion and caching */\nvar Converter = function() {\n this.convs = {};\n};\n\n/* Either get the values for a space or\n set the values for a space, depending on args */\nConverter.prototype.routeSpace = function(space, args) {\n var values = args[0];\n if (values === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n // color.rgb(10, 10, 10)\n if (typeof values == \"number\") {\n values = Array.prototype.slice.call(args); \n }\n\n return this.setValues(space, values);\n};\n \n/* Set the values for a space, invalidating cache */\nConverter.prototype.setValues = function(space, values) {\n this.space = space;\n this.convs = {};\n this.convs[space] = values;\n return this;\n};\n\n/* Get the values for a space. If there's already\n a conversion for the space, fetch it, otherwise\n compute it */\nConverter.prototype.getValues = function(space) {\n var vals = this.convs[space];\n if (!vals) {\n var fspace = this.space,\n from = this.convs[fspace];\n vals = convert[fspace][space](from);\n\n this.convs[space] = vals;\n }\n return vals;\n};\n\n[\"rgb\", \"hsl\", \"hsv\", \"cmyk\", \"keyword\"].forEach(function(space) {\n Converter.prototype[space] = function(vals) {\n return this.routeSpace(space, arguments);\n }\n});\n\nmodule.exports = convert;","/* MIT license */\nvar colorNames = require('color-name');\n\nmodule.exports = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n}\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3})$/i,\n hex = /^#([a-fA-F0-9]{6})$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr);\n if (match) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n }\n else if (match = string.match(hex)) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorNames[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgb) {\n return \"#\" + hexDouble(rgb[0]) + hexDouble(rgb[1])\n + hexDouble(rgb[2]);\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorNames) {\n reverseNames[colorNames[name]] = name;\n}\n","/* MIT license */\nvar convert = require('color-convert');\nvar string = require('chartjs-color-string');\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = string.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = string.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = string.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn string.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn string.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn string.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn string.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn string.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn string.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn string.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn string.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = convert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nmodule.exports = Color;\n"],"sourceRoot":""}