Robin Herbots 7 年之前
父节点
当前提交
3656053f9a
共有 29 个文件被更改,包括 6518 次插入3294 次删除
  1. 6 0
      Gruntfile.js
  2. 1 1
      bower.json
  3. 1 1
      composer.json
  4. 20 8
      dist/inputmask/bindings/inputmask.binding.js
  5. 112 36
      dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js
  6. 10 4
      dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js
  7. 256 88
      dist/inputmask/dependencyLibs/inputmask.dependencyLib.js
  8. 3 3
      dist/inputmask/global/document.js
  9. 3 3
      dist/inputmask/global/window.js
  10. 134 63
      dist/inputmask/inputmask.date.extensions.js
  11. 28 15
      dist/inputmask/inputmask.extensions.js
  12. 2300 1188
      dist/inputmask/inputmask.js
  13. 419 198
      dist/inputmask/inputmask.numeric.extensions.js
  14. 81 50
      dist/inputmask/jquery.inputmask.js
  15. 3118 1610
      dist/jquery.inputmask.bundle.js
  16. 2 2
      dist/min/inputmask/bindings/inputmask.binding.min.js
  17. 2 2
      dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.min.js
  18. 2 2
      dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.min.js
  19. 2 2
      dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.min.js
  20. 2 2
      dist/min/inputmask/global/document.min.js
  21. 2 2
      dist/min/inputmask/global/window.min.js
  22. 2 2
      dist/min/inputmask/inputmask.date.extensions.min.js
  23. 2 2
      dist/min/inputmask/inputmask.extensions.min.js
  24. 2 2
      dist/min/inputmask/inputmask.min.js
  25. 2 2
      dist/min/inputmask/inputmask.numeric.extensions.min.js
  26. 2 2
      dist/min/inputmask/jquery.inputmask.min.js
  27. 2 2
      dist/min/jquery.inputmask.bundle.min.js
  28. 1 1
      package.json
  29. 1 1
      qunit/index.js

+ 6 - 0
Gruntfile.js

@@ -26,6 +26,7 @@ module.exports = function (grunt) {
                     banner: createBanner(dstFile),
                     beautify: true,
                     mangle: false,
+                    compress: false,
                     preserveComments: false,
                     ASCIIOnly: true
                 }
