浏览代码

update regex handling

Robin Herbots 8 年之前
父节点
当前提交
b5efd54da3
共有 72 个文件被更改,包括 3093 次插入3381 次删除
  1. 1 0
      CHANGELOG.md
  2. 0 1
      README.md
  3. 3 0
      README_numeric.md
  4. 0 17
      README_regex.md
  5. 1 2
      bower.json
  6. 1 2
      component.json
  7. 1 1
      composer.json
  8. 1 1
      dist/inputmask/bindings/inputmask.binding.js
  9. 1 1
      dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js
  10. 1 1
      dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js
  11. 1 1
      dist/inputmask/dependencyLibs/inputmask.dependencyLib.js
  12. 1 1
      dist/inputmask/global/document.js
  13. 1 1
      dist/inputmask/global/window.js
  14. 1 1
      dist/inputmask/inputmask.date.extensions.js
  15. 1 1
      dist/inputmask/inputmask.extensions.js
  16. 76 66
      dist/inputmask/inputmask.js
  17. 4 3
      dist/inputmask/inputmask.numeric.extensions.js
  18. 1 1
      dist/inputmask/inputmask.phone.extensions.js
  19. 0 115
      dist/inputmask/inputmask.regex.extensions.js
  20. 1 1
      dist/inputmask/jquery.inputmask.js
  21. 1 1
      dist/inputmask/phone-codes/phone-be.js
  22. 1 1
      dist/inputmask/phone-codes/phone-nl.js
  23. 1 1
      dist/inputmask/phone-codes/phone-ru.js
  24. 1 1
      dist/inputmask/phone-codes/phone-uk.js
  25. 1 1
      dist/inputmask/phone-codes/phone.js
  26. 79 68
      dist/jquery.inputmask.bundle.js
  27. 1 1
      dist/min/inputmask/bindings/inputmask.binding.min.js
  28. 1 1
      dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.min.js
  29. 1 1
      dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.min.js
  30. 1 1
      dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.min.js
  31. 1 1
      dist/min/inputmask/global/document.min.js
  32. 1 1
      dist/min/inputmask/global/window.min.js
  33. 1 1
      dist/min/inputmask/inputmask.date.extensions.min.js
  34. 1 1
      dist/min/inputmask/inputmask.extensions.min.js
  35. 3 3
      dist/min/inputmask/inputmask.min.js
  36. 2 2
      dist/min/inputmask/inputmask.numeric.extensions.min.js
  37. 1 1
      dist/min/inputmask/inputmask.phone.extensions.min.js
  38. 0 9
      dist/min/inputmask/inputmask.regex.extensions.min.js
  39. 1 1
      dist/min/inputmask/jquery.inputmask.min.js
  40. 1 1
      dist/min/inputmask/phone-codes/phone-be.min.js
  41. 1 1
      dist/min/inputmask/phone-codes/phone-nl.min.js
  42. 1 1
      dist/min/inputmask/phone-codes/phone-ru.min.js
  43. 1 1
      dist/min/inputmask/phone-codes/phone-uk.min.js
  44. 1 1
      dist/min/inputmask/phone-codes/phone.min.js
  45. 4 4
      dist/min/jquery.inputmask.bundle.min.js
  46. 0 1
      index.js
  47. 2812 2766
      js/inputmask.js
  48. 3 2
      js/inputmask.numeric.extensions.js
  49. 0 215
      js/inputmask.regex.extensions.js
  50. 19 2
      nuspecs/Inputmask.nuspec
  51. 1 1
      package.json
  52. 0 1
      qunit/tests_attributes.js
  53. 0 1
      qunit/tests_dynamic.js
  54. 0 1
      qunit/tests_escape.js
  55. 0 1
      qunit/tests_formatvalidate.js
  56. 0 1
      qunit/tests_initialvalue.js
  57. 0 1
      qunit/tests_inputeventonly.js
  58. 0 1
      qunit/tests_jquery_inputmask.js
  59. 0 1
      qunit/tests_keepStatic.js
  60. 0 1
      qunit/tests_multi.js
  61. 0 1
      qunit/tests_numeric.js
  62. 0 1
      qunit/tests_numericinput.js
  63. 0 1
      qunit/tests_option.js
  64. 0 1
      qunit/tests_optional.js
  65. 0 1
      qunit/tests_paste.js
  66. 0 1
      qunit/tests_phone.js
  67. 0 1
      qunit/tests_phone_world.js
  68. 0 1
      qunit/tests_phonebe.js
  69. 0 1
      qunit/tests_phonenl.js
  70. 0 1
      qunit/tests_phoneru.js
  71. 53 51
      qunit/tests_regex.js
  72. 0 1
      qunit/tests_setvalue.js

+ 1 - 0
CHANGELOG.md

@@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file.
 - noValuePatching option #1276
 
 ### Updates
+- drop Regex alias => use the inputmask regex option instead
 - alternator syntax update - regex like alternations is now supported (aa|99|AA) ~ aa or 99 or AA
 
 ### Fixed

+ 0 - 1
README.md

