UNPKG

@antv/data-wizard

Version:
68 lines (67 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hsl = exports.rgb = void 0; var utils_1 = require("../utils"); var utils_2 = require("./utils"); /** * Generate RGB color. * @param options - the params */ function rgb(options) { if (options === void 0) { options = {}; } var _a = utils_2.initOptions({ grayscale: false, min: 0, max: 255, }, options), grayscale = _a.grayscale, max = _a.max, min = _a.min; utils_1.assert(min >= 0 && max <= 255, 'min and max must between in [0, 255]'); var minRgb = min; var maxRgb = max; var minR = options.minR === undefined ? min : options.minR; var maxR = options.maxR === undefined ? max : options.maxR; var minG = options.minG === undefined ? min : options.minG; var maxG = options.maxG === undefined ? max : options.maxG; var minB = options.minB === undefined ? min : options.minB; var maxB = options.maxB === undefined ? max : options.maxB; if (grayscale && min === 0 && max === 255 && minR !== undefined && minR !== undefined && minG !== undefined && maxG !== undefined && minB !== undefined && maxB !== undefined) { minRgb = (minR + minG + minG) / 3; maxRgb = (maxR + maxG + maxB) / 3; } if (grayscale) { return new Array(3).fill(this.natural({ min: minRgb, max: maxRgb })); } return [ this.natural({ min: minR, max: maxR }), this.natural({ min: minG, max: maxG }), this.natural({ min: minB, max: maxB }), ]; } exports.rgb = rgb; /** * generate HSL color * @param options */ function hsl(options) { var opts = utils_2.initOptions({ minH: 0, maxH: 360, minS: 0, maxS: 100, minL: 0, maxL: 100, }, options); return [ this.natural({ min: opts.minH, max: opts.maxH }), this.float({ min: opts.minS, max: opts.maxS }) + "%", this.float({ min: opts.minS, max: opts.maxS }) + "%", ]; } exports.hsl = hsl;