{"version":3,"file":"scale.mjs","sources":["../../../../../../../../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 _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                _domain = [classes[0], classes[classes.length - 1]];\n            } else {\n                const d = chroma.analyze(_domain);\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 _domain;\n        }\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        _domain = [_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 = _domain[0];\n            const dd = _domain[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 = _domain;\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":["pow"],"mappings":"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","x_google_ignoreList":[0]}