浏览代码

#1030 && comment out in phone-uk.js fix #1025

Robin Herbots 10 年之前
父节点
当前提交
dec05b5ad4
共有 40 个文件被更改,包括 1000 次插入852 次删除
  1. 11 0
      CHANGELOG.md
  2. 1 28
      Gruntfile.js
  3. 1 1
      README.md
  4. 14 13
      bower.json
  5. 25 25
      component.json
  6. 10 12
      composer.json
  7. 26 3
      dist/inputmask/dependencyLib.js
  8. 2 2
      dist/inputmask/inputmask.date.extensions.js
  9. 2 2
      dist/inputmask/inputmask.extensions.js
  10. 111 105
      dist/inputmask/inputmask.js
  11. 2 2
      dist/inputmask/inputmask.numeric.extensions.js
  12. 2 2
      dist/inputmask/inputmask.phone.extensions.js
  13. 2 2
      dist/inputmask/inputmask.regex.extensions.js
  14. 2 2
      dist/inputmask/jquery.inputmask.js
  15. 2 2
      dist/min/inputmask/dependencyLib.min.js
  16. 2 2
      dist/min/inputmask/inputmask.date.extensions.min.js
  17. 2 2
      dist/min/inputmask/inputmask.extensions.min.js
  18. 3 3
      dist/min/inputmask/inputmask.min.js
  19. 2 2
      dist/min/inputmask/inputmask.numeric.extensions.min.js
  20. 2 2
      dist/min/inputmask/inputmask.phone.extensions.min.js
  21. 2 2
      dist/min/inputmask/inputmask.regex.extensions.min.js
  22. 2 2
      dist/min/inputmask/jquery.inputmask.min.js
  23. 418 418
      extra/phone-codes/phone-uk.js
  24. 36 1
      js/dependencyLib.js
  25. 1 1
      js/inputmask.date.extensions.js
  26. 1 1
      js/inputmask.extensions.js
  27. 220 198
      js/inputmask.js
  28. 1 1
      js/inputmask.numeric.extensions.js
  29. 1 1
      js/inputmask.phone.extensions.js
  30. 1 1
      js/inputmask.regex.extensions.js
  31. 1 1
      js/jquery.inputmask.js
  32. 4 4
      nuspecs/Readme.txt
  33. 3 2
      package.json
  34. 23 0
      qunit/config.js
  35. 34 0
      qunit/main.js
  36. 11 4
      qunit/qunit.html
  37. 14 0
      qunit/qunit_require.html
  38. 1 1
      qunit/tests_base.js
  39. 1 1
      qunit/tests_phone.js
  40. 1 1
      qunit/tests_regex.js

+ 11 - 0
CHANGELOG.md

@@ -1,6 +1,17 @@
 # Change Log
 All notable changes to this project will be documented in this file.
 
+## [UNRELEASED]
+
+### Updates
+- fix dependency paths for browserify
+- update files to be included for package.json, bower.json, component.json
+- remove jquery.inputmask.bundle.js
+
+### Fixed
+- Browserify error: `Error: Cannot find module 'inputmask' from '/Users/.../node_modules/jquery.inputmask/dist/inputmask` #1030
+- Invalid JSON phone-uk.js #1025
+
 ## [3.2.0] - 2015-09-04
 
 ### Added

+ 1 - 28
Gruntfile.js

@@ -36,33 +36,6 @@ module.exports = function(grunt) {
 				}
 			};
 		}
-
-		srcFiles = grunt.file.expand(path + "/*.extensions.js");
-		srcFiles.splice(0, 0, "js/jquery.inputmask.js");
-		srcFiles.splice(0, 0, "js/inputmask.js");
-		srcFiles.splice(0, 0, "js/dependencyLib.js");
-		uglifyConfig["inputmaskbundle"] = {
-			files: {
-				'dist/<%= pkg.name %>.bundle.js': srcFiles
-			},
-			options: {
-				banner: createBanner('<%= pkg.name %>.bundle'),
-				beautify: true,
-				mangle: false,
-				preserveComments: "some",
-				ASCIIOnly: true
-			}
-		}
-		uglifyConfig["inputmaskbundlemin"] = {
-			files: {
-				'dist/min/<%= pkg.name %>.bundle.min.js': srcFiles
-			},
-			options: {
-				banner: createBanner('<%= pkg.name %>.bundle'),
-				preserveComments: "some",
-				ASCIIOnly: true
-			}
-		}
 		return uglifyConfig;
 	}
 
