Browse Source

refix Mask On Divs #734

Robin Herbots 9 years ago
parent
commit
ec2b2f36c4

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "jquery.inputmask",
-  "version": "3.3.4-126",
+  "version": "3.3.4-128",
   "main": [
 	  "./dist/inputmask/inputmask.dependencyLib",
 	  "./dist/inputmask/inputmask",

+ 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.3.4-126",
+	"version": "3.3.4-128",
 	"keywords": [
 		"jquery",
 		"plugins",

+ 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.3.4-126",
+  "version": "3.3.4-128",
   "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 @@
 * https://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2016 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.4-126
+* Version: 3.3.4-128
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);

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

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2016 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.4-126
+* Version: 3.3.4-128
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define("inputmask.dependencyLib", [ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : factory(jQuery);

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

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

+ 86 - 85
dist/inputmask/inputmask.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2016 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.4-126
+* Version: 3.3.4-128
 */
 !function(factory) {
     "function" == typeof define && define.amd ? define("inputmask", [ "inputmask.dependencyLib" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib")) : factory(window.dependencyLib || jQuery);
@@ -652,84 +652,6 @@
                 return complete;
             }
         }
-        function patchValueProperty(npt) {
-            function patchValhook(type) {
-                if ($.valHooks && (void 0 === $.valHooks[type] || $.valHooks[type].inputmaskpatch !== !0)) {
-                    var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {
-                        return elem.value;
-                    }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {
-                        return elem.value = value, elem;
-                    };
-                    $.valHooks[type] = {
-                        get: function(elem) {
-                            if (elem.inputmask) {
-                                if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();
-                                var result = valhookGet(elem);
-                                return getLastValidPosition(void 0, void 0, elem.inputmask.maskset.validPositions) !== -1 || opts.nullable !== !0 ? result : "";
-                            }
-                            return valhookGet(elem);
-                        },
-                        set: function(elem, value) {
-                            var result, $elem = $(elem);
-                            return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue"), 
-                            result;
-                        },
-                        inputmaskpatch: !0
-                    };
-                }
-            }
-            function getter() {
-                return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : getLastValidPosition() !== -1 || opts.nullable !== !0 ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this);
-            }
-            function setter(value) {
-                valueSet.call(this, value), this.inputmask && $(this).trigger("setvalue");
-            }
-            function installNativeValueSetFallback(npt) {
-                EventRuler.on(npt, "mouseenter", function(event) {
-                    var $input = $(this), input = this, value = input.inputmask._valueGet();
-                    value !== getBuffer().join("") && $input.trigger("setvalue");
-                });
-            }
-            var valueGet, valueSet;
-            if (!npt.inputmask.__valueGet) {
-                if (opts.noValuePatching !== !0) {
-                    if (Object.getOwnPropertyDescriptor) {
-                        "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" == typeof "test".__proto__ ? function(object) {
-                            return object.__proto__;
-                        } : function(object) {
-                            return object.constructor.prototype;
-                        });
-                        var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : void 0;
-                        valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, 
-                        valueSet = valueProperty.set, Object.defineProperty(npt, "value", {
-                            get: getter,
-                            set: setter,
-                            configurable: !0
-                        })) : "INPUT" !== npt.tagName && (valueGet = function() {
-                            return this.textContent;
-                        }, valueSet = function(value) {
-                            this.textContent = value;
-                        }, Object.defineProperty(npt, "value", {
-                            get: getter,
-                            set: setter,
-                            configurable: !0
-                        }));
-                    } else document.__lookupGetter__ && npt.__lookupGetter__("value") && (valueGet = npt.__lookupGetter__("value"), 
-                    valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter), 
-                    npt.__defineSetter__("value", setter));
-                    npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;
-                }
-                npt.inputmask._valueGet = function(overruleRTL) {
-                    return isRTL && overruleRTL !== !0 ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el);
-                }, npt.inputmask._valueSet = function(value, overruleRTL) {
-                    valueSet.call(this.el, null === value || void 0 === value ? "" : overruleRTL !== !0 && isRTL ? value.split("").reverse().join("") : value);
-                }, void 0 === valueGet && (valueGet = function() {
-                    return this.value;
-                }, valueSet = function(value) {
-                    this.value = value;
-                }, patchValhook(npt.type), installNativeValueSetFallback(npt));
-            }
-        }
         function handleRemove(input, k, pos, strict) {
             function generalize() {
                 if (opts.keepStatic) {
@@ -826,19 +748,98 @@
         }
         function mask(elem) {
             function isElementTypeSupported(input, opts) {
+                function patchValueProperty(npt) {
+                    function patchValhook(type) {
+                        if ($.valHooks && (void 0 === $.valHooks[type] || $.valHooks[type].inputmaskpatch !== !0)) {
+                            var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {
+                                return elem.value;
+                            }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {
+                                return elem.value = value, elem;
+                            };
+                            $.valHooks[type] = {
+                                get: function(elem) {
+                                    if (elem.inputmask) {
+                                        if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();
+                                        var result = valhookGet(elem);
+                                        return getLastValidPosition(void 0, void 0, elem.inputmask.maskset.validPositions) !== -1 || opts.nullable !== !0 ? result : "";
+                                    }
+                                    return valhookGet(elem);
+                                },
+                                set: function(elem, value) {
+                                    var result, $elem = $(elem);
+                                    return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue"), 
+                                    result;
+                                },
+                                inputmaskpatch: !0
+                            };
+                        }
+                    }
+                    function getter() {
+                        return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : getLastValidPosition() !== -1 || opts.nullable !== !0 ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this);
+                    }
+                    function setter(value) {
+                        valueSet.call(this, value), this.inputmask && $(this).trigger("setvalue");
+                    }
+                    function installNativeValueSetFallback(npt) {
+                        EventRuler.on(npt, "mouseenter", function(event) {
+                            var $input = $(this), input = this, value = input.inputmask._valueGet();
+                            value !== getBuffer().join("") && $input.trigger("setvalue");
+                        });
+                    }
+                    var valueGet, valueSet;
+                    if (!npt.inputmask.__valueGet) {
+                        if (opts.noValuePatching !== !0) {
+                            if (Object.getOwnPropertyDescriptor) {
+                                "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" == typeof "test".__proto__ ? function(object) {
+                                    return object.__proto__;
+                                } : function(object) {
+                                    return object.constructor.prototype;
+                                });
+                                var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : void 0;
+                                valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, 
+                                valueSet = valueProperty.set, Object.defineProperty(npt, "value", {
+                                    get: getter,
+                                    set: setter,
+                                    configurable: !0
+                                })) : "INPUT" !== npt.tagName && (valueGet = function() {
+                                    return this.textContent;
+                                }, valueSet = function(value) {
+                                    this.textContent = value;
+                                }, Object.defineProperty(npt, "value", {
+                                    get: getter,
+                                    set: setter,
+                                    configurable: !0
+                                }));
+                            } else document.__lookupGetter__ && npt.__lookupGetter__("value") && (valueGet = npt.__lookupGetter__("value"), 
+                            valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter), 
+                            npt.__defineSetter__("value", setter));
+                            npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;
+                        }
+                        npt.inputmask._valueGet = function(overruleRTL) {
+                            return isRTL && overruleRTL !== !0 ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el);
+                        }, npt.inputmask._valueSet = function(value, overruleRTL) {
+                            valueSet.call(this.el, null === value || void 0 === value ? "" : overruleRTL !== !0 && isRTL ? value.split("").reverse().join("") : value);
+                        }, void 0 === valueGet && (valueGet = function() {
+                            return this.value;
+                        }, valueSet = function(value) {
+                            this.value = value;
+                        }, patchValhook(npt.type), installNativeValueSetFallback(npt));
+                    }
+                }
                 var elementType = input.getAttribute("type"), isSupported = "INPUT" === input.tagName && $.inArray(elementType, opts.supportsInputType) !== -1 || input.isContentEditable || "TEXTAREA" === input.tagName;
