UNPKG

v5gl-form-builder

Version:

Customise form builder from ecsite

380 lines (354 loc) 13.7 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = LongTextOptions; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireWildcard(require("react")); var _styles = require("@material-ui/core/styles"); var _core = require("@material-ui/core"); var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl")); var _NativeSelect = _interopRequireDefault(require("@material-ui/core/NativeSelect")); var _InputBase = _interopRequireDefault(require("@material-ui/core/InputBase")); var _CheckCircle = _interopRequireDefault(require("@material-ui/icons/CheckCircle")); var _RadioButtonUnchecked = _interopRequireDefault(require("@material-ui/icons/RadioButtonUnchecked")); var BootstrapInput = (0, _styles.withStyles)(function (theme) { return { root: { 'label + &': { marginTop: theme.spacing(3) } }, input: { borderRadius: 4, position: 'relative', backgroundColor: theme.palette.background.paper, border: '1px solid #ced4da', fontSize: 16, padding: '10px 26px 10px 12px', transition: theme.transitions.create(['border-color', 'box-shadow']), // Use the system font instead of the default Roboto font. fontFamily: ['-apple-system', 'BlinkMacSystemFont', '"Segoe UI"', 'Roboto', '"Helvetica Neue"', 'Arial', 'sans-serif', '"Apple Color Emoji"', '"Segoe UI Emoji"', '"Segoe UI Symbol"'].join(','), '&:focus': { borderRadius: 4, borderColor: '#80bdff', boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)' } } }; })(_InputBase["default"]); var useStyles = (0, _styles.makeStyles)(function (theme) { return { formControl: { //margin: theme.spacing(1), minWidth: '100%' }, validationSelect: { //margin: theme.spacing(1), minWidth: '50%' }, selectEmpty: { marginTop: theme.spacing(2) }, checked: { border: "1px solid #2C3E93", color: "#2C3E93", height: "30px", padding: " 0 0 0 0.5rem", marginLeft: "0.1rem", marginRight: "0.35rem", borderRadius: "4px" }, unchecked: { border: "1px solid #00000099", height: "30px", padding: " 0 0 0 0.5rem", marginLeft: "0.1rem", marginRight: "0.35rem", borderRadius: "4px" }, subHeading: { opacity: "0.6", fontSize: "16px", fontWeight: "normal", display: "inline" }, button: { height: "28px" // outline: "none !important", // textTransform: "capitalize", } }; }); function LongTextOptions(props) { var _customOptions$limitT, _customOptions$editor, _customOptions$valida, _customOptions$editor2, _customOptions$editor3; var classes = useStyles(); var _useState = (0, _react.useState)(false), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), minValError = _useState2[0], setMinValueError = _useState2[1]; var _useState3 = (0, _react.useState)(false), _useState4 = (0, _slicedToArray2["default"])(_useState3, 2), maxValError = _useState4[0], setMaxValueError = _useState4[1]; var customOptions = props.element.customOptions; var limitTypeOptions = (_customOptions$limitT = customOptions.limitTypeOptions) === null || _customOptions$limitT === void 0 ? void 0 : _customOptions$limitT.split(','); var editorModeOptions = (_customOptions$editor = customOptions.editorModeOptions) === null || _customOptions$editor === void 0 ? void 0 : _customOptions$editor.split(','); var validationOptions = (_customOptions$valida = customOptions.validationOptions) === null || _customOptions$valida === void 0 ? void 0 : _customOptions$valida.split(','); var isDisabled = props.element.customOptions.isFieldDisabled; if (customOptions.isLimitEntry) { customOptions.min = customOptions.min; customOptions.max = customOptions.max; } else { customOptions.min = ""; customOptions.max = ""; } return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.Grid, { item: true, xs: 12, className: "my-3" }, !isDisabled && /*#__PURE__*/_react["default"].createElement(_FormControl["default"], { component: "fieldset" }, /*#__PURE__*/_react["default"].createElement("h5", { className: classes.subHeading }, "Editor Mode"), /*#__PURE__*/_react["default"].createElement(_core.RadioGroup, { row: true, "aria-label": "material", name: "material", value: customOptions.editorMode, onChange: function onChange(e) { return props.editElementCustomOptionsProp('editorMode', 'value', e); } }, editorModeOptions === null || editorModeOptions === void 0 ? void 0 : editorModeOptions.map(function (option, index) { return /*#__PURE__*/_react["default"].createElement(_core.FormControlLabel, { style: { marginRight: '8px', marginBottom: '0.8rem' }, justifyContent: "space-between", key: option + index, className: customOptions.editorMode === option ? classes.checked : classes.unchecked, value: option, control: /*#__PURE__*/ // <Grid container > // <Grid item> _react["default"].createElement(_core.Radio, { size: "small", color: "primary", icon: /*#__PURE__*/_react["default"].createElement(_RadioButtonUnchecked["default"], { className: "checkboxSize" }), checkedIcon: /*#__PURE__*/_react["default"].createElement(_CheckCircle["default"], { className: "checkboxSize" }) }) // </Grid> // </Grid> , label: option.split("_").join(" "), labelPlacement: "start" }); })))), ((_customOptions$editor2 = customOptions.editorMode) === null || _customOptions$editor2 === void 0 ? void 0 : _customOptions$editor2.toLowerCase()) === 'plain_text' && /*#__PURE__*/_react["default"].createElement(_core.Grid, { item: true, xs: 12 }, !isDisabled && /*#__PURE__*/_react["default"].createElement(_FormControl["default"], { fullWidth: true, variant: "outlined", className: "".concat(classes.validationSelect, " mt-2") }, /*#__PURE__*/_react["default"].createElement(_core.InputLabel, { id: "defaultSelect" }, "Validation"), /*#__PURE__*/_react["default"].createElement(_core.Select, { id: "demo-customized-select-outlined", fullWidth: true, label: "Validation" // input={<BootstrapInput />} , MenuProps: { anchorOrigin: { vertical: "bottom", horizontal: "left" }, getContentAnchorEl: null }, value: customOptions.validationType, onChange: function onChange(e) { return props.setValidationType(e.target.value); } }, validationOptions.map(function (type, index) { return /*#__PURE__*/_react["default"].createElement(_core.MenuItem, { value: type, key: type + "_option_" + index }, type); })))), ((_customOptions$editor3 = customOptions.editorMode) === null || _customOptions$editor3 === void 0 ? void 0 : _customOptions$editor3.toLowerCase()) !== 'rich_text' && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.Grid, { item: true, className: "my-3" }, !isDisabled && /*#__PURE__*/_react["default"].createElement(_FormControl["default"], { component: "fieldset", className: "mt-2" }, /*#__PURE__*/_react["default"].createElement(_core.Grid, { container: true, justifyContent: "flex-start", alignItems: "center" }, /*#__PURE__*/_react["default"].createElement(_core.Grid, { item: true, className: "mr-2" }, /*#__PURE__*/_react["default"].createElement("h6", { className: classes.subHeading }, "Entry Limit:")), /*#__PURE__*/_react["default"].createElement(_core.FormControlLabel, { className: "p-0 m-0", size: "small", control: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.Button, (0, _defineProperty2["default"])({ variant: "outlined", className: classes.button, style: { outline: "none", textTransform: "capitalize" }, color: customOptions.isLimitEntry ? "default" : "primary", size: "small", onClick: function onClick(e) { return props.editElementCustomOptionsProp('isLimitEntry', false, e); }, name: "no" }, "className", "ml-2 mr-2"), /*#__PURE__*/_react["default"].createElement("span", null, "No"), /*#__PURE__*/_react["default"].createElement(_core.Checkbox, { size: "small", className: "p-0 ml-1", color: "primary", name: "no", icon: /*#__PURE__*/_react["default"].createElement(_RadioButtonUnchecked["default"], { className: "checkboxSize" }), checked: customOptions.isLimitEntry ? false : true, checkedIcon: /*#__PURE__*/_react["default"].createElement(_CheckCircle["default"], { className: "checkboxSize" }) })), /*#__PURE__*/_react["default"].createElement(_core.Button, (0, _defineProperty2["default"])({ variant: "outlined", size: "small", className: classes.button, style: { outline: "none", textTransform: "capitalize" }, color: customOptions.isLimitEntry ? "primary" : "default", onClick: function onClick(e) { return props.editElementCustomOptionsProp('isLimitEntry', true, e); }, name: "yes" }, "className", "ml-2 mr-2"), /*#__PURE__*/_react["default"].createElement("span", null, "Yes"), /*#__PURE__*/_react["default"].createElement(_core.Checkbox, { size: "small", className: "p-0 ml-1", color: "primary", name: "yes", icon: /*#__PURE__*/_react["default"].createElement(_RadioButtonUnchecked["default"], { className: "checkboxSize" }), checked: customOptions.isLimitEntry ? true : false, checkedIcon: /*#__PURE__*/_react["default"].createElement(_CheckCircle["default"], { className: "checkboxSize" }) }))) })))), customOptions.isLimitEntry ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !isDisabled && /*#__PURE__*/_react["default"].createElement(_core.Grid, { container: true, justifyContent: "space-between", className: "my-2" }, /*#__PURE__*/_react["default"].createElement(_core.Grid, { item: true, xs: 12, sm: 6 }, /*#__PURE__*/_react["default"].createElement(_core.TextField, { className: "pr-3", type: "number", variant: "outlined", fullWidth: true, label: "Min Limit", error: minValError, inputProps: { min: 0, max: customOptions.max }, onKeyPress: function onKeyPress(data) { if (data.charCode === 45) { data.preventDefault(); } }, defaultValue: customOptions.min, onChange: function onChange(e) { if (e.target.value > customOptions.max) { setMinValueError(true); setMaxValueError(false); } else { setMinValueError(false); setMaxValueError(false); } props.setNumberLimit('min', e.target.value); } // helperText="Minimum" })), /*#__PURE__*/_react["default"].createElement(_core.Grid, { item: true, xs: 12, sm: 6 }, /*#__PURE__*/_react["default"].createElement(_core.TextField, { className: "pl-1", type: "number", variant: "outlined", label: "Max Limit", fullWidth: true // style={{marginLeft:"10px"}} , inputProps: { min: 1 }, error: maxValError, onKeyPress: function onKeyPress(data) { if (data.charCode === 45) { data.preventDefault(); } }, defaultValue: customOptions.max, onChange: function onChange(e) { if (e.target.value < customOptions.min) { setMaxValueError(true); } else { setMaxValueError(false); setMinValueError(false); } props.setNumberLimit('max', e.target.value); } // helperText="Maximum" }))), !isDisabled && /*#__PURE__*/_react["default"].createElement(_core.Grid, { item: true, xs: 12, sm: 12, className: "my-2" }, /*#__PURE__*/_react["default"].createElement(_FormControl["default"], { fullWidth: true, variant: "outlined", className: classes.formControl }, /*#__PURE__*/_react["default"].createElement(_core.InputLabel, { id: "defaultSelect" }, "Type"), /*#__PURE__*/_react["default"].createElement(_core.Select, { id: "demo-customized-select-outlined", fullWidth: true, value: customOptions.limitType //input={<BootstrapInput />} , MenuProps: { anchorOrigin: { vertical: "bottom", horizontal: "left" }, getContentAnchorEl: null }, label: "Type", onChange: function onChange(e) { return props.editElementCustomOptionsProp('limitType', 'value', e); } }, limitTypeOptions && limitTypeOptions.map(function (limitOption, index) { return /*#__PURE__*/_react["default"].createElement(_core.MenuItem, { key: limitOption + index, value: limitOption }, limitOption); }))))) : /*#__PURE__*/_react["default"].createElement(_core.Grid, { item: true, xs: 12, sm: 9 }))); }