UNPKG

color-to-vec4

Version:

:white_square_button: a color (rgb, rgba, hex) to vec4 convertor

48 lines (31 loc) 1.22 kB
'use strict'; exports.__esModule = true; var _mapChannel = require('./mapChannel'); var _mapChannel2 = _interopRequireDefault(_mapChannel); var _normalize = require('./normalize'); var _normalize2 = _interopRequireDefault(_normalize); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (color) { var alpha = false; if (color.startsWith('rgba(')) alpha = true;else if (color.startsWith('rgb(')) alpha = false; var split = alpha ? 'rgba(' : 'rgb('; var channels = color.split(split)[1].split(')')[0].split(','); if (channels.length < 3 || channels.length > 4) { throw new Error(color + ' is not a valid rgb(a) color'); } channels = channels.map(function (c) { return parseFloat(c); }).map(function (c) { return (0, _normalize2.default)(0, 255, c); }); var _channels = channels, r = _channels[0], g = _channels[1], b = _channels[2], _channels$ = _channels[3], a = _channels$ === undefined ? 1 : _channels$; var aa = (0, _normalize2.default)(0, 1, a); var rgb = [r, g, b].map(_mapChannel2.default); return [].concat(rgb, [aa]); }; module.exports = exports['default'];