UNPKG

@antv/data-wizard

Version:
63 lines (62 loc) 1.92 kB
import { assert } from '../utils'; import { initOptions } from './utils'; /** * Generate RGB color. * @param options - the params */ export function rgb(options) { if (options === void 0) { options = {}; } var _a = initOptions({ grayscale: false, min: 0, max: 255, }, options), grayscale = _a.grayscale, max = _a.max, min = _a.min; 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 }), ]; } /** * generate HSL color * @param options */ export function hsl(options) { var opts = 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 }) + "%", ]; }