Browse Source

incorrect work min max date #2011 #2013

Robin Herbots 7 years ago
parent
commit
30258b5f17
31 changed files with 685 additions and 147 deletions
  1. 1 0
      CHANGELOG.md
  2. 1 1
      bower.json
  3. 1 1
      composer.json
  4. 1 1
      dist/inputmask/bindings/inputmask.binding.js
  5. 6 5
      dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js
  6. 1 1
      dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js
  7. 6 5
      dist/inputmask/dependencyLibs/inputmask.dependencyLib.js
  8. 0 11
      dist/inputmask/global/document.js
  9. 3 3
      dist/inputmask/global/window.js
  10. 6 10
      dist/inputmask/inputmask.date.extensions.js
  11. 1 1
      dist/inputmask/inputmask.extensions.js
  12. 6 6
      dist/inputmask/inputmask.js
  13. 1 1
      dist/inputmask/inputmask.numeric.extensions.js
  14. 1 1
      dist/inputmask/jquery.inputmask.js
  15. 12 27
      dist/jquery.inputmask.bundle.js
  16. 1 1
      dist/min/inputmask/bindings/inputmask.binding.min.js
  17. 2 2
      dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.min.js
  18. 1 1
      dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.min.js
  19. 2 2
      dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.min.js
  20. 0 9
      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. 1 1
      dist/min/inputmask/inputmask.extensions.min.js
  24. 2 2
      dist/min/inputmask/inputmask.min.js
  25. 1 1
      dist/min/inputmask/inputmask.numeric.extensions.min.js
  26. 1 1
      dist/min/inputmask/jquery.inputmask.min.js
  27. 2 2
      dist/min/jquery.inputmask.bundle.min.js
  28. 5 4
      js/global/window.js
  29. 9 10
      js/inputmask.date.extensions.js
  30. 603 29
      package-lock.json
  31. 4 4
      package.json

+ 1 - 0
CHANGELOG.md

@@ -5,6 +5,7 @@
 ### Updates
 
 ### Fixed
+- incorrect work min max date - #2011, #2013
 
 ## [4.0.2 - 2018-09-14]
 

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "inputmask",
-  "version": "4.0.2",
+  "version": "4.0.3-beta.0",
   "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.2",
