{"version":3,"file":"VirtualForm.mjs","names":["makeStyles","Typography","PropTypes","React","useState","Form","FormButtons","SubmitButton","useVirtualActions","useStyles","theme","actions","marginTop","spacing","marginBottom","display","flexDirection","title","flexGrow","subject","marginLeft","switchRoot","input","height","padding","formTextInput","fontSize","labelRoot","VirtualForm","props","$","_c","tableDescription","rowValue","closeSideSheet","onCreate","onUpdate","renderInputByFieldType","t0","virtualTableFormData","classes","t1","values","newTableData","isNewRow","handleSubmit","t2","map","formField","index","name","friendlyName","t3","t4","Symbol","for","t5","propTypes","func"],"sources":["../../../src/UI/forms/VirtualForm.jsx"],"sourcesContent":["import { makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { Form, FormButtons, SubmitButton } from '../../utilities/form';\nimport { useVirtualActions } from '../../hooks/virtualActions';\n\nconst useStyles = makeStyles((theme) => ({\n  actions: {\n    marginTop: theme.spacing(2),\n    marginBottom: theme.spacing(2),\n    display: 'flex',\n    flexDirection: 'row'\n  },\n  title: {\n    flexGrow: 1\n  },\n  subject: {\n    marginLeft: theme.spacing(1),\n    display: 'flex',\n    flexDirection: 'row',\n    flexGrow: 1\n  },\n  switchRoot: {\n    marginLeft: theme.spacing(1)\n  },\n  input: {\n    height: 34,\n    padding: 0\n  },\n  formTextInput: {\n    fontSize: 13\n  },\n  labelRoot: {\n    fontSize: 13\n  }\n}));\n\nexport const VirtualForm = (props) => {\n  const { tableDescription, rowValue, closeSideSheet, onCreate, onUpdate } =\n    props;\n  const { renderInputByFieldType } = useVirtualActions();\n\n  const [virtualTableFormData, setVirtualTableFormData] = useState(\n    rowValue || {}\n  );\n  const classes = useStyles();\n\n  const handleSubmit = async (values) => {\n    let newTableData = {\n      ...virtualTableFormData,\n      ...values\n    };\n\n    const isNewRow = !rowValue;\n\n    if (isNewRow) {\n      onCreate && (await onCreate(newTableData));\n    } else {\n      onUpdate && (await onUpdate(newTableData));\n    }\n    closeSideSheet && closeSideSheet();\n  };\n\n  return (\n    <Form onSubmit={handleSubmit}>\n      <div>\n        {tableDescription?.map((formField, index) => {\n          return (\n            <React.Fragment key={`${formField.name}-${index}`}>\n              <Typography variant='subtitle2' style={{ marginTop: 8 }}>\n                {formField.friendlyName}\n              </Typography>\n              {renderInputByFieldType(\n                formField,\n                index,\n                virtualTableFormData,\n                classes\n              )}\n            </React.Fragment>\n          );\n        })}\n      </div>\n\n      <FormButtons>\n        <SubmitButton\n          variant='contained'\n          color='secondary'\n          disablePristine={false}\n          disabled={false}\n          style={{ marginTop: 15 }}\n        >\n          Save\n        </SubmitButton>\n      </FormButtons>\n    </Form>\n  );\n};\n\nVirtualForm.propTypes = {\n  /**\n   * onClick event for closing sidesheet\n   */\n  closeSideSheet: PropTypes.func,\n  /**\n   * onClick event for creating\n   */\n  onCreate: PropTypes.func,\n  /**\n   * onClick event for updating\n   */\n  onUpdate: PropTypes.func\n};\n"],"mappings":"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"}