{"version":3,"sources":["jquery.numberMask.js"],"names":[],"mappings":";;;;;;;;CAQA,SAAA,GACA,GAAA,kBAAA,SAAA,OAAA,IAEA,QAAA,UAAA,OACA,IAAA,gBAAA,SAAA,OAAA,QAAA,CACA,GAAA,GAAA,QAAA,SACA,QAAA,QAAA,EAAA,OAGA,GAAA,SAEA,SAAA,GAoHA,MAjHA,GAAA,GAAA,WAAA,SAAA,GACA,GAIA,GAJA,GACA,KAAA,MAAA,YAAA,GAAA,WAAA,EAAA,kBAAA,EACA,eAAA,EAAA,aAAA,KAAA,QAAA,IAGA,EAAA,SAAA,GACA,GAAA,GAAA,EAAA,KAEA,IAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,GAAA,EACA,OAAA,CACA,IAAA,EAAA,CACA,GAAA,GAAA,OAAA,aAAA,GACA,EAAA,EAAA,OAAA,MACA,EAAA,EAAA,EAAA,OAEA,OADA,GAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,KACA,EAAA,eAAA,MAAA,GAAA,EAAA,KAAA,KAGA,EAAA,SAAA,GACA,GAAA,GAAA,EAAA,EAAA,cACA,GAAA,IAAA,EAAA,KAEA,EAAA,SAAA,GACA,GAAA,GAAA,EACA,EAAA,EAAA,EADA,EAAA,EAAA,EAAA,EACA,GAAA,CAwCA,OAtCA,gBAAA,GAAA,gBAAA,gBAAA,GAAA,cACA,EAAA,EAAA,eACA,EAAA,EAAA,eAEA,EAAA,SAAA,UAAA,cAEA,GAAA,EAAA,iBAAA,IACA,EAAA,EAAA,MAAA,OACA,EAAA,EAAA,MAAA,QAAA,QAAA,MAGA,EAAA,EAAA,kBACA,EAAA,eAAA,EAAA,eAKA,EAAA,EAAA,kBACA,EAAA,UAAA,GAEA,EAAA,iBAAA,aAAA,GAAA,GACA,EAAA,EAAA,GAEA,GAAA,EAAA,UAAA,aAAA,GACA,GAAA,EAAA,MAAA,EAAA,GAAA,MAAA,MAAA,OAAA,EAEA,EAAA,iBAAA,WAAA,GAAA,GACA,EAAA,GAEA,GAAA,EAAA,QAAA,aAAA,GACA,GAAA,EAAA,MAAA,EAAA,GAAA,MAAA,MAAA,OAAA,MAKA,EAAA,GAAA,IACA,GAAA,IAGA,MAAA,EACA,IAAA,EACA,gBAAA,IAGA,EAAA,SAAA,GACA,GAAA,GAAA,EAAA,KACA,OAAA,GAAA,KAAA,GACA,EAEA,EAAA,mBAGA,EAAA,WAEA,IAAA,GADA,GAAA,MAAA,EAAA,YAAA,GACA,EAAA,EAAA,EAAA,EAAA,YAAA,OAAA,IACA,GAAA,MAAA,EAAA,YAAA,EAGA,OADA,IAAA,IAaA,IATA,KAAA,KAAA,WAAA,GAAA,KAAA,QAAA,GACA,IACA,EAAA,aACA,WAAA,EAAA,KAAA,EAAA,eACA,EAAA,aAAA,EAAA,cAGA,EAAA,OAAA,EAAA,IAEA,gBAAA,GAAA,SAAA,EAAA,kBAAA,QACA,EAAA,EAAA,YACA,CACA,GAAA,GAAA,EAAA,cAAA,OAAA,GACA,EAAA,IAAA,EAAA,SAAA,EAAA,YAAA,KACA,EAAA,IAAA,EAAA,SAAA,EAAA,YAAA,IAAA,IAAA,SAAA,EAAA,WAAA,IAGA,GAAA,GAAA,QADA,OAAA,EAAA,KACA,EAEA,EAAA,IAAA,GAIA,MAAA,OAEA","file":"jquery.numberMask.min.js","sourcesContent":["/*!\n * jQuery numberMask Plugin v1.0.0\n *\n * Licensed under the MIT License\n * Authors: Konstantin Krivlenia\n * krivlenia@gmail.com\n * Site: https://github.com/Mavrin/maskInput\n */\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof module === \"object\" && module.exports) {\n var $ = require('jquery');\n module.exports = factory($);\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function ($) {\n\n\n$.fn.numberMask = function (options) {\n var settings = {\n type: 'int', beforePoint: 10, afterPoint: 2, defaultValueInput: 0,\n allowNegative: false, decimalMark: ['.'], pattern: ''\n },\n regExp,\n onKeyPress = function (e) {\n var k = e.which;\n\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {//Ignore\n return true;\n } else if (k) {\n var c = String.fromCharCode(k);\n var value = e.target.value;\n var selectionParam = getSelection(e.target);\n value = value.substring(0, selectionParam.start) + c + value.substring(selectionParam.end);\n return (settings.allowNegative && value === '-') || regExp.test(value);\n }\n },\n onInput = function (e) {\n var input = $(e.currentTarget);\n input.val(formattedNumber(input));\n },\n getSelection = function (el) {\n var start = 0, end = 0, normalizedValue, range,\n textInputRange, len, endRange, statusSelection = false;\n\n if (typeof el.selectionStart == \"number\" && typeof el.selectionEnd == \"number\") {\n start = el.selectionStart;\n end = el.selectionEnd;\n } else {\n range = document.selection.createRange();\n\n if (range && range.parentElement() == el) {\n len = el.value.length;\n normalizedValue = el.value.replace(/\\r\\n/g, \"\\n\");\n\n // Create a working TextRange that lives only in the input\n textInputRange = el.createTextRange();\n textInputRange.moveToBookmark(range.getBookmark());\n\n // Check if the start and end of the selection are at the very end\n // of the input, since moveStart/moveEnd doesn't return what we want\n // in those cases\n endRange = el.createTextRange();\n endRange.collapse(false);\n\n if (textInputRange.compareEndPoints(\"StartToEnd\", endRange) > -1) {\n start = end = len;\n } else {\n start = -textInputRange.moveStart(\"character\", -len);\n start += normalizedValue.slice(0, start).split(\"\\n\").length - 1;\n\n if (textInputRange.compareEndPoints(\"EndToEnd\", endRange) > -1) {\n end = len;\n } else {\n end = -textInputRange.moveEnd(\"character\", -len);\n end += normalizedValue.slice(0, end).split(\"\\n\").length - 1;\n }\n }\n }\n }\n if ((start - end) != 0) {\n statusSelection = true;\n }\n return {\n start: start,\n end: end,\n statusSelection: statusSelection\n };\n },\n formattedNumber = function ($input) {\n var val = $input.val();\n if (regExp.test(val)) {\n return val;\n } else {\n return settings.defaultValueInput;\n }\n },\n getDecimalMarksString = function () {\n var decimalMarksString = '(\\\\' + settings.decimalMark[0];\n for (var i = 1; i < settings.decimalMark.length; i++) {\n decimalMarksString += \"|\\\\\" + settings.decimalMark[i];\n }\n decimalMarksString += ')';\n return decimalMarksString;\n };\n\n this.bind('keypress', onKeyPress).bind('input', onInput);\n if (options) {\n if (options.decimalMark) {\n if ($.type(options.decimalMark) === \"string\")\n options.decimalMark = [options.decimalMark];\n }\n\n $.extend(settings, options);\n }\n if ((typeof settings.pattern == \"object\") && (settings.pattern instanceof RegExp)) {\n regExp = settings.pattern;\n } else {\n var negRegExpPart = settings.allowNegative ? \"[-]?\" : '',\n intRegExp = \"^\" + negRegExpPart + \"\\\\d{1,\" + settings.beforePoint + \"}$\",\n decimalRegExp = \"^\" + negRegExpPart + \"\\\\d{1,\" + settings.beforePoint + \"}\" + getDecimalMarksString() + \"\\\\d{0,\" + settings.afterPoint + \"}$\";\n\n if (settings.type == 'int') {\n regExp = new RegExp(intRegExp);\n } else {\n regExp = new RegExp(intRegExp + \"|\" + decimalRegExp);\n }\n }\n\n return this;\n};\nreturn $;\n}));"],"sourceRoot":"/source/"}