@@ -70,7 +43,7 @@ module.exports = function(grunt) {
 	grunt.initConfig({
 		pkg: grunt.file.readJSON("package.json"),
 		uglify: createUglifyConfig("js"),
-		clean: ["dist"],
+		clean: ["dist", "build"],
 		karma: {
 			options: {
 				configFile: 'karma.conf.js'

+ 1 - 1
README.md

@@ -30,7 +30,7 @@ Demo page see [http://robinherbots.github.io/jquery.inputmask](http://robinherbo
 [![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZNR3EB6JTMMSS)
 
 ## Usage:
-Include the js-files which you can find in the dist-folder. You have the bundled file which contains the main plugin code and also all extensions (date, numerics, other) or if you prefer to only include some parts, use the separate js-files in the dist/min folder.
+Include the js-files which you can find in the dist-folder.
 
 If you use a module loader like requireJS, use the js-files in dist/inputmask
 

+ 14 - 13
bower.json

@@ -1,25 +1,26 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.2.0",
+  "version": "3.2.1-13",
   "main": [
-    "./dist/inputmask/jquery.inputmask.js",
+    "./dist/inputmask/dependencyLib.js"
     "./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/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",
     "./extra/phone-codes/phone-be.js",
     "./extra/phone-codes/phone-codes.js",
     "./extra/phone-codes/phone-nl.js",
     "./extra/phone-codes/phone-ru.js",
     "./extra/phone-codes/phone-uk.js"
   ],
-  "keywords" : ["jquery", "plugins", "input", "form", "inputmask", "mask"],
+  "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
   "license": "http://opensource.org/licenses/mit-license.php",
   "ignore": [
-	"**/.*",
+    "**/.*",
     "qunit/",
     "nuget/",
     "tools/",
@@ -27,13 +28,13 @@
     "*.md",
     "build.properties",
     "build.xml",
-	"jquery.inputmask.jquery.json"
+    "jquery.inputmask.jquery.json"
   ],
   "dependencies": {
-      "jquery": ">=1.7"
+    "jquery": ">=1.7"
   },
-  "authors": [
-    { "name": "Robin Herbots" }
-  ],
+  "authors": [{
+    "name": "Robin Herbots"
+  }],
   "homepage": "http://robinherbots.github.io/jquery.inputmask"
 }

+ 25 - 25
component.json

@@ -1,27 +1,27 @@
 {
-    "name": "jquery_inputmask",
-    "repository": "robinherbots/jquery.inputmask",
-    "description": "jquery.inputmask is a jquery plugin which create an input mask.",
-    "version": "3.2.0",
-    "keywords": [ "jquery", "plugins", "input", "form", "inputmask", "mask" ],
-    "main": "./dist/jquery.inputmask.bundle.js",
-    "scripts": [
-        "./dist/jquery.inputmask.bundle.js",
-        "./dist/inputmask/jquery.inputmask.js",
-        "./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",
-        "./extra/phone-codes/phone-be.js",
-        "./extra/phone-codes/phone-codes.js",
-        "./extra/phone-codes/phone-nl.js",
-        "./extra/phone-codes/phone-ru.js",
-        "./extra/phone-codes/phone-uk.js"
-    ],
-    "dependencies": {
-        "components/jquery": ">=1.7"
-    },
-    "license": "MIT"
+  "name": "jquery_inputmask",
+  "repository": "robinherbots/jquery.inputmask",
+  "description": "jquery.inputmask is a jquery plugin which create an input mask.",
+  "version": "3.2.1-13",
+  "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
+  "main": "./dist/jquery.inputmask.bundle.js",
+  "scripts": [
+    "./dist/inputmask/dependencyLib.js"
+    "./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",
+    "./extra/phone-codes/phone-be.js",
+    "./extra/phone-codes/phone-codes.js",
+    "./extra/phone-codes/phone-nl.js",
+    "./extra/phone-codes/phone-ru.js",
+    "./extra/phone-codes/phone-uk.js"
+  ],
+  "dependencies": {
+    "components/jquery": ">=1.7"
+  },
+  "license": "MIT"
 }

+ 10 - 12
composer.json

@@ -1,14 +1,12 @@
 {
-    "name": "robinherbots/jquery.inputmask",
-    "description": "jquery.inputmask is a jquery plugin which create an input mask.",
-	"version": "3.2.0",
-    "type": "library",
-    "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
-    "homepage": "http://robinherbots.github.io/jquery.inputmask",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Robin Herbots"
-        }
-    ]
+  "name": "robinherbots/jquery.inputmask",
+  "description": "jquery.inputmask is a jquery plugin which create an input mask.",
+  "version": "3.2.1-13",
+  "type": "library",
+  "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
+  "homepage": "http://robinherbots.github.io/jquery.inputmask",
+  "license": "MIT",
+  "authors": [{
+    "name": "Robin Herbots"
+  }]
 }

+ 26 - 3
dist/inputmask/dependencyLib.js

@@ -3,11 +3,34 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.0
+* Version: 3.2.1-13
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : factory(jQuery);
 }(function($) {
-    var dependencyLib = $;
-    return window.dependencyLib = dependencyLib, dependencyLib;
+    function indexOf(list, elem) {
+        for (var i = 0, len = list.length; len > i; i++) if (list[i] === elem) return i;
+        return -1;
+    }
+    var dependencyLib = {
+        isFunction: function(obj) {
+            return "function" === jQuery.type(obj);
+        },
+        noop: function() {},
+        parseJSON: function(data) {
+            return JSON.parse(data + "");
+        },
+        isArray: Array.isArray,
+        inArray: function(elem, arr, i) {
+            return null == arr ? -1 : indexOf.call(arr, elem, i);
+        },
+        valHooks: void 0,
+        extend: $.extend,
+        each: $.each,
+        map: $.map,
+        Event: $.Event,
+        _data: $._data,
+        data: $.data
+    };
+    return dependencyLib = $, window.dependencyLib = dependencyLib, dependencyLib;
 });

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

@@ -3,10 +3,10 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.0
+* Version: 3.2.1-13
 */
 !function(factory) {
-    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("inputmask")) : factory(jQuery, window.Inputmask);
+    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);
 }(function($, Inputmask) {
     return Inputmask.extendDefinitions({
         h: {

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

@@ -3,10 +3,10 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.0
+* Version: 3.2.1-13
 */
 !function(factory) {
-    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("inputmask")) : factory(jQuery, window.Inputmask);
+    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);
 }(function($, Inputmask) {
     return Inputmask.extendDefinitions({
         A: {

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


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

@@ -3,10 +3,10 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.0
+* Version: 3.2.1-13
 */
 !function(factory) {
-    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("inputmask")) : factory(jQuery, window.Inputmask);
+    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);
 }(function($, Inputmask) {
     return Inputmask.extendAliases({
         numeric: {

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

@@ -3,10 +3,10 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.0
+* Version: 3.2.1-13
 */
 !function(factory) {
-    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("inputmask")) : factory(jQuery, window.Inputmask);
+    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);
 }(function($, Inputmask) {
     return Inputmask.extendAliases({
         phone: {

+ 2 - 2
dist/inputmask/inputmask.regex.extensions.js

@@ -3,10 +3,10 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.0
+* Version: 3.2.1-13
 */
 !function(factory) {
-    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("inputmask")) : factory(jQuery, window.Inputmask);
+    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);
 }(function($, Inputmask) {
     return Inputmask.extendAliases({
         Regex: {

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

@@ -3,10 +3,10 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2015 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.2.0
+* Version: 3.2.1-13
 */
 !function(factory) {
-    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("inputmask")) : factory(jQuery, window.Inputmask);
+    "function" == typeof define && define.amd ? define([ "jquery", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);
 }(function($, Inputmask) {
     return void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) {
         var nptmask, input;

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


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


文件差异内容过多而无法显示
+ 2 - 2
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


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


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


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


文件差异内容过多而无法显示
+ 418 - 418
extra/phone-codes/phone-uk.js


+ 36 - 1
js/dependencyLib.js

@@ -8,7 +8,42 @@
 		}
 	}
 	(function($) {
-		var dependencyLib = $; //todo split out needed functionality
+
+		// Use a stripped-down indexOf as it's faster than native
+		// http://jsperf.com/thor-indexof-vs-for/5
+		function indexOf(list, elem) {
+			var i = 0,
+				len = list.length;
+			for (; i < len; i++) {
+				if (list[i] === elem) {
+					return i;
+				}
+			}
+			return -1;
+		}
+
+		var dependencyLib = {
+			isFunction: function(obj) {
+				return jQuery.type(obj) === "function";
+			},
+			noop: function() {},
+			parseJSON: function(data) {
+				return JSON.parse(data + "");
+			},
+			isArray: Array.isArray,
+			inArray: function(elem, arr, i) {
+				return arr == null ? -1 : indexOf.call(arr, elem, i);
+			},
+			valHooks: undefined,
+			extend: $.extend,
+			each: $.each,
+			map: $.map,
+			Event: $.Event, //needs to be replaced
+			_data: $._data, //needs to be replaced
+			data: $.data //needs to be replaced
+
+		}
+		dependencyLib = $; //todo split out needed functionality
 		window.dependencyLib = dependencyLib;
 		return dependencyLib;
 	}));

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

@@ -11,7 +11,7 @@ Optional extensions on the jquery.inputmask base
 		if (typeof define === "function" && define.amd) {
 			define(["jquery", "inputmask"], factory);
 		} else if (typeof exports === "object") {
-			module.exports = factory(require("jquery"), require("inputmask"));
+			module.exports = factory(require("jquery"), require("./inputmask"));
 		} else {
 			factory(jQuery, window.Inputmask);
 		}

+ 1 - 1
js/inputmask.extensions.js

@@ -11,7 +11,7 @@ Optional extensions on the jquery.inputmask base
 		if (typeof define === "function" && define.amd) {
 			define(["jquery", "inputmask"], factory);
 		} else if (typeof exports === "object") {
-			module.exports = factory(require("jquery"), require("inputmask"));
+			module.exports = factory(require("jquery"), require("./inputmask"));
 		} else {
 			factory(jQuery, window.Inputmask);
 		}

+ 220 - 198
js/inputmask.js

@@ -9,7 +9,7 @@
 		if (typeof define === "function" && define.amd) {
 			define(["dependencyLib"], factory);
 		} else if (typeof exports === "object") {
-			module.exports = factory(require("dependencyLib"));
+			module.exports = factory(require("./dependencyLib"));
 		} else {
 			factory(window.dependencyLib || jQuery);
 		}
@@ -103,26 +103,25 @@
 			},
 			masksCache: {},
 			mask: function(el) {
-				var input = el.jquery && el.length > 0 ? el[0] : el,
-					scopedOpts = $.extend(true, {}, this.opts);
+				var scopedOpts = $.extend(true, {}, this.opts);
 				importAttributeOptions(el, scopedOpts, $.extend(true, {}, this.userOptions));
 				var maskset = generateMaskSet(scopedOpts, this.noMasksCache);
 				if (maskset !== undefined) {
 					//store inputmask instance on the input with element reference
-					input.inputmask = input.inputmask || new Inputmask(); //in case of remasking reuse the inputmask object
-					input.inputmask.opts = scopedOpts;
-					input.inputmask.noMasksCache = this.noMasksCache;
-					input.inputmask.userOptions = $.extend(true, {}, this.userOptions);
-					input.inputmask.el = input;
-					input.inputmask.maskset = maskset;
-					input.inputmask.isRTL = false;
+					el.inputmask = el.inputmask || new Inputmask(); //in case of remasking reuse the inputmask object
+					el.inputmask.opts = scopedOpts;
+					el.inputmask.noMasksCache = this.noMasksCache;
+					el.inputmask.userOptions = $.extend(true, {}, this.userOptions);
+					el.inputmask.el = el;
+					el.inputmask.maskset = maskset;
+					el.inputmask.isRTL = false;
 
-					$(input).data("_inputmask_opts", scopedOpts);
+					$.data(el, "_inputmask_opts", scopedOpts);
 
 					maskScope({
 						"action": "mask",
-						"el": input
-					}, maskset, input.inputmask.opts);
+						"el": el
+					}, maskset, el.inputmask.opts);
 				}
 				return el;
 			},
@@ -298,12 +297,11 @@
 		}
 
 		function importAttributeOptions(npt, opts, userOptions) {
-			var $npt = $(npt),
-				attrOptions = $npt.data("inputmask");
+			var attrOptions = npt.getAttribute("data-inputmask");
 
 			function importOption(option) {
-				var optionData = $npt.data("inputmask-" + option.toLowerCase());
-				if (optionData !== undefined) {
+				var optionData = npt.getAttribute("data-inputmask-" + option.toLowerCase());
+				if (optionData !== null) {
 					optionData = typeof optionData == "boolean" ? optionData : optionData.toString();
 					/*eslint-disable no-eval */
 					if (typeof optionData === "string" && option.indexOf("on") === 0) {
@@ -1621,7 +1619,7 @@
 					}
 				});
 				if (writeOut) {
-					writeBuffer(input, getBuffer(), $(input).is(":focus") ? seekNext(getLastValidPosition(0)) : undefined, $.Event("checkval"));
+					writeBuffer(input, getBuffer(), document.activeElement === input ? seekNext(getLastValidPosition(0)) : undefined, $.Event("checkval"));
 				}
 			}
 
@@ -1655,37 +1653,36 @@
 					}
 					return pos;
 				}
-				var npt = input.jquery && input.length > 0 ? input[0] : input,
-					range;
+				var range;
 				if (typeof begin === "number") {
 					begin = translatePosition(begin);
 					end = translatePosition(end);
 					end = (typeof end == "number") ? end : begin;
-					if (!$(npt).is(":visible")) {
+					if (!$(input).is(":visible")) {
 						return;
 					}
 
-					var scrollCalc = $(npt).css("font-size").replace("px", "") * end;
-					npt.scrollLeft = scrollCalc > npt.scrollWidth ? scrollCalc : 0;
+					var scrollCalc = input.style.fontSize.replace("px", "") * end;
+					input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0;
 					if (!androidchrome && opts.insertMode === false && begin === end) end++; //set visualization for insert/overwrite mode
-					if (npt.setSelectionRange) {
-						npt.selectionStart = begin;
-						npt.selectionEnd = end;
+					if (input.setSelectionRange) {
+						input.selectionStart = begin;
+						input.selectionEnd = end;
 					} else if (window.getSelection) {
 						range = document.createRange();
-						if (npt.firstChild === undefined) {
+						if (input.firstChild === undefined) {
 							var textNode = document.createTextNode("");
-							npt.appendChild(textNode);
+							input.appendChild(textNode);
 						}
-						range.setStart(npt.firstChild, begin < npt.inputmask._valueGet().length ? begin : npt.inputmask._valueGet().length);
-						range.setEnd(npt.firstChild, end < npt.inputmask._valueGet().length ? end : npt.inputmask._valueGet().length);
+						range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length);
+						range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length);
 						range.collapse(true);
 						var sel = window.getSelection();
 						sel.removeAllRanges();
 						sel.addRange(range);
-						//npt.focus();
-					} else if (npt.createTextRange) {
-						range = npt.createTextRange();
+						//input.focus();
+					} else if (input.createTextRange) {
+						range = input.createTextRange();
 						range.collapse(true);
 						range.moveEnd("character", end);
 						range.moveStart("character", begin);
@@ -1693,12 +1690,12 @@
 
 					}
 				} else {
-					if (npt.setSelectionRange) {
-						begin = npt.selectionStart;
-						end = npt.selectionEnd;
+					if (input.setSelectionRange) {
+						begin = input.selectionStart;
+						end = input.selectionEnd;
 					} else if (window.getSelection) {
 						range = window.getSelection().getRangeAt(0);
-						if (range.commonAncestorContainer.parentNode === npt || range.commonAncestorContainer === npt) {
+						if (range.commonAncestorContainer.parentNode === input || range.commonAncestorContainer === input) {
 							begin = range.startOffset;
 							end = range.endOffset;
 						}
@@ -1793,7 +1790,7 @@
 							eventHandler.handler = function(e) {
 								// console.log("triggered " + e.type);
 								if (this.inputmask === undefined) { //happens when cloning an object with jquery.clone
-									var imOpts = $(this).data("_inputmask_opts");
+									var imOpts = $.data(this, "_inputmask_opts");
 									if (imOpts)(new Inputmask(imOpts)).mask(this);
 									else $(this).unbind(".inputmask");
 								} else if (e.type !== "setvalue" && (this.disabled || (this.readOnly && !(e.type === "keydown" && (e.ctrlKey && e.keyCode === 67) || (opts.tabThrough === false && e.keyCode === Inputmask.keyCode.TAB))))) {
@@ -1842,7 +1839,7 @@
 				var valueSet;
 
 				function patchValhook(type) {
-					if ($.valHooks[type] === undefined || $.valHooks[type].inputmaskpatch !== true) {
+					if ($.valHooks && $.valHooks[type] === undefined || $.valHooks[type].inputmaskpatch !== true) {
 						var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {
 							return elem.value;
 						};
@@ -2284,6 +2281,172 @@
 				//pickup by inputfallback
 			}
 
+			function setValueEvent(e) {
+				var input = this,
+					value = input.inputmask._valueGet();
+				input.inputmask._valueSet($.isFunction(opts.onBeforeMask) ? (opts.onBeforeMask.call(input, value, opts) || value) : value);
+				checkVal(input, true, false);
+				undoValue = getBuffer().join("");
+				if ((opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("")) {
+					input.inputmask._valueSet("");
+				}
+			}
+
+			function focusEvent(e) {
+				var input = this,
+					nptValue = input.inputmask._valueGet();
+				if (opts.showMaskOnFocus && (!opts.showMaskOnHover || (opts.showMaskOnHover && nptValue === ""))) {
+					if (input.inputmask._valueGet() !== getBuffer().join("")) {
+						writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()));
+					}
+				} else if (mouseEnter === false) { //only executed on focus without mouseenter
+					caret(input, seekNext(getLastValidPosition()));
+				}
+				if (opts.positionCaretOnTab === true) {
+					setTimeout(function() {
+						caret(input, seekNext(getLastValidPosition()));
+					}, 0);
+				}
+				undoValue = getBuffer().join("");
+			}
+
+			function mouseleaveEvent(e) {
+				var $input = $(this),
+					input = this;
+				mouseEnter = false;
+				if (opts.clearMaskOnLostFocus) {
+					var buffer = getBuffer().slice(),
+						nptValue = input.inputmask._valueGet();
+					if (document.activeElement !== input && nptValue !== $input.attr("placeholder") && nptValue !== "") {
+						if (getLastValidPosition() === -1 && nptValue === getBufferTemplate().join("")) {
+							buffer = [];
+						} else { //clearout optional tail of the mask
+							clearOptionalTail(buffer);
+						}
+						writeBuffer(input, buffer);
+					}
+				}
+			}
+
+			function clickEvent(e) {
+				function doRadixFocus(clickPos) {
+					if (opts.radixFocus && opts.radixPoint !== "") {
+						var vps = getMaskSet().validPositions;
+						if (vps[clickPos] === undefined || (vps[clickPos].input === getPlaceholder(clickPos))) {
+							if (clickPos < seekNext(-1)) return true;
+							var radixPos = $.inArray(opts.radixPoint, getBuffer());
+							if (radixPos !== -1) {
+								for (var vp in vps) {
+									if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) {
+										return false;
+									}
+								}
+								return true;
+							}
+						}
+					}
+					return false;
+				}
+				var input = this;
+				if (document.activeElement === input) {
+					var selectedCaret = caret(input);
+					if (selectedCaret.begin === selectedCaret.end) {
+						if (doRadixFocus(selectedCaret.begin)) {
+							caret(input, $.inArray(opts.radixPoint, getBuffer()));
+						} else {
+							var clickPosition = selectedCaret.begin,
+								lastPosition = seekNext(getLastValidPosition(clickPosition));
+
+							if (clickPosition < lastPosition) {
+								caret(input, !isMask(clickPosition) && !isMask(clickPosition - 1) ? seekNext(clickPosition) : clickPosition);
+							} else {
+								caret(input, opts.numericInput ? 0 : lastPosition);
+							}
+						}
+					}
+				}
+			}
+
+			function dblclickEvent(e) {
+				var input = this;
+				setTimeout(function() {
+					caret(input, 0, seekNext(getLastValidPosition()));
+				}, 0);
+			}
+
+			function cutEvent(e) {
+				skipInputEvent = true; //stop inputFallback
+				var input = this,
+					$input = $(input),
+					pos = caret(input);
+
+				//correct clipboardData
+				if (isRTL) {
+					var clipboardData = window.clipboardData || e.originalEvent.clipboardData,
+						clipData = clipboardData.getData("text").split("").reverse().join("");
+					clipboardData.setData("text", clipData);
+				}
+				handleRemove(input, Inputmask.keyCode.DELETE, pos);
+				writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join(""));
+
+				if (input.inputmask._valueGet() === getBufferTemplate().join("")) {
+					$input.trigger("cleared");
+				}
+
+				if (opts.showTooltip) { //update tooltip
+					input.title = getMaskSet().mask;
+				}
+			}
+
+			function blurEvent(e) {
+				var $input = $(this),
+					input = this;
+				if (input.inputmask) {
+					var nptValue = input.inputmask._valueGet(),
+						buffer = getBuffer().slice();
+					if (undoValue !== buffer.join("")) {
+						setTimeout(function() { //change event should be triggered after the other buffer manipulations on blur
+							$input.change();
+							undoValue = buffer.join("");
+						}, 0);
+					}
+					if (nptValue !== "") {
+						if (opts.clearMaskOnLostFocus) {
+							if (getLastValidPosition() === -1 && nptValue === getBufferTemplate().join("")) {
+								buffer = [];
+							} else { //clearout optional tail of the mask
+								clearOptionalTail(buffer);
+							}
+						}
+						if (isComplete(buffer) === false) {
+							setTimeout(function() {
+								$input.trigger("incomplete");
+							}, 0);
+							if (opts.clearIncomplete) {
+								resetMaskSet();
+								if (opts.clearMaskOnLostFocus) {
+									buffer = [];
+								} else {
+									buffer = getBufferTemplate().slice();
+								}
+							}
+						}
+
+						writeBuffer(input, buffer, undefined, e);
+					}
+				}
+			}
+
+			function mouseenterEvent(e) {
+				var input = this;
+				mouseEnter = true;
+				if (document.activeElement !== input && opts.showMaskOnHover) {
+					if (input.inputmask._valueGet() !== getBuffer().join("")) {
+						writeBuffer(input, getBuffer());
+					}
+				}
+			}
+
 			function mask(el) {
 				$el = $(el);
 
@@ -2293,12 +2456,12 @@
 				}
 
 				if (el.dir === "rtl" || opts.rightAlign) {
-					$el.css("text-align", "right");
+					el.style.textAlign = "right";
 				}
 
 				if (el.dir === "rtl" || opts.numericInput) {
 					el.dir = "ltr";
-					$el.removeAttr("dir");
+					el.removeAttribute("dir");
 					el.inputmask.isRTL = true;
 					isRTL = true;
 				}
@@ -2306,13 +2469,13 @@
 				//unbind all events - to make sure that no other mask will interfere when re-masking
 				$el.unbind(".inputmask");
 
-				if (($el.is(":input") && isInputTypeSupported($el.attr("type"))) || el.isContentEditable) {
+				if ((el.tagName === "INPUT" && isInputTypeSupported(el.getAttribute("type"))) || el.isContentEditable) {
 					//bind events
 					$el.closest("form").bind("submit", function() { //trigger change on submit if any
 						if (undoValue !== getBuffer().join("")) {
 							$el.change();
 						}
-						if (opts.clearMaskOnLostFocus && getLastValidPosition() === -1 && $el[0].inputmask._valueGet && $el[0].inputmask._valueGet() === getBufferTemplate().join("")) {
+						if (opts.clearMaskOnLostFocus && getLastValidPosition() === -1 && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join("")) {
 							el.inputmask._valueSet(""); //clear masktemplete on submit and still has focus
 						}
 						if (opts.removeMaskOnSubmit) {
@@ -2326,151 +2489,21 @@
 							$el.triggerHandler("setvalue.inputmask");
 						}, 0);
 					});
-					$el.bind("mouseenter.inputmask", function() {
-						var $input = $(this),
-							input = this;
-						mouseEnter = true;
-						if (!$input.is(":focus") && opts.showMaskOnHover) {
-							if (input.inputmask._valueGet() !== getBuffer().join("")) {
-								writeBuffer(input, getBuffer());
-							}
-						}
-					}).bind("blur.inputmask", function(e) {
-						var $input = $(this),
-							input = this;
-						if (input.inputmask) {
-							var nptValue = input.inputmask._valueGet(),
-								buffer = getBuffer().slice();
-							if (undoValue !== buffer.join("")) {
-								setTimeout(function() { //change event should be triggered after the other buffer manipulations on blur
-									$input.change();
-									undoValue = buffer.join("");
-								}, 0);
-							}
-							if (nptValue !== "") {
-								if (opts.clearMaskOnLostFocus) {
-									if (getLastValidPosition() === -1 && nptValue === getBufferTemplate().join("")) {
-										buffer = [];
-									} else { //clearout optional tail of the mask
-										clearOptionalTail(buffer);
-									}
-								}
-								if (isComplete(buffer) === false) {
-									setTimeout(function() {
-										$input.trigger("incomplete");
-									}, 0);
-									if (opts.clearIncomplete) {
-										resetMaskSet();
-										if (opts.clearMaskOnLostFocus) {
-											buffer = [];
-										} else {
-											buffer = getBufferTemplate().slice();
-										}
-									}
-								}
-
-								writeBuffer(input, buffer, undefined, e);
-							}
-						}
-					}).bind("focus.inputmask", function(e) {
-						var input = this,
-							nptValue = input.inputmask._valueGet();
-						if (opts.showMaskOnFocus && (!opts.showMaskOnHover || (opts.showMaskOnHover && nptValue === ""))) {
-							if (input.inputmask._valueGet() !== getBuffer().join("")) {
-								writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()));
-							}
-						} else if (mouseEnter === false) { //only executed on focus without mouseenter
-							caret(input, seekNext(getLastValidPosition()));
-						}
-						if (opts.positionCaretOnTab === true) {
-							setTimeout(function() {
-								caret(input, seekNext(getLastValidPosition()));
-							}, 0);
-						}
-						undoValue = getBuffer().join("");
-					}).bind("mouseleave.inputmask", function() {
-						var $input = $(this),
-							input = this;
-						mouseEnter = false;
-						if (opts.clearMaskOnLostFocus) {
-							var buffer = getBuffer().slice(),
-								nptValue = input.inputmask._valueGet();
-							if (!$input.is(":focus") && nptValue !== $input.attr("placeholder") && nptValue !== "") {
-								if (getLastValidPosition() === -1 && nptValue === getBufferTemplate().join("")) {
-									buffer = [];
-								} else { //clearout optional tail of the mask
-									clearOptionalTail(buffer);
-								}
-								writeBuffer(input, buffer);
-							}
-						}
-					}).bind("click.inputmask", function() {
-						function doRadixFocus(clickPos) {
-							if (opts.radixFocus && opts.radixPoint !== "") {
-								var vps = getMaskSet().validPositions;
-								if (vps[clickPos] === undefined || (vps[clickPos].input === getPlaceholder(clickPos))) {
-									if (clickPos < seekNext(-1)) return true;
-									var radixPos = $.inArray(opts.radixPoint, getBuffer());
-									if (radixPos !== -1) {
-										for (var vp in vps) {
-											if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) {
-												return false;
-											}
-										}
-										return true;
-									}
-								}
-							}
-							return false;
-						}
-						var input = this;
-						if ($(input).is(":focus")) {
-							var selectedCaret = caret(input);
-							if (selectedCaret.begin === selectedCaret.end) {
-								if (doRadixFocus(selectedCaret.begin)) {
-									caret(input, $.inArray(opts.radixPoint, getBuffer()));
-								} else {
-									var clickPosition = selectedCaret.begin,
-										lastPosition = seekNext(getLastValidPosition(clickPosition));
 
-									if (clickPosition < lastPosition) {
-										caret(input, !isMask(clickPosition) && !isMask(clickPosition - 1) ? seekNext(clickPosition) : clickPosition);
-									} else {
-										caret(input, opts.numericInput ? 0 : lastPosition);
-									}
-								}
-							}
-						}
-					}).bind("dblclick.inputmask", function() {
-						var input = this;
-						setTimeout(function() {
-							caret(input, 0, seekNext(getLastValidPosition()));
-						}, 0);
-					}).bind(PasteEventType + ".inputmask dragdrop.inputmask drop.inputmask", pasteEvent).bind("cut.inputmask", function(e) {
-						skipInputEvent = true; //stop inputFallback
-						var input = this,
-							$input = $(input),
-							pos = caret(input);
-
-						//correct clipboardData
-						if (isRTL) {
-							var clipboardData = window.clipboardData || e.originalEvent.clipboardData,
-								clipData = clipboardData.getData("text").split("").reverse().join("");
-							clipboardData.setData("text", clipData);
-						}
-						handleRemove(input, Inputmask.keyCode.DELETE, pos);
-						writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join(""));
-
-						if (input.inputmask._valueGet() === getBufferTemplate().join("")) {
-							$input.trigger("cleared");
-						}
+					$el.bind("mouseenter.inputmask", mouseenterEvent)
+						.bind("blur.inputmask", blurEvent)
+						.bind("focus.inputmask", focusEvent)
+						.bind("mouseleave.inputmask", mouseleaveEvent)
+						.bind("click.inputmask", clickEvent)
+						.bind("dblclick.inputmask", dblclickEvent)
+						.bind(PasteEventType + ".inputmask dragdrop.inputmask drop.inputmask", pasteEvent)
+						.bind("cut.inputmask", cutEvent)
+						.bind("complete.inputmask", opts.oncomplete)
+						.bind("incomplete.inputmask", opts.onincomplete)
+						.bind("cleared.inputmask", opts.oncleared)
+						.bind("keydown.inputmask", keydownEvent)
+						.bind("keypress.inputmask", keypressEvent);
 
-						if (opts.showTooltip) { //update tooltip
-							$input.prop("title", getMaskSet().mask);
-						}
-					}).bind("complete.inputmask", opts.oncomplete).bind("incomplete.inputmask", opts.onincomplete).bind("cleared.inputmask", opts.oncleared);
-
-					$el.bind("keydown.inputmask", keydownEvent).bind("keypress.inputmask", keypressEvent);
 
 					if (!androidfirefox) {
 						$el.bind("compositionstart.inputmask", compositionStartEvent).bind("compositionupdate.inputmask", compositionUpdateEvent).bind("compositionend.inputmask", compositionEndEvent);
@@ -2484,18 +2517,7 @@
 					//		$el.bind("input.inputmask", mobileInputEvent);
 					//}
 				}
-
-				$el.bind("setvalue.inputmask", function() {
-					var input = this,
-						value = input.inputmask._valueGet();
-					input.inputmask._valueSet($.isFunction(opts.onBeforeMask) ? (opts.onBeforeMask.call(input, value, opts) || value) : value);
-					checkVal(input, true, false);
-					undoValue = getBuffer().join("");
-					if ((opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("")) {
-						input.inputmask._valueSet("");
-					}
-				});
-
+				$el.bind("setvalue.inputmask", setValueEvent);
 				patchValueProperty(el);
 
 				//apply mask

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

@@ -11,7 +11,7 @@ Optional extensions on the jquery.inputmask base
 		if (typeof define === "function" && define.amd) {
 			define(["jquery", "inputmask"], factory);
 		} else if (typeof exports === "object") {
-			module.exports = factory(require("jquery"), require("inputmask"));
+			module.exports = factory(require("jquery"), require("./inputmask"));
 		} else {
 			factory(jQuery, window.Inputmask);
 		}

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

@@ -21,7 +21,7 @@ When using this extension make sure you specify the correct url to get the masks
 		if (typeof define === "function" && define.amd) {
 			define(["jquery", "inputmask"], factory);
 		} else if (typeof exports === "object") {
-			module.exports = factory(require("jquery"), require("inputmask"));
+			module.exports = factory(require("jquery"), require("./inputmask"));
 		} else {
 			factory(jQuery, window.Inputmask);
 		}

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

@@ -12,7 +12,7 @@ Allows for using regular expressions as a mask
 		if (typeof define === "function" && define.amd) {
 			define(["jquery", "inputmask"], factory);
 		} else if (typeof exports === "object") {
-			module.exports = factory(require("jquery"), require("inputmask"));
+			module.exports = factory(require("jquery"), require("./inputmask"));
 		} else {
 			factory(jQuery, window.Inputmask);
 		}

+ 1 - 1
js/jquery.inputmask.js

@@ -10,7 +10,7 @@
 		if (typeof define === "function" && define.amd) {
 			define(["jquery", "inputmask"], factory);
 		} else if (typeof exports === "object") {
-			module.exports = factory(require("jquery"), require("inputmask"));
+			module.exports = factory(require("jquery"), require("./inputmask"));
 		} else {
 			factory(jQuery, window.Inputmask);
 		}

+ 4 - 4
nuspecs/Readme.txt

@@ -10,10 +10,10 @@ In App_Start, BundleConfig.cs
 bundles.Add(new ScriptBundle("~/bundles/inputmask").Include(
             "~/Scripts/jquery.inputmask/inputmask.js",
             "~/Scripts/jquery.inputmask/jquery.inputmask.js",
-                        "~/Scripts/jquery.inputmask/inputmask.extensions.js",
-                        "~/Scripts/jquery.inputmask/inputmask.date.extensions.js",
-                        //and other extensions you want to include
-                        "~/Scripts/jquery.inputmask/inputmask.numeric.extensions.js"));
+            "~/Scripts/jquery.inputmask/inputmask.extensions.js",
+            "~/Scripts/jquery.inputmask/inputmask.date.extensions.js",
+            //and other extensions you want to include
+            "~/Scripts/jquery.inputmask/inputmask.numeric.extensions.js"));
 ```
 
 In Layout

+ 3 - 2
package.json

@@ -1,6 +1,6 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.2.0",
+  "version": "3.2.1-13",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
   "main": "./dist/inputmask/jquery.inputmask.js",
   "files": [
@@ -52,6 +52,7 @@
     "karma-phantomjs-launcher": "^0.2.0",
     "karma-qunit": "^0.1.5",
     "load-grunt-tasks": "^3.2.0",
-    "qunitjs": "^1.18.0"
+    "qunitjs": "^1.19.0",
+    "requirejs": "^2.1.20"
   }
 }

+ 23 - 0
qunit/config.js

@@ -0,0 +1,23 @@
+requirejs.config({
+	baseUrl: "./",
+	paths: {
+		"jquery": "../node_modules/jquery/dist/jquery",
+		"qunit": "../node_modules/qunitjs/qunit/qunit",
+		"dependencyLib": "../dist/inputmask/dependencyLib",
+		"inputmask": "../dist/inputmask/inputmask"
+	},
+	shim: {
+		"simulator": {
+			deps: [
+				"jquery"
+			]
+		},
+		'qunit': {
+					exports: 'QUnit',
+					init: function() {
+							QUnit.config.autoload = false;
+							QUnit.config.autostart = false;
+					}
+			}
+	}
+});

+ 34 - 0
qunit/main.js

@@ -0,0 +1,34 @@
+define([
+	"qunit",
+	"prototypeExtensions",
+	"simulator",
+	"../dist/inputmask/inputmask.date.extensions",
+	"../dist/inputmask/inputmask.extensions",
+	"../dist/inputmask/inputmask.numeric.extensions",
+	"../dist/inputmask/inputmask.phone.extensions",
+	"../dist/inputmask/inputmask.regex.extensions",
+	"../dist/inputmask/jquery.inputmask"
+], function(qunit) {
+	// start QUnit.
+	qunit.load();
+	qunit.start();
+
+	require([
+		"tests_base",
+		"tests_setvalue",
+		"tests_paste",
+		"tests_initialvalue",
+		"tests_date",
+		"tests_dynamic",
+		"tests_formatvalidate",
+		"tests_ip",
+		"tests_keepStatic",
+		"tests_multi",
+		"tests_numeric",
+		"tests_numericinput",
+		"tests_optional",
+		"tests_phone",
+		"tests_regex",
+		"tests_escape"
+	]);
+});

+ 11 - 4
qunit/qunit.html

@@ -3,14 +3,21 @@
 <head>
   <meta charset="utf-8">
   <title>jquery.inputmask - QUnit</title>
-  <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.14.0.css">
+  <link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css">
 </head>
 <body>
   <div id="qunit"></div>
   <div id="qunit-fixture"></div>
-  <script src="http://code.jquery.com/jquery-1.11.0.js"></script>
-  <script src="http://code.jquery.com/qunit/qunit-1.14.0.js"></script>
-  <script src="../dist/jquery.inputmask.bundle.js"></script>
+  <script src="../node_modules/jquery/dist/jquery.js"></script>
+  <script src="../node_modules/qunitjs/qunit/qunit.js"></script>
+  <script src="../dist/inputmask/dependencyLib.js"></script>
+  <script src="../dist/inputmask/inputmask.js"></script>
+  <script src="../dist/inputmask/inputmask.extensions.js"></script>
+  <script src="../dist/inputmask/inputmask.date.extensions.js"></script>
+  <script src="../dist/inputmask/inputmask.numeric.extensions.js"></script>
+  <script src="../dist/inputmask/inputmask.phone.extensions.js"></script>
+  <script src="../dist/inputmask/inputmask.regex.extensions.js"></script>
+  <script src="../dist/inputmask/jquery.inputmask.js"></script>
   <script src="./prototypeExtensions.js"></script>
   <script src="./simulator.js"></script>
   <script src="./tests_base.js"></script>

+ 14 - 0
qunit/qunit_require.html

@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>jquery.inputmask - QUnit</title>
+  <link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css">
+</head>
+<body>
+  <div id="qunit"></div>
+  <div id="qunit-fixture"></div>
+  <script data-main="main" src="../node_modules/requirejs/require.js"></script>
+  <script src="config.js"></script>
+</body>
+</html>

+ 1 - 1
qunit/tests_base.js

@@ -478,7 +478,7 @@ asyncTest("creditcard switch - pchelailya", function() {
 		var value = $(this).inputmask("unmaskedvalue");
 
 		if (value.length === 2 && value === "37") {
-			$("input").inputmask("9999 999999 99999");
+			$(this).inputmask("9999 999999 99999");
 		}
 	});
 	$("#testmask")[0].focus();

+ 1 - 1
qunit/tests_phone.js

@@ -1,4 +1,4 @@
-module("Phone masks")
+module("Phone masks");
 
 asyncTest("inputmask(\"phone be\") - type \"473890428\"", 1, function () {
     var $fixture = $("#qunit-fixture");

+ 1 - 1
qunit/tests_regex.js

@@ -1,4 +1,4 @@
-module("Regex masks")
+module("Regex masks");
 
 test("inputmask(\"Regex\", { regex: \"[0-9]*\"});", function () {
     var $fixture = $("#qunit-fixture");