+  "version": "4.0.3-beta.0",
   "type": "library",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "homepage": "http://robinherbots.github.io/Inputmask",

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

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.2
+* Version: 4.0.3-beta.0
 */
 
 (function(factory) {

+ 6 - 5
dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js

@@ -3,18 +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.2
+* Version: 4.0.3-beta.0
 */
 
 (function(factory) {
     if (typeof define === "function" && define.amd) {
-        define([ "jqlite", "../global/window", "../global/document" ], factory);
+        define([ "jqlite", "../global/window" ], factory);
     } else if (typeof exports === "object") {
-        module.exports = factory(require("jqlite"), require("../global/window"), require("../global/document"));
+        module.exports = factory(require("jqlite"), require("../global/window"));
     } else {
-        window.dependencyLib = factory(jqlite, window, document);
+        window.dependencyLib = factory(jqlite, window);
     }
-})(function($, window, document) {
+})(function($, window) {
+    var document = window.document;
     function indexOf(list, elem) {
         var i = 0, len = list.length;
         for (;i < len; i++) {

+ 1 - 1
dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.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.2
+* Version: 4.0.3-beta.0
 */
 
 (function(factory) {

+ 6 - 5
dist/inputmask/dependencyLibs/inputmask.dependencyLib.js

@@ -3,18 +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.2
+* Version: 4.0.3-beta.0
 */
 
 (function(factory) {
     if (typeof define === "function" && define.amd) {
-        define([ "../global/window", "../global/document" ], factory);
+        define([ "../global/window" ], factory);
     } else if (typeof exports === "object") {
-        module.exports = factory(require("../global/window"), require("../global/document"));
+        module.exports = factory(require("../global/window"));
     } else {
-        window.dependencyLib = factory(window, document);
+        window.dependencyLib = factory(window);
     }
-})(function(window, document) {
+})(function(window) {
+    var document = window.document;
     function indexOf(list, elem) {
         var i = 0, len = list.length;
         for (;i < len; i++) {

+ 0 - 11
dist/inputmask/global/document.js

@@ -1,11 +0,0 @@
-/*!
-* global/document.js
-* 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.2
-*/
-
-if (typeof define === "function" && define.amd) define(function() {
-    return 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.2
+* Version: 4.0.3-beta.0
 */
 
 if (typeof define === "function" && define.amd) define(function() {
-    return window;
-}); else if (typeof exports === "object") module.exports = window;
+    return window || new (eval("require('jsdom')")("").window)();
+}); else if (typeof exports === "object") module.exports = window || new (eval("require('jsdom')")("").window)();

+ 6 - 10
dist/inputmask/inputmask.date.extensions.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.2
+* Version: 4.0.3-beta.0
 */
 
 (function(factory) {
@@ -148,15 +148,11 @@
             date: new Date(1, 0, 1)
         }, 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];
-                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");
+            var correctedValue = value.replace(/[^0-9]/g, "0");
+            if (correctedValue != value) {
+                var enteredPart = value.replace(/[^0-9]/g, ""), min = (opts.min && opts.min[targetProp] || value).toString(), max = (opts.max && opts.max[targetProp] || value).toString();
+                correctedValue = enteredPart + (enteredPart < min.slice(0, enteredPart.length) ? min.slice(enteredPart.length) : enteredPart > max.slice(0, enteredPart.length) ? max.slice(enteredPart.length) : correctedValue.toString().slice(enteredPart.length));
+            }
             return correctedValue;
         }
         function setValue(dateObj, value, opts) {

+ 1 - 1
dist/inputmask/inputmask.extensions.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.2
+* Version: 4.0.3-beta.0
 */
 
 (function(factory) {

+ 6 - 6
dist/inputmask/inputmask.js

@@ -3,19 +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.2
+* Version: 4.0.3-beta.0
 */
 
 (function(factory) {
     if (typeof define === "function" && define.amd) {
-        define([ "./dependencyLibs/inputmask.dependencyLib", "./global/window", "./global/document" ], factory);
+        define([ "./dependencyLibs/inputmask.dependencyLib", "./global/window" ], factory);
     } else if (typeof exports === "object") {
-        module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./global/window"), require("./global/document"));
+        module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./global/window"));
     } else {
-        window.Inputmask = factory(window.dependencyLib || jQuery, window, document);
+        window.Inputmask = factory(window.dependencyLib || jQuery, window);
     }
-})(function($, window, document, undefined) {
-    var ua = navigator.userAgent, mobile = isInputEventSupported("touchstart"), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile;
+})(function($, window, undefined) {
+    var document = window.document, ua = navigator.userAgent, mobile = isInputEventSupported("touchstart"), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile;
     function Inputmask(alias, options, internal) {
         if (!(this instanceof Inputmask)) {
             return new Inputmask(alias, options, internal);

+ 1 - 1
dist/inputmask/inputmask.numeric.extensions.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.2
+* Version: 4.0.3-beta.0
 */
 
 (function(factory) {

+ 1 - 1
dist/inputmask/jquery.inputmask.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.2
+* Version: 4.0.3-beta.0
 */
 
 (function(factory) {

+ 12 - 27
dist/jquery.inputmask.bundle.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.2
+* Version: 4.0.3-beta.0
 */
 
 (function(modules) {
@@ -73,8 +73,8 @@
 })([ function(module, exports, __webpack_require__) {
     "use strict";
     __webpack_require__(1);
+    __webpack_require__(6);
     __webpack_require__(7);
-    __webpack_require__(8);
     var _inputmask = __webpack_require__(2);
     var _inputmask2 = _interopRequireDefault(_inputmask);
     var _inputmask3 = __webpack_require__(3);
@@ -87,7 +87,7 @@
         };
     }
     if (_inputmask4.default === _jquery2.default) {
-        __webpack_require__(9);
+        __webpack_require__(8);
     }
     window.Inputmask = _inputmask2.default;
 }, function(module, exports, __webpack_require__) {
@@ -195,12 +195,12 @@
     };
     (function(factory) {
         if (true) {
-            !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(3), __webpack_require__(5), __webpack_require__(6) ], 
+            !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(3), __webpack_require__(5) ], 
             __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, 
             __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
         } else {}
-    })(function($, window, document, undefined) {
-        var ua = navigator.userAgent, mobile = isInputEventSupported("touchstart"), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile;
+    })(function($, window, undefined) {
+        var document = window.document, ua = navigator.userAgent, mobile = isInputEventSupported("touchstart"), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile;
         function Inputmask(alias, options, internal) {
             if (!(this instanceof Inputmask)) {
                 return new Inputmask(alias, options, internal);
@@ -2945,18 +2945,7 @@
         return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
     };
     if (true) !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {
-        return window;
-    }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); else {}
-}, function(module, exports, __webpack_require__) {
-    "use strict";
-    var __WEBPACK_AMD_DEFINE_RESULT__;
-    var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
-        return typeof obj;
-    } : function(obj) {
-        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
-    };
-    if (true) !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {
-        return document;
+        return window || new (eval("require('jsdom')")("").window)();
     }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); else {}
 }, function(module, exports, __webpack_require__) {
     "use strict";
@@ -3108,15 +3097,11 @@
                 date: new Date(1, 0, 1)
             }, 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];
-                    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");
+                var correctedValue = value.replace(/[^0-9]/g, "0");
+                if (correctedValue != value) {
+                    var enteredPart = value.replace(/[^0-9]/g, ""), min = (opts.min && opts.min[targetProp] || value).toString(), max = (opts.max && opts.max[targetProp] || value).toString();
+                    correctedValue = enteredPart + (enteredPart < min.slice(0, enteredPart.length) ? min.slice(enteredPart.length) : enteredPart > max.slice(0, enteredPart.length) ? max.slice(enteredPart.length) : correctedValue.toString().slice(enteredPart.length));
+                }
                 return correctedValue;
             }
             function setValue(dateObj, value, opts) {

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


File diff suppressed because it is too large
+ 2 - 2
dist/min/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.min.js


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

@@ -3,7 +3,7 @@
 * https://github.com/RobinHerbots/Inputmask
 * Copyright (c) 2010 - 2018 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 4.0.2
+* Version: 4.0.3-beta.0
 */
 
 (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 $});

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


+ 0 - 9
dist/min/inputmask/global/document.min.js

@@ -1,9 +0,0 @@
-/*!
-* global/document.min.js
-* 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.2
-*/
-
-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.2
+* Version: 4.0.3-beta.0
 */
 
-if(typeof define==="function"&&define.amd)define(function(){return window});else if(typeof exports==="object")module.exports=window;
+if(typeof define==="function"&&define.amd)define(function(){return window||new(eval("require('jsdom')")("").window)});else if(typeof exports==="object")module.exports=window||new(eval("require('jsdom')")("").window);

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


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
+ 2 - 2
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/jquery.inputmask.min.js


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


+ 5 - 4
js/global/window.js

@@ -1,6 +1,7 @@
 if (typeof define === "function" && define.amd)
-	define(function () {
-		return window;
-	});
+    define(function () {
+        return window || new (eval("require('jsdom')")('')).window;
+    });
 else if (typeof exports === "object")
-	module.exports = window;
+    module.exports = window || new (eval("require('jsdom')")('')).window;
+

+ 9 - 10
js/inputmask.date.extensions.js

@@ -173,16 +173,15 @@
             var dateObj = {"date": new Date(1, 0, 1)}, 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];
-                    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");
+                var correctedValue = value.replace(/[^0-9]/g, "0");
+                if (correctedValue != value) { //only do correction on incomplete values
+                    //determine best validation match
+                    var enteredPart = value.replace(/[^0-9]/g, ""),
+                        min = (opts.min && opts.min[targetProp] || value).toString(),
+                        max = (opts.max && opts.max[targetProp] || value).toString();
+
+                    correctedValue = enteredPart + (enteredPart < min.slice(0, enteredPart.length) ? min.slice(enteredPart.length) : (enteredPart > max.slice(0, enteredPart.length) ? max.slice(enteredPart.length) : correctedValue.toString().slice(enteredPart.length)));
+                }
                 return correctedValue;
             }
 

File diff suppressed because it is too large
+ 603 - 29
package-lock.json


+ 4 - 4
package.json

@@ -1,6 +1,6 @@
 {
   "name": "inputmask",
-  "version": "4.0.2",
+  "version": "4.0.3-beta.0",
   "description": "Inputmask is a javascript library which creates an input mask.  Inputmask can run against vanilla javascript, jQuery and jqlite.",
   "main": "index.js",
   "files": [
@@ -63,7 +63,7 @@
     "source-map-loader": "^0.2.4",
     "style-loader": "^0.23.0",
     "webpack": "^4.16.3",
-    "webpack-cli": "^3.1.0"
-  },
-  "dependencies": {}
+    "webpack-cli": "^3.1.0",
+    "jsdom": "^12.0.0"
+  }
 }