{"version":3,"file":"scale.cjs","sources":["../../../../../../../../../.yarn/berry/cache/chroma-js-npm-3.2.0-d5c39f5077-10c0.zip/node_modules/chroma-js/src/generator/scale.js"],"sourcesContent":["// minimal multi-purpose interface\n\n// @requires utils color analyze\nimport chroma from '../chroma.js';\nimport { limit, type } from '../utils/index.js';\n\nconst { pow } = Math;\n\nexport default function (colors) {\n    // constructor\n    let _mode = 'rgb';\n    let _nacol = chroma('#ccc');\n    let _spread = 0;\n    // const _fixed = false;\n    let _positions = [0, 1];\n    let _domain = [0, 1];\n    let _pos = [];\n    let _padding = [0, 0];\n    let _classes = false;\n    let _colors = [];\n    let _out = false;\n    let _min = 0;\n    let _max = 1;\n    let _correctLightness = false;\n    let _colorCache = {};\n    let _useCache = true;\n    let _gamma = 1;\n\n    // private methods\n\n    const setColors = function (colors) {\n        colors = colors || ['#fff', '#000'];\n        if (\n            colors &&\n            type(colors) === 'string' &&\n            chroma.brewer &&\n            chroma.brewer[colors.toLowerCase()]\n        ) {\n            colors = chroma.brewer[colors.toLowerCase()];\n        }\n        if (type(colors) === 'array') {\n            // handle single color\n            if (colors.length === 1) {\n                colors = [colors[0], colors[0]];\n            }\n            // make a copy of the colors\n            colors = colors.slice(0);\n            // convert to chroma classes\n            for (let c = 0; c < colors.length; c++) {\n                colors[c] = chroma(colors[c]);\n            }\n            // auto-fill color position\n            _pos.length = 0;\n            for (let c = 0; c < colors.length; c++) {\n                _pos.push(c / (colors.length - 1));\n            }\n        }\n        resetCache();\n        return (_colors = colors);\n    };\n\n    const getClass = function (value) {\n        if (_classes != null) {\n            const n = _classes.length - 1;\n            let i = 0;\n            while (i < n && value >= _classes[i]) {\n                i++;\n            }\n            return i - 1;\n        }\n        return 0;\n    };\n\n    let tMapLightness = (t) => t;\n    let tMapDomain = (t) => t;\n\n    // const classifyValue = function(value) {\n    //     let val = value;\n    //     if (_classes.length > 2) {\n    //         const n = _classes.length-1;\n    //         const i = getClass(value);\n    //         const minc = _classes[0] + ((_classes[1]-_classes[0]) * (0 + (_spread * 0.5)));  // center of 1st class\n    //         const maxc = _classes[n-1] + ((_classes[n]-_classes[n-1]) * (1 - (_spread * 0.5)));  // center of last class\n    //         val = _min + ((((_classes[i] + ((_classes[i+1] - _classes[i]) * 0.5)) - minc) / (maxc-minc)) * (_max - _min));\n    //     }\n    //     return val;\n    // };\n\n    const getColor = function (val, bypassMap) {\n        let col, t;\n        if (bypassMap == null) {\n            bypassMap = false;\n        }\n        if (isNaN(val) || val === null) {\n            return _nacol;\n        }\n        if (!bypassMap) {\n            if (_classes && _classes.length > 2) {\n                // find the class\n                const c = getClass(val);\n                t = c / (_classes.length - 2);\n            } else if (_max !== _min) {\n                // just interpolate between min/max\n                t = (val - _min) / (_max - _min);\n            } else {\n                t = 1;\n            }\n        } else {\n            t = val;\n        }\n\n        // domain map\n        t = tMapDomain(t);\n\n        if (!bypassMap) {\n            t = tMapLightness(t); // lightness correction\n        }\n\n        if (_gamma !== 1) {\n            t = pow(t, _gamma);\n        }\n\n        t = _padding[0] + t * (1 - _padding[0] - _padding[1]);\n\n        t = limit(t, 0, 1);\n\n        const k = Math.floor(t * 10000);\n\n        if (_useCache && _colorCache[k]) {\n            col = _colorCache[k];\n        } else {\n            if (type(_colors) === 'array') {\n                //for i in [0.._pos.length-1]\n                for (let i = 0; i < _pos.length; i++) {\n                    const p = _pos[i];\n                    if (t <= p) {\n                        col = _colors[i];\n                        break;\n                    }\n                    if (t >= p && i === _pos.length - 1) {\n                        col = _colors[i];\n                        break;\n                    }\n                    if (t > p && t < _pos[i + 1]) {\n                        t = (t - p) / (_pos[i + 1] - p);\n                        col = chroma.interpolate(\n                            _colors[i],\n                            _colors[i + 1],\n                            t,\n                            _mode\n                        );\n                        break;\n                    }\n                }\n            } else if (type(_colors) === 'function') {\n                col = _colors(t);\n            }\n            if (_useCache) {\n                _colorCache[k] = col;\n            }\n        }\n        return col;\n    };\n\n    var resetCache = () => (_colorCache = {});\n\n    setColors(colors);\n\n    // public interface\n\n    const f = function (v) {\n        const c = chroma(getColor(v));\n        if (_out && c[_out]) {\n            return c[_out]();\n        } else {\n            return c;\n        }\n    };\n\n    f.classes = function (classes) {\n        if (classes != null) {\n            if (type(classes) === 'array') {\n                _classes = classes;\n                _positions = [classes[0], classes[classes.length - 1]];\n            } else {\n                const d = chroma.analyze(_positions);\n                if (classes === 0) {\n                    _classes = [d.min, d.max];\n                } else {\n                    _classes = chroma.limits(d, 'e', classes);\n                }\n            }\n            return f;\n        }\n        return _classes;\n    };\n\n    f.domain = function (domain) {\n        if (!arguments.length) {\n            // return original domain\n            return _domain;\n        }\n        // store original domain so we can return it later\n        _domain = domain.slice(0);\n        _min = domain[0];\n        _max = domain[domain.length - 1];\n        _pos = [];\n        const k = _colors.length;\n        if (domain.length === k && _min !== _max) {\n            // update positions\n            for (let d of Array.from(domain)) {\n                _pos.push((d - _min) / (_max - _min));\n            }\n        } else {\n            for (let c = 0; c < k; c++) {\n                _pos.push(c / (k - 1));\n            }\n            if (domain.length > 2) {\n                // set domain map\n                const tOut = domain.map((d, i) => i / (domain.length - 1));\n                const tBreaks = domain.map((d) => (d - _min) / (_max - _min));\n                if (!tBreaks.every((val, i) => tOut[i] === val)) {\n                    tMapDomain = (t) => {\n                        if (t <= 0 || t >= 1) return t;\n                        let i = 0;\n                        while (t >= tBreaks[i + 1]) i++;\n                        const f =\n                            (t - tBreaks[i]) / (tBreaks[i + 1] - tBreaks[i]);\n                        const out = tOut[i] + f * (tOut[i + 1] - tOut[i]);\n                        return out;\n                    };\n                }\n            }\n        }\n        _positions = [_min, _max];\n        return f;\n    };\n\n    f.mode = function (_m) {\n        if (!arguments.length) {\n            return _mode;\n        }\n        _mode = _m;\n        resetCache();\n        return f;\n    };\n\n    f.range = function (colors, _pos) {\n        setColors(colors, _pos);\n        return f;\n    };\n\n    f.out = function (_o) {\n        _out = _o;\n        return f;\n    };\n\n    f.spread = function (val) {\n        if (!arguments.length) {\n            return _spread;\n        }\n        _spread = val;\n        return f;\n    };\n\n    f.correctLightness = function (v) {\n        if (v == null) {\n            v = true;\n        }\n        _correctLightness = v;\n        resetCache();\n        if (_correctLightness) {\n            tMapLightness = function (t) {\n                const L0 = getColor(0, true).lab()[0];\n                const L1 = getColor(1, true).lab()[0];\n                const pol = L0 > L1;\n                let L_actual = getColor(t, true).lab()[0];\n                const L_ideal = L0 + (L1 - L0) * t;\n                let L_diff = L_actual - L_ideal;\n                let t0 = 0;\n                let t1 = 1;\n                let max_iter = 20;\n                while (Math.abs(L_diff) > 1e-2 && max_iter-- > 0) {\n                    (function () {\n                        if (pol) {\n                            L_diff *= -1;\n                        }\n                        if (L_diff < 0) {\n                            t0 = t;\n                            t += (t1 - t) * 0.5;\n                        } else {\n                            t1 = t;\n                            t += (t0 - t) * 0.5;\n                        }\n                        L_actual = getColor(t, true).lab()[0];\n                        return (L_diff = L_actual - L_ideal);\n                    })();\n                }\n                return t;\n            };\n        } else {\n            tMapLightness = (t) => t;\n        }\n        return f;\n    };\n\n    f.padding = function (p) {\n        if (p != null) {\n            if (type(p) === 'number') {\n                p = [p, p];\n            }\n            _padding = p;\n            return f;\n        } else {\n            return _padding;\n        }\n    };\n\n    f.colors = function (numColors, out) {\n        // If no arguments are given, return the original colors that were provided\n        if (arguments.length < 2) {\n            out = 'hex';\n        }\n        let result = [];\n\n        if (arguments.length === 0) {\n            result = _colors.slice(0);\n        } else if (numColors === 1) {\n            result = [f(0.5)];\n        } else if (numColors > 1) {\n            const dm = _positions[0];\n            const dd = _positions[1] - dm;\n            result = __range__(0, numColors, false).map((i) =>\n                f(dm + (i / (numColors - 1)) * dd)\n            );\n        } else {\n            // returns all colors based on the defined classes\n            colors = [];\n            let samples = [];\n            if (_classes && _classes.length > 2) {\n                for (\n                    let i = 1, end = _classes.length, asc = 1 <= end;\n                    asc ? i < end : i > end;\n                    asc ? i++ : i--\n                ) {\n                    samples.push((_classes[i - 1] + _classes[i]) * 0.5);\n                }\n            } else {\n                samples = _positions;\n            }\n            result = samples.map((v) => f(v));\n        }\n\n        if (chroma[out]) {\n            result = result.map((c) => c[out]());\n        }\n        return result;\n    };\n\n    f.cache = function (c) {\n        if (c != null) {\n            _useCache = c;\n            return f;\n        } else {\n            return _useCache;\n        }\n    };\n\n    f.gamma = function (g) {\n        if (g != null) {\n            _gamma = g;\n            return f;\n        } else {\n            return _gamma;\n        }\n    };\n\n    f.nodata = function (d) {\n        if (d != null) {\n            _nacol = chroma(d);\n            return f;\n        } else {\n            return _nacol;\n        }\n    };\n\n    return f;\n}\n\nfunction __range__(left, right, inclusive) {\n    let range = [];\n    let ascending = left < right;\n    let end = !inclusive ? right : ascending ? right + 1 : right - 1;\n    for (let i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n        range.push(i);\n    }\n    return range;\n}\n"],"names":["colors","f","_pos"],"mappings":"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","x_google_ignoreList":[0]}