UNPKG

@vs-form/vs-text-mask

Version:

TextMask Component for vs-form

55 lines (48 loc) 1.85 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var React = require('react'); var vsForm = require('@vs-form/vs-form'); var MaskedInput = _interopDefault(require('react-text-mask')); class VsMaskInput extends React.Component { constructor(props) { super(props); this.changeValue = (dataProps) => (evt) => { const value = evt.target.value; dataProps.updateValue(value); }; this.initProps = () => { const maskProps = this.comp.maskProps; if (maskProps) { vsForm.set(this.comp.props, 'InputProps.inputComponent', this.TextMaskCustom); } }; this.TextMaskCustom = (p) => { const { inputRef, ...other } = p; if (this.comp.maskProps) { return (React.createElement(MaskedInput, Object.assign({}, other, { ref: p.inputRef }, this.comp.maskProps))); } else { return null; } }; this.initProps(); } get comp() { return this.props.comp; } render() { return React.createElement(vsForm.BaseInput, Object.assign({ value: this.getValue, onChange: this.changeValue }, this.props)); } getValue(dataProps) { let defaultValue; if (vsForm.common.dataTypeIsArray(this.comp.data.dataType)) { defaultValue = []; } else { defaultValue = ''; } return dataProps.state.value || defaultValue; } } const register = () => vsForm.registerComponent(vsForm.enums.Component.maskinput, VsMaskInput); exports.VsMaskInput = VsMaskInput; exports.register = register;