@@ -1161,7 +1161,6 @@ When cloning a inputmask, the inputmask reactivates on the first event (mouseent
 # jquery.inputmask extensions
 ## [date & datetime extensions](README_date.md)
 ## [numeric extensions](README_numeric.md)
-## [regex extensions](README_regex.md)
 ## [phone extensions](README_phone.md)
 ## [other extensions](README_other.md)
 

+ 3 - 0
README_numeric.md

@@ -19,6 +19,9 @@ When the quantifier syntax is used, the digitsOptional option is ignored
 Specify wheter the digits are optional.
 Default: true
 
+### enforceDigitsOnBlur 
+Enforces the decimal part when leaving the input field.
+
 ### groupSize
 Define the grouping of the integer part.
 Default: 3

+ 0 - 17
README_regex.md

@@ -1,17 +0,0 @@
-# regex extensions
-With the regex extension you can use any regular expression as a mask.  Currently this does only input restriction.  There is no further masking visualization.
-
-Example simple email regex:
-
-```javascript
-$(document).ready(function(){
-  $(selector).inputmask('Regex', { regex: "[a-zA-Z0-9._%-]+@[a-zA-Z0-9-]+\\.[a-zA-Z]{2,4}" });
-});
-```
-Example turkish words regex (utf8):
-
-```javascript
-$(document).ready(function(){
-  $(selector).inputmask('Regex', { regex: "[a-zA-Z-9şŞıİçÇöÖüÜĞğ\-]+" });
-});
-```

+ 1 - 2
bower.json

@@ -1,13 +1,12 @@
 {
   "name": "inputmask",
-  "version": "3.3.6-10",
+  "version": "3.3.6-46",
   "main": [
 	  "./dist/inputmask/inputmask.js",
 	  "./dist/inputmask/inputmask.extensions.js",
 	  "./dist/inputmask/inputmask.date.extensions.js",
 	  "./dist/inputmask/inputmask.numeric.extensions.js",
 	  "./dist/inputmask/inputmask.phone.extensions.js",
-	  "./dist/inputmask/inputmask.regex.extensions.js",
 	  "./dist/inputmask/jquery.inputmask.js",
 	  "./dist/inputmask/global/document.js",
 	  "./dist/inputmask/global/window.js",

+ 1 - 2
component.json

@@ -2,7 +2,7 @@
 	"name": "inputmask",
 	"repository": "robinherbots/Inputmask",
 	"description": "Inputmask is a javascript library which creates an input mask.  Inputmask can run against vanilla javascript, jQuery and jqlite.",
-	"version": "3.3.6-10",
+	"version": "3.3.6-46",
 	"keywords": [
 		"jquery",
 		"plugins",
@@ -18,7 +18,6 @@
 		"./dist/inputmask/inputmask.date.extensions.js",
 		"./dist/inputmask/inputmask.numeric.extensions.js",
 		"./dist/inputmask/inputmask.phone.extensions.js",
-		"./dist/inputmask/inputmask.regex.extensions.js",
 		"./dist/inputmask/jquery.inputmask.js",
 		"./dist/inputmask/global/document.js",
 		"./dist/inputmask/global/window.js",

+ 1 - 1
composer.json

@@ -1,7 +1,7 @@
 {
   "name": "robinherbots/inputmask",
   "description": "Inputmask is a javascript library which creates an input mask.  Inputmask can run against vanilla javascript, jQuery and jqlite.",
-  "version": "3.3.6-10",
+  "version": "3.3.6-46",
   "type": "library",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "homepage": "http://robinherbots.github.io/Inputmask",

+ 1 - 1
dist/inputmask/bindings/inputmask.binding.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/dependencyLibs/inputmask.dependencyLib.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/global/document.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 "function" == typeof define && define.amd ? define(function() {

+ 1 - 1
dist/inputmask/global/window.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 "function" == typeof define && define.amd ? define(function() {

+ 1 - 1
dist/inputmask/inputmask.date.extensions.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/inputmask.extensions.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

文件差异内容过多而无法显示
+ 76 - 66
dist/inputmask/inputmask.js


文件差异内容过多而无法显示
+ 4 - 3
dist/inputmask/inputmask.numeric.extensions.js


+ 1 - 1
dist/inputmask/inputmask.phone.extensions.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 0 - 115
dist/inputmask/inputmask.regex.extensions.js

@@ -1,115 +0,0 @@
-/*!
-* inputmask.regex.extensions.js
-* https://github.com/RobinHerbots/Inputmask
-* Copyright (c) 2010 - 2017 Robin Herbots
-* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
-*/
-
-!function(factory) {
-    "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);
-}(function($, Inputmask) {
-    return Inputmask.extendAliases({
-        Regex: {
-            mask: "r",
-            greedy: !1,
-            repeat: "*",
-            regex: null,
-            regexTokens: null,
-            tokenizer: /\[\^?]?(?:[^\\\]]+|\\[\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,
-            quantifierFilter: /[0-9]+[^,]/,
-            isComplete: function(buffer, opts) {
-                return new RegExp(opts.regex, opts.casing ? "i" : "").test(buffer.join(""));
-            },
-            definitions: {
-                r: {
-                    validator: function(chrs, maskset, pos, strict, opts) {
-                        function RegexToken(isGroup, isQuantifier) {
-                            this.matches = [], this.isGroup = isGroup || !1, this.isQuantifier = isQuantifier || !1, 
-                            this.quantifier = {
-                                min: 1,
-                                max: 1
-                            }, this.repeaterPart = void 0;
-                        }
-                        function validateRegexToken(token, fromGroup) {
-                            var isvalid = !1;
-                            fromGroup && (regexPart += "(", openGroupCount++);
-                            for (var mndx = 0; mndx < token.matches.length; mndx++) {
-                                var matchToken = token.matches[mndx];
-                                if (!0 === matchToken.isGroup) isvalid = validateRegexToken(matchToken, !0); else if (!0 === matchToken.isQuantifier) {
-                                    var crrntndx = $.inArray(matchToken, token.matches), matchGroup = token.matches[crrntndx - 1], regexPartBak = regexPart;
-                                    if (isNaN(matchToken.quantifier.max)) {
-                                        for (;matchToken.repeaterPart && matchToken.repeaterPart !== regexPart && matchToken.repeaterPart.length > regexPart.length && !(isvalid = validateRegexToken(matchGroup, !0)); ) ;
-                                        isvalid = isvalid || validateRegexToken(matchGroup, !0), isvalid && (matchToken.repeaterPart = regexPart), 
-                                        regexPart = regexPartBak + matchToken.quantifier.max;
-                                    } else {
-                                        for (var i = 0, qm = matchToken.quantifier.max - 1; i < qm && !(isvalid = validateRegexToken(matchGroup, !0)); i++) ;
-                                        regexPart = regexPartBak + "{" + matchToken.quantifier.min + "," + matchToken.quantifier.max + "}";
-                                    }
-                                } else if (void 0 !== matchToken.matches) for (var k = 0; k < matchToken.length && !(isvalid = validateRegexToken(matchToken[k], fromGroup)); k++) ; else {
-                                    var testExp;
-                                    if ("[" == matchToken.charAt(0)) {
-                                        testExp = regexPart, testExp += matchToken;
-                                        for (var j = 0; j < openGroupCount; j++) testExp += ")";
-                                        var exp = new RegExp("^(" + testExp + ")$", opts.casing ? "i" : "");
-                                        isvalid = exp.test(bufferStr);
-                                    } else for (var l = 0, tl = matchToken.length; l < tl; l++) if ("\\" !== matchToken.charAt(l)) {
-                                        testExp = regexPart, testExp += matchToken.substr(0, l + 1), testExp = testExp.replace(/\|$/, "");
-                                        for (var j = 0; j < openGroupCount; j++) testExp += ")";
-                                        var exp = new RegExp("^(" + testExp + ")$", opts.casing ? "i" : "");
-                                        if (isvalid = exp.test(bufferStr)) break;
-                                    }
-                                    regexPart += matchToken;
-                                }
-                                if (isvalid) break;
-                            }
-                            return fromGroup && (regexPart += ")", openGroupCount--), isvalid;
-                        }
-                        var bufferStr, groupToken, cbuffer = maskset.buffer.slice(), regexPart = "", isValid = !1, openGroupCount = 0;
-                        null === opts.regexTokens && function() {
-                            var match, m, currentToken = new RegexToken(), opengroups = [];
-                            for (opts.regexTokens = []; match = opts.tokenizer.exec(opts.regex); ) switch (m = match[0], 
-                            m.charAt(0)) {
-                              case "(":
-                                opengroups.push(new RegexToken(!0));
-                                break;
-
-                              case ")":
-                                groupToken = opengroups.pop(), opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(groupToken) : currentToken.matches.push(groupToken);
-                                break;
-
-                              case "{":
-                              case "+":
-                              case "*":
-                                var quantifierToken = new RegexToken(!1, !0);
-                                m = m.replace(/[{}]/g, "");
-                                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]);
-                                if (quantifierToken.quantifier = {
-                                    min: mq0,
-                                    max: mq1
-                                }, opengroups.length > 0) {
-                                    var matches = opengroups[opengroups.length - 1].matches;
-                                    match = matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), groupToken.matches.push(match), 
-                                    match = groupToken), matches.push(match), matches.push(quantifierToken);
-                                } else match = currentToken.matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), 
-                                groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), 
-                                currentToken.matches.push(quantifierToken);
-                                break;
-
-                              default:
-                                opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(m) : currentToken.matches.push(m);
-                            }
-                            currentToken.matches.length > 0 && opts.regexTokens.push(currentToken);
-                        }(), cbuffer.splice(pos, 0, chrs), bufferStr = cbuffer.join("");
-                        for (var i = 0; i < opts.regexTokens.length; i++) {
-                            var regexToken = opts.regexTokens[i];
-                            if (isValid = validateRegexToken(regexToken, regexToken.isGroup)) break;
-                        }
-                        return isValid;
-                    },
-                    cardinality: 1
-                }
-            }
-        }
-    }), Inputmask;
-});

+ 1 - 1
dist/inputmask/jquery.inputmask.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/phone-codes/phone-be.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/phone-codes/phone-nl.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/phone-codes/phone-ru.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/phone-codes/phone-uk.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

+ 1 - 1
dist/inputmask/phone-codes/phone.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(factory) {

文件差异内容过多而无法显示
+ 79 - 68
dist/jquery.inputmask.bundle.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/bindings/inputmask.binding.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.min.js


+ 1 - 1
dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.min.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):window.dependencyLib=a(jQuery)}(function(a){return a});

文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.min.js


+ 1 - 1
dist/min/inputmask/global/document.min.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 "function"==typeof define&&define.amd?define(function(){return document}):"object"==typeof exports&&(module.exports=document);

+ 1 - 1
dist/min/inputmask/global/window.min.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2017 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.6-10
+* Version: 3.3.6-46
 */
 
 "function"==typeof define&&define.amd?define(function(){return window}):"object"==typeof exports&&(module.exports=window);

文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/inputmask.date.extensions.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/inputmask.extensions.min.js


文件差异内容过多而无法显示
+ 3 - 3
dist/min/inputmask/inputmask.min.js


文件差异内容过多而无法显示
+ 2 - 2
dist/min/inputmask/inputmask.numeric.extensions.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/inputmask.phone.extensions.min.js


文件差异内容过多而无法显示
+ 0 - 9
dist/min/inputmask/inputmask.regex.extensions.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/jquery.inputmask.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/phone-codes/phone-be.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/phone-codes/phone-nl.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/phone-codes/phone-ru.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/phone-codes/phone-uk.min.js


文件差异内容过多而无法显示
+ 1 - 1
dist/min/inputmask/phone-codes/phone.min.js


文件差异内容过多而无法显示
+ 4 - 4
dist/min/jquery.inputmask.bundle.min.js


+ 0 - 1
index.js

@@ -2,7 +2,6 @@ require("./dist/inputmask/inputmask.date.extensions");
 require("./dist/inputmask/inputmask.extensions");
 require("./dist/inputmask/inputmask.numeric.extensions");
 require("./dist/inputmask/inputmask.phone.extensions");
-require("./dist/inputmask/inputmask.regex.extensions");
 
 require("./dist/inputmask/phone-codes/phone-be");
 require("./dist/inputmask/phone-codes/phone-nl");

文件差异内容过多而无法显示
+ 2812 - 2766
js/inputmask.js


+ 3 - 2
js/inputmask.numeric.extensions.js

@@ -112,6 +112,7 @@
 			greedy: false,
 			digits: "*", //number of fractionalDigits
 			digitsOptional: true,
+			enforceDigitsOnBlur: false,
 			radixPoint: ".",
 			positionCaretOnClick: "radixFocus",
 			groupSize: 3,
@@ -231,7 +232,7 @@
 				if (processValue !== "") {
 					processValue = processValue.split("");
 					//handle digits
-					if (!opts.digitsOptional && isFinite(opts.digits)) {
+					if ((!opts.digitsOptional || (opts.enforceDigitsOnBlur && currentResult.event === "blur")) && isFinite(opts.digits)) {
 						var radixPosition = $.inArray(opts.radixPoint, processValue);
 						var rpb = $.inArray(opts.radixPoint, maskedValue);
 						if (radixPosition === -1) {
@@ -239,7 +240,7 @@
 							radixPosition = processValue.length - 1;
 						}
 						for (var i = 1; i <= opts.digits; i++) {
-							if (!opts.digitsOptional && (processValue[radixPosition + i] === undefined || processValue[radixPosition + i] === opts.placeholder.charAt(0))) {
+							if ((!opts.digitsOptional || (opts.enforceDigitsOnBlur && currentResult.event === "blur")) && (processValue[radixPosition + i] === undefined || processValue[radixPosition + i] === opts.placeholder.charAt(0))) {
 								processValue[radixPosition + i] = currentResult.placeholder || opts.placeholder.charAt(0);
 							} else if (rpb !== -1 && maskedValue[rpb + i] !== undefined) {
 								processValue[radixPosition + i] = processValue[radixPosition + i] || maskedValue[rpb + i];

+ 0 - 215
js/inputmask.regex.extensions.js

@@ -1,215 +0,0 @@
-/*
- Input Mask plugin extensions
- http://github.com/RobinHerbots/jquery.inputmask
- Copyright (c) 2010 -  Robin Herbots
- Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
- Version: 0.0.0-dev
-
- Regex extensions on the jquery.inputmask base
- Allows for using regular expressions as a mask
- */
-(function (factory) {
-	if (typeof define === "function" && define.amd) {
-		define(["./dependencyLibs/inputmask.dependencyLib", "./inputmask"], factory);
-	} else if (typeof exports === "object") {
-		module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./inputmask"));
-	} else {
-		factory(window.dependencyLib || jQuery, window.Inputmask);
-	}
-}
-(function ($, Inputmask) {
-	Inputmask.extendAliases({ // $(selector).inputmask("Regex", { regex: "[0-9]*"}
-		"Regex": {
-			mask: "r",
-			greedy: false,
-			repeat: "*",
-			regex: null,
-			regexTokens: null,
-			//Thx to https://github.com/slevithan/regex-colorizer for the tokenizer regex
-			tokenizer: /\[\^?]?(?:[^\\\]]+|\\[\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,
-			quantifierFilter: /[0-9]+[^,]/,
-			isComplete: function (buffer, opts) {
-				return new RegExp(opts.regex,opts.casing?"i":"").test(buffer.join(""));
-			},
-			definitions: {
-				"r": {
-					validator: function (chrs, maskset, pos, strict, opts) {
-						var cbuffer = maskset.buffer.slice(),
-							bufferStr,
-							regexPart = "",
-							isValid = false,
-							openGroupCount = 0,
-							groupToken;
-
-						function RegexToken(isGroup, isQuantifier) {
-							this.matches = [];
-							this.isGroup = isGroup || false;
-							this.isQuantifier = isQuantifier || false;
-							this.quantifier = {
-								min: 1,
-								max: 1
-							};
-							this.repeaterPart = undefined;
-						}
-
-						function analyseRegex() {
-							var currentToken = new RegexToken(),
-								match, m, opengroups = [];
-
-							opts.regexTokens = [];
-
-							// The tokenizer regex does most of the tokenization grunt work
-							while (match = opts.tokenizer.exec(opts.regex)) {
-								m = match[0];
-								switch (m.charAt(0)) {
-									case "(": // Group opening
-										opengroups.push(new RegexToken(true));
-										break;
-									case ")": // Group closing
-										groupToken = opengroups.pop();
-										if (opengroups.length > 0) {
-											opengroups[opengroups.length - 1].matches.push(groupToken);
-										} else {
-											currentToken.matches.push(groupToken);
-										}
-										break;
-									case "{":
-									case "+":
-									case "*": //Quantifier
-										var quantifierToken = new RegexToken(false, true);
-										m = m.replace(/[{}]/g, "");
-										var mq = m.split(","),
-											mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]),
-											mq1 = mq.length === 1 ? mq0 : (isNaN(mq[1]) ? mq[1] : parseInt(mq[1]));
-										quantifierToken.quantifier = {
-											min: mq0,
-											max: mq1
-										};
-										if (opengroups.length > 0) {
-											var matches = opengroups[opengroups.length - 1].matches;
-											match = matches.pop();
-											if (!match.isGroup) {
-												groupToken = new RegexToken(true);
-												groupToken.matches.push(match);
-												match = groupToken;
-											}
-											matches.push(match);
-											matches.push(quantifierToken);
-										} else {
-											match = currentToken.matches.pop();
-											if (!match.isGroup) {
-												groupToken = new RegexToken(true);
-												groupToken.matches.push(match);
-												match = groupToken;
-											}
-											currentToken.matches.push(match);
-											currentToken.matches.push(quantifierToken);
-										}
-										break;
-									default:
-										if (opengroups.length > 0) {
-											opengroups[opengroups.length - 1].matches.push(m);
-										} else {
-											currentToken.matches.push(m);
-										}
-										break;
-								}
-							}
-
-							if (currentToken.matches.length > 0) {
-								opts.regexTokens.push(currentToken);
-							}
-						}
-
-						function validateRegexToken(token, fromGroup) {
-							var isvalid = false;
-							if (fromGroup) {
-								regexPart += "(";
-								openGroupCount++;
-							}
-							for (var mndx = 0; mndx < token.matches.length; mndx++) {
-								var matchToken = token.matches[mndx];
-								if (matchToken.isGroup === true) {
-									isvalid = validateRegexToken(matchToken, true);
-								} else if (matchToken.isQuantifier === true) {
-									var crrntndx = $.inArray(matchToken, token.matches),
-										matchGroup = token.matches[crrntndx - 1];
-									var regexPartBak = regexPart;
-									if (isNaN(matchToken.quantifier.max)) {
-										while (matchToken.repeaterPart && matchToken.repeaterPart !== regexPart && matchToken.repeaterPart.length > regexPart.length) {
-											isvalid = validateRegexToken(matchGroup, true);
-											if (isvalid) break;
-										}
-										isvalid = isvalid || validateRegexToken(matchGroup, true);
-										if (isvalid) matchToken.repeaterPart = regexPart;
-										regexPart = regexPartBak + matchToken.quantifier.max;
-									} else {
-										for (var i = 0, qm = matchToken.quantifier.max - 1; i < qm; i++) {
-											isvalid = validateRegexToken(matchGroup, true);
-											if (isvalid) break;
-										}
-										regexPart = regexPartBak + "{" + matchToken.quantifier.min + "," + matchToken.quantifier.max + "}";
-									}
-								} else if (matchToken.matches !== undefined) {
-									for (var k = 0; k < matchToken.length; k++) {
-										isvalid = validateRegexToken(matchToken[k], fromGroup);
-										if (isvalid) break;
-									}
-								} else {
-									var testExp;
-									if (matchToken.charAt(0) == "[") {
-										testExp = regexPart;
-										testExp += matchToken;
-										for (var j = 0; j < openGroupCount; j++) {
-											testExp += ")";
-										}
-										var exp = new RegExp("^(" + testExp + ")$",opts.casing?"i":"");
-										isvalid = exp.test(bufferStr);
-									} else {
-										for (var l = 0, tl = matchToken.length; l < tl; l++) {
-											if (matchToken.charAt(l) === "\\") continue;
-											testExp = regexPart;
-											testExp += matchToken.substr(0, l + 1);
-											testExp = testExp.replace(/\|$/, "");
-											for (var j = 0; j < openGroupCount; j++) {
-												testExp += ")";
-											}
-											var exp = new RegExp("^(" + testExp + ")$",opts.casing?"i":"");
-											isvalid = exp.test(bufferStr);
-											if (isvalid) break;
-										}
-									}
-									regexPart += matchToken;
-								}
-								if (isvalid) break;
-							}
-
-							if (fromGroup) {
-								regexPart += ")";
-								openGroupCount--;
-							}
-
-							return isvalid;
-						}
-
-						if (opts.regexTokens === null) {
-							analyseRegex();
-						}
-
-						cbuffer.splice(pos, 0, chrs);
-						bufferStr = cbuffer.join("");
-						for (var i = 0; i < opts.regexTokens.length; i++) {
-							var regexToken = opts.regexTokens[i];
-							isValid = validateRegexToken(regexToken, regexToken.isGroup);
-							if (isValid) break;
-						}
-
-						return isValid;
-					},
-					cardinality: 1
-				}
-			}
-		}
-	});
-	return Inputmask;
-}));

+ 19 - 2
nuspecs/Inputmask.nuspec

@@ -14,25 +14,42 @@
         <tags>jQuery, plugins, input, form, inputmask, mask</tags>
     </metadata>
     <files>
+        <file src="..\dist\inputmask\bindings\inputmask.binding.js" target="content\Scripts\inputmask\bindings\inputmask.binding.js" />
         <file src="..\dist\min\inputmask\bindings\inputmask.binding.min.js" target="content\Scripts\inputmask\bindings\inputmask.binding.min.js" />
+        <file src="..\dist\inputmask\dependencyLibs\inputmask.dependencyLib.jqlite.js" target="content\Scripts\inputmask\dependencyLibs\inputmask.dependencyLib.jqlite.js" />
         <file src="..\dist\min\inputmask\dependencyLibs\inputmask.dependencyLib.jqlite.min.js" target="content\Scripts\inputmask\dependencyLibs\inputmask.dependencyLib.jqlite.min.js" />
+        <file src="..\dist\inputmask\dependencyLibs\inputmask.dependencyLib.jquery.js" target="content\Scripts\inputmask\dependencyLibs\inputmask.dependencyLib.jquery.js" />
         <file src="..\dist\min\inputmask\dependencyLibs\inputmask.dependencyLib.jquery.min.js" target="content\Scripts\inputmask\dependencyLibs\inputmask.dependencyLib.jquery.min.js" />
+        <file src="..\dist\inputmask\dependencyLibs\inputmask.dependencyLib.js" target="content\Scripts\inputmask\dependencyLibs\inputmask.dependencyLib.js" />
         <file src="..\dist\min\inputmask\dependencyLibs\inputmask.dependencyLib.min.js" target="content\Scripts\inputmask\dependencyLibs\inputmask.dependencyLib.min.js" />
+        <file src="..\dist\inputmask\global\document.js" target="content\Scripts\inputmask\global\document.js" />
         <file src="..\dist\min\inputmask\global\document.min.js" target="content\Scripts\inputmask\global\document.min.js" />
+        <file src="..\dist\inputmask\global\window.js" target="content\Scripts\inputmask\global\window.js" />
         <file src="..\dist\min\inputmask\global\window.min.js" target="content\Scripts\inputmask\global\window.min.js" />
+        <file src="..\dist\inputmask\phone-codes\phone-be.js" target="content\Scripts\inputmask\phone-codes\phone-be.js" />
         <file src="..\dist\min\inputmask\phone-codes\phone-be.min.js" target="content\Scripts\inputmask\phone-codes\phone-be.min.js" />
+        <file src="..\dist\inputmask\phone-codes\phone-nl.js" target="content\Scripts\inputmask\phone-codes\phone-nl.js" />
         <file src="..\dist\min\inputmask\phone-codes\phone-nl.min.js" target="content\Scripts\inputmask\phone-codes\phone-nl.min.js" />
+        <file src="..\dist\inputmask\phone-codes\phone-ru.js" target="content\Scripts\inputmask\phone-codes\phone-ru.js" />
         <file src="..\dist\min\inputmask\phone-codes\phone-ru.min.js" target="content\Scripts\inputmask\phone-codes\phone-ru.min.js" />
+        <file src="..\dist\inputmask\phone-codes\phone-uk.js" target="content\Scripts\inputmask\phone-codes\phone-uk.js" />
         <file src="..\dist\min\inputmask\phone-codes\phone-uk.min.js" target="content\Scripts\inputmask\phone-codes\phone-uk.min.js" />
+        <file src="..\dist\inputmask\phone-codes\phone.js" target="content\Scripts\inputmask\phone-codes\phone.js" />
         <file src="..\dist\min\inputmask\phone-codes\phone.min.js" target="content\Scripts\inputmask\phone-codes\phone.min.js" />
+        <file src="..\dist\inputmask\inputmask.date.extensions.js" target="content\Scripts\inputmask\inputmask.date.extensions.js" />
         <file src="..\dist\min\inputmask\inputmask.date.extensions.min.js" target="content\Scripts\inputmask\inputmask.date.extensions.min.js" />
+        <file src="..\dist\inputmask\inputmask.extensions.js" target="content\Scripts\inputmask\inputmask.extensions.js" />
         <file src="..\dist\min\inputmask\inputmask.extensions.min.js" target="content\Scripts\inputmask\inputmask.extensions.min.js" />
+        <file src="..\dist\inputmask\inputmask.js" target="content\Scripts\inputmask\inputmask.js" />
         <file src="..\dist\min\inputmask\inputmask.min.js" target="content\Scripts\inputmask\inputmask.min.js" />
+        <file src="..\dist\inputmask\inputmask.numeric.extensions.js" target="content\Scripts\inputmask\inputmask.numeric.extensions.js" />
         <file src="..\dist\min\inputmask\inputmask.numeric.extensions.min.js" target="content\Scripts\inputmask\inputmask.numeric.extensions.min.js" />
+        <file src="..\dist\inputmask\inputmask.phone.extensions.js" target="content\Scripts\inputmask\inputmask.phone.extensions.js" />
         <file src="..\dist\min\inputmask\inputmask.phone.extensions.min.js" target="content\Scripts\inputmask\inputmask.phone.extensions.min.js" />
-        <file src="..\dist\min\inputmask\inputmask.regex.extensions.min.js" target="content\Scripts\inputmask\inputmask.regex.extensions.min.js" />
+        <file src="..\dist\inputmask\jquery.inputmask.js" target="content\Scripts\inputmask\jquery.inputmask.js" />
         <file src="..\dist\min\inputmask\jquery.inputmask.min.js" target="content\Scripts\inputmask\jquery.inputmask.min.js" />
+        <file src="..\dist\jquery.inputmask.bundle.js" target="content\Scripts\jquery.inputmask.bundle.js" />
         <file src="..\dist\min\jquery.inputmask.bundle.min.js" target="content\Scripts\jquery.inputmask.bundle.min.js" />
         <file src="Readme.txt" target="Readme.txt" />
     </files>
-</package>
+</package>

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "inputmask",
-  "version": "3.3.6-10",
+  "version": "3.3.6-46",
   "description": "Inputmask is a javascript library which creates an input mask.  Inputmask can run against vanilla javascript, jQuery and jqlite.",
   "main": "index.js",
   "files": [

+ 0 - 1
qunit/tests_attributes.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function(qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_dynamic.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_escape.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function(qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_formatvalidate.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function(qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_initialvalue.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function(qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_inputeventonly.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_jquery_inputmask.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"../dist/inputmask/jquery.inputmask",
 	"prototypeExtensions",
 	"simulator"

+ 0 - 1
qunit/tests_keepStatic.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function(qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_multi.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_numeric.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_numericinput.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_option.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_optional.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_paste.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_phone.js

@@ -10,7 +10,6 @@ define([
 	"../dist/inputmask/phone-codes/phone-nl",
 	"../dist/inputmask/phone-codes/phone-ru",
 	"../dist/inputmask/phone-codes/phone-uk",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_phone_world.js

@@ -10,7 +10,6 @@ define([
 	"../dist/inputmask/phone-codes/phone-nl",
 	"../dist/inputmask/phone-codes/phone-ru",
 	"../dist/inputmask/phone-codes/phone-uk",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_phonebe.js

@@ -10,7 +10,6 @@ define([
 	"../dist/inputmask/phone-codes/phone-nl",
 	"../dist/inputmask/phone-codes/phone-ru",
 	"../dist/inputmask/phone-codes/phone-uk",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_phonenl.js

@@ -10,7 +10,6 @@ define([
 	"../dist/inputmask/phone-codes/phone-nl",
 	"../dist/inputmask/phone-codes/phone-ru",
 	"../dist/inputmask/phone-codes/phone-uk",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 0 - 1
qunit/tests_phoneru.js

@@ -10,7 +10,6 @@ define([
 	"../dist/inputmask/phone-codes/phone-nl",
 	"../dist/inputmask/phone-codes/phone-ru",
 	"../dist/inputmask/phone-codes/phone-uk",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {

+ 53 - 51
qunit/tests_regex.js

@@ -5,18 +5,17 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function(qunit, $, Inputmask) {
 
 qunit.module("Regex masks");
 
-qunit.test("inputmask(\"Regex\", { regex: \"[0-9]*\"});", function(assert) {
+qunit.test("inputmask({ regex: \"[0-9]*\"});", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[0-9]*"
 	}).mask(testmask);
 
@@ -26,11 +25,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[0-9]*\"});", function(assert) {
 	assert.equal(testmask.value, "12345", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"[0-9]*\"}); ~ isComplete", function(assert) {
+qunit.test("inputmask({ regex: \"[0-9]*\"}); ~ isComplete", function(assert) {
 	var $fixture = $("#qunit-fixture"), done = assert.async();
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[0-9]*",
 		oncomplete: function() {
 			assert.equal(testmask.value, "1", "Result " + testmask.value);
@@ -42,12 +41,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[0-9]*\"}); ~ isComplete", function(
 	$("#testmask").SendKey("1");
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"[A-Za-z\u0410-\u044F\u0401\u04510-9]*\"});", function(assert) {
+qunit.test("inputmask({ regex: \"[A-Za-z\u0410-\u044F\u0401\u04510-9]*\"});", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
-		regex: "[A-Za-z\u0410-\u044F\u0401\u04510-9]*"
+	Inputmask({regex: "[A-Za-z\u0410-\u044F\u0401\u04510-9]*"
 	}).mask(testmask);
 
 	testmask.focus();
@@ -56,11 +54,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[A-Za-z\u0410-\u044F\u0401\u04510-9]
 	assert.equal(testmask.value, "123abc45", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"[A-Za-z\u0410-\u044F\u0401\u0451]+[A-Za-z\u0410-\u044F\u0401\u04510-9]*\"});", function(assert) {
+qunit.test("inputmask({ regex: \"[A-Za-z\u0410-\u044F\u0401\u0451]+[A-Za-z\u0410-\u044F\u0401\u04510-9]*\"});", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[A-Za-z\u0410-\u044F\u0401\u0451]+[A-Za-z\u0410-\u044F\u0401\u04510-9]*"
 	}).mask(testmask);
 
@@ -71,11 +69,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[A-Za-z\u0410-\u044F\u0401\u0451]+[A
 });
 
 
-qunit.test("inputmask(\"Regex\", { regex: \"[A-Za-z\u0410-\u044F\u0401\u0451]{1}[A-Za-z\u0410-\u044F\u0401\u04510-9]*\"});", function(assert) {
+qunit.test("inputmask({ regex: \"[A-Za-z\u0410-\u044F\u0401\u0451]{1}[A-Za-z\u0410-\u044F\u0401\u04510-9]*\"});", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[A-Za-z\u0410-\u044F\u0401\u0451]{1}[A-Za-z\u0410-\u044F\u0401\u04510-9]*"
 	}).mask(testmask);
 
@@ -85,11 +83,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[A-Za-z\u0410-\u044F\u0401\u0451]{1}
 	assert.equal(testmask.value, "abc45", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", function(assert) {
+qunit.test("inputmask({ regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[-]?(([1-8][0-9])|[1-9]0?)"
 	}).mask(testmask);
 
@@ -99,11 +97,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", fu
 	assert.equal(testmask.value, "90", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", function(assert) {
+qunit.test("inputmask({ regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[-]?(([1-8][0-9])|[1-9]0?)"
 	}).mask(testmask);
 
@@ -113,11 +111,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", fu
 	assert.equal(testmask.value, "", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", function(assert) {
+qunit.test("inputmask({ regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[-]?(([1-8][0-9])|[1-9]0?)"
 	}).mask(testmask);
 
@@ -127,11 +125,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", fu
 	assert.equal(testmask.value, "-78", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\" - simple regex email", function(assert) {
+qunit.test("inputmask({ regex: \"[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\" - simple regex email", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?"
 	}).mask(testmask);
 
@@ -141,11 +139,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?
 	assert.equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\" - complexer regex email", function(assert) {
+qunit.test("inputmask({ regex: \"[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\" - complexer regex email", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?"
 	}).mask(testmask);
 
@@ -155,11 +153,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?
 	assert.equal(testmask.value, "denise.van.de.cruys@mail.com", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 1-123-4562", function(assert) {
+qunit.test("inputmask({ regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 1-123-4562", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))"
 	}).mask(testmask);
 
@@ -168,11 +166,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|(
 
 	assert.equal(testmask.value, "1-123-4562", "Result " + testmask.value);
 });
-qunit.test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 20-222-2222", function(assert) {
+qunit.test("inputmask({ regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 20-222-2222", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))"
 	}).mask(testmask);
 
@@ -181,11 +179,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|(
 
 	assert.equal(testmask.value, "20-222-2222", "Result " + testmask.value);
 });
-qunit.test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 22-222-234", function(assert) {
+qunit.test("inputmask({ regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 22-222-234", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))"
 	}).mask(testmask);
 
@@ -195,11 +193,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|(
 	assert.equal(testmask.value, "22-222-234", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 70-12-34", function(assert) {
+qunit.test("inputmask({ regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 70-12-34", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))"
 	}).mask(testmask);
 
@@ -209,11 +207,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|(
 	assert.equal(testmask.value, "70-123", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?\" - arame regex 12", function(assert) {
+qunit.test("inputmask({ regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?\" - arame regex 12", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?"
 	}).mask(testmask);
 
@@ -223,11 +221,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|
 	assert.equal(testmask.value, "12", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?\" } - arame regex 12.5", function(assert) {
+qunit.test("inputmask({ regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?\" } - arame regex 12.5", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?"
 	}).mask(testmask);
 
@@ -237,11 +235,11 @@ qunit.test("inputmask(\"Regex\", { regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|
 	assert.equal(testmask.value, "12.5", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", { regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?\" } - arame regex 12.75", function(assert) {
+qunit.test("inputmask({ regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?\" } - arame regex 12.75", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?"
 	}).mask(testmask);
 
@@ -251,12 +249,13 @@ qunit.test("inputmask(\"Regex\", { regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|
 	assert.equal(testmask.value, "12.75", "Result " + testmask.value);
 });
 
-qunit.test("inputmask('Regex', { regex: \"(abc)+(def)\" }); - Flyarbonkers regex abcdef", function(assert) {
+qunit.test("inputmask({ regex: \"(abc)+(def)\" }); - Flyarbonkers regex abcdef", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask('Regex', {
-		regex: "(abc)+(def)"
+	Inputmask({
+		regex: "(abc)+(def)",
+		jitMasking: true
 	}).mask(testmask);
 
 	testmask.focus();
@@ -265,12 +264,13 @@ qunit.test("inputmask('Regex', { regex: \"(abc)+(def)\" }); - Flyarbonkers regex
 	assert.equal(testmask.value, "abcdef", "Result " + testmask.value);
 });
 
-qunit.test("inputmask('Regex', { regex: \"(abc)+(def)\" }); - Flyarbonkers regex 123a4b5c6d7e8f", function(assert) {
+qunit.test("inputmask({ regex: \"(abc)+(def)\" }); - Flyarbonkers regex 123a4b5c6d7e8f", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask('Regex', {
-		regex: "(abc)+(def)"
+	Inputmask({
+		regex: "(abc)+(def)",
+		jitMasking: true
 	}).mask(testmask);
 
 	testmask.focus();
@@ -279,12 +279,13 @@ qunit.test("inputmask('Regex', { regex: \"(abc)+(def)\" }); - Flyarbonkers regex
 	assert.equal(testmask.value, "abcdef", "Result " + testmask.value);
 });
 
-qunit.test("inputmask('Regex', { regex: \"(abc)+(def)\" }); - Flyarbonkers regex abcabcdef", function(assert) {
+qunit.test("inputmask({ regex: \"(abc)+(def)\" }); - Flyarbonkers regex abcabcdef", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask('Regex', {
-		regex: "(abc)+(def)"
+	Inputmask({
+		regex: "(abc)+(def)",
+		jitMasking: true
 	}).mask(testmask);
 
 	testmask.focus();
@@ -293,25 +294,26 @@ qunit.test("inputmask('Regex', { regex: \"(abc)+(def)\" }); - Flyarbonkers regex
 	assert.equal(testmask.value, "abcabcdef", "Result " + testmask.value);
 });
 
-qunit.test("inputmask('Regex', { regex: \"(abc){2,4}(def)\" }); - Flyarbonkers regex abdefcafebcaefbfcabcdef", function(assert) {
+qunit.test("inputmask({ regex: \"(abc){2,4}(def)\" }); - Flyarbonkers regex abcafebcaefbfcabcdef", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask('Regex', {
-		regex: "(abc){2,4}(def)"
+	Inputmask({
+		regex: "(abc){2,4}(def)",
+		jitMasking: true
 	}).mask(testmask);
 
 	testmask.focus();
-	$("#testmask").Type("abdefcafebcaefbfcabcdef");
+	$("#testmask").Type("abcafebcaefbfcabcdef");
 
 	assert.equal(testmask.value, "abcabcabcabcdef", "Result " + testmask.value);
 });
 
-qunit.test("inputmask(\"Regex\", {regex: \"[а-яА-Я\\s]*\"}) - type space - SilentImp", function(assert) {
+qunit.test("inputmask({regex: \"[а-яА-Я\\s]*\"}) - type space - SilentImp", function(assert) {
 	var $fixture = $("#qunit-fixture");
 	$fixture.append('<input type="text" id="testmask" />');
 	var testmask = document.getElementById("testmask");
-	Inputmask("Regex", {
+	Inputmask({
 		regex: "[а-яА-Я\\s]*"
 	}).mask(testmask);
 

+ 0 - 1
qunit/tests_setvalue.js

@@ -5,7 +5,6 @@ define([
 	"../dist/inputmask/inputmask.extensions",
 	"../dist/inputmask/inputmask.numeric.extensions",
 	"../dist/inputmask/inputmask.phone.extensions",
-	"../dist/inputmask/inputmask.regex.extensions",
 	"prototypeExtensions",
 	"simulator"
 ], function (qunit, $, Inputmask) {