Socket
Socket
Sign inDemoInstall

react-input-mask

Package Overview
Dependencies
Maintainers
1
Versions
90
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-input-mask - npm Package Compare versions

Comparing version 1.0.5 to 1.0.6

31

dist/react-input-mask.js

@@ -7,3 +7,3 @@ (function (global, factory) {

React = 'default' in React ? React['default'] : React;
React = React && React.hasOwnProperty('default') ? React['default'] : React;

@@ -92,9 +92,2 @@ var defaultCharsRules = {

function isIOS() {
var windows = new RegExp('windows', 'i');
var ios = new RegExp('(ipod|iphone|ipad)', 'i');
var ua = navigator.userAgent;
return !windows.test(ua) && ios.test(ua);
}
function isPermanentChar(maskOptions, pos) {

@@ -315,3 +308,3 @@ return maskOptions.permanents.indexOf(pos) !== -1;

var defer = function (fn) {
var defer = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (fn) {
var defer = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function () {
return setTimeout(fn, 0);

@@ -387,3 +380,2 @@ };

_this2.isAndroidFirefox = isAndroidFirefox();
_this2.isIOS = isIOS();

@@ -402,2 +394,3 @@ if (_this2.maskOptions.mask && _this2.getInputValue() !== _this2.value) {

if (!_this2.maskOptions.mask) {
_this2.backspaceOrDeleteRemoval = null;
_this2.lastCursorPos = null;

@@ -594,2 +587,9 @@ return;

if (key === 'Backspace' || key === 'Delete') {
var selection = _this2.getSelection();
var canRemove = key === 'Backspace' && selection.end > 0 || key === 'Delete' && _this2.value.length > selection.start;
if (!canRemove) {
return;
}
_this2.backspaceOrDeleteRemoval = {

@@ -599,13 +599,2 @@ key: key,

};
// iOS hack to fire change event
// before call to requestAnimationFrame
// callback inside defer
if (_this2.isIOS) {
_this2.getInputDOMNode().parentElement();
}
defer(function () {
_this2.backspaceOrDeleteRemoval = null;
});
}

@@ -612,0 +601,0 @@ };

@@ -1,1 +0,1 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):e.ReactInputMask=t(e.React)}(this,function(e){"use strict";function t(){var e=new RegExp("windows","i"),t=new RegExp("firefox","i"),n=new RegExp("android","i"),s=navigator.userAgent;return!e.test(s)&&!t.test(s)&&n.test(s)}function n(){var e=new RegExp("windows","i"),t=new RegExp("phone","i"),n=navigator.userAgent;return e.test(n)&&t.test(n)}function s(){var e=new RegExp("windows","i"),t=new RegExp("firefox","i"),n=new RegExp("android","i"),s=navigator.userAgent;return!e.test(s)&&t.test(s)&&n.test(s)}function o(){var e=new RegExp("windows","i"),t=new RegExp("(ipod|iphone|ipad)","i"),n=navigator.userAgent;return!e.test(n)&&t.test(n)}function a(e,t){return-1!==e.permanents.indexOf(t)}function r(e,t,n){var s=e.mask,o=e.charsRules;if(!n)return!1;if(a(e,t))return s[t]===n;var r=o[s[t]];return new RegExp(r).test(n)}function i(e,t){return t.split("").every(function(t,n){return a(e,n)||!r(e,n,t)})}function u(e,t){var n=e.maskChar,s=e.prefix;if(!n){for(;t.length>s.length&&a(e,t.length-1);)t=t.slice(0,t.length-1);return t.length}for(var o=s.length,i=t.length;i>=s.length;i--){var u=t[i];if(!a(e,i)&&r(e,i,u)){o=i+1;break}}return o}function l(e,t){return u(e,t)===e.mask.length}function p(e,t){var n=e.maskChar,s=e.mask,o=e.prefix;if(!n)return t=f(e,"",t,0),(t=t.slice(0,u(e,t))).length<o.length&&(t=o),t;if(t)return f(e,p(e,""),t,0);for(var r=0;r<s.length;r++)a(e,r)?t+=s[r]:t+=n;return t}function c(e,t,n,s){var o=n+s,r=e.maskChar,i=e.mask,u=e.prefix,l=t.split("");return r?l.map(function(t,s){return s<n||s>=o?t:a(e,s)?i[s]:r}).join(""):(n=Math.max(u.length,n),l.splice(n,o-n),t=l.join(""),p(e,t))}function f(e,t,n,s){var o=e.mask,i=e.maskChar,u=e.prefix,c=n.split(""),f=l(e,t),h=function(t,n){return!a(e,t)||n===o[t]},m=function(t,n){return!i||!a(e,n)||t!==i};return!i&&s>t.length&&(t+=o.slice(t.length,s)),c.every(function(n){for(;!h(s,n);){if(s>=t.length&&(t+=o[s]),!m(n,s))return!0;if(++s>=o.length)return!1}return!r(e,s,n)&&n!==i||(s<t.length?i||f||s<u.length?t=t.slice(0,s)+n+t.slice(s+1):(t=t.slice(0,s)+n+t.slice(s),t=p(e,t)):i||(t+=n),++s<o.length)}),t}function h(e,t,n,s){var o=e.mask,i=e.maskChar,u=n.split(""),l=s,p=function(t,n){return!a(e,t)||n===o[t]};return u.every(function(t){for(;!p(s,t);)if(++s>=o.length)return!1;return(r(e,s,t)||t===i)&&s++,s<o.length}),s-l}function m(e,t){var n={};for(var s in e)t.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(e,s)&&(n[s]=e[s]);return n}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function k(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}e="default"in e?e["default"]:e;var v={9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"},O=function(e,t,n){if(t===undefined&&(t="_"),null==n&&(n=v),!e||"string"!=typeof e)return{maskChar:t,charsRules:n,mask:null,prefix:null,lastEditablePos:null,permanents:[]};var s="",o="",a=[],r=!1,i=null;return e.split("").forEach(function(e){r||"\\"!==e?(r||!n[e]?(a.push(s.length),s.length===a.length-1&&(o+=e)):i=s.length+1,s+=e,r=!1):r=!0}),{maskChar:t,charsRules:n,prefix:o,mask:s,lastEditablePos:i,permanents:a}},y=function(e){return(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){return setTimeout(e,0)})(e)},w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E=function(e){function t(e){g(this,t);var n=d(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));C.call(n);var s=e.mask,o=e.maskChar,a=e.formatChars,r=e.defaultValue,i=e.value,u=e.alwaysShowMask;return n.hasValue=null!=i,n.maskOptions=O(s,o,a),null==r&&(r=""),null==i&&(i=r),i=n.getStringValue(i),n.maskOptions.mask&&(u||i)&&(i=p(n.maskOptions,i)),n.value=i,n}return k(t,e),t}(e.Component),C=function(){var r=this;this.lastCursorPos=null,this.focused=!1,this.componentDidMount=function(){r.isAndroidBrowser=t(),r.isWindowsPhoneBrowser=n(),r.isAndroidFirefox=s(),r.isIOS=o(),r.maskOptions.mask&&r.getInputValue()!==r.value&&r.setInputValue(r.value)},this.componentWillReceiveProps=function(e){var t=r.maskOptions;if(r.hasValue=null!=e.value,r.maskOptions=O(e.mask,e.maskChar,e.formatChars),r.maskOptions.mask){var n=r.maskOptions.mask&&r.maskOptions.mask!==t.mask,s=e.alwaysShowMask||r.isFocused(),o=r.hasValue?r.getStringValue(e.value):r.value;if(t.mask||r.hasValue||(o=r.getInputDOMNode().value),(n||r.maskOptions.mask&&(o||s))&&(o=p(r.maskOptions,o),n)){var a=r.lastCursorPos,c=u(r.maskOptions,o);(null===a||c<a)&&(a=l(r.maskOptions,o)?c:r.getRightEditablePos(c),r.setCursorPos(a))}!r.maskOptions.mask||!i(r.maskOptions,o)||s||r.hasValue&&e.value||(o=""),r.value=o}else r.lastCursorPos=null},this.componentDidUpdate=function(){r.maskOptions.mask&&r.getInputValue()!==r.value&&r.setInputValue(r.value)},this.isDOMElement=function(e){return"object"===("undefined"==typeof HTMLElement?"undefined":b(HTMLElement))?e instanceof HTMLElement:1===e.nodeType&&"string"==typeof e.nodeName},this.getInputDOMNode=function(){var t=r.input;return t?r.isDOMElement(t)?t:e.findDOMNode(t):null},this.getInputValue=function(){var e=r.getInputDOMNode();return e?e.value:null},this.setInputValue=function(e){var t=r.getInputDOMNode();t&&(r.value=e,t.value=e)},this.getLeftEditablePos=function(e){for(var t=e;t>=0;--t)if(!a(r.maskOptions,t))return t;return null},this.getRightEditablePos=function(e){for(var t=r.maskOptions.mask,n=e;n<t.length;++n)if(!a(r.maskOptions,n))return n;return null},this.setCursorToEnd=function(){var e=u(r.maskOptions,r.value),t=r.getRightEditablePos(e);null!==t&&r.setCursorPos(t)},this.setSelection=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0,n=r.getInputDOMNode();if(n){var s=e+t;if("selectionStart"in n&&"selectionEnd"in n)n.selectionStart=e,n.selectionEnd=s;else{var o=n.createTextRange();o.collapse(!0),o.moveStart("character",e),o.moveEnd("character",s-e),o.select()}}},this.getSelection=function(){var e=r.getInputDOMNode(),t=0,n=0;if("selectionStart"in e&&"selectionEnd"in e)t=e.selectionStart,n=e.selectionEnd;else{var s=document.selection.createRange();s.parentElement()===e&&(t=-s.moveStart("character",-e.value.length),n=-s.moveEnd("character",-e.value.length))}return{start:t,end:n,length:n-t}},this.getCursorPos=function(){return r.getSelection().start},this.setCursorPos=function(e){r.setSelection(e,0),y(function(){r.setSelection(e,0)}),r.lastCursorPos=e},this.isFocused=function(){return r.focused},this.getStringValue=function(e){return e||0===e?e+"":""},this.onKeyDown=function(e){r.backspaceOrDeleteRemoval=null,"function"==typeof r.props.onKeyDown&&r.props.onKeyDown(e);var t=e.key,n=e.ctrlKey,s=e.metaKey,o=e.defaultPrevented;n||s||o||"Backspace"!==t&&"Delete"!==t||(r.backspaceOrDeleteRemoval={key:t,selection:r.getSelection()},r.isIOS&&r.getInputDOMNode().parentElement(),y(function(){r.backspaceOrDeleteRemoval=null}))},this.onChange=function(e){var t=r.paste,n=r.maskOptions,s=n.mask,o=n.maskChar,a=n.lastEditablePos,i=n.prefix,l=r.getInputValue(),h=r.value;if(t)return r.paste=null,void r.pasteText(t.value,l,t.selection,e);var m,g,d=r.getSelection(),k=d.end,v=s.length,O=l.length,w=h.length;if(r.backspaceOrDeleteRemoval){var b="Delete"===r.backspaceOrDeleteRemoval.key;if(l=r.value,d=r.backspaceOrDeleteRemoval.selection,k=d.start,r.backspaceOrDeleteRemoval=null,d.length)l=c(r.maskOptions,l,d.start,d.length);else if(d.start<i.length||!b&&d.start===i.length)k=i.length;else{var E=b?r.getRightEditablePos(k):r.getLeftEditablePos(k-1);null!==E&&(l=c(r.maskOptions,l,E,1),k=E)}}else if(O>w){var C=O-w,P=d.end-C;g=l.substr(P,C),k=P<a&&(1!==C||g!==s[P])?r.getRightEditablePos(P):P,l=l.substr(0,P)+l.substr(P+C),m=c(r.maskOptions,l,P,v-P),m=f(r.maskOptions,m,g,k),l=f(r.maskOptions,h,g,k),1!==C||k>=i.length&&k<a?(k=Math.max(u(r.maskOptions,m),k))<a&&(k=r.getRightEditablePos(k)):k<a&&k++}else if(O<w){var R=v-O,x=(g=l.substr(0,d.end))===h.substr(0,d.end);m=c(r.maskOptions,h,d.end,R),o&&(l=f(r.maskOptions,m,g,0)),m=c(r.maskOptions,m,d.end,v-d.end),m=f(r.maskOptions,m,g,0),x?k<i.length&&(k=i.length):(k=Math.max(u(r.maskOptions,m),k))<a&&(k=r.getRightEditablePos(k))}l=p(r.maskOptions,l),r.setInputValue(l),"function"==typeof r.props.onChange&&r.props.onChange(e),r.isWindowsPhoneBrowser?y(function(){r.setSelection(k,0)}):r.setCursorPos(k)},this.onFocus=function(e){if(r.focused=!0,r.maskOptions.mask)if(r.value)u(r.maskOptions,r.value)<r.maskOptions.mask.length&&r.setCursorToEnd();else{var t=r.maskOptions.prefix,n=p(r.maskOptions,t),s=p(r.maskOptions,n),o=s!==e.target.value;o&&(e.target.value=s),r.value=s,o&&"function"==typeof r.props.onChange&&r.props.onChange(e),r.setCursorToEnd()}"function"==typeof r.props.onFocus&&r.props.onFocus(e)},this.onBlur=function(e){if(r.focused=!1,r.maskOptions.mask&&!r.props.alwaysShowMask&&i(r.maskOptions,r.value)){var t=""!==r.getInputValue();t&&r.setInputValue(""),t&&"function"==typeof r.props.onChange&&r.props.onChange(e)}"function"==typeof r.props.onBlur&&r.props.onBlur(e)},this.onPaste=function(e){"function"==typeof r.props.onPaste&&r.props.onPaste(e),r.isAndroidBrowser&&!e.defaultPrevented&&(r.paste={value:r.getInputValue(),selection:r.getSelection()},r.setInputValue(""))},this.pasteText=function(e,t,n,s){var o=n.start;n.length&&(e=c(r.maskOptions,e,o,n.length));var a=h(r.maskOptions,e,t,o);e=f(r.maskOptions,e,t,o),o+=a,o=r.getRightEditablePos(o)||o,e!==r.getInputValue()&&(r.setInputValue(e),s&&"function"==typeof r.props.onChange&&r.props.onChange(s)),r.setCursorPos(o)},this.render=function(){var t=r.props,n=(t.mask,t.alwaysShowMask,t.maskChar,t.formatChars,m(t,["mask","alwaysShowMask","maskChar","formatChars"]));return r.maskOptions.mask&&(n.disabled||n.readOnly||["onChange","onKeyDown","onPaste"].forEach(function(e){n[e]=r[e]}),null!=n.value&&(n.value=r.value)),e.createElement("input",w({ref:function(e){return r.input=e}},n,{onFocus:r.onFocus,onBlur:r.onBlur}))}};return E});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):e.ReactInputMask=t(e.React)}(this,function(e){"use strict";function t(){var e=new RegExp("windows","i"),t=new RegExp("firefox","i"),n=new RegExp("android","i"),s=navigator.userAgent;return!e.test(s)&&!t.test(s)&&n.test(s)}function n(){var e=new RegExp("windows","i"),t=new RegExp("phone","i"),n=navigator.userAgent;return e.test(n)&&t.test(n)}function s(){var e=new RegExp("windows","i"),t=new RegExp("firefox","i"),n=new RegExp("android","i"),s=navigator.userAgent;return!e.test(s)&&t.test(s)&&n.test(s)}function o(e,t){return-1!==e.permanents.indexOf(t)}function a(e,t,n){var s=e.mask,a=e.charsRules;if(!n)return!1;if(o(e,t))return s[t]===n;var r=a[s[t]];return new RegExp(r).test(n)}function r(e,t){return t.split("").every(function(t,n){return o(e,n)||!a(e,n,t)})}function i(e,t){var n=e.maskChar,s=e.prefix;if(!n){for(;t.length>s.length&&o(e,t.length-1);)t=t.slice(0,t.length-1);return t.length}for(var r=s.length,i=t.length;i>=s.length;i--){var u=t[i];if(!o(e,i)&&a(e,i,u)){r=i+1;break}}return r}function u(e,t){return i(e,t)===e.mask.length}function l(e,t){var n=e.maskChar,s=e.mask,a=e.prefix;if(!n)return t=c(e,"",t,0),(t=t.slice(0,i(e,t))).length<a.length&&(t=a),t;if(t)return c(e,l(e,""),t,0);for(var r=0;r<s.length;r++)o(e,r)?t+=s[r]:t+=n;return t}function p(e,t,n,s){var a=n+s,r=e.maskChar,i=e.mask,u=e.prefix,p=t.split("");return r?p.map(function(t,s){return s<n||s>=a?t:o(e,s)?i[s]:r}).join(""):(n=Math.max(u.length,n),p.splice(n,a-n),t=p.join(""),l(e,t))}function c(e,t,n,s){var r=e.mask,i=e.maskChar,p=e.prefix,c=n.split(""),f=u(e,t),h=function(t,n){return!o(e,t)||n===r[t]},m=function(t,n){return!i||!o(e,n)||t!==i};return!i&&s>t.length&&(t+=r.slice(t.length,s)),c.every(function(n){for(;!h(s,n);){if(s>=t.length&&(t+=r[s]),!m(n,s))return!0;if(++s>=r.length)return!1}return!a(e,s,n)&&n!==i||(s<t.length?i||f||s<p.length?t=t.slice(0,s)+n+t.slice(s+1):(t=t.slice(0,s)+n+t.slice(s),t=l(e,t)):i||(t+=n),++s<r.length)}),t}function f(e,t,n,s){var r=e.mask,i=e.maskChar,u=n.split(""),l=s,p=function(t,n){return!o(e,t)||n===r[t]};return u.every(function(t){for(;!p(s,t);)if(++s>=r.length)return!1;return(a(e,s,t)||t===i)&&s++,s<r.length}),s-l}function h(e,t){var n={};for(var s in e)t.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(e,s)&&(n[s]=e[s]);return n}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function k(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}e=e&&e.hasOwnProperty("default")?e["default"]:e;var v={9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"},d=function(e,t,n){if(t===undefined&&(t="_"),null==n&&(n=v),!e||"string"!=typeof e)return{maskChar:t,charsRules:n,mask:null,prefix:null,lastEditablePos:null,permanents:[]};var s="",o="",a=[],r=!1,i=null;return e.split("").forEach(function(e){r||"\\"!==e?(r||!n[e]?(a.push(s.length),s.length===a.length-1&&(o+=e)):i=s.length+1,s+=e,r=!1):r=!0}),{maskChar:t,charsRules:n,prefix:o,mask:s,lastEditablePos:i,permanents:a}},O=function(e){return(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(){return setTimeout(e,0)})(e)},y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b=function(t){function n(e){m(this,n);var t=g(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e));E.call(t);var s=e.mask,o=e.maskChar,a=e.formatChars,r=e.defaultValue,i=e.value,u=e.alwaysShowMask;return t.hasValue=null!=i,t.maskOptions=d(s,o,a),null==r&&(r=""),null==i&&(i=r),i=t.getStringValue(i),t.maskOptions.mask&&(u||i)&&(i=l(t.maskOptions,i)),t.value=i,t}return k(n,e.Component),n}(),E=function(){var a=this;this.lastCursorPos=null,this.focused=!1,this.componentDidMount=function(){a.isAndroidBrowser=t(),a.isWindowsPhoneBrowser=n(),a.isAndroidFirefox=s(),a.maskOptions.mask&&a.getInputValue()!==a.value&&a.setInputValue(a.value)},this.componentWillReceiveProps=function(e){var t=a.maskOptions;if(a.hasValue=null!=e.value,a.maskOptions=d(e.mask,e.maskChar,e.formatChars),!a.maskOptions.mask)return a.backspaceOrDeleteRemoval=null,void(a.lastCursorPos=null);var n=a.maskOptions.mask&&a.maskOptions.mask!==t.mask,s=e.alwaysShowMask||a.isFocused(),o=a.hasValue?a.getStringValue(e.value):a.value;if(t.mask||a.hasValue||(o=a.getInputDOMNode().value),(n||a.maskOptions.mask&&(o||s))&&(o=l(a.maskOptions,o),n)){var p=a.lastCursorPos,c=i(a.maskOptions,o);(null===p||c<p)&&(p=u(a.maskOptions,o)?c:a.getRightEditablePos(c),a.setCursorPos(p))}!a.maskOptions.mask||!r(a.maskOptions,o)||s||a.hasValue&&e.value||(o=""),a.value=o},this.componentDidUpdate=function(){a.maskOptions.mask&&a.getInputValue()!==a.value&&a.setInputValue(a.value)},this.isDOMElement=function(e){return"object"===("undefined"==typeof HTMLElement?"undefined":w(HTMLElement))?e instanceof HTMLElement:1===e.nodeType&&"string"==typeof e.nodeName},this.getInputDOMNode=function(){var t=a.input;return t?a.isDOMElement(t)?t:e.findDOMNode(t):null},this.getInputValue=function(){var e=a.getInputDOMNode();return e?e.value:null},this.setInputValue=function(e){var t=a.getInputDOMNode();t&&(a.value=e,t.value=e)},this.getLeftEditablePos=function(e){for(var t=e;t>=0;--t)if(!o(a.maskOptions,t))return t;return null},this.getRightEditablePos=function(e){for(var t=a.maskOptions.mask,n=e;n<t.length;++n)if(!o(a.maskOptions,n))return n;return null},this.setCursorToEnd=function(){var e=i(a.maskOptions,a.value),t=a.getRightEditablePos(e);null!==t&&a.setCursorPos(t)},this.setSelection=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0,n=a.getInputDOMNode();if(n){var s=e+t;if("selectionStart"in n&&"selectionEnd"in n)n.selectionStart=e,n.selectionEnd=s;else{var o=n.createTextRange();o.collapse(!0),o.moveStart("character",e),o.moveEnd("character",s-e),o.select()}}},this.getSelection=function(){var e=a.getInputDOMNode(),t=0,n=0;if("selectionStart"in e&&"selectionEnd"in e)t=e.selectionStart,n=e.selectionEnd;else{var s=document.selection.createRange();s.parentElement()===e&&(t=-s.moveStart("character",-e.value.length),n=-s.moveEnd("character",-e.value.length))}return{start:t,end:n,length:n-t}},this.getCursorPos=function(){return a.getSelection().start},this.setCursorPos=function(e){a.setSelection(e,0),O(function(){a.setSelection(e,0)}),a.lastCursorPos=e},this.isFocused=function(){return a.focused},this.getStringValue=function(e){return e||0===e?e+"":""},this.onKeyDown=function(e){a.backspaceOrDeleteRemoval=null,"function"==typeof a.props.onKeyDown&&a.props.onKeyDown(e);var t=e.key,n=e.ctrlKey,s=e.metaKey,o=e.defaultPrevented;if(!(n||s||o||"Backspace"!==t&&"Delete"!==t)){var r=a.getSelection();if(!("Backspace"===t&&r.end>0||"Delete"===t&&a.value.length>r.start))return;a.backspaceOrDeleteRemoval={key:t,selection:a.getSelection()}}},this.onChange=function(e){var t=a.paste,n=a.maskOptions,s=n.mask,o=n.maskChar,r=n.lastEditablePos,u=n.prefix,f=a.getInputValue(),h=a.value;if(t)return a.paste=null,void a.pasteText(t.value,f,t.selection,e);var m,g,k=a.getSelection(),v=k.end,d=s.length,y=f.length,w=h.length;if(a.backspaceOrDeleteRemoval){var b="Delete"===a.backspaceOrDeleteRemoval.key;if(f=a.value,k=a.backspaceOrDeleteRemoval.selection,v=k.start,a.backspaceOrDeleteRemoval=null,k.length)f=p(a.maskOptions,f,k.start,k.length);else if(k.start<u.length||!b&&k.start===u.length)v=u.length;else{var E=b?a.getRightEditablePos(v):a.getLeftEditablePos(v-1);null!==E&&(f=p(a.maskOptions,f,E,1),v=E)}}else if(y>w){var C=y-w,P=k.end-C;g=f.substr(P,C),v=P<r&&(1!==C||g!==s[P])?a.getRightEditablePos(P):P,f=f.substr(0,P)+f.substr(P+C),m=p(a.maskOptions,f,P,d-P),m=c(a.maskOptions,m,g,v),f=c(a.maskOptions,h,g,v),1!==C||v>=u.length&&v<r?(v=Math.max(i(a.maskOptions,m),v))<r&&(v=a.getRightEditablePos(v)):v<r&&v++}else if(y<w){var R=d-y,x=(g=f.substr(0,k.end))===h.substr(0,k.end);m=p(a.maskOptions,h,k.end,R),o&&(f=c(a.maskOptions,m,g,0)),m=p(a.maskOptions,m,k.end,d-k.end),m=c(a.maskOptions,m,g,0),x?v<u.length&&(v=u.length):(v=Math.max(i(a.maskOptions,m),v))<r&&(v=a.getRightEditablePos(v))}f=l(a.maskOptions,f),a.setInputValue(f),"function"==typeof a.props.onChange&&a.props.onChange(e),a.isWindowsPhoneBrowser?O(function(){a.setSelection(v,0)}):a.setCursorPos(v)},this.onFocus=function(e){if(a.focused=!0,a.maskOptions.mask)if(a.value)i(a.maskOptions,a.value)<a.maskOptions.mask.length&&a.setCursorToEnd();else{var t=a.maskOptions.prefix,n=l(a.maskOptions,t),s=l(a.maskOptions,n),o=s!==e.target.value;o&&(e.target.value=s),a.value=s,o&&"function"==typeof a.props.onChange&&a.props.onChange(e),a.setCursorToEnd()}"function"==typeof a.props.onFocus&&a.props.onFocus(e)},this.onBlur=function(e){if(a.focused=!1,a.maskOptions.mask&&!a.props.alwaysShowMask&&r(a.maskOptions,a.value)){var t=""!==a.getInputValue();t&&a.setInputValue(""),t&&"function"==typeof a.props.onChange&&a.props.onChange(e)}"function"==typeof a.props.onBlur&&a.props.onBlur(e)},this.onPaste=function(e){"function"==typeof a.props.onPaste&&a.props.onPaste(e),a.isAndroidBrowser&&!e.defaultPrevented&&(a.paste={value:a.getInputValue(),selection:a.getSelection()},a.setInputValue(""))},this.pasteText=function(e,t,n,s){var o=n.start;n.length&&(e=p(a.maskOptions,e,o,n.length));var r=f(a.maskOptions,0,t,o);e=c(a.maskOptions,e,t,o),o+=r,o=a.getRightEditablePos(o)||o,e!==a.getInputValue()&&(a.setInputValue(e),s&&"function"==typeof a.props.onChange&&a.props.onChange(s)),a.setCursorPos(o)},this.render=function(){var t=a.props,n=(t.mask,t.alwaysShowMask,t.maskChar,t.formatChars,h(t,["mask","alwaysShowMask","maskChar","formatChars"]));return a.maskOptions.mask&&(n.disabled||n.readOnly||["onChange","onKeyDown","onPaste"].forEach(function(e){n[e]=a[e]}),null!=n.value&&(n.value=a.value)),e.createElement("input",y({ref:function(e){return a.input=e}},n,{onFocus:a.onFocus,onBlur:a.onBlur}))}};return b});

@@ -17,3 +17,3 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

import parseMask from './utils/parseMask';
import { isAndroidBrowser, isWindowsPhoneBrowser, isAndroidFirefox, isIOS } from './utils/environment';
import { isAndroidBrowser, isWindowsPhoneBrowser, isAndroidFirefox } from './utils/environment';
import { clearRange, formatValue, getFilledLength, isFilled, isEmpty, isPermanentChar, getInsertStringLength, insertString } from './utils/string';

@@ -73,3 +73,2 @@ import defer from './utils/defer';

_this2.isAndroidFirefox = isAndroidFirefox();
_this2.isIOS = isIOS();

@@ -88,2 +87,3 @@ if (_this2.maskOptions.mask && _this2.getInputValue() !== _this2.value) {

if (!_this2.maskOptions.mask) {
_this2.backspaceOrDeleteRemoval = null;
_this2.lastCursorPos = null;

@@ -280,2 +280,9 @@ return;

if (key === 'Backspace' || key === 'Delete') {
var selection = _this2.getSelection();
var canRemove = key === 'Backspace' && selection.end > 0 || key === 'Delete' && _this2.value.length > selection.start;
if (!canRemove) {
return;
}
_this2.backspaceOrDeleteRemoval = {

@@ -285,13 +292,2 @@ key: key,

};
// iOS hack to fire change event
// before call to requestAnimationFrame
// callback inside defer
if (_this2.isIOS) {
_this2.getInputDOMNode().parentElement();
}
defer(function () {
_this2.backspaceOrDeleteRemoval = null;
});
}

@@ -298,0 +294,0 @@ };

export default function (fn) {
var defer = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (fn) {
var defer = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function () {
return setTimeout(fn, 0);

@@ -4,0 +4,0 @@ };

@@ -89,3 +89,2 @@ 'use strict';

_this2.isAndroidFirefox = (0, _environment.isAndroidFirefox)();
_this2.isIOS = (0, _environment.isIOS)();

@@ -104,2 +103,3 @@ if (_this2.maskOptions.mask && _this2.getInputValue() !== _this2.value) {

if (!_this2.maskOptions.mask) {
_this2.backspaceOrDeleteRemoval = null;
_this2.lastCursorPos = null;

@@ -296,2 +296,9 @@ return;

if (key === 'Backspace' || key === 'Delete') {
var selection = _this2.getSelection();
var canRemove = key === 'Backspace' && selection.end > 0 || key === 'Delete' && _this2.value.length > selection.start;
if (!canRemove) {
return;
}
_this2.backspaceOrDeleteRemoval = {

@@ -301,13 +308,2 @@ key: key,

};
// iOS hack to fire change event
// before call to requestAnimationFrame
// callback inside defer
if (_this2.isIOS) {
_this2.getInputDOMNode().parentElement();
}
(0, _defer2.default)(function () {
_this2.backspaceOrDeleteRemoval = null;
});
}

@@ -314,0 +310,0 @@ };

@@ -8,3 +8,3 @@ "use strict";

exports.default = function (fn) {
var defer = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (fn) {
var defer = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function () {
return setTimeout(fn, 0);

@@ -11,0 +11,0 @@ };

{
"name": "react-input-mask",
"description": "Masked input component for React",
"version": "1.0.5",
"version": "1.0.6",
"homepage": "https://github.com/sanniassin/react-input-mask",

@@ -21,3 +21,3 @@ "license": "MIT",

"babel-eslint": "^7.2.3",
"babel-loader": "^7.1.0",
"babel-loader": "^7.1.1",
"babel-plugin-transform-es3-member-expression-literals": "^6.22.0",

@@ -31,9 +31,9 @@ "babel-plugin-transform-es3-property-literals": "^6.22.0",

"browserify": "^14.3.0",
"chai": "^4.0.2",
"console-polyfill": "^0.2.2",
"chai": "^4.1.0",
"console-polyfill": "^0.3.0",
"cross-env": "^5.0.1",
"eslint": "^3.19.0",
"eslint-config-airbnb": "^15.0.1",
"eslint-plugin-import": "^2.6.0",
"eslint-plugin-jsx-a11y": "^5.1.0",
"eslint-config-airbnb": "^15.0.2",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-jsx-a11y": "^5.1.1",
"eslint-plugin-react": "^7.1.0",

@@ -43,3 +43,3 @@ "html-webpack-plugin": "^2.29.0",

"karma-browserify": "^5.0.5",
"karma-browserstack-launcher": "^1.0.1",
"karma-browserstack-launcher": "^1.3.0",
"karma-mocha": "^1.3.0",

@@ -51,3 +51,3 @@ "karma-phantomjs-launcher": "^1.0.0",

"react-dom": "^15.6.1",
"rollup": "^0.42.0",
"rollup": "^0.45.2",
"rollup-plugin-babel": "^2.7.1",

@@ -58,4 +58,4 @@ "rollup-plugin-node-resolve": "^3.0.0",

"watchify": "^3.9.0",
"webpack": "^2.6.1",
"webpack-dev-server": "^2.5.0"
"webpack": "^3.2.0",
"webpack-dev-server": "^2.5.1"
},

@@ -62,0 +62,0 @@ "main": "lib/index.js",

@@ -5,3 +5,3 @@ # react-input-mask

Yet another React component for input masking. Simple and made with attention to UX. Compatible with IE8.
Yet another React component for input masking. Made with attention to UX. Compatible with IE8+.

@@ -13,3 +13,3 @@ #### [Demo](http://sanniassin.github.io/react-input-mask/demo.html)

Also you can use it without module bundler
Also you can use it without a module bundler
```html

@@ -26,21 +26,21 @@ <!-- Load React first -->

Mask string. Format characters are:<br/>
<code>9</code>: <code>0-9</code><br/>
<code>a</code>: <code>A-Z, a-z</code><br/>
<code>*</code>: <code>A-Z, a-z, 0-9</code>
Mask string. Default format characters are:<br/>
`9`: `0-9`<br/>
`a`: `A-Z, a-z`<br/>
`*: A-Z, a-z, 0-9`
Any character can be escaped with backslash, which usually will appear as double backslash in JS strings. For example, German phone mask with unremoveable prefix +49 will look like <code>mask="+4\\9 99 999 99"</code> or <code>mask={"+4\\\\9 99 999 99"}</code>
Any character can be escaped with a backslash. It will appear as a double backslash in JS strings. For example, a German phone mask with unremoveable prefix +49 will look like <code>mask="+4\\9 99 999 99"</code> or <code>mask={"+4\\\\9 99 999 99"}</code>
### `maskChar` : `string`
Character to cover unfilled editable parts of mask. Default character is "_". If set to null or empty string, unfilled parts will be empty, like in ordinary input.
Character to cover unfilled parts of the mask. Default character is "\_". If set to null or empty string, unfilled parts will be empty as in ordinary input.
### `formatChars` : `object`
Defines format characters with characters as keys and corresponding RegExp string as values. Default ones:
Defines format characters with characters as a keys and corresponding RegExp strings as a values. Default ones:
```js
{
"9": "[0-9]",
"a": "[A-Za-z]",
"*": "[A-Za-z0-9]"
'9': '[0-9]',
'a': '[A-Za-z]',
'*': '[A-Za-z0-9]'
}

@@ -51,3 +51,3 @@ ```

Show mask even in empty input without focus.
Show mask when input is empty and has no focus.

@@ -67,2 +67,2 @@ ## Example

## Thanks
Thanks to [BrowserStack](https://www.browserstack.com/) for help with testing on real devices
Thanks to [BrowserStack](https://www.browserstack.com/) for the help with testing on real devices
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc