rgbToHex = (...values) => {
  values = flatten(values)
  if (values.length < 3) throw new Error('values must contain R, G and B values')

  const r = values[0] * 255
  const g = values[1] * 255
  const b = values[2] * 255

  let s = `#${Number(0x1000000 + r * 0x10000 + g * 0x100 + b).toString(16).substring(1, 7)}`

  if (values.length > 3) {
    // convert alpha to opacity
    s = s + Number(values[3] * 255).toString(16)
  }
  return s
}
Convert the given RGB color values to CSS color notation (string)
@see https://www.w3.org/TR/css-color-3/
@param {...Number|Array} values - RGB or RGBA color values
@return {String} CSS color notation
@alias module:modeling/colors.rgbToHex