mirror of
				https://github.com/alchemy-fr/Phraseanet.git
				synced 2025-10-27 11:53:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var p4 = p4 || {};
 | |
| 
 | |
| var utilsModule = (function (p4) {
 | |
| 
 | |
| 
 | |
|     function RGBtoHex(R, G, B) {
 | |
|         return _toHex(R) + _toHex(G) + _toHex(B);
 | |
|     }
 | |
|     function _toHex(N) {
 | |
|         if (N === null) return "00";
 | |
|         N = parseInt(N);
 | |
|         if (N === 0 || isNaN(N)) return "00";
 | |
|         N = Math.max(0, N);
 | |
|         N = Math.min(N, 255);
 | |
|         N = Math.round(N);
 | |
|         return "0123456789ABCDEF".charAt((N - N % 16) / 16)
 | |
|             + "0123456789ABCDEF".charAt(N % 16);
 | |
|     }
 | |
|     function hsl2rgb(h, s, l) {
 | |
|         var m1, m2, hue;
 | |
|         var r, g, b;
 | |
|         s /= 100;
 | |
|         l /= 100;
 | |
|         if (s === 0)
 | |
|             r = g = b = (l * 255);
 | |
|         else {
 | |
|             if (l <= 0.5)
 | |
|                 m2 = l * (s + 1);
 | |
|             else
 | |
|                 m2 = l + s - l * s;
 | |
|             m1 = l * 2 - m2;
 | |
|             hue = h / 360;
 | |
|             r = _HueToRgb(m1, m2, hue + 1 / 3);
 | |
|             g = _HueToRgb(m1, m2, hue);
 | |
|             b = _HueToRgb(m1, m2, hue - 1 / 3);
 | |
|         }
 | |
|         return {
 | |
|             r: r,
 | |
|             g: g,
 | |
|             b: b
 | |
|         };
 | |
|     }
 | |
| 
 | |
|     function _HueToRgb(m1, m2, hue) {
 | |
|         var v;
 | |
|         if (hue < 0)
 | |
|             hue += 1;
 | |
|         else if (hue > 1)
 | |
|             hue -= 1;
 | |
| 
 | |
|         if (6 * hue < 1)
 | |
|             v = m1 + (m2 - m1) * hue * 6;
 | |
|         else if (2 * hue < 1)
 | |
|             v = m2;
 | |
|         else if (3 * hue < 2)
 | |
|             v = m1 + (m2 - m1) * (2 / 3 - hue) * 6;
 | |
|         else
 | |
|             v = m1;
 | |
| 
 | |
|         return 255 * v;
 | |
|     }
 | |
| 
 | |
|     function is_ctrl_key(event) {
 | |
|         if (event.altKey)
 | |
|             return true;
 | |
|         if (event.ctrlKey)
 | |
|             return true;
 | |
|         if (event.metaKey)	// apple key opera
 | |
|             return true;
 | |
|         if (event.keyCode === 17)	// apple key opera
 | |
|             return true;
 | |
|         if (event.keyCode === 224)	// apple key mozilla
 | |
|             return true;
 | |
|         if (event.keyCode === 91)	// apple key safari
 | |
|             return true;
 | |
| 
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     function is_shift_key(event) {
 | |
|         if (event.shiftKey)
 | |
|             return true;
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     return {
 | |
|         RGBtoHex: RGBtoHex,
 | |
|         hsl2rgb: hsl2rgb,
 | |
|         is_ctrl_key: is_ctrl_key,
 | |
|         is_shift_key: is_shift_key
 | |
|     };
 | |
| }(p4));
 | 
