UNPKG

@e-group/material-lab

Version:

EGroup Team Lab - Incubator for EGroup Team experimental React components.

146 lines (122 loc) 4.92 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import React from 'react'; import PropTypes from 'prop-types'; import FormControlEditor from '../FormControlEditor'; const FormControlEditorField = props => { const input = props.input, _props$meta = props.meta, touched = _props$meta.touched, error = _props$meta.error, invalid = _props$meta.invalid, errorProp = props.error, helperText = props.helperText, EditorProps = props.EditorProps, other = _objectWithoutProperties(props, ["input", "meta", "error", "helperText", "EditorProps"]); const _ref = EditorProps || {}, onChange = _ref.onChange, handleReturnProp = _ref.handleReturn, handleKeyCommandProp = _ref.handleKeyCommand, handleBeforeInputProp = _ref.handleBeforeInput, handlePastedTextProp = _ref.handlePastedText, handlePastedFilesProp = _ref.handlePastedFiles, handleDroppedFilesProp = _ref.handleDroppedFiles, handleDropProp = _ref.handleDrop, otherEditorProps = _objectWithoutProperties(_ref, ["onChange", "handleReturn", "handleKeyCommand", "handleBeforeInput", "handlePastedText", "handlePastedFiles", "handleDroppedFiles", "handleDrop"]); const isError = touched && invalid; const handleChange = editorState => { input.onChange(editorState); if (onChange) { onChange(editorState); } }; const getHandleReturn = () => { if (handleReturnProp) { return (e, editorState) => handleReturnProp(e, editorState, { input, meta: props.meta }); } return undefined; }; const getHandleKeyCommand = () => { if (handleKeyCommandProp) { return (command, editorState) => handleKeyCommandProp(command, editorState, { input, meta: props.meta }); } return undefined; }; const getHandleBeforeInput = () => { if (handleBeforeInputProp) { return (chars, editorState, eventTimeStamp) => handleBeforeInputProp(chars, editorState, eventTimeStamp, { input, meta: props.meta }); } return undefined; }; const getHandlePastedText = () => { if (handlePastedTextProp) { return (text, html, editorState) => handlePastedTextProp(text, html, editorState, { input, meta: props.meta }); } return undefined; }; const getHandlePastedFiles = () => { if (handlePastedFilesProp) { return files => handlePastedFilesProp(files, { input, meta: props.meta }); } return undefined; }; const getHandleDroppedFiles = () => { if (handleDroppedFilesProp) { return (selection, files) => handleDroppedFilesProp(selection, files, { input, meta: props.meta }); } return undefined; }; const getHandleDrop = () => { if (handleDropProp) { return (selection, dataTransfer, isInternal) => handleDropProp(selection, dataTransfer, isInternal, { input, meta: props.meta }); } return undefined; }; return /*#__PURE__*/React.createElement(FormControlEditor, _extends({ EditorProps: _objectSpread({ editorState: input.value, onChange: handleChange, handleReturn: getHandleReturn(), handleKeyCommand: getHandleKeyCommand(), handleBeforeInput: getHandleBeforeInput(), handlePastedText: getHandlePastedText(), handlePastedFiles: getHandlePastedFiles(), handleDroppedFiles: getHandleDroppedFiles(), handleDrop: getHandleDrop() }, otherEditorProps), error: isError, helperText: isError ? error : helperText }, other)); }; FormControlEditorField.propTypes = { /** * redux from props */ input: PropTypes.object.isRequired, meta: PropTypes.object.isRequired }; export default FormControlEditorField;