arcadiasuite/plus/public/food-files/js/maskmoney.min.js

1 line
6.6 KiB
JavaScript

!function(e){"use strict";function t(e,t){var n="";return e.indexOf("-")>-1&&(e=e.replace("-",""),n="-"),e.indexOf(t.prefix)>-1&&(e=e.replace(t.prefix,"")),e.indexOf(t.suffix)>-1&&(e=e.replace(t.suffix,"")),n+t.prefix+e+t.suffix}function n(e,t){return t.allowEmpty&&""===e?"":t.reverse?r(e,t):a(e,t)}function a(e,n){var a,r,o,l=e.indexOf("-")>-1&&n.allowNegative?"-":"",s=e.replace(/[^0-9]/g,"");return a=i(s.slice(0,s.length-n.precision),l,n),n.precision>0&&(r=s.slice(s.length-n.precision),o=new Array(n.precision+1-r.length).join(0),a+=n.decimal+o+r),t(a,n)}function r(e,n){var a,r=e.indexOf("-")>-1&&n.allowNegative?"-":"",o=e.replace(n.prefix,"").replace(n.suffix,""),l=o.split(n.decimal)[0],s="";if(""===l&&(l="0"),a=i(l,r,n),n.precision>0){var c=o.split(n.decimal);c.length>1&&(s=c[1]),a+=n.decimal+s;var u=Number.parseFloat(l+"."+s).toFixed(n.precision).toString().split(n.decimal)[1];a=a.split(n.decimal)[0]+"."+u}return t(a,n)}function i(e,t,n){return""===(e=(e=e.replace(/^0*/g,"")).replace(/\B(?=(\d{3})+(?!\d))/g,n.thousands))&&(e="0"),t+e}e.browser||(e.browser={},e.browser.mozilla=/mozilla/.test(navigator.userAgent.toLowerCase())&&!/webkit/.test(navigator.userAgent.toLowerCase()),e.browser.webkit=/webkit/.test(navigator.userAgent.toLowerCase()),e.browser.opera=/opera/.test(navigator.userAgent.toLowerCase()),e.browser.msie=/msie/.test(navigator.userAgent.toLowerCase()),e.browser.device=/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase()));var o={prefix:"",suffix:"",affixesStay:!0,thousands:",",decimal:".",precision:2,allowZero:!1,allowNegative:!1,doubleClickSelection:!0,allowEmpty:!1,bringCaretAtEndOnFocus:!0},l={destroy:function(){return e(this).unbind(".maskMoney"),e.browser.msie&&(this.onpaste=null),this},applyMask:function(t){return n(t,e(this).data("settings"))},mask:function(t){return this.each(function(){var n=e(this);return"number"==typeof t&&n.val(t),n.trigger("mask")})},unmasked:function(){return this.map(function(){var t,n=e(this).val()||"0",a=-1!==n.indexOf("-");return e(n.split(/\D/).reverse()).each(function(e,n){if(n)return t=n,!1}),n=(n=n.replace(/\D/g,"")).replace(new RegExp(t+"$"),"."+t),a&&(n="-"+n),parseFloat(n)})},unmaskedWithOptions:function(){return this.map(function(){var t=e(this).val()||"0",n=e(this).data("settings")||o,a=new RegExp(n.thousandsForUnmasked||n.thousands,"g");return t=t.replace(a,""),parseFloat(t)})},init:function(a){return a=e.extend(e.extend({},o),a),this.each(function(){function r(){var e,t,n,a,r,i=p.get(0),o=0,l=0;return"number"==typeof i.selectionStart&&"number"==typeof i.selectionEnd?(o=i.selectionStart,l=i.selectionEnd):(t=document.selection.createRange())&&t.parentElement()===i&&(a=i.value.length,e=i.value.replace(/\r\n/g,"\n"),(n=i.createTextRange()).moveToBookmark(t.getBookmark()),(r=i.createTextRange()).collapse(!1),n.compareEndPoints("StartToEnd",r)>-1?o=l=a:(o=-n.moveStart("character",-a),o+=e.slice(0,o).split("\n").length-1,n.compareEndPoints("EndToEnd",r)>-1?l=a:(l=-n.moveEnd("character",-a),l+=e.slice(0,l).split("\n").length-1))),{start:o,end:l}}function i(e){var t,a=p.val().length;p.val(n(p.val(),v)),t=p.val().length,v.reverse||(e-=a-t),function(e){v.formatOnBlur||p.each(function(t,n){if(n.setSelectionRange)n.focus(),n.setSelectionRange(e,e);else if(n.createTextRange){var a=n.createTextRange();a.collapse(!0),a.moveEnd("character",e),a.moveStart("character",e),a.select()}})}(e)}function o(){var e=p.val();if(!v.allowEmpty||""!==e){var t=e.indexOf(v.decimal);if(v.precision>0)if(t<0)e+=v.decimal+new Array(v.precision+1).join(0);else{var a=e.slice(0,t),r=e.slice(t+1);e=a+v.decimal+r+new Array(v.precision+1-r.length).join(0)}else t>0&&(e=e.slice(0,t));p.val(n(e,v))}}function l(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function s(t){var n=(t=t||window.event).which||t.charCode||t.keyCode,a=v.decimal.charCodeAt(0);return void 0!==n&&(!(n<48||n>57)||n===a&&v.reverse?!(!function(){var e=!(p.val().length>=p.attr("maxlength")&&p.attr("maxlength")>=0),t=r(),n=t.start,a=t.end,i=!(t.start===t.end||!p.val().substring(n,a).match(/\d/)),o="0"===p.val().substring(0,1);return e||i||o}()||n===a&&function(){return e=p.val().length,t=r(),!(0===t.start&&t.end===e)&&p.val().indexOf(v.decimal)>-1;var e,t}()||!v.formatOnBlur&&(l(t),c(t),1)):function(t,n){return 45===t?(p.val(function(){var e=p.val();return v.allowNegative?""!==e&&"-"===e.charAt(0)?e.replace("-",""):"-"+e:e}()),!1):43===t?(p.val(p.val().replace("-","")),!1):13===t||9===t||!(!e.browser.mozilla||37!==t&&39!==t||0!==n.charCode)||(l(n),!0)}(n,t))}function c(e){var t,n,a,o,l=(e=e||window.event).which||e.charCode||e.keyCode,s="";l>=48&&l<=57&&(s=String.fromCharCode(l)),n=(t=r()).start,a=t.end,o=p.val(),p.val(o.substring(0,n)+s+o.substring(a,o.length)),i(n+1)}function u(){setTimeout(function(){o()},0)}function d(){return(parseFloat("0")/Math.pow(10,v.precision)).toFixed(v.precision).replace(new RegExp("\\.","g"),v.decimal)}var v,f,p=e(this);v=e.extend({},a),v=e.extend(v,p.data()),p.data("settings",v),e.browser.device&&p.attr("type","tel"),p.unbind(".maskMoney"),p.bind("keypress.maskMoney",s),p.bind("keydown.maskMoney",function(e){var t,n,a,o,s,c=(e=e||window.event).which||e.charCode||e.keyCode;return void 0!==c&&(n=(t=r()).start,a=t.end,8!==c&&46!==c&&63272!==c||(l(e),o=p.val(),n===a&&(8===c?""===v.suffix?n-=1:(s=o.split("").reverse().join("").search(/\d/),a=1+(n=o.length-s-1)):a+=1),p.val(o.substring(0,n)+o.substring(a,o.length)),i(n),!1))}),p.bind("blur.maskMoney",function(n){if(e.browser.msie&&s(n),v.formatOnBlur&&p.val()!==f&&c(n),""===p.val()&&v.allowEmpty)p.val("");else if(""===p.val()||p.val()===t(d(),v))v.allowZero?v.affixesStay?p.val(t(d(),v)):p.val(d()):p.val("");else if(!v.affixesStay){var a=p.val().replace(v.prefix,"").replace(v.suffix,"");p.val(a)}p.val()!==f&&p.change()}),p.bind("focus.maskMoney",function(){f=p.val(),o();var e,t=p.get(0);v.selectAllOnFocus?t.select():t.createTextRange&&v.bringCaretAtEndOnFocus&&((e=t.createTextRange()).collapse(!1),e.select())}),p.bind("click.maskMoney",function(){var e,t=p.get(0);v.selectAllOnFocus||(t.setSelectionRange&&v.bringCaretAtEndOnFocus?(e=p.val().length,t.setSelectionRange(e,e)):p.val(p.val()))}),p.bind("dblclick.maskMoney",function(){var e,t,n=p.get(0);n.setSelectionRange&&v.bringCaretAtEndOnFocus?(t=p.val().length,e=v.doubleClickSelection?0:t,n.setSelectionRange(e,t)):p.val(p.val())}),p.bind("cut.maskMoney",u),p.bind("paste.maskMoney",u),p.bind("mask.maskMoney",o)})}};e.fn.maskMoney=function(t){return l[t]?l[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist on jQuery.maskMoney"):l.init.apply(this,arguments)}}(window.jQuery||window.Zepto);