{"version":3,"file":"vendor.color.8217f7fdf543aa91.bundle.js","mappings":"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","sources":["webpack://client-app/./node_modules/color/index.js","webpack://client-app/./node_modules/color/node_modules/color-convert/conversions.js","webpack://client-app/./node_modules/color/node_modules/color-convert/index.js","webpack://client-app/./node_modules/color/node_modules/color-convert/route.js"],"sourcesContent":["const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst 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\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, 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\tlet i;\n\tlet channels;\n\n\tif (object == 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 (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\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 (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[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\tconst 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() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let 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() {\n\t\tconst 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() {\n\t\tconst 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(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], 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, value => ((value % 360) + 360) % 360),\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(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((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(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst 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(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet 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(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\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\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(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst 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\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\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\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\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\tconst l = (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\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 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\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\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst 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\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\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\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst 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\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet 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\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let 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\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\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = 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\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst 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\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (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\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\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\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 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\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet 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 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (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\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = 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\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet 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\tconst r = args[0];\n\tconst g = args[1];\n\tconst 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\tconst 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\tlet 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\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst 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\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst 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\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst 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\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet 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;\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\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\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\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet 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\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\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\t/* eslint-enable max-statements-per-line */\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\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet 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\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet 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\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet 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 = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\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\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\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\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst 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 (let 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(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\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst 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","const 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\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let 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\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst 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\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet 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\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst 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"],"names":["colorString","convert","skippedModels","hashedModelKeys","model","Object","keys","labels","sort","join","limiters","Color","object","this","Error","i","channels","color","valpha","result","get","value","slice","length","newArray","Array","prototype","call","zeroArray","splice","indexOf","alpha","hashedKeys","JSON","stringify","push","limit","Math","max","min","freeze","toString","string","toJSON","places","self","to","rgb","round","args","percentString","percent","array","unitArray","unitObject","r","g","b","map","roundToPlace","undefined","red","getset","maxfn","green","blue","hue","saturationl","lightness","saturationv","chroma","gray","white","wblack","cyan","magenta","yellow","black","x","y","z","l","a","keyword","hex","hexa","rgbArray","alphaHex","toUpperCase","rgbNumber","luminosity","lum","element","entries","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","ratio","hsl","darken","saturate","desaturate","whiten","hwb","blacken","grayscale","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","p","w","w1","w2","includes","raw","isArray","number","Number","toFixed","roundTo","channel","modifier","m","v","module","exports","cssKeywords","reverseKeywords","key","hsv","cmyk","xyz","lab","lch","ansi16","ansi256","hcg","apple","defineProperty","delta","h","s","rdif","gdif","bdif","diff","diffc","c","k","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","t2","t3","val","t1","smin","lmin","hi","floor","f","q","t","vmin","sl","wh","bl","n","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","saturation","ansi","mult","rem","substring","match","split","char","integer","parseInt","pure","mg","conversions","route","forEach","fromModel","routes","toModel","fn","wrappedFn","arg0","len","conversion","wrapRounded","wrapRaw","link","from","wrapConversion","graph","path","parent","cur","unshift","models","buildGraph","queue","current","pop","adjacents","adjacent","node","deriveBFS"],"sourceRoot":""}