­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ !function(t,e,i){t.ripple=function(n,a){var o=this,p=o.log=function(){o.defaults.debug&&console&&console.log&&console.log.apply(console,arguments)};o.selector=n,o.defaults={debug:!1,on:"mousedown",opacity:.4,color:"auto",multi:!1,duration:.7,rate:function(t){return t},easing:"linear"},o.defaults=t.extend({},o.defaults,a);var l=function(e){var n,l,r=t(this);if(r.addClass("has-ripple"),(l=t.extend({},o.defaults,a)).multi||!l.multi&&0===r.find(".ripple").length){if((n=t("").addClass("ripple")).appendTo(r),p("Create: Ripple"),!n.height()&&!n.width()){var d=i.max(r.outerWidth(),r.outerHeight());n.css({height:d,width:d}),p("Set: Ripple size")}if(l.rate&&"function"==typeof l.rate){var s=i.round(n.width()/l.duration),u=l.rate(s),f=n.width()/u;l.duration.toFixed(2)!==f.toFixed(2)&&(p("Update: Ripple Duration",{from:l.duration,to:f}),l.duration=f)}var c="auto"==l.color?r.css("color"):l.color,m={animationDuration:l.duration.toString()+"s",animationTimingFunction:l.easing,background:c,opacity:l.opacity};p("Set: Ripple CSS",m),n.css(m)}l.multi||(p("Set: Ripple Element"),n=r.find(".ripple")),p("Destroy: Ripple Animation"),n.removeClass("ripple-animate");var h=e.pageX-r.offset().left-n.width()/2,g=e.pageY-r.offset().top-n.height()/2;l.multi&&(p("Set: Ripple animationend event"),n.one("animationend webkitAnimationEnd oanimationend MSAnimationEnd",function(){p("Note: Ripple animation ended"),p("Destroy: Ripple"),t(this).remove()})),p("Set: Ripple location"),p("Set: Ripple animation"),n.css({top:g+"px",left:h+"px"}).addClass("ripple-animate")};e.querySelectorAll(o.selector).forEach(function(t){t.addEventListener(o.defaults.on,l)})}}(jQuery,document,Math);