-                if (!isSupported && "INPUT" === input.tagName) {
+                if (!isSupported) if ("INPUT" === input.tagName) {
                     var el = document.createElement("input");
                     el.setAttribute("type", elementType), isSupported = "text" === el.type, el = null;
-                }
-                return isSupported;
+                } else isSupported = "partial";
+                return isSupported !== !1 && patchValueProperty(input), isSupported;
             }
-            if (isElementTypeSupported(elem, opts) && (el = elem, $el = $(el), ("rtl" === el.dir || opts.rightAlign) && (el.style.textAlign = "right"), 
+            var isSupported = isElementTypeSupported(elem, opts);
+            if (isSupported !== !1 && (el = elem, $el = $(el), ("rtl" === el.dir || opts.rightAlign) && (el.style.textAlign = "right"), 
             ("rtl" === el.dir || opts.numericInput) && (el.dir = "ltr", el.removeAttribute("dir"), 
             el.inputmask.isRTL = !0, isRTL = !0), opts.colorMask === !0 && initializeColorMask(el), 
             android && (el.hasOwnProperty("inputmode") && (el.inputmode = opts.inputmode, el.setAttribute("inputmode", opts.inputmode)), 
             "rtfm" === opts.androidHack && (opts.colorMask !== !0 && initializeColorMask(el), 
-            el.type = "password")), EventRuler.off(el), patchValueProperty(el), EventRuler.on(el, "submit", EventHandlers.submitEvent), 
+            el.type = "password")), EventRuler.off(el), isSupported === !0 && (EventRuler.on(el, "submit", EventHandlers.submitEvent), 
             EventRuler.on(el, "reset", EventHandlers.resetEvent), EventRuler.on(el, "mouseenter", EventHandlers.mouseenterEvent), 
             EventRuler.on(el, "blur", EventHandlers.blurEvent), EventRuler.on(el, "focus", EventHandlers.focusEvent), 
             EventRuler.on(el, "mouseleave", EventHandlers.mouseleaveEvent), opts.colorMask !== !0 && EventRuler.on(el, "click", EventHandlers.clickEvent), 
@@ -849,7 +850,7 @@
             opts.inputEventOnly !== !0 && (EventRuler.on(el, "keydown", EventHandlers.keydownEvent), 
             EventRuler.on(el, "keypress", EventHandlers.keypressEvent)), EventRuler.on(el, "compositionstart", $.noop), 
             EventRuler.on(el, "compositionupdate", $.noop), EventRuler.on(el, "compositionend", $.noop), 
-            EventRuler.on(el, "keyup", $.noop), EventRuler.on(el, "input", EventHandlers.inputFallBackEvent), 
+            EventRuler.on(el, "keyup", $.noop), EventRuler.on(el, "input", EventHandlers.inputFallBackEvent)), 
             EventRuler.on(el, "setvalue", EventHandlers.setValueEvent), getBufferTemplate(), 
             "" !== el.inputmask._valueGet() || opts.clearMaskOnLostFocus === !1 || document.activeElement === el)) {
                 var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(el.inputmask._valueGet(), opts) || el.inputmask._valueGet() : el.inputmask._valueGet();

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

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

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

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

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

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

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

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2016 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.4-126
+* Version: 3.3.4-128
 */
 !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);

