(function (t, e){
"object"==typeof exports ? module.exports=e():"function"==typeof define&&define.amd ? define(["spin.min"], e):t.Ladda=e(t.Spinner)
})(this, function (t){
"use strict";
function e(t){
if(t===void 0)return console.warn("Ladda button target must be defined."), void 0;
t.querySelector(".ladda-label")||(t.innerHTML='<span class="ladda-label">' + t.innerHTML + "</span>");
var e=i(t), n=document.createElement("span");
n.className="ladda-spinner", t.appendChild(n);
var r, a={
start: function (){
return t.setAttribute("disabled", ""), t.setAttribute("data-loading", ""), clearTimeout(r), e.spin(n), this.setProgress(0), this
}, startAfter: function (t){
return clearTimeout(r), r=setTimeout(function (){
a.start()
}, t), this
}, stop: function (){
return t.removeAttribute("disabled"), t.removeAttribute("data-loading"), clearTimeout(r), r=setTimeout(function (){
e.stop()
}, 1e3), this
}, toggle: function (){
return this.isLoading() ? this.stop():this.start(), this
}, setProgress: function (e){
e=Math.max(Math.min(e, 1), 0);
var n=t.querySelector(".ladda-progress");
0===e&&n && n.parentNode ? n.parentNode.removeChild(n):(n||(n=document.createElement("div"), n.className="ladda-progress", t.appendChild(n)), n.style.width=(e||0) * t.offsetWidth + "px")
}, enable: function (){
return this.stop(), this
}, disable: function (){
return this.stop(), t.setAttribute("disabled", ""), this
}, isLoading: function (){
return t.hasAttribute("data-loading")
}};
return o.push(a), a
}
function n(t, n){
n=n||{};
var r=[];
"string"==typeof t ? r=a(document.querySelectorAll(t)):"object"==typeof t&&"string"==typeof t.nodeName&&(r=[t]);
for (var i=0, o=r.length; o > i; i++)(function (){
var t=r[i];
if("function"==typeof t.addEventListener){
var a=e(t), o=-1;
t.addEventListener("click", function (){
a.startAfter(1), "number"==typeof n.timeout&&(clearTimeout(o), o=setTimeout(a.stop, n.timeout)), "function"==typeof n.callback&&n.callback.apply(null, [a])
}, !1)
}})()
}
function r(){
for (var t=0, e=o.length; e > t; t++)o[t].stop()
}
function i(e){
var n, r=e.offsetHeight;
r > 32&&(r *=.8), e.hasAttribute("data-spinner-size")&&(r=parseInt(e.getAttribute("data-spinner-size"), 10)), e.hasAttribute("data-spinner-color")&&(n=e.getAttribute("data-spinner-color"));
var i=12, a=.2 * r, o=.6 * a, s=7 > a ? 2:3;
return new t({
color: n||"#fff",
lines: i,
radius: a,
length: o,
width: s,
zIndex: "auto",
top: "auto",
left: "auto",
className: ""
})
}
function a(t){
for (var e=[], n=0; t.length > n; n++)e.push(t[n]);
return e
}
var o=[];
return {bind: n, create: e, stopAll: r}});