-
Notifications
You must be signed in to change notification settings - Fork 40
/
matrix-element.22.min.js.map
1 lines (1 loc) · 92.9 KB
/
matrix-element.22.min.js.map
1
{"version":3,"sources":["webpack:///./node_modules/color-string/index.js","webpack:///./node_modules/simple-swizzle/index.js","webpack:///./node_modules/color-name/index.js","webpack:///./node_modules/validate-color/lib/index.js","webpack:///./node_modules/color/index.js","webpack:///./node_modules/color-convert/route.js","webpack:///./node_modules/color-convert/conversions.js","webpack:///./node_modules/simple-swizzle/node_modules/is-arrayish/index.js","webpack:///./node_modules/color-convert/index.js"],"names":["colorNames","swizzle","hasOwnProperty","Object","reverseNames","create","name","call","cs","module","exports","to","get","clamp","num","min","max","Math","hexDouble","str","round","toString","toUpperCase","length","string","val","model","prefix","substring","toLowerCase","hsl","hwb","rgb","value","match","i","hexAlpha","abbr","hex","rgba","per","keyword","i2","parseInt","slice","parseFloat","alpha","h","s","l","a","isNaN","w","b","arguments","percent","r","g","hsla","hwba","isArrayish","concat","Array","prototype","args","results","len","arg","push","wrap","fn","e","t","n","m","c","d","o","defineProperty","enumerable","Symbol","toStringTag","__esModule","bind","default","p","u","y","L","S","G","map","test","f","$","RegExp","colorString","convert","_slice","skippedModels","hashedModelKeys","keys","forEach","labels","sort","join","limiters","Color","obj","this","Error","channels","color","valpha","result","newArr","zeroArray","splice","indexOf","hashedKeys","JSON","stringify","limit","freeze","roundTo","places","Number","toFixed","roundToPlace","getset","channel","modifier","isArray","maxfn","v","assertArray","arr","toJSON","self","percentString","array","object","unitArray","unitObject","red","green","blue","hue","saturationl","lightness","saturationv","chroma","gray","white","wblack","cyan","magenta","yellow","black","x","z","rgbNumber","luminosity","lum","chan","pow","contrast","color2","lum1","lum2","level","contrastRatio","isDark","yiq","isLight","negate","lighten","ratio","darken","saturate","desaturate","whiten","blacken","grayscale","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","undefined","w1","w2","newAlpha","raw","conversions","buildGraph","graph","models","distance","parent","deriveBFS","fromModel","queue","current","pop","adjacents","adjacent","node","unshift","link","from","wrapConversion","toModel","path","cur","conversion","cssKeywords","reverseKeywords","key","hsv","cmyk","xyz","lab","lch","ansi16","ansi256","hcg","apple","comparativeDistance","delta","rdif","gdif","bdif","diff","diffc","k","reversed","currentClosestKeyword","currentClosestDistance","Infinity","t1","t2","t3","sv","smin","lmin","hi","floor","q","sl","vmin","wh","bl","y2","x2","z2","hr","atan2","PI","sqrt","cos","sin","ansi","mult","rem","integer","split","char","pure","mg","Function","getOwnPropertyDescriptor","constructor","route","wrapRaw","wrappedFn","wrapRounded","routes","routeModels"],"mappings":"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","file":"matrix-element.22.min.js","sourcesContent":["/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\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)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports=function(e){var r={};function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var a in e)t.d(n,a,function(r){return e[r]}.bind(null,a));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,\"a\",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p=\"\",t(t.s=0)}([function(e,r,t){\"use strict\";t.r(r),t.d(r,\"validateHTMLColorName\",(function(){return l})),t.d(r,\"validateHTMLColorSpecialName\",(function(){return i})),t.d(r,\"validateHTMLColorHex\",(function(){return u})),t.d(r,\"validateHTMLColorRgb\",(function(){return g})),t.d(r,\"validateHTMLColorHsl\",(function(){return y})),t.d(r,\"validateHTMLColorHwb\",(function(){return L})),t.d(r,\"validateHTMLColorLab\",(function(){return S})),t.d(r,\"validateHTMLColorLch\",(function(){return m})),t.d(r,\"validateHTMLColor\",(function(){return G}));const n=e=>e&&\"string\"==typeof e,a=[\"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\",\"DarkGrey\",\"DarkGreen\",\"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\",\"Grey\",\"Green\",\"GreenYellow\",\"HoneyDew\",\"HotPink\",\"IndianRed\",\"Indigo\",\"Ivory\",\"Khaki\",\"Lavender\",\"LavenderBlush\",\"LawnGreen\",\"LemonChiffon\",\"LightBlue\",\"LightCoral\",\"LightCyan\",\"LightGoldenrodYellow\",\"LightGray\",\"LightGrey\",\"LightGreen\",\"LightPink\",\"LightSalmon\",\"LightSalmon\",\"LightSeaGreen\",\"LightSkyBlue\",\"LightSlateGray\",\"LightSlateGrey\",\"LightSteelBlue\",\"LightYellow\",\"Lime\",\"LimeGreen\",\"Linen\",\"Magenta\",\"Maroon\",\"MediumAquamarine\",\"MediumBlue\",\"MediumOrchid\",\"MediumPurple\",\"MediumSeaGreen\",\"MediumSlateBlue\",\"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\"],o=[\"currentColor\",\"inherit\",\"transparent\"],l=e=>{let r=!1;return n(e)&&a.map(t=>(e.toLowerCase()===t.toLowerCase()&&(r=!0),null)),r},i=e=>{let r=!1;return n(e)&&o.map(t=>(e.toLowerCase()===t.toLowerCase()&&(r=!0),null)),r},u=e=>{if(n(e)){const r=/^#([\\da-f]{3}){1,2}$|^#([\\da-f]{4}){1,2}$/i;return e&&r.test(e)}return!1},d=\"(([\\\\d]{0,5})((\\\\.([\\\\d]{1,5}))?))\",s=`(${d}%)`,c=\"(([0-9]|[1-9][0-9]|100)%)\",f=`(${c}|(0?((\\\\.([\\\\d]{1,5}))?))|1)`,h=`([\\\\s]{0,5})\\\\)?)(([\\\\s]{0,5})(\\\\/?)([\\\\s]{1,5})${`(((${c}))|(0?((\\\\.([\\\\d]{1,5}))?))|1))?`}([\\\\s]{0,5})\\\\)`,$=\"(-?(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]|3[0-5][0-9])((\\\\.([\\\\d]{1,5}))?)|360)(deg)?)\",g=e=>{if(n(e)){const r=\"([\\\\s]{0,5})([\\\\d]{1,5})%?([\\\\s]{0,5}),?\",t=\"((([\\\\s]{0,5}),?([\\\\s]{0,5}))|(([\\\\s]{1,5})))\",n=new RegExp(`^(rgb)a?\\\\(${`${r}${t}`}${`${r}${t}`}${`${r}${t}`}(${\"(\\\\/?([\\\\s]{0,5})(0?\\\\.?([\\\\d]{1,5})%?([\\\\s]{0,5}))?|1|0)\"})?\\\\)$`);return e&&n.test(e)}return!1},y=e=>{if(n(e)){const r=new RegExp(`^(hsl)a?\\\\((([\\\\s]{0,5})(${$}|${\"(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]|3[0-9][0-9]|400)grad)\"}|${\"((([0-5])?\\\\.([\\\\d]{1,5})|6\\\\.([0-9]|1[0-9]|2[0-8])|[0-6])rad)\"}|${\"((0?((\\\\.([\\\\d]{1,5}))?)|1)turn)\"})((([\\\\s]{0,5}),([\\\\s]{0,5}))|(([\\\\s]{1,5}))))(([\\\\s]{0,5})(0|${c})((([\\\\s]{0,5}),([\\\\s]{0,5}))|(([\\\\s]{1,5}))))(([\\\\s]{0,5})(0|${c})([\\\\s]{0,5})\\\\)?)(([\\\\s]{0,5})(\\\\/?|,?)([\\\\s]{0,5})(((${c}))|(0?((\\\\.([\\\\d]{1,5}))?))|1))?\\\\)$`);return e&&r.test(e)}return!1},L=e=>{if(n(e)){const r=new RegExp(`^(hwb\\\\(([\\\\s]{0,5})${$}([\\\\s]{1,5}))((0|${c})([\\\\s]{1,5}))((0|${c})${h}$`);return e&&r.test(e)}return!1},S=e=>{if(n(e)){const r=\"(-?(([0-9]|[1-9][0-9]|1[0-5][0-9])((\\\\.([\\\\d]{1,5}))?)?|160))\",t=new RegExp(`^(lab\\\\(([\\\\s]{0,5})${s}([\\\\s]{1,5})${r}([\\\\s]{1,5})${r}${h}$`);return e&&t.test(e)}return!1},m=e=>{if(n(e)){const r=\"((([0-9]|[1-9][0-9])?((\\\\.([\\\\d]{1,5}))?)|100)(%)?)\",t=\"\"+d,n=`((${$})|(0|${f})|(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]|3[0-5][0-9])((\\\\.([\\\\d]{1,5}))?)|360))`,a=`(\\\\/([\\\\s]{0,5})${f})`,o=new RegExp(`^lch\\\\(${`(([\\\\s]{0,5})${r}([\\\\s]{1,5})${t}([\\\\s]{1,5})${n}([\\\\s]{0,5})(${a})?)`}\\\\)$`);return e&&o.test(e)}return!1},G=e=>!!(e&&u(e)||g(e)||y(e)||L(e)||S(e)||m(e));r.default=e=>!!(e&&u(e)||l(e)||i(e)||g(e)||y(e)||L(e)||S(e)||m(e))}]);","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\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\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\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\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\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\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 Color.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\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n"],"sourceRoot":""}