+ 86 - 85
dist/jquery.inputmask.bundle.js

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2016 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 3.3.4-126
+* Version: 3.3.4-128
 */
 !function($) {
     function Inputmask(alias, options) {
@@ -650,84 +650,6 @@
                 return complete;
             }
         }
-        function patchValueProperty(npt) {
-            function patchValhook(type) {
-                if ($.valHooks && (void 0 === $.valHooks[type] || $.valHooks[type].inputmaskpatch !== !0)) {
-                    var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {
-                        return elem.value;
-                    }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {
-                        return elem.value = value, elem;
-                    };
-                    $.valHooks[type] = {
-                        get: function(elem) {
-                            if (elem.inputmask) {
-                                if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();
-                                var result = valhookGet(elem);
-                                return getLastValidPosition(void 0, void 0, elem.inputmask.maskset.validPositions) !== -1 || opts.nullable !== !0 ? result : "";
-                            }
-                            return valhookGet(elem);
-                        },
-                        set: function(elem, value) {
-                            var result, $elem = $(elem);
-                            return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue"), 
-                            result;
-                        },
-                        inputmaskpatch: !0
-                    };
-                }
-            }
-            function getter() {
-                return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : getLastValidPosition() !== -1 || opts.nullable !== !0 ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this);
-            }
-            function setter(value) {
-                valueSet.call(this, value), this.inputmask && $(this).trigger("setvalue");
-            }
-            function installNativeValueSetFallback(npt) {
-                EventRuler.on(npt, "mouseenter", function(event) {
-                    var $input = $(this), input = this, value = input.inputmask._valueGet();
-                    value !== getBuffer().join("") && $input.trigger("setvalue");
-                });
-            }
-            var valueGet, valueSet;
-            if (!npt.inputmask.__valueGet) {
-                if (opts.noValuePatching !== !0) {
-                    if (Object.getOwnPropertyDescriptor) {
-                        "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" == typeof "test".__proto__ ? function(object) {
-                            return object.__proto__;
-                        } : function(object) {
-                            return object.constructor.prototype;
-                        });
-                        var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : void 0;
-                        valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, 
-                        valueSet = valueProperty.set, Object.defineProperty(npt, "value", {
-                            get: getter,
-                            set: setter,
-                            configurable: !0
-                        })) : "INPUT" !== npt.tagName && (valueGet = function() {
-                            return this.textContent;
-                        }, valueSet = function(value) {
-                            this.textContent = value;
-                        }, Object.defineProperty(npt, "value", {
-                            get: getter,
-                            set: setter,
-                            configurable: !0
-                        }));
-                    } else document.__lookupGetter__ && npt.__lookupGetter__("value") && (valueGet = npt.__lookupGetter__("value"), 
-                    valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter), 
-                    npt.__defineSetter__("value", setter));
-                    npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;
-                }
-                npt.inputmask._valueGet = function(overruleRTL) {
-                    return isRTL && overruleRTL !== !0 ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el);
-                }, npt.inputmask._valueSet = function(value, overruleRTL) {
-                    valueSet.call(this.el, null === value || void 0 === value ? "" : overruleRTL !== !0 && isRTL ? value.split("").reverse().join("") : value);
-                }, void 0 === valueGet && (valueGet = function() {
-                    return this.value;
-                }, valueSet = function(value) {
-                    this.value = value;
-                }, patchValhook(npt.type), installNativeValueSetFallback(npt));
-            }
-        }
         function handleRemove(input, k, pos, strict) {
             function generalize() {
                 if (opts.keepStatic) {
@@ -824,19 +746,98 @@
         }
         function mask(elem) {
             function isElementTypeSupported(input, opts) {
+                function patchValueProperty(npt) {
+                    function patchValhook(type) {
+                        if ($.valHooks && (void 0 === $.valHooks[type] || $.valHooks[type].inputmaskpatch !== !0)) {
+                            var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {
+                                return elem.value;
+                            }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {
+                                return elem.value = value, elem;
+                            };
+                            $.valHooks[type] = {
+                                get: function(elem) {
+                                    if (elem.inputmask) {
+                                        if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();
+                                        var result = valhookGet(elem);
+                                        return getLastValidPosition(void 0, void 0, elem.inputmask.maskset.validPositions) !== -1 || opts.nullable !== !0 ? result : "";
+                                    }
+                                    return valhookGet(elem);
+                                },
+                                set: function(elem, value) {
+                                    var result, $elem = $(elem);
+                                    return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue"), 
+                                    result;
+                                },
+                                inputmaskpatch: !0
+                            };
+                        }
+                    }
+                    function getter() {
+                        return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : getLastValidPosition() !== -1 || opts.nullable !== !0 ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this);
+                    }
+                    function setter(value) {
+                        valueSet.call(this, value), this.inputmask && $(this).trigger("setvalue");
+                    }
+                    function installNativeValueSetFallback(npt) {
+                        EventRuler.on(npt, "mouseenter", function(event) {
+                            var $input = $(this), input = this, value = input.inputmask._valueGet();
+                            value !== getBuffer().join("") && $input.trigger("setvalue");
+                        });
+                    }
+                    var valueGet, valueSet;
+                    if (!npt.inputmask.__valueGet) {
+                        if (opts.noValuePatching !== !0) {
+                            if (Object.getOwnPropertyDescriptor) {
+                                "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" == typeof "test".__proto__ ? function(object) {
+                                    return object.__proto__;
+                                } : function(object) {
+                                    return object.constructor.prototype;
+                                });
+                                var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : void 0;
+                                valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, 
+                                valueSet = valueProperty.set, Object.defineProperty(npt, "value", {
+                                    get: getter,
+                                    set: setter,
+                                    configurable: !0
+                                })) : "INPUT" !== npt.tagName && (valueGet = function() {
+                                    return this.textContent;
+                                }, valueSet = function(value) {
+                                    this.textContent = value;
+                                }, Object.defineProperty(npt, "value", {
+                                    get: getter,
+                                    set: setter,
+                                    configurable: !0
+                                }));
+                            } else document.__lookupGetter__ && npt.__lookupGetter__("value") && (valueGet = npt.__lookupGetter__("value"), 
+                            valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter), 
+                            npt.__defineSetter__("value", setter));
+                            npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;
+                        }
+                        npt.inputmask._valueGet = function(overruleRTL) {
+                            return isRTL && overruleRTL !== !0 ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el);
+                        }, npt.inputmask._valueSet = function(value, overruleRTL) {
+                            valueSet.call(this.el, null === value || void 0 === value ? "" : overruleRTL !== !0 && isRTL ? value.split("").reverse().join("") : value);
+                        }, void 0 === valueGet && (valueGet = function() {
+                            return this.value;
+                        }, valueSet = function(value) {
+                            this.value = value;
+                        }, patchValhook(npt.type), installNativeValueSetFallback(npt));
+                    }
+                }
                 var elementType = input.getAttribute("type"), isSupported = "INPUT" === input.tagName && $.inArray(elementType, opts.supportsInputType) !== -1 || input.isContentEditable || "TEXTAREA" === input.tagName;
