ソースを参照

update on dependencyLib.js

Robin Herbots 10 年 前
コミット
155c569ae1
31 ファイル変更344 行追加90 行削除
  1. 1 1
      README.md
  2. 1 1
      bower.json
  3. 1 1
      component.json
  4. 1 1
      composer.json
  5. 1 1
      dist/inputmask/inputmask.date.extensions.js
  6. 1 1
      dist/inputmask/inputmask.dependencyLib.jqlite.js
  7. 1 1
      dist/inputmask/inputmask.dependencyLib.jquery.js
  8. 82 16
      dist/inputmask/inputmask.dependencyLib.js
  9. 1 1
      dist/inputmask/inputmask.dependencyLib.zepto.js
  10. 1 1
      dist/inputmask/inputmask.extensions.js
  11. 6 5
      dist/inputmask/inputmask.js
  12. 1 1
      dist/inputmask/inputmask.numeric.extensions.js
  13. 1 1
      dist/inputmask/inputmask.phone.extensions.js
  14. 1 1
      dist/inputmask/inputmask.regex.extensions.js
  15. 1 1
      dist/inputmask/jquery.inputmask.js
  16. 6 5
      dist/jquery.inputmask.bundle.js
  17. 1 1
      dist/min/inputmask/inputmask.date.extensions.min.js
  18. 1 1
      dist/min/inputmask/inputmask.dependencyLib.jqlite.min.js
  19. 1 1
      dist/min/inputmask/inputmask.dependencyLib.jquery.min.js
  20. 2 2
      dist/min/inputmask/inputmask.dependencyLib.min.js
  21. 1 1
      dist/min/inputmask/inputmask.dependencyLib.zepto.min.js
  22. 1 1
      dist/min/inputmask/inputmask.extensions.min.js
  23. 4 3
      dist/min/inputmask/inputmask.min.js
  24. 1 1
      dist/min/inputmask/inputmask.numeric.extensions.min.js
  25. 1 1
      dist/min/inputmask/inputmask.phone.extensions.min.js
  26. 1 1
      dist/min/inputmask/inputmask.regex.extensions.min.js
  27. 1 1
      dist/min/inputmask/jquery.inputmask.min.js
  28. 215 30
      js/inputmask.dependencyLib.js
  29. 5 5
      js/inputmask.js
  30. 1 1
      package.json
  31. 1 1
      qunit/tests_base.js

+ 1 - 1
README.md

