{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///krammer.js","webpack:///webpack/bootstrap c29a2bc120daf40c8aee","webpack:///./src/index.js","webpack:///./package.json","webpack:///./src/views/archive.js","webpack:///./src/views/term.js","webpack:///./src/views/date.js","webpack:///./src/views/filter.js","webpack:///./~/inputmask/dist/inputmask/inputmask.date.extensions.js","webpack:///./~/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js","webpack:///./~/inputmask/dist/inputmask/global/window.js","webpack:///./~/inputmask/dist/inputmask/global/document.js","webpack:///./~/inputmask/dist/inputmask/inputmask.js","webpack:///./src/views/predictive.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","VERSION","undefined","_package","_package2","_archive","_archive2","_term","_term2","_date","_date2","_filter","_filter2","_predictive","_predictive2","_Voonto","Voonto","$","ready","then","app","each","serviceUrl","lookup","version","name","description","main","scripts","start","build","report","author","license","devDependencies","babel-cli","babel-core","babel-loader","babel-preset-es2015","chai","chalk","html-webpack-plugin","inputmask","json-loader","mocha","mocha-loader","webpack","webpack-shell-plugin","_classCallCheck","instance","Constructor","TypeError","_formatDate","d","length","_createClass","defineProperties","target","props","i","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","prototype","OR","SEMICOLON","encodeURIComponent","BRACKETS","ACTIVE","_","ArchiveView","container$","inputAll$","find","inputPhrase$","inputAny$","inputWithout$","dayCheckbox$","periodCheckbox$","submit$","startsAtDay$","startsAtMonth$","startsAtYear$","endsAtDay$","endsAtMonth$","endsAtYear$","sectionFilters$","formatFilters$","bindEvents","on","onSubmit","bind","event","checkConstraints","buildFormAction","preventDefault","_this","rules","atLeastOneTextCriteriaIsMandatory","result","forEach","rule","isSatisfied","attribute","text","message","trigger","map","element","val","join","all","phrase","any","without","date","action","base","sections","formats","_ref","trim","split","word","isEmpty","push","is","item$","hasClass","data","concat","attr","document","location","href","TermView","DateView","_inputmaskDate","_inputmaskDate2","DASH","FilterView","region$","section$","subsection$","author$","startDate$","endDate$","placeholder","mask","filterType","textValue","params","url","region","section","subsection","startDate","endDate","reverse","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","apply","Inputmask","isLeapYear","year","isNaN","Date","getDate","extendAliases","dd/mm/yyyy","regex","val1pre","RegExp","val1","val2pre","separator","escapedSeparator","escapeRegex","val2","leapday","yearrange","minyear","maxyear","isInYearRange","chrs","enteredyear","parseInt","toString","slice","enteredyear2","determinebaseyear","hint","currentyear","getFullYear","maxYearPrefix","maxYearPostfix","maxxYear","currentYearPrefix","currentYearAndHint","onKeyDown","e","buffer","caretPos","opts","$input","ctrlKey","keyCode","RIGHT","today","getMonth","getFrontValue","charAt","definition","definitions","cardinality","substr","postValidation","currentResult","dayMonthValue","bufferStr","indexOf","substring","1","validator","maskset","pos","strict","isValid","test","refreshFromBuffer","end","prevalidator","pchrs","2","frontValue","y","yearPrefix","insertMode","autoUnmask","mm/dd/yyyy","alias","yyyy/mm/dd","dd.mm.yyyy","dd-mm-yyyy","mm.dd.yyyy","mm-dd-yyyy","yyyy.mm.dd","yyyy-mm-dd","datetime","hrspre","hrs24","hrs","ampm","mspre","ms","timeseparator","hourFormat","h","tmp","s","t","casing","datetime12","mm/dd/yyyy hh:mm xm","hh:mm t","h:s t","hh:mm:ss","hh:mm","mm/yyyy","shamsi","clearIncomplete","yyyy-mm-dd hh:mm:ss","window","list","elem","len","type","class2type","isWindow","isArraylike","ltype","nodeType","isValidElement","Element","DependencyLib","nodeName","querySelector","eventRegistry","classTypes","nameNdx","toLowerCase","events","handler","_events","endx","nsEvent","ev","namespace","addEventListener","attachEvent","off","offEvents","hndx","hndL","evts","evNdx","nmsp","offEventsL","removeEventListener","detachEvent","splice","evnt","bubbles","cancelable","detail","Array","arguments","createEvent","CustomEvent","initCustomEvent","extend","dispatchEvent","createEventObject","eventType","fireEvent","Event","position","top","offsetTop","left","offsetLeft","isFunction","noop","isArray","inArray","arr","valHooks","isPlainObject","constructor","hasOwnProperty","options","src","copy","copyIsArray","clone","deep","callback","elems","ret","owner","__data","evt","internal","el","refreshValue","defaults","noMasksCache","userOptions","isRTL","numericInput","resolveAlias","aliasStr","aliasDefinition","aliases","generateMaskSet","nocache","generateMask","metadata","regexMask","replace","greedy","repeat","repeatStart","groupmarker","quantifiermarker","masksetDefinition","maskdefKey","masksCache","maskToken","analyseMask","validPositions","_buffer","tests","maskLength","keepStatic","altMask","ndx","msk","alternatormarker","pop","maskScope","actionObj","getMaskTemplate","baseOnInput","minimalPos","includeMode","ndxIntlzr","testPos","maskTemplate","lvp","getLastValidPosition","maxLength","getMaskSet","match","locator","input","nativeDef","getPlaceholder","getTestTemplate","jitMasking","isFinite","fn","def","resetMaskSet","soft","closestTo","before","after","valids","posNdx","psNdx","generatedInput","stripValidPositions","nocheck","startPos","positionsClone","needsValidation","optionality","posMatch","prevMatch","nextMatch","canClearPosition","isMask","positionCanMatchDefinition","determineTestTemplate","guessNextBest","testPositions","lvTest","getTests","lvTestAltArr","alternation","optionalQuantifier","newBlockMarker","checkAlternationMatch","tstPs","getTest","valid","tndx","resolveTestFromToken","ndxInitializer","loopNdx","quantifierRecurse","handleMatch","isFirstMatch","latestMatch","tokenGroup","firstMatch","matches","isQuantifier","resolveNdxInitializer","alternateNdx","targetAlternation","bestMatch","indexPos","vpAlternation","tpAlternation","lmnt","ndxPos","cd","cacheDependency","isGroup","isOptional","optionalToken","insertStop","isAlternator","maltMatches","alternateToken","malternateMatches","currentMatches","loopNdxCnt","altIndex","shift","amndx","currentPos","ndxInitializerClone","altIndexArr","ntndx","ndx1","altMatch","dropMatch","ndx2","altMatch2","source","na","altLocArr","alndx","qt","qndx","quantifier","max","min","filterTests","maskTokens","previousPos","tst","mtndx","getBufferTemplate","getBuffer","noCache","skipOptionalPartCharacter","valResult","caret","toUpperCase","posBefore","String","fromCharCode","SPACE","altArr1","altArr2","naNdx","altArrC","isMatch","naArr","fromSetValid","fromAlternate","isSelection","posObj","selection","begin","_isValid","rslt","loopend","getBufferElement","validatedPos","possibleModifiedBuffer","remove","sort","a","b","insert","refresh","setValidPosition","validTest","j","vps","initialLength","fillMissingNonMask","maskPos","pndx","testTemplate","testsFromPos","radixPointDefinitionSymbol","radixPoint","preValidation","handleRemove","DELETE","currentPosValid","seekNext","nPos","snPos","originalPos","newPos","vp","targetLocator","tll","ps","equality","targetAI","bestMatchAI","tstAI","Math","abs","lastAlt","altPos","prevAltPos","validPos","altNdxs","decisionPos","validPsClone","isValidRslt","lAltPos","decisionTaker","possibilityPos","prevPos","mndx","validInputs","staticInputsBeforePos","staticInputsBeforePosAlternate","verifyValidInput","possibilities","targetLvp","postResult","newBlock","maskL","seekPrevious","writeBuffer","triggerInputEvent","onBeforeWrite","_valueSet","renderColorMask","android","setTimeout","skipInputEvent","returnPL","prevTest","staticAlternations","checkVal","writeOut","nptvl","initiatingEvent","isTemplateMatch","charCodes","inputValue","initialNdx","staticInput","charCode","keypress","which","charCodeAt","nextTest","EventHandlers","keypressEvent","fp","forwardPosition","activeElement","unmaskedvalue","setValueEvent","umValue","unmaskedValue","onUnMask","bufferValue","notranslate","translatePosition","range","setSelectionRange","selectionStart","selectionEnd","getSelection","getRangeAt","commonAncestorContainer","parentNode","startOffset","endOffset","createRange","duplicate","moveStart","_valueGet","scrollCalc","ownerDocument","defaultView","getComputedStyle","currentStyle","fontSize","scrollLeft","scrollWidth","mobile","firstChild","textNode","createTextNode","appendChild","setStart","setEnd","collapse","sel","removeAllRanges","addRange","createTextRange","moveEnd","select","determineLastRequiredPosition","returnDefinition","bl","positions","lvTestAlt","l","clearOptionalTail","rl","lv","isComplete","complete","lrp","aml","k","BACKSPACE","pend","groupSeparator","initializeColorMask","findCaretPos","clientx","createElement","style","computedStyle","textTransform","letterSpacing","height","width","visibility","whiteSpace","body","itl","inputText","previousWidth","innerHTML","offsetWidth","offset1","offset2","removeChild","colorMask","offset","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","offsetHeight","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","lineHeight","zIndex","webkitAppearance","mozAppearance","Appearance","backgroundColor","color","clientX","clickEvent","shiftKey","handleStatic","isStatic","undoValue","$el","valueBuffer","skipKeyPressEvent","ignorable","mouseEnter","EventRuler","eventName","eventHandler","imOpts","disabled","readOnly","tabThrough","TAB","iemobile","iphone","that","args","returnVal","stopPropagation","form","evArr","keydownEvent","BACKSPACE_SAFARI","X","evName","isSupported","setAttribute","END","PAGE_DOWN","HOME","PAGE_UP","undoOnEscape","ESCAPE","altKey","INSERT","LEFT","ignorables","checkval","metaKey","ENTER","writeOutBuffer","onKeyValidation","pasteEvent","tempValue","originalEvent","valueBeforeCaret","valueAfterCaret","clipboardData","getData","pasteValue","onBeforePaste","inputFallBackEvent","inputChar","stickyParts","bufferTemplate","onBeforeMask","currentValue","pos1","pos2","clearMaskOnLostFocus","focusEvent","nptValue","showMaskOnFocus","showMaskOnHover","positionCaretOnTab","mouseleaveEvent","getAttribute","tabbed","doRadixFocus","clickPos","radixPos","selectedCaret","positionCaretOnClick","clickPosition","lvclickPosition","lastPosition","dblclickEvent","cutEvent","clipData","setData","execCommand","blurEvent","mouseenterEvent","submitEvent","removeMaskOnSubmit","resetEvent","elementType","tagName","supportsInputType","isContentEditable","npt","getter","nullable","valueGet","setter","valueSet","__valueGet","noValuePatching","getOwnPropertyDescriptor","getPrototypeOf","__proto__","object","valueProperty","get","set","textContent","__lookupGetter__","__lookupSetter__","__defineGetter__","__defineSetter__","__valueSet","overruleRTL","inputmaskpatch","valhookGet","valhookSet","$elem","inputmode","androidHack","oncomplete","onincomplete","oncleared","inputEventOnly","initialValue","lmib","maskTarget","mtdt","ua","navigator","userAgent","dataAttribute","optionalmarker","escapeChar","pastedValue","rightAlign","staticDefinitionSymbol","9","definitionSymbol","*","importAttributeOptions","importOption","option","optionData","dir","textAlign","removeAttribute","dataoptions","attrOptions","JSON","parse","getElementById","querySelectorAll","scopedOpts","noremask","getemptymask","hasMaskedValue","getmetadata","format","MaskToken","openGroup","alternatorGroup","insertTestDefinition","mtoken","escaped","maskdef","prevalidators","prevalidatorsL","verifyGroupMarker","token","nextToken","defaultCase","openenings","currentOpeningToken","alternator","currentToken","reverseTokens","intMatch","st","openingToken","lastMatch","groupToken","tokenizer","regexTokenizer","exec","mq","mq0","mq1","subToken","extendDefaults","extendDefinitions","unmask","str","specials","ALT","CAPS_LOCK","COMMA","COMMAND","COMMAND_LEFT","COMMAND_RIGHT","CONTROL","DOWN","MENU","NUMPAD_ADD","NUMPAD_DECIMAL","NUMPAD_DIVIDE","NUMPAD_ENTER","NUMPAD_MULTIPLY","NUMPAD_SUBTRACT","PERIOD","SHIFT","UP","WINDOWS","_search","_input$","_results$","empty","ajax","search","append","RESULT_TEMPLATE","DEBOUNCE_TIMEOUT","PredictiveSearch","debounce"],"mappings":"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","file":"krammer.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Krammer\"] = factory();\n\telse\n\t\troot[\"Krammer\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Krammer\"] = factory();\n\telse\n\t\troot[\"Krammer\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.VERSION = undefined;\n\t\n\tvar _package = __webpack_require__(1);\n\t\n\tvar _package2 = _interopRequireDefault(_package);\n\t\n\tvar _archive = __webpack_require__(2);\n\t\n\tvar _archive2 = _interopRequireDefault(_archive);\n\t\n\tvar _term = __webpack_require__(3);\n\t\n\tvar _term2 = _interopRequireDefault(_term);\n\t\n\tvar _date = __webpack_require__(4);\n\t\n\tvar _date2 = _interopRequireDefault(_date);\n\t\n\tvar _filter = __webpack_require__(5);\n\t\n\tvar _filter2 = _interopRequireDefault(_filter);\n\t\n\tvar _predictive = __webpack_require__(11);\n\t\n\tvar _predictive2 = _interopRequireDefault(_predictive);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar _Voonto = Voonto,\n\t $ = _Voonto.$;\n\t\n\t\n\tVoonto.ready.then(function (app) {\n\t $('[data-voc-krammer-archive]').each(function () {\n\t new _archive2.default($(this));\n\t });\n\t $('[data-voc-krammer-term]').each(function () {\n\t new _term2.default($(this));\n\t });\n\t $('[data-voc-krammer-date]').each(function () {\n\t new _date2.default($(this));\n\t });\n\t $('[data-voc-krammer-filter]').each(function () {\n\t new _filter2.default($(this));\n\t });\n\t $('[data-voc-krammer-predictive]').each(function () {\n\t new _predictive2.default($(this), { serviceUrl: app.lookup('vocento.config.krammer.predictiveUrl') });\n\t });\n\t});\n\t\n\tvar VERSION = exports.VERSION = _package2.default.version;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = {\n\t\t\"name\": \"krammer\",\n\t\t\"version\": \"1.0.4\",\n\t\t\"description\": \"\",\n\t\t\"main\": \"src/index.js\",\n\t\t\"scripts\": {\n\t\t\t\"start\": \"webpack-dev-server\",\n\t\t\t\"build\": \"./node_modules/webpack/bin/webpack.js\",\n\t\t\t\"report\": \"plato -r -d report -l .jshintrc -t krammer src\"\n\t\t},\n\t\t\"author\": \"Iván Pérez \",\n\t\t\"license\": \"SEE LICENSE IN LICENSE.md\",\n\t\t\"devDependencies\": {\n\t\t\t\"babel-cli\": \"^6.24.1\",\n\t\t\t\"babel-core\": \"^6.17.0\",\n\t\t\t\"babel-loader\": \"^6.2.5\",\n\t\t\t\"babel-preset-es2015\": \"^6.16.0\",\n\t\t\t\"chai\": \"^3.5.0\",\n\t\t\t\"chalk\": \"^1.1.3\",\n\t\t\t\"html-webpack-plugin\": \"^2.24.1\",\n\t\t\t\"inputmask\": \"^3.3.6\",\n\t\t\t\"json-loader\": \"^0.5.4\",\n\t\t\t\"mocha\": \"^3.1.0\",\n\t\t\t\"mocha-loader\": \"^1.0.0\",\n\t\t\t\"webpack\": \"^1.13.3\",\n\t\t\t\"webpack-shell-plugin\": \"^0.4.3\"\n\t\t}\n\t};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar OR = 'OR',\n\t SEMICOLON = encodeURIComponent(';'),\n\t BRACKETS = encodeURIComponent('[]'),\n\t ACTIVE = 'active';\n\t\n\tvar _Voonto = Voonto,\n\t $ = _Voonto.$,\n\t _ = _Voonto._;\n\t\n\tvar ArchiveView = function () {\n\t function ArchiveView(container$) {\n\t _classCallCheck(this, ArchiveView);\n\t\n\t this.container$ = container$;\n\t this.inputAll$ = container$.find('input[data-voc-krammer-archive-all-words]');\n\t this.inputPhrase$ = container$.find('input[data-voc-krammer-archive-exact-phrase]');\n\t this.inputAny$ = container$.find('input[data-voc-krammer-archive-any-words]');\n\t this.inputWithout$ = container$.find('input[data-voc-krammer-archive-without-words]');\n\t this.dayCheckbox$ = container$.find('input[data-voc-krammer-archive-day]');\n\t this.periodCheckbox$ = container$.find('input[data-voc-krammer-archive-period]');\n\t this.submit$ = container$.find('input[data-voc-krammer-archive-submit]');\n\t this.startsAtDay$ = container$.find('input[data-voc-krammer-archive-startsat-day]');\n\t this.startsAtMonth$ = container$.find('input[data-voc-krammer-archive-startsat-month]');\n\t this.startsAtYear$ = container$.find('input[data-voc-krammer-archive-startsat-year]');\n\t this.endsAtDay$ = container$.find('input[data-voc-krammer-archive-endsat-day]');\n\t this.endsAtMonth$ = container$.find('input[data-voc-krammer-archive-endsat-month]');\n\t this.endsAtYear$ = container$.find('input[data-voc-krammer-archive-endsat-year]');\n\t this.sectionFilters$ = container$.find('[data-voc-krammer-archive-section-filter]');\n\t this.formatFilters$ = container$.find('[data-voc-krammer-archive-format-filter]');\n\t\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(ArchiveView, [{\n\t key: 'bindEvents',\n\t value: function bindEvents() {\n\t this.container$.on('submit', this.onSubmit.bind(this));\n\t }\n\t }, {\n\t key: 'onSubmit',\n\t value: function onSubmit(event) {\n\t if (!this.checkConstraints()) {\n\t event.preventDefault();\n\t\n\t return false;\n\t }\n\t\n\t return this.buildFormAction();\n\t }\n\t }, {\n\t key: 'checkConstraints',\n\t value: function checkConstraints() {\n\t var _this = this;\n\t\n\t var rules = [this.atLeastOneTextCriteriaIsMandatory()];\n\t var result = true;\n\t\n\t rules.forEach(function (rule) {\n\t if (!rule.isSatisfied) {\n\t _this.container$.find('[' + rule.attribute + ']').text(rule.message);\n\t _this.container$.trigger(\"invalid\", [rule]);\n\t result = false;\n\t }\n\t });\n\t\n\t return result;\n\t }\n\t }, {\n\t key: 'atLeastOneTextCriteriaIsMandatory',\n\t value: function atLeastOneTextCriteriaIsMandatory() {\n\t return {\n\t 'message': 'Al menos un criterio de texto es obligatorio.',\n\t 'attribute': 'voc-krammer-archive-at-least-one-criteria-is-mandatory',\n\t 'isSatisfied': [this.inputAll$, this.inputPhrase$, this.inputAny$, this.inputWithout$].map(function (element) {\n\t return $(element).val();\n\t }).join(\"\").length > 0\n\t };\n\t }\n\t }, {\n\t key: 'buildFormAction',\n\t value: function buildFormAction() {\n\t var all,\n\t phrase,\n\t any,\n\t without,\n\t date,\n\t action,\n\t sections = [],\n\t formats = [],\n\t base;\n\t\n\t var _ref = [$.trim(this.inputAll$.val()), '\"' + $.trim(this.inputPhrase$.val()) + '\"', $.trim(this.inputAny$.val()).split(' ').join(' ' + OR + ' '), $.trim(this.inputWithout$.val()).split(' ').map(function (word) {\n\t return '-' + word;\n\t }).join(' ')];\n\t all = _ref[0];\n\t phrase = _ref[1];\n\t any = _ref[2];\n\t without = _ref[3];\n\t\n\t\n\t action = [];\n\t !_.isEmpty(all) && action.push(all);\n\t phrase !== '\"\"' && action.push(phrase);\n\t !_.isEmpty(any) && action.push(any);\n\t without !== '-' && action.push(without);\n\t\n\t if (this.dayCheckbox$.is(':checked')) {\n\t date = 'date=' + this.startsAtYear$.val() + _formatDate(this.startsAtMonth$.val()) + _formatDate(this.startsAtDay$.val());\n\t } else {\n\t date = 'date=' + this.startsAtYear$.val() + _formatDate(this.startsAtMonth$.val()) + _formatDate(this.startsAtDay$.val());\n\t date += '' + SEMICOLON + this.endsAtYear$.val() + _formatDate(this.endsAtMonth$.val()) + _formatDate(this.endsAtDay$.val());\n\t }\n\t\n\t this.sectionFilters$.each(function () {\n\t var item$ = $(this);\n\t if (item$.hasClass(ACTIVE)) {\n\t sections.push('section' + BRACKETS + '=' + item$.data('voc-krammer-archive-section-filter'));\n\t }\n\t });\n\t\n\t this.formatFilters$.each(function () {\n\t var item$ = $(this);\n\t if (item$.hasClass(ACTIVE)) {\n\t formats.push('format' + BRACKETS + '=' + item$.data('voc-krammer-archive-format-filter'));\n\t }\n\t });\n\t\n\t action = encodeURIComponent(action.join(' ')) + '.html';\n\t action += '?' + date + '&' + sections.concat(formats).join('&');\n\t base = this.container$.attr('action') || '';\n\t\n\t document.location.href = '' + base + action;\n\t\n\t return false;\n\t }\n\t }]);\n\t\n\t return ArchiveView;\n\t}();\n\t\n\texports.default = ArchiveView;\n\t\n\t/* Private */\n\t\n\tfunction _formatDate(d) {\n\t if (d < 10 && d.length === 1) {\n\t d = '0' + d;\n\t }\n\t return d;\n\t}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar _Voonto = Voonto,\n\t $ = _Voonto.$;\n\t\n\tvar TermView = function () {\n\t function TermView(container$) {\n\t _classCallCheck(this, TermView);\n\t\n\t this.container$ = container$;\n\t this.inputAll$ = container$.find('input[data-voc-krammer-term-all-words]');\n\t this.submit$ = container$.find('button[data-voc-krammer-term-submit]');\n\t\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(TermView, [{\n\t key: 'bindEvents',\n\t value: function bindEvents() {\n\t this.container$.on('submit', this.buildFormAction.bind(this));\n\t }\n\t }, {\n\t key: 'buildFormAction',\n\t value: function buildFormAction() {\n\t var all, action, base;\n\t\n\t all = $.trim(this.inputAll$.val());\n\t\n\t action = encodeURIComponent(all) + '.html';\n\t base = this.container$.attr('action') || '';\n\t\n\t document.location.href = '' + base + action;\n\t\n\t return false;\n\t }\n\t }]);\n\t\n\t return TermView;\n\t}();\n\t\n\texports.default = TermView;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar DateView = function () {\n\t function DateView(container$) {\n\t _classCallCheck(this, DateView);\n\t\n\t this.container$ = container$;\n\t this.dayCheckbox$ = container$.find('input[data-voc-krammer-date-day]');\n\t this.periodCheckbox$ = container$.find('input[data-voc-krammer-date-period]');\n\t this.submit$ = container$.find('input[data-voc-krammer-date-submit]');\n\t this.startsAtDay$ = container$.find('input[data-voc-krammer-date-startsat-day]');\n\t this.startsAtMonth$ = container$.find('input[data-voc-krammer-date-startsat-month]');\n\t this.startsAtYear$ = container$.find('input[data-voc-krammer-date-startsat-year]');\n\t this.endsAtDay$ = container$.find('input[data-voc-krammer-date-endsat-day]');\n\t this.endsAtMonth$ = container$.find('input[data-voc-krammer-date-endsat-month]');\n\t this.endsAtYear$ = container$.find('input[data-voc-krammer-date-endsat-year]');\n\t\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(DateView, [{\n\t key: 'bindEvents',\n\t value: function bindEvents() {\n\t this.container$.on('submit', this.buildFormAction.bind(this));\n\t }\n\t }, {\n\t key: 'buildFormAction',\n\t value: function buildFormAction() {\n\t var date, action, base;\n\t\n\t if (this.dayCheckbox$.is(':checked')) {\n\t date = '' + this.startsAtYear$.val() + _formatDate(this.startsAtMonth$.val()) + _formatDate(this.startsAtDay$.val());\n\t } else {\n\t date = '' + this.startsAtYear$.val() + _formatDate(this.startsAtMonth$.val()) + _formatDate(this.startsAtDay$.val());\n\t date += '-' + this.endsAtYear$.val() + _formatDate(this.endsAtMonth$.val()) + _formatDate(this.endsAtDay$.val());\n\t }\n\t\n\t action = date + '.html';\n\t base = this.container$.attr('action') || '';\n\t\n\t document.location.href = '' + base + action;\n\t\n\t return false;\n\t }\n\t }]);\n\t\n\t return DateView;\n\t}();\n\t\n\texports.default = DateView;\n\t\n\t/* Private */\n\t\n\tfunction _formatDate(d) {\n\t if (d < 10 && d.length === 1) {\n\t d = '0' + d;\n\t }\n\t return d;\n\t}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _inputmaskDate = __webpack_require__(6);\n\t\n\tvar _inputmaskDate2 = _interopRequireDefault(_inputmaskDate);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar SEMICOLON = encodeURIComponent(';'),\n\t BRACKETS = encodeURIComponent('[]'),\n\t DASH = '-';\n\t\n\tvar FilterView = function () {\n\t function FilterView(container$) {\n\t _classCallCheck(this, FilterView);\n\t\n\t this.container$ = container$;\n\t this.region$ = container$.find('select[data-voc-krammer-filter-region]');\n\t this.section$ = container$.find('select[data-voc-krammer-filter-section]');\n\t this.subsection$ = container$.find('select[data-voc-krammer-filter-subsection]');\n\t this.author$ = container$.find('select[data-voc-krammer-filter-author]');\n\t this.startDate$ = container$.find('input[data-voc-krammer-filter-date-start]');\n\t this.endDate$ = container$.find('input[data-voc-krammer-filter-date-end]');\n\t this.submit$ = container$.find('input[data-voc-krammer-filter-submit]');\n\t\n\t (0, _inputmaskDate2.default)('dd-mm-yyyy', { placeholder: 'dd-mm-aaaa' }).mask(this.startDate$);\n\t (0, _inputmaskDate2.default)('dd-mm-yyyy', { placeholder: 'dd-mm-aaaa' }).mask(this.endDate$);\n\t\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(FilterView, [{\n\t key: 'bindEvents',\n\t value: function bindEvents() {\n\t this.container$.on('submit', this.buildFormAction.bind(this));\n\t }\n\t }, {\n\t key: 'buildFormAction',\n\t value: function buildFormAction() {\n\t var action,\n\t filterType,\n\t textValue,\n\t params,\n\t url,\n\t region = this.region$.val(),\n\t section = this.section$.val(),\n\t subsection = this.subsection$.val(),\n\t author = this.author$.val(),\n\t startDate = this.startDate$.val().trim(),\n\t endDate = this.endDate$.val().trim();\n\t\n\t region = region ? '&edition_filter' + BRACKETS + '=' + region : '';\n\t section = section ? '§ion' + BRACKETS + '=' + section : '';\n\t subsection = subsection ? '&subsection' + BRACKETS + '=' + subsection : '';\n\t author = author ? '&author' + BRACKETS + '=' + author : '';\n\t\n\t filterType = this.container$.data('voc-krammer-filter');\n\t action = this.container$.attr('action') || '';\n\t\n\t if (filterType === 'date') {\n\t startDate = startDate ? '' + startDate.split('-').reverse().join('') : '';\n\t endDate = endDate ? '' + DASH + endDate.split('-').reverse().join('') : '';\n\t params = '' + startDate + endDate + '.html?filter=true' + region + section + subsection + author;\n\t } else {\n\t textValue = this.container$.data('voc-krammer-filter-value');\n\t startDate = startDate ? '&date=' + startDate.split('-').reverse().join('') : '';\n\t endDate = endDate ? '' + SEMICOLON + endDate.split('-').reverse().join('') : '';\n\t params = textValue + '?filter=true' + region + section + subsection + author + startDate + endDate;\n\t }\n\t\n\t url = '' + action + params;\n\t document.location.href = url;\n\t\n\t return false;\n\t }\n\t }]);\n\t\n\t return FilterView;\n\t}();\n\t\n\texports.default = FilterView;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t* inputmask.date.extensions.js\n\t* https://github.com/RobinHerbots/Inputmask\n\t* Copyright (c) 2010 - 2017 Robin Herbots\n\t* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n\t* Version: 3.3.6\n\t*/\n\t\n\t!function(factory) {\n\t true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(7), __webpack_require__(10) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : \"object\" == typeof exports ? module.exports = factory(require(\"./dependencyLibs/inputmask.dependencyLib\"), require(\"./inputmask\")) : factory(window.dependencyLib || jQuery, window.Inputmask);\n\t}(function($, Inputmask) {\n\t function isLeapYear(year) {\n\t return isNaN(year) || 29 === new Date(year, 2, 0).getDate();\n\t }\n\t return Inputmask.extendAliases({\n\t \"dd/mm/yyyy\": {\n\t mask: \"1/2/y\",\n\t placeholder: \"dd/mm/yyyy\",\n\t regex: {\n\t val1pre: new RegExp(\"[0-3]\"),\n\t val1: new RegExp(\"0[1-9]|[12][0-9]|3[01]\"),\n\t val2pre: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[1-9]|[12][0-9]|3[01])\" + escapedSeparator + \"[01])\");\n\t },\n\t val2: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[1-9]|[12][0-9])\" + escapedSeparator + \"(0[1-9]|1[012]))|(30\" + escapedSeparator + \"(0[13-9]|1[012]))|(31\" + escapedSeparator + \"(0[13578]|1[02]))\");\n\t }\n\t },\n\t leapday: \"29/02/\",\n\t separator: \"/\",\n\t yearrange: {\n\t minyear: 1900,\n\t maxyear: 2099\n\t },\n\t isInYearRange: function(chrs, minyear, maxyear) {\n\t if (isNaN(chrs)) return !1;\n\t var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))), enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length)));\n\t return !isNaN(enteredyear) && (minyear <= enteredyear && enteredyear <= maxyear) || !isNaN(enteredyear2) && (minyear <= enteredyear2 && enteredyear2 <= maxyear);\n\t },\n\t determinebaseyear: function(minyear, maxyear, hint) {\n\t var currentyear = new Date().getFullYear();\n\t if (minyear > currentyear) return minyear;\n\t if (maxyear < currentyear) {\n\t for (var maxYearPrefix = maxyear.toString().slice(0, 2), maxYearPostfix = maxyear.toString().slice(2, 4); maxyear < maxYearPrefix + hint; ) maxYearPrefix--;\n\t var maxxYear = maxYearPrefix + maxYearPostfix;\n\t return minyear > maxxYear ? minyear : maxxYear;\n\t }\n\t if (minyear <= currentyear && currentyear <= maxyear) {\n\t for (var currentYearPrefix = currentyear.toString().slice(0, 2); maxyear < currentYearPrefix + hint; ) currentYearPrefix--;\n\t var currentYearAndHint = currentYearPrefix + hint;\n\t return currentYearAndHint < minyear ? minyear : currentYearAndHint;\n\t }\n\t return currentyear;\n\t },\n\t onKeyDown: function(e, buffer, caretPos, opts) {\n\t var $input = $(this);\n\t if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n\t var today = new Date();\n\t $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()), \n\t $input.trigger(\"setvalue\");\n\t }\n\t },\n\t getFrontValue: function(mask, buffer, opts) {\n\t for (var start = 0, length = 0, i = 0; i < mask.length && \"2\" !== mask.charAt(i); i++) {\n\t var definition = opts.definitions[mask.charAt(i)];\n\t definition ? (start += length, length = definition.cardinality) : length++;\n\t }\n\t return buffer.join(\"\").substr(start, length);\n\t },\n\t postValidation: function(buffer, currentResult, opts) {\n\t var dayMonthValue, year, bufferStr = buffer.join(\"\");\n\t return 0 === opts.mask.indexOf(\"y\") ? (year = bufferStr.substr(0, 4), dayMonthValue = bufferStr.substring(4, 10)) : (year = bufferStr.substring(6, 10), \n\t dayMonthValue = bufferStr.substr(0, 6)), currentResult && (dayMonthValue !== opts.leapday || isLeapYear(year));\n\t },\n\t definitions: {\n\t \"1\": {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t var isValid = opts.regex.val1.test(chrs);\n\t return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === \"-./\".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val1.test(\"0\" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = \"0\", \n\t {\n\t refreshFromBuffer: {\n\t start: pos - 1,\n\t end: pos\n\t },\n\t pos: pos,\n\t c: chrs.charAt(0)\n\t });\n\t },\n\t cardinality: 2,\n\t prevalidator: [ {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t var pchrs = chrs;\n\t isNaN(maskset.buffer[pos + 1]) || (pchrs += maskset.buffer[pos + 1]);\n\t var isValid = 1 === pchrs.length ? opts.regex.val1pre.test(pchrs) : opts.regex.val1.test(pchrs);\n\t if (!strict && !isValid) {\n\t if (isValid = opts.regex.val1.test(chrs + \"0\")) return maskset.buffer[pos] = chrs, \n\t maskset.buffer[++pos] = \"0\", {\n\t pos: pos,\n\t c: \"0\"\n\t };\n\t if (isValid = opts.regex.val1.test(\"0\" + chrs)) return maskset.buffer[pos] = \"0\", \n\t pos++, {\n\t pos: pos\n\t };\n\t }\n\t return isValid;\n\t },\n\t cardinality: 1\n\t } ]\n\t },\n\t \"2\": {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);\n\t -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = \"01\" + opts.separator);\n\t var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs);\n\t return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === \"-./\".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val2(opts.separator).test(frontValue + \"0\" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = \"0\", \n\t {\n\t refreshFromBuffer: {\n\t start: pos - 1,\n\t end: pos\n\t },\n\t pos: pos,\n\t c: chrs.charAt(0)\n\t });\n\t },\n\t cardinality: 2,\n\t prevalidator: [ {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t isNaN(maskset.buffer[pos + 1]) || (chrs += maskset.buffer[pos + 1]);\n\t var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);\n\t -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = \"01\" + opts.separator);\n\t var isValid = 1 === chrs.length ? opts.regex.val2pre(opts.separator).test(frontValue + chrs) : opts.regex.val2(opts.separator).test(frontValue + chrs);\n\t return strict || isValid || !(isValid = opts.regex.val2(opts.separator).test(frontValue + \"0\" + chrs)) ? isValid : (maskset.buffer[pos] = \"0\", \n\t pos++, {\n\t pos: pos\n\t });\n\t },\n\t cardinality: 1\n\t } ]\n\t },\n\t y: {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\n\t },\n\t cardinality: 4,\n\t prevalidator: [ {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\n\t if (!strict && !isValid) {\n\t var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + \"0\").toString().slice(0, 1);\n\t if (isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), \n\t {\n\t pos: pos\n\t };\n\t if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + \"0\").toString().slice(0, 2), \n\t isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), \n\t maskset.buffer[pos++] = yearPrefix.charAt(1), {\n\t pos: pos\n\t };\n\t }\n\t return isValid;\n\t },\n\t cardinality: 1\n\t }, {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\n\t if (!strict && !isValid) {\n\t var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2);\n\t if (isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(1), \n\t {\n\t pos: pos\n\t };\n\t if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2), \n\t isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos - 1] = yearPrefix.charAt(0), \n\t maskset.buffer[pos++] = yearPrefix.charAt(1), maskset.buffer[pos++] = chrs.charAt(0), \n\t {\n\t refreshFromBuffer: {\n\t start: pos - 3,\n\t end: pos\n\t },\n\t pos: pos\n\t };\n\t }\n\t return isValid;\n\t },\n\t cardinality: 2\n\t }, {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\n\t },\n\t cardinality: 3\n\t } ]\n\t }\n\t },\n\t insertMode: !1,\n\t autoUnmask: !1\n\t },\n\t \"mm/dd/yyyy\": {\n\t placeholder: \"mm/dd/yyyy\",\n\t alias: \"dd/mm/yyyy\",\n\t regex: {\n\t val2pre: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[13-9]|1[012])\" + escapedSeparator + \"[0-3])|(02\" + escapedSeparator + \"[0-2])\");\n\t },\n\t val2: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])\" + escapedSeparator + \"30)|((0[13578]|1[02])\" + escapedSeparator + \"31)\");\n\t },\n\t val1pre: new RegExp(\"[01]\"),\n\t val1: new RegExp(\"0[1-9]|1[012]\")\n\t },\n\t leapday: \"02/29/\",\n\t onKeyDown: function(e, buffer, caretPos, opts) {\n\t var $input = $(this);\n\t if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n\t var today = new Date();\n\t $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), \n\t $input.trigger(\"setvalue\");\n\t }\n\t }\n\t },\n\t \"yyyy/mm/dd\": {\n\t mask: \"y/1/2\",\n\t placeholder: \"yyyy/mm/dd\",\n\t alias: \"mm/dd/yyyy\",\n\t leapday: \"/02/29\",\n\t onKeyDown: function(e, buffer, caretPos, opts) {\n\t var $input = $(this);\n\t if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n\t var today = new Date();\n\t $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()), \n\t $input.trigger(\"setvalue\");\n\t }\n\t }\n\t },\n\t \"dd.mm.yyyy\": {\n\t mask: \"1.2.y\",\n\t placeholder: \"dd.mm.yyyy\",\n\t leapday: \"29.02.\",\n\t separator: \".\",\n\t alias: \"dd/mm/yyyy\"\n\t },\n\t \"dd-mm-yyyy\": {\n\t mask: \"1-2-y\",\n\t placeholder: \"dd-mm-yyyy\",\n\t leapday: \"29-02-\",\n\t separator: \"-\",\n\t alias: \"dd/mm/yyyy\"\n\t },\n\t \"mm.dd.yyyy\": {\n\t mask: \"1.2.y\",\n\t placeholder: \"mm.dd.yyyy\",\n\t leapday: \"02.29.\",\n\t separator: \".\",\n\t alias: \"mm/dd/yyyy\"\n\t },\n\t \"mm-dd-yyyy\": {\n\t mask: \"1-2-y\",\n\t placeholder: \"mm-dd-yyyy\",\n\t leapday: \"02-29-\",\n\t separator: \"-\",\n\t alias: \"mm/dd/yyyy\"\n\t },\n\t \"yyyy.mm.dd\": {\n\t mask: \"y.1.2\",\n\t placeholder: \"yyyy.mm.dd\",\n\t leapday: \".02.29\",\n\t separator: \".\",\n\t alias: \"yyyy/mm/dd\"\n\t },\n\t \"yyyy-mm-dd\": {\n\t mask: \"y-1-2\",\n\t placeholder: \"yyyy-mm-dd\",\n\t leapday: \"-02-29\",\n\t separator: \"-\",\n\t alias: \"yyyy/mm/dd\"\n\t },\n\t datetime: {\n\t mask: \"1/2/y h:s\",\n\t placeholder: \"dd/mm/yyyy hh:mm\",\n\t alias: \"dd/mm/yyyy\",\n\t regex: {\n\t hrspre: new RegExp(\"[012]\"),\n\t hrs24: new RegExp(\"2[0-4]|1[3-9]\"),\n\t hrs: new RegExp(\"[01][0-9]|2[0-4]\"),\n\t ampm: new RegExp(\"^[a|p|A|P][m|M]\"),\n\t mspre: new RegExp(\"[0-5]\"),\n\t ms: new RegExp(\"[0-5][0-9]\")\n\t },\n\t timeseparator: \":\",\n\t hourFormat: \"24\",\n\t definitions: {\n\t h: {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t if (\"24\" === opts.hourFormat && 24 === parseInt(chrs, 10)) return maskset.buffer[pos - 1] = \"0\", \n\t maskset.buffer[pos] = \"0\", {\n\t refreshFromBuffer: {\n\t start: pos - 1,\n\t end: pos\n\t },\n\t c: \"0\"\n\t };\n\t var isValid = opts.regex.hrs.test(chrs);\n\t if (!strict && !isValid && (chrs.charAt(1) === opts.timeseparator || -1 !== \"-.:\".indexOf(chrs.charAt(1))) && (isValid = opts.regex.hrs.test(\"0\" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = \"0\", \n\t maskset.buffer[pos] = chrs.charAt(0), pos++, {\n\t refreshFromBuffer: {\n\t start: pos - 2,\n\t end: pos\n\t },\n\t pos: pos,\n\t c: opts.timeseparator\n\t };\n\t if (isValid && \"24\" !== opts.hourFormat && opts.regex.hrs24.test(chrs)) {\n\t var tmp = parseInt(chrs, 10);\n\t return 24 === tmp ? (maskset.buffer[pos + 5] = \"a\", maskset.buffer[pos + 6] = \"m\") : (maskset.buffer[pos + 5] = \"p\", \n\t maskset.buffer[pos + 6] = \"m\"), tmp -= 12, tmp < 10 ? (maskset.buffer[pos] = tmp.toString(), \n\t maskset.buffer[pos - 1] = \"0\") : (maskset.buffer[pos] = tmp.toString().charAt(1), \n\t maskset.buffer[pos - 1] = tmp.toString().charAt(0)), {\n\t refreshFromBuffer: {\n\t start: pos - 1,\n\t end: pos + 6\n\t },\n\t c: maskset.buffer[pos]\n\t };\n\t }\n\t return isValid;\n\t },\n\t cardinality: 2,\n\t prevalidator: [ {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t var isValid = opts.regex.hrspre.test(chrs);\n\t return strict || isValid || !(isValid = opts.regex.hrs.test(\"0\" + chrs)) ? isValid : (maskset.buffer[pos] = \"0\", \n\t pos++, {\n\t pos: pos\n\t });\n\t },\n\t cardinality: 1\n\t } ]\n\t },\n\t s: {\n\t validator: \"[0-5][0-9]\",\n\t cardinality: 2,\n\t prevalidator: [ {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t var isValid = opts.regex.mspre.test(chrs);\n\t return strict || isValid || !(isValid = opts.regex.ms.test(\"0\" + chrs)) ? isValid : (maskset.buffer[pos] = \"0\", \n\t pos++, {\n\t pos: pos\n\t });\n\t },\n\t cardinality: 1\n\t } ]\n\t },\n\t t: {\n\t validator: function(chrs, maskset, pos, strict, opts) {\n\t return opts.regex.ampm.test(chrs + \"m\");\n\t },\n\t casing: \"lower\",\n\t cardinality: 1\n\t }\n\t },\n\t insertMode: !1,\n\t autoUnmask: !1\n\t },\n\t datetime12: {\n\t mask: \"1/2/y h:s t\\\\m\",\n\t placeholder: \"dd/mm/yyyy hh:mm xm\",\n\t alias: \"datetime\",\n\t hourFormat: \"12\"\n\t },\n\t \"mm/dd/yyyy hh:mm xm\": {\n\t mask: \"1/2/y h:s t\\\\m\",\n\t placeholder: \"mm/dd/yyyy hh:mm xm\",\n\t alias: \"datetime12\",\n\t regex: {\n\t val2pre: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[13-9]|1[012])\" + escapedSeparator + \"[0-3])|(02\" + escapedSeparator + \"[0-2])\");\n\t },\n\t val2: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])\" + escapedSeparator + \"30)|((0[13578]|1[02])\" + escapedSeparator + \"31)\");\n\t },\n\t val1pre: new RegExp(\"[01]\"),\n\t val1: new RegExp(\"0[1-9]|1[012]\")\n\t },\n\t leapday: \"02/29/\",\n\t onKeyDown: function(e, buffer, caretPos, opts) {\n\t var $input = $(this);\n\t if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n\t var today = new Date();\n\t $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), \n\t $input.trigger(\"setvalue\");\n\t }\n\t }\n\t },\n\t \"hh:mm t\": {\n\t mask: \"h:s t\\\\m\",\n\t placeholder: \"hh:mm xm\",\n\t alias: \"datetime\",\n\t hourFormat: \"12\"\n\t },\n\t \"h:s t\": {\n\t mask: \"h:s t\\\\m\",\n\t placeholder: \"hh:mm xm\",\n\t alias: \"datetime\",\n\t hourFormat: \"12\"\n\t },\n\t \"hh:mm:ss\": {\n\t mask: \"h:s:s\",\n\t placeholder: \"hh:mm:ss\",\n\t alias: \"datetime\",\n\t autoUnmask: !1\n\t },\n\t \"hh:mm\": {\n\t mask: \"h:s\",\n\t placeholder: \"hh:mm\",\n\t alias: \"datetime\",\n\t autoUnmask: !1\n\t },\n\t date: {\n\t alias: \"dd/mm/yyyy\"\n\t },\n\t \"mm/yyyy\": {\n\t mask: \"1/y\",\n\t placeholder: \"mm/yyyy\",\n\t leapday: \"donotuse\",\n\t separator: \"/\",\n\t alias: \"mm/dd/yyyy\"\n\t },\n\t shamsi: {\n\t regex: {\n\t val2pre: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"[0-3])\");\n\t },\n\t val2: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[1-9]|1[012])\" + escapedSeparator + \"30)|((0[1-6])\" + escapedSeparator + \"31)\");\n\t },\n\t val1pre: new RegExp(\"[01]\"),\n\t val1: new RegExp(\"0[1-9]|1[012]\")\n\t },\n\t yearrange: {\n\t minyear: 1300,\n\t maxyear: 1499\n\t },\n\t mask: \"y/1/2\",\n\t leapday: \"/12/30\",\n\t placeholder: \"yyyy/mm/dd\",\n\t alias: \"mm/dd/yyyy\",\n\t clearIncomplete: !0\n\t },\n\t \"yyyy-mm-dd hh:mm:ss\": {\n\t mask: \"y-1-2 h:s:s\",\n\t placeholder: \"yyyy-mm-dd hh:mm:ss\",\n\t alias: \"datetime\",\n\t separator: \"-\",\n\t leapday: \"-02-29\",\n\t regex: {\n\t val2pre: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[13-9]|1[012])\" + escapedSeparator + \"[0-3])|(02\" + escapedSeparator + \"[0-2])\");\n\t },\n\t val2: function(separator) {\n\t var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n\t return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])\" + escapedSeparator + \"30)|((0[13578]|1[02])\" + escapedSeparator + \"31)\");\n\t },\n\t val1pre: new RegExp(\"[01]\"),\n\t val1: new RegExp(\"0[1-9]|1[012]\")\n\t },\n\t onKeyDown: function(e, buffer, caretPos, opts) {}\n\t }\n\t }), Inputmask;\n\t});\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t* dependencyLibs/inputmask.dependencyLib.js\n\t* https://github.com/RobinHerbots/Inputmask\n\t* Copyright (c) 2010 - 2017 Robin Herbots\n\t* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n\t* Version: 3.3.6\n\t*/\n\t\n\t!function(factory) {\n\t true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(8), __webpack_require__(9) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : \"object\" == typeof exports ? module.exports = factory(require(\"../global/window\"), require(\"../global/document\")) : window.dependencyLib = factory(window, document);\n\t}(function(window, document) {\n\t function indexOf(list, elem) {\n\t for (var i = 0, len = list.length; i < len; i++) if (list[i] === elem) return i;\n\t return -1;\n\t }\n\t function type(obj) {\n\t return null == obj ? obj + \"\" : \"object\" == typeof obj || \"function\" == typeof obj ? class2type[class2type.toString.call(obj)] || \"object\" : typeof obj;\n\t }\n\t function isWindow(obj) {\n\t return null != obj && obj === obj.window;\n\t }\n\t function isArraylike(obj) {\n\t var length = \"length\" in obj && obj.length, ltype = type(obj);\n\t return \"function\" !== ltype && !isWindow(obj) && (!(1 !== obj.nodeType || !length) || (\"array\" === ltype || 0 === length || \"number\" == typeof length && length > 0 && length - 1 in obj));\n\t }\n\t function isValidElement(elem) {\n\t return elem instanceof Element;\n\t }\n\t function DependencyLib(elem) {\n\t return elem instanceof DependencyLib ? elem : this instanceof DependencyLib ? void (void 0 !== elem && null !== elem && elem !== window && (this[0] = elem.nodeName ? elem : void 0 !== elem[0] && elem[0].nodeName ? elem[0] : document.querySelector(elem), \n\t void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new DependencyLib(elem);\n\t }\n\t for (var class2type = {}, classTypes = \"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), nameNdx = 0; nameNdx < classTypes.length; nameNdx++) class2type[\"[object \" + classTypes[nameNdx] + \"]\"] = classTypes[nameNdx].toLowerCase();\n\t return DependencyLib.prototype = {\n\t on: function(events, handler) {\n\t if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(\" \"), endx = 0; endx < _events.length; endx++) {\n\t var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n\t !function(ev, namespace) {\n\t elem.addEventListener ? elem.addEventListener(ev, handler, !1) : elem.attachEvent && elem.attachEvent(\"on\" + ev, handler), \n\t eventRegistry[ev] = eventRegistry[ev] || {}, eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [], \n\t eventRegistry[ev][namespace].push(handler);\n\t }(ev, namespace);\n\t }\n\t return this;\n\t },\n\t off: function(events, handler) {\n\t if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(\" \"), endx = 0; endx < _events.length; endx++) for (var nsEvent = _events[endx].split(\".\"), offEvents = function(ev, namespace) {\n\t var hndx, hndL, evts = [];\n\t if (ev.length > 0) if (void 0 === handler) for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) evts.push({\n\t ev: ev,\n\t namespace: namespace && namespace.length > 0 ? namespace : \"global\",\n\t handler: eventRegistry[ev][namespace][hndx]\n\t }); else evts.push({\n\t ev: ev,\n\t namespace: namespace && namespace.length > 0 ? namespace : \"global\",\n\t handler: handler\n\t }); else if (namespace.length > 0) for (var evNdx in eventRegistry) for (var nmsp in eventRegistry[evNdx]) if (nmsp === namespace) if (void 0 === handler) for (hndx = 0, \n\t hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) evts.push({\n\t ev: evNdx,\n\t namespace: nmsp,\n\t handler: eventRegistry[evNdx][nmsp][hndx]\n\t }); else evts.push({\n\t ev: evNdx,\n\t namespace: nmsp,\n\t handler: handler\n\t });\n\t return evts;\n\t }(nsEvent[0], nsEvent[1]), i = 0, offEventsL = offEvents.length; i < offEventsL; i++) !function(ev, namespace, handler) {\n\t if (ev in eventRegistry == 1) if (elem.removeEventListener ? elem.removeEventListener(ev, handler, !1) : elem.detachEvent && elem.detachEvent(\"on\" + ev, handler), \n\t \"global\" === namespace) for (var nmsp in eventRegistry[ev]) eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1); else eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);\n\t }(offEvents[i].ev, offEvents[i].namespace, offEvents[i].handler);\n\t return this;\n\t },\n\t trigger: function(events) {\n\t if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = \"string\" == typeof events ? events.split(\" \") : [ events.type ], endx = 0; endx < _events.length; endx++) {\n\t var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n\t if (void 0 !== document && \"global\" === namespace) {\n\t var evnt, i, params = {\n\t bubbles: !1,\n\t cancelable: !0,\n\t detail: Array.prototype.slice.call(arguments, 1)\n\t };\n\t if (document.createEvent) {\n\t try {\n\t evnt = new CustomEvent(ev, params);\n\t } catch (e) {\n\t evnt = document.createEvent(\"CustomEvent\"), evnt.initCustomEvent(ev, params.bubbles, params.cancelable, params.detail);\n\t }\n\t events.type && DependencyLib.extend(evnt, events), elem.dispatchEvent(evnt);\n\t } else evnt = document.createEventObject(), evnt.eventType = ev, events.type && DependencyLib.extend(evnt, events), \n\t elem.fireEvent(\"on\" + evnt.eventType, evnt);\n\t } else if (void 0 !== eventRegistry[ev]) if (arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]), \n\t \"global\" === namespace) for (var nmsp in eventRegistry[ev]) for (i = 0; i < eventRegistry[ev][nmsp].length; i++) eventRegistry[ev][nmsp][i].apply(elem, arguments); else for (i = 0; i < eventRegistry[ev][namespace].length; i++) eventRegistry[ev][namespace][i].apply(elem, arguments);\n\t }\n\t return this;\n\t },\n\t position: function() {\n\t if (isValidElement(this[0])) return {\n\t top: this[0].offsetTop,\n\t left: this[0].offsetLeft\n\t };\n\t }\n\t }, DependencyLib.isFunction = function(obj) {\n\t return \"function\" === type(obj);\n\t }, DependencyLib.noop = function() {}, DependencyLib.isArray = Array.isArray, DependencyLib.inArray = function(elem, arr, i) {\n\t return null == arr ? -1 : indexOf(arr, elem);\n\t }, DependencyLib.valHooks = void 0, DependencyLib.isPlainObject = function(obj) {\n\t return \"object\" === type(obj) && !obj.nodeType && !isWindow(obj) && !(obj.constructor && !class2type.hasOwnProperty.call(obj.constructor.prototype, \"isPrototypeOf\"));\n\t }, DependencyLib.extend = function() {\n\t var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1;\n\t for (\"boolean\" == typeof target && (deep = target, target = arguments[i] || {}, \n\t i++), \"object\" == typeof target || DependencyLib.isFunction(target) || (target = {}), \n\t i === length && (target = this, i--); i < length; i++) if (null != (options = arguments[i])) for (name in options) src = target[name], \n\t copy = options[name], target !== copy && (deep && copy && (DependencyLib.isPlainObject(copy) || (copyIsArray = DependencyLib.isArray(copy))) ? (copyIsArray ? (copyIsArray = !1, \n\t clone = src && DependencyLib.isArray(src) ? src : []) : clone = src && DependencyLib.isPlainObject(src) ? src : {}, \n\t target[name] = DependencyLib.extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy));\n\t return target;\n\t }, DependencyLib.each = function(obj, callback) {\n\t var i = 0;\n\t if (isArraylike(obj)) for (var length = obj.length; i < length && !1 !== callback.call(obj[i], i, obj[i]); i++) ; else for (i in obj) if (!1 === callback.call(obj[i], i, obj[i])) break;\n\t return obj;\n\t }, DependencyLib.map = function(elems, callback) {\n\t var value, i = 0, length = elems.length, isArray = isArraylike(elems), ret = [];\n\t if (isArray) for (;i < length; i++) null != (value = callback(elems[i], i)) && ret.push(value); else for (i in elems) null != (value = callback(elems[i], i)) && ret.push(value);\n\t return [].concat(ret);\n\t }, DependencyLib.data = function(owner, key, value) {\n\t if (void 0 === value) return owner.__data ? owner.__data[key] : null;\n\t owner.__data = owner.__data || {}, owner.__data[key] = value;\n\t }, DependencyLib.Event = function(event, params) {\n\t params = params || {\n\t bubbles: !1,\n\t cancelable: !1,\n\t detail: void 0\n\t };\n\t var evt = document.createEvent(\"CustomEvent\");\n\t return evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail), \n\t evt;\n\t }, DependencyLib.Event.prototype = window.Event.prototype, DependencyLib;\n\t});\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t* global/window.js\n\t* https://github.com/RobinHerbots/Inputmask\n\t* Copyright (c) 2010 - 2017 Robin Herbots\n\t* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n\t* Version: 3.3.6\n\t*/\n\t\n\t true ? !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n\t return window;\n\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : \"object\" == typeof exports && (module.exports = window);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t* global/document.js\n\t* https://github.com/RobinHerbots/Inputmask\n\t* Copyright (c) 2010 - 2017 Robin Herbots\n\t* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n\t* Version: 3.3.6\n\t*/\n\t\n\t true ? !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n\t return document;\n\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : \"object\" == typeof exports && (module.exports = document);\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t* inputmask.js\n\t* https://github.com/RobinHerbots/Inputmask\n\t* Copyright (c) 2010 - 2017 Robin Herbots\n\t* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n\t* Version: 3.3.6\n\t*/\n\t\n\t!function(factory) {\n\t true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(7), __webpack_require__(8), __webpack_require__(9) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : \"object\" == typeof exports ? module.exports = factory(require(\"./dependencyLibs/inputmask.dependencyLib\"), require(\"./global/window\"), require(\"./global/document\")) : window.Inputmask = factory(window.dependencyLib || jQuery, window, document);\n\t}(function($, window, document, undefined) {\n\t function Inputmask(alias, options, internal) {\n\t if (!(this instanceof Inputmask)) return new Inputmask(alias, options, internal);\n\t this.el = undefined, this.events = {}, this.maskset = undefined, this.refreshValue = !1, \n\t !0 !== internal && ($.isPlainObject(alias) ? options = alias : (options = options || {}, \n\t options.alias = alias), this.opts = $.extend(!0, {}, this.defaults, options), this.noMasksCache = options && options.definitions !== undefined, \n\t this.userOptions = options || {}, this.isRTL = this.opts.numericInput, resolveAlias(this.opts.alias, options, this.opts));\n\t }\n\t function resolveAlias(aliasStr, options, opts) {\n\t var aliasDefinition = Inputmask.prototype.aliases[aliasStr];\n\t return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, undefined, opts), \n\t $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr), \n\t !1);\n\t }\n\t function generateMaskSet(opts, nocache) {\n\t function generateMask(mask, metadata, opts) {\n\t var regexMask = !1;\n\t if (null !== mask && \"\" !== mask || (regexMask = null !== opts.regex, regexMask ? (mask = opts.regex, \n\t mask = mask.replace(/^(\\^)(.*)(\\$)$/, \"$2\")) : mask = \"*{*}\"), 1 === mask.length && !1 === opts.greedy && 0 !== opts.repeat && (opts.placeholder = \"\"), \n\t opts.repeat > 0 || \"*\" === opts.repeat || \"+\" === opts.repeat) {\n\t var repeatStart = \"*\" === opts.repeat ? 0 : \"+\" === opts.repeat ? 1 : opts.repeat;\n\t mask = opts.groupmarker.start + mask + opts.groupmarker.end + opts.quantifiermarker.start + repeatStart + \",\" + opts.repeat + opts.quantifiermarker.end;\n\t }\n\t var masksetDefinition, maskdefKey = regexMask ? \"regex_\" + opts.regex : opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask;\n\t return Inputmask.prototype.masksCache[maskdefKey] === undefined || !0 === nocache ? (masksetDefinition = {\n\t mask: mask,\n\t maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),\n\t validPositions: {},\n\t _buffer: undefined,\n\t buffer: undefined,\n\t tests: {},\n\t metadata: metadata,\n\t maskLength: undefined\n\t }, !0 !== nocache && (Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition, \n\t masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]), \n\t masksetDefinition;\n\t }\n\t if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) {\n\t if (opts.mask.length > 1) {\n\t opts.keepStatic = null === opts.keepStatic || opts.keepStatic;\n\t var altMask = opts.groupmarker.start;\n\t return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function(ndx, msk) {\n\t altMask.length > 1 && (altMask += opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start), \n\t msk.mask === undefined || $.isFunction(msk.mask) ? altMask += msk : altMask += msk.mask;\n\t }), altMask += opts.groupmarker.end, generateMask(altMask, opts.mask, opts);\n\t }\n\t opts.mask = opts.mask.pop();\n\t }\n\t return opts.mask && opts.mask.mask !== undefined && !$.isFunction(opts.mask.mask) ? generateMask(opts.mask.mask, opts.mask, opts) : generateMask(opts.mask, opts.mask, opts);\n\t }\n\t function maskScope(actionObj, maskset, opts) {\n\t function getMaskTemplate(baseOnInput, minimalPos, includeMode) {\n\t minimalPos = minimalPos || 0;\n\t var ndxIntlzr, test, testPos, maskTemplate = [], pos = 0, lvp = getLastValidPosition();\n\t -1 === (maxLength = el !== undefined ? el.maxLength : undefined) && (maxLength = undefined);\n\t do {\n\t !0 === baseOnInput && getMaskSet().validPositions[pos] ? (testPos = getMaskSet().validPositions[pos], \n\t test = testPos.match, ndxIntlzr = testPos.locator.slice(), maskTemplate.push(!0 === includeMode ? testPos.input : !1 === includeMode ? test.nativeDef : getPlaceholder(pos, test))) : (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), \n\t test = testPos.match, ndxIntlzr = testPos.locator.slice(), (!1 === opts.jitMasking || pos < lvp || \"number\" == typeof opts.jitMasking && isFinite(opts.jitMasking) && opts.jitMasking > pos) && maskTemplate.push(!1 === includeMode ? test.nativeDef : getPlaceholder(pos, test))), \n\t pos++;\n\t } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || \"\" !== test.def) || minimalPos > pos);\n\t return \"\" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), getMaskSet().maskLength = pos + 1, \n\t maskTemplate;\n\t }\n\t function getMaskSet() {\n\t return maskset;\n\t }\n\t function resetMaskSet(soft) {\n\t var maskset = getMaskSet();\n\t maskset.buffer = undefined, !0 !== soft && (maskset.validPositions = {}, maskset.p = 0);\n\t }\n\t function getLastValidPosition(closestTo, strict, validPositions) {\n\t var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions;\n\t closestTo === undefined && (closestTo = -1);\n\t for (var posNdx in valids) {\n\t var psNdx = parseInt(posNdx);\n\t valids[psNdx] && (strict || !0 !== valids[psNdx].generatedInput) && (psNdx <= closestTo && (before = psNdx), \n\t psNdx >= closestTo && (after = psNdx));\n\t }\n\t return -1 !== before && closestTo - before > 1 || after < closestTo ? before : after;\n\t }\n\t function stripValidPositions(start, end, nocheck, strict) {\n\t var i, startPos = start, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), needsValidation = !1;\n\t for (getMaskSet().p = start, i = end - 1; i >= startPos; i--) getMaskSet().validPositions[i] !== undefined && (!0 !== nocheck && (!getMaskSet().validPositions[i].match.optionality && function(pos) {\n\t var posMatch = getMaskSet().validPositions[pos];\n\t if (posMatch !== undefined && null === posMatch.match.fn) {\n\t var prevMatch = getMaskSet().validPositions[pos - 1], nextMatch = getMaskSet().validPositions[pos + 1];\n\t return prevMatch !== undefined && nextMatch !== undefined;\n\t }\n\t return !1;\n\t }(i) || !1 === opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts)) || delete getMaskSet().validPositions[i]);\n\t for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {\n\t for (;getMaskSet().validPositions[startPos] !== undefined; ) startPos++;\n\t if (i < startPos && (i = startPos + 1), getMaskSet().validPositions[i] === undefined && isMask(i)) i++; else {\n\t var t = getTestTemplate(i);\n\t !1 === needsValidation && positionsClone[startPos] && positionsClone[startPos].match.def === t.match.def ? (getMaskSet().validPositions[startPos] = $.extend(!0, {}, positionsClone[startPos]), \n\t getMaskSet().validPositions[startPos].input = t.input, delete getMaskSet().validPositions[i], \n\t i++) : positionCanMatchDefinition(startPos, t.match.def) ? !1 !== isValid(startPos, t.input || getPlaceholder(i), !0) && (delete getMaskSet().validPositions[i], \n\t i++, needsValidation = !0) : isMask(i) || (i++, startPos--), startPos++;\n\t }\n\t }\n\t resetMaskSet(!0);\n\t }\n\t function determineTestTemplate(tests, guessNextBest) {\n\t for (var testPos, testPositions = tests, lvp = getLastValidPosition(), lvTest = getMaskSet().validPositions[lvp] || getTests(0)[0], lvTestAltArr = lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation].toString().split(\",\") : [], ndx = 0; ndx < testPositions.length && (testPos = testPositions[ndx], \n\t !(testPos.match && (opts.greedy && !0 !== testPos.match.optionalQuantifier || (!1 === testPos.match.optionality || !1 === testPos.match.newBlockMarker) && !0 !== testPos.match.optionalQuantifier) && (lvTest.alternation === undefined || lvTest.alternation !== testPos.alternation || testPos.locator[lvTest.alternation] !== undefined && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAltArr))) || !0 === guessNextBest && (null !== testPos.match.fn || /[0-9a-bA-Z]/.test(testPos.match.def))); ndx++) ;\n\t return testPos;\n\t }\n\t function getTestTemplate(pos, ndxIntlzr, tstPs) {\n\t return getMaskSet().validPositions[pos] || determineTestTemplate(getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));\n\t }\n\t function getTest(pos) {\n\t return getMaskSet().validPositions[pos] ? getMaskSet().validPositions[pos] : getTests(pos)[0];\n\t }\n\t function positionCanMatchDefinition(pos, def) {\n\t for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) if (tests[tndx].match && tests[tndx].match.def === def) {\n\t valid = !0;\n\t break;\n\t }\n\t return valid;\n\t }\n\t function getTests(pos, ndxIntlzr, tstPs) {\n\t function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {\n\t function handleMatch(match, loopNdx, quantifierRecurse) {\n\t function isFirstMatch(latestMatch, tokenGroup) {\n\t var firstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches);\n\t return firstMatch || $.each(tokenGroup.matches, function(ndx, match) {\n\t if (!0 === match.isQuantifier && (firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]))) return !1;\n\t }), firstMatch;\n\t }\n\t function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {\n\t var bestMatch, indexPos;\n\t if (getMaskSet().validPositions[pos - 1] && targetAlternation && getMaskSet().tests[pos]) for (var vpAlternation = getMaskSet().validPositions[pos - 1].locator, tpAlternation = getMaskSet().tests[pos][0].locator, i = 0; i < targetAlternation; i++) if (vpAlternation[i] !== tpAlternation[i]) return vpAlternation[targetAlternation];\n\t return (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) && $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) {\n\t var alternation = targetAlternation !== undefined ? targetAlternation : lmnt.alternation, ndxPos = lmnt.locator[alternation] !== undefined ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;\n\t (indexPos === undefined || ndxPos < indexPos) && -1 !== ndxPos && (bestMatch = lmnt, \n\t indexPos = ndxPos);\n\t }), bestMatch ? bestMatch.locator.slice((targetAlternation !== undefined ? targetAlternation : bestMatch.alternation) + 1) : targetAlternation !== undefined ? resolveNdxInitializer(pos, alternateNdx) : undefined;\n\t }\n\t if (testPos > 1e4) throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + getMaskSet().mask;\n\t if (testPos === pos && match.matches === undefined) return matches.push({\n\t match: match,\n\t locator: loopNdx.reverse(),\n\t cd: cacheDependency\n\t }), !0;\n\t if (match.matches !== undefined) {\n\t if (match.isGroup && quantifierRecurse !== match) {\n\t if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx)) return !0;\n\t } else if (match.isOptional) {\n\t var optionalToken = match;\n\t if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) {\n\t if (latestMatch = matches[matches.length - 1].match, !isFirstMatch(latestMatch, optionalToken)) return !0;\n\t insertStop = !0, testPos = pos;\n\t }\n\t } else if (match.isAlternator) {\n\t var maltMatches, alternateToken = match, malternateMatches = [], currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1;\n\t if (-1 === altIndex || \"string\" == typeof altIndex) {\n\t var amndx, currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [];\n\t if (\"string\" == typeof altIndex) altIndexArr = altIndex.split(\",\"); else for (amndx = 0; amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx);\n\t for (var ndx = 0; ndx < altIndexArr.length; ndx++) {\n\t if (amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice(), \n\t !0 !== (match = handleMatch(alternateToken.matches[amndx] || maskToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) || match) && match !== undefined && altIndexArr[altIndexArr.length - 1] < alternateToken.matches.length) {\n\t var ntndx = $.inArray(match, maskToken.matches) + 1;\n\t maskToken.matches.length > ntndx && (match = handleMatch(maskToken.matches[ntndx], [ ntndx ].concat(loopNdx.slice(1, loopNdx.length)), quantifierRecurse)) && (altIndexArr.push(ntndx.toString()), \n\t $.each(matches, function(ndx, lmnt) {\n\t lmnt.alternation = loopNdx.length - 1;\n\t }));\n\t }\n\t maltMatches = matches.slice(), testPos = currentPos, matches = [];\n\t for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {\n\t var altMatch = maltMatches[ndx1], dropMatch = !1;\n\t altMatch.alternation = altMatch.alternation || loopNdxCnt;\n\t for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {\n\t var altMatch2 = malternateMatches[ndx2];\n\t if (\"string\" != typeof altIndex || -1 !== $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr)) {\n\t if (function(source, target) {\n\t return source.match.nativeDef === target.match.nativeDef || source.match.def === target.match.nativeDef || source.match.nativeDef === target.match.def;\n\t }(altMatch, altMatch2)) {\n\t dropMatch = !0, altMatch.alternation == altMatch2.alternation && -1 === altMatch2.locator[altMatch2.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) && (altMatch2.locator[altMatch2.alternation] = altMatch2.locator[altMatch2.alternation] + \",\" + altMatch.locator[altMatch.alternation], \n\t altMatch2.alternation = altMatch.alternation), altMatch.match.nativeDef === altMatch2.match.def && (altMatch.locator[altMatch.alternation] = altMatch2.locator[altMatch2.alternation], \n\t malternateMatches.splice(malternateMatches.indexOf(altMatch2), 1, altMatch));\n\t break;\n\t }\n\t if (altMatch.match.def === altMatch2.match.def) {\n\t dropMatch = !1;\n\t break;\n\t }\n\t if (function(source, target) {\n\t return null === source.match.fn && null !== target.match.fn && target.match.fn.test(source.match.def, getMaskSet(), pos, !1, opts, !1);\n\t }(altMatch, altMatch2) || function(source, target) {\n\t return null !== source.match.fn && null !== target.match.fn && target.match.fn.test(source.match.def.replace(/[\\[\\]]/g, \"\"), getMaskSet(), pos, !1, opts, !1);\n\t }(altMatch, altMatch2)) {\n\t altMatch.alternation == altMatch2.alternation && -1 === altMatch.locator[altMatch.alternation].toString().indexOf(altMatch2.locator[altMatch2.alternation].toString().split(\"\")[0]) && (altMatch.na = altMatch.na || altMatch.locator[altMatch.alternation].toString(), \n\t -1 === altMatch.na.indexOf(altMatch.locator[altMatch.alternation].toString().split(\"\")[0]) && (altMatch.na = altMatch.na + \",\" + altMatch.locator[altMatch2.alternation].toString().split(\"\")[0]), \n\t dropMatch = !0, altMatch.locator[altMatch.alternation] = altMatch2.locator[altMatch2.alternation].toString().split(\"\")[0] + \",\" + altMatch.locator[altMatch.alternation], \n\t malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch));\n\t break;\n\t }\n\t }\n\t }\n\t dropMatch || malternateMatches.push(altMatch);\n\t }\n\t }\n\t \"string\" == typeof altIndex && (malternateMatches = $.map(malternateMatches, function(lmnt, ndx) {\n\t if (isFinite(ndx)) {\n\t var alternation = lmnt.alternation, altLocArr = lmnt.locator[alternation].toString().split(\",\");\n\t lmnt.locator[alternation] = undefined, lmnt.alternation = undefined;\n\t for (var alndx = 0; alndx < altLocArr.length; alndx++) -1 !== $.inArray(altLocArr[alndx], altIndexArr) && (lmnt.locator[alternation] !== undefined ? (lmnt.locator[alternation] += \",\", \n\t lmnt.locator[alternation] += altLocArr[alndx]) : lmnt.locator[alternation] = parseInt(altLocArr[alndx]), \n\t lmnt.alternation = alternation);\n\t if (lmnt.locator[alternation] !== undefined) return lmnt;\n\t }\n\t })), matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = matches.length > 0, \n\t match = malternateMatches.length > 0, ndxInitializer = ndxInitializerClone.slice();\n\t } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);\n\t if (match) return !0;\n\t } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) for (var qt = match, qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {\n\t var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1];\n\t if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup)) {\n\t if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx > qt.quantifier.min - 1, \n\t isFirstMatch(latestMatch, tokenGroup)) {\n\t if (qndx > qt.quantifier.min - 1) {\n\t insertStop = !0, testPos = pos;\n\t break;\n\t }\n\t return !0;\n\t }\n\t return !0;\n\t }\n\t } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) return !0;\n\t } else testPos++;\n\t }\n\t for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (!0 !== maskToken.matches[tndx].isQuantifier) {\n\t var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);\n\t if (match && testPos === pos) return match;\n\t if (testPos > pos) break;\n\t }\n\t }\n\t function filterTests(tests) {\n\t return opts.keepStatic && pos > 0 && tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0) && !0 !== tests[0].match.optionality && !0 !== tests[0].match.optionalQuantifier && null === tests[0].match.fn && !/[0-9a-bA-Z]/.test(tests[0].match.def) ? [ determineTestTemplate(tests) ] : tests;\n\t }\n\t var latestMatch, maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = !1, cacheDependency = ndxIntlzr ? ndxIntlzr.join(\"\") : \"\";\n\t if (pos > -1) {\n\t if (ndxIntlzr === undefined) {\n\t for (var test, previousPos = pos - 1; (test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) === undefined && previousPos > -1; ) previousPos--;\n\t test !== undefined && previousPos > -1 && (ndxInitializer = function(tests) {\n\t var locator = [];\n\t return $.isArray(tests) || (tests = [ tests ]), tests.length > 0 && (tests[0].alternation === undefined ? (locator = determineTestTemplate(tests.slice()).locator.slice(), \n\t 0 === locator.length && (locator = tests[0].locator.slice())) : $.each(tests, function(ndx, tst) {\n\t if (\"\" !== tst.def) if (0 === locator.length) locator = tst.locator.slice(); else for (var i = 0; i < locator.length; i++) tst.locator[i] && -1 === locator[i].toString().indexOf(tst.locator[i]) && (locator[i] += \",\" + tst.locator[i]);\n\t })), locator;\n\t }(test), cacheDependency = ndxInitializer.join(\"\"), testPos = previousPos);\n\t }\n\t if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) return filterTests(getMaskSet().tests[pos]);\n\t for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) {\n\t if (resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]) && testPos === pos || testPos > pos) break;\n\t }\n\t }\n\t return (0 === matches.length || insertStop) && matches.push({\n\t match: {\n\t fn: null,\n\t cardinality: 0,\n\t optionality: !0,\n\t casing: null,\n\t def: \"\",\n\t placeholder: \"\"\n\t },\n\t locator: [],\n\t cd: cacheDependency\n\t }), ndxIntlzr !== undefined && getMaskSet().tests[pos] ? filterTests($.extend(!0, [], matches)) : (getMaskSet().tests[pos] = $.extend(!0, [], matches), \n\t filterTests(getMaskSet().tests[pos]));\n\t }\n\t function getBufferTemplate() {\n\t return getMaskSet()._buffer === undefined && (getMaskSet()._buffer = getMaskTemplate(!1, 1), \n\t getMaskSet().buffer === undefined && (getMaskSet().buffer = getMaskSet()._buffer.slice())), \n\t getMaskSet()._buffer;\n\t }\n\t function getBuffer(noCache) {\n\t return getMaskSet().buffer !== undefined && !0 !== noCache || (getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)), \n\t getMaskSet().buffer;\n\t }\n\t function refreshFromBuffer(start, end, buffer) {\n\t var i, p;\n\t if (!0 === start) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; i < end; i++) delete getMaskSet().validPositions[i];\n\t for (p = start, i = start; i < end; i++) if (resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter) {\n\t var valResult = isValid(p, buffer[i], !0, !0);\n\t !1 !== valResult && (resetMaskSet(!0), p = valResult.caret !== undefined ? valResult.caret : valResult.pos + 1);\n\t }\n\t }\n\t function casing(elem, test, pos) {\n\t switch (opts.casing || test.casing) {\n\t case \"upper\":\n\t elem = elem.toUpperCase();\n\t break;\n\t\n\t case \"lower\":\n\t elem = elem.toLowerCase();\n\t break;\n\t\n\t case \"title\":\n\t var posBefore = getMaskSet().validPositions[pos - 1];\n\t elem = 0 === pos || posBefore && posBefore.input === String.fromCharCode(Inputmask.keyCode.SPACE) ? elem.toUpperCase() : elem.toLowerCase();\n\t }\n\t return elem;\n\t }\n\t function checkAlternationMatch(altArr1, altArr2, na) {\n\t for (var naNdx, altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, naArr = na !== undefined ? na.split(\",\") : [], i = 0; i < naArr.length; i++) -1 !== (naNdx = altArr1.indexOf(naArr[i])) && altArr1.splice(naNdx, 1);\n\t for (var alndx = 0; alndx < altArr1.length; alndx++) if (-1 !== $.inArray(altArr1[alndx], altArrC)) {\n\t isMatch = !0;\n\t break;\n\t }\n\t return isMatch;\n\t }\n\t function isValid(pos, c, strict, fromSetValid, fromAlternate) {\n\t function isSelection(posObj) {\n\t var selection = isRTL ? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end == 1 : posObj.end - posObj.begin > 1 || posObj.end - posObj.begin == 1;\n\t return selection && 0 === posObj.begin && posObj.end === getMaskSet().maskLength ? \"full\" : selection;\n\t }\n\t function _isValid(position, c, strict) {\n\t var rslt = !1;\n\t return $.each(getTests(position), function(ndx, tst) {\n\t for (var test = tst.match, loopend = c ? 1 : 0, chrs = \"\", i = test.cardinality; i > loopend; i--) chrs += getBufferElement(position - (i - 1));\n\t if (c && (chrs += c), getBuffer(!0), !1 !== (rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && \"\" !== test.def && {\n\t c: getPlaceholder(position, test, !0) || test.def,\n\t pos: position\n\t })) {\n\t var elem = rslt.c !== undefined ? rslt.c : c;\n\t elem = elem === opts.skipOptionalPartCharacter && null === test.fn ? getPlaceholder(position, test, !0) || test.def : elem;\n\t var validatedPos = position, possibleModifiedBuffer = getBuffer();\n\t if (rslt.remove !== undefined && ($.isArray(rslt.remove) || (rslt.remove = [ rslt.remove ]), \n\t $.each(rslt.remove.sort(function(a, b) {\n\t return b - a;\n\t }), function(ndx, lmnt) {\n\t stripValidPositions(lmnt, lmnt + 1, !0);\n\t })), rslt.insert !== undefined && ($.isArray(rslt.insert) || (rslt.insert = [ rslt.insert ]), \n\t $.each(rslt.insert.sort(function(a, b) {\n\t return a - b;\n\t }), function(ndx, lmnt) {\n\t isValid(lmnt.pos, lmnt.c, !0, fromSetValid);\n\t })), rslt.refreshFromBuffer) {\n\t var refresh = rslt.refreshFromBuffer;\n\t if (refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, possibleModifiedBuffer), \n\t rslt.pos === undefined && rslt.c === undefined) return rslt.pos = getLastValidPosition(), \n\t !1;\n\t if ((validatedPos = rslt.pos !== undefined ? rslt.pos : position) !== position) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0, fromSetValid)), \n\t !1;\n\t } else if (!0 !== rslt && rslt.pos !== undefined && rslt.pos !== position && (validatedPos = rslt.pos, \n\t refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), \n\t !1;\n\t return (!0 === rslt || rslt.pos !== undefined || rslt.c !== undefined) && (ndx > 0 && resetMaskSet(!0), \n\t setValidPosition(validatedPos, $.extend({}, tst, {\n\t input: casing(elem, test, validatedPos)\n\t }), fromSetValid, isSelection(pos)) || (rslt = !1), !1);\n\t }\n\t }), rslt;\n\t }\n\t function setValidPosition(pos, validTest, fromSetValid, isSelection) {\n\t if (isSelection || opts.insertMode && getMaskSet().validPositions[pos] !== undefined && fromSetValid === undefined) {\n\t var i, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), lvp = getLastValidPosition(undefined, !0);\n\t for (i = pos; i <= lvp; i++) delete getMaskSet().validPositions[i];\n\t getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);\n\t var j, valid = !0, vps = getMaskSet().validPositions, needsValidation = !1, initialLength = getMaskSet().maskLength;\n\t for (i = j = pos; i <= lvp; i++) {\n\t var t = positionsClone[i];\n\t if (t !== undefined) for (var posMatch = j; posMatch < getMaskSet().maskLength && (null === t.match.fn && vps[i] && (!0 === vps[i].match.optionalQuantifier || !0 === vps[i].match.optionality) || null != t.match.fn); ) {\n\t if (posMatch++, !1 === needsValidation && positionsClone[posMatch] && positionsClone[posMatch].match.def === t.match.def) getMaskSet().validPositions[posMatch] = $.extend(!0, {}, positionsClone[posMatch]), \n\t getMaskSet().validPositions[posMatch].input = t.input, fillMissingNonMask(posMatch), \n\t j = posMatch, valid = !0; else if (positionCanMatchDefinition(posMatch, t.match.def)) {\n\t var result = isValid(posMatch, t.input, !0, !0);\n\t valid = !1 !== result, j = result.caret || result.insert ? getLastValidPosition() : posMatch, \n\t needsValidation = !0;\n\t } else if (!(valid = !0 === t.generatedInput) && posMatch >= getMaskSet().maskLength - 1) break;\n\t if (getMaskSet().maskLength < initialLength && (getMaskSet().maskLength = initialLength), \n\t valid) break;\n\t }\n\t if (!valid) break;\n\t }\n\t if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone), \n\t resetMaskSet(!0), !1;\n\t } else getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);\n\t return resetMaskSet(!0), !0;\n\t }\n\t function fillMissingNonMask(maskPos) {\n\t for (var pndx = maskPos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) ;\n\t var testTemplate, testsFromPos;\n\t for (pndx++; pndx < maskPos; pndx++) getMaskSet().validPositions[pndx] === undefined && (!1 === opts.jitMasking || opts.jitMasking > pndx) && (testsFromPos = getTests(pndx, getTestTemplate(pndx - 1).locator, pndx - 1).slice(), \n\t \"\" === testsFromPos[testsFromPos.length - 1].match.def && testsFromPos.pop(), (testTemplate = determineTestTemplate(testsFromPos)) && (testTemplate.match.def === opts.radixPointDefinitionSymbol || !isMask(pndx, !0) || $.inArray(opts.radixPoint, getBuffer()) < pndx && testTemplate.match.fn && testTemplate.match.fn.test(getPlaceholder(pndx), getMaskSet(), pndx, !1, opts)) && !1 !== (result = _isValid(pndx, getPlaceholder(pndx, testTemplate.match, !0) || (null == testTemplate.match.fn ? testTemplate.match.def : \"\" !== getPlaceholder(pndx) ? getPlaceholder(pndx) : getBuffer()[pndx]), !0)) && (getMaskSet().validPositions[result.pos || pndx].generatedInput = !0));\n\t }\n\t strict = !0 === strict;\n\t var maskPos = pos;\n\t pos.begin !== undefined && (maskPos = isRTL && !isSelection(pos) ? pos.end : pos.begin);\n\t var result = !0, positionsClone = $.extend(!0, {}, getMaskSet().validPositions);\n\t if ($.isFunction(opts.preValidation) && !strict && !0 !== fromSetValid && (result = opts.preValidation(getBuffer(), maskPos, c, isSelection(pos), opts)), \n\t !0 === result) {\n\t if (fillMissingNonMask(maskPos), isSelection(pos) && (handleRemove(undefined, Inputmask.keyCode.DELETE, pos), \n\t maskPos = getMaskSet().p), maskPos < getMaskSet().maskLength && (maxLength === undefined || maskPos < maxLength) && (result = _isValid(maskPos, c, strict), \n\t (!strict || !0 === fromSetValid) && !1 === result)) {\n\t var currentPosValid = getMaskSet().validPositions[maskPos];\n\t if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {\n\t if ((opts.insertMode || getMaskSet().validPositions[seekNext(maskPos)] === undefined) && !isMask(maskPos, !0)) for (var nPos = maskPos + 1, snPos = seekNext(maskPos); nPos <= snPos; nPos++) if (!1 !== (result = _isValid(nPos, c, strict))) {\n\t !function(originalPos, newPos) {\n\t var vp = getMaskSet().validPositions[newPos];\n\t if (vp) for (var targetLocator = vp.locator, tll = targetLocator.length, ps = originalPos; ps < newPos; ps++) if (getMaskSet().validPositions[ps] === undefined && !isMask(ps, !0)) {\n\t var tests = getTests(ps).slice(), bestMatch = determineTestTemplate(tests, !0), equality = -1;\n\t \"\" === tests[tests.length - 1].match.def && tests.pop(), $.each(tests, function(ndx, tst) {\n\t for (var i = 0; i < tll; i++) {\n\t if (tst.locator[i] === undefined || !checkAlternationMatch(tst.locator[i].toString().split(\",\"), targetLocator[i].toString().split(\",\"), tst.na)) {\n\t var targetAI = targetLocator[i], bestMatchAI = bestMatch.locator[i], tstAI = tst.locator[i];\n\t targetAI - bestMatchAI > Math.abs(targetAI - tstAI) && (bestMatch = tst);\n\t break;\n\t }\n\t equality < i && (equality = i, bestMatch = tst);\n\t }\n\t }), bestMatch = $.extend({}, bestMatch, {\n\t input: getPlaceholder(ps, bestMatch.match, !0) || bestMatch.match.def\n\t }), bestMatch.generatedInput = !0, setValidPosition(ps, bestMatch, !0), getMaskSet().validPositions[newPos] = undefined, \n\t _isValid(newPos, vp.input, !0);\n\t }\n\t }(maskPos, result.pos !== undefined ? result.pos : nPos), maskPos = nPos;\n\t break;\n\t }\n\t } else result = {\n\t caret: seekNext(maskPos)\n\t };\n\t }\n\t !1 === result && opts.keepStatic && !strict && !0 !== fromAlternate && (result = function(pos, c, strict) {\n\t var lastAlt, alternation, altPos, prevAltPos, i, validPos, altNdxs, decisionPos, validPsClone = $.extend(!0, {}, getMaskSet().validPositions), isValidRslt = !1, lAltPos = getLastValidPosition();\n\t for (prevAltPos = getMaskSet().validPositions[lAltPos]; lAltPos >= 0; lAltPos--) if ((altPos = getMaskSet().validPositions[lAltPos]) && altPos.alternation !== undefined) {\n\t if (lastAlt = lAltPos, alternation = getMaskSet().validPositions[lastAlt].alternation, \n\t prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) break;\n\t prevAltPos = altPos;\n\t }\n\t if (alternation !== undefined) {\n\t decisionPos = parseInt(lastAlt);\n\t var decisionTaker = prevAltPos.locator[prevAltPos.alternation || alternation] !== undefined ? prevAltPos.locator[prevAltPos.alternation || alternation] : altNdxs[0];\n\t decisionTaker.length > 0 && (decisionTaker = decisionTaker.split(\",\")[0]);\n\t var possibilityPos = getMaskSet().validPositions[decisionPos], prevPos = getMaskSet().validPositions[decisionPos - 1];\n\t $.each(getTests(decisionPos, prevPos ? prevPos.locator : undefined, decisionPos - 1), function(ndx, test) {\n\t altNdxs = test.locator[alternation] ? test.locator[alternation].toString().split(\",\") : [];\n\t for (var mndx = 0; mndx < altNdxs.length; mndx++) {\n\t var validInputs = [], staticInputsBeforePos = 0, staticInputsBeforePosAlternate = 0, verifyValidInput = !1;\n\t if (decisionTaker < altNdxs[mndx] && (test.na === undefined || -1 === $.inArray(altNdxs[mndx], test.na.split(\",\")) || -1 === $.inArray(decisionTaker.toString(), altNdxs))) {\n\t getMaskSet().validPositions[decisionPos] = $.extend(!0, {}, test);\n\t var possibilities = getMaskSet().validPositions[decisionPos].locator;\n\t for (getMaskSet().validPositions[decisionPos].locator[alternation] = parseInt(altNdxs[mndx]), \n\t null == test.match.fn ? (possibilityPos.input !== test.match.def && (verifyValidInput = !0, \n\t !0 !== possibilityPos.generatedInput && validInputs.push(possibilityPos.input)), \n\t staticInputsBeforePosAlternate++, getMaskSet().validPositions[decisionPos].generatedInput = !/[0-9a-bA-Z]/.test(test.match.def), \n\t getMaskSet().validPositions[decisionPos].input = test.match.def) : getMaskSet().validPositions[decisionPos].input = possibilityPos.input, \n\t i = decisionPos + 1; i < getLastValidPosition(undefined, !0) + 1; i++) validPos = getMaskSet().validPositions[i], \n\t validPos && !0 !== validPos.generatedInput && /[0-9a-bA-Z]/.test(validPos.input) ? validInputs.push(validPos.input) : i < pos && staticInputsBeforePos++, \n\t delete getMaskSet().validPositions[i];\n\t for (verifyValidInput && validInputs[0] === test.match.def && validInputs.shift(), \n\t resetMaskSet(!0), isValidRslt = !0; validInputs.length > 0; ) {\n\t var input = validInputs.shift();\n\t if (input !== opts.skipOptionalPartCharacter && !(isValidRslt = isValid(getLastValidPosition(undefined, !0) + 1, input, !1, fromSetValid, !0))) break;\n\t }\n\t if (isValidRslt) {\n\t getMaskSet().validPositions[decisionPos].locator = possibilities;\n\t var targetLvp = getLastValidPosition(pos) + 1;\n\t for (i = decisionPos + 1; i < getLastValidPosition() + 1; i++) ((validPos = getMaskSet().validPositions[i]) === undefined || null == validPos.match.fn) && i < pos + (staticInputsBeforePosAlternate - staticInputsBeforePos) && staticInputsBeforePosAlternate++;\n\t pos += staticInputsBeforePosAlternate - staticInputsBeforePos, isValidRslt = isValid(pos > targetLvp ? targetLvp : pos, c, strict, fromSetValid, !0);\n\t }\n\t if (isValidRslt) return !1;\n\t resetMaskSet(), getMaskSet().validPositions = $.extend(!0, {}, validPsClone);\n\t }\n\t }\n\t });\n\t }\n\t return isValidRslt;\n\t }(maskPos, c, strict)), !0 === result && (result = {\n\t pos: maskPos\n\t });\n\t }\n\t if ($.isFunction(opts.postValidation) && !1 !== result && !strict && !0 !== fromSetValid) {\n\t var postResult = opts.postValidation(getBuffer(!0), result, opts);\n\t if (postResult.refreshFromBuffer && postResult.buffer) {\n\t var refresh = postResult.refreshFromBuffer;\n\t refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, postResult.buffer);\n\t }\n\t result = !0 === postResult ? result : postResult;\n\t }\n\t return result.pos === undefined && (result.pos = maskPos), !1 === result && (resetMaskSet(!0), \n\t getMaskSet().validPositions = $.extend(!0, {}, positionsClone)), result;\n\t }\n\t function isMask(pos, strict) {\n\t var test = getTestTemplate(pos).match;\n\t if (\"\" === test.def && (test = getTest(pos).match), null != test.fn) return test.fn;\n\t if (!0 !== strict && pos > -1) {\n\t var tests = getTests(pos);\n\t return tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0);\n\t }\n\t return !1;\n\t }\n\t function seekNext(pos, newBlock) {\n\t var maskL = getMaskSet().maskLength;\n\t if (pos >= maskL) return maskL;\n\t var position = pos;\n\t for (getTests(maskL + 1).length > 1 && (getMaskTemplate(!0, maskL + 1, !0), maskL = getMaskSet().maskLength); ++position < maskL && (!0 === newBlock && (!0 !== getTest(position).match.newBlockMarker || !isMask(position)) || !0 !== newBlock && !isMask(position)); ) ;\n\t return position;\n\t }\n\t function seekPrevious(pos, newBlock) {\n\t var tests, position = pos;\n\t if (position <= 0) return 0;\n\t for (;--position > 0 && (!0 === newBlock && !0 !== getTest(position).match.newBlockMarker || !0 !== newBlock && !isMask(position) && (tests = getTests(position), \n\t tests.length < 2 || 2 === tests.length && \"\" === tests[1].match.def)); ) ;\n\t return position;\n\t }\n\t function getBufferElement(position) {\n\t return getMaskSet().validPositions[position] === undefined ? getPlaceholder(position) : getMaskSet().validPositions[position].input;\n\t }\n\t function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) {\n\t if (event && $.isFunction(opts.onBeforeWrite)) {\n\t var result = opts.onBeforeWrite(event, buffer, caretPos, opts);\n\t if (result) {\n\t if (result.refreshFromBuffer) {\n\t var refresh = result.refreshFromBuffer;\n\t refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer || buffer), \n\t buffer = getBuffer(!0);\n\t }\n\t caretPos !== undefined && (caretPos = result.caret !== undefined ? result.caret : caretPos);\n\t }\n\t }\n\t input !== undefined && (input.inputmask._valueSet(buffer.join(\"\")), caretPos === undefined || event !== undefined && \"blur\" === event.type ? renderColorMask(input, buffer, caretPos) : android && \"input\" === event.type ? setTimeout(function() {\n\t caret(input, caretPos);\n\t }, 0) : caret(input, caretPos), !0 === triggerInputEvent && (skipInputEvent = !0, \n\t $(input).trigger(\"input\")));\n\t }\n\t function getPlaceholder(pos, test, returnPL) {\n\t if (test = test || getTest(pos).match, test.placeholder !== undefined || !0 === returnPL) return $.isFunction(test.placeholder) ? test.placeholder(opts) : test.placeholder;\n\t if (null === test.fn) {\n\t if (pos > -1 && getMaskSet().validPositions[pos] === undefined) {\n\t var prevTest, tests = getTests(pos), staticAlternations = [];\n\t if (tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0)) for (var i = 0; i < tests.length; i++) if (!0 !== tests[i].match.optionality && !0 !== tests[i].match.optionalQuantifier && (null === tests[i].match.fn || prevTest === undefined || !1 !== tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, !0, opts)) && (staticAlternations.push(tests[i]), \n\t null === tests[i].match.fn && (prevTest = tests[i]), staticAlternations.length > 1 && /[0-9a-bA-Z]/.test(staticAlternations[0].match.def))) return opts.placeholder.charAt(pos % opts.placeholder.length);\n\t }\n\t return test.def;\n\t }\n\t return opts.placeholder.charAt(pos % opts.placeholder.length);\n\t }\n\t function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {\n\t function isTemplateMatch(ndx, charCodes) {\n\t return -1 !== getBufferTemplate().slice(ndx, seekNext(ndx)).join(\"\").indexOf(charCodes) && !isMask(ndx) && getTest(ndx).match.nativeDef === charCodes.charAt(charCodes.length - 1);\n\t }\n\t var inputValue = nptvl.slice(), charCodes = \"\", initialNdx = 0, result = undefined;\n\t if (resetMaskSet(), getMaskSet().p = seekNext(-1), !strict) if (!0 !== opts.autoUnmask) {\n\t var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(\"\"), matches = inputValue.join(\"\").match(new RegExp(\"^\" + Inputmask.escapeRegex(staticInput), \"g\"));\n\t matches && matches.length > 0 && (inputValue.splice(0, matches.length * staticInput.length), \n\t initialNdx = seekNext(initialNdx));\n\t } else initialNdx = seekNext(initialNdx);\n\t if ($.each(inputValue, function(ndx, charCode) {\n\t if (charCode !== undefined) {\n\t var keypress = new $.Event(\"_checkval\");\n\t keypress.which = charCode.charCodeAt(0), charCodes += charCode;\n\t var lvp = getLastValidPosition(undefined, !0), lvTest = getMaskSet().validPositions[lvp], nextTest = getTestTemplate(lvp + 1, lvTest ? lvTest.locator.slice() : undefined, lvp);\n\t if (!isTemplateMatch(initialNdx, charCodes) || strict || opts.autoUnmask) {\n\t var pos = strict ? ndx : null == nextTest.match.fn && nextTest.match.optionality && lvp + 1 < getMaskSet().p ? lvp + 1 : getMaskSet().p;\n\t result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, pos), \n\t initialNdx = pos + 1, charCodes = \"\";\n\t } else result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, !0, lvp + 1);\n\t if (!strict && $.isFunction(opts.onBeforeWrite)) {\n\t var fp = result.forwardPosition;\n\t if (result = opts.onBeforeWrite(keypress, getBuffer(), result.forwardPosition, opts), \n\t result.forwardPosition = fp, result && result.refreshFromBuffer) {\n\t var refresh = result.refreshFromBuffer;\n\t refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer), \n\t resetMaskSet(!0), result.caret && (getMaskSet().p = result.caret, result.forwardPosition = result.caret);\n\t }\n\t }\n\t }\n\t }), writeOut) {\n\t var caretPos = undefined;\n\t document.activeElement === input && result && (caretPos = opts.numericInput ? seekPrevious(result.forwardPosition) : result.forwardPosition), \n\t writeBuffer(input, getBuffer(), caretPos, initiatingEvent || new $.Event(\"checkval\"), initiatingEvent && \"input\" === initiatingEvent.type);\n\t }\n\t }\n\t function unmaskedvalue(input) {\n\t if (input) {\n\t if (input.inputmask === undefined) return input.value;\n\t input.inputmask && input.inputmask.refreshValue && EventHandlers.setValueEvent.call(input);\n\t }\n\t var umValue = [], vps = getMaskSet().validPositions;\n\t for (var pndx in vps) vps[pndx].match && null != vps[pndx].match.fn && umValue.push(vps[pndx].input);\n\t var unmaskedValue = 0 === umValue.length ? \"\" : (isRTL ? umValue.reverse() : umValue).join(\"\");\n\t if ($.isFunction(opts.onUnMask)) {\n\t var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(\"\");\n\t unmaskedValue = opts.onUnMask(bufferValue, unmaskedValue, opts);\n\t }\n\t return unmaskedValue;\n\t }\n\t function caret(input, begin, end, notranslate) {\n\t function translatePosition(pos) {\n\t if (!0 !== notranslate && isRTL && \"number\" == typeof pos && (!opts.greedy || \"\" !== opts.placeholder)) {\n\t pos = getBuffer().join(\"\").length - pos;\n\t }\n\t return pos;\n\t }\n\t var range;\n\t if (begin === undefined) return input.setSelectionRange ? (begin = input.selectionStart, \n\t end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0), \n\t range.commonAncestorContainer.parentNode !== input && range.commonAncestorContainer !== input || (begin = range.startOffset, \n\t end = range.endOffset)) : document.selection && document.selection.createRange && (range = document.selection.createRange(), \n\t begin = 0 - range.duplicate().moveStart(\"character\", -input.inputmask._valueGet().length), \n\t end = begin + range.text.length), {\n\t begin: translatePosition(begin),\n\t end: translatePosition(end)\n\t };\n\t if (begin.begin !== undefined && (end = begin.end, begin = begin.begin), \"number\" == typeof begin) {\n\t begin = translatePosition(begin), end = translatePosition(end), end = \"number\" == typeof end ? end : begin;\n\t var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;\n\t if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, mobile || !1 !== opts.insertMode || begin !== end || end++, \n\t input.setSelectionRange) input.selectionStart = begin, input.selectionEnd = end; else if (window.getSelection) {\n\t if (range = document.createRange(), input.firstChild === undefined || null === input.firstChild) {\n\t var textNode = document.createTextNode(\"\");\n\t input.appendChild(textNode);\n\t }\n\t range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length), \n\t range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length), \n\t range.collapse(!0);\n\t var sel = window.getSelection();\n\t sel.removeAllRanges(), sel.addRange(range);\n\t } else input.createTextRange && (range = input.createTextRange(), range.collapse(!0), \n\t range.moveEnd(\"character\", end), range.moveStart(\"character\", begin), range.select());\n\t renderColorMask(input, undefined, {\n\t begin: begin,\n\t end: end\n\t });\n\t }\n\t }\n\t function determineLastRequiredPosition(returnDefinition) {\n\t var pos, testPos, buffer = getBuffer(), bl = buffer.length, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = lvTest !== undefined ? lvTest.locator.slice() : undefined;\n\t for (pos = lvp + 1; pos < buffer.length; pos++) testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), \n\t ndxIntlzr = testPos.locator.slice(), positions[pos] = $.extend(!0, {}, testPos);\n\t var lvTestAlt = lvTest && lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation] : undefined;\n\t for (pos = bl - 1; pos > lvp && (testPos = positions[pos], (testPos.match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && null != testPos.match.fn || null === testPos.match.fn && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAlt.toString().split(\",\")) && \"\" !== getTests(pos)[0].def)) && buffer[pos] === getPlaceholder(pos, testPos.match)); pos--) bl--;\n\t return returnDefinition ? {\n\t l: bl,\n\t def: positions[bl] ? positions[bl].match : undefined\n\t } : bl;\n\t }\n\t function clearOptionalTail(buffer) {\n\t for (var validPos, rl = determineLastRequiredPosition(), bl = buffer.length, lv = getMaskSet().validPositions[getLastValidPosition()]; rl < bl && !isMask(rl, !0) && (validPos = lv !== undefined ? getTestTemplate(rl, lv.locator.slice(\"\"), lv) : getTest(rl)) && !0 !== validPos.match.optionality && (!0 !== validPos.match.optionalQuantifier && !0 !== validPos.match.newBlockMarker || rl + 1 === bl && \"\" === (lv !== undefined ? getTestTemplate(rl + 1, lv.locator.slice(\"\"), lv) : getTest(rl + 1)).match.def); ) rl++;\n\t for (;(validPos = getMaskSet().validPositions[rl - 1]) && validPos && validPos.match.optionality && validPos.input === opts.skipOptionalPartCharacter; ) rl--;\n\t return buffer.splice(rl), buffer;\n\t }\n\t function isComplete(buffer) {\n\t if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);\n\t if (\"*\" === opts.repeat) return undefined;\n\t var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l);\n\t if (lrp.def === undefined || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {\n\t complete = !0;\n\t for (var i = 0; i <= aml; i++) {\n\t var test = getTestTemplate(i).match;\n\t if (null !== test.fn && getMaskSet().validPositions[i] === undefined && !0 !== test.optionality && !0 !== test.optionalQuantifier || null === test.fn && buffer[i] !== getPlaceholder(i, test)) {\n\t complete = !1;\n\t break;\n\t }\n\t }\n\t }\n\t return complete;\n\t }\n\t function handleRemove(input, k, pos, strict) {\n\t if ((opts.numericInput || isRTL) && (k === Inputmask.keyCode.BACKSPACE ? k = Inputmask.keyCode.DELETE : k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE), \n\t isRTL)) {\n\t var pend = pos.end;\n\t pos.end = pos.begin, pos.begin = pend;\n\t }\n\t k === Inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || !1 === opts.insertMode) ? (pos.begin = seekPrevious(pos.begin), \n\t getMaskSet().validPositions[pos.begin] === undefined || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.begin--) : k === Inputmask.keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end, !0) ? pos.end + 1 : seekNext(pos.end) + 1, \n\t getMaskSet().validPositions[pos.begin] === undefined || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.end++), \n\t stripValidPositions(pos.begin, pos.end, !1, strict), !0 !== strict && function() {\n\t if (opts.keepStatic) {\n\t for (var validInputs = [], lastAlt = getLastValidPosition(-1, !0), positionsClone = $.extend(!0, {}, getMaskSet().validPositions), prevAltPos = getMaskSet().validPositions[lastAlt]; lastAlt >= 0; lastAlt--) {\n\t var altPos = getMaskSet().validPositions[lastAlt];\n\t if (altPos) {\n\t if (!0 !== altPos.generatedInput && /[0-9a-bA-Z]/.test(altPos.input) && validInputs.push(altPos.input), \n\t delete getMaskSet().validPositions[lastAlt], altPos.alternation !== undefined && altPos.locator[altPos.alternation] !== prevAltPos.locator[altPos.alternation]) break;\n\t prevAltPos = altPos;\n\t }\n\t }\n\t if (lastAlt > -1) for (getMaskSet().p = seekNext(getLastValidPosition(-1, !0)); validInputs.length > 0; ) {\n\t var keypress = new $.Event(\"keypress\");\n\t keypress.which = validInputs.pop().charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p);\n\t } else getMaskSet().validPositions = $.extend(!0, {}, positionsClone);\n\t }\n\t }();\n\t var lvp = getLastValidPosition(pos.begin, !0);\n\t lvp < pos.begin ? getMaskSet().p = seekNext(lvp) : !0 !== strict && (getMaskSet().p = pos.begin);\n\t }\n\t function initializeColorMask(input) {\n\t function findCaretPos(clientx) {\n\t var caretPos, e = document.createElement(\"span\");\n\t for (var style in computedStyle) isNaN(style) && -1 !== style.indexOf(\"font\") && (e.style[style] = computedStyle[style]);\n\t e.style.textTransform = computedStyle.textTransform, e.style.letterSpacing = computedStyle.letterSpacing, \n\t e.style.position = \"absolute\", e.style.height = \"auto\", e.style.width = \"auto\", \n\t e.style.visibility = \"hidden\", e.style.whiteSpace = \"nowrap\", document.body.appendChild(e);\n\t var itl, inputText = input.inputmask._valueGet(), previousWidth = 0;\n\t for (caretPos = 0, itl = inputText.length; caretPos <= itl; caretPos++) {\n\t if (e.innerHTML += inputText.charAt(caretPos) || \"_\", e.offsetWidth >= clientx) {\n\t var offset1 = clientx - previousWidth, offset2 = e.offsetWidth - clientx;\n\t e.innerHTML = inputText.charAt(caretPos), offset1 -= e.offsetWidth / 3, caretPos = offset1 < offset2 ? caretPos - 1 : caretPos;\n\t break;\n\t }\n\t previousWidth = e.offsetWidth;\n\t }\n\t return document.body.removeChild(e), caretPos;\n\t }\n\t function position() {\n\t colorMask.style.position = \"absolute\", colorMask.style.top = offset.top + \"px\", \n\t colorMask.style.left = offset.left + \"px\", colorMask.style.width = parseInt(input.offsetWidth) - parseInt(computedStyle.paddingLeft) - parseInt(computedStyle.paddingRight) - parseInt(computedStyle.borderLeftWidth) - parseInt(computedStyle.borderRightWidth) + \"px\", \n\t colorMask.style.height = parseInt(input.offsetHeight) - parseInt(computedStyle.paddingTop) - parseInt(computedStyle.paddingBottom) - parseInt(computedStyle.borderTopWidth) - parseInt(computedStyle.borderBottomWidth) + \"px\", \n\t colorMask.style.lineHeight = colorMask.style.height, colorMask.style.zIndex = isNaN(computedStyle.zIndex) ? -1 : computedStyle.zIndex - 1, \n\t colorMask.style.webkitAppearance = \"textfield\", colorMask.style.mozAppearance = \"textfield\", \n\t colorMask.style.Appearance = \"textfield\";\n\t }\n\t var offset = $(input).position(), computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null);\n\t input.parentNode;\n\t colorMask = document.createElement(\"div\"), document.body.appendChild(colorMask);\n\t for (var style in computedStyle) computedStyle.hasOwnProperty(style) && isNaN(style) && \"cssText\" !== style && -1 == style.indexOf(\"webkit\") && (colorMask.style[style] = computedStyle[style]);\n\t input.style.backgroundColor = \"transparent\", input.style.color = \"transparent\", \n\t input.style.webkitAppearance = \"caret\", input.style.mozAppearance = \"caret\", input.style.Appearance = \"caret\", \n\t position(), $(window).on(\"resize\", function(e) {\n\t offset = $(input).position(), computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null), \n\t position();\n\t }), $(input).on(\"click\", function(e) {\n\t return caret(input, findCaretPos(e.clientX)), EventHandlers.clickEvent.call(this, [ e ]);\n\t }), $(input).on(\"keydown\", function(e) {\n\t e.shiftKey || !1 === opts.insertMode || setTimeout(function() {\n\t renderColorMask(input);\n\t }, 0);\n\t });\n\t }\n\t function renderColorMask(input, buffer, caretPos) {\n\t function handleStatic() {\n\t isStatic || null !== test.fn && testPos.input !== undefined ? isStatic && null !== test.fn && testPos.input !== undefined && (isStatic = !1, \n\t maskTemplate += \"\") : (isStatic = !0, maskTemplate += \"\");\n\t }\n\t if (colorMask !== undefined) {\n\t buffer = buffer || getBuffer(), caretPos === undefined ? caretPos = caret(input) : caretPos.begin === undefined && (caretPos = {\n\t begin: caretPos,\n\t end: caretPos\n\t });\n\t var maskTemplate = \"\", isStatic = !1;\n\t if (\"\" != buffer) {\n\t var ndxIntlzr, test, testPos, pos = 0, lvp = getLastValidPosition();\n\t do {\n\t pos === caretPos.begin && document.activeElement === input && (maskTemplate += \"\"), \n\t getMaskSet().validPositions[pos] ? (testPos = getMaskSet().validPositions[pos], \n\t test = testPos.match, ndxIntlzr = testPos.locator.slice(), handleStatic(), maskTemplate += testPos.input) : (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), \n\t test = testPos.match, ndxIntlzr = testPos.locator.slice(), (!1 === opts.jitMasking || pos < lvp || \"number\" == typeof opts.jitMasking && isFinite(opts.jitMasking) && opts.jitMasking > pos) && (handleStatic(), \n\t maskTemplate += getPlaceholder(pos, test))), pos++;\n\t } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || \"\" !== test.def) || lvp > pos);\n\t }\n\t colorMask.innerHTML = maskTemplate;\n\t }\n\t }\n\t maskset = maskset || this.maskset, opts = opts || this.opts;\n\t var undoValue, $el, maxLength, colorMask, valueBuffer, el = this.el, isRTL = this.isRTL, skipKeyPressEvent = !1, skipInputEvent = !1, ignorable = !1, mouseEnter = !1, EventRuler = {\n\t on: function(input, eventName, eventHandler) {\n\t var ev = function(e) {\n\t if (this.inputmask === undefined && \"FORM\" !== this.nodeName) {\n\t var imOpts = $.data(this, \"_inputmask_opts\");\n\t imOpts ? new Inputmask(imOpts).mask(this) : EventRuler.off(this);\n\t } else {\n\t if (\"setvalue\" === e.type || \"FORM\" === this.nodeName || !(this.disabled || this.readOnly && !(\"keydown\" === e.type && e.ctrlKey && 67 === e.keyCode || !1 === opts.tabThrough && e.keyCode === Inputmask.keyCode.TAB))) {\n\t switch (e.type) {\n\t case \"input\":\n\t if (!0 === skipInputEvent) return skipInputEvent = !1, e.preventDefault();\n\t break;\n\t\n\t case \"keydown\":\n\t skipKeyPressEvent = !1, skipInputEvent = !1;\n\t break;\n\t\n\t case \"keypress\":\n\t if (!0 === skipKeyPressEvent) return e.preventDefault();\n\t skipKeyPressEvent = !0;\n\t break;\n\t\n\t case \"click\":\n\t if (iemobile || iphone) {\n\t var that = this, args = arguments;\n\t return setTimeout(function() {\n\t eventHandler.apply(that, args);\n\t }, 0), !1;\n\t }\n\t }\n\t var returnVal = eventHandler.apply(this, arguments);\n\t return !1 === returnVal && (e.preventDefault(), e.stopPropagation()), returnVal;\n\t }\n\t e.preventDefault();\n\t }\n\t };\n\t input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev), \n\t -1 !== $.inArray(eventName, [ \"submit\", \"reset\" ]) ? null != input.form && $(input.form).on(eventName, ev) : $(input).on(eventName, ev);\n\t },\n\t off: function(input, event) {\n\t if (input.inputmask && input.inputmask.events) {\n\t var events;\n\t event ? (events = [], events[event] = input.inputmask.events[event]) : events = input.inputmask.events, \n\t $.each(events, function(eventName, evArr) {\n\t for (;evArr.length > 0; ) {\n\t var ev = evArr.pop();\n\t -1 !== $.inArray(eventName, [ \"submit\", \"reset\" ]) ? null != input.form && $(input.form).off(eventName, ev) : $(input).off(eventName, ev);\n\t }\n\t delete input.inputmask.events[eventName];\n\t });\n\t }\n\t }\n\t }, EventHandlers = {\n\t keydownEvent: function(e) {\n\t var input = this, $input = $(input), k = e.keyCode, pos = caret(input);\n\t if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === Inputmask.keyCode.X && !function(eventName) {\n\t var el = document.createElement(\"input\"), evName = \"on\" + eventName, isSupported = evName in el;\n\t return isSupported || (el.setAttribute(evName, \"return;\"), isSupported = \"function\" == typeof el[evName]), \n\t el = null, isSupported;\n\t }(\"cut\")) e.preventDefault(), handleRemove(input, k, pos), writeBuffer(input, getBuffer(!0), getMaskSet().p, e, input.inputmask._valueGet() !== getBuffer().join(\"\")), \n\t input.inputmask._valueGet() === getBufferTemplate().join(\"\") ? $input.trigger(\"cleared\") : !0 === isComplete(getBuffer()) && $input.trigger(\"complete\"); else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) {\n\t e.preventDefault();\n\t var caretPos = seekNext(getLastValidPosition());\n\t opts.insertMode || caretPos !== getMaskSet().maskLength || e.shiftKey || caretPos--, \n\t caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, !0);\n\t } else k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP ? (e.preventDefault(), \n\t caret(input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || 90 === k && e.ctrlKey) && !0 !== e.altKey ? (checkVal(input, !0, !1, undoValue.split(\"\")), \n\t $input.trigger(\"click\")) : k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey ? !0 === opts.tabThrough && k === Inputmask.keyCode.TAB ? (!0 === e.shiftKey ? (null === getTest(pos.begin).match.fn && (pos.begin = seekNext(pos.begin)), \n\t pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0), \n\t pos.end = seekNext(pos.begin, !0), pos.end < getMaskSet().maskLength && pos.end--), \n\t pos.begin < getMaskSet().maskLength && (e.preventDefault(), caret(input, pos.begin, pos.end))) : e.shiftKey || !1 === opts.insertMode && (k === Inputmask.keyCode.RIGHT ? setTimeout(function() {\n\t var caretPos = caret(input);\n\t caret(input, caretPos.begin);\n\t }, 0) : k === Inputmask.keyCode.LEFT && setTimeout(function() {\n\t var caretPos = caret(input);\n\t caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1);\n\t }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin !== getMaskSet().maskLength ? pos.begin : pos.begin - 1));\n\t opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 !== $.inArray(k, opts.ignorables);\n\t },\n\t keypressEvent: function(e, checkval, writeOut, strict, ndx) {\n\t var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;\n\t if (!(!0 === checkval || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) return k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join(\"\") && (undoValue = getBuffer().join(\"\"), \n\t setTimeout(function() {\n\t $input.trigger(\"change\");\n\t }, 0)), !0;\n\t if (k) {\n\t 46 === k && !1 === e.shiftKey && \"\" !== opts.radixPoint && (k = opts.radixPoint.charCodeAt(0));\n\t var forwardPosition, pos = checkval ? {\n\t begin: ndx,\n\t end: ndx\n\t } : caret(input), c = String.fromCharCode(k);\n\t getMaskSet().writeOutBuffer = !0;\n\t var valResult = isValid(pos, c, strict);\n\t if (!1 !== valResult && (resetMaskSet(!0), forwardPosition = valResult.caret !== undefined ? valResult.caret : checkval ? valResult.pos + 1 : seekNext(valResult.pos), \n\t getMaskSet().p = forwardPosition), !1 !== writeOut && (setTimeout(function() {\n\t opts.onKeyValidation.call(input, k, valResult, opts);\n\t }, 0), getMaskSet().writeOutBuffer && !1 !== valResult)) {\n\t var buffer = getBuffer();\n\t writeBuffer(input, buffer, opts.numericInput && valResult.caret === undefined ? seekPrevious(forwardPosition) : forwardPosition, e, !0 !== checkval), \n\t !0 !== checkval && setTimeout(function() {\n\t !0 === isComplete(buffer) && $input.trigger(\"complete\");\n\t }, 0);\n\t }\n\t if (e.preventDefault(), checkval) return valResult.forwardPosition = forwardPosition, \n\t valResult;\n\t }\n\t },\n\t pasteEvent: function(e) {\n\t var tempValue, input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(!0), caretPos = caret(input);\n\t isRTL && (tempValue = caretPos.end, caretPos.end = caretPos.begin, caretPos.begin = tempValue);\n\t var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);\n\t if (valueBeforeCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join(\"\") && (valueBeforeCaret = \"\"), \n\t valueAfterCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(caretPos.end).join(\"\") && (valueAfterCaret = \"\"), \n\t isRTL && (tempValue = valueBeforeCaret, valueBeforeCaret = valueAfterCaret, valueAfterCaret = tempValue), \n\t window.clipboardData && window.clipboardData.getData) inputValue = valueBeforeCaret + window.clipboardData.getData(\"Text\") + valueAfterCaret; else {\n\t if (!ev.clipboardData || !ev.clipboardData.getData) return !0;\n\t inputValue = valueBeforeCaret + ev.clipboardData.getData(\"text/plain\") + valueAfterCaret;\n\t }\n\t var pasteValue = inputValue;\n\t if ($.isFunction(opts.onBeforePaste)) {\n\t if (!1 === (pasteValue = opts.onBeforePaste(inputValue, opts))) return e.preventDefault();\n\t pasteValue || (pasteValue = inputValue);\n\t }\n\t return checkVal(input, !1, !1, isRTL ? pasteValue.split(\"\").reverse() : pasteValue.toString().split(\"\")), \n\t writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()), e, undoValue !== getBuffer().join(\"\")), \n\t !0 === isComplete(getBuffer()) && $input.trigger(\"complete\"), e.preventDefault();\n\t },\n\t inputFallBackEvent: function(e) {\n\t var input = this, inputValue = input.inputmask._valueGet();\n\t if (getBuffer().join(\"\") !== inputValue) {\n\t var caretPos = caret(input);\n\t if (\".\" === inputValue.charAt(caretPos.begin - 1) && \"\" !== opts.radixPoint && (inputValue = inputValue.split(\"\"), \n\t inputValue[caretPos.begin - 1] = opts.radixPoint.charAt(0), inputValue = inputValue.join(\"\")), \n\t inputValue.charAt(caretPos.begin - 1) === opts.radixPoint && inputValue.length > getBuffer().length) {\n\t var keypress = new $.Event(\"keypress\");\n\t return keypress.which = opts.radixPoint.charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !0, !1, caretPos.begin), \n\t !1;\n\t }\n\t if (inputValue = inputValue.replace(new RegExp(\"(\" + Inputmask.escapeRegex(getBufferTemplate().join(\"\")) + \")*\"), \"\"), \n\t iemobile) {\n\t var inputChar = inputValue.replace(getBuffer().join(\"\"), \"\");\n\t if (1 === inputChar.length) {\n\t var keypress = new $.Event(\"keypress\");\n\t return keypress.which = inputChar.charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !0, !1, getMaskSet().validPositions[caretPos.begin - 1] ? caretPos.begin : caretPos.begin - 1), \n\t !1;\n\t }\n\t }\n\t if (caretPos.begin > inputValue.length && (caret(input, inputValue.length), caretPos = caret(input)), \n\t getBuffer().length - inputValue.length != 1 || inputValue.charAt(caretPos.begin) === getBuffer()[caretPos.begin] || inputValue.charAt(caretPos.begin + 1) === getBuffer()[caretPos.begin] || isMask(caretPos.begin)) {\n\t var stickyParts = [], bufferTemplate = getMaskTemplate(!0, 1).join(\"\");\n\t for (stickyParts.push(inputValue.substr(0, caretPos.begin)), stickyParts.push(inputValue.substr(caretPos.begin)); null === inputValue.match(Inputmask.escapeRegex(bufferTemplate) + \"$\"); ) bufferTemplate = bufferTemplate.slice(1);\n\t inputValue = inputValue.replace(bufferTemplate, \"\"), $.isFunction(opts.onBeforeMask) && (inputValue = opts.onBeforeMask(inputValue, opts) || inputValue), \n\t checkVal(input, !0, !1, inputValue.split(\"\"), e);\n\t var currentPos = caret(input).begin, currentValue = input.inputmask._valueGet(), pos1 = currentValue.indexOf(stickyParts[0]);\n\t if (0 === pos1 && currentPos !== stickyParts[0].length) caret(input, stickyParts[0].length), \n\t android && setTimeout(function() {\n\t caret(input, stickyParts[0].length);\n\t }, 0); else {\n\t for (;null === currentValue.match(Inputmask.escapeRegex(stickyParts[1]) + \"$\"); ) stickyParts[1] = stickyParts[1].substr(1);\n\t var pos2 = currentValue.indexOf(stickyParts[1]);\n\t -1 !== pos2 && \"\" !== stickyParts[1] && currentPos > pos2 && pos2 > pos1 && (caret(input, pos2), \n\t android && setTimeout(function() {\n\t caret(input, pos2);\n\t }, 0));\n\t }\n\t !0 === isComplete(getBuffer()) && $(input).trigger(\"complete\");\n\t } else e.keyCode = Inputmask.keyCode.BACKSPACE, EventHandlers.keydownEvent.call(input, e);\n\t e.preventDefault();\n\t }\n\t },\n\t setValueEvent: function(e) {\n\t this.inputmask.refreshValue = !1;\n\t var input = this, value = input.inputmask._valueGet(!0);\n\t $.isFunction(opts.onBeforeMask) && (value = opts.onBeforeMask(value, opts) || value), \n\t value = value.split(\"\"), checkVal(input, !0, !1, isRTL ? value.reverse() : value), \n\t undoValue = getBuffer().join(\"\"), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join(\"\") && input.inputmask._valueSet(\"\");\n\t },\n\t focusEvent: function(e) {\n\t var input = this, nptValue = input.inputmask._valueGet();\n\t opts.showMaskOnFocus && (!opts.showMaskOnHover || opts.showMaskOnHover && \"\" === nptValue) && (input.inputmask._valueGet() !== getBuffer().join(\"\") ? writeBuffer(input, getBuffer(), seekNext(getLastValidPosition())) : !1 === mouseEnter && caret(input, seekNext(getLastValidPosition()))), \n\t !0 === opts.positionCaretOnTab && !1 === mouseEnter && (writeBuffer(input, getBuffer(), caret(input)), \n\t EventHandlers.clickEvent.apply(input, [ e, !0 ])), undoValue = getBuffer().join(\"\");\n\t },\n\t mouseleaveEvent: function(e) {\n\t var input = this;\n\t if (mouseEnter = !1, opts.clearMaskOnLostFocus && document.activeElement !== input) {\n\t var buffer = getBuffer().slice(), nptValue = input.inputmask._valueGet();\n\t nptValue !== input.getAttribute(\"placeholder\") && \"\" !== nptValue && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join(\"\") ? buffer = [] : clearOptionalTail(buffer), \n\t writeBuffer(input, buffer));\n\t }\n\t },\n\t clickEvent: function(e, tabbed) {\n\t function doRadixFocus(clickPos) {\n\t if (\"\" !== opts.radixPoint) {\n\t var vps = getMaskSet().validPositions;\n\t if (vps[clickPos] === undefined || vps[clickPos].input === getPlaceholder(clickPos)) {\n\t if (clickPos < seekNext(-1)) return !0;\n\t var radixPos = $.inArray(opts.radixPoint, getBuffer());\n\t if (-1 !== radixPos) {\n\t for (var vp in vps) if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) return !1;\n\t return !0;\n\t }\n\t }\n\t }\n\t return !1;\n\t }\n\t var input = this;\n\t setTimeout(function() {\n\t if (document.activeElement === input) {\n\t var selectedCaret = caret(input);\n\t if (tabbed && (isRTL ? selectedCaret.end = selectedCaret.begin : selectedCaret.begin = selectedCaret.end), \n\t selectedCaret.begin === selectedCaret.end) switch (opts.positionCaretOnClick) {\n\t case \"none\":\n\t break;\n\t\n\t case \"radixFocus\":\n\t if (doRadixFocus(selectedCaret.begin)) {\n\t var radixPos = getBuffer().join(\"\").indexOf(opts.radixPoint);\n\t caret(input, opts.numericInput ? seekNext(radixPos) : radixPos);\n\t break;\n\t }\n\t\n\t default:\n\t var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, !0), lastPosition = seekNext(lvclickPosition);\n\t if (clickPosition < lastPosition) caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)); else {\n\t var placeholder = getPlaceholder(lastPosition);\n\t (\"\" !== placeholder && getBuffer()[lastPosition] !== placeholder && !0 !== getTest(lastPosition).match.optionalQuantifier || !isMask(lastPosition) && getTest(lastPosition).match.def === placeholder) && (lastPosition = seekNext(lastPosition)), \n\t caret(input, lastPosition);\n\t }\n\t }\n\t }\n\t }, 0);\n\t },\n\t dblclickEvent: function(e) {\n\t var input = this;\n\t setTimeout(function() {\n\t caret(input, 0, seekNext(getLastValidPosition()));\n\t }, 0);\n\t },\n\t cutEvent: function(e) {\n\t var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e, clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end);\n\t clipboardData.setData(\"text\", isRTL ? clipData.reverse().join(\"\") : clipData.join(\"\")), \n\t document.execCommand && document.execCommand(\"copy\"), handleRemove(input, Inputmask.keyCode.DELETE, pos), \n\t writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join(\"\")), \n\t input.inputmask._valueGet() === getBufferTemplate().join(\"\") && $input.trigger(\"cleared\");\n\t },\n\t blurEvent: function(e) {\n\t var $input = $(this), input = this;\n\t if (input.inputmask) {\n\t var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice();\n\t \"\" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join(\"\") ? buffer = [] : clearOptionalTail(buffer)), \n\t !1 === isComplete(buffer) && (setTimeout(function() {\n\t $input.trigger(\"incomplete\");\n\t }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())), \n\t writeBuffer(input, buffer, undefined, e)), undoValue !== getBuffer().join(\"\") && (undoValue = buffer.join(\"\"), \n\t $input.trigger(\"change\"));\n\t }\n\t },\n\t mouseenterEvent: function(e) {\n\t var input = this;\n\t mouseEnter = !0, document.activeElement !== input && opts.showMaskOnHover && input.inputmask._valueGet() !== getBuffer().join(\"\") && writeBuffer(input, getBuffer());\n\t },\n\t submitEvent: function(e) {\n\t undoValue !== getBuffer().join(\"\") && $el.trigger(\"change\"), opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join(\"\") && el.inputmask._valueSet(\"\"), \n\t opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0), \n\t setTimeout(function() {\n\t writeBuffer(el, getBuffer());\n\t }, 0));\n\t },\n\t resetEvent: function(e) {\n\t el.inputmask.refreshValue = !0, setTimeout(function() {\n\t $el.trigger(\"setvalue\");\n\t }, 0);\n\t }\n\t };\n\t if (actionObj !== undefined) switch (actionObj.action) {\n\t case \"isComplete\":\n\t return el = actionObj.el, isComplete(getBuffer());\n\t\n\t case \"unmaskedvalue\":\n\t return el !== undefined && actionObj.value === undefined || (valueBuffer = actionObj.value, \n\t valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(valueBuffer, opts) || valueBuffer : valueBuffer).split(\"\"), \n\t checkVal(undefined, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(undefined, getBuffer(), 0, opts)), \n\t unmaskedvalue(el);\n\t\n\t case \"mask\":\n\t !function(elem) {\n\t EventRuler.off(elem);\n\t var isSupported = function(input, opts) {\n\t var elementType = input.getAttribute(\"type\"), isSupported = \"INPUT\" === input.tagName && -1 !== $.inArray(elementType, opts.supportsInputType) || input.isContentEditable || \"TEXTAREA\" === input.tagName;\n\t if (!isSupported) if (\"INPUT\" === input.tagName) {\n\t var el = document.createElement(\"input\");\n\t el.setAttribute(\"type\", elementType), isSupported = \"text\" === el.type, el = null;\n\t } else isSupported = \"partial\";\n\t return !1 !== isSupported && function(npt) {\n\t function getter() {\n\t return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== getLastValidPosition() || !0 !== opts.nullable ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join(\"\") : valueGet.call(this) : \"\" : valueGet.call(this);\n\t }\n\t function setter(value) {\n\t valueSet.call(this, value), this.inputmask && $(this).trigger(\"setvalue\");\n\t }\n\t var valueGet, valueSet;\n\t if (!npt.inputmask.__valueGet) {\n\t if (!0 !== opts.noValuePatching) {\n\t if (Object.getOwnPropertyDescriptor) {\n\t \"function\" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = \"object\" == typeof \"test\".__proto__ ? function(object) {\n\t return object.__proto__;\n\t } : function(object) {\n\t return object.constructor.prototype;\n\t });\n\t var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), \"value\") : undefined;\n\t valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, \n\t valueSet = valueProperty.set, Object.defineProperty(npt, \"value\", {\n\t get: getter,\n\t set: setter,\n\t configurable: !0\n\t })) : \"INPUT\" !== npt.tagName && (valueGet = function() {\n\t return this.textContent;\n\t }, valueSet = function(value) {\n\t this.textContent = value;\n\t }, Object.defineProperty(npt, \"value\", {\n\t get: getter,\n\t set: setter,\n\t configurable: !0\n\t }));\n\t } else document.__lookupGetter__ && npt.__lookupGetter__(\"value\") && (valueGet = npt.__lookupGetter__(\"value\"), \n\t valueSet = npt.__lookupSetter__(\"value\"), npt.__defineGetter__(\"value\", getter), \n\t npt.__defineSetter__(\"value\", setter));\n\t npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;\n\t }\n\t npt.inputmask._valueGet = function(overruleRTL) {\n\t return isRTL && !0 !== overruleRTL ? valueGet.call(this.el).split(\"\").reverse().join(\"\") : valueGet.call(this.el);\n\t }, npt.inputmask._valueSet = function(value, overruleRTL) {\n\t valueSet.call(this.el, null === value || value === undefined ? \"\" : !0 !== overruleRTL && isRTL ? value.split(\"\").reverse().join(\"\") : value);\n\t }, valueGet === undefined && (valueGet = function() {\n\t return this.value;\n\t }, valueSet = function(value) {\n\t this.value = value;\n\t }, function(type) {\n\t if ($.valHooks && ($.valHooks[type] === undefined || !0 !== $.valHooks[type].inputmaskpatch)) {\n\t var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {\n\t return elem.value;\n\t }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {\n\t return elem.value = value, elem;\n\t };\n\t $.valHooks[type] = {\n\t get: function(elem) {\n\t if (elem.inputmask) {\n\t if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();\n\t var result = valhookGet(elem);\n\t return -1 !== getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) || !0 !== opts.nullable ? result : \"\";\n\t }\n\t return valhookGet(elem);\n\t },\n\t set: function(elem, value) {\n\t var result, $elem = $(elem);\n\t return result = valhookSet(elem, value), elem.inputmask && $elem.trigger(\"setvalue\"), \n\t result;\n\t },\n\t inputmaskpatch: !0\n\t };\n\t }\n\t }(npt.type), function(npt) {\n\t EventRuler.on(npt, \"mouseenter\", function(event) {\n\t var $input = $(this);\n\t this.inputmask._valueGet() !== getBuffer().join(\"\") && $input.trigger(\"setvalue\");\n\t });\n\t }(npt));\n\t }\n\t }(input), isSupported;\n\t }(elem, opts);\n\t if (!1 !== isSupported && (el = elem, $el = $(el), !0 === opts.colorMask && initializeColorMask(el), \n\t android && (el.hasOwnProperty(\"inputmode\") && (el.inputmode = opts.inputmode, el.setAttribute(\"inputmode\", opts.inputmode)), \n\t \"rtfm\" === opts.androidHack && (!0 !== opts.colorMask && initializeColorMask(el), \n\t el.type = \"password\")), !0 === isSupported && (EventRuler.on(el, \"submit\", EventHandlers.submitEvent), \n\t EventRuler.on(el, \"reset\", EventHandlers.resetEvent), EventRuler.on(el, \"mouseenter\", EventHandlers.mouseenterEvent), \n\t EventRuler.on(el, \"blur\", EventHandlers.blurEvent), EventRuler.on(el, \"focus\", EventHandlers.focusEvent), \n\t EventRuler.on(el, \"mouseleave\", EventHandlers.mouseleaveEvent), !0 !== opts.colorMask && EventRuler.on(el, \"click\", EventHandlers.clickEvent), \n\t EventRuler.on(el, \"dblclick\", EventHandlers.dblclickEvent), EventRuler.on(el, \"paste\", EventHandlers.pasteEvent), \n\t EventRuler.on(el, \"dragdrop\", EventHandlers.pasteEvent), EventRuler.on(el, \"drop\", EventHandlers.pasteEvent), \n\t EventRuler.on(el, \"cut\", EventHandlers.cutEvent), EventRuler.on(el, \"complete\", opts.oncomplete), \n\t EventRuler.on(el, \"incomplete\", opts.onincomplete), EventRuler.on(el, \"cleared\", opts.oncleared), \n\t android || !0 === opts.inputEventOnly || (EventRuler.on(el, \"keydown\", EventHandlers.keydownEvent), \n\t EventRuler.on(el, \"keypress\", EventHandlers.keypressEvent)), EventRuler.on(el, \"compositionstart\", $.noop), \n\t EventRuler.on(el, \"compositionupdate\", $.noop), EventRuler.on(el, \"compositionend\", $.noop), \n\t EventRuler.on(el, \"keyup\", $.noop), EventRuler.on(el, \"input\", EventHandlers.inputFallBackEvent), \n\t EventRuler.on(el, \"beforeinput\", $.noop)), EventRuler.on(el, \"setvalue\", EventHandlers.setValueEvent), \n\t undoValue = getBufferTemplate().join(\"\"), \"\" !== el.inputmask._valueGet(!0) || !1 === opts.clearMaskOnLostFocus || document.activeElement === el)) {\n\t var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(el.inputmask._valueGet(!0), opts) || el.inputmask._valueGet(!0) : el.inputmask._valueGet(!0);\n\t \"\" !== initialValue && checkVal(el, !0, !1, isRTL ? initialValue.split(\"\").reverse() : initialValue.split(\"\"));\n\t var buffer = getBuffer().slice();\n\t !1 === isComplete(buffer) && opts.clearIncomplete && resetMaskSet(), opts.clearMaskOnLostFocus && document.activeElement !== el && (-1 === getLastValidPosition() ? buffer = [] : clearOptionalTail(buffer)), \n\t writeBuffer(el, buffer), document.activeElement === el && caret(el, seekNext(getLastValidPosition()));\n\t }\n\t }(el);\n\t break;\n\t\n\t case \"format\":\n\t return valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(actionObj.value, opts) || actionObj.value : actionObj.value).split(\"\"), \n\t checkVal(undefined, !0, !1, isRTL ? valueBuffer.reverse() : valueBuffer), actionObj.metadata ? {\n\t value: isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\"),\n\t metadata: maskScope.call(this, {\n\t action: \"getmetadata\"\n\t }, maskset, opts)\n\t } : isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\");\n\t\n\t case \"isValid\":\n\t actionObj.value ? (valueBuffer = actionObj.value.split(\"\"), checkVal(undefined, !0, !0, isRTL ? valueBuffer.reverse() : valueBuffer)) : actionObj.value = getBuffer().join(\"\");\n\t for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ;\n\t return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === getBuffer().join(\"\");\n\t\n\t case \"getemptymask\":\n\t return getBufferTemplate().join(\"\");\n\t\n\t case \"remove\":\n\t if (el && el.inputmask) {\n\t $el = $(el), el.inputmask._valueSet(opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(!0)), \n\t EventRuler.off(el);\n\t Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), \"value\") && el.inputmask.__valueGet && Object.defineProperty(el, \"value\", {\n\t get: el.inputmask.__valueGet,\n\t set: el.inputmask.__valueSet,\n\t configurable: !0\n\t }) : document.__lookupGetter__ && el.__lookupGetter__(\"value\") && el.inputmask.__valueGet && (el.__defineGetter__(\"value\", el.inputmask.__valueGet), \n\t el.__defineSetter__(\"value\", el.inputmask.__valueSet)), el.inputmask = undefined;\n\t }\n\t return el;\n\t\n\t case \"getmetadata\":\n\t if ($.isArray(maskset.metadata)) {\n\t var maskTarget = getMaskTemplate(!0, 0, !1).join(\"\");\n\t return $.each(maskset.metadata, function(ndx, mtdt) {\n\t if (mtdt.mask === maskTarget) return maskTarget = mtdt, !1;\n\t }), maskTarget;\n\t }\n\t return maskset.metadata;\n\t }\n\t }\n\t var ua = navigator.userAgent, mobile = /mobile/i.test(ua), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile, android = /android/i.test(ua) && !iemobile;\n\t return Inputmask.prototype = {\n\t dataAttribute: \"data-inputmask\",\n\t defaults: {\n\t placeholder: \"_\",\n\t optionalmarker: {\n\t start: \"[\",\n\t end: \"]\"\n\t },\n\t quantifiermarker: {\n\t start: \"{\",\n\t end: \"}\"\n\t },\n\t groupmarker: {\n\t start: \"(\",\n\t end: \")\"\n\t },\n\t alternatormarker: \"|\",\n\t escapeChar: \"\\\\\",\n\t mask: null,\n\t regex: null,\n\t oncomplete: $.noop,\n\t onincomplete: $.noop,\n\t oncleared: $.noop,\n\t repeat: 0,\n\t greedy: !0,\n\t autoUnmask: !1,\n\t removeMaskOnSubmit: !1,\n\t clearMaskOnLostFocus: !0,\n\t insertMode: !0,\n\t clearIncomplete: !1,\n\t alias: null,\n\t onKeyDown: $.noop,\n\t onBeforeMask: null,\n\t onBeforePaste: function(pastedValue, opts) {\n\t return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(pastedValue, opts) : pastedValue;\n\t },\n\t onBeforeWrite: null,\n\t onUnMask: null,\n\t showMaskOnFocus: !0,\n\t showMaskOnHover: !0,\n\t onKeyValidation: $.noop,\n\t skipOptionalPartCharacter: \" \",\n\t numericInput: !1,\n\t rightAlign: !1,\n\t undoOnEscape: !0,\n\t radixPoint: \"\",\n\t radixPointDefinitionSymbol: undefined,\n\t groupSeparator: \"\",\n\t keepStatic: null,\n\t positionCaretOnTab: !0,\n\t tabThrough: !1,\n\t supportsInputType: [ \"text\", \"tel\", \"password\" ],\n\t ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ],\n\t isComplete: null,\n\t canClearPosition: $.noop,\n\t preValidation: null,\n\t postValidation: null,\n\t staticDefinitionSymbol: undefined,\n\t jitMasking: !1,\n\t nullable: !0,\n\t inputEventOnly: !1,\n\t noValuePatching: !1,\n\t positionCaretOnClick: \"lvp\",\n\t casing: null,\n\t inputmode: \"verbatim\",\n\t colorMask: !1,\n\t androidHack: !1\n\t },\n\t definitions: {\n\t \"9\": {\n\t validator: \"[0-9]\",\n\t cardinality: 1,\n\t definitionSymbol: \"*\"\n\t },\n\t a: {\n\t validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n\t cardinality: 1,\n\t definitionSymbol: \"*\"\n\t },\n\t \"*\": {\n\t validator: function() {\n\t return !0;\n\t },\n\t cardinality: 1\n\t }\n\t },\n\t aliases: {},\n\t masksCache: {},\n\t mask: function(elems) {\n\t function importAttributeOptions(npt, opts, userOptions, dataAttribute) {\n\t function importOption(option, optionData) {\n\t null !== (optionData = optionData !== undefined ? optionData : npt.getAttribute(dataAttribute + \"-\" + option)) && (\"string\" == typeof optionData && (0 === option.indexOf(\"on\") ? optionData = window[optionData] : \"false\" === optionData ? optionData = !1 : \"true\" === optionData && (optionData = !0)), \n\t userOptions[option] = optionData);\n\t }\n\t (\"rtl\" === npt.dir || opts.rightAlign) && (npt.style.textAlign = \"right\"), (\"rtl\" === npt.dir || opts.numericInput) && (npt.dir = \"ltr\", \n\t npt.removeAttribute(\"dir\"), opts.isRTL = !0);\n\t var option, dataoptions, optionData, p, attrOptions = npt.getAttribute(dataAttribute);\n\t if (attrOptions && \"\" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp(\"'\", \"g\"), '\"'), \n\t dataoptions = JSON.parse(\"{\" + attrOptions + \"}\")), dataoptions) {\n\t optionData = undefined;\n\t for (p in dataoptions) if (\"alias\" === p.toLowerCase()) {\n\t optionData = dataoptions[p];\n\t break;\n\t }\n\t }\n\t importOption(\"alias\", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts);\n\t for (option in opts) {\n\t if (dataoptions) {\n\t optionData = undefined;\n\t for (p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) {\n\t optionData = dataoptions[p];\n\t break;\n\t }\n\t }\n\t importOption(option, optionData);\n\t }\n\t return $.extend(!0, opts, userOptions), opts;\n\t }\n\t var that = this;\n\t return \"string\" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), \n\t elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) {\n\t var scopedOpts = $.extend(!0, {}, that.opts);\n\t importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions), that.dataAttribute);\n\t var maskset = generateMaskSet(scopedOpts, that.noMasksCache);\n\t maskset !== undefined && (el.inputmask !== undefined && el.inputmask.remove(), el.inputmask = new Inputmask(undefined, undefined, !0), \n\t el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions), \n\t el.inputmask.isRTL = scopedOpts.isRTL, el.inputmask.el = el, el.inputmask.maskset = maskset, \n\t $.data(el, \"_inputmask_opts\", scopedOpts), maskScope.call(el.inputmask, {\n\t action: \"mask\"\n\t }));\n\t }), elems && elems[0] ? elems[0].inputmask || this : this;\n\t },\n\t option: function(options, noremask) {\n\t return \"string\" == typeof options ? this.opts[options] : \"object\" == typeof options ? ($.extend(this.userOptions, options), \n\t this.el && !0 !== noremask && this.mask(this.el), this) : void 0;\n\t },\n\t unmaskedvalue: function(value) {\n\t return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n\t maskScope.call(this, {\n\t action: \"unmaskedvalue\",\n\t value: value\n\t });\n\t },\n\t remove: function() {\n\t return maskScope.call(this, {\n\t action: \"remove\"\n\t });\n\t },\n\t getemptymask: function() {\n\t return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n\t maskScope.call(this, {\n\t action: \"getemptymask\"\n\t });\n\t },\n\t hasMaskedValue: function() {\n\t return !this.opts.autoUnmask;\n\t },\n\t isComplete: function() {\n\t return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n\t maskScope.call(this, {\n\t action: \"isComplete\"\n\t });\n\t },\n\t getmetadata: function() {\n\t return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n\t maskScope.call(this, {\n\t action: \"getmetadata\"\n\t });\n\t },\n\t isValid: function(value) {\n\t return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n\t maskScope.call(this, {\n\t action: \"isValid\",\n\t value: value\n\t });\n\t },\n\t format: function(value, metadata) {\n\t return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n\t maskScope.call(this, {\n\t action: \"format\",\n\t value: value,\n\t metadata: metadata\n\t });\n\t },\n\t analyseMask: function(mask, regexMask, opts) {\n\t function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {\n\t this.matches = [], this.openGroup = isGroup || !1, this.alternatorGroup = !1, this.isGroup = isGroup || !1, \n\t this.isOptional = isOptional || !1, this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1, \n\t this.quantifier = {\n\t min: 1,\n\t max: 1\n\t };\n\t }\n\t function insertTestDefinition(mtoken, element, position) {\n\t position = position !== undefined ? position : mtoken.matches.length;\n\t var prevMatch = mtoken.matches[position - 1];\n\t if (regexMask) 0 === element.indexOf(\"[\") || escaped ? mtoken.matches.splice(position++, 0, {\n\t fn: new RegExp(element, opts.casing ? \"i\" : \"\"),\n\t cardinality: 1,\n\t optionality: mtoken.isOptional,\n\t newBlockMarker: prevMatch === undefined || prevMatch.def !== element,\n\t casing: null,\n\t def: element,\n\t placeholder: undefined,\n\t nativeDef: element\n\t }) : $.each(element.split(\"\"), function(ndx, lmnt) {\n\t prevMatch = mtoken.matches[position - 1], mtoken.matches.splice(position++, 0, {\n\t fn: null,\n\t cardinality: 0,\n\t optionality: mtoken.isOptional,\n\t newBlockMarker: prevMatch === undefined || prevMatch.def !== lmnt && null !== prevMatch.fn,\n\t casing: null,\n\t def: opts.staticDefinitionSymbol || lmnt,\n\t placeholder: opts.staticDefinitionSymbol !== undefined ? lmnt : undefined,\n\t nativeDef: lmnt\n\t });\n\t }), escaped = !1; else {\n\t var maskdef = (opts.definitions ? opts.definitions[element] : undefined) || Inputmask.prototype.definitions[element];\n\t if (maskdef && !escaped) {\n\t for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) {\n\t var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality;\n\t mtoken.matches.splice(position++, 0, {\n\t fn: validator ? \"string\" == typeof validator ? new RegExp(validator, opts.casing ? \"i\" : \"\") : new function() {\n\t this.test = validator;\n\t }() : new RegExp(\".\"),\n\t cardinality: cardinality || 1,\n\t optionality: mtoken.isOptional,\n\t newBlockMarker: prevMatch === undefined || prevMatch.def !== (maskdef.definitionSymbol || element),\n\t casing: maskdef.casing,\n\t def: maskdef.definitionSymbol || element,\n\t placeholder: maskdef.placeholder,\n\t nativeDef: element\n\t }), prevMatch = mtoken.matches[position - 1];\n\t }\n\t mtoken.matches.splice(position++, 0, {\n\t fn: maskdef.validator ? \"string\" == typeof maskdef.validator ? new RegExp(maskdef.validator, opts.casing ? \"i\" : \"\") : new function() {\n\t this.test = maskdef.validator;\n\t }() : new RegExp(\".\"),\n\t cardinality: maskdef.cardinality,\n\t optionality: mtoken.isOptional,\n\t newBlockMarker: prevMatch === undefined || prevMatch.def !== (maskdef.definitionSymbol || element),\n\t casing: maskdef.casing,\n\t def: maskdef.definitionSymbol || element,\n\t placeholder: maskdef.placeholder,\n\t nativeDef: element\n\t });\n\t } else mtoken.matches.splice(position++, 0, {\n\t fn: null,\n\t cardinality: 0,\n\t optionality: mtoken.isOptional,\n\t newBlockMarker: prevMatch === undefined || prevMatch.def !== element && null !== prevMatch.fn,\n\t casing: null,\n\t def: opts.staticDefinitionSymbol || element,\n\t placeholder: opts.staticDefinitionSymbol !== undefined ? element : undefined,\n\t nativeDef: element\n\t }), escaped = !1;\n\t }\n\t }\n\t function verifyGroupMarker(maskToken) {\n\t maskToken && maskToken.matches && $.each(maskToken.matches, function(ndx, token) {\n\t var nextToken = maskToken.matches[ndx + 1];\n\t (nextToken === undefined || nextToken.matches === undefined || !1 === nextToken.isQuantifier) && token && token.isGroup && (token.isGroup = !1, \n\t regexMask || (insertTestDefinition(token, opts.groupmarker.start, 0), !0 !== token.openGroup && insertTestDefinition(token, opts.groupmarker.end))), \n\t verifyGroupMarker(token);\n\t });\n\t }\n\t function defaultCase() {\n\t if (openenings.length > 0) {\n\t if (currentOpeningToken = openenings[openenings.length - 1], insertTestDefinition(currentOpeningToken, m), \n\t currentOpeningToken.isAlternator) {\n\t alternator = openenings.pop();\n\t for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1;\n\t openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], \n\t currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\n\t }\n\t } else insertTestDefinition(currentToken, m);\n\t }\n\t function reverseTokens(maskToken) {\n\t maskToken.matches = maskToken.matches.reverse();\n\t for (var match in maskToken.matches) if (maskToken.matches.hasOwnProperty(match)) {\n\t var intMatch = parseInt(match);\n\t if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {\n\t var qt = maskToken.matches[match];\n\t maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt);\n\t }\n\t maskToken.matches[match].matches !== undefined ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = function(st) {\n\t return st === opts.optionalmarker.start ? st = opts.optionalmarker.end : st === opts.optionalmarker.end ? st = opts.optionalmarker.start : st === opts.groupmarker.start ? st = opts.groupmarker.end : st === opts.groupmarker.end && (st = opts.groupmarker.start), \n\t st;\n\t }(maskToken.matches[match]);\n\t }\n\t return maskToken;\n\t }\n\t var match, m, openingToken, currentOpeningToken, alternator, lastMatch, groupToken, tokenizer = /(?:[?*+]|\\{[0-9\\+\\*]+(?:,[0-9\\+\\*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, regexTokenizer = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, escaped = !1, currentToken = new MaskToken(), openenings = [], maskTokens = [];\n\t for (regexMask && (opts.optionalmarker.start = undefined, opts.optionalmarker.end = undefined); match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask); ) {\n\t if (m = match[0], regexMask) switch (m.charAt(0)) {\n\t case \"?\":\n\t m = \"{0,1}\";\n\t break;\n\t\n\t case \"+\":\n\t case \"*\":\n\t m = \"{\" + m + \"}\";\n\t }\n\t if (escaped) defaultCase(); else switch (m.charAt(0)) {\n\t case opts.escapeChar:\n\t escaped = !0, regexMask && defaultCase();\n\t break;\n\t\n\t case opts.optionalmarker.end:\n\t case opts.groupmarker.end:\n\t if (openingToken = openenings.pop(), openingToken.openGroup = !1, openingToken !== undefined) if (openenings.length > 0) {\n\t if (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(openingToken), \n\t currentOpeningToken.isAlternator) {\n\t alternator = openenings.pop();\n\t for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1, \n\t alternator.matches[mndx].alternatorGroup = !1;\n\t openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], \n\t currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\n\t }\n\t } else currentToken.matches.push(openingToken); else defaultCase();\n\t break;\n\t\n\t case opts.optionalmarker.start:\n\t openenings.push(new MaskToken(!1, !0));\n\t break;\n\t\n\t case opts.groupmarker.start:\n\t openenings.push(new MaskToken(!0));\n\t break;\n\t\n\t case opts.quantifiermarker.start:\n\t var quantifier = new MaskToken(!1, !1, !0);\n\t m = m.replace(/[{}]/g, \"\");\n\t var mq = m.split(\",\"), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);\n\t if (\"*\" !== mq1 && \"+\" !== mq1 || (mq0 = \"*\" === mq1 ? 0 : 1), quantifier.quantifier = {\n\t min: mq0,\n\t max: mq1\n\t }, openenings.length > 0) {\n\t var matches = openenings[openenings.length - 1].matches;\n\t match = matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), groupToken.matches.push(match), \n\t match = groupToken), matches.push(match), matches.push(quantifier);\n\t } else match = currentToken.matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), \n\t groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), \n\t currentToken.matches.push(quantifier);\n\t break;\n\t\n\t case opts.alternatormarker:\n\t if (openenings.length > 0) {\n\t currentOpeningToken = openenings[openenings.length - 1];\n\t var subToken = currentOpeningToken.matches[currentOpeningToken.matches.length - 1];\n\t lastMatch = currentOpeningToken.openGroup && (subToken.matches === undefined || !1 === subToken.isGroup && !1 === subToken.isAlternator) ? openenings.pop() : currentOpeningToken.matches.pop();\n\t } else lastMatch = currentToken.matches.pop();\n\t if (lastMatch.isAlternator) openenings.push(lastMatch); else if (lastMatch.alternatorGroup ? (alternator = openenings.pop(), \n\t lastMatch.alternatorGroup = !1) : alternator = new MaskToken(!1, !1, !1, !0), alternator.matches.push(lastMatch), \n\t openenings.push(alternator), lastMatch.openGroup) {\n\t lastMatch.openGroup = !1;\n\t var alternatorGroup = new MaskToken(!0);\n\t alternatorGroup.alternatorGroup = !0, openenings.push(alternatorGroup);\n\t }\n\t break;\n\t\n\t default:\n\t defaultCase();\n\t }\n\t }\n\t for (;openenings.length > 0; ) openingToken = openenings.pop(), currentToken.matches.push(openingToken);\n\t return currentToken.matches.length > 0 && (verifyGroupMarker(currentToken), maskTokens.push(currentToken)), \n\t (opts.numericInput || opts.isRTL) && reverseTokens(maskTokens[0]), maskTokens;\n\t }\n\t }, Inputmask.extendDefaults = function(options) {\n\t $.extend(!0, Inputmask.prototype.defaults, options);\n\t }, Inputmask.extendDefinitions = function(definition) {\n\t $.extend(!0, Inputmask.prototype.definitions, definition);\n\t }, Inputmask.extendAliases = function(alias) {\n\t $.extend(!0, Inputmask.prototype.aliases, alias);\n\t }, Inputmask.format = function(value, options, metadata) {\n\t return Inputmask(options).format(value, metadata);\n\t }, Inputmask.unmask = function(value, options) {\n\t return Inputmask(options).unmaskedvalue(value);\n\t }, Inputmask.isValid = function(value, options) {\n\t return Inputmask(options).isValid(value);\n\t }, Inputmask.remove = function(elems) {\n\t $.each(elems, function(ndx, el) {\n\t el.inputmask && el.inputmask.remove();\n\t });\n\t }, Inputmask.escapeRegex = function(str) {\n\t var specials = [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ];\n\t return str.replace(new RegExp(\"(\\\\\" + specials.join(\"|\\\\\") + \")\", \"gim\"), \"\\\\$1\");\n\t }, Inputmask.keyCode = {\n\t ALT: 18,\n\t BACKSPACE: 8,\n\t BACKSPACE_SAFARI: 127,\n\t CAPS_LOCK: 20,\n\t COMMA: 188,\n\t COMMAND: 91,\n\t COMMAND_LEFT: 91,\n\t COMMAND_RIGHT: 93,\n\t CONTROL: 17,\n\t DELETE: 46,\n\t DOWN: 40,\n\t END: 35,\n\t ENTER: 13,\n\t ESCAPE: 27,\n\t HOME: 36,\n\t INSERT: 45,\n\t LEFT: 37,\n\t MENU: 93,\n\t NUMPAD_ADD: 107,\n\t NUMPAD_DECIMAL: 110,\n\t NUMPAD_DIVIDE: 111,\n\t NUMPAD_ENTER: 108,\n\t NUMPAD_MULTIPLY: 106,\n\t NUMPAD_SUBTRACT: 109,\n\t PAGE_DOWN: 34,\n\t PAGE_UP: 33,\n\t PERIOD: 190,\n\t RIGHT: 39,\n\t SHIFT: 16,\n\t SPACE: 32,\n\t TAB: 9,\n\t UP: 38,\n\t WINDOWS: 91,\n\t X: 88\n\t }, Inputmask;\n\t});\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar DEBOUNCE_TIMEOUT = 1000;\n\tvar RESULT_TEMPLATE = '
  • {result}
  • ';\n\t\n\tvar _Voonto = Voonto,\n\t _ = _Voonto._,\n\t $ = _Voonto.$;\n\t\n\tvar PredictiveSearch = function PredictiveSearch(container$, serviceUrl) {\n\t _classCallCheck(this, PredictiveSearch);\n\t\n\t this._input$ = container$.find('[data-voc-krammer-predictive-input]');\n\t this._results$ = container$.find('[data-voc-krammer-predictive-results]');\n\t this.url = serviceUrl;\n\t\n\t this._input$.on('keyup', _.debounce(_search, DEBOUNCE_TIMEOUT).bind(this));\n\t};\n\t\n\texports.default = PredictiveSearch;\n\t\n\t/* Private */\n\t\n\tfunction _search() {\n\t var _this = this;\n\t\n\t var value;\n\t\n\t value = this._input$.val().toLowerCase();\n\t this._results$.empty();\n\t\n\t if (value !== '') {\n\t $.ajax({ url: this.url }).then(function (search) {\n\t for (var i in search) {\n\t var result = search[i].name.toLowerCase();\n\t if (result.indexOf(value) !== -1) {\n\t _this._results$.append(RESULT_TEMPLATE.replace(/{result}/g, result));\n\t }\n\t }\n\t });\n\t }\n\t}\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// krammer.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c29a2bc120daf40c8aee","import pkg from '../package.json';\nimport ArchiveView from './views/archive';\nimport TermView from './views/term';\nimport DateView from './views/date';\nimport FilterView from './views/filter';\nimport Predictive from './views/predictive';\n\nconst {$} = Voonto;\n\nVoonto.ready.then((app) => {\n $('[data-voc-krammer-archive]').each(function() {new ArchiveView($(this));});\n $('[data-voc-krammer-term]').each(function() {new TermView($(this));});\n $('[data-voc-krammer-date]').each(function() {new DateView($(this));});\n $('[data-voc-krammer-filter]').each(function() {new FilterView($(this));});\n $('[data-voc-krammer-predictive]').each(function() {new Predictive($(this), {serviceUrl: app.lookup('vocento.config.krammer.predictiveUrl')});});\n});\n\nexport const VERSION = pkg.version;\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","module.exports = {\n\t\"name\": \"krammer\",\n\t\"version\": \"1.0.4\",\n\t\"description\": \"\",\n\t\"main\": \"src/index.js\",\n\t\"scripts\": {\n\t\t\"start\": \"webpack-dev-server\",\n\t\t\"build\": \"./node_modules/webpack/bin/webpack.js\",\n\t\t\"report\": \"plato -r -d report -l .jshintrc -t krammer src\"\n\t},\n\t\"author\": \"Iván Pérez \",\n\t\"license\": \"SEE LICENSE IN LICENSE.md\",\n\t\"devDependencies\": {\n\t\t\"babel-cli\": \"^6.24.1\",\n\t\t\"babel-core\": \"^6.17.0\",\n\t\t\"babel-loader\": \"^6.2.5\",\n\t\t\"babel-preset-es2015\": \"^6.16.0\",\n\t\t\"chai\": \"^3.5.0\",\n\t\t\"chalk\": \"^1.1.3\",\n\t\t\"html-webpack-plugin\": \"^2.24.1\",\n\t\t\"inputmask\": \"^3.3.6\",\n\t\t\"json-loader\": \"^0.5.4\",\n\t\t\"mocha\": \"^3.1.0\",\n\t\t\"mocha-loader\": \"^1.0.0\",\n\t\t\"webpack\": \"^1.13.3\",\n\t\t\"webpack-shell-plugin\": \"^0.4.3\"\n\t}\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./package.json\n// module id = 1\n// module chunks = 0","const\n OR = 'OR',\n SEMICOLON = encodeURIComponent(';'),\n BRACKETS = encodeURIComponent('[]'),\n ACTIVE = 'active'\n;\n\nconst {$, _} = Voonto;\n\nclass ArchiveView {\n constructor(container$) {\n this.container$ = container$;\n this.inputAll$ = container$.find('input[data-voc-krammer-archive-all-words]');\n this.inputPhrase$ = container$.find('input[data-voc-krammer-archive-exact-phrase]');\n this.inputAny$ = container$.find('input[data-voc-krammer-archive-any-words]');\n this.inputWithout$ = container$.find('input[data-voc-krammer-archive-without-words]');\n this.dayCheckbox$ = container$.find('input[data-voc-krammer-archive-day]');\n this.periodCheckbox$ = container$.find('input[data-voc-krammer-archive-period]');\n this.submit$ = container$.find('input[data-voc-krammer-archive-submit]');\n this.startsAtDay$ = container$.find('input[data-voc-krammer-archive-startsat-day]');\n this.startsAtMonth$ = container$.find('input[data-voc-krammer-archive-startsat-month]');\n this.startsAtYear$ = container$.find('input[data-voc-krammer-archive-startsat-year]');\n this.endsAtDay$ = container$.find('input[data-voc-krammer-archive-endsat-day]');\n this.endsAtMonth$ = container$.find('input[data-voc-krammer-archive-endsat-month]');\n this.endsAtYear$ = container$.find('input[data-voc-krammer-archive-endsat-year]');\n this.sectionFilters$ = container$.find('[data-voc-krammer-archive-section-filter]');\n this.formatFilters$ = container$.find('[data-voc-krammer-archive-format-filter]');\n\n this.bindEvents();\n }\n\n bindEvents() {\n this.container$.on('submit', this.onSubmit.bind(this));\n }\n\n onSubmit(event) {\n if(!this.checkConstraints()) {\n event.preventDefault();\n\n return false;\n }\n\n return this.buildFormAction();\n }\n\n checkConstraints() {\n var rules = [ this.atLeastOneTextCriteriaIsMandatory() ];\n var result = true;\n\n rules.forEach((rule) => {\n if(!rule.isSatisfied) {\n this.container$.find(`[${rule.attribute}]`).text(rule.message);\n this.container$.trigger(\"invalid\", [rule]);\n result = false;\n }\n });\n\n return result;\n }\n\n atLeastOneTextCriteriaIsMandatory() {\n return {\n 'message': 'Al menos un criterio de texto es obligatorio.',\n 'attribute': 'voc-krammer-archive-at-least-one-criteria-is-mandatory',\n 'isSatisfied': (\n [this.inputAll$, this.inputPhrase$, this.inputAny$, this.inputWithout$].map(\n (element) => {\n return $(element).val();\n }).join(\"\").length > 0)\n };\n }\n\n buildFormAction() {\n var all, phrase, any, without, date, action, sections = [], formats = [], base;\n\n [all, phrase, any, without] = [\n $.trim(this.inputAll$.val()),\n `\"${$.trim(this.inputPhrase$.val())}\"`,\n $.trim(this.inputAny$.val()).split(' ').join(` ${OR} `),\n $.trim(this.inputWithout$.val()).split(' ').map((word) => {\n return `-${word}`;\n }).join(' ')\n ];\n\n action = [];\n !_.isEmpty(all) && action.push(all);\n phrase !== `\"\"` && action.push(phrase);\n !_.isEmpty(any) && action.push(any);\n without !== '-' && action.push(without);\n\n if (this.dayCheckbox$.is(':checked')) {\n date = `date=${this.startsAtYear$.val()}${_formatDate(this.startsAtMonth$.val())}${_formatDate(this.startsAtDay$.val())}`;\n } else {\n date = `date=${this.startsAtYear$.val()}${_formatDate(this.startsAtMonth$.val())}${_formatDate(this.startsAtDay$.val())}`;\n date += `${SEMICOLON}${this.endsAtYear$.val()}${_formatDate(this.endsAtMonth$.val())}${_formatDate(this.endsAtDay$.val())}`;\n }\n\n this.sectionFilters$.each(function() {\n const item$ = $(this);\n if (item$.hasClass(ACTIVE)) {sections.push(`section${BRACKETS}=${item$.data('voc-krammer-archive-section-filter')}`);}\n });\n\n this.formatFilters$.each(function() {\n const item$ = $(this);\n if (item$.hasClass(ACTIVE)) {formats.push(`format${BRACKETS}=${item$.data('voc-krammer-archive-format-filter')}`);}\n });\n\n action = `${encodeURIComponent(action.join(' '))}.html`;\n action += `?${date}&${sections.concat(formats).join('&')}`;\n base = this.container$.attr('action') || '';\n\n document.location.href = `${base}${action}`;\n\n return false;\n }\n}\n\nexport default ArchiveView;\n\n/* Private */\n\nfunction _formatDate(d) {\n if (d < 10 && d.length === 1) {d = `0${d}`;}\n return d;\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/archive.js","const {$} = Voonto;\n\nclass TermView {\n constructor(container$) {\n this.container$ = container$;\n this.inputAll$ = container$.find('input[data-voc-krammer-term-all-words]');\n this.submit$ = container$.find('button[data-voc-krammer-term-submit]');\n\n this.bindEvents();\n }\n\n bindEvents() {\n this.container$.on('submit', this.buildFormAction.bind(this));\n }\n\n buildFormAction() {\n var all, action, base;\n\n all = $.trim(this.inputAll$.val());\n\n action = `${encodeURIComponent(all)}.html`;\n base = this.container$.attr('action') || '';\n\n document.location.href = `${base}${action}`;\n\n return false;\n }\n}\n\nexport default TermView;\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/term.js","class DateView {\n constructor(container$) {\n this.container$ = container$;\n this.dayCheckbox$ = container$.find('input[data-voc-krammer-date-day]');\n this.periodCheckbox$ = container$.find('input[data-voc-krammer-date-period]');\n this.submit$ = container$.find('input[data-voc-krammer-date-submit]');\n this.startsAtDay$ = container$.find('input[data-voc-krammer-date-startsat-day]');\n this.startsAtMonth$ = container$.find('input[data-voc-krammer-date-startsat-month]');\n this.startsAtYear$ = container$.find('input[data-voc-krammer-date-startsat-year]');\n this.endsAtDay$ = container$.find('input[data-voc-krammer-date-endsat-day]');\n this.endsAtMonth$ = container$.find('input[data-voc-krammer-date-endsat-month]');\n this.endsAtYear$ = container$.find('input[data-voc-krammer-date-endsat-year]');\n\n this.bindEvents();\n }\n\n bindEvents() {\n this.container$.on('submit', this.buildFormAction.bind(this));\n }\n\n buildFormAction() {\n var date, action, base;\n\n if (this.dayCheckbox$.is(':checked')) {\n date = `${this.startsAtYear$.val()}${_formatDate(this.startsAtMonth$.val())}${_formatDate(this.startsAtDay$.val())}`;\n } else {\n date = `${this.startsAtYear$.val()}${_formatDate(this.startsAtMonth$.val())}${_formatDate(this.startsAtDay$.val())}`;\n date += `-${this.endsAtYear$.val()}${_formatDate(this.endsAtMonth$.val())}${_formatDate(this.endsAtDay$.val())}`;\n }\n\n action = `${date}.html`;\n base = this.container$.attr('action') || '';\n\n document.location.href = `${base}${action}`;\n\n return false;\n }\n}\n\nexport default DateView;\n\n/* Private */\n\nfunction _formatDate(d) {\n if (d < 10 && d.length === 1) {d = `0${d}`;}\n return d;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/date.js","import Inputmask from 'inputmask/dist/inputmask/inputmask.date.extensions';\r\n\r\nconst\r\n SEMICOLON = encodeURIComponent(';'),\r\n BRACKETS = encodeURIComponent('[]'),\r\n DASH = '-'\r\n;\r\n\r\nclass FilterView {\r\n constructor(container$) {\r\n this.container$ = container$;\r\n this.region$ = container$.find('select[data-voc-krammer-filter-region]');\r\n this.section$ = container$.find('select[data-voc-krammer-filter-section]');\r\n this.subsection$ = container$.find('select[data-voc-krammer-filter-subsection]');\r\n this.author$ = container$.find('select[data-voc-krammer-filter-author]');\r\n this.startDate$ = container$.find('input[data-voc-krammer-filter-date-start]');\r\n this.endDate$ = container$.find('input[data-voc-krammer-filter-date-end]');\r\n this.submit$ = container$.find('input[data-voc-krammer-filter-submit]');\r\n\r\n Inputmask('dd-mm-yyyy', {placeholder: 'dd-mm-aaaa'}).mask(this.startDate$);\n Inputmask('dd-mm-yyyy', {placeholder: 'dd-mm-aaaa'}).mask(this.endDate$);\n\r\n this.bindEvents();\r\n }\r\n\r\n bindEvents() {\r\n this.container$.on('submit', this.buildFormAction.bind(this));\r\n }\r\n\r\n buildFormAction() {\r\n var action,\r\n filterType,\r\n textValue,\r\n params,\r\n url,\r\n region = this.region$.val(),\r\n section = this.section$.val(),\r\n subsection = this.subsection$.val(),\r\n author = this.author$.val(),\r\n startDate = this.startDate$.val().trim(),\r\n endDate = this.endDate$.val().trim()\r\n ;\r\n\r\n region = region ? `&edition_filter${BRACKETS}=${region}` : '';\r\n section = section ? `§ion${BRACKETS}=${section}` : '';\r\n subsection = subsection ? `&subsection${BRACKETS}=${subsection}` : '';\r\n author = author ? `&author${BRACKETS}=${author}` : '';\r\n\r\n filterType = this.container$.data('voc-krammer-filter');\r\n action = this.container$.attr('action') || '';\r\n\r\n if (filterType === 'date') {\r\n startDate = startDate ? `${startDate.split('-').reverse().join('')}` : '';\r\n endDate = endDate ? `${DASH}${endDate.split('-').reverse().join('')}` : '';\r\n params = `${startDate}${endDate}.html?filter=true${region}${section}${subsection}${author}`;\r\n } else {\r\n textValue = this.container$.data('voc-krammer-filter-value');\r\n startDate = startDate ? `&date=${startDate.split('-').reverse().join('')}` : '';\r\n endDate = endDate ? `${SEMICOLON}${endDate.split('-').reverse().join('')}` : '';\r\n params = `${textValue}?filter=true${region}${section}${subsection}${author}${startDate}${endDate}`;\r\n }\r\n\r\n url = `${action}${params}`;\r\n document.location.href = url;\r\n\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport default FilterView;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/filter.js","/*!\n* inputmask.date.extensions.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2017 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 3.3.6\n*/\n\n!function(factory) {\n \"function\" == typeof define && define.amd ? define([ \"./dependencyLibs/inputmask.dependencyLib\", \"./inputmask\" ], factory) : \"object\" == typeof exports ? module.exports = factory(require(\"./dependencyLibs/inputmask.dependencyLib\"), require(\"./inputmask\")) : factory(window.dependencyLib || jQuery, window.Inputmask);\n}(function($, Inputmask) {\n function isLeapYear(year) {\n return isNaN(year) || 29 === new Date(year, 2, 0).getDate();\n }\n return Inputmask.extendAliases({\n \"dd/mm/yyyy\": {\n mask: \"1/2/y\",\n placeholder: \"dd/mm/yyyy\",\n regex: {\n val1pre: new RegExp(\"[0-3]\"),\n val1: new RegExp(\"0[1-9]|[12][0-9]|3[01]\"),\n val2pre: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[1-9]|[12][0-9]|3[01])\" + escapedSeparator + \"[01])\");\n },\n val2: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[1-9]|[12][0-9])\" + escapedSeparator + \"(0[1-9]|1[012]))|(30\" + escapedSeparator + \"(0[13-9]|1[012]))|(31\" + escapedSeparator + \"(0[13578]|1[02]))\");\n }\n },\n leapday: \"29/02/\",\n separator: \"/\",\n yearrange: {\n minyear: 1900,\n maxyear: 2099\n },\n isInYearRange: function(chrs, minyear, maxyear) {\n if (isNaN(chrs)) return !1;\n var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))), enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length)));\n return !isNaN(enteredyear) && (minyear <= enteredyear && enteredyear <= maxyear) || !isNaN(enteredyear2) && (minyear <= enteredyear2 && enteredyear2 <= maxyear);\n },\n determinebaseyear: function(minyear, maxyear, hint) {\n var currentyear = new Date().getFullYear();\n if (minyear > currentyear) return minyear;\n if (maxyear < currentyear) {\n for (var maxYearPrefix = maxyear.toString().slice(0, 2), maxYearPostfix = maxyear.toString().slice(2, 4); maxyear < maxYearPrefix + hint; ) maxYearPrefix--;\n var maxxYear = maxYearPrefix + maxYearPostfix;\n return minyear > maxxYear ? minyear : maxxYear;\n }\n if (minyear <= currentyear && currentyear <= maxyear) {\n for (var currentYearPrefix = currentyear.toString().slice(0, 2); maxyear < currentYearPrefix + hint; ) currentYearPrefix--;\n var currentYearAndHint = currentYearPrefix + hint;\n return currentYearAndHint < minyear ? minyear : currentYearAndHint;\n }\n return currentyear;\n },\n onKeyDown: function(e, buffer, caretPos, opts) {\n var $input = $(this);\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n var today = new Date();\n $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()), \n $input.trigger(\"setvalue\");\n }\n },\n getFrontValue: function(mask, buffer, opts) {\n for (var start = 0, length = 0, i = 0; i < mask.length && \"2\" !== mask.charAt(i); i++) {\n var definition = opts.definitions[mask.charAt(i)];\n definition ? (start += length, length = definition.cardinality) : length++;\n }\n return buffer.join(\"\").substr(start, length);\n },\n postValidation: function(buffer, currentResult, opts) {\n var dayMonthValue, year, bufferStr = buffer.join(\"\");\n return 0 === opts.mask.indexOf(\"y\") ? (year = bufferStr.substr(0, 4), dayMonthValue = bufferStr.substring(4, 10)) : (year = bufferStr.substring(6, 10), \n dayMonthValue = bufferStr.substr(0, 6)), currentResult && (dayMonthValue !== opts.leapday || isLeapYear(year));\n },\n definitions: {\n \"1\": {\n validator: function(chrs, maskset, pos, strict, opts) {\n var isValid = opts.regex.val1.test(chrs);\n return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === \"-./\".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val1.test(\"0\" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = \"0\", \n {\n refreshFromBuffer: {\n start: pos - 1,\n end: pos\n },\n pos: pos,\n c: chrs.charAt(0)\n });\n },\n cardinality: 2,\n prevalidator: [ {\n validator: function(chrs, maskset, pos, strict, opts) {\n var pchrs = chrs;\n isNaN(maskset.buffer[pos + 1]) || (pchrs += maskset.buffer[pos + 1]);\n var isValid = 1 === pchrs.length ? opts.regex.val1pre.test(pchrs) : opts.regex.val1.test(pchrs);\n if (!strict && !isValid) {\n if (isValid = opts.regex.val1.test(chrs + \"0\")) return maskset.buffer[pos] = chrs, \n maskset.buffer[++pos] = \"0\", {\n pos: pos,\n c: \"0\"\n };\n if (isValid = opts.regex.val1.test(\"0\" + chrs)) return maskset.buffer[pos] = \"0\", \n pos++, {\n pos: pos\n };\n }\n return isValid;\n },\n cardinality: 1\n } ]\n },\n \"2\": {\n validator: function(chrs, maskset, pos, strict, opts) {\n var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);\n -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = \"01\" + opts.separator);\n var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs);\n return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === \"-./\".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val2(opts.separator).test(frontValue + \"0\" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = \"0\", \n {\n refreshFromBuffer: {\n start: pos - 1,\n end: pos\n },\n pos: pos,\n c: chrs.charAt(0)\n });\n },\n cardinality: 2,\n prevalidator: [ {\n validator: function(chrs, maskset, pos, strict, opts) {\n isNaN(maskset.buffer[pos + 1]) || (chrs += maskset.buffer[pos + 1]);\n var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);\n -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = \"01\" + opts.separator);\n var isValid = 1 === chrs.length ? opts.regex.val2pre(opts.separator).test(frontValue + chrs) : opts.regex.val2(opts.separator).test(frontValue + chrs);\n return strict || isValid || !(isValid = opts.regex.val2(opts.separator).test(frontValue + \"0\" + chrs)) ? isValid : (maskset.buffer[pos] = \"0\", \n pos++, {\n pos: pos\n });\n },\n cardinality: 1\n } ]\n },\n y: {\n validator: function(chrs, maskset, pos, strict, opts) {\n return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\n },\n cardinality: 4,\n prevalidator: [ {\n validator: function(chrs, maskset, pos, strict, opts) {\n var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\n if (!strict && !isValid) {\n var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + \"0\").toString().slice(0, 1);\n if (isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), \n {\n pos: pos\n };\n if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + \"0\").toString().slice(0, 2), \n isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), \n maskset.buffer[pos++] = yearPrefix.charAt(1), {\n pos: pos\n };\n }\n return isValid;\n },\n cardinality: 1\n }, {\n validator: function(chrs, maskset, pos, strict, opts) {\n var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\n if (!strict && !isValid) {\n var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2);\n if (isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(1), \n {\n pos: pos\n };\n if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2), \n isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos - 1] = yearPrefix.charAt(0), \n maskset.buffer[pos++] = yearPrefix.charAt(1), maskset.buffer[pos++] = chrs.charAt(0), \n {\n refreshFromBuffer: {\n start: pos - 3,\n end: pos\n },\n pos: pos\n };\n }\n return isValid;\n },\n cardinality: 2\n }, {\n validator: function(chrs, maskset, pos, strict, opts) {\n return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\n },\n cardinality: 3\n } ]\n }\n },\n insertMode: !1,\n autoUnmask: !1\n },\n \"mm/dd/yyyy\": {\n placeholder: \"mm/dd/yyyy\",\n alias: \"dd/mm/yyyy\",\n regex: {\n val2pre: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[13-9]|1[012])\" + escapedSeparator + \"[0-3])|(02\" + escapedSeparator + \"[0-2])\");\n },\n val2: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])\" + escapedSeparator + \"30)|((0[13578]|1[02])\" + escapedSeparator + \"31)\");\n },\n val1pre: new RegExp(\"[01]\"),\n val1: new RegExp(\"0[1-9]|1[012]\")\n },\n leapday: \"02/29/\",\n onKeyDown: function(e, buffer, caretPos, opts) {\n var $input = $(this);\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n var today = new Date();\n $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), \n $input.trigger(\"setvalue\");\n }\n }\n },\n \"yyyy/mm/dd\": {\n mask: \"y/1/2\",\n placeholder: \"yyyy/mm/dd\",\n alias: \"mm/dd/yyyy\",\n leapday: \"/02/29\",\n onKeyDown: function(e, buffer, caretPos, opts) {\n var $input = $(this);\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n var today = new Date();\n $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()), \n $input.trigger(\"setvalue\");\n }\n }\n },\n \"dd.mm.yyyy\": {\n mask: \"1.2.y\",\n placeholder: \"dd.mm.yyyy\",\n leapday: \"29.02.\",\n separator: \".\",\n alias: \"dd/mm/yyyy\"\n },\n \"dd-mm-yyyy\": {\n mask: \"1-2-y\",\n placeholder: \"dd-mm-yyyy\",\n leapday: \"29-02-\",\n separator: \"-\",\n alias: \"dd/mm/yyyy\"\n },\n \"mm.dd.yyyy\": {\n mask: \"1.2.y\",\n placeholder: \"mm.dd.yyyy\",\n leapday: \"02.29.\",\n separator: \".\",\n alias: \"mm/dd/yyyy\"\n },\n \"mm-dd-yyyy\": {\n mask: \"1-2-y\",\n placeholder: \"mm-dd-yyyy\",\n leapday: \"02-29-\",\n separator: \"-\",\n alias: \"mm/dd/yyyy\"\n },\n \"yyyy.mm.dd\": {\n mask: \"y.1.2\",\n placeholder: \"yyyy.mm.dd\",\n leapday: \".02.29\",\n separator: \".\",\n alias: \"yyyy/mm/dd\"\n },\n \"yyyy-mm-dd\": {\n mask: \"y-1-2\",\n placeholder: \"yyyy-mm-dd\",\n leapday: \"-02-29\",\n separator: \"-\",\n alias: \"yyyy/mm/dd\"\n },\n datetime: {\n mask: \"1/2/y h:s\",\n placeholder: \"dd/mm/yyyy hh:mm\",\n alias: \"dd/mm/yyyy\",\n regex: {\n hrspre: new RegExp(\"[012]\"),\n hrs24: new RegExp(\"2[0-4]|1[3-9]\"),\n hrs: new RegExp(\"[01][0-9]|2[0-4]\"),\n ampm: new RegExp(\"^[a|p|A|P][m|M]\"),\n mspre: new RegExp(\"[0-5]\"),\n ms: new RegExp(\"[0-5][0-9]\")\n },\n timeseparator: \":\",\n hourFormat: \"24\",\n definitions: {\n h: {\n validator: function(chrs, maskset, pos, strict, opts) {\n if (\"24\" === opts.hourFormat && 24 === parseInt(chrs, 10)) return maskset.buffer[pos - 1] = \"0\", \n maskset.buffer[pos] = \"0\", {\n refreshFromBuffer: {\n start: pos - 1,\n end: pos\n },\n c: \"0\"\n };\n var isValid = opts.regex.hrs.test(chrs);\n if (!strict && !isValid && (chrs.charAt(1) === opts.timeseparator || -1 !== \"-.:\".indexOf(chrs.charAt(1))) && (isValid = opts.regex.hrs.test(\"0\" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = \"0\", \n maskset.buffer[pos] = chrs.charAt(0), pos++, {\n refreshFromBuffer: {\n start: pos - 2,\n end: pos\n },\n pos: pos,\n c: opts.timeseparator\n };\n if (isValid && \"24\" !== opts.hourFormat && opts.regex.hrs24.test(chrs)) {\n var tmp = parseInt(chrs, 10);\n return 24 === tmp ? (maskset.buffer[pos + 5] = \"a\", maskset.buffer[pos + 6] = \"m\") : (maskset.buffer[pos + 5] = \"p\", \n maskset.buffer[pos + 6] = \"m\"), tmp -= 12, tmp < 10 ? (maskset.buffer[pos] = tmp.toString(), \n maskset.buffer[pos - 1] = \"0\") : (maskset.buffer[pos] = tmp.toString().charAt(1), \n maskset.buffer[pos - 1] = tmp.toString().charAt(0)), {\n refreshFromBuffer: {\n start: pos - 1,\n end: pos + 6\n },\n c: maskset.buffer[pos]\n };\n }\n return isValid;\n },\n cardinality: 2,\n prevalidator: [ {\n validator: function(chrs, maskset, pos, strict, opts) {\n var isValid = opts.regex.hrspre.test(chrs);\n return strict || isValid || !(isValid = opts.regex.hrs.test(\"0\" + chrs)) ? isValid : (maskset.buffer[pos] = \"0\", \n pos++, {\n pos: pos\n });\n },\n cardinality: 1\n } ]\n },\n s: {\n validator: \"[0-5][0-9]\",\n cardinality: 2,\n prevalidator: [ {\n validator: function(chrs, maskset, pos, strict, opts) {\n var isValid = opts.regex.mspre.test(chrs);\n return strict || isValid || !(isValid = opts.regex.ms.test(\"0\" + chrs)) ? isValid : (maskset.buffer[pos] = \"0\", \n pos++, {\n pos: pos\n });\n },\n cardinality: 1\n } ]\n },\n t: {\n validator: function(chrs, maskset, pos, strict, opts) {\n return opts.regex.ampm.test(chrs + \"m\");\n },\n casing: \"lower\",\n cardinality: 1\n }\n },\n insertMode: !1,\n autoUnmask: !1\n },\n datetime12: {\n mask: \"1/2/y h:s t\\\\m\",\n placeholder: \"dd/mm/yyyy hh:mm xm\",\n alias: \"datetime\",\n hourFormat: \"12\"\n },\n \"mm/dd/yyyy hh:mm xm\": {\n mask: \"1/2/y h:s t\\\\m\",\n placeholder: \"mm/dd/yyyy hh:mm xm\",\n alias: \"datetime12\",\n regex: {\n val2pre: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[13-9]|1[012])\" + escapedSeparator + \"[0-3])|(02\" + escapedSeparator + \"[0-2])\");\n },\n val2: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])\" + escapedSeparator + \"30)|((0[13578]|1[02])\" + escapedSeparator + \"31)\");\n },\n val1pre: new RegExp(\"[01]\"),\n val1: new RegExp(\"0[1-9]|1[012]\")\n },\n leapday: \"02/29/\",\n onKeyDown: function(e, buffer, caretPos, opts) {\n var $input = $(this);\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n var today = new Date();\n $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), \n $input.trigger(\"setvalue\");\n }\n }\n },\n \"hh:mm t\": {\n mask: \"h:s t\\\\m\",\n placeholder: \"hh:mm xm\",\n alias: \"datetime\",\n hourFormat: \"12\"\n },\n \"h:s t\": {\n mask: \"h:s t\\\\m\",\n placeholder: \"hh:mm xm\",\n alias: \"datetime\",\n hourFormat: \"12\"\n },\n \"hh:mm:ss\": {\n mask: \"h:s:s\",\n placeholder: \"hh:mm:ss\",\n alias: \"datetime\",\n autoUnmask: !1\n },\n \"hh:mm\": {\n mask: \"h:s\",\n placeholder: \"hh:mm\",\n alias: \"datetime\",\n autoUnmask: !1\n },\n date: {\n alias: \"dd/mm/yyyy\"\n },\n \"mm/yyyy\": {\n mask: \"1/y\",\n placeholder: \"mm/yyyy\",\n leapday: \"donotuse\",\n separator: \"/\",\n alias: \"mm/dd/yyyy\"\n },\n shamsi: {\n regex: {\n val2pre: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"[0-3])\");\n },\n val2: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[1-9]|1[012])\" + escapedSeparator + \"30)|((0[1-6])\" + escapedSeparator + \"31)\");\n },\n val1pre: new RegExp(\"[01]\"),\n val1: new RegExp(\"0[1-9]|1[012]\")\n },\n yearrange: {\n minyear: 1300,\n maxyear: 1499\n },\n mask: \"y/1/2\",\n leapday: \"/12/30\",\n placeholder: \"yyyy/mm/dd\",\n alias: \"mm/dd/yyyy\",\n clearIncomplete: !0\n },\n \"yyyy-mm-dd hh:mm:ss\": {\n mask: \"y-1-2 h:s:s\",\n placeholder: \"yyyy-mm-dd hh:mm:ss\",\n alias: \"datetime\",\n separator: \"-\",\n leapday: \"-02-29\",\n regex: {\n val2pre: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[13-9]|1[012])\" + escapedSeparator + \"[0-3])|(02\" + escapedSeparator + \"[0-2])\");\n },\n val2: function(separator) {\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\n return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])\" + escapedSeparator + \"30)|((0[13578]|1[02])\" + escapedSeparator + \"31)\");\n },\n val1pre: new RegExp(\"[01]\"),\n val1: new RegExp(\"0[1-9]|1[012]\")\n },\n onKeyDown: function(e, buffer, caretPos, opts) {}\n }\n }), Inputmask;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inputmask/dist/inputmask/inputmask.date.extensions.js\n// module id = 6\n// module chunks = 0","/*!\n* dependencyLibs/inputmask.dependencyLib.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2017 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 3.3.6\n*/\n\n!function(factory) {\n \"function\" == typeof define && define.amd ? define([ \"../global/window\", \"../global/document\" ], factory) : \"object\" == typeof exports ? module.exports = factory(require(\"../global/window\"), require(\"../global/document\")) : window.dependencyLib = factory(window, document);\n}(function(window, document) {\n function indexOf(list, elem) {\n for (var i = 0, len = list.length; i < len; i++) if (list[i] === elem) return i;\n return -1;\n }\n function type(obj) {\n return null == obj ? obj + \"\" : \"object\" == typeof obj || \"function\" == typeof obj ? class2type[class2type.toString.call(obj)] || \"object\" : typeof obj;\n }\n function isWindow(obj) {\n return null != obj && obj === obj.window;\n }\n function isArraylike(obj) {\n var length = \"length\" in obj && obj.length, ltype = type(obj);\n return \"function\" !== ltype && !isWindow(obj) && (!(1 !== obj.nodeType || !length) || (\"array\" === ltype || 0 === length || \"number\" == typeof length && length > 0 && length - 1 in obj));\n }\n function isValidElement(elem) {\n return elem instanceof Element;\n }\n function DependencyLib(elem) {\n return elem instanceof DependencyLib ? elem : this instanceof DependencyLib ? void (void 0 !== elem && null !== elem && elem !== window && (this[0] = elem.nodeName ? elem : void 0 !== elem[0] && elem[0].nodeName ? elem[0] : document.querySelector(elem), \n void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new DependencyLib(elem);\n }\n for (var class2type = {}, classTypes = \"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), nameNdx = 0; nameNdx < classTypes.length; nameNdx++) class2type[\"[object \" + classTypes[nameNdx] + \"]\"] = classTypes[nameNdx].toLowerCase();\n return DependencyLib.prototype = {\n on: function(events, handler) {\n if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(\" \"), endx = 0; endx < _events.length; endx++) {\n var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n !function(ev, namespace) {\n elem.addEventListener ? elem.addEventListener(ev, handler, !1) : elem.attachEvent && elem.attachEvent(\"on\" + ev, handler), \n eventRegistry[ev] = eventRegistry[ev] || {}, eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [], \n eventRegistry[ev][namespace].push(handler);\n }(ev, namespace);\n }\n return this;\n },\n off: function(events, handler) {\n if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(\" \"), endx = 0; endx < _events.length; endx++) for (var nsEvent = _events[endx].split(\".\"), offEvents = function(ev, namespace) {\n var hndx, hndL, evts = [];\n if (ev.length > 0) if (void 0 === handler) for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) evts.push({\n ev: ev,\n namespace: namespace && namespace.length > 0 ? namespace : \"global\",\n handler: eventRegistry[ev][namespace][hndx]\n }); else evts.push({\n ev: ev,\n namespace: namespace && namespace.length > 0 ? namespace : \"global\",\n handler: handler\n }); else if (namespace.length > 0) for (var evNdx in eventRegistry) for (var nmsp in eventRegistry[evNdx]) if (nmsp === namespace) if (void 0 === handler) for (hndx = 0, \n hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) evts.push({\n ev: evNdx,\n namespace: nmsp,\n handler: eventRegistry[evNdx][nmsp][hndx]\n }); else evts.push({\n ev: evNdx,\n namespace: nmsp,\n handler: handler\n });\n return evts;\n }(nsEvent[0], nsEvent[1]), i = 0, offEventsL = offEvents.length; i < offEventsL; i++) !function(ev, namespace, handler) {\n if (ev in eventRegistry == 1) if (elem.removeEventListener ? elem.removeEventListener(ev, handler, !1) : elem.detachEvent && elem.detachEvent(\"on\" + ev, handler), \n \"global\" === namespace) for (var nmsp in eventRegistry[ev]) eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1); else eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);\n }(offEvents[i].ev, offEvents[i].namespace, offEvents[i].handler);\n return this;\n },\n trigger: function(events) {\n if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = \"string\" == typeof events ? events.split(\" \") : [ events.type ], endx = 0; endx < _events.length; endx++) {\n var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n if (void 0 !== document && \"global\" === namespace) {\n var evnt, i, params = {\n bubbles: !1,\n cancelable: !0,\n detail: Array.prototype.slice.call(arguments, 1)\n };\n if (document.createEvent) {\n try {\n evnt = new CustomEvent(ev, params);\n } catch (e) {\n evnt = document.createEvent(\"CustomEvent\"), evnt.initCustomEvent(ev, params.bubbles, params.cancelable, params.detail);\n }\n events.type && DependencyLib.extend(evnt, events), elem.dispatchEvent(evnt);\n } else evnt = document.createEventObject(), evnt.eventType = ev, events.type && DependencyLib.extend(evnt, events), \n elem.fireEvent(\"on\" + evnt.eventType, evnt);\n } else if (void 0 !== eventRegistry[ev]) if (arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]), \n \"global\" === namespace) for (var nmsp in eventRegistry[ev]) for (i = 0; i < eventRegistry[ev][nmsp].length; i++) eventRegistry[ev][nmsp][i].apply(elem, arguments); else for (i = 0; i < eventRegistry[ev][namespace].length; i++) eventRegistry[ev][namespace][i].apply(elem, arguments);\n }\n return this;\n },\n position: function() {\n if (isValidElement(this[0])) return {\n top: this[0].offsetTop,\n left: this[0].offsetLeft\n };\n }\n }, DependencyLib.isFunction = function(obj) {\n return \"function\" === type(obj);\n }, DependencyLib.noop = function() {}, DependencyLib.isArray = Array.isArray, DependencyLib.inArray = function(elem, arr, i) {\n return null == arr ? -1 : indexOf(arr, elem);\n }, DependencyLib.valHooks = void 0, DependencyLib.isPlainObject = function(obj) {\n return \"object\" === type(obj) && !obj.nodeType && !isWindow(obj) && !(obj.constructor && !class2type.hasOwnProperty.call(obj.constructor.prototype, \"isPrototypeOf\"));\n }, DependencyLib.extend = function() {\n var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1;\n for (\"boolean\" == typeof target && (deep = target, target = arguments[i] || {}, \n i++), \"object\" == typeof target || DependencyLib.isFunction(target) || (target = {}), \n i === length && (target = this, i--); i < length; i++) if (null != (options = arguments[i])) for (name in options) src = target[name], \n copy = options[name], target !== copy && (deep && copy && (DependencyLib.isPlainObject(copy) || (copyIsArray = DependencyLib.isArray(copy))) ? (copyIsArray ? (copyIsArray = !1, \n clone = src && DependencyLib.isArray(src) ? src : []) : clone = src && DependencyLib.isPlainObject(src) ? src : {}, \n target[name] = DependencyLib.extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy));\n return target;\n }, DependencyLib.each = function(obj, callback) {\n var i = 0;\n if (isArraylike(obj)) for (var length = obj.length; i < length && !1 !== callback.call(obj[i], i, obj[i]); i++) ; else for (i in obj) if (!1 === callback.call(obj[i], i, obj[i])) break;\n return obj;\n }, DependencyLib.map = function(elems, callback) {\n var value, i = 0, length = elems.length, isArray = isArraylike(elems), ret = [];\n if (isArray) for (;i < length; i++) null != (value = callback(elems[i], i)) && ret.push(value); else for (i in elems) null != (value = callback(elems[i], i)) && ret.push(value);\n return [].concat(ret);\n }, DependencyLib.data = function(owner, key, value) {\n if (void 0 === value) return owner.__data ? owner.__data[key] : null;\n owner.__data = owner.__data || {}, owner.__data[key] = value;\n }, DependencyLib.Event = function(event, params) {\n params = params || {\n bubbles: !1,\n cancelable: !1,\n detail: void 0\n };\n var evt = document.createEvent(\"CustomEvent\");\n return evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail), \n evt;\n }, DependencyLib.Event.prototype = window.Event.prototype, DependencyLib;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js\n// module id = 7\n// module chunks = 0","/*!\n* global/window.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2017 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 3.3.6\n*/\n\n\"function\" == typeof define && define.amd ? define(function() {\n return window;\n}) : \"object\" == typeof exports && (module.exports = window);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inputmask/dist/inputmask/global/window.js\n// module id = 8\n// module chunks = 0","/*!\n* global/document.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2017 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 3.3.6\n*/\n\n\"function\" == typeof define && define.amd ? define(function() {\n return document;\n}) : \"object\" == typeof exports && (module.exports = document);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inputmask/dist/inputmask/global/document.js\n// module id = 9\n// module chunks = 0","/*!\n* inputmask.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2017 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 3.3.6\n*/\n\n!function(factory) {\n \"function\" == typeof define && define.amd ? define([ \"./dependencyLibs/inputmask.dependencyLib\", \"./global/window\", \"./global/document\" ], factory) : \"object\" == typeof exports ? module.exports = factory(require(\"./dependencyLibs/inputmask.dependencyLib\"), require(\"./global/window\"), require(\"./global/document\")) : window.Inputmask = factory(window.dependencyLib || jQuery, window, document);\n}(function($, window, document, undefined) {\n function Inputmask(alias, options, internal) {\n if (!(this instanceof Inputmask)) return new Inputmask(alias, options, internal);\n this.el = undefined, this.events = {}, this.maskset = undefined, this.refreshValue = !1, \n !0 !== internal && ($.isPlainObject(alias) ? options = alias : (options = options || {}, \n options.alias = alias), this.opts = $.extend(!0, {}, this.defaults, options), this.noMasksCache = options && options.definitions !== undefined, \n this.userOptions = options || {}, this.isRTL = this.opts.numericInput, resolveAlias(this.opts.alias, options, this.opts));\n }\n function resolveAlias(aliasStr, options, opts) {\n var aliasDefinition = Inputmask.prototype.aliases[aliasStr];\n return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, undefined, opts), \n $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr), \n !1);\n }\n function generateMaskSet(opts, nocache) {\n function generateMask(mask, metadata, opts) {\n var regexMask = !1;\n if (null !== mask && \"\" !== mask || (regexMask = null !== opts.regex, regexMask ? (mask = opts.regex, \n mask = mask.replace(/^(\\^)(.*)(\\$)$/, \"$2\")) : mask = \"*{*}\"), 1 === mask.length && !1 === opts.greedy && 0 !== opts.repeat && (opts.placeholder = \"\"), \n opts.repeat > 0 || \"*\" === opts.repeat || \"+\" === opts.repeat) {\n var repeatStart = \"*\" === opts.repeat ? 0 : \"+\" === opts.repeat ? 1 : opts.repeat;\n mask = opts.groupmarker.start + mask + opts.groupmarker.end + opts.quantifiermarker.start + repeatStart + \",\" + opts.repeat + opts.quantifiermarker.end;\n }\n var masksetDefinition, maskdefKey = regexMask ? \"regex_\" + opts.regex : opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask;\n return Inputmask.prototype.masksCache[maskdefKey] === undefined || !0 === nocache ? (masksetDefinition = {\n mask: mask,\n maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),\n validPositions: {},\n _buffer: undefined,\n buffer: undefined,\n tests: {},\n metadata: metadata,\n maskLength: undefined\n }, !0 !== nocache && (Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition, \n masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]), \n masksetDefinition;\n }\n if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) {\n if (opts.mask.length > 1) {\n opts.keepStatic = null === opts.keepStatic || opts.keepStatic;\n var altMask = opts.groupmarker.start;\n return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function(ndx, msk) {\n altMask.length > 1 && (altMask += opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start), \n msk.mask === undefined || $.isFunction(msk.mask) ? altMask += msk : altMask += msk.mask;\n }), altMask += opts.groupmarker.end, generateMask(altMask, opts.mask, opts);\n }\n opts.mask = opts.mask.pop();\n }\n return opts.mask && opts.mask.mask !== undefined && !$.isFunction(opts.mask.mask) ? generateMask(opts.mask.mask, opts.mask, opts) : generateMask(opts.mask, opts.mask, opts);\n }\n function maskScope(actionObj, maskset, opts) {\n function getMaskTemplate(baseOnInput, minimalPos, includeMode) {\n minimalPos = minimalPos || 0;\n var ndxIntlzr, test, testPos, maskTemplate = [], pos = 0, lvp = getLastValidPosition();\n -1 === (maxLength = el !== undefined ? el.maxLength : undefined) && (maxLength = undefined);\n do {\n !0 === baseOnInput && getMaskSet().validPositions[pos] ? (testPos = getMaskSet().validPositions[pos], \n test = testPos.match, ndxIntlzr = testPos.locator.slice(), maskTemplate.push(!0 === includeMode ? testPos.input : !1 === includeMode ? test.nativeDef : getPlaceholder(pos, test))) : (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), \n test = testPos.match, ndxIntlzr = testPos.locator.slice(), (!1 === opts.jitMasking || pos < lvp || \"number\" == typeof opts.jitMasking && isFinite(opts.jitMasking) && opts.jitMasking > pos) && maskTemplate.push(!1 === includeMode ? test.nativeDef : getPlaceholder(pos, test))), \n pos++;\n } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || \"\" !== test.def) || minimalPos > pos);\n return \"\" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), getMaskSet().maskLength = pos + 1, \n maskTemplate;\n }\n function getMaskSet() {\n return maskset;\n }\n function resetMaskSet(soft) {\n var maskset = getMaskSet();\n maskset.buffer = undefined, !0 !== soft && (maskset.validPositions = {}, maskset.p = 0);\n }\n function getLastValidPosition(closestTo, strict, validPositions) {\n var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions;\n closestTo === undefined && (closestTo = -1);\n for (var posNdx in valids) {\n var psNdx = parseInt(posNdx);\n valids[psNdx] && (strict || !0 !== valids[psNdx].generatedInput) && (psNdx <= closestTo && (before = psNdx), \n psNdx >= closestTo && (after = psNdx));\n }\n return -1 !== before && closestTo - before > 1 || after < closestTo ? before : after;\n }\n function stripValidPositions(start, end, nocheck, strict) {\n var i, startPos = start, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), needsValidation = !1;\n for (getMaskSet().p = start, i = end - 1; i >= startPos; i--) getMaskSet().validPositions[i] !== undefined && (!0 !== nocheck && (!getMaskSet().validPositions[i].match.optionality && function(pos) {\n var posMatch = getMaskSet().validPositions[pos];\n if (posMatch !== undefined && null === posMatch.match.fn) {\n var prevMatch = getMaskSet().validPositions[pos - 1], nextMatch = getMaskSet().validPositions[pos + 1];\n return prevMatch !== undefined && nextMatch !== undefined;\n }\n return !1;\n }(i) || !1 === opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts)) || delete getMaskSet().validPositions[i]);\n for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {\n for (;getMaskSet().validPositions[startPos] !== undefined; ) startPos++;\n if (i < startPos && (i = startPos + 1), getMaskSet().validPositions[i] === undefined && isMask(i)) i++; else {\n var t = getTestTemplate(i);\n !1 === needsValidation && positionsClone[startPos] && positionsClone[startPos].match.def === t.match.def ? (getMaskSet().validPositions[startPos] = $.extend(!0, {}, positionsClone[startPos]), \n getMaskSet().validPositions[startPos].input = t.input, delete getMaskSet().validPositions[i], \n i++) : positionCanMatchDefinition(startPos, t.match.def) ? !1 !== isValid(startPos, t.input || getPlaceholder(i), !0) && (delete getMaskSet().validPositions[i], \n i++, needsValidation = !0) : isMask(i) || (i++, startPos--), startPos++;\n }\n }\n resetMaskSet(!0);\n }\n function determineTestTemplate(tests, guessNextBest) {\n for (var testPos, testPositions = tests, lvp = getLastValidPosition(), lvTest = getMaskSet().validPositions[lvp] || getTests(0)[0], lvTestAltArr = lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation].toString().split(\",\") : [], ndx = 0; ndx < testPositions.length && (testPos = testPositions[ndx], \n !(testPos.match && (opts.greedy && !0 !== testPos.match.optionalQuantifier || (!1 === testPos.match.optionality || !1 === testPos.match.newBlockMarker) && !0 !== testPos.match.optionalQuantifier) && (lvTest.alternation === undefined || lvTest.alternation !== testPos.alternation || testPos.locator[lvTest.alternation] !== undefined && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAltArr))) || !0 === guessNextBest && (null !== testPos.match.fn || /[0-9a-bA-Z]/.test(testPos.match.def))); ndx++) ;\n return testPos;\n }\n function getTestTemplate(pos, ndxIntlzr, tstPs) {\n return getMaskSet().validPositions[pos] || determineTestTemplate(getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));\n }\n function getTest(pos) {\n return getMaskSet().validPositions[pos] ? getMaskSet().validPositions[pos] : getTests(pos)[0];\n }\n function positionCanMatchDefinition(pos, def) {\n for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) if (tests[tndx].match && tests[tndx].match.def === def) {\n valid = !0;\n break;\n }\n return valid;\n }\n function getTests(pos, ndxIntlzr, tstPs) {\n function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {\n function handleMatch(match, loopNdx, quantifierRecurse) {\n function isFirstMatch(latestMatch, tokenGroup) {\n var firstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches);\n return firstMatch || $.each(tokenGroup.matches, function(ndx, match) {\n if (!0 === match.isQuantifier && (firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]))) return !1;\n }), firstMatch;\n }\n function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {\n var bestMatch, indexPos;\n if (getMaskSet().validPositions[pos - 1] && targetAlternation && getMaskSet().tests[pos]) for (var vpAlternation = getMaskSet().validPositions[pos - 1].locator, tpAlternation = getMaskSet().tests[pos][0].locator, i = 0; i < targetAlternation; i++) if (vpAlternation[i] !== tpAlternation[i]) return vpAlternation[targetAlternation];\n return (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) && $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) {\n var alternation = targetAlternation !== undefined ? targetAlternation : lmnt.alternation, ndxPos = lmnt.locator[alternation] !== undefined ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;\n (indexPos === undefined || ndxPos < indexPos) && -1 !== ndxPos && (bestMatch = lmnt, \n indexPos = ndxPos);\n }), bestMatch ? bestMatch.locator.slice((targetAlternation !== undefined ? targetAlternation : bestMatch.alternation) + 1) : targetAlternation !== undefined ? resolveNdxInitializer(pos, alternateNdx) : undefined;\n }\n if (testPos > 1e4) throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + getMaskSet().mask;\n if (testPos === pos && match.matches === undefined) return matches.push({\n match: match,\n locator: loopNdx.reverse(),\n cd: cacheDependency\n }), !0;\n if (match.matches !== undefined) {\n if (match.isGroup && quantifierRecurse !== match) {\n if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx)) return !0;\n } else if (match.isOptional) {\n var optionalToken = match;\n if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) {\n if (latestMatch = matches[matches.length - 1].match, !isFirstMatch(latestMatch, optionalToken)) return !0;\n insertStop = !0, testPos = pos;\n }\n } else if (match.isAlternator) {\n var maltMatches, alternateToken = match, malternateMatches = [], currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1;\n if (-1 === altIndex || \"string\" == typeof altIndex) {\n var amndx, currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [];\n if (\"string\" == typeof altIndex) altIndexArr = altIndex.split(\",\"); else for (amndx = 0; amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx);\n for (var ndx = 0; ndx < altIndexArr.length; ndx++) {\n if (amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice(), \n !0 !== (match = handleMatch(alternateToken.matches[amndx] || maskToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) || match) && match !== undefined && altIndexArr[altIndexArr.length - 1] < alternateToken.matches.length) {\n var ntndx = $.inArray(match, maskToken.matches) + 1;\n maskToken.matches.length > ntndx && (match = handleMatch(maskToken.matches[ntndx], [ ntndx ].concat(loopNdx.slice(1, loopNdx.length)), quantifierRecurse)) && (altIndexArr.push(ntndx.toString()), \n $.each(matches, function(ndx, lmnt) {\n lmnt.alternation = loopNdx.length - 1;\n }));\n }\n maltMatches = matches.slice(), testPos = currentPos, matches = [];\n for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {\n var altMatch = maltMatches[ndx1], dropMatch = !1;\n altMatch.alternation = altMatch.alternation || loopNdxCnt;\n for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {\n var altMatch2 = malternateMatches[ndx2];\n if (\"string\" != typeof altIndex || -1 !== $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr)) {\n if (function(source, target) {\n return source.match.nativeDef === target.match.nativeDef || source.match.def === target.match.nativeDef || source.match.nativeDef === target.match.def;\n }(altMatch, altMatch2)) {\n dropMatch = !0, altMatch.alternation == altMatch2.alternation && -1 === altMatch2.locator[altMatch2.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) && (altMatch2.locator[altMatch2.alternation] = altMatch2.locator[altMatch2.alternation] + \",\" + altMatch.locator[altMatch.alternation], \n altMatch2.alternation = altMatch.alternation), altMatch.match.nativeDef === altMatch2.match.def && (altMatch.locator[altMatch.alternation] = altMatch2.locator[altMatch2.alternation], \n malternateMatches.splice(malternateMatches.indexOf(altMatch2), 1, altMatch));\n break;\n }\n if (altMatch.match.def === altMatch2.match.def) {\n dropMatch = !1;\n break;\n }\n if (function(source, target) {\n return null === source.match.fn && null !== target.match.fn && target.match.fn.test(source.match.def, getMaskSet(), pos, !1, opts, !1);\n }(altMatch, altMatch2) || function(source, target) {\n return null !== source.match.fn && null !== target.match.fn && target.match.fn.test(source.match.def.replace(/[\\[\\]]/g, \"\"), getMaskSet(), pos, !1, opts, !1);\n }(altMatch, altMatch2)) {\n altMatch.alternation == altMatch2.alternation && -1 === altMatch.locator[altMatch.alternation].toString().indexOf(altMatch2.locator[altMatch2.alternation].toString().split(\"\")[0]) && (altMatch.na = altMatch.na || altMatch.locator[altMatch.alternation].toString(), \n -1 === altMatch.na.indexOf(altMatch.locator[altMatch.alternation].toString().split(\"\")[0]) && (altMatch.na = altMatch.na + \",\" + altMatch.locator[altMatch2.alternation].toString().split(\"\")[0]), \n dropMatch = !0, altMatch.locator[altMatch.alternation] = altMatch2.locator[altMatch2.alternation].toString().split(\"\")[0] + \",\" + altMatch.locator[altMatch.alternation], \n malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch));\n break;\n }\n }\n }\n dropMatch || malternateMatches.push(altMatch);\n }\n }\n \"string\" == typeof altIndex && (malternateMatches = $.map(malternateMatches, function(lmnt, ndx) {\n if (isFinite(ndx)) {\n var alternation = lmnt.alternation, altLocArr = lmnt.locator[alternation].toString().split(\",\");\n lmnt.locator[alternation] = undefined, lmnt.alternation = undefined;\n for (var alndx = 0; alndx < altLocArr.length; alndx++) -1 !== $.inArray(altLocArr[alndx], altIndexArr) && (lmnt.locator[alternation] !== undefined ? (lmnt.locator[alternation] += \",\", \n lmnt.locator[alternation] += altLocArr[alndx]) : lmnt.locator[alternation] = parseInt(altLocArr[alndx]), \n lmnt.alternation = alternation);\n if (lmnt.locator[alternation] !== undefined) return lmnt;\n }\n })), matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = matches.length > 0, \n match = malternateMatches.length > 0, ndxInitializer = ndxInitializerClone.slice();\n } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);\n if (match) return !0;\n } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) for (var qt = match, qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {\n var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1];\n if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup)) {\n if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx > qt.quantifier.min - 1, \n isFirstMatch(latestMatch, tokenGroup)) {\n if (qndx > qt.quantifier.min - 1) {\n insertStop = !0, testPos = pos;\n break;\n }\n return !0;\n }\n return !0;\n }\n } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) return !0;\n } else testPos++;\n }\n for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (!0 !== maskToken.matches[tndx].isQuantifier) {\n var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);\n if (match && testPos === pos) return match;\n if (testPos > pos) break;\n }\n }\n function filterTests(tests) {\n return opts.keepStatic && pos > 0 && tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0) && !0 !== tests[0].match.optionality && !0 !== tests[0].match.optionalQuantifier && null === tests[0].match.fn && !/[0-9a-bA-Z]/.test(tests[0].match.def) ? [ determineTestTemplate(tests) ] : tests;\n }\n var latestMatch, maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = !1, cacheDependency = ndxIntlzr ? ndxIntlzr.join(\"\") : \"\";\n if (pos > -1) {\n if (ndxIntlzr === undefined) {\n for (var test, previousPos = pos - 1; (test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) === undefined && previousPos > -1; ) previousPos--;\n test !== undefined && previousPos > -1 && (ndxInitializer = function(tests) {\n var locator = [];\n return $.isArray(tests) || (tests = [ tests ]), tests.length > 0 && (tests[0].alternation === undefined ? (locator = determineTestTemplate(tests.slice()).locator.slice(), \n 0 === locator.length && (locator = tests[0].locator.slice())) : $.each(tests, function(ndx, tst) {\n if (\"\" !== tst.def) if (0 === locator.length) locator = tst.locator.slice(); else for (var i = 0; i < locator.length; i++) tst.locator[i] && -1 === locator[i].toString().indexOf(tst.locator[i]) && (locator[i] += \",\" + tst.locator[i]);\n })), locator;\n }(test), cacheDependency = ndxInitializer.join(\"\"), testPos = previousPos);\n }\n if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) return filterTests(getMaskSet().tests[pos]);\n for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) {\n if (resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]) && testPos === pos || testPos > pos) break;\n }\n }\n return (0 === matches.length || insertStop) && matches.push({\n match: {\n fn: null,\n cardinality: 0,\n optionality: !0,\n casing: null,\n def: \"\",\n placeholder: \"\"\n },\n locator: [],\n cd: cacheDependency\n }), ndxIntlzr !== undefined && getMaskSet().tests[pos] ? filterTests($.extend(!0, [], matches)) : (getMaskSet().tests[pos] = $.extend(!0, [], matches), \n filterTests(getMaskSet().tests[pos]));\n }\n function getBufferTemplate() {\n return getMaskSet()._buffer === undefined && (getMaskSet()._buffer = getMaskTemplate(!1, 1), \n getMaskSet().buffer === undefined && (getMaskSet().buffer = getMaskSet()._buffer.slice())), \n getMaskSet()._buffer;\n }\n function getBuffer(noCache) {\n return getMaskSet().buffer !== undefined && !0 !== noCache || (getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)), \n getMaskSet().buffer;\n }\n function refreshFromBuffer(start, end, buffer) {\n var i, p;\n if (!0 === start) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; i < end; i++) delete getMaskSet().validPositions[i];\n for (p = start, i = start; i < end; i++) if (resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter) {\n var valResult = isValid(p, buffer[i], !0, !0);\n !1 !== valResult && (resetMaskSet(!0), p = valResult.caret !== undefined ? valResult.caret : valResult.pos + 1);\n }\n }\n function casing(elem, test, pos) {\n switch (opts.casing || test.casing) {\n case \"upper\":\n elem = elem.toUpperCase();\n break;\n\n case \"lower\":\n elem = elem.toLowerCase();\n break;\n\n case \"title\":\n var posBefore = getMaskSet().validPositions[pos - 1];\n elem = 0 === pos || posBefore && posBefore.input === String.fromCharCode(Inputmask.keyCode.SPACE) ? elem.toUpperCase() : elem.toLowerCase();\n }\n return elem;\n }\n function checkAlternationMatch(altArr1, altArr2, na) {\n for (var naNdx, altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, naArr = na !== undefined ? na.split(\",\") : [], i = 0; i < naArr.length; i++) -1 !== (naNdx = altArr1.indexOf(naArr[i])) && altArr1.splice(naNdx, 1);\n for (var alndx = 0; alndx < altArr1.length; alndx++) if (-1 !== $.inArray(altArr1[alndx], altArrC)) {\n isMatch = !0;\n break;\n }\n return isMatch;\n }\n function isValid(pos, c, strict, fromSetValid, fromAlternate) {\n function isSelection(posObj) {\n var selection = isRTL ? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end == 1 : posObj.end - posObj.begin > 1 || posObj.end - posObj.begin == 1;\n return selection && 0 === posObj.begin && posObj.end === getMaskSet().maskLength ? \"full\" : selection;\n }\n function _isValid(position, c, strict) {\n var rslt = !1;\n return $.each(getTests(position), function(ndx, tst) {\n for (var test = tst.match, loopend = c ? 1 : 0, chrs = \"\", i = test.cardinality; i > loopend; i--) chrs += getBufferElement(position - (i - 1));\n if (c && (chrs += c), getBuffer(!0), !1 !== (rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && \"\" !== test.def && {\n c: getPlaceholder(position, test, !0) || test.def,\n pos: position\n })) {\n var elem = rslt.c !== undefined ? rslt.c : c;\n elem = elem === opts.skipOptionalPartCharacter && null === test.fn ? getPlaceholder(position, test, !0) || test.def : elem;\n var validatedPos = position, possibleModifiedBuffer = getBuffer();\n if (rslt.remove !== undefined && ($.isArray(rslt.remove) || (rslt.remove = [ rslt.remove ]), \n $.each(rslt.remove.sort(function(a, b) {\n return b - a;\n }), function(ndx, lmnt) {\n stripValidPositions(lmnt, lmnt + 1, !0);\n })), rslt.insert !== undefined && ($.isArray(rslt.insert) || (rslt.insert = [ rslt.insert ]), \n $.each(rslt.insert.sort(function(a, b) {\n return a - b;\n }), function(ndx, lmnt) {\n isValid(lmnt.pos, lmnt.c, !0, fromSetValid);\n })), rslt.refreshFromBuffer) {\n var refresh = rslt.refreshFromBuffer;\n if (refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, possibleModifiedBuffer), \n rslt.pos === undefined && rslt.c === undefined) return rslt.pos = getLastValidPosition(), \n !1;\n if ((validatedPos = rslt.pos !== undefined ? rslt.pos : position) !== position) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0, fromSetValid)), \n !1;\n } else if (!0 !== rslt && rslt.pos !== undefined && rslt.pos !== position && (validatedPos = rslt.pos, \n refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), \n !1;\n return (!0 === rslt || rslt.pos !== undefined || rslt.c !== undefined) && (ndx > 0 && resetMaskSet(!0), \n setValidPosition(validatedPos, $.extend({}, tst, {\n input: casing(elem, test, validatedPos)\n }), fromSetValid, isSelection(pos)) || (rslt = !1), !1);\n }\n }), rslt;\n }\n function setValidPosition(pos, validTest, fromSetValid, isSelection) {\n if (isSelection || opts.insertMode && getMaskSet().validPositions[pos] !== undefined && fromSetValid === undefined) {\n var i, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), lvp = getLastValidPosition(undefined, !0);\n for (i = pos; i <= lvp; i++) delete getMaskSet().validPositions[i];\n getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);\n var j, valid = !0, vps = getMaskSet().validPositions, needsValidation = !1, initialLength = getMaskSet().maskLength;\n for (i = j = pos; i <= lvp; i++) {\n var t = positionsClone[i];\n if (t !== undefined) for (var posMatch = j; posMatch < getMaskSet().maskLength && (null === t.match.fn && vps[i] && (!0 === vps[i].match.optionalQuantifier || !0 === vps[i].match.optionality) || null != t.match.fn); ) {\n if (posMatch++, !1 === needsValidation && positionsClone[posMatch] && positionsClone[posMatch].match.def === t.match.def) getMaskSet().validPositions[posMatch] = $.extend(!0, {}, positionsClone[posMatch]), \n getMaskSet().validPositions[posMatch].input = t.input, fillMissingNonMask(posMatch), \n j = posMatch, valid = !0; else if (positionCanMatchDefinition(posMatch, t.match.def)) {\n var result = isValid(posMatch, t.input, !0, !0);\n valid = !1 !== result, j = result.caret || result.insert ? getLastValidPosition() : posMatch, \n needsValidation = !0;\n } else if (!(valid = !0 === t.generatedInput) && posMatch >= getMaskSet().maskLength - 1) break;\n if (getMaskSet().maskLength < initialLength && (getMaskSet().maskLength = initialLength), \n valid) break;\n }\n if (!valid) break;\n }\n if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone), \n resetMaskSet(!0), !1;\n } else getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);\n return resetMaskSet(!0), !0;\n }\n function fillMissingNonMask(maskPos) {\n for (var pndx = maskPos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) ;\n var testTemplate, testsFromPos;\n for (pndx++; pndx < maskPos; pndx++) getMaskSet().validPositions[pndx] === undefined && (!1 === opts.jitMasking || opts.jitMasking > pndx) && (testsFromPos = getTests(pndx, getTestTemplate(pndx - 1).locator, pndx - 1).slice(), \n \"\" === testsFromPos[testsFromPos.length - 1].match.def && testsFromPos.pop(), (testTemplate = determineTestTemplate(testsFromPos)) && (testTemplate.match.def === opts.radixPointDefinitionSymbol || !isMask(pndx, !0) || $.inArray(opts.radixPoint, getBuffer()) < pndx && testTemplate.match.fn && testTemplate.match.fn.test(getPlaceholder(pndx), getMaskSet(), pndx, !1, opts)) && !1 !== (result = _isValid(pndx, getPlaceholder(pndx, testTemplate.match, !0) || (null == testTemplate.match.fn ? testTemplate.match.def : \"\" !== getPlaceholder(pndx) ? getPlaceholder(pndx) : getBuffer()[pndx]), !0)) && (getMaskSet().validPositions[result.pos || pndx].generatedInput = !0));\n }\n strict = !0 === strict;\n var maskPos = pos;\n pos.begin !== undefined && (maskPos = isRTL && !isSelection(pos) ? pos.end : pos.begin);\n var result = !0, positionsClone = $.extend(!0, {}, getMaskSet().validPositions);\n if ($.isFunction(opts.preValidation) && !strict && !0 !== fromSetValid && (result = opts.preValidation(getBuffer(), maskPos, c, isSelection(pos), opts)), \n !0 === result) {\n if (fillMissingNonMask(maskPos), isSelection(pos) && (handleRemove(undefined, Inputmask.keyCode.DELETE, pos), \n maskPos = getMaskSet().p), maskPos < getMaskSet().maskLength && (maxLength === undefined || maskPos < maxLength) && (result = _isValid(maskPos, c, strict), \n (!strict || !0 === fromSetValid) && !1 === result)) {\n var currentPosValid = getMaskSet().validPositions[maskPos];\n if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {\n if ((opts.insertMode || getMaskSet().validPositions[seekNext(maskPos)] === undefined) && !isMask(maskPos, !0)) for (var nPos = maskPos + 1, snPos = seekNext(maskPos); nPos <= snPos; nPos++) if (!1 !== (result = _isValid(nPos, c, strict))) {\n !function(originalPos, newPos) {\n var vp = getMaskSet().validPositions[newPos];\n if (vp) for (var targetLocator = vp.locator, tll = targetLocator.length, ps = originalPos; ps < newPos; ps++) if (getMaskSet().validPositions[ps] === undefined && !isMask(ps, !0)) {\n var tests = getTests(ps).slice(), bestMatch = determineTestTemplate(tests, !0), equality = -1;\n \"\" === tests[tests.length - 1].match.def && tests.pop(), $.each(tests, function(ndx, tst) {\n for (var i = 0; i < tll; i++) {\n if (tst.locator[i] === undefined || !checkAlternationMatch(tst.locator[i].toString().split(\",\"), targetLocator[i].toString().split(\",\"), tst.na)) {\n var targetAI = targetLocator[i], bestMatchAI = bestMatch.locator[i], tstAI = tst.locator[i];\n targetAI - bestMatchAI > Math.abs(targetAI - tstAI) && (bestMatch = tst);\n break;\n }\n equality < i && (equality = i, bestMatch = tst);\n }\n }), bestMatch = $.extend({}, bestMatch, {\n input: getPlaceholder(ps, bestMatch.match, !0) || bestMatch.match.def\n }), bestMatch.generatedInput = !0, setValidPosition(ps, bestMatch, !0), getMaskSet().validPositions[newPos] = undefined, \n _isValid(newPos, vp.input, !0);\n }\n }(maskPos, result.pos !== undefined ? result.pos : nPos), maskPos = nPos;\n break;\n }\n } else result = {\n caret: seekNext(maskPos)\n };\n }\n !1 === result && opts.keepStatic && !strict && !0 !== fromAlternate && (result = function(pos, c, strict) {\n var lastAlt, alternation, altPos, prevAltPos, i, validPos, altNdxs, decisionPos, validPsClone = $.extend(!0, {}, getMaskSet().validPositions), isValidRslt = !1, lAltPos = getLastValidPosition();\n for (prevAltPos = getMaskSet().validPositions[lAltPos]; lAltPos >= 0; lAltPos--) if ((altPos = getMaskSet().validPositions[lAltPos]) && altPos.alternation !== undefined) {\n if (lastAlt = lAltPos, alternation = getMaskSet().validPositions[lastAlt].alternation, \n prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) break;\n prevAltPos = altPos;\n }\n if (alternation !== undefined) {\n decisionPos = parseInt(lastAlt);\n var decisionTaker = prevAltPos.locator[prevAltPos.alternation || alternation] !== undefined ? prevAltPos.locator[prevAltPos.alternation || alternation] : altNdxs[0];\n decisionTaker.length > 0 && (decisionTaker = decisionTaker.split(\",\")[0]);\n var possibilityPos = getMaskSet().validPositions[decisionPos], prevPos = getMaskSet().validPositions[decisionPos - 1];\n $.each(getTests(decisionPos, prevPos ? prevPos.locator : undefined, decisionPos - 1), function(ndx, test) {\n altNdxs = test.locator[alternation] ? test.locator[alternation].toString().split(\",\") : [];\n for (var mndx = 0; mndx < altNdxs.length; mndx++) {\n var validInputs = [], staticInputsBeforePos = 0, staticInputsBeforePosAlternate = 0, verifyValidInput = !1;\n if (decisionTaker < altNdxs[mndx] && (test.na === undefined || -1 === $.inArray(altNdxs[mndx], test.na.split(\",\")) || -1 === $.inArray(decisionTaker.toString(), altNdxs))) {\n getMaskSet().validPositions[decisionPos] = $.extend(!0, {}, test);\n var possibilities = getMaskSet().validPositions[decisionPos].locator;\n for (getMaskSet().validPositions[decisionPos].locator[alternation] = parseInt(altNdxs[mndx]), \n null == test.match.fn ? (possibilityPos.input !== test.match.def && (verifyValidInput = !0, \n !0 !== possibilityPos.generatedInput && validInputs.push(possibilityPos.input)), \n staticInputsBeforePosAlternate++, getMaskSet().validPositions[decisionPos].generatedInput = !/[0-9a-bA-Z]/.test(test.match.def), \n getMaskSet().validPositions[decisionPos].input = test.match.def) : getMaskSet().validPositions[decisionPos].input = possibilityPos.input, \n i = decisionPos + 1; i < getLastValidPosition(undefined, !0) + 1; i++) validPos = getMaskSet().validPositions[i], \n validPos && !0 !== validPos.generatedInput && /[0-9a-bA-Z]/.test(validPos.input) ? validInputs.push(validPos.input) : i < pos && staticInputsBeforePos++, \n delete getMaskSet().validPositions[i];\n for (verifyValidInput && validInputs[0] === test.match.def && validInputs.shift(), \n resetMaskSet(!0), isValidRslt = !0; validInputs.length > 0; ) {\n var input = validInputs.shift();\n if (input !== opts.skipOptionalPartCharacter && !(isValidRslt = isValid(getLastValidPosition(undefined, !0) + 1, input, !1, fromSetValid, !0))) break;\n }\n if (isValidRslt) {\n getMaskSet().validPositions[decisionPos].locator = possibilities;\n var targetLvp = getLastValidPosition(pos) + 1;\n for (i = decisionPos + 1; i < getLastValidPosition() + 1; i++) ((validPos = getMaskSet().validPositions[i]) === undefined || null == validPos.match.fn) && i < pos + (staticInputsBeforePosAlternate - staticInputsBeforePos) && staticInputsBeforePosAlternate++;\n pos += staticInputsBeforePosAlternate - staticInputsBeforePos, isValidRslt = isValid(pos > targetLvp ? targetLvp : pos, c, strict, fromSetValid, !0);\n }\n if (isValidRslt) return !1;\n resetMaskSet(), getMaskSet().validPositions = $.extend(!0, {}, validPsClone);\n }\n }\n });\n }\n return isValidRslt;\n }(maskPos, c, strict)), !0 === result && (result = {\n pos: maskPos\n });\n }\n if ($.isFunction(opts.postValidation) && !1 !== result && !strict && !0 !== fromSetValid) {\n var postResult = opts.postValidation(getBuffer(!0), result, opts);\n if (postResult.refreshFromBuffer && postResult.buffer) {\n var refresh = postResult.refreshFromBuffer;\n refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, postResult.buffer);\n }\n result = !0 === postResult ? result : postResult;\n }\n return result.pos === undefined && (result.pos = maskPos), !1 === result && (resetMaskSet(!0), \n getMaskSet().validPositions = $.extend(!0, {}, positionsClone)), result;\n }\n function isMask(pos, strict) {\n var test = getTestTemplate(pos).match;\n if (\"\" === test.def && (test = getTest(pos).match), null != test.fn) return test.fn;\n if (!0 !== strict && pos > -1) {\n var tests = getTests(pos);\n return tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0);\n }\n return !1;\n }\n function seekNext(pos, newBlock) {\n var maskL = getMaskSet().maskLength;\n if (pos >= maskL) return maskL;\n var position = pos;\n for (getTests(maskL + 1).length > 1 && (getMaskTemplate(!0, maskL + 1, !0), maskL = getMaskSet().maskLength); ++position < maskL && (!0 === newBlock && (!0 !== getTest(position).match.newBlockMarker || !isMask(position)) || !0 !== newBlock && !isMask(position)); ) ;\n return position;\n }\n function seekPrevious(pos, newBlock) {\n var tests, position = pos;\n if (position <= 0) return 0;\n for (;--position > 0 && (!0 === newBlock && !0 !== getTest(position).match.newBlockMarker || !0 !== newBlock && !isMask(position) && (tests = getTests(position), \n tests.length < 2 || 2 === tests.length && \"\" === tests[1].match.def)); ) ;\n return position;\n }\n function getBufferElement(position) {\n return getMaskSet().validPositions[position] === undefined ? getPlaceholder(position) : getMaskSet().validPositions[position].input;\n }\n function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) {\n if (event && $.isFunction(opts.onBeforeWrite)) {\n var result = opts.onBeforeWrite(event, buffer, caretPos, opts);\n if (result) {\n if (result.refreshFromBuffer) {\n var refresh = result.refreshFromBuffer;\n refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer || buffer), \n buffer = getBuffer(!0);\n }\n caretPos !== undefined && (caretPos = result.caret !== undefined ? result.caret : caretPos);\n }\n }\n input !== undefined && (input.inputmask._valueSet(buffer.join(\"\")), caretPos === undefined || event !== undefined && \"blur\" === event.type ? renderColorMask(input, buffer, caretPos) : android && \"input\" === event.type ? setTimeout(function() {\n caret(input, caretPos);\n }, 0) : caret(input, caretPos), !0 === triggerInputEvent && (skipInputEvent = !0, \n $(input).trigger(\"input\")));\n }\n function getPlaceholder(pos, test, returnPL) {\n if (test = test || getTest(pos).match, test.placeholder !== undefined || !0 === returnPL) return $.isFunction(test.placeholder) ? test.placeholder(opts) : test.placeholder;\n if (null === test.fn) {\n if (pos > -1 && getMaskSet().validPositions[pos] === undefined) {\n var prevTest, tests = getTests(pos), staticAlternations = [];\n if (tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0)) for (var i = 0; i < tests.length; i++) if (!0 !== tests[i].match.optionality && !0 !== tests[i].match.optionalQuantifier && (null === tests[i].match.fn || prevTest === undefined || !1 !== tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, !0, opts)) && (staticAlternations.push(tests[i]), \n null === tests[i].match.fn && (prevTest = tests[i]), staticAlternations.length > 1 && /[0-9a-bA-Z]/.test(staticAlternations[0].match.def))) return opts.placeholder.charAt(pos % opts.placeholder.length);\n }\n return test.def;\n }\n return opts.placeholder.charAt(pos % opts.placeholder.length);\n }\n function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {\n function isTemplateMatch(ndx, charCodes) {\n return -1 !== getBufferTemplate().slice(ndx, seekNext(ndx)).join(\"\").indexOf(charCodes) && !isMask(ndx) && getTest(ndx).match.nativeDef === charCodes.charAt(charCodes.length - 1);\n }\n var inputValue = nptvl.slice(), charCodes = \"\", initialNdx = 0, result = undefined;\n if (resetMaskSet(), getMaskSet().p = seekNext(-1), !strict) if (!0 !== opts.autoUnmask) {\n var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(\"\"), matches = inputValue.join(\"\").match(new RegExp(\"^\" + Inputmask.escapeRegex(staticInput), \"g\"));\n matches && matches.length > 0 && (inputValue.splice(0, matches.length * staticInput.length), \n initialNdx = seekNext(initialNdx));\n } else initialNdx = seekNext(initialNdx);\n if ($.each(inputValue, function(ndx, charCode) {\n if (charCode !== undefined) {\n var keypress = new $.Event(\"_checkval\");\n keypress.which = charCode.charCodeAt(0), charCodes += charCode;\n var lvp = getLastValidPosition(undefined, !0), lvTest = getMaskSet().validPositions[lvp], nextTest = getTestTemplate(lvp + 1, lvTest ? lvTest.locator.slice() : undefined, lvp);\n if (!isTemplateMatch(initialNdx, charCodes) || strict || opts.autoUnmask) {\n var pos = strict ? ndx : null == nextTest.match.fn && nextTest.match.optionality && lvp + 1 < getMaskSet().p ? lvp + 1 : getMaskSet().p;\n result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, pos), \n initialNdx = pos + 1, charCodes = \"\";\n } else result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, !0, lvp + 1);\n if (!strict && $.isFunction(opts.onBeforeWrite)) {\n var fp = result.forwardPosition;\n if (result = opts.onBeforeWrite(keypress, getBuffer(), result.forwardPosition, opts), \n result.forwardPosition = fp, result && result.refreshFromBuffer) {\n var refresh = result.refreshFromBuffer;\n refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer), \n resetMaskSet(!0), result.caret && (getMaskSet().p = result.caret, result.forwardPosition = result.caret);\n }\n }\n }\n }), writeOut) {\n var caretPos = undefined;\n document.activeElement === input && result && (caretPos = opts.numericInput ? seekPrevious(result.forwardPosition) : result.forwardPosition), \n writeBuffer(input, getBuffer(), caretPos, initiatingEvent || new $.Event(\"checkval\"), initiatingEvent && \"input\" === initiatingEvent.type);\n }\n }\n function unmaskedvalue(input) {\n if (input) {\n if (input.inputmask === undefined) return input.value;\n input.inputmask && input.inputmask.refreshValue && EventHandlers.setValueEvent.call(input);\n }\n var umValue = [], vps = getMaskSet().validPositions;\n for (var pndx in vps) vps[pndx].match && null != vps[pndx].match.fn && umValue.push(vps[pndx].input);\n var unmaskedValue = 0 === umValue.length ? \"\" : (isRTL ? umValue.reverse() : umValue).join(\"\");\n if ($.isFunction(opts.onUnMask)) {\n var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(\"\");\n unmaskedValue = opts.onUnMask(bufferValue, unmaskedValue, opts);\n }\n return unmaskedValue;\n }\n function caret(input, begin, end, notranslate) {\n function translatePosition(pos) {\n if (!0 !== notranslate && isRTL && \"number\" == typeof pos && (!opts.greedy || \"\" !== opts.placeholder)) {\n pos = getBuffer().join(\"\").length - pos;\n }\n return pos;\n }\n var range;\n if (begin === undefined) return input.setSelectionRange ? (begin = input.selectionStart, \n end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0), \n range.commonAncestorContainer.parentNode !== input && range.commonAncestorContainer !== input || (begin = range.startOffset, \n end = range.endOffset)) : document.selection && document.selection.createRange && (range = document.selection.createRange(), \n begin = 0 - range.duplicate().moveStart(\"character\", -input.inputmask._valueGet().length), \n end = begin + range.text.length), {\n begin: translatePosition(begin),\n end: translatePosition(end)\n };\n if (begin.begin !== undefined && (end = begin.end, begin = begin.begin), \"number\" == typeof begin) {\n begin = translatePosition(begin), end = translatePosition(end), end = \"number\" == typeof end ? end : begin;\n var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;\n if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, mobile || !1 !== opts.insertMode || begin !== end || end++, \n input.setSelectionRange) input.selectionStart = begin, input.selectionEnd = end; else if (window.getSelection) {\n if (range = document.createRange(), input.firstChild === undefined || null === input.firstChild) {\n var textNode = document.createTextNode(\"\");\n input.appendChild(textNode);\n }\n range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length), \n range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length), \n range.collapse(!0);\n var sel = window.getSelection();\n sel.removeAllRanges(), sel.addRange(range);\n } else input.createTextRange && (range = input.createTextRange(), range.collapse(!0), \n range.moveEnd(\"character\", end), range.moveStart(\"character\", begin), range.select());\n renderColorMask(input, undefined, {\n begin: begin,\n end: end\n });\n }\n }\n function determineLastRequiredPosition(returnDefinition) {\n var pos, testPos, buffer = getBuffer(), bl = buffer.length, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = lvTest !== undefined ? lvTest.locator.slice() : undefined;\n for (pos = lvp + 1; pos < buffer.length; pos++) testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), \n ndxIntlzr = testPos.locator.slice(), positions[pos] = $.extend(!0, {}, testPos);\n var lvTestAlt = lvTest && lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation] : undefined;\n for (pos = bl - 1; pos > lvp && (testPos = positions[pos], (testPos.match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && null != testPos.match.fn || null === testPos.match.fn && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAlt.toString().split(\",\")) && \"\" !== getTests(pos)[0].def)) && buffer[pos] === getPlaceholder(pos, testPos.match)); pos--) bl--;\n return returnDefinition ? {\n l: bl,\n def: positions[bl] ? positions[bl].match : undefined\n } : bl;\n }\n function clearOptionalTail(buffer) {\n for (var validPos, rl = determineLastRequiredPosition(), bl = buffer.length, lv = getMaskSet().validPositions[getLastValidPosition()]; rl < bl && !isMask(rl, !0) && (validPos = lv !== undefined ? getTestTemplate(rl, lv.locator.slice(\"\"), lv) : getTest(rl)) && !0 !== validPos.match.optionality && (!0 !== validPos.match.optionalQuantifier && !0 !== validPos.match.newBlockMarker || rl + 1 === bl && \"\" === (lv !== undefined ? getTestTemplate(rl + 1, lv.locator.slice(\"\"), lv) : getTest(rl + 1)).match.def); ) rl++;\n for (;(validPos = getMaskSet().validPositions[rl - 1]) && validPos && validPos.match.optionality && validPos.input === opts.skipOptionalPartCharacter; ) rl--;\n return buffer.splice(rl), buffer;\n }\n function isComplete(buffer) {\n if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);\n if (\"*\" === opts.repeat) return undefined;\n var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l);\n if (lrp.def === undefined || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {\n complete = !0;\n for (var i = 0; i <= aml; i++) {\n var test = getTestTemplate(i).match;\n if (null !== test.fn && getMaskSet().validPositions[i] === undefined && !0 !== test.optionality && !0 !== test.optionalQuantifier || null === test.fn && buffer[i] !== getPlaceholder(i, test)) {\n complete = !1;\n break;\n }\n }\n }\n return complete;\n }\n function handleRemove(input, k, pos, strict) {\n if ((opts.numericInput || isRTL) && (k === Inputmask.keyCode.BACKSPACE ? k = Inputmask.keyCode.DELETE : k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE), \n isRTL)) {\n var pend = pos.end;\n pos.end = pos.begin, pos.begin = pend;\n }\n k === Inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || !1 === opts.insertMode) ? (pos.begin = seekPrevious(pos.begin), \n getMaskSet().validPositions[pos.begin] === undefined || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.begin--) : k === Inputmask.keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end, !0) ? pos.end + 1 : seekNext(pos.end) + 1, \n getMaskSet().validPositions[pos.begin] === undefined || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.end++), \n stripValidPositions(pos.begin, pos.end, !1, strict), !0 !== strict && function() {\n if (opts.keepStatic) {\n for (var validInputs = [], lastAlt = getLastValidPosition(-1, !0), positionsClone = $.extend(!0, {}, getMaskSet().validPositions), prevAltPos = getMaskSet().validPositions[lastAlt]; lastAlt >= 0; lastAlt--) {\n var altPos = getMaskSet().validPositions[lastAlt];\n if (altPos) {\n if (!0 !== altPos.generatedInput && /[0-9a-bA-Z]/.test(altPos.input) && validInputs.push(altPos.input), \n delete getMaskSet().validPositions[lastAlt], altPos.alternation !== undefined && altPos.locator[altPos.alternation] !== prevAltPos.locator[altPos.alternation]) break;\n prevAltPos = altPos;\n }\n }\n if (lastAlt > -1) for (getMaskSet().p = seekNext(getLastValidPosition(-1, !0)); validInputs.length > 0; ) {\n var keypress = new $.Event(\"keypress\");\n keypress.which = validInputs.pop().charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p);\n } else getMaskSet().validPositions = $.extend(!0, {}, positionsClone);\n }\n }();\n var lvp = getLastValidPosition(pos.begin, !0);\n lvp < pos.begin ? getMaskSet().p = seekNext(lvp) : !0 !== strict && (getMaskSet().p = pos.begin);\n }\n function initializeColorMask(input) {\n function findCaretPos(clientx) {\n var caretPos, e = document.createElement(\"span\");\n for (var style in computedStyle) isNaN(style) && -1 !== style.indexOf(\"font\") && (e.style[style] = computedStyle[style]);\n e.style.textTransform = computedStyle.textTransform, e.style.letterSpacing = computedStyle.letterSpacing, \n e.style.position = \"absolute\", e.style.height = \"auto\", e.style.width = \"auto\", \n e.style.visibility = \"hidden\", e.style.whiteSpace = \"nowrap\", document.body.appendChild(e);\n var itl, inputText = input.inputmask._valueGet(), previousWidth = 0;\n for (caretPos = 0, itl = inputText.length; caretPos <= itl; caretPos++) {\n if (e.innerHTML += inputText.charAt(caretPos) || \"_\", e.offsetWidth >= clientx) {\n var offset1 = clientx - previousWidth, offset2 = e.offsetWidth - clientx;\n e.innerHTML = inputText.charAt(caretPos), offset1 -= e.offsetWidth / 3, caretPos = offset1 < offset2 ? caretPos - 1 : caretPos;\n break;\n }\n previousWidth = e.offsetWidth;\n }\n return document.body.removeChild(e), caretPos;\n }\n function position() {\n colorMask.style.position = \"absolute\", colorMask.style.top = offset.top + \"px\", \n colorMask.style.left = offset.left + \"px\", colorMask.style.width = parseInt(input.offsetWidth) - parseInt(computedStyle.paddingLeft) - parseInt(computedStyle.paddingRight) - parseInt(computedStyle.borderLeftWidth) - parseInt(computedStyle.borderRightWidth) + \"px\", \n colorMask.style.height = parseInt(input.offsetHeight) - parseInt(computedStyle.paddingTop) - parseInt(computedStyle.paddingBottom) - parseInt(computedStyle.borderTopWidth) - parseInt(computedStyle.borderBottomWidth) + \"px\", \n colorMask.style.lineHeight = colorMask.style.height, colorMask.style.zIndex = isNaN(computedStyle.zIndex) ? -1 : computedStyle.zIndex - 1, \n colorMask.style.webkitAppearance = \"textfield\", colorMask.style.mozAppearance = \"textfield\", \n colorMask.style.Appearance = \"textfield\";\n }\n var offset = $(input).position(), computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null);\n input.parentNode;\n colorMask = document.createElement(\"div\"), document.body.appendChild(colorMask);\n for (var style in computedStyle) computedStyle.hasOwnProperty(style) && isNaN(style) && \"cssText\" !== style && -1 == style.indexOf(\"webkit\") && (colorMask.style[style] = computedStyle[style]);\n input.style.backgroundColor = \"transparent\", input.style.color = \"transparent\", \n input.style.webkitAppearance = \"caret\", input.style.mozAppearance = \"caret\", input.style.Appearance = \"caret\", \n position(), $(window).on(\"resize\", function(e) {\n offset = $(input).position(), computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null), \n position();\n }), $(input).on(\"click\", function(e) {\n return caret(input, findCaretPos(e.clientX)), EventHandlers.clickEvent.call(this, [ e ]);\n }), $(input).on(\"keydown\", function(e) {\n e.shiftKey || !1 === opts.insertMode || setTimeout(function() {\n renderColorMask(input);\n }, 0);\n });\n }\n function renderColorMask(input, buffer, caretPos) {\n function handleStatic() {\n isStatic || null !== test.fn && testPos.input !== undefined ? isStatic && null !== test.fn && testPos.input !== undefined && (isStatic = !1, \n maskTemplate += \"
    \") : (isStatic = !0, maskTemplate += \"\");\n }\n if (colorMask !== undefined) {\n buffer = buffer || getBuffer(), caretPos === undefined ? caretPos = caret(input) : caretPos.begin === undefined && (caretPos = {\n begin: caretPos,\n end: caretPos\n });\n var maskTemplate = \"\", isStatic = !1;\n if (\"\" != buffer) {\n var ndxIntlzr, test, testPos, pos = 0, lvp = getLastValidPosition();\n do {\n pos === caretPos.begin && document.activeElement === input && (maskTemplate += \"\"), \n getMaskSet().validPositions[pos] ? (testPos = getMaskSet().validPositions[pos], \n test = testPos.match, ndxIntlzr = testPos.locator.slice(), handleStatic(), maskTemplate += testPos.input) : (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), \n test = testPos.match, ndxIntlzr = testPos.locator.slice(), (!1 === opts.jitMasking || pos < lvp || \"number\" == typeof opts.jitMasking && isFinite(opts.jitMasking) && opts.jitMasking > pos) && (handleStatic(), \n maskTemplate += getPlaceholder(pos, test))), pos++;\n } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || \"\" !== test.def) || lvp > pos);\n }\n colorMask.innerHTML = maskTemplate;\n }\n }\n maskset = maskset || this.maskset, opts = opts || this.opts;\n var undoValue, $el, maxLength, colorMask, valueBuffer, el = this.el, isRTL = this.isRTL, skipKeyPressEvent = !1, skipInputEvent = !1, ignorable = !1, mouseEnter = !1, EventRuler = {\n on: function(input, eventName, eventHandler) {\n var ev = function(e) {\n if (this.inputmask === undefined && \"FORM\" !== this.nodeName) {\n var imOpts = $.data(this, \"_inputmask_opts\");\n imOpts ? new Inputmask(imOpts).mask(this) : EventRuler.off(this);\n } else {\n if (\"setvalue\" === e.type || \"FORM\" === this.nodeName || !(this.disabled || this.readOnly && !(\"keydown\" === e.type && e.ctrlKey && 67 === e.keyCode || !1 === opts.tabThrough && e.keyCode === Inputmask.keyCode.TAB))) {\n switch (e.type) {\n case \"input\":\n if (!0 === skipInputEvent) return skipInputEvent = !1, e.preventDefault();\n break;\n\n case \"keydown\":\n skipKeyPressEvent = !1, skipInputEvent = !1;\n break;\n\n case \"keypress\":\n if (!0 === skipKeyPressEvent) return e.preventDefault();\n skipKeyPressEvent = !0;\n break;\n\n case \"click\":\n if (iemobile || iphone) {\n var that = this, args = arguments;\n return setTimeout(function() {\n eventHandler.apply(that, args);\n }, 0), !1;\n }\n }\n var returnVal = eventHandler.apply(this, arguments);\n return !1 === returnVal && (e.preventDefault(), e.stopPropagation()), returnVal;\n }\n e.preventDefault();\n }\n };\n input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev), \n -1 !== $.inArray(eventName, [ \"submit\", \"reset\" ]) ? null != input.form && $(input.form).on(eventName, ev) : $(input).on(eventName, ev);\n },\n off: function(input, event) {\n if (input.inputmask && input.inputmask.events) {\n var events;\n event ? (events = [], events[event] = input.inputmask.events[event]) : events = input.inputmask.events, \n $.each(events, function(eventName, evArr) {\n for (;evArr.length > 0; ) {\n var ev = evArr.pop();\n -1 !== $.inArray(eventName, [ \"submit\", \"reset\" ]) ? null != input.form && $(input.form).off(eventName, ev) : $(input).off(eventName, ev);\n }\n delete input.inputmask.events[eventName];\n });\n }\n }\n }, EventHandlers = {\n keydownEvent: function(e) {\n var input = this, $input = $(input), k = e.keyCode, pos = caret(input);\n if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === Inputmask.keyCode.X && !function(eventName) {\n var el = document.createElement(\"input\"), evName = \"on\" + eventName, isSupported = evName in el;\n return isSupported || (el.setAttribute(evName, \"return;\"), isSupported = \"function\" == typeof el[evName]), \n el = null, isSupported;\n }(\"cut\")) e.preventDefault(), handleRemove(input, k, pos), writeBuffer(input, getBuffer(!0), getMaskSet().p, e, input.inputmask._valueGet() !== getBuffer().join(\"\")), \n input.inputmask._valueGet() === getBufferTemplate().join(\"\") ? $input.trigger(\"cleared\") : !0 === isComplete(getBuffer()) && $input.trigger(\"complete\"); else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) {\n e.preventDefault();\n var caretPos = seekNext(getLastValidPosition());\n opts.insertMode || caretPos !== getMaskSet().maskLength || e.shiftKey || caretPos--, \n caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, !0);\n } else k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP ? (e.preventDefault(), \n caret(input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || 90 === k && e.ctrlKey) && !0 !== e.altKey ? (checkVal(input, !0, !1, undoValue.split(\"\")), \n $input.trigger(\"click\")) : k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey ? !0 === opts.tabThrough && k === Inputmask.keyCode.TAB ? (!0 === e.shiftKey ? (null === getTest(pos.begin).match.fn && (pos.begin = seekNext(pos.begin)), \n pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0), \n pos.end = seekNext(pos.begin, !0), pos.end < getMaskSet().maskLength && pos.end--), \n pos.begin < getMaskSet().maskLength && (e.preventDefault(), caret(input, pos.begin, pos.end))) : e.shiftKey || !1 === opts.insertMode && (k === Inputmask.keyCode.RIGHT ? setTimeout(function() {\n var caretPos = caret(input);\n caret(input, caretPos.begin);\n }, 0) : k === Inputmask.keyCode.LEFT && setTimeout(function() {\n var caretPos = caret(input);\n caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1);\n }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin !== getMaskSet().maskLength ? pos.begin : pos.begin - 1));\n opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 !== $.inArray(k, opts.ignorables);\n },\n keypressEvent: function(e, checkval, writeOut, strict, ndx) {\n var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;\n if (!(!0 === checkval || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) return k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join(\"\") && (undoValue = getBuffer().join(\"\"), \n setTimeout(function() {\n $input.trigger(\"change\");\n }, 0)), !0;\n if (k) {\n 46 === k && !1 === e.shiftKey && \"\" !== opts.radixPoint && (k = opts.radixPoint.charCodeAt(0));\n var forwardPosition, pos = checkval ? {\n begin: ndx,\n end: ndx\n } : caret(input), c = String.fromCharCode(k);\n getMaskSet().writeOutBuffer = !0;\n var valResult = isValid(pos, c, strict);\n if (!1 !== valResult && (resetMaskSet(!0), forwardPosition = valResult.caret !== undefined ? valResult.caret : checkval ? valResult.pos + 1 : seekNext(valResult.pos), \n getMaskSet().p = forwardPosition), !1 !== writeOut && (setTimeout(function() {\n opts.onKeyValidation.call(input, k, valResult, opts);\n }, 0), getMaskSet().writeOutBuffer && !1 !== valResult)) {\n var buffer = getBuffer();\n writeBuffer(input, buffer, opts.numericInput && valResult.caret === undefined ? seekPrevious(forwardPosition) : forwardPosition, e, !0 !== checkval), \n !0 !== checkval && setTimeout(function() {\n !0 === isComplete(buffer) && $input.trigger(\"complete\");\n }, 0);\n }\n if (e.preventDefault(), checkval) return valResult.forwardPosition = forwardPosition, \n valResult;\n }\n },\n pasteEvent: function(e) {\n var tempValue, input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(!0), caretPos = caret(input);\n isRTL && (tempValue = caretPos.end, caretPos.end = caretPos.begin, caretPos.begin = tempValue);\n var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);\n if (valueBeforeCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join(\"\") && (valueBeforeCaret = \"\"), \n valueAfterCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(caretPos.end).join(\"\") && (valueAfterCaret = \"\"), \n isRTL && (tempValue = valueBeforeCaret, valueBeforeCaret = valueAfterCaret, valueAfterCaret = tempValue), \n window.clipboardData && window.clipboardData.getData) inputValue = valueBeforeCaret + window.clipboardData.getData(\"Text\") + valueAfterCaret; else {\n if (!ev.clipboardData || !ev.clipboardData.getData) return !0;\n inputValue = valueBeforeCaret + ev.clipboardData.getData(\"text/plain\") + valueAfterCaret;\n }\n var pasteValue = inputValue;\n if ($.isFunction(opts.onBeforePaste)) {\n if (!1 === (pasteValue = opts.onBeforePaste(inputValue, opts))) return e.preventDefault();\n pasteValue || (pasteValue = inputValue);\n }\n return checkVal(input, !1, !1, isRTL ? pasteValue.split(\"\").reverse() : pasteValue.toString().split(\"\")), \n writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()), e, undoValue !== getBuffer().join(\"\")), \n !0 === isComplete(getBuffer()) && $input.trigger(\"complete\"), e.preventDefault();\n },\n inputFallBackEvent: function(e) {\n var input = this, inputValue = input.inputmask._valueGet();\n if (getBuffer().join(\"\") !== inputValue) {\n var caretPos = caret(input);\n if (\".\" === inputValue.charAt(caretPos.begin - 1) && \"\" !== opts.radixPoint && (inputValue = inputValue.split(\"\"), \n inputValue[caretPos.begin - 1] = opts.radixPoint.charAt(0), inputValue = inputValue.join(\"\")), \n inputValue.charAt(caretPos.begin - 1) === opts.radixPoint && inputValue.length > getBuffer().length) {\n var keypress = new $.Event(\"keypress\");\n return keypress.which = opts.radixPoint.charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !0, !1, caretPos.begin), \n !1;\n }\n if (inputValue = inputValue.replace(new RegExp(\"(\" + Inputmask.escapeRegex(getBufferTemplate().join(\"\")) + \")*\"), \"\"), \n iemobile) {\n var inputChar = inputValue.replace(getBuffer().join(\"\"), \"\");\n if (1 === inputChar.length) {\n var keypress = new $.Event(\"keypress\");\n return keypress.which = inputChar.charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !0, !1, getMaskSet().validPositions[caretPos.begin - 1] ? caretPos.begin : caretPos.begin - 1), \n !1;\n }\n }\n if (caretPos.begin > inputValue.length && (caret(input, inputValue.length), caretPos = caret(input)), \n getBuffer().length - inputValue.length != 1 || inputValue.charAt(caretPos.begin) === getBuffer()[caretPos.begin] || inputValue.charAt(caretPos.begin + 1) === getBuffer()[caretPos.begin] || isMask(caretPos.begin)) {\n var stickyParts = [], bufferTemplate = getMaskTemplate(!0, 1).join(\"\");\n for (stickyParts.push(inputValue.substr(0, caretPos.begin)), stickyParts.push(inputValue.substr(caretPos.begin)); null === inputValue.match(Inputmask.escapeRegex(bufferTemplate) + \"$\"); ) bufferTemplate = bufferTemplate.slice(1);\n inputValue = inputValue.replace(bufferTemplate, \"\"), $.isFunction(opts.onBeforeMask) && (inputValue = opts.onBeforeMask(inputValue, opts) || inputValue), \n checkVal(input, !0, !1, inputValue.split(\"\"), e);\n var currentPos = caret(input).begin, currentValue = input.inputmask._valueGet(), pos1 = currentValue.indexOf(stickyParts[0]);\n if (0 === pos1 && currentPos !== stickyParts[0].length) caret(input, stickyParts[0].length), \n android && setTimeout(function() {\n caret(input, stickyParts[0].length);\n }, 0); else {\n for (;null === currentValue.match(Inputmask.escapeRegex(stickyParts[1]) + \"$\"); ) stickyParts[1] = stickyParts[1].substr(1);\n var pos2 = currentValue.indexOf(stickyParts[1]);\n -1 !== pos2 && \"\" !== stickyParts[1] && currentPos > pos2 && pos2 > pos1 && (caret(input, pos2), \n android && setTimeout(function() {\n caret(input, pos2);\n }, 0));\n }\n !0 === isComplete(getBuffer()) && $(input).trigger(\"complete\");\n } else e.keyCode = Inputmask.keyCode.BACKSPACE, EventHandlers.keydownEvent.call(input, e);\n e.preventDefault();\n }\n },\n setValueEvent: function(e) {\n this.inputmask.refreshValue = !1;\n var input = this, value = input.inputmask._valueGet(!0);\n $.isFunction(opts.onBeforeMask) && (value = opts.onBeforeMask(value, opts) || value), \n value = value.split(\"\"), checkVal(input, !0, !1, isRTL ? value.reverse() : value), \n undoValue = getBuffer().join(\"\"), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join(\"\") && input.inputmask._valueSet(\"\");\n },\n focusEvent: function(e) {\n var input = this, nptValue = input.inputmask._valueGet();\n opts.showMaskOnFocus && (!opts.showMaskOnHover || opts.showMaskOnHover && \"\" === nptValue) && (input.inputmask._valueGet() !== getBuffer().join(\"\") ? writeBuffer(input, getBuffer(), seekNext(getLastValidPosition())) : !1 === mouseEnter && caret(input, seekNext(getLastValidPosition()))), \n !0 === opts.positionCaretOnTab && !1 === mouseEnter && (writeBuffer(input, getBuffer(), caret(input)), \n EventHandlers.clickEvent.apply(input, [ e, !0 ])), undoValue = getBuffer().join(\"\");\n },\n mouseleaveEvent: function(e) {\n var input = this;\n if (mouseEnter = !1, opts.clearMaskOnLostFocus && document.activeElement !== input) {\n var buffer = getBuffer().slice(), nptValue = input.inputmask._valueGet();\n nptValue !== input.getAttribute(\"placeholder\") && \"\" !== nptValue && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join(\"\") ? buffer = [] : clearOptionalTail(buffer), \n writeBuffer(input, buffer));\n }\n },\n clickEvent: function(e, tabbed) {\n function doRadixFocus(clickPos) {\n if (\"\" !== opts.radixPoint) {\n var vps = getMaskSet().validPositions;\n if (vps[clickPos] === undefined || vps[clickPos].input === getPlaceholder(clickPos)) {\n if (clickPos < seekNext(-1)) return !0;\n var radixPos = $.inArray(opts.radixPoint, getBuffer());\n if (-1 !== radixPos) {\n for (var vp in vps) if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) return !1;\n return !0;\n }\n }\n }\n return !1;\n }\n var input = this;\n setTimeout(function() {\n if (document.activeElement === input) {\n var selectedCaret = caret(input);\n if (tabbed && (isRTL ? selectedCaret.end = selectedCaret.begin : selectedCaret.begin = selectedCaret.end), \n selectedCaret.begin === selectedCaret.end) switch (opts.positionCaretOnClick) {\n case \"none\":\n break;\n\n case \"radixFocus\":\n if (doRadixFocus(selectedCaret.begin)) {\n var radixPos = getBuffer().join(\"\").indexOf(opts.radixPoint);\n caret(input, opts.numericInput ? seekNext(radixPos) : radixPos);\n break;\n }\n\n default:\n var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, !0), lastPosition = seekNext(lvclickPosition);\n if (clickPosition < lastPosition) caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)); else {\n var placeholder = getPlaceholder(lastPosition);\n (\"\" !== placeholder && getBuffer()[lastPosition] !== placeholder && !0 !== getTest(lastPosition).match.optionalQuantifier || !isMask(lastPosition) && getTest(lastPosition).match.def === placeholder) && (lastPosition = seekNext(lastPosition)), \n caret(input, lastPosition);\n }\n }\n }\n }, 0);\n },\n dblclickEvent: function(e) {\n var input = this;\n setTimeout(function() {\n caret(input, 0, seekNext(getLastValidPosition()));\n }, 0);\n },\n cutEvent: function(e) {\n var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e, clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end);\n clipboardData.setData(\"text\", isRTL ? clipData.reverse().join(\"\") : clipData.join(\"\")), \n document.execCommand && document.execCommand(\"copy\"), handleRemove(input, Inputmask.keyCode.DELETE, pos), \n writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join(\"\")), \n input.inputmask._valueGet() === getBufferTemplate().join(\"\") && $input.trigger(\"cleared\");\n },\n blurEvent: function(e) {\n var $input = $(this), input = this;\n if (input.inputmask) {\n var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice();\n \"\" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join(\"\") ? buffer = [] : clearOptionalTail(buffer)), \n !1 === isComplete(buffer) && (setTimeout(function() {\n $input.trigger(\"incomplete\");\n }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())), \n writeBuffer(input, buffer, undefined, e)), undoValue !== getBuffer().join(\"\") && (undoValue = buffer.join(\"\"), \n $input.trigger(\"change\"));\n }\n },\n mouseenterEvent: function(e) {\n var input = this;\n mouseEnter = !0, document.activeElement !== input && opts.showMaskOnHover && input.inputmask._valueGet() !== getBuffer().join(\"\") && writeBuffer(input, getBuffer());\n },\n submitEvent: function(e) {\n undoValue !== getBuffer().join(\"\") && $el.trigger(\"change\"), opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join(\"\") && el.inputmask._valueSet(\"\"), \n opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0), \n setTimeout(function() {\n writeBuffer(el, getBuffer());\n }, 0));\n },\n resetEvent: function(e) {\n el.inputmask.refreshValue = !0, setTimeout(function() {\n $el.trigger(\"setvalue\");\n }, 0);\n }\n };\n if (actionObj !== undefined) switch (actionObj.action) {\n case \"isComplete\":\n return el = actionObj.el, isComplete(getBuffer());\n\n case \"unmaskedvalue\":\n return el !== undefined && actionObj.value === undefined || (valueBuffer = actionObj.value, \n valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(valueBuffer, opts) || valueBuffer : valueBuffer).split(\"\"), \n checkVal(undefined, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(undefined, getBuffer(), 0, opts)), \n unmaskedvalue(el);\n\n case \"mask\":\n !function(elem) {\n EventRuler.off(elem);\n var isSupported = function(input, opts) {\n var elementType = input.getAttribute(\"type\"), isSupported = \"INPUT\" === input.tagName && -1 !== $.inArray(elementType, opts.supportsInputType) || input.isContentEditable || \"TEXTAREA\" === input.tagName;\n if (!isSupported) if (\"INPUT\" === input.tagName) {\n var el = document.createElement(\"input\");\n el.setAttribute(\"type\", elementType), isSupported = \"text\" === el.type, el = null;\n } else isSupported = \"partial\";\n return !1 !== isSupported && function(npt) {\n function getter() {\n return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== getLastValidPosition() || !0 !== opts.nullable ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join(\"\") : valueGet.call(this) : \"\" : valueGet.call(this);\n }\n function setter(value) {\n valueSet.call(this, value), this.inputmask && $(this).trigger(\"setvalue\");\n }\n var valueGet, valueSet;\n if (!npt.inputmask.__valueGet) {\n if (!0 !== opts.noValuePatching) {\n if (Object.getOwnPropertyDescriptor) {\n \"function\" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = \"object\" == typeof \"test\".__proto__ ? function(object) {\n return object.__proto__;\n } : function(object) {\n return object.constructor.prototype;\n });\n var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), \"value\") : undefined;\n valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, \n valueSet = valueProperty.set, Object.defineProperty(npt, \"value\", {\n get: getter,\n set: setter,\n configurable: !0\n })) : \"INPUT\" !== npt.tagName && (valueGet = function() {\n return this.textContent;\n }, valueSet = function(value) {\n this.textContent = value;\n }, Object.defineProperty(npt, \"value\", {\n get: getter,\n set: setter,\n configurable: !0\n }));\n } else document.__lookupGetter__ && npt.__lookupGetter__(\"value\") && (valueGet = npt.__lookupGetter__(\"value\"), \n valueSet = npt.__lookupSetter__(\"value\"), npt.__defineGetter__(\"value\", getter), \n npt.__defineSetter__(\"value\", setter));\n npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;\n }\n npt.inputmask._valueGet = function(overruleRTL) {\n return isRTL && !0 !== overruleRTL ? valueGet.call(this.el).split(\"\").reverse().join(\"\") : valueGet.call(this.el);\n }, npt.inputmask._valueSet = function(value, overruleRTL) {\n valueSet.call(this.el, null === value || value === undefined ? \"\" : !0 !== overruleRTL && isRTL ? value.split(\"\").reverse().join(\"\") : value);\n }, valueGet === undefined && (valueGet = function() {\n return this.value;\n }, valueSet = function(value) {\n this.value = value;\n }, function(type) {\n if ($.valHooks && ($.valHooks[type] === undefined || !0 !== $.valHooks[type].inputmaskpatch)) {\n var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {\n return elem.value;\n }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {\n return elem.value = value, elem;\n };\n $.valHooks[type] = {\n get: function(elem) {\n if (elem.inputmask) {\n if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();\n var result = valhookGet(elem);\n return -1 !== getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) || !0 !== opts.nullable ? result : \"\";\n }\n return valhookGet(elem);\n },\n set: function(elem, value) {\n var result, $elem = $(elem);\n return result = valhookSet(elem, value), elem.inputmask && $elem.trigger(\"setvalue\"), \n result;\n },\n inputmaskpatch: !0\n };\n }\n }(npt.type), function(npt) {\n EventRuler.on(npt, \"mouseenter\", function(event) {\n var $input = $(this);\n this.inputmask._valueGet() !== getBuffer().join(\"\") && $input.trigger(\"setvalue\");\n });\n }(npt));\n }\n }(input), isSupported;\n }(elem, opts);\n if (!1 !== isSupported && (el = elem, $el = $(el), !0 === opts.colorMask && initializeColorMask(el), \n android && (el.hasOwnProperty(\"inputmode\") && (el.inputmode = opts.inputmode, el.setAttribute(\"inputmode\", opts.inputmode)), \n \"rtfm\" === opts.androidHack && (!0 !== opts.colorMask && initializeColorMask(el), \n el.type = \"password\")), !0 === isSupported && (EventRuler.on(el, \"submit\", EventHandlers.submitEvent), \n EventRuler.on(el, \"reset\", EventHandlers.resetEvent), EventRuler.on(el, \"mouseenter\", EventHandlers.mouseenterEvent), \n EventRuler.on(el, \"blur\", EventHandlers.blurEvent), EventRuler.on(el, \"focus\", EventHandlers.focusEvent), \n EventRuler.on(el, \"mouseleave\", EventHandlers.mouseleaveEvent), !0 !== opts.colorMask && EventRuler.on(el, \"click\", EventHandlers.clickEvent), \n EventRuler.on(el, \"dblclick\", EventHandlers.dblclickEvent), EventRuler.on(el, \"paste\", EventHandlers.pasteEvent), \n EventRuler.on(el, \"dragdrop\", EventHandlers.pasteEvent), EventRuler.on(el, \"drop\", EventHandlers.pasteEvent), \n EventRuler.on(el, \"cut\", EventHandlers.cutEvent), EventRuler.on(el, \"complete\", opts.oncomplete), \n EventRuler.on(el, \"incomplete\", opts.onincomplete), EventRuler.on(el, \"cleared\", opts.oncleared), \n android || !0 === opts.inputEventOnly || (EventRuler.on(el, \"keydown\", EventHandlers.keydownEvent), \n EventRuler.on(el, \"keypress\", EventHandlers.keypressEvent)), EventRuler.on(el, \"compositionstart\", $.noop), \n EventRuler.on(el, \"compositionupdate\", $.noop), EventRuler.on(el, \"compositionend\", $.noop), \n EventRuler.on(el, \"keyup\", $.noop), EventRuler.on(el, \"input\", EventHandlers.inputFallBackEvent), \n EventRuler.on(el, \"beforeinput\", $.noop)), EventRuler.on(el, \"setvalue\", EventHandlers.setValueEvent), \n undoValue = getBufferTemplate().join(\"\"), \"\" !== el.inputmask._valueGet(!0) || !1 === opts.clearMaskOnLostFocus || document.activeElement === el)) {\n var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(el.inputmask._valueGet(!0), opts) || el.inputmask._valueGet(!0) : el.inputmask._valueGet(!0);\n \"\" !== initialValue && checkVal(el, !0, !1, isRTL ? initialValue.split(\"\").reverse() : initialValue.split(\"\"));\n var buffer = getBuffer().slice();\n !1 === isComplete(buffer) && opts.clearIncomplete && resetMaskSet(), opts.clearMaskOnLostFocus && document.activeElement !== el && (-1 === getLastValidPosition() ? buffer = [] : clearOptionalTail(buffer)), \n writeBuffer(el, buffer), document.activeElement === el && caret(el, seekNext(getLastValidPosition()));\n }\n }(el);\n break;\n\n case \"format\":\n return valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(actionObj.value, opts) || actionObj.value : actionObj.value).split(\"\"), \n checkVal(undefined, !0, !1, isRTL ? valueBuffer.reverse() : valueBuffer), actionObj.metadata ? {\n value: isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\"),\n metadata: maskScope.call(this, {\n action: \"getmetadata\"\n }, maskset, opts)\n } : isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\");\n\n case \"isValid\":\n actionObj.value ? (valueBuffer = actionObj.value.split(\"\"), checkVal(undefined, !0, !0, isRTL ? valueBuffer.reverse() : valueBuffer)) : actionObj.value = getBuffer().join(\"\");\n for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ;\n return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === getBuffer().join(\"\");\n\n case \"getemptymask\":\n return getBufferTemplate().join(\"\");\n\n case \"remove\":\n if (el && el.inputmask) {\n $el = $(el), el.inputmask._valueSet(opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(!0)), \n EventRuler.off(el);\n Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), \"value\") && el.inputmask.__valueGet && Object.defineProperty(el, \"value\", {\n get: el.inputmask.__valueGet,\n set: el.inputmask.__valueSet,\n configurable: !0\n }) : document.__lookupGetter__ && el.__lookupGetter__(\"value\") && el.inputmask.__valueGet && (el.__defineGetter__(\"value\", el.inputmask.__valueGet), \n el.__defineSetter__(\"value\", el.inputmask.__valueSet)), el.inputmask = undefined;\n }\n return el;\n\n case \"getmetadata\":\n if ($.isArray(maskset.metadata)) {\n var maskTarget = getMaskTemplate(!0, 0, !1).join(\"\");\n return $.each(maskset.metadata, function(ndx, mtdt) {\n if (mtdt.mask === maskTarget) return maskTarget = mtdt, !1;\n }), maskTarget;\n }\n return maskset.metadata;\n }\n }\n var ua = navigator.userAgent, mobile = /mobile/i.test(ua), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile, android = /android/i.test(ua) && !iemobile;\n return Inputmask.prototype = {\n dataAttribute: \"data-inputmask\",\n defaults: {\n placeholder: \"_\",\n optionalmarker: {\n start: \"[\",\n end: \"]\"\n },\n quantifiermarker: {\n start: \"{\",\n end: \"}\"\n },\n groupmarker: {\n start: \"(\",\n end: \")\"\n },\n alternatormarker: \"|\",\n escapeChar: \"\\\\\",\n mask: null,\n regex: null,\n oncomplete: $.noop,\n onincomplete: $.noop,\n oncleared: $.noop,\n repeat: 0,\n greedy: !0,\n autoUnmask: !1,\n removeMaskOnSubmit: !1,\n clearMaskOnLostFocus: !0,\n insertMode: !0,\n clearIncomplete: !1,\n alias: null,\n onKeyDown: $.noop,\n onBeforeMask: null,\n onBeforePaste: function(pastedValue, opts) {\n return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(pastedValue, opts) : pastedValue;\n },\n onBeforeWrite: null,\n onUnMask: null,\n showMaskOnFocus: !0,\n showMaskOnHover: !0,\n onKeyValidation: $.noop,\n skipOptionalPartCharacter: \" \",\n numericInput: !1,\n rightAlign: !1,\n undoOnEscape: !0,\n radixPoint: \"\",\n radixPointDefinitionSymbol: undefined,\n groupSeparator: \"\",\n keepStatic: null,\n positionCaretOnTab: !0,\n tabThrough: !1,\n supportsInputType: [ \"text\", \"tel\", \"password\" ],\n ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ],\n isComplete: null,\n canClearPosition: $.noop,\n preValidation: null,\n postValidation: null,\n staticDefinitionSymbol: undefined,\n jitMasking: !1,\n nullable: !0,\n inputEventOnly: !1,\n noValuePatching: !1,\n positionCaretOnClick: \"lvp\",\n casing: null,\n inputmode: \"verbatim\",\n colorMask: !1,\n androidHack: !1\n },\n definitions: {\n \"9\": {\n validator: \"[0-9]\",\n cardinality: 1,\n definitionSymbol: \"*\"\n },\n a: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n cardinality: 1,\n definitionSymbol: \"*\"\n },\n \"*\": {\n validator: function() {\n return !0;\n },\n cardinality: 1\n }\n },\n aliases: {},\n masksCache: {},\n mask: function(elems) {\n function importAttributeOptions(npt, opts, userOptions, dataAttribute) {\n function importOption(option, optionData) {\n null !== (optionData = optionData !== undefined ? optionData : npt.getAttribute(dataAttribute + \"-\" + option)) && (\"string\" == typeof optionData && (0 === option.indexOf(\"on\") ? optionData = window[optionData] : \"false\" === optionData ? optionData = !1 : \"true\" === optionData && (optionData = !0)), \n userOptions[option] = optionData);\n }\n (\"rtl\" === npt.dir || opts.rightAlign) && (npt.style.textAlign = \"right\"), (\"rtl\" === npt.dir || opts.numericInput) && (npt.dir = \"ltr\", \n npt.removeAttribute(\"dir\"), opts.isRTL = !0);\n var option, dataoptions, optionData, p, attrOptions = npt.getAttribute(dataAttribute);\n if (attrOptions && \"\" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp(\"'\", \"g\"), '\"'), \n dataoptions = JSON.parse(\"{\" + attrOptions + \"}\")), dataoptions) {\n optionData = undefined;\n for (p in dataoptions) if (\"alias\" === p.toLowerCase()) {\n optionData = dataoptions[p];\n break;\n }\n }\n importOption(\"alias\", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts);\n for (option in opts) {\n if (dataoptions) {\n optionData = undefined;\n for (p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) {\n optionData = dataoptions[p];\n break;\n }\n }\n importOption(option, optionData);\n }\n return $.extend(!0, opts, userOptions), opts;\n }\n var that = this;\n return \"string\" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), \n elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) {\n var scopedOpts = $.extend(!0, {}, that.opts);\n importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions), that.dataAttribute);\n var maskset = generateMaskSet(scopedOpts, that.noMasksCache);\n maskset !== undefined && (el.inputmask !== undefined && el.inputmask.remove(), el.inputmask = new Inputmask(undefined, undefined, !0), \n el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions), \n el.inputmask.isRTL = scopedOpts.isRTL, el.inputmask.el = el, el.inputmask.maskset = maskset, \n $.data(el, \"_inputmask_opts\", scopedOpts), maskScope.call(el.inputmask, {\n action: \"mask\"\n }));\n }), elems && elems[0] ? elems[0].inputmask || this : this;\n },\n option: function(options, noremask) {\n return \"string\" == typeof options ? this.opts[options] : \"object\" == typeof options ? ($.extend(this.userOptions, options), \n this.el && !0 !== noremask && this.mask(this.el), this) : void 0;\n },\n unmaskedvalue: function(value) {\n return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n maskScope.call(this, {\n action: \"unmaskedvalue\",\n value: value\n });\n },\n remove: function() {\n return maskScope.call(this, {\n action: \"remove\"\n });\n },\n getemptymask: function() {\n return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n maskScope.call(this, {\n action: \"getemptymask\"\n });\n },\n hasMaskedValue: function() {\n return !this.opts.autoUnmask;\n },\n isComplete: function() {\n return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n maskScope.call(this, {\n action: \"isComplete\"\n });\n },\n getmetadata: function() {\n return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n maskScope.call(this, {\n action: \"getmetadata\"\n });\n },\n isValid: function(value) {\n return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n maskScope.call(this, {\n action: \"isValid\",\n value: value\n });\n },\n format: function(value, metadata) {\n return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), \n maskScope.call(this, {\n action: \"format\",\n value: value,\n metadata: metadata\n });\n },\n analyseMask: function(mask, regexMask, opts) {\n function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {\n this.matches = [], this.openGroup = isGroup || !1, this.alternatorGroup = !1, this.isGroup = isGroup || !1, \n this.isOptional = isOptional || !1, this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1, \n this.quantifier = {\n min: 1,\n max: 1\n };\n }\n function insertTestDefinition(mtoken, element, position) {\n position = position !== undefined ? position : mtoken.matches.length;\n var prevMatch = mtoken.matches[position - 1];\n if (regexMask) 0 === element.indexOf(\"[\") || escaped ? mtoken.matches.splice(position++, 0, {\n fn: new RegExp(element, opts.casing ? \"i\" : \"\"),\n cardinality: 1,\n optionality: mtoken.isOptional,\n newBlockMarker: prevMatch === undefined || prevMatch.def !== element,\n casing: null,\n def: element,\n placeholder: undefined,\n nativeDef: element\n }) : $.each(element.split(\"\"), function(ndx, lmnt) {\n prevMatch = mtoken.matches[position - 1], mtoken.matches.splice(position++, 0, {\n fn: null,\n cardinality: 0,\n optionality: mtoken.isOptional,\n newBlockMarker: prevMatch === undefined || prevMatch.def !== lmnt && null !== prevMatch.fn,\n casing: null,\n def: opts.staticDefinitionSymbol || lmnt,\n placeholder: opts.staticDefinitionSymbol !== undefined ? lmnt : undefined,\n nativeDef: lmnt\n });\n }), escaped = !1; else {\n var maskdef = (opts.definitions ? opts.definitions[element] : undefined) || Inputmask.prototype.definitions[element];\n if (maskdef && !escaped) {\n for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) {\n var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality;\n mtoken.matches.splice(position++, 0, {\n fn: validator ? \"string\" == typeof validator ? new RegExp(validator, opts.casing ? \"i\" : \"\") : new function() {\n this.test = validator;\n }() : new RegExp(\".\"),\n cardinality: cardinality || 1,\n optionality: mtoken.isOptional,\n newBlockMarker: prevMatch === undefined || prevMatch.def !== (maskdef.definitionSymbol || element),\n casing: maskdef.casing,\n def: maskdef.definitionSymbol || element,\n placeholder: maskdef.placeholder,\n nativeDef: element\n }), prevMatch = mtoken.matches[position - 1];\n }\n mtoken.matches.splice(position++, 0, {\n fn: maskdef.validator ? \"string\" == typeof maskdef.validator ? new RegExp(maskdef.validator, opts.casing ? \"i\" : \"\") : new function() {\n this.test = maskdef.validator;\n }() : new RegExp(\".\"),\n cardinality: maskdef.cardinality,\n optionality: mtoken.isOptional,\n newBlockMarker: prevMatch === undefined || prevMatch.def !== (maskdef.definitionSymbol || element),\n casing: maskdef.casing,\n def: maskdef.definitionSymbol || element,\n placeholder: maskdef.placeholder,\n nativeDef: element\n });\n } else mtoken.matches.splice(position++, 0, {\n fn: null,\n cardinality: 0,\n optionality: mtoken.isOptional,\n newBlockMarker: prevMatch === undefined || prevMatch.def !== element && null !== prevMatch.fn,\n casing: null,\n def: opts.staticDefinitionSymbol || element,\n placeholder: opts.staticDefinitionSymbol !== undefined ? element : undefined,\n nativeDef: element\n }), escaped = !1;\n }\n }\n function verifyGroupMarker(maskToken) {\n maskToken && maskToken.matches && $.each(maskToken.matches, function(ndx, token) {\n var nextToken = maskToken.matches[ndx + 1];\n (nextToken === undefined || nextToken.matches === undefined || !1 === nextToken.isQuantifier) && token && token.isGroup && (token.isGroup = !1, \n regexMask || (insertTestDefinition(token, opts.groupmarker.start, 0), !0 !== token.openGroup && insertTestDefinition(token, opts.groupmarker.end))), \n verifyGroupMarker(token);\n });\n }\n function defaultCase() {\n if (openenings.length > 0) {\n if (currentOpeningToken = openenings[openenings.length - 1], insertTestDefinition(currentOpeningToken, m), \n currentOpeningToken.isAlternator) {\n alternator = openenings.pop();\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1;\n openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], \n currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\n }\n } else insertTestDefinition(currentToken, m);\n }\n function reverseTokens(maskToken) {\n maskToken.matches = maskToken.matches.reverse();\n for (var match in maskToken.matches) if (maskToken.matches.hasOwnProperty(match)) {\n var intMatch = parseInt(match);\n if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {\n var qt = maskToken.matches[match];\n maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt);\n }\n maskToken.matches[match].matches !== undefined ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = function(st) {\n return st === opts.optionalmarker.start ? st = opts.optionalmarker.end : st === opts.optionalmarker.end ? st = opts.optionalmarker.start : st === opts.groupmarker.start ? st = opts.groupmarker.end : st === opts.groupmarker.end && (st = opts.groupmarker.start), \n st;\n }(maskToken.matches[match]);\n }\n return maskToken;\n }\n var match, m, openingToken, currentOpeningToken, alternator, lastMatch, groupToken, tokenizer = /(?:[?*+]|\\{[0-9\\+\\*]+(?:,[0-9\\+\\*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, regexTokenizer = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, escaped = !1, currentToken = new MaskToken(), openenings = [], maskTokens = [];\n for (regexMask && (opts.optionalmarker.start = undefined, opts.optionalmarker.end = undefined); match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask); ) {\n if (m = match[0], regexMask) switch (m.charAt(0)) {\n case \"?\":\n m = \"{0,1}\";\n break;\n\n case \"+\":\n case \"*\":\n m = \"{\" + m + \"}\";\n }\n if (escaped) defaultCase(); else switch (m.charAt(0)) {\n case opts.escapeChar:\n escaped = !0, regexMask && defaultCase();\n break;\n\n case opts.optionalmarker.end:\n case opts.groupmarker.end:\n if (openingToken = openenings.pop(), openingToken.openGroup = !1, openingToken !== undefined) if (openenings.length > 0) {\n if (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(openingToken), \n currentOpeningToken.isAlternator) {\n alternator = openenings.pop();\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1, \n alternator.matches[mndx].alternatorGroup = !1;\n openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], \n currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\n }\n } else currentToken.matches.push(openingToken); else defaultCase();\n break;\n\n case opts.optionalmarker.start:\n openenings.push(new MaskToken(!1, !0));\n break;\n\n case opts.groupmarker.start:\n openenings.push(new MaskToken(!0));\n break;\n\n case opts.quantifiermarker.start:\n var quantifier = new MaskToken(!1, !1, !0);\n m = m.replace(/[{}]/g, \"\");\n var mq = m.split(\",\"), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);\n if (\"*\" !== mq1 && \"+\" !== mq1 || (mq0 = \"*\" === mq1 ? 0 : 1), quantifier.quantifier = {\n min: mq0,\n max: mq1\n }, openenings.length > 0) {\n var matches = openenings[openenings.length - 1].matches;\n match = matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), groupToken.matches.push(match), \n match = groupToken), matches.push(match), matches.push(quantifier);\n } else match = currentToken.matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), \n groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), \n currentToken.matches.push(quantifier);\n break;\n\n case opts.alternatormarker:\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n var subToken = currentOpeningToken.matches[currentOpeningToken.matches.length - 1];\n lastMatch = currentOpeningToken.openGroup && (subToken.matches === undefined || !1 === subToken.isGroup && !1 === subToken.isAlternator) ? openenings.pop() : currentOpeningToken.matches.pop();\n } else lastMatch = currentToken.matches.pop();\n if (lastMatch.isAlternator) openenings.push(lastMatch); else if (lastMatch.alternatorGroup ? (alternator = openenings.pop(), \n lastMatch.alternatorGroup = !1) : alternator = new MaskToken(!1, !1, !1, !0), alternator.matches.push(lastMatch), \n openenings.push(alternator), lastMatch.openGroup) {\n lastMatch.openGroup = !1;\n var alternatorGroup = new MaskToken(!0);\n alternatorGroup.alternatorGroup = !0, openenings.push(alternatorGroup);\n }\n break;\n\n default:\n defaultCase();\n }\n }\n for (;openenings.length > 0; ) openingToken = openenings.pop(), currentToken.matches.push(openingToken);\n return currentToken.matches.length > 0 && (verifyGroupMarker(currentToken), maskTokens.push(currentToken)), \n (opts.numericInput || opts.isRTL) && reverseTokens(maskTokens[0]), maskTokens;\n }\n }, Inputmask.extendDefaults = function(options) {\n $.extend(!0, Inputmask.prototype.defaults, options);\n }, Inputmask.extendDefinitions = function(definition) {\n $.extend(!0, Inputmask.prototype.definitions, definition);\n }, Inputmask.extendAliases = function(alias) {\n $.extend(!0, Inputmask.prototype.aliases, alias);\n }, Inputmask.format = function(value, options, metadata) {\n return Inputmask(options).format(value, metadata);\n }, Inputmask.unmask = function(value, options) {\n return Inputmask(options).unmaskedvalue(value);\n }, Inputmask.isValid = function(value, options) {\n return Inputmask(options).isValid(value);\n }, Inputmask.remove = function(elems) {\n $.each(elems, function(ndx, el) {\n el.inputmask && el.inputmask.remove();\n });\n }, Inputmask.escapeRegex = function(str) {\n var specials = [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ];\n return str.replace(new RegExp(\"(\\\\\" + specials.join(\"|\\\\\") + \")\", \"gim\"), \"\\\\$1\");\n }, Inputmask.keyCode = {\n ALT: 18,\n BACKSPACE: 8,\n BACKSPACE_SAFARI: 127,\n CAPS_LOCK: 20,\n COMMA: 188,\n COMMAND: 91,\n COMMAND_LEFT: 91,\n COMMAND_RIGHT: 93,\n CONTROL: 17,\n DELETE: 46,\n DOWN: 40,\n END: 35,\n ENTER: 13,\n ESCAPE: 27,\n HOME: 36,\n INSERT: 45,\n LEFT: 37,\n MENU: 93,\n NUMPAD_ADD: 107,\n NUMPAD_DECIMAL: 110,\n NUMPAD_DIVIDE: 111,\n NUMPAD_ENTER: 108,\n NUMPAD_MULTIPLY: 106,\n NUMPAD_SUBTRACT: 109,\n PAGE_DOWN: 34,\n PAGE_UP: 33,\n PERIOD: 190,\n RIGHT: 39,\n SHIFT: 16,\n SPACE: 32,\n TAB: 9,\n UP: 38,\n WINDOWS: 91,\n X: 88\n }, Inputmask;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inputmask/dist/inputmask/inputmask.js\n// module id = 10\n// module chunks = 0","const DEBOUNCE_TIMEOUT = 1000;\nconst RESULT_TEMPLATE = `
  • {result}
  • `;\n\nconst {_, $} = Voonto;\n\nclass PredictiveSearch {\n constructor(container$, serviceUrl) {\n this._input$ = container$.find('[data-voc-krammer-predictive-input]');\n this._results$ = container$.find('[data-voc-krammer-predictive-results]');\n this.url = serviceUrl;\n\n this._input$.on('keyup', _.debounce(_search, DEBOUNCE_TIMEOUT).bind(this));\n }\n}\n\nexport default PredictiveSearch;\n\n/* Private */\n\nfunction _search() {\n var value;\n\n value = this._input$.val().toLowerCase();\n this._results$.empty();\n\n if (value !== '') {\n $.ajax({url: this.url}).then((search) => {\n for (let i in search) {\n let result = search[i].name.toLowerCase();\n if (result.indexOf(value) !== -1) {\n this._results$.append(RESULT_TEMPLATE.replace(/{result}/g, result));\n }\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/predictive.js"],"sourceRoot":""}