You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					61 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					61 lines
				
				1.6 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.__esModule = true;
							 | 
						||
| 
								 | 
							
								exports["default"] = void 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function colorToInt(color) {
							 | 
						||
| 
								 | 
							
								  return Math.round(color * 255);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function convertToInt(red, green, blue) {
							 | 
						||
| 
								 | 
							
								  return colorToInt(red) + "," + colorToInt(green) + "," + colorToInt(blue);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function hslToRgb(hue, saturation, lightness, convert) {
							 | 
						||
| 
								 | 
							
								  if (convert === void 0) {
							 | 
						||
| 
								 | 
							
								    convert = convertToInt;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (saturation === 0) {
							 | 
						||
| 
								 | 
							
								    // achromatic
							 | 
						||
| 
								 | 
							
								    return convert(lightness, lightness, lightness);
							 | 
						||
| 
								 | 
							
								  } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var huePrime = (hue % 360 + 360) % 360 / 60;
							 | 
						||
| 
								 | 
							
								  var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;
							 | 
						||
| 
								 | 
							
								  var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));
							 | 
						||
| 
								 | 
							
								  var red = 0;
							 | 
						||
| 
								 | 
							
								  var green = 0;
							 | 
						||
| 
								 | 
							
								  var blue = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (huePrime >= 0 && huePrime < 1) {
							 | 
						||
| 
								 | 
							
								    red = chroma;
							 | 
						||
| 
								 | 
							
								    green = secondComponent;
							 | 
						||
| 
								 | 
							
								  } else if (huePrime >= 1 && huePrime < 2) {
							 | 
						||
| 
								 | 
							
								    red = secondComponent;
							 | 
						||
| 
								 | 
							
								    green = chroma;
							 | 
						||
| 
								 | 
							
								  } else if (huePrime >= 2 && huePrime < 3) {
							 | 
						||
| 
								 | 
							
								    green = chroma;
							 | 
						||
| 
								 | 
							
								    blue = secondComponent;
							 | 
						||
| 
								 | 
							
								  } else if (huePrime >= 3 && huePrime < 4) {
							 | 
						||
| 
								 | 
							
								    green = secondComponent;
							 | 
						||
| 
								 | 
							
								    blue = chroma;
							 | 
						||
| 
								 | 
							
								  } else if (huePrime >= 4 && huePrime < 5) {
							 | 
						||
| 
								 | 
							
								    red = secondComponent;
							 | 
						||
| 
								 | 
							
								    blue = chroma;
							 | 
						||
| 
								 | 
							
								  } else if (huePrime >= 5 && huePrime < 6) {
							 | 
						||
| 
								 | 
							
								    red = chroma;
							 | 
						||
| 
								 | 
							
								    blue = secondComponent;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var lightnessModification = lightness - chroma / 2;
							 | 
						||
| 
								 | 
							
								  var finalRed = red + lightnessModification;
							 | 
						||
| 
								 | 
							
								  var finalGreen = green + lightnessModification;
							 | 
						||
| 
								 | 
							
								  var finalBlue = blue + lightnessModification;
							 | 
						||
| 
								 | 
							
								  return convert(finalRed, finalGreen, finalBlue);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _default = hslToRgb;
							 | 
						||
| 
								 | 
							
								exports["default"] = _default;
							 | 
						||
| 
								 | 
							
								module.exports = exports.default;
							 |