{"version":3,"sources":["components/FileTemplates/FormView.jsx","containers/FileTemplates/FormView.js"],"names":["fileTypes","csv","excel","FormView","React","constructor","props","_this","super","this","state","transformSaveItemParams","_ref","item","values","requiredFields","fileTemplateFields","filter","each","mandatory","map","objectFieldName","fields","Set","getItemId","_this$state$item","_this$props$linkTarge","_this$props$linkTarge2","id","linkTargetRecord","fileTemplateId","templateId","find","Boolean","fetchItem","async","itemId","arguments","length","undefined","responses","Promise","all","getItem","catch","error","_this$props$onCancel","_this$props","onCancel","call","resourceNotFound","newItem","fileTemplateFileType","getSettings","type","settingsType","cloneDeep","value","data","response","objectType","getFileTemplateFields","setState","fieldSettings","get","showError","setItemValue","name","produce","draft","set","form","setFieldsValue","items","handleSubmit","createHandleSubmit","componentDidMount","render","_jsx","_Spin","createLabel","createLabelFactory","createFieldDecorator","createFieldFactory","readOnly","isReadOnly","_jsxs","_Form","layout","colon","onSubmit","stopEvent","children","className","ValidationError","errors","validationErrors","Item","label","_Input","autoFocus","Select","onChange","disabled","allowClear","Object","entries","allowedFileTemplateTypes","_ref2","key","Option","t","_ref3","mode","placeholder","displayName","initialValue","includes","FormButtons","saveButtonLoading","saveAndCloseButtonLoading","create","createFormViewContainer","actions","extraDispatchToProps","dispatch","params","Component"],"mappings":"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","file":"static/js/28.d07d1eeb.chunk.js","sourcesContent":["import * as React from 'react'\r\nimport produce from 'immer'\r\nimport { Form, Input, Spin } from 'antd'\r\nimport { set, get, cloneDeep } from 'lodash'\r\nimport { showError, resourceNotFound, ValidationError } from 'helpers/errors'\r\nimport { createLabelFactory, createFieldFactory, createHandleSubmit, isReadOnly } from 'helpers/formViews'\r\nimport { t } from 'helpers/i18n'\r\nimport { stopEvent } from 'helpers/events'\r\nimport Select, { Option } from 'elements/Select'\r\nimport FormButtons from 'elements/FormButtons'\r\n\r\nconst fileTypes = {\r\n csv: 'csv',\r\n excel: 'excel',\r\n}\r\n\r\nclass FormView extends React.Component {\r\n state = {}\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.handleSubmit = createHandleSubmit(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchItem()\r\n }\r\n\r\n transformSaveItemParams = ({ item, values }) => {\r\n const requiredFields = this.state.fileTemplateFields\r\n .filter((each) => each.mandatory)\r\n .map((each) => each.objectFieldName)\r\n\r\n return { fields: [...new Set([...requiredFields, ...item.fields])] }\r\n }\r\n\r\n getItemId = () =>\r\n [\r\n this.state.item?.id,\r\n this.props.linkTargetRecord?.fileTemplateId,\r\n this.props.linkTargetRecord?.templateId,\r\n ].find(Boolean)\r\n\r\n fetchItem = async ({ itemId = this.getItemId() } = {}) => {\r\n try {\r\n const responses = await Promise.all([\r\n itemId\r\n ? this.props.getItem(itemId).catch((error) => {\r\n this.props.onCancel?.()\r\n throw error\r\n })\r\n : !this.props.linkTargetRecord\r\n ? this.props.newItem({ fileTemplateFileType: 'csv', fields: [] })\r\n : resourceNotFound(this),\r\n this.props.getSettings({ type: this.props.settingsType }),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n\r\n const response = item.objectType\r\n ? await this.props.getFileTemplateFields({ objectType: item.objectType })\r\n : null\r\n\r\n this.setState({\r\n item,\r\n fieldSettings: get(responses[1], 'value.data.fieldSettings', []),\r\n fileTemplateFields: get(response, 'value.data.items', []),\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n setItemValue = (name, value) =>\r\n this.setState(\r\n produce((draft) => {\r\n set(draft.item, name, value)\r\n\r\n if (name === 'objectType') {\r\n set(draft.item, 'fields', [])\r\n }\r\n\r\n this.props.form.setFieldsValue({ [name]: value })\r\n }),\r\n async () => {\r\n if (name === 'objectType') {\r\n try {\r\n const response = await this.props.getFileTemplateFields({ objectType: value })\r\n\r\n this.setState({ fileTemplateFields: response.value.data.items })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n }\r\n )\r\n\r\n render() {\r\n const { item, fieldSettings, fileTemplateFields } = this.state\r\n\r\n if (!item || !fieldSettings) {\r\n return \r\n }\r\n\r\n const createLabel = createLabelFactory(fieldSettings)\r\n const createFieldDecorator = createFieldFactory(this.props.form, item, fieldSettings)\r\n\r\n const requiredFields = fileTemplateFields\r\n .filter((each) => each.mandatory)\r\n .map((each) => each.objectFieldName)\r\n const readOnly = isReadOnly(this)\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {createFieldDecorator('name')()}\r\n \r\n \r\n {createFieldDecorator('objectType')(\r\n this.setItemValue('objectType', value)}\r\n disabled={Boolean(item.id)}\r\n allowClear={false}\r\n readOnly={readOnly}\r\n >\r\n {Object.entries(this.props.allowedFileTemplateTypes).map(([key, value]) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n {createFieldDecorator('description')()}\r\n \r\n \r\n {createFieldDecorator('fileTemplateFileType')(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {createFieldDecorator('fields', {\r\n initialValue: item.fields.filter((each) => !requiredFields.includes(each)),\r\n })(\r\n this.setItemValue('fields', value)}\r\n mode=\"multiple\"\r\n allowClear={false}\r\n >\r\n {fileTemplateFields\r\n .filter((each) => !each.mandatory)\r\n .map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Form.create()(FormView)\r\n","import actions from 'actions/fileTemplates'\r\nimport { createFormViewContainer } from 'factories/FormView'\r\nimport Component from 'components/FileTemplates/FormView'\r\n\r\nexport default createFormViewContainer({\r\n actions,\r\n extraDispatchToProps: (dispatch, props) => ({\r\n getFileTemplateFields: (params) => dispatch(actions.getFileTemplateFields(params)),\r\n }),\r\n})(Component)\r\n"],"sourceRoot":""}