{"version":3,"sources":["helpers/formInstances.js","components/FormInstances/FormView/Field.jsx","components/FormInstances/FormView/Styled.jsx","components/FormInstances/Print.jsx","containers/FormInstances/Print.js","components/FormInstances/FormView/index.jsx","helpers/formTemplates.jsx","components/FormTemplates/Select/Filter.jsx","containers/FormTemplates/Select/Filter.js","components/FormTemplates/Select/index.jsx","containers/FormTemplates/Select/index.js"],"names":["createFormInstanceAttachmentsDispatchToProps","dispatch","getAttachments","formInstanceId","params","actions","createAttachments","deleteAttachments","downloadAttachment","downloadAttachments","createSaveFormInstances","self","_ref","objectType","async","deleting","getChangedItems","state","formInstanceItemsOriginal","formInstanceItems","isEmpty","response","props","deleteFormInstanceItems","map","each","id","showClientNotifications","error","showError","Emitter","emit","FORM_INSTANCES_REFRESH","createRefreshFormInstances","_ref2","_response$value","_response$value$data","_response$value2","_response$value2$data","getFormInstanceItems","objectId","item","setState","value","data","items","FormInstancesContext","React","Component","_answer$value","question","answer","layout","color","onChange","readOnly","text","defaultText","defaultBoolean","includes","toLower","defaultArray","tryParseArray","concat","trim","highlight","undefined","setValue","questionType","_jsx","_Input","TextArea","e","target","placeholder","placeholderText","rows","height","className","cx","defaultNumber","tryParseFloat","_InputNumber","str","min","defaultTo","minValue","max","maxValue","step","Math","pow","decimalPlaces","_question$formQuestio","_question$formQuestio2","_question$formQuestio3","_Select","allowClear","children","formQuestionOptions","Option","name","defaultMoment","tryParseMoment","_DatePicker","toJSON","showTime","_TimePicker","format","use12Hours","_Checkbox","checked","required","style","_Radio","Group","JSON","stringify","overrideSectionColor","foregroundColor","backgroundColor","fontFamily","fontName","fontSize","fontWeight","bold","fontStyle","italic","textDecoration","underline","opacity","href","questionOption","rel","whiteSpace","Container","styled","div","_templateObject","_taggedTemplateLiteral","Actions","_templateObject2","Section","_Card","_templateObject3","_state$users","_state$formTemplate$f","_state$formTemplate","_state$formTemplate3","tenant","settingsType","parentRecord","updateState","useImmer","responses","Promise","all","getSettings","type","getDocumentContents","request","domainObjectId","domainObjectType","documentType","documentName","subdomain","catch","getFormTemplate","templateId","getUsers","draft","fieldSettings","get","logo","formTemplate","users","fetchSettings","title","createLabel","createLabelFactory","_Spin","_jsxs","_Fragment","Title","Col","xs","fileType","contents","src","alt","Header","_Form","colon","onSubmit","stopEvent","Row","Item","label","formTemplateName","formTemplateDescription","Select","userName","t","getOptionProps","displayName","DatePicker","dueDate","done","formatUserTime","lastSubmitDate","lastUpdateBy","formPages","formPage","_formPage$formPageSec","formPageSections","formPageSection","numberOfLines","formQuestions","line","getSectionProps","Array","keys","_formPageSection$form","orderBy","filter","formQuestion","_item$formAnswers","_state$formTemplate2","formAnswer","formAnswers","find","one","questionId","fieldWidth","labelWidth","inputWidth","getWidths","overrideFormColor","contentForegroundColor","formForegroundColor","getLabel","labelCol","span","wrapperCol","Field","footer","mapDispatchToProps","documentActions","getContents","formTemplateActions","getItem","userActions","getItems","connect","mapStateToProps","createAuthStateToProps","FormView","constructor","_this","super","this","promiseState","arguments","length","resolve","handleFormChange","formHasChanged","saveItemSuccess","handleSelectFormTemplateOk","selectedFormTemplate","selectProductVisible","newItem","then","r","cloneDeep","forEach","unset","normalizeFormAnswers","attachments","attachmentsOriginal","getItemId","_this$context$targetT","_this$context","_this$state$item","_this$props$linkTarge","_this$props$linkTarge2","targetTenantId","context","itemId","linkTargetRecord","Boolean","userIsInRoleSupplier","fetchItem","_this$context$targetT2","_this$context2","isNil","selectFormTemplateVisible","_this$props$onCancel","_this$props","onCancel","call","itemOriginal","saveItem","createItem","updateItem","Error","saved","saveAttachments","setItemValue","produce","set","form","setFieldsValue","_this$props$onSave","_this$props2","onSave","updateStatus","_this$props$onSave2","_this$props3","setAnswerValue","console","assert","Object","assign","formInstance","extractFormQuestions","attachmentFileName","validateFormQuestions","callback","isValidAnswer","reduce","acc","hasUnsavedChanges","_this$state$item2","isEqual","handleSubmitButtonClick","_message","questionErrors","validateFields","errors","values","focusedId","validationErrors","_this$props$onSave3","_this$props4","_this$props$onSave4","_this$props5","submitButtonLoading","submitItem","failureCount","_this$props$onSave5","_this$props6","showValidationError","handleActionsMenuClick","key","_this$props$onSave6","_this$props7","saveAs","_this$props$onSave7","_this$props8","printItem","getFieldsValue","printVisible","warn","fileName","attachment","document","_this$props$onSave8","_this$props9","documentFile","_this$props$onSave9","_this$props10","b64toBlob","deleteAttachment","remove","handleFileUpload","fileList","fileContents","fileUploadQuestionId","push","fileUploadDrawerVisible","questionIds","Set","creating","handleSourceClick","source","sourceDrawerLinkTarget","linkTargets","toLowerCase","sourceDrawerTitle","sourceDrawerSize","formSize","sourceDrawerFormView","formComponent","sourceDrawerLinkTargetRecord","sourceDrawerVisible","printableRef","handleSubmit","createHandleSubmit","componentDidMount","on","FORM_CHANGE_EVENT","componentWillUnmount","off","beforeValidateFields","render","_this$state$users","_formTemplate$formPag","tenantTypeIsDcrib","userIsDcribDistributor","Modal","visible","okText","onOk","okButtonProps","disabled","width","SelectFormTemplate","onSelect","createFieldDecorator","createFieldFactory","isReadOnly","SourceComponent","UnderDevelopment","_Dropdown","overlay","_Menu","onClick","Divider","trigger","_Button","Icon","ValidationError","md","autoFocus","half","help","HARD_SPACE","valuePropName","Checkbox","sm","reviewed","reviewDate","reviewBy","corrected","correctDate","correctBy","_Tabs","TabPane","tab","forceRender","_label$props","focused","hasError","setFocusId","allowRequired","lg","onMouseEnter","onMouseLeave","validateStatus","allowHighlight","_Tooltip","size","allowAttachment","FormButtons","saveButtonLoading","saveAndCloseButtonLoading","loading","Drawer","onClose","FileUpload","onUpload","createPrintHandler","resetPrintHandler","ref","Print","contextType","flow","withRouter","create","onValuesChange","_len","_key","allowInput","template","section","bordered","showSectionBorder","headStyle","headerForegroundColor","headerBackgroundColor","headerFontName","headerFontSize","boldHeader","italicHeader","underlineHeader","bodyStyle","contentBackgroundColor","formBackgroundColor","getFieldWidth","fieldWidthType","getLabelWidth","labelWidthType","labelPlacementType","getInputWidth","_ref3","getTotalWidth","sortFormQuestions","unsorted","injected","_injected$line","grid","range","row","questionIndex","position","splice","rowIndex","col","colIndex","some","flat","_ref4","createQuestion","sectionId","_formAnswer$value","flatMap","Filter","setFilterValue","createSetFilterValue","getFormGroups","_this$props$formGroup","filterDto","allowFilterByStatus","third","formGroupId","formGroups","active","entries","statusOptions","selectors","selectOptions","getOptions","createListModalComponent","getStorageKey","getSettingsType","initialFilterDto","versionType","createListModalContainer"],"mappings":"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","file":"static/js/0.c8e67a94.chunk.js","sourcesContent":["import * as React from 'react'\r\nimport { isEmpty } from 'lodash'\r\nimport actions from 'actions/formInstances'\r\nimport { getChangedItems } from 'helpers/formViews'\r\nimport { showError, showClientNotifications } from 'helpers/errors'\r\nimport { Emitter } from 'helpers/events'\r\nimport { FORM_INSTANCES_REFRESH } from 'options/events'\r\n\r\nexport const createFormInstanceAttachmentsDispatchToProps = (dispatch) => ({\r\n getAttachments: (formInstanceId, params) => dispatch(actions.getAttachments(formInstanceId, params)),\r\n createAttachments: (formInstanceId, params) => dispatch(actions.createAttachments(formInstanceId, params)),\r\n deleteAttachments: (formInstanceId, params) => dispatch(actions.deleteAttachments(formInstanceId, params)),\r\n downloadAttachment: (formInstanceId, params) =>\r\n dispatch(actions.downloadAttachment(formInstanceId, params)),\r\n downloadAttachments: (formInstanceId) => dispatch(actions.downloadAttachments(formInstanceId)),\r\n})\r\n\r\nexport const createSaveFormInstances =\r\n (self, { objectType }) =>\r\n async (formInstanceItems) => {\r\n const { deleting } = getChangedItems(self.state.formInstanceItemsOriginal, formInstanceItems)\r\n\r\n if (!isEmpty(deleting)) {\r\n try {\r\n const response = await self.props.deleteFormInstanceItems(deleting.map((each) => each.id))\r\n\r\n showClientNotifications({ response })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n Emitter.emit(FORM_INSTANCES_REFRESH)\r\n }\r\n\r\nexport const createRefreshFormInstances =\r\n (self, { objectType }) =>\r\n async () => {\r\n try {\r\n const response = await self.props.getFormInstanceItems({ objectId: self.state.item.id, objectType })\r\n\r\n self.setState({\r\n formInstanceItems: response?.value?.data?.items,\r\n formInstanceItemsOriginal: response?.value?.data?.items,\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\nexport const FormInstancesContext = React.createContext({})\r\n","import cx from 'clsx'\r\nimport { Input, InputNumber, Checkbox, DatePicker, TimePicker, Select, Radio } from 'antd'\r\nimport { isEmpty, toString as str, trim, defaultTo, toLower } from 'lodash'\r\nimport { tryParseFloat, tryParseArray } from 'helpers/utils'\r\nimport { tryParseMoment } from 'helpers/dateTime'\r\n\r\nfunction Component(props) {\r\n const { question = {}, answer = {}, layout = 'vertical', color, onChange, readOnly } = props\r\n\r\n const text = answer?.value ?? ''\r\n const defaultText = !isEmpty(text) ? text : null\r\n const defaultBoolean = ['true', 'yes', '1'].includes(toLower(text))\r\n const defaultArray = tryParseArray(`[${trim(text, '[]')}]`)\r\n const highlight = answer.highlight ? 'form-field-highlight' : undefined\r\n const setValue = readOnly ? () => {} : onChange\r\n\r\n if (question.questionType === 'Textarea') {\r\n return (\r\n setValue(e.target.value)}\r\n placeholder={question.placeholderText}\r\n rows={question.height}\r\n className={cx('w-full', highlight)}\r\n readOnly={readOnly}\r\n />\r\n )\r\n }\r\n\r\n if (question.questionType === 'NumberInput') {\r\n const defaultNumber = tryParseFloat(text, null)\r\n\r\n return (\r\n setValue(str(value))}\r\n min={defaultTo(question.minValue, undefined)}\r\n max={defaultTo(question.maxValue, undefined)}\r\n step={1.0 / Math.pow(10, question.decimalPlaces)}\r\n className={cx('w-full', highlight)}\r\n readOnly={readOnly}\r\n />\r\n )\r\n }\r\n\r\n if (question.questionType === 'Dropdown') {\r\n return (\r\n setValue(str(value))}\r\n placeholder={question.placeholderText}\r\n className={cx('w-full', highlight)}\r\n allowClear={!readOnly}\r\n >\r\n {(question?.formQuestionOptions ?? []).map((each) => (\r\n \r\n {each.name}\r\n \r\n ))}\r\n \r\n )\r\n }\r\n\r\n if (question.questionType === 'Date') {\r\n const defaultMoment = tryParseMoment(text, null)\r\n\r\n return (\r\n setValue(value ? value.toJSON() : '')}\r\n className={cx('w-full min-w-full', highlight)}\r\n placeholder={question.placeholderText}\r\n />\r\n )\r\n }\r\n\r\n if (question.questionType === 'DateTime') {\r\n const defaultMoment = tryParseMoment(text, null)\r\n\r\n return (\r\n setValue(value ? value.toJSON() : '')}\r\n className={cx('w-full min-w-full', highlight)}\r\n placeholder={question.placeholderText}\r\n showTime\r\n />\r\n )\r\n }\r\n\r\n if (question.questionType === 'Time') {\r\n const defaultMoment = tryParseMoment(text, null)\r\n\r\n return (\r\n setValue(value ? value.toJSON() : '')}\r\n className={cx('w-full min-w-full', highlight)}\r\n placeholder={question.placeholderText}\r\n format=\"h:mm A\"\r\n use12Hours\r\n />\r\n )\r\n }\r\n\r\n if (question.questionType === 'Checkbox') {\r\n return (\r\n setValue(e.target.checked ? 'True' : 'False')}>\r\n {layout === 'vertical' ? (\r\n \r\n {question.text}\r\n \r\n ) : null}\r\n \r\n )\r\n }\r\n\r\n if (question.questionType === 'SingleSelection') {\r\n return (\r\n setValue(str(e.target.value))}\r\n className={cx({ 'tofino-radio-group-vertical': layout === 'horizontal' })}\r\n >\r\n {(question?.formQuestionOptions ?? []).map((each) => (\r\n \r\n {each.name}\r\n \r\n ))}\r\n \r\n )\r\n }\r\n\r\n if (question.questionType === 'MultipleSelection') {\r\n return (\r\n setValue(trim(JSON.stringify(value), '[]'))}\r\n className={cx({ 'tofino-checkbox-group-vertical': layout === 'horizontal' })}\r\n >\r\n {(question?.formQuestionOptions ?? []).map((each) => (\r\n \r\n {each.name}\r\n \r\n ))}\r\n \r\n )\r\n }\r\n\r\n if (question.questionType === 'Hyperlink') {\r\n return (\r\n \r\n {question.text}\r\n \r\n )\r\n }\r\n\r\n if (question.questionType === 'Paragraph') {\r\n return (\r\n \r\n {question.text}\r\n \r\n )\r\n }\r\n\r\n return (\r\n setValue(e.target.value)}\r\n placeholder={question.placeholderText}\r\n className={cx('w-full', highlight)}\r\n />\r\n )\r\n}\r\n\r\nexport default Component\r\n","import styled from 'styled-components'\r\nimport { Card } from 'antd'\r\n\r\nexport const Container = styled.div`\r\n .ant-tabs-nav-scroll {\r\n min-height: 46px;\r\n }\r\n\r\n .ant-form-extra {\r\n margin-top: -24px;\r\n margin-bottom: 0;\r\n color: #f5222d;\r\n }\r\n\r\n .has-error {\r\n .ant-checkbox {\r\n border: 1px solid #f5222d;\r\n }\r\n }\r\n`\r\n\r\nexport const Actions = styled.div`\r\n text-align: right;\r\n white-space: nowrap;\r\n height: 16px;\r\n\r\n .ant-btn-link {\r\n color: #333;\r\n margin-left: 3px;\r\n }\r\n`\r\n\r\nexport const Section = styled(Card)`\r\n .ant-card-head {\r\n border-bottom: none;\r\n\r\n .ant-card-extra {\r\n .ant-btn-link {\r\n color: unset;\r\n }\r\n }\r\n }\r\n\r\n &.ant-card-bordered + .ant-card-bordered {\r\n border-top: none !important;\r\n border-top-right-radius: 0;\r\n border-top-left-radius: 0;\r\n }\r\n\r\n .ant-select-search__field__placeholder {\r\n color: rgba(0, 0, 0, 0.33) !important;\r\n }\r\n\r\n .ant-select-selection__placeholder {\r\n color: rgba(0, 0, 0, 0.33) !important;\r\n }\r\n\r\n *::placeholder {\r\n color: rgba(0, 0, 0, 0.33) !important;\r\n }\r\n\r\n textarea {\r\n resize: none;\r\n }\r\n`\r\n","import * as React from 'react'\r\nimport { Spin, Form, Input } from 'antd'\r\nimport { isEmpty, get, max, orderBy } from 'lodash'\r\nimport { useImmer } from 'use-immer'\r\nimport { showError } from 'helpers/errors'\r\nimport { createLabelFactory } from 'helpers/formViews'\r\nimport { stopEvent } from 'helpers/events'\r\nimport { formatUserTime } from 'helpers/dateTime'\r\nimport { Header, Title } from 'helpers/print'\r\nimport { t } from 'helpers/i18n'\r\nimport { getSectionProps, getWidths, getLabel } from 'helpers/formTemplates'\r\nimport { Section } from 'components/FormInstances/FormView/Styled'\r\nimport DatePicker from 'elements/DatePicker'\r\nimport Select, { Option, getOptionProps } from 'elements/Select'\r\nimport Field from 'components/FormInstances/FormView/Field'\r\nimport { Row, Col } from 'elements/Grid'\r\n\r\nfunction Component(props) {\r\n const { tenant, settingsType, parentRecord: item } = props\r\n\r\n const [state, updateState] = useImmer({})\r\n\r\n React.useEffect(() => {\r\n async function fetchSettings() {\r\n try {\r\n const responses = await Promise.all([\r\n props.getSettings({ type: settingsType }),\r\n props\r\n .getDocumentContents({\r\n request: {\r\n domainObjectId: tenant.id,\r\n domainObjectType: 'Customer',\r\n documentType: 'PurchaseOrderLogo',\r\n documentName: tenant.subdomain,\r\n },\r\n })\r\n .catch(() => {}),\r\n props.getFormTemplate(item.templateId),\r\n props.getUsers(),\r\n ])\r\n\r\n updateState((draft) => {\r\n draft.fieldSettings = get(responses[0], 'value.data.fieldSettings', [])\r\n draft.logo = get(responses[1], 'value.data', {})\r\n draft.formTemplate = get(responses[2], 'value.data', {})\r\n draft.users = get(responses[3], 'value.data.items', [])\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n fetchSettings()\r\n }, [])\r\n\r\n const title = item.name\r\n const createLabel = createLabelFactory(state.fieldSettings)\r\n\r\n return isEmpty(state.fieldSettings) ? (\r\n \r\n ) : (\r\n <>\r\n \r\n <Col xs={16}>\r\n <h2>{title}</h2>\r\n </Col>\r\n <Col xs={8} className=\"text-right\">\r\n {state.logo && state.logo.fileType && state.logo.contents && (\r\n <img src={`data:${state.logo.fileType};base64,${state.logo.contents}`} alt=\"\" />\r\n )}\r\n </Col>\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\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\n \r\n \r\n \r\n \r\n
\r\n
\r\n {(state?.formTemplate?.formPages ?? []).map((formPage) => (\r\n
\r\n
{formPage.name}
\r\n {(formPage?.formPageSections ?? []).map((formPageSection) => {\r\n const numberOfLines = !isEmpty(formPageSection.formQuestions)\r\n ? max(formPageSection.formQuestions.map((each) => each.line)) + 2\r\n : 1\r\n\r\n return (\r\n
\r\n {[...Array(numberOfLines).keys()].map((line) => {\r\n const formQuestions = orderBy(formPageSection?.formQuestions ?? [], [\r\n 'line',\r\n 'position',\r\n ]).filter((each) => each.line === line)\r\n\r\n return (\r\n \r\n {formQuestions.map((formQuestion) => {\r\n const formAnswer = (item?.formAnswers ?? []).find(\r\n (one) => one.questionId === formQuestion.id\r\n )\r\n const { fieldWidth, labelWidth, inputWidth } = getWidths({\r\n formTemplate: state.formTemplate,\r\n formQuestion,\r\n })\r\n const color = formPageSection.overrideFormColor\r\n ? formPageSection.contentForegroundColor\r\n : state.formTemplate?.formForegroundColor\r\n const label = getLabel({ formQuestion, labelWidth, color })\r\n return (\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\n ))}\r\n {state.formTemplate?.footer &&
{state.formTemplate.footer}
}\r\n \r\n )\r\n}\r\n\r\nexport default Component\r\n","import { connect } from 'react-redux'\r\nimport { createAuthStateToProps } from 'helpers/auth'\r\nimport actions from 'actions/formInstances'\r\nimport documentActions from 'actions/documents'\r\nimport formTemplateActions from 'actions/formTemplates'\r\nimport userActions from 'actions/users'\r\nimport Component from 'components/FormInstances/Print'\r\n\r\nconst mapStateToProps = (state, props) => ({ ...createAuthStateToProps(state, props) })\r\n\r\nconst mapDispatchToProps = {\r\n getSettings: actions.getSettings,\r\n getDocumentContents: documentActions.getContents,\r\n getFormTemplate: formTemplateActions.getItem,\r\n getUsers: userActions.getItems,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Component)\r\n","import * as React from 'react'\r\nimport produce from 'immer'\r\nimport { Button, Form, Input, Spin, Tabs, Dropdown, Menu, Tooltip, message } from 'antd'\r\nimport { cloneDeep, get, isNil, set, isEmpty, max, orderBy, isEqual, remove, unset, flow } from 'lodash'\r\nimport { saveAs } from 'file-saver'\r\nimport b64toBlob from 'b64-to-blob'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { HARD_SPACE } from 'helpers/utils'\r\nimport { ValidationError, showError, showClientNotifications, showValidationError } from 'helpers/errors'\r\nimport { createFieldFactory, createHandleSubmit, createLabelFactory, isReadOnly } from 'helpers/formViews'\r\nimport { createPrintHandler, resetPrintHandler } from 'helpers/print'\r\nimport { formatUserTime } from 'helpers/dateTime'\r\nimport { t } from 'helpers/i18n'\r\nimport FormButtons from 'elements/FormButtons'\r\nimport Modal from 'elements/Modal'\r\nimport SelectFormTemplate from 'containers/FormTemplates/Select'\r\nimport Select, { Option, getOptionProps } from 'elements/Select'\r\nimport DatePicker from 'elements/DatePicker'\r\nimport Checkbox from 'elements/Checkbox'\r\nimport Icon from 'elements/Icon'\r\nimport { Row, Col } from 'elements/Grid'\r\nimport {\r\n getSectionProps,\r\n getWidths,\r\n getLabel,\r\n isValidAnswer,\r\n allowHighlight,\r\n allowAttachment,\r\n allowRequired,\r\n extractFormQuestions,\r\n} from 'helpers/formTemplates'\r\nimport linkTargets from 'options/linkTargets'\r\nimport { Emitter, stopEvent } from 'helpers/events'\r\nimport { FORM_INSTANCES_REFRESH, FORM_CHANGE_EVENT } from 'options/events'\r\nimport { FormInstancesContext } from 'helpers/formInstances'\r\nimport Field from './Field'\r\nimport Drawer from 'elements/Drawer'\r\nimport FileUpload from 'elements/FileUpload'\r\nimport Print from 'containers/FormInstances/Print'\r\nimport UnderDevelopment from 'elements/UnderDevelopment'\r\nimport { Container, Actions, Section } from './Styled'\r\n\r\nclass FormView extends React.Component {\r\n static contextType = FormInstancesContext\r\n\r\n state = {}\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.printableRef = React.createRef()\r\n this.handleSubmit = createHandleSubmit(this)\r\n }\r\n\r\n componentDidMount() {\r\n const { selectedFormTemplate } = this.props\r\n\r\n if (selectedFormTemplate) {\r\n this.setState({ selectedFormTemplate }, this.handleSelectFormTemplateOk)\r\n } else {\r\n this.fetchItem()\r\n }\r\n\r\n Emitter.on(FORM_CHANGE_EVENT, this.handleFormChange)\r\n }\r\n\r\n componentWillUnmount() {\r\n Emitter.off(FORM_CHANGE_EVENT, this.handleFormChange)\r\n }\r\n\r\n promiseState = (state = {}) => new Promise((resolve) => this.setState(state, resolve))\r\n\r\n handleFormChange = () => this.setState({ formHasChanged: true })\r\n\r\n saveItemSuccess = () => Emitter.emit(FORM_INSTANCES_REFRESH)\r\n\r\n handleSelectFormTemplateOk = async () => {\r\n const { objectType = 'User', objectId = 0 } = this.props\r\n\r\n if (this.state.selectedFormTemplate) {\r\n try {\r\n this.setState({ selectProductVisible: false })\r\n\r\n const templateId = this.state.selectedFormTemplate.id\r\n const responses = await Promise.all([\r\n this.props.newItem({ templateId, objectType, objectId }),\r\n this.props.getSettings({ type: this.props.settingsType }),\r\n objectType === 'User' ? this.props.getUsers() : Promise.resolve(null),\r\n this.props.getFormTemplate(templateId).then((r) => r.value.data),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n\r\n item.formAnswers.forEach((formAnswer) => {\r\n if (formAnswer.id === 0) {\r\n unset(formAnswer, 'id')\r\n }\r\n\r\n if (formAnswer.formInstanceId === 0) {\r\n unset(formAnswer, 'formInstanceId')\r\n }\r\n })\r\n\r\n const formTemplate = responses[3]\r\n\r\n item.formAnswers = this.normalizeFormAnswers(item, formTemplate)\r\n\r\n this.setState({\r\n item,\r\n fieldSettings: responses[1].value.data.fieldSettings,\r\n users: get(responses[2], 'value.data.items', []),\r\n formTemplate,\r\n attachments: [],\r\n attachmentsOriginal: [],\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n }\r\n\r\n getItemId = () => {\r\n const targetTenantId = this.context?.targetTenantId ?? 0\r\n\r\n const itemId = [\r\n this.state.item?.id,\r\n this.props.linkTargetRecord?.formInstanceId,\r\n this.props.linkTargetRecord?.id,\r\n ].find(Boolean)\r\n\r\n if (itemId && this.props.userIsInRoleSupplier) {\r\n return `${itemId}?targetTenantId=${targetTenantId}`\r\n }\r\n\r\n return itemId\r\n }\r\n\r\n fetchItem = async ({ itemId = this.getItemId() } = {}) => {\r\n const targetTenantId = this.context?.targetTenantId ?? 0\r\n\r\n if (isNil(itemId) && !this.props.linkTargetRecord) {\r\n this.setState({ selectFormTemplateVisible: true })\r\n } else {\r\n try {\r\n const responses = await Promise.all([\r\n this.props.getItem(itemId).catch((error) => {\r\n this.props.onCancel?.()\r\n throw error\r\n }),\r\n this.props.getSettings({ type: this.props.settingsType }),\r\n this.props.getUsers(),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n\r\n const [formTemplate, attachments] = await Promise.all([\r\n this.props\r\n .getFormTemplate(\r\n this.props.userIsInRoleSupplier\r\n ? `${item.templateId}?targetTenantId=${targetTenantId}`\r\n : item.templateId\r\n )\r\n .then((r) => r.value.data),\r\n item.id > 0 ? this.props.getAttachments(item.id, { targetTenantId }) : Promise.resolve(null),\r\n ])\r\n\r\n item.formAnswers = this.normalizeFormAnswers(item, formTemplate)\r\n\r\n this.setState({\r\n item,\r\n itemOriginal: cloneDeep(item),\r\n fieldSettings: responses[1].value.data.fieldSettings,\r\n users: get(responses[2], 'value.data.items', []),\r\n formTemplate,\r\n attachments: get(attachments, 'value.data.items', []),\r\n attachmentsOriginal: cloneDeep(get(attachments, 'value.data.items', [])),\r\n formHasChanged: false,\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n }\r\n\r\n beforeValidateFields() {\r\n this.setState({ validationErrors: [], questionErrors: [] })\r\n }\r\n\r\n saveItem = async (item) => {\r\n const {\r\n createItem = (data) => Promise.resolve({ value: { data } }),\r\n updateItem = (data) => Promise.resolve({ value: { data } }),\r\n } = this.props\r\n\r\n if (!item) {\r\n throw new Error('item is undefined')\r\n }\r\n\r\n const saved = item.id ? await updateItem(item) : await createItem(item)\r\n\r\n await this.saveAttachments(saved.value.data.id)\r\n\r\n return saved\r\n }\r\n\r\n setItemValue = (name, value) => {\r\n const { item } = this.state\r\n\r\n this.setState(\r\n produce((draft) => {\r\n set(draft.item, name, value)\r\n\r\n this.props.form.setFieldsValue({ [name]: value })\r\n }),\r\n async () => {\r\n if (['deficiency', 'reviewed', 'corrected'].includes(name)) {\r\n try {\r\n this.props.onSave?.(true)\r\n\r\n const response = await this.props.updateStatus(item.id, name, value)\r\n\r\n showClientNotifications({ response })\r\n } catch (error) {\r\n showError({ error })\r\n\r\n this.props.form.setFieldsValue({ [name]: !value })\r\n } finally {\r\n await this.fetchItem()\r\n\r\n Emitter.emit(FORM_INSTANCES_REFRESH)\r\n\r\n this.props.onSave?.(false)\r\n }\r\n }\r\n }\r\n )\r\n }\r\n\r\n setAnswerValue = (questionId, value) =>\r\n this.setState(\r\n produce((draft) => {\r\n const formAnswer = draft.item.formAnswers.find((one) => one.questionId === questionId)\r\n\r\n console.assert(formAnswer, `no answer for questionId = ${questionId}`)\r\n\r\n if (formAnswer) {\r\n Object.assign(formAnswer, value)\r\n }\r\n })\r\n )\r\n\r\n normalizeFormAnswers = (formInstance, formTemplate) =>\r\n extractFormQuestions(formTemplate).map(\r\n (question) =>\r\n formInstance.formAnswers.find((one) => one.questionId === question.id) || {\r\n formInstanceId: formInstance.id,\r\n questionId: question.id,\r\n value: '',\r\n highlight: false,\r\n attachmentFileName: '',\r\n }\r\n )\r\n\r\n validateFormQuestions = (callback) =>\r\n extractFormQuestions(this.state.formTemplate)\r\n .map((formQuestion) => {\r\n const formAnswer = this.state.item.formAnswers.find((one) => one.questionId === formQuestion.id)\r\n\r\n return !isValidAnswer(formQuestion, formAnswer) ? { [formQuestion.id]: 'error' } : undefined\r\n })\r\n .reduce((acc, each) => ({ ...acc, ...each }), {})\r\n\r\n hasUnsavedChanges = () =>\r\n this.state.formHasChanged ||\r\n !this.state.item?.id ||\r\n !isEqual(this.state.item, this.state.itemOriginal) ||\r\n !isEqual(this.state.attachments, this.state.attachmentsOriginal)\r\n\r\n handleSubmitButtonClick = () => {\r\n const { item } = this.state\r\n\r\n if (this.hasUnsavedChanges()) {\r\n message.error(t('saveChangesFirst'))\r\n return\r\n }\r\n\r\n const questionErrors = this.validateFormQuestions()\r\n\r\n this.props.form.validateFields((errors, values) => {\r\n this.setState(\r\n (draft) => {\r\n draft.focusedId = null\r\n draft.validationErrors = errors\r\n draft.questionErrors = questionErrors\r\n },\r\n async () => {\r\n if (!isEmpty(errors) || !isEmpty(questionErrors)) {\r\n showValidationError()\r\n return\r\n }\r\n\r\n try {\r\n await this.promiseState({ submitButtonLoading: true })\r\n\r\n await this.props.onSave?.(true)\r\n\r\n const response = await this.props.submitItem(item.id)\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n\r\n await this.fetchItem()\r\n\r\n Emitter.emit(FORM_INSTANCES_REFRESH)\r\n\r\n await this.props.onSave?.(false)\r\n } catch (error) {\r\n showError({ error })\r\n await this.props.onSave?.(false)\r\n } finally {\r\n this.setState({ submitButtonLoading: false })\r\n }\r\n }\r\n )\r\n })\r\n }\r\n\r\n handleActionsMenuClick = async ({ key }) => {\r\n switch (key) {\r\n case 'downloadAttachments':\r\n if (this.hasUnsavedChanges()) {\r\n message.error(t('saveChangesFirst'))\r\n } else {\r\n try {\r\n await this.props.onSave?.(true)\r\n\r\n const response = await this.props.downloadAttachments(this.state.item.id)\r\n\r\n saveAs(response.value.data, `${t('attachments')}.zip`)\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n await this.props.onSave?.(false)\r\n }\r\n }\r\n\r\n break\r\n\r\n case 'print':\r\n this.setState(\r\n produce((draft) => {\r\n draft.printItem = { ...draft.item, ...this.props.form.getFieldsValue() }\r\n draft.printVisible = true\r\n })\r\n )\r\n break\r\n\r\n default:\r\n message.warn(t('underDevelopment'))\r\n break\r\n }\r\n }\r\n\r\n downloadAttachment = async (questionId, fileName) => {\r\n const { item } = this.state\r\n\r\n const attachment = this.state.attachments.find((one) => one.questionId === questionId)\r\n\r\n if (attachment.document) {\r\n try {\r\n await this.props.onSave?.(true)\r\n\r\n const response = await this.props.downloadAttachment(item.id, {\r\n questionId,\r\n documentFile: {\r\n domainObjectId: item.id,\r\n domainObjectType: 'FormInstance',\r\n documentType: 'ObjectDocument',\r\n fileName,\r\n },\r\n })\r\n\r\n saveAs(response.value.data, fileName)\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n await this.props.onSave?.(false)\r\n }\r\n } else if (attachment.documentFile) {\r\n try {\r\n saveAs(b64toBlob(attachment.documentFile.contents, attachment.documentFile.fileType), fileName)\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n }\r\n\r\n deleteAttachment = (questionId) =>\r\n this.setState(\r\n produce((draft) => {\r\n remove(draft.attachments, (one) => one.questionId === questionId)\r\n draft.item.formAnswers.find((one) => one.questionId === questionId).attachmentFileName = ''\r\n })\r\n )\r\n\r\n handleFileUpload = (fileList = []) => {\r\n const { fileName, fileType, fileContents: contents } = fileList[0]\r\n\r\n this.setState(\r\n produce((draft) => {\r\n const formAnswer = draft.item.formAnswers.find((one) => one.questionId === draft.fileUploadQuestionId)\r\n\r\n console.assert(formAnswer, `no answer for questionId = ${draft.fileUploadQuestionId}`)\r\n\r\n if (formAnswer) {\r\n remove(draft.attachments, (one) => one.questionId === draft.fileUploadQuestionId)\r\n\r\n formAnswer.attachmentFileName = fileName\r\n\r\n draft.attachments.push({\r\n questionId: draft.fileUploadQuestionId,\r\n documentFile: {\r\n domainObjectId: draft.item.id,\r\n domainObjectType: 'FormInstance',\r\n documentType: 'ObjectDocument',\r\n fileName,\r\n fileType,\r\n contents,\r\n },\r\n })\r\n }\r\n\r\n draft.fileUploadQuestionId = null\r\n draft.fileUploadDrawerVisible = false\r\n })\r\n )\r\n }\r\n\r\n saveAttachments = async (formInstanceId) => {\r\n const { item, attachments, attachmentsOriginal } = this.state\r\n\r\n const questionIds = attachmentsOriginal.map((each) => each.questionId)\r\n\r\n const deleting = item.formAnswers\r\n .filter((each) => isEmpty(each.attachmentFileName) && questionIds.includes(each.questionId))\r\n .map((each) => each.questionId)\r\n\r\n if (!isEmpty(deleting)) {\r\n const response = await this.props.deleteAttachments(formInstanceId, [...new Set(deleting)])\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n\r\n const creating = attachments.filter((each) => isNil(each.document) && !isNil(each.documentFile))\r\n\r\n if (!isEmpty(creating)) {\r\n const response = await this.props.createAttachments(\r\n formInstanceId,\r\n creating.map((each) =>\r\n produce(each, (draft) => {\r\n draft.documentFile.domainObjectId = formInstanceId\r\n })\r\n )\r\n )\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n }\r\n\r\n handleSourceClick = () =>\r\n this.setState(\r\n produce((draft) => {\r\n try {\r\n const { objectType = '', objectId, source } = draft.item\r\n const sourceDrawerLinkTarget = get(linkTargets, `${objectType.toLowerCase()}Record`)\r\n\r\n draft.sourceDrawerTitle = source\r\n draft.sourceDrawerSize = sourceDrawerLinkTarget.formSize\r\n draft.sourceDrawerFormView = sourceDrawerLinkTarget.formComponent\r\n draft.sourceDrawerLinkTargetRecord = { objectId }\r\n draft.sourceDrawerVisible = true\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n })\r\n )\r\n\r\n render() {\r\n const { onCancel, tenantTypeIsDcrib, userIsDcribDistributor } = this.props\r\n const { item, fieldSettings, formTemplate, validationErrors, questionErrors } = this.state\r\n\r\n if (!item || !fieldSettings) {\r\n return (\r\n <>\r\n \r\n \r\n this.setState({ selectedFormTemplate: values[0] })} />\r\n \r\n \r\n )\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 readOnly = isReadOnly(this) || item.done || userIsDcribDistributor\r\n const SourceComponent = get(this.state, 'sourceDrawerFormView', UnderDevelopment)\r\n\r\n return (\r\n <>\r\n
\r\n {item.id ? (\r\n \r\n {t('downloadAttachments')}\r\n \r\n {t('print...')}\r\n \r\n }\r\n trigger={['click']}\r\n >\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('name')(\r\n this.setItemValue('name', e.target.value)}\r\n readOnly={readOnly}\r\n autoFocus\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('formTemplateName')()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {createFieldDecorator('formTemplateDescription')()}\r\n \r\n \r\n \r\n {item.objectType === 'User' ? (\r\n \r\n {createFieldDecorator('userName')(\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n
\r\n {item.source}\r\n
\r\n
\r\n )}\r\n \r\n \r\n \r\n {createFieldDecorator('dueDate')(\r\n this.setItemValue('dueDate', value)}\r\n readOnly={readOnly}\r\n />\r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n {tenantTypeIsDcrib ? (\r\n <>\r\n \r\n \r\n \r\n {createFieldDecorator('required', { valuePropName: 'checked' })(\r\n this.setItemValue('dueDate', e.target.checked)}\r\n readOnly={readOnly}\r\n >\r\n {createLabel('required')}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('deficiency', { valuePropName: 'checked' })(\r\n this.setItemValue('deficiency', e.target.checked)}\r\n disabled={\r\n isNil(item.id) || item.id < 0 || !item.done || !userIsDcribDistributor\r\n }\r\n >\r\n {createLabel('deficiency')}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {createFieldDecorator('reviewed', { valuePropName: 'checked' })(\r\n this.setItemValue('reviewed', e.target.checked)}\r\n disabled={\r\n isNil(item.id) || item.id < 0 || !item.done || !userIsDcribDistributor\r\n }\r\n >\r\n {createLabel('reviewed')}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('corrected', { valuePropName: 'checked' })(\r\n this.setItemValue('corrected', e.target.checked)}\r\n disabled={!(item.id > 0) || !item.done}\r\n >\r\n {createLabel('corrected')}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n {createFieldDecorator('required', { valuePropName: 'checked' })(\r\n {createLabel('required')}\r\n )}\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n {(formTemplate?.formPages ?? []).map((formPage) => (\r\n \r\n {(formPage?.formPageSections ?? []).map((formPageSection) => {\r\n const numberOfLines = !isEmpty(formPageSection.formQuestions)\r\n ? max(formPageSection.formQuestions.map((each) => each.line)) + 2\r\n : 1\r\n\r\n return (\r\n
\r\n {[...Array(numberOfLines).keys()].map((line) => {\r\n const formQuestions = orderBy(formPageSection?.formQuestions ?? [], [\r\n 'line',\r\n 'position',\r\n ]).filter((each) => each.line === line)\r\n\r\n return (\r\n \r\n {formQuestions.map((formQuestion) => {\r\n const formAnswer = (item?.formAnswers ?? []).find(\r\n (one) => one.questionId === formQuestion.id\r\n )\r\n\r\n console.assert(formAnswer, `no answer for questionId = ${formQuestion.id}`)\r\n\r\n const { fieldWidth, labelWidth, inputWidth } = getWidths({\r\n formTemplate,\r\n formQuestion,\r\n })\r\n const color = formPageSection.overrideFormColor\r\n ? formPageSection.contentForegroundColor\r\n : formTemplate.formForegroundColor\r\n const label = getLabel({ formQuestion, labelWidth, color })\r\n const focused = this.state.focusedId === formQuestion.id\r\n const hasError =\r\n !isValidAnswer(formQuestion, formAnswer) && !isEmpty(questionErrors)\r\n const setFocusId = (id) => this.setState({ focusedId: id })\r\n\r\n return (\r\n \r\n setFocusId(formQuestion.id)}\r\n onMouseEnter={() => setFocusId(formQuestion.id)}\r\n onMouseLeave={() => setFocusId(null)}\r\n validateStatus={hasError ? 'error' : undefined}\r\n help={\r\n hasError ? (\r\n t('requiredField')\r\n ) : (\r\n \r\n {!readOnly && focused && allowHighlight(formQuestion) && (\r\n \r\n \r\n this.setAnswerValue(formQuestion.id, {\r\n highlight: !formAnswer?.highlight,\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n )}\r\n {!readOnly && focused && allowAttachment(formQuestion) && (\r\n \r\n \r\n this.setState({\r\n fileUploadQuestionId: formQuestion.id,\r\n fileUploadDrawerVisible: true,\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n )}\r\n {allowAttachment(formQuestion) &&\r\n formAnswer?.attachmentFileName && (\r\n \r\n \r\n this.downloadAttachment(\r\n formQuestion.id,\r\n formAnswer.attachmentFileName\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n )}\r\n {!readOnly &&\r\n allowAttachment(formQuestion) &&\r\n formAnswer?.attachmentFileName && (\r\n \r\n this.deleteAttachment(formQuestion.id)}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n }\r\n >\r\n \r\n this.setAnswerValue(formQuestion.id, { value })\r\n }\r\n layout={labelWidth === 24 ? 'vertical' : 'horizontal'}\r\n color={color}\r\n readOnly={readOnly}\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\n {formTemplate.footer &&
{formTemplate.footer}
}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {!readOnly && !item.done && item.id && (\r\n
\r\n \r\n {t('submit')}\r\n \r\n
\r\n )}\r\n
\r\n \r\n this.setState({ fileUploadDrawerVisible: false })}\r\n >\r\n this.setState({ fileUploadDrawerVisible: false })}\r\n />\r\n \r\n this.setState({ printVisible: false }, resetPrintHandler)}\r\n width={992}\r\n visible={this.state.printVisible}\r\n >\r\n
\r\n \r\n
\r\n \r\n this.setState({ sourceDrawerVisible: false })}\r\n >\r\n this.setState({ sourceDrawerVisible: false })}\r\n readOnly\r\n />\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default flow(\r\n withRouter,\r\n Form.create({\r\n onValuesChange: (...params) => Emitter.emit(FORM_CHANGE_EVENT, ...params),\r\n })\r\n)(FormView)\r\n","import { range, max, isEmpty, orderBy, cloneDeep, trim, toLower } from 'lodash'\r\nimport { HARD_SPACE } from 'helpers/utils'\r\n\r\nconst allowInput = (formQuestion) => !['Hyperlink', 'Paragraph'].includes(formQuestion.questionType)\r\n\r\nexport const allowHighlight = (formQuestion) =>\r\n allowInput(formQuestion) &&\r\n formQuestion.allowHighlight &&\r\n !['Checkbox', 'SingleSelection', 'MultipleSelection'].includes(formQuestion.questionType)\r\n\r\nexport const allowAttachment = (formQuestion) => allowInput(formQuestion) && formQuestion.allowAttachment\r\n\r\nexport const allowRequired = (formQuestion) =>\r\n allowInput(formQuestion) && formQuestion.questionType !== 'MultipleSelection'\r\n\r\nexport const getSectionProps = (template, section) => ({\r\n title: section.name,\r\n bordered: section.showSectionBorder,\r\n headStyle: {\r\n color: section.headerForegroundColor,\r\n backgroundColor: section.headerBackgroundColor,\r\n fontFamily: section.headerFontName,\r\n fontSize: Math.max(section.headerFontSize, 8),\r\n fontWeight: section.boldHeader ? 600 : 'normal',\r\n fontStyle: section.italicHeader ? 'italic' : 'normal',\r\n textDecoration: section.underlineHeader ? 'underline' : 'none',\r\n },\r\n bodyStyle: {\r\n color: section.overrideFormColor ? section.contentForegroundColor : template.formForegroundColor,\r\n backgroundColor: section.overrideFormColor\r\n ? section.contentBackgroundColor\r\n : template.formBackgroundColor,\r\n },\r\n})\r\n\r\nconst getFieldWidth = ({ formQuestion: { fieldWidthType } }) => {\r\n switch (fieldWidthType) {\r\n case 'OneQuarter':\r\n return 24 / 4\r\n case 'OneThird':\r\n return 24 / 3\r\n case 'OneHalf':\r\n return 24 / 2\r\n case 'TwoThirds':\r\n return (24 / 3) * 2\r\n case 'ThreeQuarters':\r\n return (24 / 4) * 3\r\n default:\r\n return 24\r\n }\r\n}\r\n\r\nconst getLabelWidth = ({\r\n formTemplate,\r\n formQuestion: { questionType, labelWidthType, labelPlacementType },\r\n}) => {\r\n if (!allowInput({ questionType })) {\r\n return 0\r\n }\r\n\r\n if (labelPlacementType === 'Default') {\r\n return 24\r\n }\r\n\r\n if (labelPlacementType === 'BasedOnForm' && formTemplate.labelPlacementType === 'Default') {\r\n return 24\r\n }\r\n\r\n switch (labelWidthType) {\r\n case 'OneQuarter':\r\n return 24 / 4\r\n case 'OneThird':\r\n return 24 / 3\r\n case 'OneHalf':\r\n return 24 / 2\r\n case 'TwoThirds':\r\n return (24 / 3) * 2\r\n case 'ThreeQuarters':\r\n return (24 / 4) * 3\r\n default:\r\n return 24\r\n }\r\n}\r\n\r\nconst getInputWidth = ({\r\n formTemplate,\r\n formQuestion: { questionType, labelWidthType, labelPlacementType },\r\n}) => {\r\n if (!allowInput({ questionType })) {\r\n return 24\r\n }\r\n\r\n if (labelPlacementType === 'Default') {\r\n return 24\r\n }\r\n\r\n if (labelPlacementType === 'BasedOnForm' && formTemplate.labelPlacementType === 'Default') {\r\n return 24\r\n }\r\n\r\n switch (labelWidthType) {\r\n case 'OneQuarter':\r\n return (24 / 4) * 3\r\n case 'OneThird':\r\n return (24 / 3) * 2\r\n case 'OneHalf':\r\n return 24 / 2\r\n case 'TwoThirds':\r\n return 24 / 3\r\n case 'ThreeQuarters':\r\n return 24 / 4\r\n default:\r\n return 24\r\n }\r\n}\r\n\r\nexport const getWidths = (params) => ({\r\n fieldWidth: getFieldWidth(params),\r\n labelWidth: getLabelWidth(params),\r\n inputWidth: getInputWidth(params),\r\n})\r\n\r\nexport const getTotalWidth = (questions = []) =>\r\n questions.map((each) => getFieldWidth({ formQuestion: each })).reduce((acc, each) => acc + each, 0)\r\n\r\nexport const sortFormQuestions = (unsorted, injected) => {\r\n const formQuestions = cloneDeep(orderBy(unsorted, ['line', 'position']))\r\n const numberOfLines = max([...formQuestions.map((each) => each.line), injected?.line ?? 1])\r\n\r\n let grid = []\r\n\r\n range(numberOfLines + 3).forEach((row) => {\r\n grid.push(\r\n formQuestions\r\n .filter((each) => each.line === row)\r\n .map((formQuestion, questionIndex) => ({\r\n ...formQuestion,\r\n position: questionIndex + 1,\r\n }))\r\n )\r\n })\r\n\r\n if (injected) {\r\n grid[injected.line].splice(injected.position - 1, 0, injected)\r\n }\r\n\r\n grid = grid.filter((each) => !isEmpty(each)).map((row) => row.filter((each) => !isEmpty(each)))\r\n\r\n grid.forEach((row, rowIndex) => {\r\n row.forEach((col, colIndex) => {\r\n col.line = rowIndex + 1\r\n col.position = colIndex + 1\r\n })\r\n })\r\n\r\n if (injected && grid.some((row) => row.some((col) => col.id === injected.id) && getTotalWidth(row) > 24)) {\r\n throw new Error('formSectionOverflowError')\r\n }\r\n\r\n return grid.flat().filter((each) => !isEmpty(each))\r\n}\r\n\r\nexport const getLabel = ({ formQuestion, labelWidth, color }) =>\r\n !allowInput(formQuestion) ? null : formQuestion.questionType === 'Checkbox' && labelWidth === 24 ? (\r\n HARD_SPACE\r\n ) : (\r\n {formQuestion.text}\r\n )\r\n\r\nexport const createQuestion = (params) => ({\r\n sectionId: 0,\r\n text: '',\r\n questionType: 'Textbox',\r\n questionOption: 'http://',\r\n position: 1,\r\n line: 1,\r\n fieldWidthType: 'OneThird',\r\n required: false,\r\n labelPlacementType: 'BasedOnForm',\r\n labelWidthType: 'OneHalf',\r\n placeholderText: '',\r\n defaultText: '',\r\n defaultNumber: null,\r\n defaultBoolean: false,\r\n minValue: null,\r\n maxValue: null,\r\n decimalPlaces: 0,\r\n height: 5,\r\n allowHighlight: false,\r\n allowAttachment: false,\r\n overrideSectionColor: false,\r\n foregroundColor: '#333333',\r\n backgroundColor: '#FFFFFF',\r\n fontName: '',\r\n fontSize: 14,\r\n bold: false,\r\n italic: false,\r\n underline: false,\r\n formQuestionOptions: [],\r\n ...params,\r\n})\r\n\r\nexport const isValidAnswer = (formQuestion, formAnswer) => {\r\n const text = toLower(trim(formAnswer?.value ?? ''))\r\n\r\n if (allowRequired(formQuestion) && formQuestion.required) {\r\n if (formQuestion.questionType === 'Checkbox') {\r\n return text === 'true'\r\n }\r\n\r\n return text !== ''\r\n }\r\n\r\n return true\r\n}\r\n\r\nexport const extractFormQuestions = (formTemplate) =>\r\n formTemplate.formPages.flatMap((each) => each.formPageSections).flatMap((each) => each.formQuestions)\r\n","import * as React from 'react'\r\nimport { Form } from 'antd'\r\nimport { showError } from 'helpers/errors'\r\nimport { createSetFilterValue } from 'helpers/filters'\r\nimport { stopEvent } from 'helpers/events'\r\nimport statusOptions from 'options/statusOptions'\r\nimport { t } from 'helpers/i18n'\r\nimport Select, { Option, getOptionProps } from 'elements/Select'\r\nimport { Row, Col } from 'elements/Grid'\r\n\r\nclass Filter extends React.Component {\r\n state = {}\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.setFilterValue = createSetFilterValue(this)\r\n }\r\n\r\n async componentDidMount() {\r\n try {\r\n await this.props.getFormGroups()\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n render() {\r\n const { filterDto = {}, disabled, allowFilterByStatus } = this.props\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n this.setFilterValue('formGroupId', value)}\r\n placeholder={t('all')}\r\n value={filterDto?.formGroupId}\r\n disabled={disabled}\r\n allowClear\r\n >\r\n {(this.props.formGroups ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n {allowFilterByStatus && (\r\n \r\n \r\n this.setFilterValue('active', value || 'Active')}\r\n value={filterDto.active || 'Active'}\r\n disabled={disabled}\r\n >\r\n {Object.entries(statusOptions).map(([key, value]) => (\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()(Filter)\r\n","import { connect } from 'react-redux'\r\nimport { createAuthStateToProps } from 'helpers/auth'\r\nimport selectors from 'selectors'\r\nimport actions from 'actions/formGroups'\r\nimport Component from 'components/FormTemplates/Select/Filter'\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n ...createAuthStateToProps(state, props),\r\n formGroups: selectors.formGroups.selectOptions(state),\r\n})\r\n\r\nexport default connect(mapStateToProps, { getFormGroups: actions.getOptions })(Component)\r\n","import { createListModalComponent } from 'factories/ListModal'\r\nimport Filter from 'containers/FormTemplates/Select/Filter'\r\n\r\nexport default createListModalComponent({\r\n getStorageKey: (self) => 'selectFormTemplate',\r\n getSettingsType: (self) => 'selectFormTemplate',\r\n initialFilterDto: (self) => ({\r\n versionType: 'NonLegacy',\r\n active: 'Active',\r\n }),\r\n})(Filter)\r\n","import { createListModalContainer } from 'factories/ListModal'\r\nimport actions from 'actions/formTemplates'\r\nimport Component from 'components/FormTemplates/Select'\r\n\r\nexport default createListModalContainer({ actions })(Component)\r\n"],"sourceRoot":""}