v5gl-form-builder
Version:
Customise form builder from ecsite
546 lines (521 loc) • 20.2 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireWildcard(require("react"));
var _core = require("@material-ui/core");
var _styles = require("@material-ui/core/styles");
var _styles2 = require("@material-ui/styles");
var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
var _Remove = _interopRequireDefault(require("@material-ui/icons/Remove"));
var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
// const theme = createMuiTheme({
// overrides: {
// MuiFormControlLabel: {
// label: {
// fontSize: '0.875rem',
// }
// }
// }
// });
var characterLimitHelperTheme = (0, _styles.createMuiTheme)({
overrides: {
MuiFormHelperText: {
root: {
marginRight: 0,
textAlign: 'right'
}
}
}
});
var useStyles = (0, _styles2.makeStyles)(function (theme) {
return {
tooltip: {
fontFamily: "SF Pro",
fontSize: "12px"
},
icon: {
color: "#666666",
"&:hover": {
color: "#2C3E93"
}
},
disabledMode: {
backgroundColor: "#d4d4d4 !important"
}
};
});
var RulesEnum = {
STATIC: "static",
DYNAMIC: "dynamic",
INTERLINKED: "interlinked"
};
function TilesOptions(props) {
var inputFieldSize = props.inputFieldSize,
customOptions = props.customOptions,
handleTilesOptions = props.handleTilesOptions,
addTilesOptions = props.addTilesOptions,
removeTilesOptions = props.removeTilesOptions;
var InfoIconTooltip = (0, _styles2.styled)(function (_ref) {
var className = _ref.className,
props = (0, _objectWithoutProperties2["default"])(_ref, ["className"]);
return /*#__PURE__*/_react["default"].createElement(_core.Tooltip, (0, _extends2["default"])({}, props, {
classes: {
popper: className
}
}));
})(function (_ref2) {
var theme = _ref2.theme;
return (0, _defineProperty2["default"])({}, "& .MuiTooltip-tooltip", {
maxWidth: 200,
fontSize: '0.75rem',
textAlign: 'left'
});
});
var _React$useState = _react["default"].useState(30),
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
value = _React$useState2[0],
setValue = _React$useState2[1];
var handleSliderChange = function handleSliderChange(event, newValue, elemProperty, index) {
//setValue(newValue);
handleTilesOptions(elemProperty, index, {
target: {
value: newValue
}
});
}; // const handleInputChange = (elemProperty, index, event) => {
// setValue(event.target.value === '' ? '' : Number(event.target.value));
// };
var handleBlur = function handleBlur(elemProperty, index) {
var value = customOptions.tileProperties[index].text;
if (value < 0) {
//setValue(0);
handleTilesOptions(elemProperty, index, {
target: {
value: 0
}
});
} else if (value > 100) {
//setValue(100);
handleTilesOptions(elemProperty, index, {
target: {
value: 100
}
});
}
};
var handleOnKeyDown = function handleOnKeyDown(event) {
if (event.keyCode === 8 || event.keyCode === 46) {} else if (isNaN(Number(event.key))) {
event.preventDefault();
}
};
var classes = useStyles();
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, customOptions.tileProperties.map(function (option, index) {
var this_key = "tiles_".concat(option.key);
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
key: this_key
}, /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pt-2 pb-3",
style: {
borderBottom: "1px solid #bebebe"
}
}, /*#__PURE__*/_react["default"].createElement("div", {
style: {
backgroundColor: "#f0f0f0",
padding: "15px"
}
}, /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pb-4 flex"
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
disabled: true,
size: "small",
variant: "outlined",
id: "tilesId",
label: "Tile's ID",
value: customOptions.tileProperties[index].ID,
onChange: function onChange(e) {
return handleTilesOptions('title', index, e);
}
}), /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
style: {
padding: '6px'
},
"aria-label": "add"
}, /*#__PURE__*/_react["default"].createElement(_Add["default"] //style={{ marginLeft: "10px" }}
, {
onClick: function onClick(e) {
return addTilesOptions(index, e);
}
}), index > 0 && /*#__PURE__*/_react["default"].createElement(_Remove["default"] //style={{ marginLeft: "10px" }}
, {
onClick: function onClick(e) {
return removeTilesOptions(index, e);
}
}))), /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pb-4"
}, /*#__PURE__*/_react["default"].createElement(_styles.ThemeProvider, {
theme: characterLimitHelperTheme
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
required: true,
fullWidth: true,
size: "small",
variant: "outlined",
id: "outlined-basic",
label: "Title",
value: customOptions.tileProperties[index].title,
FormHelperTextProps: {
className: {
marginLeft: "75%"
}
},
inputProps: {
maxlength: customOptions.charecterLimit
},
onChange: function onChange(e) {
return handleTilesOptions('title', index, e);
},
InputLabelProps: {
classes: {
asterisk: "text-error"
}
},
helperText: "".concat(customOptions.tileProperties[index].title.length, " / ").concat(customOptions.charecterLimit)
}))), /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pb-4"
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
fullWidth: true,
id: "rule",
select: true,
name: "rule",
label: "Select Rule",
type: "text",
variant: "outlined",
value: customOptions.tileProperties[index].rule,
onChange: function onChange(e) {
return handleTilesOptions('rule', index, e);
}
}, /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: RulesEnum.STATIC
}, "Make it Static"), index > 0 && customOptions.tileProperties.filter(function (e) {
return e.textRule === "number";
}).length > 0 && /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: RulesEnum.INTERLINKED
}, "Interlinked tiles component"))), customOptions.tileProperties[index].rule === RulesEnum.STATIC && /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pb-4"
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
fullWidth: true,
id: "textRule",
select: true,
name: "textRule",
label: "Text Attribute",
type: "text",
variant: "outlined",
value: customOptions.tileProperties[index].textRule,
onChange: function onChange(e) {
return handleTilesOptions('textRule', index, e);
}
}, /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: "text"
}, "Short Text"), /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: "number"
}, "Number"))), customOptions.tileProperties[index].rule === RulesEnum.STATIC && customOptions.tileProperties[index].textRule === "text" && /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pb-4"
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
size: "small",
variant: "outlined",
id: "shortTextValue",
name: "shortTextValue",
label: "Text",
value: customOptions.tileProperties[index].text,
type: "text",
fullWidth: true,
onChange: function onChange(e) {
return handleTilesOptions('text', index, e);
}
})), customOptions.tileProperties[index].rule === RulesEnum.STATIC && customOptions.tileProperties[index].textRule === "number" && /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pb-4"
}, /*#__PURE__*/_react["default"].createElement("div", {
style: {
display: "flex",
justifyContent: "space-evenly"
}
}, /*#__PURE__*/_react["default"].createElement("h6", {
style: {
marginRight: "10px",
color: "#bababa"
}
}, "Number Value:"), /*#__PURE__*/_react["default"].createElement(_core.Slider, {
id: "numberTextValue",
name: "numberTextValue",
value: customOptions.tileProperties[index].text,
onChange: function onChange(e, newValue) {
return handleSliderChange(e, newValue, 'text', index);
},
style: {
marginRight: "10px",
width: "132px"
},
"aria-labelledby": "input-slider"
}), /*#__PURE__*/_react["default"].createElement(_core.TextField, {
value: customOptions.tileProperties[index].text,
size: "small",
variant: "outlined",
type: "number",
onKeyDown: function onKeyDown(e) {
return handleOnKeyDown(e);
},
onChange: function onChange(e) {
return handleTilesOptions('text', index, e);
},
onBlur: function onBlur(e) {
return handleBlur('text', index);
},
InputProps: {
inputProps: {
step: 10,
min: 0,
max: 100,
type: 'number',
'aria-labelledby': 'input-slider'
}
},
style: {
width: "70px"
}
}))), customOptions.tileProperties[index].rule === RulesEnum.INTERLINKED && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pb-4"
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
fullWidth: true,
id: "componentOnScreenSource",
select: true,
name: "componentOnScreenSource",
label: "Select Component On Screen",
type: "text",
variant: "outlined",
value: customOptions.tileProperties[index].componentOnScreenSource,
onChange: function onChange(e) {
return handleTilesOptions('componentOnScreenSource', index, e);
}
}, customOptions.tileProperties.map(function (p, i) {
return p.textRule === "number" && /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: p.ID
}, p.ID);
}))), /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
style: {
display: "flex",
justifyContent: "space-around"
},
className: "pb-4"
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_core.Button, {
className: !customOptions.tileProperties[index].componentOnScreenTarget && classes.disabledMode,
disabled: !customOptions.tileProperties[index].componentOnScreenTarget ? true : false,
variant: "".concat(customOptions.tileProperties[index].componentOnScreenMethod == "add" ? "contained" : "outlined"),
size: "small",
color: "".concat(customOptions.tileProperties[index].componentOnScreenMethod == "add" ? "primary" : "default"),
onClick: function onClick(e) {
return handleTilesOptions('componentOnScreenMethod', index, 'add');
},
style: {
minWidth: "30px",
marginRight: "10px"
}
}, /*#__PURE__*/_react["default"].createElement(_Add["default"], {
style: {
color: "".concat(customOptions.tileProperties[index].componentOnScreenMethod == "add" ? "#fff" : "#9e9e9e"),
fontSize: "1.3rem"
}
})), /*#__PURE__*/_react["default"].createElement(_core.Button, {
className: !customOptions.tileProperties[index].componentOnScreenTarget && classes.disabledMode,
disabled: !customOptions.tileProperties[index].componentOnScreenTarget ? true : false,
variant: "".concat(customOptions.tileProperties[index].componentOnScreenMethod == "sub" ? "contained" : "outlined"),
size: "small",
color: "".concat(customOptions.tileProperties[index].componentOnScreenMethod === "sub" ? "primary" : "default"),
onClick: function onClick(e) {
return handleTilesOptions('componentOnScreenMethod', index, 'sub');
},
style: {
minWidth: "30px",
marginRight: "10px"
}
}, /*#__PURE__*/_react["default"].createElement(_Remove["default"], {
style: {
color: "".concat(customOptions.tileProperties[index].componentOnScreenMethod == "sub" ? "#fff" : "#9e9e9e"),
fontSize: "1.3rem"
}
})), /*#__PURE__*/_react["default"].createElement(_core.Button, {
className: !customOptions.tileProperties[index].componentOnScreenTarget && classes.disabledMode,
disabled: !customOptions.tileProperties[index].componentOnScreenTarget ? true : false,
variant: "".concat(customOptions.tileProperties[index].componentOnScreenMethod == "mult" ? "contained" : "outlined"),
size: "small",
color: "".concat(customOptions.tileProperties[index].componentOnScreenMethod === "mult" ? "primary" : "default"),
onClick: function onClick(e) {
return handleTilesOptions('componentOnScreenMethod', index, 'mult');
},
style: {
minWidth: "30px",
marginRight: "10px"
}
}, /*#__PURE__*/_react["default"].createElement(_Close["default"], {
style: {
color: "".concat(customOptions.tileProperties[index].componentOnScreenMethod == "mult" ? "#fff" : "#9e9e9e"),
fontSize: "1.3rem"
}
})), /*#__PURE__*/_react["default"].createElement(_core.Button, {
className: !customOptions.tileProperties[index].componentOnScreenTarget && classes.disabledMode,
disabled: !customOptions.tileProperties[index].componentOnScreenTarget ? true : false,
variant: "".concat(customOptions.tileProperties[index].componentOnScreenMethod == "div" ? "contained" : "outlined"),
size: "small",
color: "".concat(customOptions.tileProperties[index].componentOnScreenMethod === "div" ? "primary" : "default"),
onClick: function onClick(e) {
return handleTilesOptions('componentOnScreenMethod', index, 'div');
},
style: {
minWidth: "30px"
}
}, /*#__PURE__*/_react["default"].createElement("span", {
style: {
fontSize: "0.8rem"
}
}, "/")))), /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pb-4"
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
fullWidth: true,
id: "componentOnScreenTarget",
select: true,
name: "componentOnScreenTarget",
label: "Select Component On Screen",
type: "text",
variant: "outlined",
value: customOptions.tileProperties[index].componentOnScreenTarget,
onChange: function onChange(e) {
return handleTilesOptions('componentOnScreenTarget', index, e);
}
}, customOptions.tileProperties.map(function (p, i) {
return p.textRule === "number" && /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: p.ID
}, p.ID);
})))), /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pb-4"
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
fullWidth: true,
id: "tilesColor",
select: true,
name: "tilesColor",
label: "Tile's Color",
type: "text",
variant: "outlined",
value: customOptions.tileProperties[index].tilesColor,
onChange: function onChange(e) {
return handleTilesOptions('tilesColor', index, e);
},
helperText: "The theme color of your selected button. You can select from given options."
}, /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: "custom"
}, "Custom"), /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: "white"
}, "White"), /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: "red"
}, "Red"), /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
value: "blue"
}, "Blue"))), customOptions.tileProperties[index].tilesColor === "custom" && /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12
}, /*#__PURE__*/_react["default"].createElement("label", {
"for": "favcolor"
}, "Select your favorite color:"), /*#__PURE__*/_react["default"].createElement("input", {
type: "color",
id: "favcolor",
name: "favcolor",
value: customOptions.tileProperties[index].tilesRandomColor,
onChange: function onChange(e) {
return handleTilesOptions('tilesRandomColor', index, e);
}
})))));
}), /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12,
className: "pt-7 pb-4"
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
size: "small",
variant: "outlined",
id: "outlined-basic",
label: "Columns",
value: customOptions.columns,
type: "number",
disabled: true,
InputProps: {
endAdornment: /*#__PURE__*/_react["default"].createElement(_core.InputAdornment, {
position: "end"
}, /*#__PURE__*/_react["default"].createElement(InfoIconTooltip, {
title: "This changes the orientation of your tiles from a single row (setting `0`) to columns. A setting of `1` arranges the tiles vertically into one column while a setting of `2` divides the tiles equally into two columns.",
placement: "top-start" //fontSize="small"
,
className: classes.tooltip
}, /*#__PURE__*/_react["default"].createElement(_Info["default"], {
className: classes.icon
})))
},
fullWidth: true,
onChange: function onChange(e) {
return handleTilesOptions('columns', 0, e);
}
})), /*#__PURE__*/_react["default"].createElement(_core.Grid, {
item: true,
xs: 12
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
size: "small",
variant: "outlined",
id: "outlined-basic",
label: "Spacing",
value: customOptions.spacing,
type: "number",
InputProps: {
endAdornment: /*#__PURE__*/_react["default"].createElement(_core.InputAdornment, {
position: "end"
}, /*#__PURE__*/_react["default"].createElement(InfoIconTooltip, {
title: "The theme color of your selected button. You can select from given options.",
placement: "top-start" //fontSize="small"
,
className: classes.tooltip
}, /*#__PURE__*/_react["default"].createElement(_Info["default"], {
className: classes.icon
})))
},
fullWidth: true,
onChange: function onChange(e) {
return handleTilesOptions('spacing', 0, e);
}
})));
}
var _default = TilesOptions;
exports["default"] = _default;