@e-group/material-lab
Version:
EGroup Team Lab - Incubator for EGroup Team experimental React components.
160 lines (129 loc) • 5.39 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _FormControlEditor = _interopRequireDefault(require("../FormControlEditor"));
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) { (0, _defineProperty2.default)(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; }
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 = (0, _objectWithoutProperties2.default)(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 = (0, _objectWithoutProperties2.default)(_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.default.createElement(_FormControlEditor.default, (0, _extends2.default)({
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.default.object.isRequired,
meta: _propTypes.default.object.isRequired
};
var _default = FormControlEditorField;
exports.default = _default;