{"version":3,"names":["isArray","o","Object","prototype","toString","call","ColorHash","options","LS","lightness","saturation","map","param","concat","L","S","hue","min","max","hueRanges","range","hash","BKDRHash","_export","setters","execute","__SystemJSRewritingHack","_recorder_","_src_external_color_hash_js","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","str","seed","seed2","MAX_SAFE_INTEGER","parseInt","i","length","charCodeAt","RGB2HEX","RGBArray","hex","forEach","value","HSL2RGB","H","q","p","color","Math","round","hsl","hueResolution","rgb","apply"],"sources":["color-hash.js"],"sourcesContent":["\n/**\n * BKDR Hash (modified version)\n *\n * @param {String} str string to hash\n * @returns {Number}\n */\nvar BKDRHash = function(str) {\n    var seed = 131;\n    var seed2 = 137;\n    var hash = 0;\n    // make hash more sensitive for short string like 'a', 'b', 'c'\n    str += 'x';\n    // Note: Number.MAX_SAFE_INTEGER equals 9007199254740991\n    var MAX_SAFE_INTEGER = parseInt(9007199254740991 / seed2);\n    for(var i = 0; i < str.length; i++) {\n        if(hash > MAX_SAFE_INTEGER) {\n            hash = parseInt(hash / seed2);\n        }\n        hash = hash * seed + str.charCodeAt(i);\n    }\n    return hash;\n};\n\n\n/**\n * Convert RGB Array to HEX\n *\n * @param {Array} RGBArray - [R, G, B]\n * @returns {String} 6 digits hex starting with #\n */\nvar RGB2HEX = function(RGBArray) {\n    var hex = '#';\n    RGBArray.forEach(function(value) {\n        if (value < 16) {\n            hex += 0;\n        }\n        hex += value.toString(16);\n    });\n    return hex;\n};\n\n/**\n * Convert HSL to RGB\n *\n * @see {@link http://zh.wikipedia.org/wiki/HSL和HSV色彩空间} for further information.\n * @param {Number} H Hue ∈ [0, 360)\n * @param {Number} S Saturation ∈ [0, 1]\n * @param {Number} L Lightness ∈ [0, 1]\n * @returns {Array} R, G, B ∈ [0, 255]\n */\nvar HSL2RGB = function(H, S, L) {\n    H /= 360;\n\n    var q = L < 0.5 ? L * (1 + S) : L + S - L * S;\n    var p = 2 * L - q;\n\n    return [H + 1/3, H, H - 1/3].map(function(color) {\n        if(color < 0) {\n            color++;\n        }\n        if(color > 1) {\n            color--;\n        }\n        if(color < 1/6) {\n            color = p + (q - p) * 6 * color;\n        } else if(color < 0.5) {\n            color = q;\n        } else if(color < 2/3) {\n            color = p + (q - p) * 6 * (2/3 - color);\n        } else {\n            color = p;\n        }\n        return Math.round(color * 255);\n    });\n};\n\nfunction isArray(o) {\n    return Object.prototype.toString.call(o) === '[object Array]';\n}\n\n/**\n * Color Hash Class\n *\n * @class\n */\nexport default function ColorHash(options) {\n    options = options || {};\n\n    var LS = [options.lightness, options.saturation].map(function(param) {\n        param = param || [0.35, 0.5, 0.65]; // note that 3 is a prime\n        return isArray(param) ? param.concat() : [param];\n    });\n\n    this.L = LS[0];\n    this.S = LS[1];\n\n    if (typeof options.hue === 'number') {\n        options.hue = {min: options.hue, max: options.hue};\n    }\n    if (typeof options.hue === 'object' && !isArray(options.hue)) {\n        options.hue = [options.hue];\n    }\n    if (typeof options.hue === 'undefined') {\n        options.hue = [];\n    }\n    this.hueRanges = options.hue.map(function (range) {\n        return {\n            min: typeof range.min === 'undefined' ? 0 : range.min,\n            max: typeof range.max === 'undefined' ? 360: range.max\n        };\n    });\n\n    this.hash = options.hash || BKDRHash;\n};\n\n/**\n * Returns the hash in [h, s, l].\n * Note that H ∈ [0, 360); S ∈ [0, 1]; L ∈ [0, 1];\n *\n * @param {String} str string to hash\n * @returns {Array} [h, s, l]\n */\nColorHash.prototype.hsl = function(str) {\n    var H, S, L;\n    var hash = this.hash(str);\n\n    if (this.hueRanges.length) {\n        var range = this.hueRanges[hash % this.hueRanges.length];\n        var hueResolution = 727; // note that 727 is a prime\n        H = ((hash / this.hueRanges.length) % hueResolution) * (range.max - range.min) / hueResolution + range.min;\n    } else {\n        H = hash % 359; // note that 359 is a prime\n    }\n    hash = parseInt(hash / 360);\n    S = this.S[hash % this.S.length];\n    hash = parseInt(hash / this.S.length);\n    L = this.L[hash % this.L.length];\n\n    return [H, S, L];\n};\n\n/**\n * Returns the hash in [r, g, b].\n * Note that R, G, B ∈ [0, 255]\n *\n * @param {String} str string to hash\n * @returns {Array} [r, g, b]\n */\nColorHash.prototype.rgb = function(str) {\n    var hsl = this.hsl(str);\n    return HSL2RGB.apply(this, hsl);\n};\n\n/**\n * Returns the hash in hex\n *\n * @param {String} str string to hash\n * @returns {String} hex with #\n */\nColorHash.prototype.hex = function(str) {\n    var rgb = this.rgb(str);\n    return RGB2HEX(rgb);\n};\n"],"mappings":"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"}