-                if (!isSupported && "INPUT" === input.tagName) {
+                if (!isSupported) if ("INPUT" === input.tagName) {
                     var el = document.createElement("input");
                     el.setAttribute("type", elementType), isSupported = "text" === el.type, el = null;
-                }
-                return isSupported;
+                } else isSupported = "partial";
+                return isSupported !== !1 && patchValueProperty(input), isSupported;
             }
-            if (isElementTypeSupported(elem, opts) && (el = elem, $el = $(el), ("rtl" === el.dir || opts.rightAlign) && (el.style.textAlign = "right"), 
+            var isSupported = isElementTypeSupported(elem, opts);
+            if (isSupported !== !1 && (el = elem, $el = $(el), ("rtl" === el.dir || opts.rightAlign) && (el.style.textAlign = "right"), 
             ("rtl" === el.dir || opts.numericInput) && (el.dir = "ltr", el.removeAttribute("dir"), 
             el.inputmask.isRTL = !0, isRTL = !0), opts.colorMask === !0 && initializeColorMask(el), 
             android && (el.hasOwnProperty("inputmode") && (el.inputmode = opts.inputmode, el.setAttribute("inputmode", opts.inputmode)), 
             "rtfm" === opts.androidHack && (opts.colorMask !== !0 && initializeColorMask(el), 
-            el.type = "password")), EventRuler.off(el), patchValueProperty(el), EventRuler.on(el, "submit", EventHandlers.submitEvent), 
+            el.type = "password")), EventRuler.off(el), isSupported === !0 && (EventRuler.on(el, "submit", EventHandlers.submitEvent), 
             EventRuler.on(el, "reset", EventHandlers.resetEvent), EventRuler.on(el, "mouseenter", EventHandlers.mouseenterEvent), 
             EventRuler.on(el, "blur", EventHandlers.blurEvent), EventRuler.on(el, "focus", EventHandlers.focusEvent), 
             EventRuler.on(el, "mouseleave", EventHandlers.mouseleaveEvent), opts.colorMask !== !0 && EventRuler.on(el, "click", EventHandlers.clickEvent), 
@@ -847,7 +848,7 @@
             opts.inputEventOnly !== !0 && (EventRuler.on(el, "keydown", EventHandlers.keydownEvent), 
             EventRuler.on(el, "keypress", EventHandlers.keypressEvent)), EventRuler.on(el, "compositionstart", $.noop), 
             EventRuler.on(el, "compositionupdate", $.noop), EventRuler.on(el, "compositionend", $.noop), 
-            EventRuler.on(el, "keyup", $.noop), EventRuler.on(el, "input", EventHandlers.inputFallBackEvent), 
+            EventRuler.on(el, "keyup", $.noop), EventRuler.on(el, "input", EventHandlers.inputFallBackEvent)), 
             EventRuler.on(el, "setvalue", EventHandlers.setValueEvent), getBufferTemplate(), 
             "" !== el.inputmask._valueGet() || opts.clearMaskOnLostFocus === !1 || document.activeElement === el)) {
                 var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(el.inputmask._valueGet(), opts) || el.inputmask._valueGet() : el.inputmask._valueGet();

File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.date.extensions.min.js


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

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

File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.extensions.min.js


File diff suppressed because it is too large
+ 3 - 3
dist/min/inputmask/inputmask.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.numeric.extensions.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.phone.extensions.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/inputmask.regex.extensions.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/min/inputmask/jquery.inputmask.min.js


File diff suppressed because it is too large
+ 3 - 3
dist/min/jquery.inputmask.bundle.min.js


+ 173 - 166
js/inputmask.js

@@ -1965,137 +1965,6 @@
 			return complete;
 		}
 
