@vs-form/vs-text-mask
Version:
TextMask Component for vs-form
55 lines (48 loc) • 1.85 kB
JavaScript
;
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;