utils.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*
  2. * Allow user to pass their own params
  3. */
  4. var extend = function(a, b) {
  5. for (var key in b) {
  6. if (b.hasOwnProperty(key)) {
  7. a[key] = b[key];
  8. }
  9. }
  10. return a;
  11. };
  12. /*
  13. * Convert HEX codes to RGB values (#000000 -> rgb(0,0,0))
  14. */
  15. var hexToRgb = function(hex) {
  16. var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
  17. return result ? parseInt(result[1], 16) + ', ' + parseInt(result[2], 16) + ', ' + parseInt(result[3], 16) : null;
  18. };
  19. /*
  20. * Check if the user is using Internet Explorer 8 (for fallbacks)
  21. */
  22. var isIE8 = function() {
  23. return (window.attachEvent && !window.addEventListener);
  24. };
  25. /*
  26. * IE compatible logging for developers
  27. */
  28. var logStr = function(string) {
  29. if (window.console) {
  30. // IE...
  31. window.console.log('SweetAlert: ' + string);
  32. }
  33. };
  34. /*
  35. * Set hover, active and focus-states for buttons
  36. * (source: http://www.sitepoint.com/javascript-generate-lighter-darker-color)
  37. */
  38. var colorLuminance = function(hex, lum) {
  39. // Validate hex string
  40. hex = String(hex).replace(/[^0-9a-f]/gi, '');
  41. if (hex.length < 6) {
  42. hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
  43. }
  44. lum = lum || 0;
  45. // Convert to decimal and change luminosity
  46. var rgb = '#';
  47. var c;
  48. var i;
  49. for (i = 0; i < 3; i++) {
  50. c = parseInt(hex.substr(i * 2, 2), 16);
  51. c = Math.round(Math.min(Math.max(0, c + c * lum), 255)).toString(16);
  52. rgb += ('00' + c).substr(c.length);
  53. }
  54. return rgb;
  55. };
  56. export {
  57. extend,
  58. hexToRgb,
  59. isIE8,
  60. logStr,
  61. colorLuminance
  62. };