UNPKG

@talixo/masked-input

Version:

UI Component which represents Masked Input

2 lines (1 loc) 3.97 kB
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var React=_interopDefault(require("react")),PropTypes=_interopDefault(require("prop-types")),shared=require("@talixo/shared"),classCallCheck=function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")},createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(r,t,n){return t&&e(r.prototype,t),n&&e(r,n),r}}(),inherits=function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function, not "+typeof r);e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),r&&(Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r)},objectWithoutProperties=function(e,r){var t={};for(var n in e)r.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},possibleConstructorReturn=function(e,r){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!r||"object"!=typeof r&&"function"!=typeof r?e:r},moduleName="masked-input",propTypes={className:PropTypes.string,onBlur:PropTypes.func,onChange:PropTypes.func,onFocus:PropTypes.func,renderInput:PropTypes.node.isRequired,renderMask:PropTypes.func.isRequired,value:PropTypes.any},defaultProps={},MaskedInput=function(e){function r(){var e,t,n;classCallCheck(this,r);for(var o=arguments.length,a=Array(o),s=0;s<o;s++)a[s]=arguments[s];return t=n=possibleConstructorReturn(this,(e=r.__proto__||Object.getPrototypeOf(r)).call.apply(e,[this].concat(a))),_initialiseProps.call(n),possibleConstructorReturn(n,t)}return inherits(r,e),createClass(r,[{key:"componentWillReceiveProps",value:function(e){void 0!==e.value&&e.value!==this.state.value&&this.setState({value:e.value})}},{key:"render",value:function(){var e=this.props,r=e.className,t=(e.error,e.onBlur,e.onFocus,e.onChange,e.renderInput),n=(e.renderMask,objectWithoutProperties(e,["className","error","onBlur","onFocus","onChange","renderInput","renderMask"])),o=this.state,a=o.focused,s=o.value,p=this.getInputProps,u=this.maskRenderer,l=shared.buildClassName(moduleName,r),i=p();return React.createElement("div",Object.assign({className:l},n),!a&&s&&u(),React.cloneElement(t,i))}}]),r}(React.Component),_initialiseProps=function(){var e=this;this.state={value:void 0===this.props.value?null:this.props.value,focused:!1},this.handleFocusChange=function(r){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var a=e.props,s=a.onFocus,p=a.onBlur,u=e.props.renderInput.props,l=u.onFocus,i=u.onBlur;e.setState({focused:r}),r&&(s&&s.apply(void 0,[r].concat(n)),l&&l.apply(void 0,n)),r||(p&&p.apply(void 0,[r].concat(n)),i&&i.apply(void 0,n))},this.focus=function(){for(var r=arguments.length,t=Array(r),n=0;n<r;n++)t[n]=arguments[n];e.handleFocusChange.apply(e,[!0].concat(t))},this.blur=function(){for(var r=arguments.length,t=Array(r),n=0;n<r;n++)t[n]=arguments[n];e.handleFocusChange.apply(e,[!1].concat(t))},this.handleChange=function(r){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var a=e.props,s=a.onChange,p=a.value,u=e.props.renderInput.props.onChange;s&&s.apply(void 0,[r].concat(n)),u&&u.apply(void 0,[r].concat(n)),void 0===p&&e.setState({value:r})},this.getInputProps=function(){var r=e.props.renderInput;return Object.assign({},r.props,{onBlur:e.blur,onFocus:e.focus,onChange:e.handleChange})},this.maskRenderer=function(){var r=(0,e.props.renderMask)(e.state.value);return React.cloneElement(r,Object.assign({},r.props,{className:shared.buildClassName([moduleName,"mask"],r.props.className)}))}};MaskedInput.propTypes=propTypes,MaskedInput.defaultProps=defaultProps,exports.MaskedInput=MaskedInput;