@@ -35,6 +36,8 @@ module.exports = function (grunt) {
                 src: srcFiles[srcNdx],
                 options: {
                     banner: createBanner(dstFileMin),
+                    mangle: false,
+                    compress: false,
                     preserveComments: false,
                     ASCIIOnly: true
                 }
@@ -48,6 +51,7 @@ module.exports = function (grunt) {
                 banner: createBanner("jquery.inputmask.bundle.js"),
                 beautify: true,
                 mangle: false,
+                compress: false,
                 preserveComments: false,
                 ASCIIOnly: true
             }
@@ -57,6 +61,8 @@ module.exports = function (grunt) {
             src: "build/bundle.js",
             options: {
                 banner: createBanner("jquery.inputmask.bundle.js"),
+                mangle: false,
+                compress: false,
                 preserveComments: false,
                 ASCIIOnly: true
             }

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "inputmask",
-  "version": "4.0.1-beta.37",
+  "version": "4.0.1-beta.38",
   "main": [
 	  "./index.js",
     "./css/inputmask.css"

+ 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": "4.0.1-beta.37",
+  "version": "4.0.1-beta.38",
   "type": "library",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "homepage": "http://robinherbots.github.io/Inputmask",

+ 20 - 8
dist/inputmask/bindings/inputmask.binding.js

@@ -3,19 +3,31 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-!function(factory) {
-    "function" == typeof define && define.amd ? define([ "jquery", "../inputmask", "../global/document" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("../inputmask"), require("../global/document")) : factory(jQuery, window.Inputmask, document);
-}(function($, Inputmask, document) {
+(function(factory) {
+    if (typeof define === "function" && define.amd) {
+        define([ "jquery", "../inputmask", "../global/document" ], factory);
+    } else if (typeof exports === "object") {
+        module.exports = factory(require("jquery"), require("../inputmask"), require("../global/document"));
+    } else {
+        factory(jQuery, window.Inputmask, document);
+    }
+})(function($, Inputmask, document) {
     $(document).ajaxComplete(function(event, xmlHttpRequest, ajaxOptions) {
-        -1 !== $.inArray("html", ajaxOptions.dataTypes) && $(".inputmask, [data-inputmask], [data-inputmask-mask], [data-inputmask-alias]").each(function(ndx, lmnt) {
-            void 0 === lmnt.inputmask && Inputmask().mask(lmnt);
-        });
+        if ($.inArray("html", ajaxOptions.dataTypes) !== -1) {
+            $(".inputmask, [data-inputmask], [data-inputmask-mask], [data-inputmask-alias]").each(function(ndx, lmnt) {
+                if (lmnt.inputmask === undefined) {
+                    Inputmask().mask(lmnt);
+                }
+            });
+        }
     }).ready(function() {
         $(".inputmask, [data-inputmask], [data-inputmask-mask], [data-inputmask-alias]").each(function(ndx, lmnt) {
-            void 0 === lmnt.inputmask && Inputmask().mask(lmnt);
+            if (lmnt.inputmask === undefined) {
+                Inputmask().mask(lmnt);
+            }
         });
     });
 });

+ 112 - 36
dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js

@@ -3,50 +3,126 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-!function(factory) {
-    "function" == typeof define && define.amd ? define([ "jqlite", "../global/window", "../global/document" ], factory) : "object" == typeof exports ? module.exports = factory(require("jqlite"), require("../global/window"), require("../global/document")) : window.dependencyLib = factory(jqlite, window, document);
-}(function($, window, document) {
+(function(factory) {
+    if (typeof define === "function" && define.amd) {
+        define([ "jqlite", "../global/window", "../global/document" ], factory);
+    } else if (typeof exports === "object") {
+        module.exports = factory(require("jqlite"), require("../global/window"), require("../global/document"));
+    } else {
+        window.dependencyLib = factory(jqlite, window, document);
+    }
+})(function($, window, document) {
+    function indexOf(list, elem) {
+        var i = 0, len = list.length;
+        for (;i < len; i++) {
+            if (list[i] === elem) {
+                return i;
+            }
+        }
+        return -1;
+    }
     function isWindow(obj) {
-        return null != obj && obj === obj.window;
+        return obj != null && obj === obj.window;
+    }
+    function isArraylike(obj) {
+        var length = "length" in obj && obj.length, ltype = typeof obj;
+        if (ltype === "function" || isWindow(obj)) {
+            return false;
+        }
+        if (obj.nodeType === 1 && length) {
+            return true;
+        }
+        return ltype === "array" || length === 0 || typeof length === "number" && length > 0 && length - 1 in obj;
     }
-    return $.inArray = function(elem, arr, i) {
-        return null == arr ? -1 : function(list, elem) {
-            for (var i = 0, len = list.length; i < len; i++) if (list[i] === elem) return i;
-            return -1;
-        }(arr, elem);
-    }, $.isFunction = function(obj) {
-        return "function" == typeof obj;
-    }, $.isArray = Array.isArray, $.isPlainObject = function(obj) {
-        return "object" == typeof obj && !obj.nodeType && !isWindow(obj) && !(obj.constructor && !Object.hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf"));
-    }, $.extend = function() {
-        var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1;
-        for ("boolean" == typeof target && (deep = target, target = arguments[i] || {}, 
-        i++), "object" == typeof target || $.isFunction(target) || (target = {}), i === length && (target = this, 
-        i--); i < length; i++) if (null != (options = arguments[i])) for (name in options) src = target[name], 
-        target !== (copy = options[name]) && (deep && copy && ($.isPlainObject(copy) || (copyIsArray = $.isArray(copy))) ? (copyIsArray ? (copyIsArray = !1, 
-        clone = src && $.isArray(src) ? src : []) : clone = src && $.isPlainObject(src) ? src : {}, 
-        target[name] = $.extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy));
+    $.inArray = function(elem, arr, i) {
+        return arr == null ? -1 : indexOf(arr, elem, i);
+    };
+    $.isFunction = function(obj) {
+        return typeof obj === "function";
+    };
+    $.isArray = Array.isArray;
+    $.isPlainObject = function(obj) {
+        if (typeof obj !== "object" || obj.nodeType || isWindow(obj)) {
+            return false;
+        }
+        if (obj.constructor && !Object.hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf")) {
+            return false;
+        }
+        return true;
+    };
+    $.extend = function() {
+        var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;
+        if (typeof target === "boolean") {
+            deep = target;
+            target = arguments[i] || {};
+            i++;
+        }
+        if (typeof target !== "object" && !$.isFunction(target)) {
+            target = {};
+        }
+        if (i === length) {
+            target = this;
+            i--;
+        }
+        for (;i < length; i++) {
+            if ((options = arguments[i]) != null) {
+                for (name in options) {
+                    src = target[name];
+                    copy = options[name];
+                    if (target === copy) {
+                        continue;
+                    }
+                    if (deep && copy && ($.isPlainObject(copy) || (copyIsArray = $.isArray(copy)))) {
+                        if (copyIsArray) {
+                            copyIsArray = false;
+                            clone = src && $.isArray(src) ? src : [];
+                        } else {
+                            clone = src && $.isPlainObject(src) ? src : {};
+                        }
+                        target[name] = $.extend(deep, clone, copy);
+                    } else if (copy !== undefined) {
+                        target[name] = copy;
+                    }
+                }
+            }
+        }
         return target;
-    }, $.each = function(obj, callback) {
-        var i = 0;
-        if (function(obj) {
-            var length = "length" in obj && obj.length, ltype = typeof obj;
-            return "function" !== ltype && !isWindow(obj) && (!(1 !== obj.nodeType || !length) || "array" === ltype || 0 === length || "number" == typeof length && 0 < length && length - 1 in obj);
-        }(obj)) for (var length = obj.length; i < length && !1 !== callback.call(obj[i], i, obj[i]); i++) ; else for (i in obj) if (!1 === callback.call(obj[i], i, obj[i])) break;
+    };
+    $.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;
-    }, $.data = function(elem, name, data) {
+    };
+    $.data = function(elem, name, data) {
         return $(elem).data(name, data);
-    }, $.Event = $.Event || function(event, params) {
+    };
+    $.Event = $.Event || function CustomEvent(event, params) {
         params = params || {
-            bubbles: !1,
-            cancelable: !1,
-            detail: void 0
+            bubbles: false,
+            cancelable: false,
+            detail: undefined
         };
         var evt = document.createEvent("CustomEvent");
-        return evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail), 
-        evt;
-    }, $.Event.prototype = window.Event.prototype, $;
+        evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
+        return evt;
+    };
+    $.Event.prototype = window.Event.prototype;
+    return $;
 });

+ 10 - 4
dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js

@@ -3,11 +3,17 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-!function(factory) {
-    "function" == typeof define && define.amd ? define([ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : window.dependencyLib = factory(jQuery);
-}(function($) {
+(function(factory) {
+    if (typeof define === "function" && define.amd) {
+        define([ "jquery" ], factory);
+    } else if (typeof exports === "object") {
+        module.exports = factory(require("jquery"));
+    } else {
+        window.dependencyLib = factory(jQuery);
+    }
+})(function($) {
     return $;
 });

+ 256 - 88
dist/inputmask/dependencyLibs/inputmask.dependencyLib.js

@@ -3,34 +3,78 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-!function(factory) {
-    "function" == typeof define && define.amd ? define([ "../global/window", "../global/document" ], factory) : "object" == typeof exports ? module.exports = factory(require("../global/window"), require("../global/document")) : window.dependencyLib = factory(window, document);
-}(function(window, document) {
+(function(factory) {
+    if (typeof define === "function" && define.amd) {
+        define([ "../global/window", "../global/document" ], factory);
+    } else if (typeof exports === "object") {
+        module.exports = factory(require("../global/window"), require("../global/document"));
+    } else {
+        window.dependencyLib = factory(window, document);
+    }
+})(function(window, document) {
+    function indexOf(list, elem) {
+        var i = 0, len = list.length;
+        for (;i < len; i++) {
+            if (list[i] === elem) {
+                return i;
+            }
+        }
+        return -1;
+    }
     function isWindow(obj) {
-        return null != obj && obj === obj.window;
+        return obj != null && obj === obj.window;
+    }
+    function isArraylike(obj) {
+        var length = "length" in obj && obj.length, ltype = typeof obj;
+        if (ltype === "function" || isWindow(obj)) {
+            return false;
+        }
+        if (obj.nodeType === 1 && length) {
+            return true;
+        }
+        return ltype === "array" || length === 0 || typeof length === "number" && length > 0 && length - 1 in obj;
     }
     function isValidElement(elem) {
         return elem instanceof Element;
     }
     function DependencyLib(elem) {
-        return elem instanceof DependencyLib ? elem : this instanceof DependencyLib ? void (null != elem && elem !== window && (this[0] = elem.nodeName ? elem : void 0 !== elem[0] && elem[0].nodeName ? elem[0] : document.querySelector(elem), 
-        void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new DependencyLib(elem);
+        if (elem instanceof DependencyLib) {
+            return elem;
+        }
+        if (!(this instanceof DependencyLib)) {
+            return new DependencyLib(elem);
+        }
+        if (elem !== undefined && elem !== null && elem !== window) {
+            this[0] = elem.nodeName ? elem : elem[0] !== undefined && elem[0].nodeName ? elem[0] : document.querySelector(elem);
+            if (this[0] !== undefined && this[0] !== null) {
+                this[0].eventRegistry = this[0].eventRegistry || {};
+            }
+        }
+    }
+    function getWindow(elem) {
+        return isWindow(elem) ? elem : elem.nodeType === 9 ? elem.defaultView || elem.parentWindow : false;
     }
-    return DependencyLib.prototype = {
+    DependencyLib.prototype = {
         on: function(events, handler) {
             if (isValidElement(this[0])) {
                 var eventRegistry = this[0].eventRegistry, elem = this[0];
                 function addEvent(ev, 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] || [], 
+                    if (elem.addEventListener) {
+                        elem.addEventListener(ev, handler, false);
+                    } else if (elem.attachEvent) {
+                        elem.attachEvent("on" + ev, handler);
+                    }
+                    eventRegistry[ev] = eventRegistry[ev] || {};
+                    eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [];
                     eventRegistry[ev][namespace].push(handler);
                 }
-                for (var _events = events.split(" "), endx = 0; endx < _events.length; endx++) {
-                    var nsEvent = _events[endx].split(".");
-                    addEvent(nsEvent[0], nsEvent[1] || "global");
+                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);
                 }
             }
             return this;
@@ -39,94 +83,218 @@
             if (isValidElement(this[0])) {
                 var eventRegistry = this[0].eventRegistry, elem = this[0];
                 function removeEvent(ev, namespace, handler) {
-                    if (ev in eventRegistry == !0) if (elem.removeEventListener ? elem.removeEventListener(ev, handler, !1) : elem.detachEvent && elem.detachEvent("on" + ev, handler), 
-                    "global" === namespace) for (var nmsp in eventRegistry[ev]) eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1); else eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);
+                    if (ev in eventRegistry === true) {
+                        if (elem.removeEventListener) {
+                            elem.removeEventListener(ev, handler, false);
+                        } else if (elem.detachEvent) {
+                            elem.detachEvent("on" + ev, handler);
+                        }
+                        if (namespace === "global") {
+                            for (var nmsp in eventRegistry[ev]) {
+                                eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1);
+                            }
+                        } else {
+                            eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);
+                        }
+                    }
                 }
                 function resolveNamespace(ev, namespace) {
-                    var hndx, hndL, evts = [];
-                    if (0 < ev.length) if (void 0 === handler) for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) evts.push({
-                        ev: ev,
-                        namespace: namespace && 0 < namespace.length ? namespace : "global",
-                        handler: eventRegistry[ev][namespace][hndx]
-                    }); else evts.push({
-                        ev: ev,
-                        namespace: namespace && 0 < namespace.length ? namespace : "global",
-                        handler: handler
-                    }); else if (0 < namespace.length) for (var evNdx in eventRegistry) for (var nmsp in eventRegistry[evNdx]) if (nmsp === namespace) if (void 0 === handler) for (hndx = 0, 
-                    hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) evts.push({
-                        ev: evNdx,
-                        namespace: nmsp,
-                        handler: eventRegistry[evNdx][nmsp][hndx]
-                    }); else evts.push({
-                        ev: evNdx,
-                        namespace: nmsp,
-                        handler: handler
-                    });
+                    var evts = [], hndx, hndL;
+                    if (ev.length > 0) {
+                        if (handler === undefined) {
+                            for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) {
+                                evts.push({
+                                    ev: ev,
+                                    namespace: namespace && namespace.length > 0 ? namespace : "global",
+                                    handler: eventRegistry[ev][namespace][hndx]
+                                });
+                            }
+                        } else {
+                            evts.push({
+                                ev: ev,
+                                namespace: namespace && namespace.length > 0 ? namespace : "global",
+                                handler: handler
+                            });
+                        }
+                    } else if (namespace.length > 0) {
+                        for (var evNdx in eventRegistry) {
+                            for (var nmsp in eventRegistry[evNdx]) {
+                                if (nmsp === namespace) {
+                                    if (handler === undefined) {
+                                        for (hndx = 0, hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) {
+                                            evts.push({
+                                                ev: evNdx,
+                                                namespace: nmsp,
+                                                handler: eventRegistry[evNdx][nmsp][hndx]
+                                            });
+                                        }
+                                    } else {
+                                        evts.push({
+                                            ev: evNdx,
+                                            namespace: nmsp,
+                                            handler: handler
+                                        });
+                                    }
+                                }
+                            }
+                        }
+                    }
                     return evts;
                 }
-                for (var _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; i < offEventsL; i++) removeEvent(offEvents[i].ev, offEvents[i].namespace, offEvents[i].handler);
+                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, offEvents[i].handler);
+                    }
+                }
             }
             return this;
         },
         trigger: function(events) {
-            if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = "string" == typeof events ? events.split(" ") : [ events.type ], endx = 0; endx < _events.length; endx++) {
-                var nsEvent = _events[endx].split("."), ev = nsEvent[0], namespace = nsEvent[1] || "global";
-                if (void 0 !== document && "global" === namespace) {
-                    var evnt, i, params = {
-                        bubbles: !0,
-                        cancelable: !0,
-                        detail: arguments[1]
-                    };
-                    if (document.createEvent) {
-                        try {
-                            evnt = new CustomEvent(ev, params);
-                        } catch (e) {
-                            (evnt = document.createEvent("CustomEvent")).initCustomEvent(ev, params.bubbles, params.cancelable, params.detail);
+            if (isValidElement(this[0])) {
+                var eventRegistry = this[0].eventRegistry, elem = this[0];
+                var _events = typeof events === "string" ? events.split(" ") : [ events.type ];
+                for (var endx = 0; endx < _events.length; endx++) {
+                    var nsEvent = _events[endx].split("."), ev = nsEvent[0], namespace = nsEvent[1] || "global";
+                    if (document !== undefined && namespace === "global") {
+                        var evnt, i, params = {
+                            bubbles: true,
+                            cancelable: true,
+                            detail: arguments[1]
+                        };
+                        if (document.createEvent) {
+                            try {
+                                evnt = new CustomEvent(ev, params);
+                            } catch (e) {
+                                evnt = document.createEvent("CustomEvent");
+                                evnt.initCustomEvent(ev, params.bubbles, params.cancelable, params.detail);
+                            }
+                            if (events.type) DependencyLib.extend(evnt, events);
+                            elem.dispatchEvent(evnt);
+                        } else {
+                            evnt = document.createEventObject();
+                            evnt.eventType = ev;
+                            evnt.detail = arguments[1];
+                            if (events.type) DependencyLib.extend(evnt, events);
+                            elem.fireEvent("on" + evnt.eventType, evnt);
                         }
-                        events.type && DependencyLib.extend(evnt, events), elem.dispatchEvent(evnt);
-                    } else (evnt = document.createEventObject()).eventType = ev, evnt.detail = arguments[1], 
-                    events.type && DependencyLib.extend(evnt, events), elem.fireEvent("on" + evnt.eventType, evnt);
-                } else if (void 0 !== eventRegistry[ev]) if (events = events.type ? events : DependencyLib.Event(events), 
-                "global" === namespace) for (var nmsp in eventRegistry[ev]) for (i = 0; i < eventRegistry[ev][nmsp].length; i++) eventRegistry[ev][nmsp][i].apply(elem, arguments); else for (i = 0; i < eventRegistry[ev][namespace].length; i++) eventRegistry[ev][namespace][i].apply(elem, arguments);
+                    } else if (eventRegistry[ev] !== undefined) {
+                        arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]);
+                        if (namespace === "global") {
+                            for (var nmsp in eventRegistry[ev]) {
+                                for (i = 0; i < eventRegistry[ev][nmsp].length; i++) {
+                                    eventRegistry[ev][nmsp][i].apply(elem, arguments);
+                                }
+                            }
+                        } else {
+                            for (i = 0; i < eventRegistry[ev][namespace].length; i++) {
+                                eventRegistry[ev][namespace][i].apply(elem, arguments);
+                            }
+                        }
+                    }
+                }
             }
             return this;
         }
-    }, DependencyLib.isFunction = function(obj) {
-        return "function" == typeof obj;
-    }, DependencyLib.noop = function() {}, DependencyLib.isArray = Array.isArray, DependencyLib.inArray = function(elem, arr, i) {
-        return null == arr ? -1 : function(list, elem) {
-            for (var i = 0, len = list.length; i < len; i++) if (list[i] === elem) return i;
-            return -1;
-        }(arr, elem);
-    }, DependencyLib.valHooks = void 0, DependencyLib.isPlainObject = function(obj) {
-        return "object" == typeof obj && !obj.nodeType && !isWindow(obj) && !(obj.constructor && !Object.hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf"));
-    }, DependencyLib.extend = function() {
-        var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1;
-        for ("boolean" == typeof target && (deep = target, target = arguments[i] || {}, 
-        i++), "object" == typeof target || DependencyLib.isFunction(target) || (target = {}), 
-        i === length && (target = this, i--); i < length; i++) if (null != (options = arguments[i])) for (name in options) src = target[name], 
-        target !== (copy = options[name]) && (deep && copy && (DependencyLib.isPlainObject(copy) || (copyIsArray = DependencyLib.isArray(copy))) ? (copyIsArray ? (copyIsArray = !1, 
-        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));
+    };
+    DependencyLib.isFunction = function(obj) {
+        return typeof obj === "function";
+    };
+    DependencyLib.noop = function() {};
+    DependencyLib.isArray = Array.isArray;
+    DependencyLib.inArray = function(elem, arr, i) {
+        return arr == null ? -1 : indexOf(arr, elem, i);
+    };
+    DependencyLib.valHooks = undefined;
+    DependencyLib.isPlainObject = function(obj) {
+        if (typeof obj !== "object" || obj.nodeType || isWindow(obj)) {
+            return false;
+        }
+        if (obj.constructor && !Object.hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf")) {
+            return false;
+        }
+        return true;
+    };
+    DependencyLib.extend = function() {
+        var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;
+        if (typeof target === "boolean") {
+            deep = target;
+            target = arguments[i] || {};
+            i++;
+        }
+        if (typeof target !== "object" && !DependencyLib.isFunction(target)) {
+            target = {};
+        }
+        if (i === length) {
+            target = this;
+            i--;
+        }
+        for (;i < length; i++) {
+            if ((options = arguments[i]) != null) {
+                for (name in options) {
+                    src = target[name];
+                    copy = options[name];
+                    if (target === copy) {
+                        continue;
+                    }
+                    if (deep && copy && (DependencyLib.isPlainObject(copy) || (copyIsArray = DependencyLib.isArray(copy)))) {
+                        if (copyIsArray) {
+                            copyIsArray = false;
+                            clone = src && DependencyLib.isArray(src) ? src : [];
+                        } else {
+                            clone = src && DependencyLib.isPlainObject(src) ? src : {};
+                        }
+                        target[name] = DependencyLib.extend(deep, clone, copy);
+                    } else if (copy !== undefined) {
+                        target[name] = copy;
+                    }
+                }
+            }
+        }
         return target;
-    }, DependencyLib.each = function(obj, callback) {
-        var i = 0;
-        if (function(obj) {
-            var length = "length" in obj && obj.length, ltype = typeof obj;
-            return "function" !== ltype && !isWindow(obj) && (!(1 !== obj.nodeType || !length) || "array" === ltype || 0 === length || "number" == typeof length && 0 < length && length - 1 in obj);
-        }(obj)) for (var length = obj.length; i < length && !1 !== callback.call(obj[i], i, obj[i]); i++) ; else for (i in obj) if (!1 === callback.call(obj[i], i, obj[i])) break;
+    };
+    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.data = function(owner, key, value) {
-        if (void 0 === value) return owner.__data ? owner.__data[key] : null;
-        owner.__data = owner.__data || {}, owner.__data[key] = value;
-    }, "function" == typeof window.CustomEvent ? DependencyLib.Event = window.CustomEvent : (DependencyLib.Event = function(event, params) {
-        params = params || {
-            bubbles: !1,
-            cancelable: !1,
-            detail: void 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;
+        }
+    };
+    if (typeof window.CustomEvent === "function") {
+        DependencyLib.Event = window.CustomEvent;
+    } else {
+        DependencyLib.Event = function(event, params) {
+            params = params || {
+                bubbles: false,
+                cancelable: false,
+                detail: undefined
+            };
+            var evt = document.createEvent("CustomEvent");
+            evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
+            return evt;
         };
-        var evt = document.createEvent("CustomEvent");
-        return evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail), 
-        evt;
-    }).prototype = window.Event.prototype, DependencyLib;
+        DependencyLib.Event.prototype = window.Event.prototype;
+    }
+    return DependencyLib;
 });

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

@@ -3,9 +3,9 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-"function" == typeof define && define.amd ? define(function() {
+if (typeof define === "function" && define.amd) define(function() {
     return document;
-}) : "object" == typeof exports && (module.exports = document);
+}); else if (typeof exports === "object") module.exports = document;

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

@@ -3,9 +3,9 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-"function" == typeof define && define.amd ? define(function() {
+if (typeof define === "function" && define.amd) define(function() {
     return window;
-}) : "object" == typeof exports && (module.exports = window);
+}); else if (typeof exports === "object") module.exports = window;

+ 134 - 63
dist/inputmask/inputmask.date.extensions.js

@@ -3,13 +3,20 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-!function(factory) {
-    "function" == typeof define && define.amd ? define([ "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask")) : factory(window.Inputmask);
-}(function(Inputmask) {
-    var $ = Inputmask.dependencyLib, formatCode = {
+(function(factory) {
+    if (typeof define === "function" && define.amd) {
+        define([ "./inputmask" ], factory);
+    } else if (typeof exports === "object") {
+        module.exports = factory(require("./inputmask"));
+    } else {
+        factory(window.Inputmask);
+    }
+})(function(Inputmask) {
+    var $ = Inputmask.dependencyLib;
+    var formatCode = {
         d: [ "[1-9]|[12][0-9]|3[01]", Date.prototype.setDate, "day", Date.prototype.getDate ],
         dd: [ "0[1-9]|[12][0-9]|3[01]", Date.prototype.setDate, "day", function() {
             return pad(Date.prototype.getDate.call(this), 2);
@@ -70,72 +77,125 @@
     function getTokenizer(opts) {
         if (!opts.tokenizer) {
             var tokens = [];
-            for (var ndx in formatCode) -1 === tokens.indexOf(ndx[0]) && tokens.push(ndx[0]);
-            opts.tokenizer = "(" + tokens.join("+|") + ")+?|.", opts.tokenizer = new RegExp(opts.tokenizer, "g");
+            for (var ndx in formatCode) {
+                if (tokens.indexOf(ndx[0]) === -1) tokens.push(ndx[0]);
+            }
+            opts.tokenizer = "(" + tokens.join("+|") + ")+?|.";
+            opts.tokenizer = new RegExp(opts.tokenizer, "g");
         }
         return opts.tokenizer;
     }
+    function isValidDate(dateParts, currentResult) {
+        return !isFinite(dateParts.rawday) || dateParts.day == "29" && !isFinite(dateParts.rawyear) || new Date(dateParts.date.getFullYear(), isFinite(dateParts.rawmonth) ? dateParts.month : dateParts.date.getMonth() + 1, 0).getDate() >= dateParts.day ? currentResult : false;
+    }
+    function isDateInRange(dateParts, opts) {
+        var result = true;
+        if (opts.min) {
+            if (dateParts["rawyear"]) {
+                var rawYear = dateParts["rawyear"].replace(/[^0-9]/g, ""), minYear = opts.min.year.substr(0, rawYear.length);
+                result = minYear <= rawYear;
+            }
+            if (dateParts["year"] === dateParts["rawyear"]) {
+                if (opts.min.date.getTime() === opts.min.date.getTime()) {
+                    result = opts.min.date.getTime() <= dateParts.date.getTime();
+                }
+            }
+        }
+        if (result && opts.max && opts.max.date.getTime() === opts.max.date.getTime()) {
+            result = opts.max.date.getTime() >= dateParts.date.getTime();
+        }
+        return result;
+    }
     function parse(format, dateObjValue, opts, raw) {
-        for (var match, mask = ""; match = getTokenizer(opts).exec(format); ) {
-            if (void 0 === dateObjValue) if (formatCode[match[0]]) mask += "(" + formatCode[match[0]][0] + ")"; else switch (match[0]) {
-              case "[":
-                mask += "(";
-                break;
+        var mask = "", match;
+        while (match = getTokenizer(opts).exec(format)) {
+            if (dateObjValue === undefined) {
+                if (formatCode[match[0]]) {
+                    mask += "(" + formatCode[match[0]][0] + ")";
+                } else {
+                    switch (match[0]) {
+                      case "[":
+                        mask += "(";
+                        break;
 
-              case "]":
-                mask += ")?";
-                break;
+                      case "]":
+                        mask += ")?";
+                        break;
 
-              default:
-                mask += Inputmask.escapeRegex(match[0]);
-            } else if (formatCode[match[0]]) if (!0 !== raw && formatCode[match[0]][3]) mask += formatCode[match[0]][3].call(dateObjValue.date); else formatCode[match[0]][2] ? mask += dateObjValue["raw" + formatCode[match[0]][2]] : mask += match[0]; else mask += match[0];
+                      default:
+                        mask += Inputmask.escapeRegex(match[0]);
+                    }
+                }
+            } else {
+                if (formatCode[match[0]]) {
+                    if (raw !== true && formatCode[match[0]][3]) {
+                        var getFn = formatCode[match[0]][3];
+                        mask += getFn.call(dateObjValue.date);
+                    } else if (formatCode[match[0]][2]) mask += dateObjValue["raw" + formatCode[match[0]][2]]; else mask += match[0];
+                } else mask += match[0];
+            }
         }
         return mask;
     }
     function pad(val, len) {
-        for (val = String(val), len = len || 2; val.length < len; ) val = "0" + val;
+        val = String(val);
+        len = len || 2;
+        while (val.length < len) val = "0" + val;
         return val;
     }
     function analyseMask(maskString, format, opts) {
-        var targetProp, match, dateOperation, targetValidator, dateObj = {
+        var dateObj = {
             date: new Date(1, 0, 1)
-        }, mask = maskString;
+        }, targetProp, mask = maskString, match, dateOperation, targetValidator;
         function extendProperty(value) {
             var correctedValue;
             if (opts.min && opts.min[targetProp] || opts.max && opts.max[targetProp]) {
                 var min = opts.min && opts.min[targetProp] || opts.max[targetProp], max = opts.max && opts.max[targetProp] || opts.min[targetProp];
-                for (correctedValue = value.replace(/[^0-9]/g, ""), correctedValue += (min.indexOf(correctedValue) < max.indexOf(correctedValue) ? max : min).toString().substr(correctedValue.length); !new RegExp(targetValidator).test(correctedValue); ) correctedValue--;
+                correctedValue = value.replace(/[^0-9]/g, "");
+                correctedValue += (min.indexOf(correctedValue) < max.indexOf(correctedValue) ? max : min).toString().substr(correctedValue.length);
+                while (!new RegExp(targetValidator).test(correctedValue)) {
+                    correctedValue--;
+                }
             } else correctedValue = value.replace(/[^0-9]/g, "0");
             return correctedValue;
         }
         function setValue(dateObj, value, opts) {
-            dateObj[targetProp] = extendProperty(value), dateObj["raw" + targetProp] = value, 
-            void 0 !== dateOperation && dateOperation.call(dateObj.date, "month" == targetProp ? parseInt(dateObj[targetProp]) - 1 : dateObj[targetProp]);
+            dateObj[targetProp] = extendProperty(value);
+            dateObj["raw" + targetProp] = value;
+            if (dateOperation !== undefined) dateOperation.call(dateObj.date, targetProp == "month" ? parseInt(dateObj[targetProp]) - 1 : dateObj[targetProp]);
         }
-        if ("string" == typeof mask) {
-            for (;match = getTokenizer(opts).exec(format); ) {
+        if (typeof mask === "string") {
+            while (match = getTokenizer(opts).exec(format)) {
                 var value = mask.slice(0, match[0].length);
-                formatCode.hasOwnProperty(match[0]) && (targetValidator = formatCode[match[0]][0], 
-                targetProp = formatCode[match[0]][2], dateOperation = formatCode[match[0]][1], setValue(dateObj, value)), 
+                if (formatCode.hasOwnProperty(match[0])) {
+                    targetValidator = formatCode[match[0]][0];
+                    targetProp = formatCode[match[0]][2];
+                    dateOperation = formatCode[match[0]][1];
+                    setValue(dateObj, value, opts);
+                }
                 mask = mask.slice(value.length);
             }
             return dateObj;
+        } else if (mask && typeof mask === "object" && mask.hasOwnProperty("date")) {
+            return mask;
         }
-        if (mask && "object" == typeof mask && mask.hasOwnProperty("date")) return mask;
+        return undefined;
     }
-    return Inputmask.extendAliases({
+    Inputmask.extendAliases({
         datetime: {
             mask: function(opts) {
-                return formatCode.S = opts.i18n.ordinalSuffix.join("|"), opts.inputFormat = formatAlias[opts.inputFormat] || opts.inputFormat, 
-                opts.displayFormat = formatAlias[opts.displayFormat] || opts.displayFormat || opts.inputFormat, 
-                opts.outputFormat = formatAlias[opts.outputFormat] || opts.outputFormat || opts.inputFormat, 
-                opts.placeholder = "" !== opts.placeholder ? opts.placeholder : opts.inputFormat.replace(/[\[\]]/, ""), 
-                opts.regex = parse(opts.inputFormat, void 0, opts), null;
+                formatCode.S = opts.i18n.ordinalSuffix.join("|");
+                opts.inputFormat = formatAlias[opts.inputFormat] || opts.inputFormat;
+                opts.displayFormat = formatAlias[opts.displayFormat] || opts.displayFormat || opts.inputFormat;
+                opts.outputFormat = formatAlias[opts.outputFormat] || opts.outputFormat || opts.inputFormat;
+                opts.placeholder = opts.placeholder !== "" ? opts.placeholder : opts.inputFormat.replace(/[\[\]]/, "");
+                opts.regex = parse(opts.inputFormat, undefined, opts);
+                return null;
             },
             placeholder: "",
             inputFormat: "isoDateTime",
-            displayFormat: void 0,
-            outputFormat: void 0,
+            displayFormat: undefined,
+            outputFormat: undefined,
             min: null,
             max: null,
             i18n: {
@@ -144,42 +204,53 @@
                 ordinalSuffix: [ "st", "nd", "rd", "th" ]
             },
             postValidation: function(buffer, pos, currentResult, opts) {
-                opts.min = analyseMask(opts.min, opts.inputFormat, opts), opts.max = analyseMask(opts.max, opts.inputFormat, opts);
+                opts.min = analyseMask(opts.min, opts.inputFormat, opts);
+                opts.max = analyseMask(opts.max, opts.inputFormat, opts);
                 var result = currentResult, dateParts = analyseMask(buffer.join(""), opts.inputFormat, opts);
-                return result && dateParts.date.getTime() == dateParts.date.getTime() && (result = (result = function(dateParts, currentResult) {
-                    return (!isFinite(dateParts.rawday) || "29" == dateParts.day && !isFinite(dateParts.rawyear) || new Date(dateParts.date.getFullYear(), isFinite(dateParts.rawmonth) ? dateParts.month : dateParts.date.getMonth() + 1, 0).getDate() >= dateParts.day) && currentResult;
-                }(dateParts, result)) && function(dateParts, opts) {
-                    var result = !0;
-                    if (opts.min) {
-                        if (dateParts.rawyear) {
-                            var rawYear = dateParts.rawyear.replace(/[^0-9]/g, "");
-                            result = opts.min.year.substr(0, rawYear.length) <= rawYear;
+                if (result && dateParts.date.getTime() === dateParts.date.getTime()) {
+                    result = isValidDate(dateParts, result);
+                    result = result && isDateInRange(dateParts, opts);
+                }
+                if (pos && result && currentResult.pos !== pos) {
+                    return {
+                        buffer: parse(opts.inputFormat, dateParts, opts),
+                        refreshFromBuffer: {
+                            start: pos,
+                            end: currentResult.pos
                         }
-                        dateParts.year === dateParts.rawyear && opts.min.date.getTime() == opts.min.date.getTime() && (result = opts.min.date.getTime() <= dateParts.date.getTime());
-                    }
-                    return result && opts.max && opts.max.date.getTime() == opts.max.date.getTime() && (result = opts.max.date.getTime() >= dateParts.date.getTime()), 
-                    result;
-                }(dateParts, opts)), pos && result && currentResult.pos !== pos ? {
-                    buffer: parse(opts.inputFormat, dateParts, opts),
-                    refreshFromBuffer: {
-                        start: pos,
-                        end: currentResult.pos
-                    }
-                } : result;
+                    };
+                }
+                return result;
             },
             onKeyDown: function(e, buffer, caretPos, opts) {
+                var input = this;
                 if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
-                    for (var match, today = new Date(), date = ""; match = getTokenizer(opts).exec(opts.inputFormat); ) "d" === match[0].charAt(0) ? date += pad(today.getDate(), match[0].length) : "m" === match[0].charAt(0) ? date += pad(today.getMonth() + 1, match[0].length) : "yyyy" === match[0] ? date += today.getFullYear().toString() : "y" === match[0].charAt(0) && (date += pad(today.getYear(), match[0].length));
-                    this.inputmask._valueSet(date), $(this).trigger("setvalue");
+                    var today = new Date(), match, date = "";
+                    while (match = getTokenizer(opts).exec(opts.inputFormat)) {
+                        if (match[0].charAt(0) === "d") {
+                            date += pad(today.getDate(), match[0].length);
+                        } else if (match[0].charAt(0) === "m") {
+                            date += pad(today.getMonth() + 1, match[0].length);
+                        } else if (match[0] === "yyyy") {
+                            date += today.getFullYear().toString();
+                        } else if (match[0].charAt(0) === "y") {
+                            date += pad(today.getYear(), match[0].length);
+                        }
+                    }
+                    input.inputmask._valueSet(date);
+                    $(input).trigger("setvalue");
                 }
             },
             onUnMask: function(maskedValue, unmaskedValue, opts) {
-                return parse(opts.outputFormat, analyseMask(maskedValue, opts.inputFormat, opts), opts, !0);
+                return parse(opts.outputFormat, analyseMask(maskedValue, opts.inputFormat, opts), opts, true);
             },
             casing: function(elem, test, pos, validPositions) {
-                return 0 == test.nativeDef.indexOf("[ap]") ? elem.toLowerCase() : 0 == test.nativeDef.indexOf("[AP]") ? elem.toUpperCase() : elem;
+                if (test.nativeDef.indexOf("[ap]") == 0) return elem.toLowerCase();
+                if (test.nativeDef.indexOf("[AP]") == 0) return elem.toUpperCase();
+                return elem;
             },
-            insertMode: !1
+            insertMode: false
         }
-    }), Inputmask;
+    });
+    return Inputmask;
 });

+ 28 - 15
dist/inputmask/inputmask.extensions.js

@@ -3,13 +3,19 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-!function(factory) {
-    "function" == typeof define && define.amd ? define([ "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask")) : factory(window.Inputmask);
-}(function(Inputmask) {
-    return Inputmask.extendDefinitions({
+(function(factory) {
+    if (typeof define === "function" && define.amd) {
+        define([ "./inputmask" ], factory);
+    } else if (typeof exports === "object") {
+        module.exports = factory(require("./inputmask"));
+    } else {
+        factory(window.Inputmask);
+    }
+})(function(Inputmask) {
+    Inputmask.extendDefinitions({
         A: {
             validator: "[A-Za-zА-яЁёÀ-ÿµ]",
             casing: "upper"
@@ -22,22 +28,27 @@
             validator: "[0-9A-Fa-f]",
             casing: "upper"
         }
-    }), Inputmask.extendAliases({
+    });
+    Inputmask.extendAliases({
         cssunit: {
             regex: "[+-]?[0-9]+\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)"
         },
         url: {
             regex: "(https?|ftp)//.*",
-            autoUnmask: !1
+            autoUnmask: false
         },
         ip: {
             mask: "i[i[i]].i[i[i]].i[i[i]].i[i[i]]",
             definitions: {
                 i: {
                     validator: function(chrs, maskset, pos, strict, opts) {
-                        return -1 < pos - 1 && "." !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs, 
-                        chrs = -1 < pos - 2 && "." !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : "0" + chrs) : chrs = "00" + chrs, 
-                        new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs);
+                        if (pos - 1 > -1 && maskset.buffer[pos - 1] !== ".") {
+                            chrs = maskset.buffer[pos - 1] + chrs;
+                            if (pos - 2 > -1 && maskset.buffer[pos - 2] !== ".") {
+                                chrs = maskset.buffer[pos - 2] + chrs;
+                            } else chrs = "0" + chrs;
+                        } else chrs = "00" + chrs;
+                        return new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs);
                     }
                 }
             },
@@ -48,10 +59,11 @@
         },
         email: {
             mask: "*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]",
-            greedy: !1,
+            greedy: false,
             casing: "lower",
             onBeforePaste: function(pastedValue, opts) {
-                return (pastedValue = pastedValue.toLowerCase()).replace("mailto:", "");
+                pastedValue = pastedValue.toLowerCase();
+                return pastedValue.replace("mailto:", "");
             },
             definitions: {
                 "*": {
@@ -77,8 +89,9 @@
                     casing: "upper"
                 }
             },
-            clearIncomplete: !0,
-            autoUnmask: !0
+            clearIncomplete: true,
+            autoUnmask: true
         }
-    }), Inputmask;
+    });
+    return Inputmask;
 });

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


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


+ 81 - 50
dist/inputmask/jquery.inputmask.js

@@ -3,64 +3,95 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-!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($, Inputmask) {
-    return void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) {
-        var nptmask, input = this[0];
-        if (void 0 === options && (options = {}), "string" == typeof fn) switch (fn) {
-          case "unmaskedvalue":
-            return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();
+(function(factory) {
+    if (typeof define === "function" && define.amd) {
+        define([ "jquery", "./inputmask" ], factory);
+    } else if (typeof exports === "object") {
+        module.exports = factory(require("jquery"), require("./inputmask"));
+    } else {
+        factory(jQuery, window.Inputmask);
+    }
+})(function($, Inputmask) {
+    if ($.fn.inputmask === undefined) {
+        $.fn.inputmask = function(fn, options) {
+            var nptmask, input = this[0];
+            if (options === undefined) options = {};
+            if (typeof fn === "string") {
+                switch (fn) {
+                  case "unmaskedvalue":
+                    return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();
 
-          case "remove":
-            return this.each(function() {
-                this.inputmask && this.inputmask.remove();
-            });
+                  case "remove":
+                    return this.each(function() {
+                        if (this.inputmask) this.inputmask.remove();
+                    });
 
-          case "getemptymask":
-            return input && input.inputmask ? input.inputmask.getemptymask() : "";
+                  case "getemptymask":
+                    return input && input.inputmask ? input.inputmask.getemptymask() : "";
 
-          case "hasMaskedValue":
-            return !(!input || !input.inputmask) && input.inputmask.hasMaskedValue();
+                  case "hasMaskedValue":
+                    return input && input.inputmask ? input.inputmask.hasMaskedValue() : false;
 
-          case "isComplete":
-            return !input || !input.inputmask || input.inputmask.isComplete();
+                  case "isComplete":
+                    return input && input.inputmask ? input.inputmask.isComplete() : true;
 
-          case "getmetadata":
-            return input && input.inputmask ? input.inputmask.getmetadata() : void 0;
+                  case "getmetadata":
+                    return input && input.inputmask ? input.inputmask.getmetadata() : undefined;
 
-          case "setvalue":
-            Inputmask.setValue(input, options);
-            break;
+                  case "setvalue":
+                    Inputmask.setValue(input, options);
+                    break;
 
-          case "option":
-            if ("string" != typeof options) return this.each(function() {
-                if (void 0 !== this.inputmask) return this.inputmask.option(options);
-            });
-            if (input && void 0 !== input.inputmask) return input.inputmask.option(options);
-            break;
+                  case "option":
+                    if (typeof options === "string") {
+                        if (input && input.inputmask !== undefined) {
+                            return input.inputmask.option(options);
+                        }
+                    } else {
+                        return this.each(function() {
+                            if (this.inputmask !== undefined) {
+                                return this.inputmask.option(options);
+                            }
+                        });
+                    }
+                    break;
 
-          default:
-            return options.alias = fn, nptmask = new Inputmask(options), this.each(function() {
-                nptmask.mask(this);
-            });
-        } else {
-            if (Array.isArray(fn)) return options.alias = fn, nptmask = new Inputmask(options), 
-            this.each(function() {
-                nptmask.mask(this);
-            });
-            if ("object" == typeof fn) return nptmask = new Inputmask(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function() {
-                if (void 0 !== this.inputmask) return this.inputmask.option(fn);
-                nptmask.mask(this);
-            }) : this.each(function() {
-                nptmask.mask(this);
-            });
-            if (void 0 === fn) return this.each(function() {
-                (nptmask = new Inputmask(options)).mask(this);
-            });
-        }
-    }), $.fn.inputmask;
+                  default:
+                    options.alias = fn;
+                    nptmask = new Inputmask(options);
+                    return this.each(function() {
+                        nptmask.mask(this);
+                    });
+                }
+            } else if (Array.isArray(fn)) {
+                options.alias = fn;
+                nptmask = new Inputmask(options);
+                return this.each(function() {
+                    nptmask.mask(this);
+                });
+            } else if (typeof fn == "object") {
+                nptmask = new Inputmask(fn);
+                if (fn.mask === undefined && fn.alias === undefined) {
+                    return this.each(function() {
+                        if (this.inputmask !== undefined) {
+                            return this.inputmask.option(fn);
+                        } else nptmask.mask(this);
+                    });
+                } else {
+                    return this.each(function() {
+                        nptmask.mask(this);
+                    });
+                }
+            } else if (fn === undefined) {
+                return this.each(function() {
+                    nptmask = new Inputmask(options);
+                    nptmask.mask(this);
+                });
+            }
+        };
+    }
+    return $.fn.inputmask;
 });

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


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


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


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

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.1-beta.37
+* Version: 4.0.1-beta.38
 */
 
-!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e(require("jquery")):window.dependencyLib=e(jQuery)}(function(e){return e});
+(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof exports==="object"){module.exports=factory(require("jquery"))}else{window.dependencyLib=factory(jQuery)}})(function($){return $});

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


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

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

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

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

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


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


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


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


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


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


+ 1 - 1
package.json

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

+ 1 - 1
qunit/index.js

@@ -12,7 +12,7 @@ import "../js/inputmask.numeric.extensions";
 // import "../js/phone-codes/phone";
 import "../js/jquery.inputmask";
 
-import Inputmask from "../js/inputmask";
+import Inputmask from "../dist/inputmask/inputmask";
 import dependencyLib from "../js/dependencyLibs/inputmask.dependencyLib";
 import jQuery from "jquery";