UNPKG

focus-components-v3

Version:

Focus web components to build applications (based on Material Design)

171 lines (132 loc) 15.9 kB
'use strict'; 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