focus-components-v3
Version:
Focus web components to build applications (based on Material Design)
171 lines (132 loc) • 15.9 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
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; };
var _dec, _class;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _identity = require('lodash/identity');
var _identity2 = _interopRequireDefault(_identity);
var _i18next = require('i18next');
var _i18next2 = _interopRequireDefault(_i18next);
var _material = require('../behaviours/material');
var _material2 = _interopRequireDefault(_material);
var _inputComponent = require('../behaviours/input-component');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
/**
* Component standing for an HTML input.
*/
var InputTextarea = (_dec = (0, _material2.default)('inputTextarea'), _dec(_class = (0, _inputComponent.InputBehaviour)(_class = function (_PureComponent) {
_inherits(InputTextarea, _PureComponent);
function InputTextarea() {
var _temp, _this, _ret;
_classCallCheck(this, InputTextarea);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, _PureComponent.call.apply(_PureComponent, [this].concat(args))), _this), _this.getValue = function () {
var domEl = _reactDom2.default.findDOMNode(_this.refs.htmlInput);
return domEl.value;
}, _this._handleonChange = function (evt) {
var onChange = _this.props.onChange;
var value = evt.target.value;
return onChange(value);
}, _temp), _possibleConstructorReturn(_this, _ret);
}
/**
* Get the dom value of the component.
* @return {object} - The unformated dom value.
*/
InputTextarea.prototype.componentDidUpdate = function componentDidUpdate() {
var valid = this.props.valid;
if (valid) {
// Make sure that the main div does not hold a is-invalid class when there's no error
// MDL keeps the class even if React removes it
this.refs.inputTextarea.classList.remove('is-invalid');
}
};
/**
* Handle the change on the input text, it only propagate the value.
* @param {object} evt - The react DOM event.
* @return {object} - The function onChannge from the props, called.
*/
/**
* @inheritdoc
* @override
*/
InputTextarea.prototype.render = function render() {
var validInputProps = this._checkProps(this.props);
var _props = this.props,
error = _props.error,
formatter = _props.formatter,
rawInputValue = _props.rawInputValue,
valid = _props.valid,
name = _props.name,
style = _props.style,
placeholder = _props.placeholder;
var pattern = valid ? null : 'hasError'; //add pattern to overide mdl error style when displaying an focus error.
var mdlClasses = 'mdl-textfield mdl-js-textfield' + (!valid ? ' is-invalid' : '');
validInputProps.value = formatter(rawInputValue === undefined || rawInputValue === null ? '' : rawInputValue);
validInputProps.id = name;
var inputProps = _extends({}, validInputProps, { pattern: pattern });
return _react2.default.createElement(
'div',
{ 'data-error': !!error, 'data-focus': 'input-textarea' },
_react2.default.createElement(
'div',
{ className: mdlClasses, ref: 'inputTextarea', style: style },
_react2.default.createElement('textarea', _extends({ className: 'mdl-textfield__input', ref: 'htmlInput' }, inputProps)),
_react2.default.createElement(
'label',
{ className: 'mdl-textfield__label', htmlFor: name },
_i18next2.default.t(placeholder)
)
),
!valid && _react2.default.createElement(
'div',
{ className: 'label-error', ref: 'error' },
error
)
);
};
return InputTextarea;
}(_react.PureComponent)) || _class) || _class);
//Static props.
InputTextarea.displayName = 'InputTextarea';
InputTextarea.defaultProps = {
cols: 50,
error: 'input.textarea.error.default',
formatter: _identity2.default,
minLength: 0,
rows: 6,
type: 'text',
valid: true
};
InputTextarea.propTypes = {
cols: _react.PropTypes.number,
error: _react.PropTypes.string,
formatter: _react.PropTypes.func,
minLength: _react.PropTypes.number,
maxLength: _react.PropTypes.number,
name: _react.PropTypes.string.isRequired,
onBlur: _react.PropTypes.func.isRequired,
onChange: _react.PropTypes.func.isRequired,
onFocus: _react.PropTypes.func.isRequired,
onClick: _react.PropTypes.func.isRequired,
onKeyPress: _react.PropTypes.func,
placeholder: _react.PropTypes.string,
rawInputValue: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.number]),
rows: _react.PropTypes.number,
type: _react.PropTypes.string,
valid: _react.PropTypes.bool
};
exports.default = InputTextarea;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZyLUZSLmpzIl0sIm5hbWVzIjpbIklucHV0VGV4dGFyZWEiLCJnZXRWYWx1ZSIsImRvbUVsIiwiZmluZERPTU5vZGUiLCJyZWZzIiwiaHRtbElucHV0IiwidmFsdWUiLCJfaGFuZGxlb25DaGFuZ2UiLCJldnQiLCJvbkNoYW5nZSIsInByb3BzIiwidGFyZ2V0IiwiY29tcG9uZW50RGlkVXBkYXRlIiwidmFsaWQiLCJpbnB1dFRleHRhcmVhIiwiY2xhc3NMaXN0IiwicmVtb3ZlIiwicmVuZGVyIiwidmFsaWRJbnB1dFByb3BzIiwiX2NoZWNrUHJvcHMiLCJlcnJvciIsImZvcm1hdHRlciIsInJhd0lucHV0VmFsdWUiLCJuYW1lIiwic3R5bGUiLCJwbGFjZWhvbGRlciIsInBhdHRlcm4iLCJtZGxDbGFzc2VzIiwidW5kZWZpbmVkIiwiaWQiLCJpbnB1dFByb3BzIiwidCIsImRpc3BsYXlOYW1lIiwiZGVmYXVsdFByb3BzIiwiY29scyIsIm1pbkxlbmd0aCIsInJvd3MiLCJ0eXBlIiwicHJvcFR5cGVzIiwibnVtYmVyIiwic3RyaW5nIiwiZnVuYyIsIm1heExlbmd0aCIsImlzUmVxdWlyZWQiLCJvbkJsdXIiLCJvbkZvY3VzIiwib25DbGljayIsIm9uS2V5UHJlc3MiLCJvbmVPZlR5cGUiLCJib29sIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTs7O0lBS01BLGEsV0FGTCx3QkFBWSxlQUFaLEM7Y0FFS0EsYTs7YUFBQUEsYTs7OzhCQUFBQSxhOzs7Ozs7d0pBTUZDLFEsR0FBVyxZQUFNO0FBQ2IsZ0JBQU1DLFFBQVEsbUJBQVNDLFdBQVQsQ0FBcUIsTUFBS0MsSUFBTCxDQUFVQyxTQUEvQixDQUFkO0FBQ0EsbUJBQU9ILE1BQU1JLEtBQWI7QUFDSCxTLFFBZURDLGUsR0FBa0IsVUFBQ0MsR0FBRCxFQUFTO0FBQUEsZ0JBQ2hCQyxRQURnQixHQUNKLE1B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QkcsYUFBUyxpQkFBVUwsSUFBVixDQUFlRSxVQVZGO0FBV3RCSSxnQkFBWSxpQkFBVU4sSUFYQTtBQVl0QmhCLGlCQUFhLGlCQUFVZSxNQVpEO0FBYXRCbEIsbUJBQWUsaUJBQVUwQixTQUFWLENBQW9CLENBQy9CLGlCQUFVUixNQURxQixFQUUvQixpQkFBVUQsTUFGcUIsQ0FBcEIsQ0FiTztBQWlCdEJILFVBQU0saUJBQVVHLE1BakJNO0FBa0J0QkYsVUFBTSxpQkFBVUcsTUFsQk07QUFtQnRCM0IsV0FBTyxpQkFBVW9DO0FBbkJLLENBQTFCO2tCQXFCZWpELGEiLCJmaWxlIjoiZnItRlIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXMsIFB1cmVDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XHJcbmltcG9ydCBpZGVudGl0eSBmcm9tICdsb2Rhc2gvaWRlbnRpdHknO1xyXG5pbXBvcnQgaTE4bmV4dCBmcm9tICdpMThuZXh0JztcclxuaW1wb3J0IE1EQmVoYXZpb3VyIGZyb20gJy4uL2JlaGF2aW91cnMvbWF0ZXJpYWwnO1xyXG5pbXBvcnQge0lucHV0QmVoYXZpb3VyfSBmcm9tICcuLi9iZWhhdmlvdXJzL2lucHV0LWNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuKiBDb21wb25lbnQgc3RhbmRpbmcgZm9yIGFuIEhUTUwgaW5wdXQuXHJcbiovXHJcbkBNREJlaGF2aW91cignaW5wdXRUZXh0YXJlYScpXHJcbkBJbnB1dEJlaGF2aW91clxyXG5jbGFzcyBJbnB1dFRleHRhcmVhIGV4dGVuZHMgUHVyZUNvbXBvbmVudCB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldCB0aGUgZG9tIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXHJcbiAgICAqIEByZXR1cm4ge29iamVjdH0gLSBUaGUgdW5mb3JtYXRlZCBkb20gdmFsdWUuXHJcbiAgICAqL1xyXG4gICAgZ2V0VmFsdWUgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZG9tRWwgPSBSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzLnJlZnMuaHRtbElucHV0KTtcclxuICAgICAgICByZXR1cm4gZG9tRWwudmFsdWU7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcclxuICAgICAgICBjb25zdCB7dmFsaWR9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIG1haW4gZGl2IGRvZXMgbm90IGhvbGQgYSBpcy1pbnZhbGlkIGNsYXNzIHdoZW4gdGhlcmUncyBubyBlcnJvclxyXG4gICAgICAgICAgICAvLyBNREwga2VlcHMgdGhlIGNsYXNzIGV2ZW4gaWYgUmVhY3QgcmVtb3ZlcyBpdFxyXG4gICAgICAgICAgICB0aGlzLnJlZnMuaW5wdXRUZXh0YXJlYS5jbGFzc0xpc3QucmVtb3ZlKCdpcy1pbnZhbGlkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAqIEhhbmRsZSB0aGUgY2hhbmdlIG9uIHRoZSBpbnB1dCB0ZXh0LCBpdCBvbmx5IHByb3BhZ2F0ZSB0aGUgdmFsdWUuXHJcbiAgICAqIEBwYXJhbSAge29iamVjdH0gZXZ0IC0gVGhlIHJlYWN0IERPTSBldmVudC5cclxuICAgICogQHJldHVybiB7b2JqZWN0fSAtIFRoZSBmdW5jdGlvbiBvbkNoYW5uZ2UgZnJvbSB0aGUgcHJvcHMsIGNhbGxlZC5cclxuICAgICovXHJcbiAgICBfaGFuZGxlb25DaGFuZ2UgPSAoZXZ0KSA9PiB7XHJcbiAgICAgICAgY29uc3Qge29uQ2hhbmdlfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IGV2dC50YXJnZXQ7XHJcbiAgICAgICAgcmV0dXJuIG9uQ2hhbmdlKHZhbHVlKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICogQGluaGVyaXRkb2NcclxuICAgICogQG92ZXJyaWRlXHJcbiAgICAqL1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHZhbGlkSW5wdXRQcm9wcyA9IHRoaXMuX2NoZWNrUHJvcHModGhpcy5wcm9wcyk7XHJcblxyXG5cclxuICAgICAgICBjb25zdCB7ZXJyb3IsIGZvcm1hdHRlciwgcmF3SW5wdXRWYWx1ZSwgdmFsaWQsIG5hbWUsIHN0eWxlLCBwbGFjZWhvbGRlcn0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gdmFsaWQgPyBudWxsIDogJ2hhc0Vycm9yJzsgLy9hZGQgcGF0dGVybiB0byBvdmVyaWRlIG1kbCBlcnJvciBzdHlsZSB3aGVuIGRpc3BsYXlpbmcgYW4gZm9jdXMgZXJyb3IuXHJcbiAgICAgICAgY29uc3QgbWRsQ2xhc3NlcyA9IGBtZGwtdGV4dGZpZWxkIG1kbC1qcy10ZXh0ZmllbGQkeyF2YWxpZCA/ICcgaXMtaW52YWxpZCcgOiAnJ31gO1xyXG5cclxuICAgICAgICB2YWxpZElucHV0UHJvcHMudmFsdWUgPSBmb3JtYXR0ZXIocmF3SW5wdXRWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHJhd0lucHV0VmFsdWUgPT09IG51bGwgPyAnJyA6IHJhd0lucHV0VmFsdWUpO1xyXG4gICAgICAgIHZhbGlkSW5wdXRQcm9wcy5pZCA9IG5hbWU7XHJcbiAgICAgICAgY29uc3QgaW5wdXRQcm9wcyA9IHsuLi52YWxpZElucHV0UHJvcHMsIHBhdHRlcm59O1xyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGRhdGEtZXJyb3I9eyEhZXJyb3J9IGRhdGEtZm9jdXM9J2lucHV0LXRleHRhcmVhJz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXttZGxDbGFzc2VzfSByZWY9J2lucHV0VGV4dGFyZWEnIHN0eWxlPXtzdHlsZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzTmFtZT0nbWRsLXRleHRmaWVsZF9faW5wdXQnIHJlZj0naHRtbElucHV0JyB7Li4uaW5wdXRQcm9wc30gLz5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPSdtZGwtdGV4dGZpZWxkX19sYWJlbCcgaHRtbEZvcj17bmFtZX0+e2kxOG5leHQudChwbGFjZWhvbGRlcil9PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgeyF2YWxpZCAmJiA8ZGl2IGNsYXNzTmFtZT0nbGFiZWwtZXJyb3InIHJlZj0nZXJyb3InPntlcnJvcn08L2Rpdj59XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vU3RhdGljIHByb3BzLlxyXG5JbnB1dFRleHRhcmVhLmRpc3BsYXlOYW1lID0gJ0lucHV0VGV4dGFyZWEnO1xyXG5JbnB1dFRleHRhcmVhLmRlZmF1bHRQcm9wcyA9IHtcclxuICAgIGNvbHM6IDUwLFxyXG4gICAgZXJyb3I6ICdpbnB1dC50ZXh0YXJlYS5lcnJvci5kZWZhdWx0JyxcclxuICAgIGZvcm1hdHRlcjogaWRlbnRpdHksXHJcbiAgICBtaW5MZW5ndGg6IDAsXHJcbiAgICByb3dzOiA2LFxyXG4gICAgdHlwZTogJ3RleHQnLFxyXG4gICAgdmFsaWQ6IHRydWVcclxufTtcclxuSW5wdXRUZXh0YXJlYS5wcm9wVHlwZXMgPSB7XHJcbiAgICBjb2xzOiBQcm9wVHlwZXMubnVtYmVyLFxyXG4gICAgZXJyb3I6IFByb3BUeXBlcy5zdHJpbmcsXHJcbiAgICBmb3JtYXR0ZXI6IFByb3BUeXBlcy5mdW5jLFxyXG4gICAgbWluTGVuZ3RoOiBQcm9wVHlwZXMubnVtYmVyLFxyXG4gICAgbWF4TGVuZ3RoOiBQcm9wVHlwZXMubnVtYmVyLFxyXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxyXG4gICAgb25CbHVyOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxyXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXHJcbiAgICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxyXG4gICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcclxuICAgIG9uS2V5UHJlc3M6IFByb3BUeXBlcy5mdW5jLFxyXG4gICAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXHJcbiAgICByYXdJbnB1dFZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcclxuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxyXG4gICAgICAgIFByb3BUeXBlcy5udW1iZXJcclxuICAgIF0pLFxyXG4gICAgcm93czogUHJvcFR5cGVzLm51bWJlcixcclxuICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXHJcbiAgICB2YWxpZDogUHJvcFR5cGVzLmJvb2xcclxufTtcclxuZXhwb3J0IGRlZmF1bHQgSW5wdXRUZXh0YXJlYTtcclxuIl19
;