-		function patchValueProperty(npt) {
-			var valueGet;
-			var valueSet;
-
-			function patchValhook(type) {
-				if ($.valHooks && ($.valHooks[type] === undefined || $.valHooks[type].inputmaskpatch !== true)) {
-					var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function (elem) {
-						return elem.value;
-					};
-					var valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function (elem, value) {
-						elem.value = value;
-						return elem;
-					};
-
-					$.valHooks[type] = {
-						get: function (elem) {
-							if (elem.inputmask) {
-								if (elem.inputmask.opts.autoUnmask) {
-									return elem.inputmask.unmaskedvalue();
-								} else {
-									var result = valhookGet(elem);
-									return getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) !== -1 || opts.nullable !== true ? result : "";
-								}
-							} else return valhookGet(elem);
-						},
-						set: function (elem, value) {
-							var $elem = $(elem),
-								result;
-							result = valhookSet(elem, value);
-							if (elem.inputmask) {
-								$elem.trigger("setvalue");
-							}
-							return result;
-						},
-						inputmaskpatch: true
-					};
-				}
-			}
-
-			function getter() {
-				if (this.inputmask) {
-					return this.inputmask.opts.autoUnmask ?
-						this.inputmask.unmaskedvalue() :
-						(getLastValidPosition() !== -1 || opts.nullable !== true ?
-							(document.activeElement === this && opts.clearMaskOnLostFocus ?
-								(isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") :
-								valueGet.call(this)) :
-							"");
-				} else return valueGet.call(this);
-			}
-
-			function setter(value) {
-				valueSet.call(this, value);
-				if (this.inputmask) {
-					$(this).trigger("setvalue");
-				}
-			}
-
-			function installNativeValueSetFallback(npt) {
-				EventRuler.on(npt, "mouseenter", function (event) {
-					var $input = $(this),
-						input = this,
-						value = input.inputmask._valueGet();
-					if (value !== getBuffer().join("") /*&& getLastValidPosition() > 0*/) {
-						$input.trigger("setvalue");
-					}
-				});
-			}
-
-			if (!npt.inputmask.__valueGet) {
-				if (opts.noValuePatching !== true) {
-					if (Object.getOwnPropertyDescriptor) {
-						if (typeof Object.getPrototypeOf !== "function") {
-							Object.getPrototypeOf = typeof "test".__proto__ === "object" ? function (object) {
-								return object.__proto__;
-							} : function (object) {
-								return object.constructor.prototype;
-							};
-						}
-
-						var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : undefined;
-						if (valueProperty && valueProperty.get && valueProperty.set) {
-							valueGet = valueProperty.get;
-							valueSet = valueProperty.set;
-							Object.defineProperty(npt, "value", {
-								get: getter,
-								set: setter,
-								configurable: true
-							});
-						} else if (npt.tagName !== "INPUT") {
-							valueGet = function () {
-								return this.textContent;
-							};
-							valueSet = function (value) {
-								this.textContent = value;
-							};
-							Object.defineProperty(npt, "value", {
-								get: getter,
-								set: setter,
-								configurable: true
-							});
-						}
-					} else if (document.__lookupGetter__ && npt.__lookupGetter__("value")) {
-						valueGet = npt.__lookupGetter__("value");
-						valueSet = npt.__lookupSetter__("value");
-
-						npt.__defineGetter__("value", getter);
-						npt.__defineSetter__("value", setter);
-					}
-					npt.inputmask.__valueGet = valueGet; //store native property getter
-					npt.inputmask.__valueSet = valueSet; //store native property setter
-				}
-				npt.inputmask._valueGet = function (overruleRTL) {
-					return isRTL && overruleRTL !== true ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el);
-				};
-				npt.inputmask._valueSet = function (value, overruleRTL) { //null check is needed for IE8 => otherwise converts to "null"
-					valueSet.call(this.el, (value === null || value === undefined) ? "" : ((overruleRTL !== true && isRTL) ? value.split("").reverse().join("") : value));
-				};
-
-				if (valueGet === undefined) { //jquery.val fallback
-					valueGet = function () {
-						return this.value;
-					};
-					valueSet = function (value) {
-						this.value = value;
-					};
-					patchValhook(npt.type);
-					installNativeValueSetFallback(npt);
-				}
-			}
-		}
 
 		function handleRemove(input, k, pos, strict) {
 			function generalize() {
@@ -2807,18 +2676,156 @@
 
 		function mask(elem) {
 			function isElementTypeSupported(input, opts) {
+				function patchValueProperty(npt) {
+					var valueGet;
+					var valueSet;
+
+					function patchValhook(type) {
+						if ($.valHooks && ($.valHooks[type] === undefined || $.valHooks[type].inputmaskpatch !== true)) {
+							var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function (elem) {
+								return elem.value;
+							};
+							var valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function (elem, value) {
+								elem.value = value;
+								return elem;
+							};
+
+							$.valHooks[type] = {
+								get: function (elem) {
+									if (elem.inputmask) {
+										if (elem.inputmask.opts.autoUnmask) {
+											return elem.inputmask.unmaskedvalue();
+										} else {
+											var result = valhookGet(elem);
+											return getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) !== -1 || opts.nullable !== true ? result : "";
+										}
+									} else return valhookGet(elem);
+								},
+								set: function (elem, value) {
+									var $elem = $(elem),
+										result;
+									result = valhookSet(elem, value);
+									if (elem.inputmask) {
+										$elem.trigger("setvalue");
+									}
+									return result;
+								},
+								inputmaskpatch: true
+							};
+						}
+					}
+
+					function getter() {
+						if (this.inputmask) {
+							return this.inputmask.opts.autoUnmask ?
+								this.inputmask.unmaskedvalue() :
+								(getLastValidPosition() !== -1 || opts.nullable !== true ?
+									(document.activeElement === this && opts.clearMaskOnLostFocus ?
+										(isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") :
+										valueGet.call(this)) :
+									"");
+						} else return valueGet.call(this);
+					}
+
+					function setter(value) {
+						valueSet.call(this, value);
+						if (this.inputmask) {
+							$(this).trigger("setvalue");
+						}
+					}
+
+					function installNativeValueSetFallback(npt) {
+						EventRuler.on(npt, "mouseenter", function (event) {
+							var $input = $(this),
+								input = this,
+								value = input.inputmask._valueGet();
+							if (value !== getBuffer().join("") /*&& getLastValidPosition() > 0*/) {
+								$input.trigger("setvalue");
+							}
+						});
+					}
+
+					if (!npt.inputmask.__valueGet) {
+						if (opts.noValuePatching !== true) {
+							if (Object.getOwnPropertyDescriptor) {
+								if (typeof Object.getPrototypeOf !== "function") {
+									Object.getPrototypeOf = typeof "test".__proto__ === "object" ? function (object) {
+										return object.__proto__;
+									} : function (object) {
+										return object.constructor.prototype;
+									};
+								}
+
+								var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : undefined;
+								if (valueProperty && valueProperty.get && valueProperty.set) {
+									valueGet = valueProperty.get;
+									valueSet = valueProperty.set;
+									Object.defineProperty(npt, "value", {
+										get: getter,
+										set: setter,
+										configurable: true
+									});
+								} else if (npt.tagName !== "INPUT") {
+									valueGet = function () {
+										return this.textContent;
+									};
+									valueSet = function (value) {
+										this.textContent = value;
+									};
+									Object.defineProperty(npt, "value", {
+										get: getter,
+										set: setter,
+										configurable: true
+									});
+								}
+							} else if (document.__lookupGetter__ && npt.__lookupGetter__("value")) {
+								valueGet = npt.__lookupGetter__("value");
+								valueSet = npt.__lookupSetter__("value");
+
+								npt.__defineGetter__("value", getter);
+								npt.__defineSetter__("value", setter);
+							}
+							npt.inputmask.__valueGet = valueGet; //store native property getter
+							npt.inputmask.__valueSet = valueSet; //store native property setter
+						}
+						npt.inputmask._valueGet = function (overruleRTL) {
+							return isRTL && overruleRTL !== true ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el);
+						};
+						npt.inputmask._valueSet = function (value, overruleRTL) { //null check is needed for IE8 => otherwise converts to "null"
+							valueSet.call(this.el, (value === null || value === undefined) ? "" : ((overruleRTL !== true && isRTL) ? value.split("").reverse().join("") : value));
+						};
+
+						if (valueGet === undefined) { //jquery.val fallback
+							valueGet = function () {
+								return this.value;
+							};
+							valueSet = function (value) {
+								this.value = value;
+							};
+							patchValhook(npt.type);
+							installNativeValueSetFallback(npt);
+						}
+					}
+				}
+
 				var elementType = input.getAttribute("type");
 				var isSupported = (input.tagName === "INPUT" && $.inArray(elementType, opts.supportsInputType) !== -1) || input.isContentEditable || input.tagName === "TEXTAREA";
-				if (!isSupported && input.tagName === "INPUT") {
-					var el = document.createElement("input");
-					el.setAttribute("type", elementType);
-					isSupported = el.type === "text"; //apply mask only if the type is not natively supported
-					el = null;
+				if (!isSupported) {
+					if (input.tagName === "INPUT") {
+						var el = document.createElement("input");
+						el.setAttribute("type", elementType);
+						isSupported = el.type === "text"; //apply mask only if the type is not natively supported
+						el = null;
+					} else isSupported = "partial";
+				}
+				if (isSupported !== false) {
+					patchValueProperty(input);
 				}
 				return isSupported;
 			}
 
-			if (isElementTypeSupported(elem, opts)) {
+			var isSupported = isElementTypeSupported(elem, opts);
+			if (isSupported !== false) {
 				el = elem;
 				$el = $(el);
 
@@ -2852,35 +2859,35 @@
 
 				//unbind all events - to make sure that no other mask will interfere when re-masking
 				EventRuler.off(el);
-				patchValueProperty(el);
-
-				//bind events
-				EventRuler.on(el, "submit", EventHandlers.submitEvent);
-				EventRuler.on(el, "reset", EventHandlers.resetEvent);
-
-				EventRuler.on(el, "mouseenter", EventHandlers.mouseenterEvent);
-				EventRuler.on(el, "blur", EventHandlers.blurEvent);
-				EventRuler.on(el, "focus", EventHandlers.focusEvent);
-				EventRuler.on(el, "mouseleave", EventHandlers.mouseleaveEvent);
-				if (opts.colorMask !== true)
-					EventRuler.on(el, "click", EventHandlers.clickEvent);
-				EventRuler.on(el, "dblclick", EventHandlers.dblclickEvent);
-				EventRuler.on(el, "paste", EventHandlers.pasteEvent);
-				EventRuler.on(el, "dragdrop", EventHandlers.pasteEvent);
-				EventRuler.on(el, "drop", EventHandlers.pasteEvent);
-				EventRuler.on(el, "cut", EventHandlers.cutEvent);
-				EventRuler.on(el, "complete", opts.oncomplete);
-				EventRuler.on(el, "incomplete", opts.onincomplete);
-				EventRuler.on(el, "cleared", opts.oncleared);
-				if (opts.inputEventOnly !== true) {
-					EventRuler.on(el, "keydown", EventHandlers.keydownEvent);
-					EventRuler.on(el, "keypress", EventHandlers.keypressEvent);
-				}
-				EventRuler.on(el, "compositionstart", $.noop);
-				EventRuler.on(el, "compositionupdate", $.noop);
-				EventRuler.on(el, "compositionend", $.noop);
-				EventRuler.on(el, "keyup", $.noop);
-				EventRuler.on(el, "input", EventHandlers.inputFallBackEvent);
+				if (isSupported === true) {
+					//bind events
+					EventRuler.on(el, "submit", EventHandlers.submitEvent);
+					EventRuler.on(el, "reset", EventHandlers.resetEvent);
+
+					EventRuler.on(el, "mouseenter", EventHandlers.mouseenterEvent);
+					EventRuler.on(el, "blur", EventHandlers.blurEvent);
+					EventRuler.on(el, "focus", EventHandlers.focusEvent);
+					EventRuler.on(el, "mouseleave", EventHandlers.mouseleaveEvent);
+					if (opts.colorMask !== true)
+						EventRuler.on(el, "click", EventHandlers.clickEvent);
+					EventRuler.on(el, "dblclick", EventHandlers.dblclickEvent);
+					EventRuler.on(el, "paste", EventHandlers.pasteEvent);
+					EventRuler.on(el, "dragdrop", EventHandlers.pasteEvent);
+					EventRuler.on(el, "drop", EventHandlers.pasteEvent);
+					EventRuler.on(el, "cut", EventHandlers.cutEvent);
+					EventRuler.on(el, "complete", opts.oncomplete);
+					EventRuler.on(el, "incomplete", opts.onincomplete);
+					EventRuler.on(el, "cleared", opts.oncleared);
+					if (opts.inputEventOnly !== true) {
+						EventRuler.on(el, "keydown", EventHandlers.keydownEvent);
+						EventRuler.on(el, "keypress", EventHandlers.keypressEvent);
+					}
+					EventRuler.on(el, "compositionstart", $.noop);
+					EventRuler.on(el, "compositionupdate", $.noop);
+					EventRuler.on(el, "compositionend", $.noop);
+					EventRuler.on(el, "keyup", $.noop);
+					EventRuler.on(el, "input", EventHandlers.inputFallBackEvent);
+				}
 				EventRuler.on(el, "setvalue", EventHandlers.setValueEvent);
 
 				//apply mask

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 	"name": "jquery.inputmask",
-	"version": "3.3.4-126",
+	"version": "3.3.4-128",
 	"description": "jquery.inputmask is a jquery plugin which create an input mask.",
 	"main": "index.js",
 	"files": [