text: function getSupportedPropertyName(properties) {
    for (var i = 0; i < properties.length; i++)
      if (typeof document.body.style[properties[i]] !== 'undefined')
        return properties[i];
    return null;
  }
  
  export function getTransformProperty() {
    return getSupportedPropertyName([
      'transform', 'msTransform', 'webkitTransform', 'mozTransform', 'oTransform'
    ]);
  }
  
  export function debounce(func, wait, immediate) {
    var timeout;
    return function() {
      var context = this, args = arguments;
      var later = function() {
        timeout = null;
        if (!immediate) func.apply(context, args);
      };
      var callNow = immediate && !timeout;
      clearTimeout(timeout);
      timeout = setTimeout(later, wait);
      if (callNow) func.apply(context, args);
    };
  };
  