{"version":3,"file":"js/371-945dd5aa9582fdcf70ff.js","mappings":"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","sources":["webpack://Totalpass/./node_modules/jquery-mask-plugin/dist/jquery.mask.js"],"sourcesContent":["/**\n * jquery.mask.js\n * @version: v1.14.16\n * @author: Igor Escobar\n *\n * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin\n *\n * Copyright (c) 2012 Igor Escobar http://igorescobar.com\n *\n * The MIT License (http://www.opensource.org/licenses/mit-license.php)\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/* jshint laxbreak: true */\n/* jshint maxcomplexity:17 */\n/* global define */\n\n// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere.\n// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js\n(function (factory, jQuery, Zepto) {\n\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports === 'object' && typeof Meteor === 'undefined') {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery || Zepto);\n }\n\n}(function ($) {\n 'use strict';\n\n var Mask = function (el, mask, options) {\n\n var p = {\n invalid: [],\n getCaret: function () {\n try {\n var sel,\n pos = 0,\n ctrl = el.get(0),\n dSel = document.selection,\n cSelStart = ctrl.selectionStart;\n\n // IE Support\n if (dSel && navigator.appVersion.indexOf('MSIE 10') === -1) {\n sel = dSel.createRange();\n sel.moveStart('character', -p.val().length);\n pos = sel.text.length;\n }\n // Firefox support\n else if (cSelStart || cSelStart === '0') {\n pos = cSelStart;\n }\n\n return pos;\n } catch (e) {}\n },\n setCaret: function(pos) {\n try {\n if (el.is(':focus')) {\n var range, ctrl = el.get(0);\n\n // Firefox, WebKit, etc..\n if (ctrl.setSelectionRange) {\n ctrl.setSelectionRange(pos, pos);\n } else { // IE\n range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd('character', pos);\n range.moveStart('character', pos);\n range.select();\n }\n }\n } catch (e) {}\n },\n events: function() {\n el\n .on('keydown.mask', function(e) {\n el.data('mask-keycode', e.keyCode || e.which);\n el.data('mask-previus-value', el.val());\n el.data('mask-previus-caret-pos', p.getCaret());\n p.maskDigitPosMapOld = p.maskDigitPosMap;\n })\n .on($.jMaskGlobals.useInput ? 'input.mask' : 'keyup.mask', p.behaviour)\n .on('paste.mask drop.mask', function() {\n setTimeout(function() {\n el.keydown().keyup();\n }, 100);\n })\n .on('change.mask', function(){\n el.data('changed', true);\n })\n .on('blur.mask', function(){\n if (oldValue !== p.val() && !el.data('changed')) {\n el.trigger('change');\n }\n el.data('changed', false);\n })\n // it's very important that this callback remains in this position\n // otherwhise oldValue it's going to work buggy\n .on('blur.mask', function() {\n oldValue = p.val();\n })\n // select all text on focus\n .on('focus.mask', function (e) {\n if (options.selectOnFocus === true) {\n $(e.target).select();\n }\n })\n // clear the value if it not complete the mask\n .on('focusout.mask', function() {\n if (options.clearIfNotMatch && !regexMask.test(p.val())) {\n p.val('');\n }\n });\n },\n getRegexMask: function() {\n var maskChunks = [], translation, pattern, optional, recursive, oRecursive, r;\n\n for (var i = 0; i < mask.length; i++) {\n translation = jMask.translation[mask.charAt(i)];\n\n if (translation) {\n\n pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, '');\n optional = translation.optional;\n recursive = translation.recursive;\n\n if (recursive) {\n maskChunks.push(mask.charAt(i));\n oRecursive = {digit: mask.charAt(i), pattern: pattern};\n } else {\n maskChunks.push(!optional && !recursive ? pattern : (pattern + '?'));\n }\n\n } else {\n maskChunks.push(mask.charAt(i).replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'));\n }\n }\n\n r = maskChunks.join('');\n\n if (oRecursive) {\n r = r.replace(new RegExp('(' + oRecursive.digit + '(.*' + oRecursive.digit + ')?)'), '($1)?')\n .replace(new RegExp(oRecursive.digit, 'g'), oRecursive.pattern);\n }\n\n return new RegExp(r);\n },\n destroyEvents: function() {\n el.off(['input', 'keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask '));\n },\n val: function(v) {\n var isInput = el.is('input'),\n method = isInput ? 'val' : 'text',\n r;\n\n if (arguments.length > 0) {\n if (el[method]() !== v) {\n el[method](v);\n }\n r = el;\n } else {\n r = el[method]();\n }\n\n return r;\n },\n calculateCaretPosition: function(oldVal) {\n var newVal = p.getMasked(),\n caretPosNew = p.getCaret();\n if (oldVal !== newVal) {\n var caretPosOld = el.data('mask-previus-caret-pos') || 0,\n newValL = newVal.length,\n oldValL = oldVal.length,\n maskDigitsBeforeCaret = 0,\n maskDigitsAfterCaret = 0,\n maskDigitsBeforeCaretAll = 0,\n maskDigitsBeforeCaretAllOld = 0,\n i = 0;\n\n for (i = caretPosNew; i < newValL; i++) {\n if (!p.maskDigitPosMap[i]) {\n break;\n }\n maskDigitsAfterCaret++;\n }\n\n for (i = caretPosNew - 1; i >= 0; i--) {\n if (!p.maskDigitPosMap[i]) {\n break;\n }\n maskDigitsBeforeCaret++;\n }\n\n for (i = caretPosNew - 1; i >= 0; i--) {\n if (p.maskDigitPosMap[i]) {\n maskDigitsBeforeCaretAll++;\n }\n }\n\n for (i = caretPosOld - 1; i >= 0; i--) {\n if (p.maskDigitPosMapOld[i]) {\n maskDigitsBeforeCaretAllOld++;\n }\n }\n\n // if the cursor is at the end keep it there\n if (caretPosNew > oldValL) {\n caretPosNew = newValL * 10;\n } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) {\n if (!p.maskDigitPosMapOld[caretPosNew]) {\n var caretPos = caretPosNew;\n caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll;\n caretPosNew -= maskDigitsBeforeCaret;\n if (p.maskDigitPosMap[caretPosNew]) {\n caretPosNew = caretPos;\n }\n }\n }\n else if (caretPosNew > caretPosOld) {\n caretPosNew += maskDigitsBeforeCaretAll - maskDigitsBeforeCaretAllOld;\n caretPosNew += maskDigitsAfterCaret;\n }\n }\n return caretPosNew;\n },\n behaviour: function(e) {\n e = e || window.event;\n p.invalid = [];\n\n var keyCode = el.data('mask-keycode');\n\n if ($.inArray(keyCode, jMask.byPassKeys) === -1) {\n var newVal = p.getMasked(),\n caretPos = p.getCaret(),\n oldVal = el.data('mask-previus-value') || '';\n\n // this is a compensation to devices/browsers that don't compensate\n // caret positioning the right way\n setTimeout(function() {\n p.setCaret(p.calculateCaretPosition(oldVal));\n }, $.jMaskGlobals.keyStrokeCompensation);\n\n p.val(newVal);\n p.setCaret(caretPos);\n return p.callbacks(e);\n }\n },\n getMasked: function(skipMaskChars, val) {\n var buf = [],\n value = val === undefined ? p.val() : val + '',\n m = 0, maskLen = mask.length,\n v = 0, valLen = value.length,\n offset = 1, addMethod = 'push',\n resetPos = -1,\n maskDigitCount = 0,\n maskDigitPosArr = [],\n lastMaskChar,\n check;\n\n if (options.reverse) {\n addMethod = 'unshift';\n offset = -1;\n lastMaskChar = 0;\n m = maskLen - 1;\n v = valLen - 1;\n check = function () {\n return m > -1 && v > -1;\n };\n } else {\n lastMaskChar = maskLen - 1;\n check = function () {\n return m < maskLen && v < valLen;\n };\n }\n\n var lastUntranslatedMaskChar;\n while (check()) {\n var maskDigit = mask.charAt(m),\n valDigit = value.charAt(v),\n translation = jMask.translation[maskDigit];\n\n if (translation) {\n if (valDigit.match(translation.pattern)) {\n buf[addMethod](valDigit);\n if (translation.recursive) {\n if (resetPos === -1) {\n resetPos = m;\n } else if (m === lastMaskChar && m !== resetPos) {\n m = resetPos - offset;\n }\n\n if (lastMaskChar === resetPos) {\n m -= offset;\n }\n }\n m += offset;\n } else if (valDigit === lastUntranslatedMaskChar) {\n // matched the last untranslated (raw) mask character that we encountered\n // likely an insert offset the mask character from the last entry; fall\n // through and only increment v\n maskDigitCount--;\n lastUntranslatedMaskChar = undefined;\n } else if (translation.optional) {\n m += offset;\n v -= offset;\n } else if (translation.fallback) {\n buf[addMethod](translation.fallback);\n m += offset;\n v -= offset;\n } else {\n p.invalid.push({p: v, v: valDigit, e: translation.pattern});\n }\n v += offset;\n } else {\n if (!skipMaskChars) {\n buf[addMethod](maskDigit);\n }\n\n if (valDigit === maskDigit) {\n maskDigitPosArr.push(v);\n v += offset;\n } else {\n lastUntranslatedMaskChar = maskDigit;\n maskDigitPosArr.push(v + maskDigitCount);\n maskDigitCount++;\n }\n\n m += offset;\n }\n }\n\n var lastMaskCharDigit = mask.charAt(lastMaskChar);\n if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) {\n buf.push(lastMaskCharDigit);\n }\n\n var newVal = buf.join('');\n p.mapMaskdigitPositions(newVal, maskDigitPosArr, valLen);\n return newVal;\n },\n mapMaskdigitPositions: function(newVal, maskDigitPosArr, valLen) {\n var maskDiff = options.reverse ? newVal.length - valLen : 0;\n p.maskDigitPosMap = {};\n for (var i = 0; i < maskDigitPosArr.length; i++) {\n p.maskDigitPosMap[maskDigitPosArr[i] + maskDiff] = 1;\n }\n },\n callbacks: function (e) {\n var val = p.val(),\n changed = val !== oldValue,\n defaultArgs = [val, e, el, options],\n callback = function(name, criteria, args) {\n if (typeof options[name] === 'function' && criteria) {\n options[name].apply(this, args);\n }\n };\n\n callback('onChange', changed === true, defaultArgs);\n callback('onKeyPress', changed === true, defaultArgs);\n callback('onComplete', val.length === mask.length, defaultArgs);\n callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]);\n }\n };\n\n el = $(el);\n var jMask = this, oldValue = p.val(), regexMask;\n\n mask = typeof mask === 'function' ? mask(p.val(), undefined, el, options) : mask;\n\n // public methods\n jMask.mask = mask;\n jMask.options = options;\n jMask.remove = function() {\n var caret = p.getCaret();\n if (jMask.options.placeholder) {\n el.removeAttr('placeholder');\n }\n if (el.data('mask-maxlength')) {\n el.removeAttr('maxlength');\n }\n p.destroyEvents();\n p.val(jMask.getCleanVal());\n p.setCaret(caret);\n return el;\n };\n\n // get value without mask\n jMask.getCleanVal = function() {\n return p.getMasked(true);\n };\n\n // get masked value without the value being in the input or element\n jMask.getMaskedVal = function(val) {\n return p.getMasked(false, val);\n };\n\n jMask.init = function(onlyMask) {\n onlyMask = onlyMask || false;\n options = options || {};\n\n jMask.clearIfNotMatch = $.jMaskGlobals.clearIfNotMatch;\n jMask.byPassKeys = $.jMaskGlobals.byPassKeys;\n jMask.translation = $.extend({}, $.jMaskGlobals.translation, options.translation);\n\n jMask = $.extend(true, {}, jMask, options);\n\n regexMask = p.getRegexMask();\n\n if (onlyMask) {\n p.events();\n p.val(p.getMasked());\n } else {\n if (options.placeholder) {\n el.attr('placeholder' , options.placeholder);\n }\n\n // this is necessary, otherwise if the user submit the form\n // and then press the \"back\" button, the autocomplete will erase\n // the data. Works fine on IE9+, FF, Opera, Safari.\n if (el.data('mask')) {\n el.attr('autocomplete', 'off');\n }\n\n // detect if is necessary let the user type freely.\n // for is a lot faster than forEach.\n for (var i = 0, maxlength = true; i < mask.length; i++) {\n var translation = jMask.translation[mask.charAt(i)];\n if (translation && translation.recursive) {\n maxlength = false;\n break;\n }\n }\n\n if (maxlength) {\n el.attr('maxlength', mask.length).data('mask-maxlength', true);\n }\n\n p.destroyEvents();\n p.events();\n\n var caret = p.getCaret();\n p.val(p.getMasked());\n p.setCaret(caret);\n }\n };\n\n jMask.init(!el.is('input'));\n };\n\n $.maskWatchers = {};\n var HTMLAttributes = function () {\n var input = $(this),\n options = {},\n prefix = 'data-mask-',\n mask = input.attr('data-mask');\n\n if (input.attr(prefix + 'reverse')) {\n options.reverse = true;\n }\n\n if (input.attr(prefix + 'clearifnotmatch')) {\n options.clearIfNotMatch = true;\n }\n\n if (input.attr(prefix + 'selectonfocus') === 'true') {\n options.selectOnFocus = true;\n }\n\n if (notSameMaskObject(input, mask, options)) {\n return input.data('mask', new Mask(this, mask, options));\n }\n },\n notSameMaskObject = function(field, mask, options) {\n options = options || {};\n var maskObject = $(field).data('mask'),\n stringify = JSON.stringify,\n value = $(field).val() || $(field).text();\n try {\n if (typeof mask === 'function') {\n mask = mask(value);\n }\n return typeof maskObject !== 'object' || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask;\n } catch (e) {}\n },\n eventSupported = function(eventName) {\n var el = document.createElement('div'), isSupported;\n\n eventName = 'on' + eventName;\n isSupported = (eventName in el);\n\n if ( !isSupported ) {\n el.setAttribute(eventName, 'return;');\n isSupported = typeof el[eventName] === 'function';\n }\n el = null;\n\n return isSupported;\n };\n\n $.fn.mask = function(mask, options) {\n options = options || {};\n var selector = this.selector,\n globals = $.jMaskGlobals,\n interval = globals.watchInterval,\n watchInputs = options.watchInputs || globals.watchInputs,\n maskFunction = function() {\n if (notSameMaskObject(this, mask, options)) {\n return $(this).data('mask', new Mask(this, mask, options));\n }\n };\n\n $(this).each(maskFunction);\n\n if (selector && selector !== '' && watchInputs) {\n clearInterval($.maskWatchers[selector]);\n $.maskWatchers[selector] = setInterval(function(){\n $(document).find(selector).each(maskFunction);\n }, interval);\n }\n return this;\n };\n\n $.fn.masked = function(val) {\n return this.data('mask').getMaskedVal(val);\n };\n\n $.fn.unmask = function() {\n clearInterval($.maskWatchers[this.selector]);\n delete $.maskWatchers[this.selector];\n return this.each(function() {\n var dataMask = $(this).data('mask');\n if (dataMask) {\n dataMask.remove().removeData('mask');\n }\n });\n };\n\n $.fn.cleanVal = function() {\n return this.data('mask').getCleanVal();\n };\n\n $.applyDataMask = function(selector) {\n selector = selector || $.jMaskGlobals.maskElements;\n var $selector = (selector instanceof $) ? selector : $(selector);\n $selector.filter($.jMaskGlobals.dataMaskAttr).each(HTMLAttributes);\n };\n\n var globals = {\n maskElements: 'input,td,span,div',\n dataMaskAttr: '*[data-mask]',\n dataMask: true,\n watchInterval: 300,\n watchInputs: true,\n keyStrokeCompensation: 10,\n // old versions of chrome dont work great with input event\n useInput: !/Chrome\\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'),\n watchDataMask: false,\n byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91],\n translation: {\n '0': {pattern: /\\d/},\n '9': {pattern: /\\d/, optional: true},\n '#': {pattern: /\\d/, recursive: true},\n 'A': {pattern: /[a-zA-Z0-9]/},\n 'S': {pattern: /[a-zA-Z]/}\n }\n };\n\n $.jMaskGlobals = $.jMaskGlobals || {};\n globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals);\n\n // looking for inputs with data-mask attribute\n if (globals.dataMask) {\n $.applyDataMask();\n }\n\n setInterval(function() {\n if ($.jMaskGlobals.watchDataMask) {\n $.applyDataMask();\n }\n }, globals.watchInterval);\n}, window.jQuery, window.Zepto));\n"],"names":["window","jQuery","Zepto","$","Mask","el","mask","options","p","invalid","getCaret","sel","pos","ctrl","get","dSel","document","selection","cSelStart","selectionStart","navigator","appVersion","indexOf","createRange","moveStart","val","length","text","e","setCaret","is","range","setSelectionRange","createTextRange","collapse","moveEnd","select","events","on","data","keyCode","which","maskDigitPosMapOld","maskDigitPosMap","jMaskGlobals","useInput","behaviour","setTimeout","keydown","keyup","oldValue","trigger","selectOnFocus","target","clearIfNotMatch","regexMask","test","getRegexMask","translation","pattern","optional","recursive","oRecursive","r","maskChunks","i","jMask","charAt","toString","replace","push","digit","join","RegExp","destroyEvents","off","v","method","arguments","calculateCaretPosition","oldVal","newVal","getMasked","caretPosNew","caretPosOld","newValL","oldValL","maskDigitsBeforeCaret","maskDigitsAfterCaret","maskDigitsBeforeCaretAll","maskDigitsBeforeCaretAllOld","caretPos","event","inArray","byPassKeys","keyStrokeCompensation","callbacks","skipMaskChars","lastMaskChar","check","lastUntranslatedMaskChar","buf","value","undefined","m","maskLen","valLen","offset","addMethod","resetPos","maskDigitCount","maskDigitPosArr","reverse","maskDigit","valDigit","match","fallback","lastMaskCharDigit","mapMaskdigitPositions","maskDiff","changed","defaultArgs","callback","name","criteria","args","apply","this","remove","caret","placeholder","removeAttr","getCleanVal","getMaskedVal","init","onlyMask","extend","attr","maxlength","maskWatchers","HTMLAttributes","input","prefix","notSameMaskObject","field","maskObject","stringify","JSON","eventSupported","eventName","isSupported","createElement","setAttribute","fn","selector","globals","interval","watchInterval","watchInputs","maskFunction","each","clearInterval","setInterval","find","masked","unmask","dataMask","removeData","cleanVal","applyDataMask","maskElements","filter","dataMaskAttr","userAgent","watchDataMask"],"sourceRoot":""}