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.
		
		
		
		
		
			
		
			
				
					
					
						
							72 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							72 lines
						
					
					
						
							1.4 KiB
						
					
					
				| "use strict";
 | |
| 
 | |
| exports.__esModule = true;
 | |
| exports["default"] = void 0;
 | |
| 
 | |
| function rgbToHsl(color) {
 | |
|   // make sure rgb are contained in a set of [0, 255]
 | |
|   var red = color.red / 255;
 | |
|   var green = color.green / 255;
 | |
|   var blue = color.blue / 255;
 | |
|   var max = Math.max(red, green, blue);
 | |
|   var min = Math.min(red, green, blue);
 | |
|   var lightness = (max + min) / 2;
 | |
| 
 | |
|   if (max === min) {
 | |
|     // achromatic
 | |
|     if (color.alpha !== undefined) {
 | |
|       return {
 | |
|         hue: 0,
 | |
|         saturation: 0,
 | |
|         lightness: lightness,
 | |
|         alpha: color.alpha
 | |
|       };
 | |
|     } else {
 | |
|       return {
 | |
|         hue: 0,
 | |
|         saturation: 0,
 | |
|         lightness: lightness
 | |
|       };
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   var hue;
 | |
|   var delta = max - min;
 | |
|   var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);
 | |
| 
 | |
|   switch (max) {
 | |
|     case red:
 | |
|       hue = (green - blue) / delta + (green < blue ? 6 : 0);
 | |
|       break;
 | |
| 
 | |
|     case green:
 | |
|       hue = (blue - red) / delta + 2;
 | |
|       break;
 | |
| 
 | |
|     default:
 | |
|       // blue case
 | |
|       hue = (red - green) / delta + 4;
 | |
|       break;
 | |
|   }
 | |
| 
 | |
|   hue *= 60;
 | |
| 
 | |
|   if (color.alpha !== undefined) {
 | |
|     return {
 | |
|       hue: hue,
 | |
|       saturation: saturation,
 | |
|       lightness: lightness,
 | |
|       alpha: color.alpha
 | |
|     };
 | |
|   }
 | |
| 
 | |
|   return {
 | |
|     hue: hue,
 | |
|     saturation: saturation,
 | |
|     lightness: lightness
 | |
|   };
 | |
| }
 | |
| 
 | |
| var _default = rgbToHsl;
 | |
| exports["default"] = _default;
 | |
| module.exports = exports.default; |