Browse Source

only apply character substitution on 'human' input - #2765

Robin Herbots 1 year ago
parent
commit
25de1328cf

+ 2 - 0
Changelog.md

@@ -6,6 +6,7 @@
 - Add exports field in package.json #2690
 
 ### Updates
+- only apply character substitution on 'human' input - #2765
 - better handle unmatching alternations - #2277
 - datetime alias
   - add support for mmm & mmmm #2751 (WIP)
@@ -14,6 +15,7 @@
 - Enhance resolving of the ndxInitializer to determine the alternating tests.
 
 ### Fixed
+- Unexpected character removed #2765
 - d/mm/yyyy is converted to d/m//yyyd #2394
 - Invalid state after editing datetime #2708
 - Inputmask datetime alias mm/yy min value bug #2744

+ 1 - 1
bower.json

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

+ 2 - 2
dist/colormask.js

@@ -3,7 +3,7 @@
  * https://github.com/RobinHerbots/Inputmask
  * Copyright (c) 2010 - 2024 Robin Herbots
  * Licensed under the MIT license
- * Version: 5.0.9-beta.60
+ * Version: 5.0.9-beta.61
  */
 !function(e, t) {
     if ("object" == typeof exports && "object" == typeof module) module.exports = t(); else if ("function" == typeof define && define.amd) define([], t); else {
@@ -722,7 +722,7 @@
                                     begin: a,
                                     end: a
                                 } : r.caret.call(l, d);
-                                v = u.substitutes[v] || v, p.writeOutBuffer = !0;
+                                t || (v = u.substitutes[v] || v), p.writeOutBuffer = !0;
                                 var y = s.isValid.call(l, g, v, i, void 0, void 0, void 0, t);
                                 if (!1 !== y && (r.resetMaskSet.call(l, !0), m = void 0 !== y.caret ? y.caret : r.seekNext.call(l, y.pos.begin ? y.pos.begin : y.pos), 
                                 p.p = m), m = u.numericInput && void 0 === y.caret ? r.seekPrevious.call(l, m) : m, 

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


+ 2 - 2
dist/inputmask.js

@@ -3,7 +3,7 @@
  * https://github.com/RobinHerbots/Inputmask
  * Copyright (c) 2010 - 2024 Robin Herbots
  * Licensed under the MIT license
- * Version: 5.0.9-beta.60
+ * Version: 5.0.9-beta.61
  */
 !function(e, t) {
     if ("object" == typeof exports && "object" == typeof module) module.exports = t(); else if ("function" == typeof define && define.amd) define([], t); else {
@@ -713,7 +713,7 @@
                                     begin: a,
                                     end: a
                                 } : r.caret.call(l, d);
-                                v = u.substitutes[v] || v, p.writeOutBuffer = !0;
+                                t || (v = u.substitutes[v] || v), p.writeOutBuffer = !0;
                                 var y = s.isValid.call(l, g, v, i, void 0, void 0, void 0, t);
                                 if (!1 !== y && (r.resetMaskSet.call(l, !0), m = void 0 !== y.caret ? y.caret : r.seekNext.call(l, y.pos.begin ? y.pos.begin : y.pos), 
                                 p.p = m), m = u.numericInput && void 0 === y.caret ? r.seekPrevious.call(l, m) : m, 

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


+ 2 - 2
dist/jquery.inputmask.js

@@ -3,7 +3,7 @@
  * https://github.com/RobinHerbots/Inputmask
  * Copyright (c) 2010 - 2024 Robin Herbots
  * Licensed under the MIT license
- * Version: 5.0.9-beta.60
+ * Version: 5.0.9-beta.61
  */
 !function(e, t) {
     if ("object" == typeof exports && "object" == typeof module) module.exports = t(require("jquery")); else if ("function" == typeof define && define.amd) define([ "jquery" ], t); else {
@@ -542,7 +542,7 @@
                                     begin: a,
                                     end: a
                                 } : r.caret.call(s, d);
-                                m = u.substitutes[m] || m, p.writeOutBuffer = !0;
+                                t || (m = u.substitutes[m] || m), p.writeOutBuffer = !0;
                                 var y = l.isValid.call(s, g, m, i, void 0, void 0, void 0, t);
                                 if (!1 !== y && (r.resetMaskSet.call(s, !0), v = void 0 !== y.caret ? y.caret : r.seekNext.call(s, y.pos.begin ? y.pos.begin : y.pos), 
                                 p.p = v), v = u.numericInput && void 0 === y.caret ? r.seekPrevious.call(s, v) : v, 

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


+ 7 - 7
inputmask-pages/package-lock.json

@@ -24,7 +24,7 @@
         "eslint-plugin-react-hooks": "^4.6.0",
         "gh-pages": "^5.0.0",
         "history": "^5.3.0",
-        "inputmask": "^5.0.9-beta.53",
+        "inputmask": "^5.0.9-beta.61",
         "postcss-normalize": "^10.0.1",
         "prettier": "3.0.0",
         "react": "^18.2.0",
@@ -11016,9 +11016,9 @@
       "dev": true
     },
     "node_modules/inputmask": {
-      "version": "5.0.9-beta.53",
-      "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9-beta.53.tgz",
-      "integrity": "sha512-tNH6Fe3YuHU61AU1bjLkdksWEBYZM5a+576pyPx9p3tgJn26mzj+tAkG5eY9f6MtxIzrwvSurY3Tnxf2iDbJMQ==",
+      "version": "5.0.9-beta.61",
+      "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9-beta.61.tgz",
+      "integrity": "sha512-A4OeATP3UJVa90JELqlV9zUqnIMdSu2Ajur0btHuZjIk+3UJsXj01WuGfoQvaiaY24TUkhE2g9W8ldk1rQjw+g==",
       "dev": true
     },
     "node_modules/internal-slot": {
@@ -30178,9 +30178,9 @@
       "dev": true
     },
     "inputmask": {
-      "version": "5.0.9-beta.53",
-      "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9-beta.53.tgz",
-      "integrity": "sha512-tNH6Fe3YuHU61AU1bjLkdksWEBYZM5a+576pyPx9p3tgJn26mzj+tAkG5eY9f6MtxIzrwvSurY3Tnxf2iDbJMQ==",
+      "version": "5.0.9-beta.61",
+      "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9-beta.61.tgz",
+      "integrity": "sha512-A4OeATP3UJVa90JELqlV9zUqnIMdSu2Ajur0btHuZjIk+3UJsXj01WuGfoQvaiaY24TUkhE2g9W8ldk1rQjw+g==",
       "dev": true
     },
     "internal-slot": {

+ 1 - 1
inputmask-pages/package.json

@@ -20,7 +20,7 @@
     "eslint-plugin-react-hooks": "^4.6.0",
     "gh-pages": "^5.0.0",
     "history": "^5.3.0",
-    "inputmask": "^5.0.9-beta.53",
+    "inputmask": "^5.0.9-beta.61",
     "postcss-normalize": "^10.0.1",
     "prettier": "3.0.0",
     "react": "^18.2.0",

+ 16 - 0
inputmask-pages/src/Components/Demo/Demo.js

@@ -14,6 +14,22 @@ export const Demo = () => {
         maskOptions={{ alias: "datetime", inputFormat: "mm/dd/yyyy" }}
       />
       <DemoMask
+        label="Date:"
+        maskOptions={{
+          alias: "datetime",
+          inputFormat: "dd mmm yyyy",
+          inputmode: "text"
+        }}
+      />
+      <DemoMask
+        label="Date:"
+        maskOptions={{
+          alias: "datetime",
+          inputFormat: "dd mmmm yyyy",
+          inputmode: "text"
+        }}
+      />
+      <DemoMask
         label="Currency:"
         maskOptions={{
           alias: "numeric",

+ 3 - 0
inputmask-pages/src/assets/Changelog.md

@@ -6,6 +6,7 @@
 - Add exports field in package.json #2690
 
 ### Updates
+- only apply character substitution on 'human' input - #2765
 - better handle unmatching alternations - #2277
 - datetime alias
   - add support for mmm & mmmm #2751 (WIP)
@@ -14,6 +15,8 @@
 - Enhance resolving of the ndxInitializer to determine the alternating tests.
 
 ### Fixed
+- Unexpected character removed #2765
+- d/mm/yyyy is converted to d/m//yyyd #2394
 - Invalid state after editing datetime #2708
 - Inputmask datetime alias mm/yy min value bug #2744
 - ALT codes #2779

+ 1 - 1
lib/eventhandlers.js

@@ -129,7 +129,7 @@ var EventHandlers = {
 				forwardPosition;
 
 			//allow for character substitution
-			c = opts.substitutes[c] || c;
+			if (!checkval) c = opts.substitutes[c] || c;
 			maskset.writeOutBuffer = true;
 			var valResult = isValid.call(inputmask, pos, c, strict, undefined, undefined, undefined, checkval);
 			if (valResult !== false) {

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "inputmask",
-  "version": "5.0.9-beta.60",
+  "version": "5.0.9-beta.61",
   "description": "Inputmask is a javascript library which creates an input mask.  Inputmask can run against vanilla javascript, jQuery and jqlite.",
   "main": "dist/inputmask.js",
   "exports": {