@@ -52,7 +52,7 @@ paths: {
 ```
 
 As dependencyLib you can choose between the supported libraries.
-- inputmask.dependencyLib (vanilla) (WIP)
+- inputmask.dependencyLib (vanilla)
 - inputmask.dependencyLib.jquery
 - inputmask.dependencyLib.jqlite (WIP)
 - inputmask.dependencyLib.zepto (WIP)

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.2.1-89",
+  "version": "3.2.1-104",
   "main": [
     "./dist/inputmask/dependencyLib.js",
     "./dist/inputmask/inputmask.js",

+ 1 - 1
component.json

@@ -2,7 +2,7 @@
   "name": "jquery_inputmask",
   "repository": "robinherbots/jquery.inputmask",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
-  "version": "3.2.1-89",
+  "version": "3.2.1-104",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "main": "./dist/jquery.inputmask.bundle.js",
   "scripts": [

+ 1 - 1
composer.json

@@ -1,7 +1,7 @@
 {
   "name": "robinherbots/jquery.inputmask",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
-  "version": "3.2.1-89",
+  "version": "3.2.1-104",
   "type": "library",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "homepage": "http://robinherbots.github.io/jquery.inputmask",

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

@@ -3,7 +3,7 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !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);

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

@@ -3,7 +3,7 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jqlite" ], factory) : "object" == typeof exports ? module.exports = factory(require("jqlite")) : factory(jQuery);

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

@@ -3,7 +3,7 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : factory(jQuery);

+ 82 - 16
dist/inputmask/inputmask.dependencyLib.js

@@ -3,11 +3,11 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !function(factory) {
-    "function" == typeof define && define.amd ? define([ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : factory(jQuery);
-}(function($) {
+    "function" == typeof define && define.amd ? define(factory) : "object" == typeof exports ? module.exports = factory() : factory();
+}(function() {
     function indexOf(list, elem) {
         for (var i = 0, len = list.length; len > i; i++) if (list[i] === elem) return i;
         return -1;
@@ -15,25 +15,64 @@
     function type(obj) {
         return null == obj ? obj + "" : "object" == typeof obj || "function" == typeof obj ? class2type[class2type.toString.call(obj)] || "object" : typeof obj;
     }
+    function isArraylike(obj) {
+        var length = "length" in obj && obj.length, type = jQuery.type(obj);
+        return "function" === type || jQuery.isWindow(obj) ? !1 : 1 === obj.nodeType && length ? !0 : "array" === type || 0 === length || "number" == typeof length && length > 0 && length - 1 in obj;
+    }
     function Event(elem) {
-        this[0] = elem;
+        void 0 !== elem && null !== elem && (this[0] = elem, this[0].eventRegistry = this[0].eventRegistry || {});
     }
     function DependencyLib(elem) {
         return this instanceof DependencyLib ? void 0 : new Event(elem);
     }
     for (var class2type = {}, classTypes = "Boolean Number String Function Array Date RegExp Object Error".split(" "), nameNdx = 0; nameNdx < classTypes.length; nameNdx++) class2type["[object " + classTypes[nameNdx] + "]"] = classTypes[nameNdx].toLowerCase();
+    var domEvents = function() {
+        var domEvents = [];
+        for (var i in document) "on" !== i.substring(0, 2) || null !== document[i] && "function" != typeof document[i] || domEvents.push(i.substring(2));
+        return domEvents;
+    }();
     return Event.prototype = {
-        on: function() {
-            return $.fn.on.apply($(this[0]), arguments), this;
-        },
-        off: function() {
-            return $.fn.off.apply($(this[0]), arguments), this;
+        on: function(events, handler) {
+            function addEvent(ev, namespace) {
+                -1 !== domEvents.indexOf(ev) && "global" === namespace && (elem.addEventListener ? elem.addEventListener(ev, handler, !1) : elem.attachEvent && elem.attachEvent("on" + ev, handler)), 
+                eventRegistry[ev] = eventRegistry[ev] || {}, eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [], 
+                eventRegistry[ev][namespace].push(handler);
+            }
+            if (void 0 !== this[0]) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(" "), endx = 0; endx < _events.length; endx++) {
+                var nsEvent = _events[endx].split("."), ev = nsEvent[0], namespace = nsEvent[1] || "global";
+                addEvent(ev, namespace), "global" !== namespace && addEvent(ev, "global");
+            }
+            return this;
         },
-        trigger: function() {
-            return $.fn.trigger.apply($(this[0]), arguments), this;
+        off: function(events, handler) {
+            function removeEvent(ev, namespace) {
+                ev in eventRegistry == !0 && (-1 !== domEvents.indexOf(ev) && (elem.removeEventListener ? elem.removeEventListener(ev, handler, !1) : elem.detachEvent && elem.detachEvent("on" + ev, handler)), 
+                eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1), 
+                "global" !== namespace && eventRegistry[ev].global.splice(eventRegistry[ev].global.indexOf(handler), 1));
+            }
+            function resolveNamespace(ev, namespace) {
+                var evts = [];
+                return evts.push({
+                    ev: ev,
+                    namespace: namespace
+                }), evts;
+            }
+            if (void 0 !== this[0]) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(" "), endx = 0; endx < _events.length; endx++) for (var nsEvent = _events[endx].split("."), offEvents = resolveNamespace(nsEvent[0], nsEvent[1]), i = 0, offEventsL = offEvents.length; offEventsL > i; i++) removeEvent(offEvents[i].ev, offEvents[i].namespace);
+            return this;
         },
-        triggerHandler: function() {
-            return $.fn.triggerHandler.apply($(this[0]), arguments), this;
+        trigger: function(events) {
+            if (void 0 !== this[0]) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(" "), endx = 0; endx < _events.length; endx++) {
+                var nsEvent = _events[endx].split("."), ev = nsEvent[0], namespace = nsEvent[1] || "global";
+                if (-1 !== domEvents.indexOf(ev) && "global" === namespace) {
+                    var evnt;
+                    document.createEvent ? (evnt = new CustomEvent(ev, {
+                        detail: Array.prototype.slice.call(arguments, 1)
+                    }), elem.dispatchEvent(evnt)) : (evnt = document.createEventObject(), evnt.eventType = ev, 
+                    elem.fireEvent("on" + evnt.eventType, evnt));
+                } else if (void 0 !== eventRegistry[ev]) for (var i = 0; i < eventRegistry[ev][namespace].length; i++) arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]), 
+                eventRegistry[ev][namespace][i].apply(this, arguments);
+            }
+            return this;
         }
     }, DependencyLib.isFunction = function(obj) {
         return "function" === type(obj);
@@ -41,7 +80,7 @@
         return JSON.parse(data + "");
     }, DependencyLib.isArray = Array.isArray, DependencyLib.inArray = function(elem, arr, i) {
         return null == arr ? -1 : indexOf(arr, elem, i);
-    }, DependencyLib.valHooks = $.valHooks, DependencyLib.isWindow = function(obj) {
+    }, DependencyLib.valHooks = void 0, DependencyLib.isWindow = function(obj) {
         return null != obj && obj === obj.window;
     }, DependencyLib.isPlainObject = function(obj) {
         return "object" !== type(obj) || obj.nodeType || DependencyLib.isWindow(obj) ? !1 : obj.constructor && !class2type.hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf") ? !1 : !0;
@@ -54,6 +93,33 @@
         clone = src && DependencyLib.isArray(src) ? src : []) : clone = src && DependencyLib.isPlainObject(src) ? src : {}, 
         target[name] = DependencyLib.extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy));
         return target;
-    }, DependencyLib.each = $.each, DependencyLib.map = $.map, DependencyLib.Event = $.Event, 
-    DependencyLib.data = $.data, window.dependencyLib = DependencyLib, DependencyLib;
+    }, DependencyLib.each = function(obj, callback) {
+        var value, i = 0;
+        if (isArraylike(obj)) for (var length = obj.length; length > i && (value = callback.call(obj[i], i, obj[i]), 
+        value !== !1); i++) ; else for (i in obj) if (value = callback.call(obj[i], i, obj[i]), 
+        value === !1) break;
+        return obj;
+    }, DependencyLib.map = function(elems, callback) {
+        var value, i = 0, length = elems.length, isArray = isArraylike(elems), ret = [];
+        if (isArray) for (;length > i; i++) value = callback(elems[i], i), null != value && ret.push(value); else for (i in elems) value = callback(elems[i], i), 
+        null != value && ret.push(value);
+        return [].concat(ret);
+    }, DependencyLib.Event = function(type) {
+        return {
+            preventDefault: DependencyLib.noop,
+            altKey: !1,
+            charCode: 0,
+            ctrlKey: !1,
+            currentTarget: null,
+            keyCode: 0,
+            metaKey: !1,
+            shiftKey: !1,
+            target: null,
+            type: type,
+            which: 0
+        };
+    }, DependencyLib.data = function(owner, key, value) {
+        return void 0 === value ? owner.__data ? owner.__data[key] : null : (owner.__data = owner.__data || {}, 
+        void (owner.__data[key] = value));
+    }, window.dependencyLib = DependencyLib, DependencyLib;
 });

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

@@ -3,7 +3,7 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "zepto", "zepto_data", "zepto_event" ], factory) : "object" == typeof exports ? module.exports = factory(require("zepto"), require("zepto_data"), require("zepto_event")) : factory(Zepto);

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

@@ -3,7 +3,7 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !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);

ファイルの差分が大きいため隠しています
+ 6 - 5
dist/inputmask/inputmask.js


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

@@ -3,7 +3,7 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !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);

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

@@ -3,7 +3,7 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !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);

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

@@ -3,7 +3,7 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !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);

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

@@ -3,7 +3,7 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !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);

ファイルの差分が大きいため隠しています
+ 6 - 5
dist/jquery.inputmask.bundle.js


ファイルの差分が大きいため隠しています
+ 1 - 1
dist/min/inputmask/inputmask.date.extensions.min.js


ファイルの差分が大きいため隠しています
+ 1 - 1
dist/min/inputmask/inputmask.dependencyLib.jqlite.min.js


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

@@ -3,6 +3,6 @@
 * 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.1-89
+* Version: 3.2.1-104
 */
 !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return window.dependencyLib=a,a});

ファイルの差分が大きいため隠しています
+ 2 - 2
dist/min/inputmask/inputmask.dependencyLib.min.js


ファイルの差分が大きいため隠しています
+ 1 - 1
dist/min/inputmask/inputmask.dependencyLib.zepto.min.js


ファイルの差分が大きいため隠しています
+ 1 - 1
dist/min/inputmask/inputmask.extensions.min.js


ファイルの差分が大きいため隠しています
+ 4 - 3
dist/min/inputmask/inputmask.min.js


ファイルの差分が大きいため隠しています
+ 1 - 1
dist/min/inputmask/inputmask.numeric.extensions.min.js


ファイルの差分が大きいため隠しています
+ 1 - 1
dist/min/inputmask/inputmask.phone.extensions.min.js


ファイルの差分が大きいため隠しています
+ 1 - 1
dist/min/inputmask/inputmask.regex.extensions.min.js


ファイルの差分が大きいため隠しています
+ 1 - 1
dist/min/inputmask/jquery.inputmask.min.js


+ 215 - 30
js/inputmask.dependencyLib.js

@@ -1,13 +1,13 @@
 (function(factory) {
 		if (typeof define === "function" && define.amd) {
-			define(["jquery"], factory);
+			define(factory);
 		} else if (typeof exports === "object") {
-			module.exports = factory(require("jquery"));
+			module.exports = factory();
 		} else {
-			factory(jQuery);
+			factory();
 		}
 	}
-	(function($) {
+	(function() {
 
 		//helper functions
 
@@ -40,40 +40,152 @@
 				typeof obj;
 		}
 
+		function isArraylike(obj) {
+			// Support: iOS 8.2 (not reproducible in simulator)
+			// `in` check used to prevent JIT error (gh-2145)
+			// hasOwn isn't used here due to false negatives
+			// regarding Nodelist length in IE
+			var length = "length" in obj && obj.length,
+				type = jQuery.type(obj);
+
+			if (type === "function" || jQuery.isWindow(obj)) {
+				return false;
+			}
+
+			if (obj.nodeType === 1 && length) {
+				return true;
+			}
+
+			return type === "array" || length === 0 ||
+				typeof length === "number" && length > 0 && (length - 1) in obj;
+		}
+
 		//micro event lib
+		var domEvents = function() {
+			var domEvents = [];
+			for (var i in document) {
+				if (i.substring(0, 2) === "on" && (document[i] === null || typeof document[i] === 'function'))
+					domEvents.push(i.substring(2));
+			}
+			return domEvents;
+		}();
+
 		function Event(elem) {
-			this[0] = elem;
+			if (elem !== undefined && elem !== null) {
+				this[0] = elem;
+				this[0].eventRegistry = this[0].eventRegistry || {};
+			}
 		}
 
 		Event.prototype = {
-			on: function() {
-				$.fn.on.apply($(this[0]), arguments);
-				return this;
-			},
-			off: function() {
-				$.fn.off.apply($(this[0]), arguments);
+			on: function(events, handler) {
+				if (this[0] !== undefined) {
+					var eventRegistry = this[0].eventRegistry,
+						elem = this[0];
+
+					function addEvent(ev, namespace) {
+						if (domEvents.indexOf(ev) !== -1 && namespace === "global") {
+							//register domevent
+							if (elem.addEventListener) { // all browsers except IE before version 9
+								elem.addEventListener(ev, handler, false);
+							} else if (elem.attachEvent) { // IE before version 9
+								elem.attachEvent("on" + ev, handler);
+							}
+						}
+						eventRegistry[ev] = eventRegistry[ev] || {};
+						eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [];
+						eventRegistry[ev][namespace].push(handler);
+					}
+					var _events = events.split(" ");
+					for (var endx = 0; endx < _events.length; endx++) {
+						var nsEvent = _events[endx].split("."),
+							ev = nsEvent[0],
+							namespace = nsEvent[1] || "global";
+						addEvent(ev, namespace);
+						if (namespace !== "global") {
+							addEvent(ev, "global");
+						}
+					}
+				}
 				return this;
 			},
-			trigger: function() {
-				$.fn.trigger.apply($(this[0]), arguments);
+			off: function(events, handler) {
+				if (this[0] !== undefined) {
+					var eventRegistry = this[0].eventRegistry,
+						elem = this[0];
+
+					function removeEvent(ev, namespace) {
+						if (ev in eventRegistry === true) {
+							if (domEvents.indexOf(ev) !== -1) {
+								//unbind to dom events
+								if (elem.removeEventListener) { // all browsers except IE before version 9
+									elem.removeEventListener(ev, handler, false);
+								} else if (elem.detachEvent) { // IE before version 9
+									elem.detachEvent("on" + ev, handler);
+								}
+							}
+							eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);
+							if (namespace !== "global") {
+								eventRegistry[ev].global.splice(eventRegistry[ev].global.indexOf(handler), 1);
+							}
+						}
+					}
+
+					function resolveNamespace(ev, namespace) {
+						var evts = [];
+						evts.push({
+							ev: ev,
+							namespace: namespace
+						});
+
+						return evts;
+					}
+
+					var _events = events.split(" ");
+					for (var endx = 0; endx < _events.length; endx++) {
+						var nsEvent = _events[endx].split("."),
+							offEvents = resolveNamespace(nsEvent[0], nsEvent[1]);
+						for (var i = 0, offEventsL = offEvents.length; i < offEventsL; i++) {
+							removeEvent(offEvents[i].ev, offEvents[i].namespace);
+						}
+					}
+				}
 				return this;
 			},
-			triggerHandler: function() {
-				$.fn.triggerHandler.apply($(this[0]), arguments);
+			trigger: function(events /* , args... */ ) {
+				if (this[0] !== undefined) {
+					var eventRegistry = this[0].eventRegistry,
+						elem = this[0];
+					var _events = events.split(" ");
+					for (var endx = 0; endx < _events.length; endx++) {
+						var nsEvent = _events[endx].split("."),
+							ev = nsEvent[0],
+							namespace = nsEvent[1] || "global";
+						if (domEvents.indexOf(ev) !== -1 && namespace === "global") {
+							//trigger domevent
+							var evnt; // The custom event that will be created
+							if (document.createEvent) {
+								evnt = new CustomEvent(ev, {
+									detail: Array.prototype.slice.call(arguments, 1)
+								});
+								elem.dispatchEvent(evnt);
+							} else {
+								evnt = document.createEventObject();
+								evnt.eventType = ev;
+								elem.fireEvent("on" + evnt.eventType, evnt);
+							}
+						} else if (eventRegistry[ev] !== undefined) {
+							for (var i = 0; i < eventRegistry[ev][namespace].length; i++) {
+								arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]);
+								eventRegistry[ev][namespace][i].apply(this, arguments);
+							}
+						}
+					}
+				}
 				return this;
 			}
 		};
 
-		function getDomEvents() {
-			var domEvents = [];
-			for (var i in document) {
-				if (i.substring(0, 2) === "on" && (document[i] === null || typeof document[i] === 'function'))
-					domEvents.push(i);
-			}
-			return domEvents;
-		};
-
-
 		function DependencyLib(elem) {
 			if (!(this instanceof DependencyLib)) {
 				return new Event(elem);
@@ -92,7 +204,7 @@
 		DependencyLib.inArray = function(elem, arr, i) {
 			return arr == null ? -1 : indexOf(arr, elem, i);
 		};
-		DependencyLib.valHooks = $.valHooks;
+		DependencyLib.valHooks = undefined;
 		DependencyLib.isWindow = function(obj) {
 			return obj != null && obj === obj.window;
 		};
@@ -179,10 +291,83 @@
 			return target;
 		};
 
-		DependencyLib.each = $.each;
-		DependencyLib.map = $.map;
-		DependencyLib.Event = $.Event; //needs to be replaced
-		DependencyLib.data = $.data; //needs to be replaced
+		DependencyLib.each = function(obj, callback) {
+			var value, i = 0;
+
+			if (isArraylike(obj)) {
+				for (var length = obj.length; i < length; i++) {
+					value = callback.call(obj[i], i, obj[i]);
+					if (value === false) {
+						break;
+					}
+				}
+			} else {
+				for (i in obj) {
+					value = callback.call(obj[i], i, obj[i]);
+					if (value === false) {
+						break;
+					}
+				}
+			}
+
+			return obj;
+		};
+		DependencyLib.map = function(elems, callback) {
+			var value,
+				i = 0,
+				length = elems.length,
+				isArray = isArraylike(elems),
+				ret = [];
+
+			// Go through the array, translating each of the items to their new values
+			if (isArray) {
+				for (; i < length; i++) {
+					value = callback(elems[i], i);
+
+					if (value != null) {
+						ret.push(value);
+					}
+				}
+
+				// Go through every key on the object,
+			} else {
+				for (i in elems) {
+					value = callback(elems[i], i);
+
+					if (value != null) {
+						ret.push(value);
+					}
+				}
+			}
+
+			// Flatten any nested arrays
+			return [].concat(ret);
+		};
+
+		//only usefull within inputmask
+		DependencyLib.Event = function(type) {
+			return {
+				preventDefault: DependencyLib.noop,
+				altKey: false,
+				charCode: 0,
+				ctrlKey: false,
+				currentTarget: null,
+				keyCode: 0,
+				metaKey: false,
+				shiftKey: false,
+				target: null,
+				type: type,
+				which: 0
+			};
+		}
+		DependencyLib.data = function(owner, key, value) {
+			if (value === undefined) {
+				return owner.__data ? owner.__data[key] : null;
+			} else {
+				owner.__data = owner.__data || {};
+				owner.__data[key] = value;
+			}
+		};
 
 		window.dependencyLib = DependencyLib;
 		return DependencyLib;

+ 5 - 5
js/inputmask.js

@@ -1787,7 +1787,7 @@
 
 			function wrapEvent(eventHandler) {
 				return function(e) {
-					// console.log("triggered " + e.type);
+					console.log("triggered " + e.type);
 					var inComposition = false;
 					if (this.inputmask === undefined) { //happens when cloning an object with jquery.clone
 						var imOpts = $.data(this, "_inputmask_opts");
@@ -1864,7 +1864,7 @@
 									result;
 								result = valhookSet(elem, value);
 								if (elem.inputmask) {
-									$elem.triggerHandler("setvalue.inputmask");
+									$elem.trigger("setvalue.inputmask");
 								}
 								return result;
 							},
@@ -1882,7 +1882,7 @@
 				function setter(value) {
 					valueSet.call(this, value);
 					if (this.inputmask) {
-						$(this).triggerHandler("setvalue.inputmask");
+						$(this).trigger("setvalue.inputmask");
 					}
 				}
 
@@ -1892,7 +1892,7 @@
 							input = this,
 							value = input.inputmask._valueGet();
 						if (value !== "" && value !== getBuffer().join("")) {
-							$input.triggerHandler("setvalue.inputmask");
+							$input.trigger("setvalue.inputmask");
 						}
 					}));
 					// //!! the bound handlers are executed in the order they where bound
@@ -2483,7 +2483,7 @@
 						}
 					}).on("reset", function() {
 						setTimeout(function() {
-							$el.triggerHandler("setvalue.inputmask");
+							$el.trigger("setvalue.inputmask");
 						}, 0);
 					});
 

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.2.1-89",
+  "version": "3.2.1-104",
   "description": "jquery.inputmask is a jquery plugin which create an input mask.",
   "main": "./dist/inputmask/jquery.inputmask.js",
   "files": [

+ 1 - 1
qunit/tests_base.js

@@ -477,7 +477,7 @@ asyncTest("creditcard switch - pchelailya", function() {
 	$("#testmask").on("keyup", function(event) {
 		var value = $(this).inputmask("unmaskedvalue");
 
-		if (value.length === 2 && value === "37") {
+		if (value != null && value.length === 2 && value === "37") {
 			$(this).inputmask("9999 999999 99999");
 		}
 	});