/* * Bootstrap TouchSpin - v4.2.5 * A mobile and touch friendly input spinner component for Bootstrap 3 & 4. * http://www.virtuosoft.eu/code/bootstrap-touchspin/ * * Made by István Ujj-Mészáros * Under Apache License v2.0 License */ !(function (o) { "function" == typeof define && define.amd ? define(["jquery"], o) : "object" == typeof module && module.exports ? (module.exports = function (t, n) { return ( void 0 === n && (n = "undefined" != typeof window ? require("jquery") : require("jquery")(t)), o(n), n ); }) : o(jQuery); })(function (j) { "use strict"; var D = 0; j.fn.TouchSpin = function (y) { var k = { min: 0, max: 100, initval: "", replacementval: "", step: 1, decimals: 0, stepinterval: 100, forcestepdivisibility: "round", stepintervaldelay: 500, verticalbuttons: !1, verticalup: "+", verticaldown: "-", verticalupclass: "", verticaldownclass: "", prefix: "", postfix: "", prefix_extraclass: "", postfix_extraclass: "", booster: !0, boostat: 10, maxboostedstep: !1, mousewheel: !0, buttondown_class: "btn btn-primary", buttonup_class: "btn btn-primary", buttondown_txt: "-", buttonup_txt: "+", callback_before_calculation: function (t) { return t; }, callback_after_calculation: function (t) { return t; }, }, C = { min: "min", max: "max", initval: "init-val", replacementval: "replacement-val", step: "step", decimals: "decimals", stepinterval: "step-interval", verticalbuttons: "vertical-buttons", verticalupclass: "vertical-up-class", verticaldownclass: "vertical-down-class", forcestepdivisibility: "force-step-divisibility", stepintervaldelay: "step-interval-delay", prefix: "prefix", postfix: "postfix", prefix_extraclass: "prefix-extra-class", postfix_extraclass: "postfix-extra-class", booster: "booster", boostat: "boostat", maxboostedstep: "max-boosted-step", mousewheel: "mouse-wheel", buttondown_class: "button-down-class", buttonup_class: "button-up-class", buttondown_txt: "button-down-txt", buttonup_txt: "button-up-txt", }; return this.each(function () { var i, p, a, u, o, s, t, n, e, r, c = j(this), l = c.data(), d = 0, f = !1; function b() { "" === i.prefix && (p = o.prefix.detach()), "" === i.postfix && (a = o.postfix.detach()); } function h() { var t, n, o; "" !== (t = i.callback_before_calculation(c.val())) ? (0 < i.decimals && "." === t) || ((n = parseFloat(t)), isNaN(n) && (n = "" !== i.replacementval ? i.replacementval : 0), (o = n).toString() !== t && (o = n), null !== i.min && n < i.min && (o = i.min), null !== i.max && n > i.max && (o = i.max), (o = (function (t) { switch (i.forcestepdivisibility) { case "round": return (Math.round(t / i.step) * i.step).toFixed(i.decimals); case "floor": return (Math.floor(t / i.step) * i.step).toFixed(i.decimals); case "ceil": return (Math.ceil(t / i.step) * i.step).toFixed(i.decimals); default: return t; } })(o)), Number(t).toString() !== o.toString() && (c.val(o), c.trigger("change"))) : "" !== i.replacementval && (c.val(i.replacementval), c.trigger("change")); } function v() { if (i.booster) { var t = Math.pow(2, Math.floor(d / i.boostat)) * i.step; return ( i.maxboostedstep && t > i.maxboostedstep && ((t = i.maxboostedstep), (s = Math.round(s / t) * t)), Math.max(i.step, t) ); } return i.step; } function x() { h(), (s = parseFloat(i.callback_before_calculation(o.input.val()))), isNaN(s) && (s = 0); var t = s, n = v(); (s += n), null !== i.max && s > i.max && ((s = i.max), c.trigger("touchspin.on.max"), _()), o.input.val( i.callback_after_calculation(Number(s).toFixed(i.decimals)) ), t !== s && c.trigger("change"); } function g() { h(), (s = parseFloat(i.callback_before_calculation(o.input.val()))), isNaN(s) && (s = 0); var t = s, n = v(); (s -= n), null !== i.min && s < i.min && ((s = i.min), c.trigger("touchspin.on.min"), _()), o.input.val( i.callback_after_calculation(Number(s).toFixed(i.decimals)) ), t !== s && c.trigger("change"); } function m() { _(), (d = 0), (f = "down"), c.trigger("touchspin.on.startspin"), c.trigger("touchspin.on.startdownspin"), (e = setTimeout(function () { t = setInterval(function () { d++, g(); }, i.stepinterval); }, i.stepintervaldelay)); } function w() { _(), (d = 0), (f = "up"), c.trigger("touchspin.on.startspin"), c.trigger("touchspin.on.startupspin"), (r = setTimeout(function () { n = setInterval(function () { d++, x(); }, i.stepinterval); }, i.stepintervaldelay)); } function _() { switch ( (clearTimeout(e), clearTimeout(r), clearInterval(t), clearInterval(n), f) ) { case "up": c.trigger("touchspin.on.stopupspin"), c.trigger("touchspin.on.stopspin"); break; case "down": c.trigger("touchspin.on.stopdownspin"), c.trigger("touchspin.on.stopspin"); } (d = 0), (f = !1); } !(function () { if (c.data("alreadyinitialized")) return; if ( (c.data("alreadyinitialized", !0), (D += 1), c.data("spinnerid", D), !c.is("input")) ) return console.log("Must be an input."); (i = j.extend( {}, k, l, ((s = {}), j.each(C, function (t, n) { var o = "bts-" + n; c.is("[data-" + o + "]") && (s[t] = c.data(o)); }), s), y )), "" !== i.initval && "" === c.val() && c.val(i.initval), h(), (function () { var t = c.val(), n = c.parent(); "" !== t && (t = i.callback_after_calculation(Number(t).toFixed(i.decimals))); c.data("initvalue", t).val(t), c.addClass("form-control"), n.hasClass("input-group") ? (function (t) { t.addClass("bootstrap-touchspin"); var n, o, s = c.prev(), p = c.next(), a = '' + i.prefix + "", e = '' + i.postfix + ""; s.hasClass("input-group-btn") || s.hasClass("input-group-prepend") ? ((n = '"), s.append(n)) : ((n = '"), j(n).insertBefore(c)); p.hasClass("input-group-btn") || p.hasClass("input-group-append") ? ((o = '"), p.prepend(o)) : ((o = '"), j(o).insertAfter(c)); j(a).insertBefore(c), j(e).insertAfter(c), (u = t); })(n) : (function () { var t, n = ""; c.hasClass("input-sm") && (n = "input-group-sm"); c.hasClass("input-lg") && (n = "input-group-lg"); t = i.verticalbuttons ? '