{"version":3,"file":"ApplicationForm.js","mappings":"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","sources":["webpack://@hedtech/powercampus-self-service/webpack/runtime/chunk loaded","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/Print.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Types/Enum/PaymentOrigin.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/PaymentDetailModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Generic/ProcessPaymentModal.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/ProcessPaymentModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Types/Enum/AuthStatus.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Generic/SignIn.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/SignIn.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Types/Generic/IPasswordPolicy.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Generic/SignUp.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/SignUp.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/AddressSearchModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/FieldsHandler.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/FieldsGroupHandler.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ApplicationCompletedModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ApplicationHandler.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/Attachments.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ConfirmationSavedModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ETSSearchModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Admissions/ApplicationForm.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Admissions/Applications.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ApplicationFormView.tsx","webpack://@hedtech/powercampus-self-service/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://@hedtech/powercampus-self-service/webpack/bootstrap","webpack://@hedtech/powercampus-self-service/webpack/runtime/compat get default export","webpack://@hedtech/powercampus-self-service/webpack/runtime/define property getters","webpack://@hedtech/powercampus-self-service/webpack/runtime/global","webpack://@hedtech/powercampus-self-service/webpack/runtime/hasOwnProperty shorthand","webpack://@hedtech/powercampus-self-service/webpack/runtime/make namespace object","webpack://@hedtech/powercampus-self-service/webpack/runtime/node module decorator","webpack://@hedtech/powercampus-self-service/webpack/runtime/runtimeId","webpack://@hedtech/powercampus-self-service/webpack/runtime/jsonp chunk loading","webpack://@hedtech/powercampus-self-service/webpack/runtime/nonce","webpack://@hedtech/powercampus-self-service/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: Print.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React, { useState } from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Hidden from '@hedtech/powercampus-design-system/react/core/Hidden';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport IconButton from '@hedtech/powercampus-design-system/react/core/IconButton';\r\nimport Snackbar from '@hedtech/powercampus-design-system/react/core/Snackbar';\r\n\r\n// Types\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\nimport { IPrintResources } from '../../Types/Resources/Generic/IPrintResources';\r\n\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface IPrintProps {\r\n classNameButtonText?: string;\r\n classNameIconButton?: string;\r\n disabled?: boolean;\r\n lblPrint?: string;\r\n link: string;\r\n resources: IPrintResources;\r\n}\r\n// #endregion Types\r\n\r\n// #region Component\r\nconst Print: React.FC = (props: IPrintProps): JSX.Element => {\r\n const {\r\n classNameButtonText,\r\n classNameIconButton,\r\n disabled,\r\n lblPrint,\r\n link,\r\n resources\r\n } = props;\r\n\r\n const [open, setOpen] = useState(false);\r\n\r\n const onClickPrint = () => {\r\n setOpen(!open);\r\n window.location.assign(link);\r\n };\r\n\r\n const onClose = () => {\r\n setOpen(!open);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {lblPrint ? lblPrint : resources.lblPrint}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblPrintProcess}\r\n \r\n )}\r\n open={open}\r\n type={ResultType.success}\r\n onClose={onClose}\r\n />\r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default Print;","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: PaymentOrigin.ts */\r\n\r\nexport enum PaymentOrigin {\r\n Registration = 0,\r\n ConEdRegistration = 1,\r\n MakePayment = 2,\r\n TranscriptRequest = 3,\r\n OnlineDonation = 4,\r\n Application = 5,\r\n PowerCampusReceipt = 6,\r\n PowerCampusGift = 7,\r\n SharedAccessMakePayment = 8\r\n}","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: PaymentDetailModal.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport IconButton from '@hedtech/powercampus-design-system/react/core/IconButton';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport RadioGroup from '@hedtech/powercampus-design-system/react/core/RadioGroup';\r\nimport Table, { TableBody, TableCell, TableFooter, TableHead, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Internal components\r\nimport Print from './Print';\r\n\r\n// Helpers\r\nimport Constants from '@hedtech/powercampus-design-system/helpers/Constants';\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IRadioOption } from '@hedtech/powercampus-design-system/types/IRadioOption';\r\nimport { PaymentOrigin } from '../../Types/Enum/PaymentOrigin';\r\nimport { IPaymentDiscountCoupon } from '../../Types/Payment/IPaymentDiscountCoupon';\r\nimport { IPaymentInfo } from '../../Types/Payment/IPaymentInfo';\r\nimport { IPaymentDetailModalResources } from '../../Types/Resources/Generic/IPaymentDetailModalResources';\r\nimport { IPrintResources } from '../../Types/Resources/Generic/IPrintResources';\r\n\r\n// Helpers\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\n\r\n// Requests\r\nimport RequestsLayout from '@hedtech/powercampus-design-system/requests/LayoutRequests';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface IPaymentDetailModalProps {\r\n coupons: IPaymentDiscountCoupon[];\r\n enableOnlinePayment: boolean;\r\n open: boolean;\r\n paymentInfo: IPaymentInfo;\r\n paymentInfoNoChanges: IPaymentInfo;\r\n paymentMethod?: string;\r\n paymentOrigin: PaymentOrigin;\r\n titleName?: string;\r\n yearTerm?: string;\r\n onApplyCoupon?: () => void;\r\n onChangeCouponCode?: (event: any) => void;\r\n onChangePaymentAnotherAmount?: (event: any) => void;\r\n onChangePaymentMethod?: (event: any) => void;\r\n onClose: () => void;\r\n onPay: () => void;\r\n onRemoveCoupon?: (event: any) => void;\r\n}\r\n\r\ninterface IPaymentDetailModalRes extends IPaymentDetailModalResources {\r\n printing: IPrintResources;\r\n}\r\n\r\ninterface IPaymentDetailModalState {\r\n componentError: boolean;\r\n resources?: IPaymentDetailModalRes;\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n amountContainer: {\r\n backgroundColor: Tokens.colorBrandNeutral200,\r\n height: '100px',\r\n marginBottom: Tokens.spacing50,\r\n paddingBottom: Tokens.spacing50,\r\n paddingLeft: Tokens.spacing40,\r\n paddingRight: Tokens.spacing40,\r\n paddingTop: Tokens.spacing50,\r\n width: 'auto'\r\n },\r\n discountApplied: {\r\n color: Tokens.colorTextAlertNeutral\r\n },\r\n footerPayment: {\r\n backgroundColor: Tokens.colorBrandNeutral200,\r\n paddingBottom: Tokens.spacing40,\r\n paddingTop: Tokens.spacing30\r\n },\r\n footerTextSpacing: {\r\n marginTop: Tokens.spacing30\r\n },\r\n instructionsContainer: {\r\n marginBottom: Tokens.sizingSmall,\r\n marginTop: Tokens.sizingSmall\r\n },\r\n noBottomBorder: {\r\n borderBottomColor: `${Tokens.colorBrandNeutral100}!important`\r\n },\r\n noDeleteButton: {\r\n width: Tokens.spacing70\r\n },\r\n table: {\r\n [theme.breakpoints.up('md')]: {\r\n // Width\r\n '& > thead > tr > th:nth-child(1)': {\r\n width: '50%'\r\n }\r\n }\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IPaymentDetailModalProps & WithStyles;\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass PaymentDetailModal extends React.Component {\r\n private idModule: string;\r\n private idPage: string;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idModule = 'Generic';\r\n this.idPage = 'PaymentDetailModal';\r\n this.state = this.getInitialState();\r\n // #endregion Initialize Variables and State\r\n }\r\n\r\n private getInitialState(): IPaymentDetailModalState {\r\n let resources: IPaymentDetailModalRes | undefined;\r\n if (this.state) {\r\n resources = this.state.resources;\r\n }\r\n return {\r\n componentError: false,\r\n resources: resources\r\n };\r\n }\r\n\r\n // #region Error Functions\r\n private logError(logData: ILogData): void {\r\n LayoutActions.setLogData(logData);\r\n }\r\n\r\n private redirectError(code: number): void {\r\n LayoutActions.setRedirectCode(code);\r\n }\r\n\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveGetResources = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetResources.name);\r\n if (result?.status) {\r\n this.setState({\r\n resources: result.data\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetResources.name, e));\r\n }\r\n };\r\n // #endregion Resolvers\r\n\r\n // #region Lifecycle\r\n public componentDidMount(): void {\r\n try {\r\n RequestsLayout.getResources(this.idModule, this.idPage,\r\n this.resolveGetResources,\r\n this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.componentDidMount.name, e));\r\n }\r\n }\r\n\r\n public componentDidCatch(error, info): void {\r\n this.setState({\r\n componentError: true\r\n }, () => {\r\n this.logError(LogData.fromComponentException(this.componentDidCatch.name, error, info));\r\n this.redirectError(500);\r\n });\r\n }\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n classes,\r\n coupons,\r\n enableOnlinePayment,\r\n open,\r\n paymentInfo,\r\n paymentInfoNoChanges,\r\n paymentMethod,\r\n paymentOrigin,\r\n titleName,\r\n yearTerm,\r\n onApplyCoupon,\r\n onChangeCouponCode,\r\n onChangePaymentAnotherAmount,\r\n onChangePaymentMethod,\r\n onClose,\r\n onPay,\r\n onRemoveCoupon\r\n } = this.props;\r\n\r\n const {\r\n componentError,\r\n resources\r\n } = this.state;\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (!componentError && resources) {\r\n let paymentMethods: IRadioOption[] | undefined;\r\n let hasCharges: boolean = false;\r\n\r\n if (paymentOrigin === PaymentOrigin.Registration) {\r\n paymentMethods = [];\r\n hasCharges = paymentInfo.currentBalanceValue > 0 || paymentInfo.totalAmountValue > 0;\r\n\r\n if (hasCharges) {\r\n paymentMethods.push({\r\n description: Format.toString(resources.formatBalance, [paymentInfo.currentBalance]),\r\n disabled: paymentInfo.currentBalanceValue < 0,\r\n value: '1'\r\n } as IRadioOption);\r\n // TODO: Review if this code is useful for the next story about the total charges and taxes\r\n // paymentMethods.push({\r\n // description: Format.toString(resources.formatTotal, [paymentInfo.totalAmount]),\r\n // disabled: paymentInfo.totalAmountValue < 0,\r\n // value: '2'\r\n // } as IRadioOption);\r\n\r\n let errorAnotherAmount: boolean = false;\r\n let errorTextAnotherAmount: string | undefined;\r\n if (paymentMethod === '0' && paymentInfo.modified) {\r\n errorAnotherAmount = !Boolean(paymentInfo.anotherAmount)\r\n || paymentInfo.invalidAnotherAmount;\r\n errorTextAnotherAmount = !Boolean(paymentInfo.anotherAmount) ?\r\n resources.lblAnotherAmountRequired\r\n : (paymentInfo.invalidAnotherAmount ?\r\n resources.lblAnotherAmountInvalid\r\n : undefined);\r\n }\r\n\r\n paymentMethods.push({\r\n description: resources.lblAnotherAmount,\r\n nodeComplement: (\r\n \r\n ),\r\n value: '0'\r\n } as IRadioOption);\r\n }\r\n }\r\n else if (paymentOrigin === PaymentOrigin.ConEdRegistration && !paymentInfo.useTransactionChargesOnly) {\r\n hasCharges = paymentInfo.paymentDueValue > 0;\r\n }\r\n else {\r\n hasCharges = paymentInfo.totalAmountValue > 0;\r\n }\r\n\r\n let headerModal: JSX.Element;\r\n headerModal = (\r\n <>\r\n \r\n {Format.toString(resources.formatTitle, [yearTerm || titleName || ''])}\r\n \r\n \r\n \r\n \r\n {resources.lblInstructions}\r\n \r\n \r\n {((paymentOrigin === PaymentOrigin.Registration\r\n || paymentOrigin === PaymentOrigin.ConEdRegistration)\r\n && paymentInfo.statementNumber) && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {paymentOrigin === PaymentOrigin.Registration\r\n && paymentMethods && hasCharges && (\r\n \r\n )}\r\n {paymentOrigin !== PaymentOrigin.Registration && (\r\n
\r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration\r\n && !paymentInfo.useTransactionChargesOnly ? (\r\n <>\r\n \r\n \r\n {paymentInfo.paymentDue}\r\n \r\n \r\n \r\n \r\n {resources.lblPaymentDue}\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n {paymentInfoNoChanges.totalAmountValue !== paymentInfo.totalAmountValue ? (\r\n \r\n {paymentInfo.totalAmount}\r\n \r\n ) : (\r\n \r\n {paymentInfo.totalAmount}\r\n \r\n )}\r\n \r\n \r\n {paymentInfoNoChanges.totalAmountValue !== paymentInfo.totalAmountValue ? (\r\n \r\n {resources.lblDiscountedTotal}\r\n \r\n ) : (\r\n \r\n {resources.lblTotal}\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 let footerModal: JSX.Element;\r\n footerModal = enableOnlinePayment && hasCharges ? (\r\n \r\n {!paymentInfo.requireOnlinePayment &&\r\n (paymentOrigin === PaymentOrigin.Registration\r\n || paymentOrigin === PaymentOrigin.ConEdRegistration) && (\r\n \r\n {resources.btnBillMeLater}\r\n \r\n )}\r\n \r\n {resources.btnPay}\r\n \r\n \r\n ) : (\r\n \r\n {resources.btnOk}\r\n \r\n );\r\n\r\n let rowClassName: string | undefined;\r\n let isFirstRow: boolean;\r\n contentPage = (\r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration && (\r\n \r\n \r\n \r\n {resources.lblDiscountTitle}\r\n \r\n \r\n {resources.lblDiscountInstructions}\r\n \r\n \r\n \r\n {coupons.map((coupon, ci) => (\r\n \r\n \r\n \r\n \r\n {!coupon.isNew ? (\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 {!coupon.isApplied && (\r\n \r\n {resources.btnApplyCoupon}\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 {resources.lblDetail}\r\n \r\n \r\n \r\n {paymentInfo.chargeCredits && (\r\n \r\n \r\n \r\n \r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration && (\r\n \r\n {resources.lblCourse}\r\n \r\n )}\r\n \r\n {resources.lblCharge}\r\n \r\n \r\n {resources.lblAmount}\r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration\r\n && paymentInfo.chargeCredits.find(c => c.isCredit)\r\n && (\r\n \r\n {resources.lblDiscount}\r\n \r\n )}\r\n \r\n \r\n \r\n {paymentInfo.chargeCredits.map((row, cci) => {\r\n if (paymentOrigin === PaymentOrigin.ConEdRegistration) {\r\n rowClassName = undefined;\r\n isFirstRow = true;\r\n if (cci < paymentInfo.chargeCredits.length - 1\r\n && row.sectionId === paymentInfo.chargeCredits[cci + 1].sectionId) {\r\n rowClassName = classes.noBottomBorder;\r\n }\r\n if (cci > 0\r\n && row.sectionId === paymentInfo.chargeCredits[cci - 1].sectionId) {\r\n isFirstRow = false;\r\n }\r\n }\r\n return (\r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration && (\r\n \r\n {isFirstRow && !row.isCredit && !row.isOther && (\r\n \r\n {(row.eventId && row.eventName) ? Format.toString(resources.formatTitleSection, [row.eventId, row.eventName]) : '' }\r\n \r\n )}\r\n {isFirstRow && row.isOther && (\r\n \r\n {resources.lblOthers}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {row.description}\r\n \r\n {paymentOrigin === PaymentOrigin.Application\r\n && paymentInfo.chargeCredits\r\n && paymentInfo.chargeCredits.length > 0\r\n && paymentInfo.totalAmount !== paymentInfo.chargeCredits[0].amount && (\r\n <>\r\n
\r\n \r\n {resources.lblProgramFees}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {row.amount}\r\n \r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration\r\n && paymentInfo.chargeCredits.find(c => c.isCredit)\r\n && (\r\n \r\n \r\n {row.discountAmount || '-'}\r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n
\r\n \r\n \r\n \r\n {paymentInfoNoChanges.totalAmountValue !== paymentInfo.totalAmountValue ? (\r\n \r\n {Format.toString(resources.formatDiscountedTotal, [paymentInfo.totalAmount])}\r\n \r\n ) : (\r\n \r\n {Format.toString(resources.formatTotal, [paymentInfo.totalAmount])}\r\n \r\n )}\r\n {paymentOrigin === PaymentOrigin.Registration && (\r\n \r\n {Format.toString(resources.formatPaymentDue, [paymentInfo.paymentDue])}\r\n \r\n )}\r\n {paymentOrigin === PaymentOrigin.ConEdRegistration\r\n && !paymentInfo.useTransactionChargesOnly && (\r\n \r\n {Format.toString(resources.formatPaymentDue, [paymentInfo.paymentDue])}\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 return (\r\n <>\r\n {contentPage}\r\n \r\n );\r\n }\r\n}\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(PaymentDetailModal);","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: ProcessPaymentModal.ts */\r\n\r\n// Types\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IGiftCampaign } from '../../Types/MakeGift/IGiftCampaign';\r\nimport { IRequestTranscript } from '../../Types/Grades/IRequestTranscript';\r\nimport { IPaymentRequest } from '../../Types/Payment/IPaymentRequest';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\n\r\n// Functions for requests\r\nconst ProcessPaymentModalRequests = {\r\n postProcessPayment(paymentRequest: IPaymentRequest,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postProcessPayment.name, '/Payment/Process', { paymentRequest }, resolver, resolveError);\r\n },\r\n postProcessTranscriptPayment(paymentRequest: IPaymentRequest,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void,\r\n requestTranscripts?: IRequestTranscript[]): void {\r\n Request.post(this.postProcessTranscriptPayment.name, '/Payment/Process', { paymentRequest, requestTranscripts }, resolver, resolveError);\r\n },\r\n postProcessDonationPayment(paymentRequest: IPaymentRequest,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void,\r\n giftCampaigns?: IGiftCampaign[]): void {\r\n Request.post(this.postProcessTranscriptPayment.name, '/Payment/Process', { paymentRequest, giftCampaigns }, resolver, resolveError);\r\n }\r\n};\r\n\r\n// Export object with the requests\r\nexport default ProcessPaymentModalRequests;","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: ProcessPaymentModal.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Alert from '@hedtech/powercampus-design-system/react/core/Alert';\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\n\r\n// Types\r\nimport { IAlert } from '@hedtech/powercampus-design-system/types/IAlert';\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\nimport { PaymentOrigin } from '../../Types/Enum/PaymentOrigin';\r\nimport { IYearTerm } from '../../Types/Generic/IYearTerm';\r\nimport { IRequestTranscript } from '../../Types/Grades/IRequestTranscript';\r\nimport { IPaymentPeriod } from '../../Types/Payment/IPaymentPeriod';\r\nimport { IPaymentRequest } from '../../Types/Payment/IPaymentRequest';\r\nimport { IGiftCampaign } from '../../Types/MakeGift/IGiftCampaign';\r\nimport { IProcessPaymentModalResources } from '../../Types/Resources/Generic/IProcessPaymentModalResources';\r\n\r\n// Helpers\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\n\r\n// Requests\r\nimport RequestsLayout from '@hedtech/powercampus-design-system/requests/LayoutRequests';\r\nimport Requests from '../../Requests/Generic/ProcessPaymentModal';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface IProcessPaymentModalProps {\r\n amount: number;\r\n applicationId?: number;\r\n conEdTransactionId?: number;\r\n giftCampaigns?: IGiftCampaign[];\r\n open: boolean;\r\n paymentOrigin: PaymentOrigin;\r\n personId?: number;\r\n requestTranscripts?: IRequestTranscript[];\r\n returnUrl?: string;\r\n termSessionId?: string;\r\n yearTerm?: string;\r\n onClose: () => void;\r\n}\r\n\r\ninterface IProcessPaymentModalState {\r\n componentError: boolean;\r\n resources?: IProcessPaymentModalResources;\r\n}\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass ProcessPaymentModal extends React.Component {\r\n private idModule: string;\r\n private idPage: string;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idModule = 'Generic';\r\n this.idPage = 'ProcessPaymentModal';\r\n this.state = this.getInitialState();\r\n // #endregion Initialize Variables and State\r\n }\r\n\r\n private getInitialState(): IProcessPaymentModalState {\r\n let resources: IProcessPaymentModalResources | undefined;\r\n if (this.state) {\r\n resources = this.state.resources;\r\n }\r\n return {\r\n componentError: false,\r\n resources: resources\r\n };\r\n }\r\n\r\n // #region Events\r\n private onOk = (): void => {\r\n try {\r\n const {\r\n amount,\r\n applicationId,\r\n conEdTransactionId,\r\n giftCampaigns,\r\n paymentOrigin,\r\n personId,\r\n requestTranscripts,\r\n returnUrl,\r\n termSessionId,\r\n yearTerm\r\n } = this.props;\r\n\r\n const paymentRequest: IPaymentRequest = {\r\n amount: amount,\r\n applicationId: applicationId,\r\n conEdTransactionId: conEdTransactionId,\r\n paymentOrigin: paymentOrigin,\r\n personId: personId,\r\n returnUrl: returnUrl\r\n } as IPaymentRequest;\r\n if (termSessionId) {\r\n const periodId = termSessionId.split('/');\r\n paymentRequest.paymentPeriod = {\r\n sessionPeriodId: periodId[1] ? Number(periodId[1]) : null,\r\n termPeriodId: periodId[0] ? Number(periodId[0]) : null\r\n } as IPaymentPeriod;\r\n }\r\n else if (yearTerm) {\r\n const split = yearTerm.split('/');\r\n paymentRequest.yearTerm = {\r\n term: split[1],\r\n year: Number(split[0])\r\n } as IYearTerm;\r\n }\r\n if (requestTranscripts) {\r\n Requests.postProcessTranscriptPayment(paymentRequest, this.resolvePostProcessPayment, this.logError, requestTranscripts);\r\n }\r\n else if (giftCampaigns) {\r\n Requests.postProcessDonationPayment(paymentRequest, this.resolvePostProcessPayment, this.logError, giftCampaigns);\r\n }\r\n else {\r\n Requests.postProcessPayment(paymentRequest, this.resolvePostProcessPayment, this.logError);\r\n }\r\n LayoutActions.setLoading(true);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onOk.name, e));\r\n }\r\n };\r\n // #endregion Events\r\n\r\n // #region Error Functions\r\n private logError(logData: ILogData): void {\r\n LayoutActions.setLogData(logData);\r\n }\r\n\r\n private redirectError(code: number): void {\r\n LayoutActions.setRedirectCode(code);\r\n }\r\n\r\n private showError(message?: string): void {\r\n LayoutActions.setAlert({ message: message, messageType: ResultType.error } as IAlert);\r\n }\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveGetResources = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetResources.name);\r\n if (result?.status) {\r\n this.setState({\r\n resources: result.data\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetResources.name, e));\r\n }\r\n };\r\n\r\n private resolvePostProcessPayment = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolvePostProcessPayment.name);\r\n if (result?.status) {\r\n if (result.data) {\r\n window.location.replace(encodeURI(result.data));\r\n LayoutActions.setLoading(false);\r\n }\r\n else {\r\n this.showError();\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolvePostProcessPayment.name, e));\r\n }\r\n };\r\n // #endregion Resolvers\r\n\r\n // #region Lifecycle\r\n public componentDidMount(): void {\r\n try {\r\n RequestsLayout.getResources(this.idModule, this.idPage,\r\n this.resolveGetResources,\r\n this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.componentDidMount.name, e));\r\n }\r\n }\r\n\r\n public componentDidCatch(error, info): void {\r\n this.setState({\r\n componentError: true\r\n }, () => {\r\n this.logError(LogData.fromComponentException(this.componentDidCatch.name, error, info));\r\n this.redirectError(500);\r\n });\r\n }\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n open,\r\n onClose\r\n } = this.props;\r\n\r\n const {\r\n componentError,\r\n resources\r\n } = this.state;\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (!componentError && resources) {\r\n contentPage = (\r\n \r\n \r\n {resources.btnCancel}\r\n \r\n \r\n {resources.btnOk}\r\n \r\n \r\n )}\r\n maxWidth=\"sm\"\r\n open={open}\r\n showTitleBarClose={false}\r\n onClose={onClose}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {contentPage}\r\n \r\n );\r\n }\r\n}\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default ProcessPaymentModal;","/* Copyright 2021 Ellucian Company L.P. and its affiliates.\r\n * File: AuthStatus.ts */\r\n\r\nexport enum AuthStatus {\r\n None = 0,\r\n Success = 1,\r\n InvalidCredentials = 2,\r\n InvalidPassword = 3,\r\n NoIdentity = 4,\r\n InvalidConfiguration = 5,\r\n NoStoreAssigned = 6,\r\n Unknown = 7,\r\n IsLocked = 8\r\n}","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: SignIn.ts */\r\n\r\n// Types\r\nimport { IPasswordChange } from '../../Types/Account/IPasswordChange';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\n\r\n// Functions for requests\r\nconst SignInRequests = {\r\n authenticateUser(userName: string, password: string, resolver: (json: string) => void): void {\r\n Request.post(this.authenticateUser.name, '/SignIn/Authenticate', { userName, password }, resolver);\r\n },\r\n changePassword(passwordChange: IPasswordChange, resolver: (json: string) => void): void {\r\n Request.post(this.changePassword.name, '/Password/ChangePassword', passwordChange, resolver);\r\n },\r\n getAuthenticationMode(userName: string, resolver: (json: string) => void): void {\r\n Request.post(this.getAuthenticationMode.name, '/SignIn/GetAuthenticationMode', userName, resolver);\r\n },\r\n isForgotPasswordEnabled(resolver: (json: string) => void): void {\r\n Request.post(this.isForgotPasswordEnabled.name, '/SignIn/IsForgotPasswordEnabled', null, resolver);\r\n },\r\n sendForgotPasswordEmail(userName: string, reCaptchaResponse: string, resolver: (json: string) => void): void {\r\n Request.post(this.sendForgotPasswordEmail.name, '/SignIn/SendForgotPasswordEmail', { userName, reCaptchaResponse }, resolver);\r\n },\r\n};\r\n\r\n// Export object with the requests\r\nexport default SignInRequests;","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: SignIn.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport URLSearchParams from '@ungap/url-search-params';\r\nimport React, { RefObject } from 'react';\r\nimport { setTimeout } from 'timers';\r\n\r\n// Core components\r\nimport Alert from '@hedtech/powercampus-design-system/react/core/Alert';\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Card, { CardContent } from '@hedtech/powercampus-design-system/react/core/Card';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Paragraph from '@hedtech/powercampus-design-system/react/core/Paragraph';\r\nimport PasswordConfirmation from '@hedtech/powercampus-design-system/react/components/PasswordConfirmation';\r\nimport ReCAPTCHA from '@hedtech/powercampus-design-system/react/core/ReCaptcha';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Types\r\nimport { StoreMode } from '@hedtech/powercampus-design-system/types/Account/StoreMode';\r\nimport { IAlert } from '@hedtech/powercampus-design-system/types/IAlert';\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\nimport { ChangePasswordError } from '@hedtech/powercampus-design-system/types/PasswordConfirmation/ChangePasswordError';\r\nimport { IAccountValidations } from '@hedtech/powercampus-design-system/types/PasswordConfirmation/IAccountValidations';\r\nimport { IChangePasswordResponse } from '@hedtech/powercampus-design-system/types/PasswordConfirmation/IChangePasswordResponse';\r\nimport { IPasswordChange } from '../../Types/Account/IPasswordChange';\r\nimport { AuthStatus } from '../../Types/Enum/AuthStatus';\r\nimport { IAuthResponse } from '../../Types/Generic/IAuthResponse';\r\nimport { ISignInResources } from '../../Types/Resources/Generic/ISignInResources';\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport PasswordValidation from '@hedtech/powercampus-design-system/helpers/PasswordValidation';\r\nimport Redirect from '@hedtech/powercampus-design-system/helpers/Redirect';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\nimport { withWidth, WithWidth } from '@hedtech/powercampus-design-system/react/core/withWidth';\r\n\r\n// Requests\r\nimport RequestsLayout from '@hedtech/powercampus-design-system/requests/LayoutRequests';\r\nimport Requests from '../../Requests/Generic/SignIn';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\nimport LayoutStore from '@hedtech/powercampus-design-system/flux/stores/LayoutStore';\r\nimport PasswordConfirmationActions from '@hedtech/powercampus-design-system/flux/actions/PasswordConfirmationActions';\r\nimport PasswordConfirmationStore from '@hedtech/powercampus-design-system/flux/stores/PasswordConfirmationStore';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface ISignInProps {\r\n open?: boolean;\r\n userName?: string;\r\n onAfterSignIn?: () => void;\r\n onClose?: () => void;\r\n onGoSignUp?: () => void;\r\n}\r\n\r\ninterface ISignInState {\r\n accountValidations?: IAccountValidations;\r\n alert?: IAlert;\r\n authMode?: number;\r\n isLoading: boolean;\r\n isLoadingNext: boolean;\r\n isLoadingSignIn: boolean;\r\n password: string;\r\n passwordModified: boolean;\r\n resources?: ISignInResources;\r\n stepNumber: number;\r\n uiCulture: string;\r\n userName: string;\r\n userNameModified: boolean;\r\n variation: number;\r\n\r\n // #region Change Password\r\n errorCurrentPassword: boolean;\r\n isLoadingChangePassword: boolean;\r\n newPassword?: string;\r\n openChangePassword: boolean;\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n emailSent: boolean;\r\n isForgotPasswordEnabled: boolean;\r\n isLoadingSendEmail: boolean;\r\n isReCaptchaEnabled: boolean;\r\n openForgotPassword: boolean;\r\n reCaptchaError: boolean;\r\n reCaptchaSiteKey: string;\r\n userNameRecovery: string;\r\n userNameRecoveryModified: boolean;\r\n // #endregion Forgot Password\r\n}\r\n\r\nconst styles = createStyles({\r\n forgotPasswordLink: {\r\n paddingTop: Tokens.spacing30\r\n },\r\n forgotText: {\r\n marginBottom: `${Tokens.spacing40}!important`\r\n },\r\n loginCard: {\r\n animation: 'slidein 1s',\r\n marginTop: Tokens.spacing80,\r\n maxWidth: '800px'\r\n },\r\n loginText: {\r\n marginTop: `${Tokens.spacing40}!important`\r\n },\r\n reCaptchaContent: {\r\n paddingBottom: Tokens.spacing30\r\n },\r\n reCaptchaErrorText: {\r\n paddingBottom: Tokens.spacing30\r\n },\r\n signInButton: {\r\n paddingTop: Tokens.spacing20\r\n },\r\n spacingAlert: {\r\n paddingBottom: Tokens.spacing20\r\n },\r\n spacingTitle: {\r\n paddingBottom: Tokens.spacing30\r\n }\r\n});\r\n\r\ntype PropsWithStyles = ISignInProps & WithStyles & WithWidth;\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass SignIn extends React.Component {\r\n private idModule: string;\r\n private idPage: string;\r\n private passwordRef: RefObject;\r\n private reCaptchaRef: RefObject;\r\n private userNameRecoveryRef: RefObject;\r\n private userNameRef: RefObject;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idModule = 'Generic';\r\n this.idPage = 'SignIn';\r\n this.passwordRef = React.createRef();\r\n this.reCaptchaRef = React.createRef();\r\n this.userNameRecoveryRef = React.createRef();\r\n this.userNameRef = React.createRef();\r\n this.state = this.getInitialState(this.props.userName);\r\n // #endregion Initialize Variables and State\r\n\r\n // #region Bind State Management Listeners\r\n PasswordConfirmationStore.addPasswordValidationListener(this.onChangePasswordValidation);\r\n // #endregion State Management Listeners\r\n }\r\n\r\n private getInitialState(userName?: string): ISignInState {\r\n let isLoading: boolean = true;\r\n let resources: ISignInResources | undefined;\r\n let isForgotPasswordEnabled: boolean = false;\r\n let isReCaptchaEnabled: boolean = false;\r\n let reCaptchaSiteKey: string;\r\n if (this.state) {\r\n isForgotPasswordEnabled = this.state.isForgotPasswordEnabled;\r\n isLoading = this.state.isLoading;\r\n isReCaptchaEnabled = this.state.isReCaptchaEnabled;\r\n reCaptchaSiteKey = this.state.reCaptchaSiteKey;\r\n resources = this.state.resources;\r\n }\r\n else {\r\n reCaptchaSiteKey = '';\r\n resources = LayoutStore.getResourcesByKey(`${this.idModule}.${this.idPage}`);\r\n }\r\n return {\r\n accountValidations: undefined,\r\n alert: undefined,\r\n authMode: undefined,\r\n isLoading: isLoading,\r\n isLoadingNext: false,\r\n isLoadingSignIn: false,\r\n password: '',\r\n passwordModified: false,\r\n resources: resources,\r\n stepNumber: 1,\r\n uiCulture: LayoutStore.getCultures().uiCulture,\r\n userName: userName || '',\r\n userNameModified: false,\r\n variation: 0,\r\n\r\n // #region Change Password\r\n errorCurrentPassword: false,\r\n isLoadingChangePassword: false,\r\n openChangePassword: false,\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n emailSent: false,\r\n isForgotPasswordEnabled: isForgotPasswordEnabled,\r\n isLoadingSendEmail: false,\r\n isReCaptchaEnabled: isReCaptchaEnabled,\r\n openForgotPassword: false,\r\n reCaptchaError: false,\r\n reCaptchaSiteKey: reCaptchaSiteKey,\r\n userNameRecovery: '',\r\n userNameRecoveryModified: false\r\n // #endregion Forgot Password\r\n };\r\n }\r\n\r\n // #region Events\r\n\r\n private OnFinishSignIn = (): void => {\r\n try {\r\n LayoutStore.setIsAuthenticated(true);\r\n LayoutStore.setMenuOptions(undefined);\r\n LayoutActions.showPageLoader();\r\n const {\r\n onAfterSignIn\r\n } = this.props;\r\n if (onAfterSignIn) {\r\n onAfterSignIn();\r\n }\r\n else {\r\n const urlParams: URLSearchParams = new URLSearchParams(window.location.search);\r\n const returnUrl: string | null = urlParams.get('ReturnUrl');\r\n const newState: ISignInState = this.getInitialState();\r\n newState.isLoading = true;\r\n this.setState(newState);\r\n if (returnUrl && !returnUrl.includes('LogOut')) {\r\n window.location.assign(returnUrl);\r\n }\r\n else {\r\n Redirect.toHome();\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.OnFinishSignIn.name, e));\r\n }\r\n };\r\n\r\n private onChangePassword = (event: React.ChangeEvent): void => {\r\n try {\r\n this.setState({\r\n alert: undefined,\r\n password: event.target.value,\r\n passwordModified: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePassword.name, e));\r\n }\r\n };\r\n\r\n private onChangeUserName = (event: React.ChangeEvent): void => {\r\n try {\r\n this.setState({\r\n alert: undefined,\r\n userName: event.target.value,\r\n userNameModified: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeUserName.name, e));\r\n }\r\n };\r\n\r\n private onCloseModal = (): void => {\r\n try {\r\n const {\r\n onClose\r\n } = this.props;\r\n const {\r\n isLoadingNext,\r\n isLoadingSignIn\r\n } = this.state;\r\n\r\n if (onClose && !isLoadingNext && !isLoadingSignIn) {\r\n this.setState(this.getInitialState());\r\n onClose();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseModal.name, e));\r\n }\r\n };\r\n\r\n private onGoSignUpModal = (): void => {\r\n try {\r\n const {\r\n onGoSignUp\r\n } = this.props;\r\n\r\n const {\r\n isLoadingNext\r\n } = this.state;\r\n\r\n if (onGoSignUp && !isLoadingNext) {\r\n this.setState(this.getInitialState());\r\n onGoSignUp();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onGoSignUpModal.name, e));\r\n }\r\n };\r\n\r\n private onNext = (): void => {\r\n try {\r\n const {\r\n userName\r\n } = this.state;\r\n\r\n this.setState({\r\n userNameModified: true\r\n });\r\n\r\n if (userName) {\r\n this.showLoaderNext();\r\n Requests.getAuthenticationMode(userName, this.resolveGetAuthenticationMode);\r\n }\r\n else if (this.userNameRef?.current) {\r\n this.userNameRef.current.focus();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onNext.name, e));\r\n }\r\n };\r\n\r\n private onSignIn = (): void => {\r\n try {\r\n const {\r\n authMode,\r\n password,\r\n userName,\r\n variation\r\n } = this.state;\r\n\r\n this.setState({\r\n passwordModified: true\r\n });\r\n\r\n if (userName && password) {\r\n this.showLoaderSignIn();\r\n if (variation === 2 && authMode) {\r\n Requests.authenticateUser(userName, password, this.resolveAuthenticateUser);\r\n }\r\n else {\r\n const timeout: number = Math.floor(Math.random() * 5 + 1) * 1000;\r\n setTimeout(() => {\r\n const {\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n const alert: IAlert = {\r\n message: resources.lblInvalidCredentials,\r\n messageType: ResultType.error\r\n };\r\n this.setState({\r\n alert: alert\r\n });\r\n }\r\n else {\r\n this.showError();\r\n }\r\n this.hideLoaderSignIn();\r\n }, timeout);\r\n }\r\n }\r\n else if (this.passwordRef?.current) {\r\n this.passwordRef.current.focus();\r\n }\r\n\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onSignIn.name, e));\r\n }\r\n };\r\n\r\n private onUseAnotherAccount = (): void => {\r\n try {\r\n this.setState(this.getInitialState(), () => {\r\n if (this.userNameRef?.current) {\r\n this.userNameRef.current.focus();\r\n }\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onUseAnotherAccount.name, e));\r\n }\r\n };\r\n\r\n // #region Change Password\r\n private onChangePasswordButton = (): void => {\r\n try {\r\n const {\r\n accountValidations,\r\n errorCurrentPassword,\r\n newPassword,\r\n password,\r\n userName\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n if (accountValidations) {\r\n let validations: IAccountValidations = PasswordValidation.validatePassword(accountValidations, newPassword,\r\n PasswordConfirmationStore.getPasswordPolicy());\r\n validations = PasswordValidation.validateConfirmPassword(accountValidations, accountValidations.confirmPassword, newPassword);\r\n PasswordConfirmationActions.setPasswordValidation(newPassword, validations);\r\n\r\n if (validations.hasErrors || errorCurrentPassword) {\r\n validations.isCurrentPwdNewPwd = errorCurrentPassword;\r\n PasswordConfirmationActions.setPasswordValidation(newPassword, validations);\r\n isValid = false;\r\n }\r\n }\r\n\r\n if (isValid && newPassword) {\r\n this.showLoaderChangePassword();\r\n const passwordChange: IPasswordChange = {\r\n userName: userName,\r\n currentPassword: password,\r\n newPassword: newPassword\r\n };\r\n Requests.changePassword(passwordChange, this.resolveChangePassword);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePasswordButton.name, e));\r\n }\r\n };\r\n\r\n private onCloseChangePassword = (): void => {\r\n try {\r\n this.setState(this.getInitialState(), () => {\r\n if (this.userNameRef?.current) {\r\n this.userNameRef.current.focus();\r\n }\r\n });\r\n PasswordConfirmationActions.setPasswordValidation();\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseChangePassword.name, e));\r\n }\r\n };\r\n\r\n private onChangePasswordValidation = (): void => {\r\n try {\r\n const {\r\n password\r\n } = this.state;\r\n\r\n this.setState({\r\n accountValidations: PasswordConfirmationStore.getPasswordValidation(),\r\n errorCurrentPassword: PasswordConfirmationStore.getPassword() === password,\r\n newPassword: PasswordConfirmationStore.getPassword()\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePasswordValidation.name, e));\r\n }\r\n };\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n private onChangeUserNameRecovery = (event: React.ChangeEvent): void => {\r\n try {\r\n this.setState({\r\n userNameRecovery: event.target.value,\r\n userNameRecoveryModified: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeUserNameRecovery.name, e));\r\n }\r\n };\r\n\r\n private onClickForgotPassword = (): void => {\r\n try {\r\n this.setState({\r\n emailSent: false,\r\n openForgotPassword: true,\r\n userNameRecovery: '',\r\n userNameRecoveryModified: false\r\n }, () => {\r\n if (this.userNameRecoveryRef?.current) {\r\n this.userNameRecoveryRef.current.focus();\r\n }\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickForgotPassword.name, e));\r\n }\r\n };\r\n\r\n private onCloseForgotPassword = (): void => {\r\n try {\r\n const {\r\n authMode,\r\n stepNumber\r\n } = this.state;\r\n\r\n this.setState({\r\n openForgotPassword: false,\r\n reCaptchaError: false\r\n }, () => {\r\n if (stepNumber === 2 && (authMode === StoreMode.Identity || authMode === StoreMode.ActiveDirectory)) {\r\n if (this.passwordRef?.current) {\r\n this.passwordRef.current.focus();\r\n }\r\n }\r\n else {\r\n if (this.userNameRef?.current) {\r\n this.userNameRef.current.focus();\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseForgotPassword.name, e));\r\n }\r\n };\r\n\r\n private onRecaptchaChange = (token: any): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: !Boolean(token)\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onRecaptchaChange.name, e));\r\n }\r\n };\r\n\r\n private onReCaptchaError = (): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onReCaptchaError.name, e));\r\n }\r\n };\r\n\r\n private onSendEmail = (): void => {\r\n try {\r\n const {\r\n isReCaptchaEnabled,\r\n userNameRecovery\r\n } = this.state;\r\n\r\n let reCaptchaResponse: string = '';\r\n if (isReCaptchaEnabled && this.reCaptchaRef?.current) {\r\n reCaptchaResponse = this.reCaptchaRef.current.getValue();\r\n this.setState({\r\n reCaptchaError: !Boolean(reCaptchaResponse),\r\n userNameRecoveryModified: true\r\n });\r\n }\r\n\r\n if (!isReCaptchaEnabled || reCaptchaResponse) {\r\n this.setState({\r\n reCaptchaError: false,\r\n userNameRecoveryModified: true\r\n });\r\n\r\n if (userNameRecovery) {\r\n this.showLoaderSendEmail();\r\n Requests.sendForgotPasswordEmail(userNameRecovery, reCaptchaResponse, this.resolveSendForgotPasswordEmail);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onSendEmail.name, e));\r\n }\r\n };\r\n // #endregion Forgot Password\r\n\r\n // #endregion Events\r\n\r\n // #region Loader Functions\r\n private hideAllLoaders = (): void => {\r\n this.setState({\r\n isLoading: false,\r\n isLoadingChangePassword: false,\r\n isLoadingNext: false,\r\n isLoadingSendEmail: false,\r\n isLoadingSignIn: false\r\n });\r\n };\r\n\r\n private hideLoader = (): void => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n };\r\n\r\n private hideLoaderChangePassword = (): void => {\r\n this.setState({\r\n isLoadingChangePassword: false\r\n });\r\n };\r\n\r\n private hideLoaderNext = (): void => {\r\n this.setState({\r\n isLoadingNext: false\r\n });\r\n };\r\n\r\n private hideLoaderSendEmail = (): void => {\r\n this.setState({\r\n isLoadingSendEmail: false\r\n });\r\n };\r\n\r\n private hideLoaderSignIn = (): void => {\r\n this.setState({\r\n isLoadingSignIn: false\r\n });\r\n };\r\n\r\n private showLoaderChangePassword = (): void => {\r\n this.setState({\r\n isLoadingChangePassword: true\r\n });\r\n };\r\n\r\n private showLoaderNext = (): void => {\r\n this.setState({\r\n isLoadingNext: true\r\n });\r\n };\r\n\r\n private showLoaderSendEmail = (): void => {\r\n this.setState({\r\n isLoadingSendEmail: true\r\n });\r\n };\r\n\r\n private showLoaderSignIn = (): void => {\r\n this.setState({\r\n isLoadingSignIn: true\r\n });\r\n };\r\n // #endregion Loader Functions\r\n\r\n // #region Error Functions\r\n private logError(logData: ILogData): void {\r\n this.hideAllLoaders();\r\n LayoutActions.setLogData(logData);\r\n }\r\n\r\n private showError(message?: string): void {\r\n this.hideAllLoaders();\r\n LayoutActions.setAlert({ message: message, messageType: ResultType.error } as IAlert);\r\n }\r\n\r\n private showSignInError = (): void => {\r\n const {\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n const alert: IAlert = {\r\n message: resources.lblGenericError,\r\n messageType: ResultType.error\r\n };\r\n this.setState({\r\n alert: alert\r\n });\r\n }\r\n else {\r\n this.showError();\r\n }\r\n }\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveGetResources = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetResources.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n this.setState({\r\n isLoading: false,\r\n resources: result.data\r\n });\r\n LayoutStore.setResourcesByKey(`${this.idModule}.${this.idPage}`, result.data);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetResources.name, e));\r\n }\r\n };\r\n\r\n private resolveGetAuthenticationMode = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetAuthenticationMode.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n const mode: StoreMode = result.data.mode;\r\n const userName: string = result.data.userName;\r\n const variation: number = result.data.variation;\r\n\r\n this.setState({\r\n authMode: mode,\r\n variation: variation\r\n });\r\n\r\n if (variation === 2) {\r\n this.setState({\r\n stepNumber: 2\r\n }, () => {\r\n if (this.passwordRef?.current) {\r\n this.passwordRef.current.focus();\r\n }\r\n this.hideLoaderNext();\r\n });\r\n if (mode === StoreMode.ADFS) {\r\n Redirect.toADFSLogin(userName);\r\n }\r\n else if (mode === StoreMode.SAML) {\r\n Redirect.toSAMLLogin(userName);\r\n }\r\n }\r\n else if (variation === 1) {\r\n this.showSignInError();\r\n this.hideLoaderNext();\r\n }\r\n else {\r\n this.setState({\r\n stepNumber: 2\r\n }, () => {\r\n if (this.passwordRef?.current) {\r\n this.passwordRef.current.focus();\r\n }\r\n this.hideLoaderNext();\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetAuthenticationMode.name, e));\r\n }\r\n };\r\n\r\n private resolveAuthenticateUser = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveAuthenticateUser.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n const authResponse: IAuthResponse = result.data;\r\n\r\n if (authResponse && authResponse.success) {\r\n if (authResponse.status === AuthStatus.Success && authResponse.changePasswordAtNextLogon) {\r\n this.setState({\r\n openChangePassword: true\r\n });\r\n }\r\n else {\r\n this.OnFinishSignIn();\r\n }\r\n }\r\n else {\r\n const {\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n let message: string = '';\r\n if (authResponse) {\r\n if (authResponse.status === AuthStatus.InvalidCredentials) {\r\n message = resources.lblInvalidCredentials;\r\n }\r\n else if (authResponse.status === AuthStatus.IsLocked) {\r\n if (authResponse.attempt?.remainingLockedOutTime) {\r\n message = Format.toString(resources.formatLockedAccount, [authResponse.attempt.remainingLockedOutTime]);\r\n }\r\n if (!message) {\r\n message = resources.lblLocked;\r\n }\r\n }\r\n else if (authResponse.status === AuthStatus.InvalidPassword) {\r\n if (authResponse.attempt?.remainingAttempts) {\r\n message = Format.toString(resources.formatInvalidAttempts, [authResponse.attempt.remainingAttempts]);\r\n }\r\n if (!message) {\r\n message = resources.lblInvalidCredentials;\r\n }\r\n }\r\n }\r\n\r\n if (!message) {\r\n message = resources.lblGenericError;\r\n }\r\n\r\n const alert: IAlert = {\r\n message: message,\r\n messageType: ResultType.error\r\n };\r\n this.setState({\r\n alert: alert\r\n });\r\n }\r\n else {\r\n this.showError();\r\n }\r\n this.hideLoaderSignIn();\r\n }\r\n\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveAuthenticateUser.name, e));\r\n }\r\n };\r\n\r\n // #region Change Password\r\n private resolveChangePassword = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveChangePassword.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n const {\r\n accountValidations,\r\n newPassword\r\n } = this.state;\r\n\r\n const response: IChangePasswordResponse = result.data;\r\n if (response.updatedSuccessfully) {\r\n PasswordConfirmationActions.setPasswordValidation();\r\n this.OnFinishSignIn();\r\n }\r\n else if (response.errors.length > 0) {\r\n switch (response.errors[0]) {\r\n case ChangePasswordError.AlreadyUsed:\r\n if (accountValidations) {\r\n accountValidations.isNotPreviousPassword = true;\r\n PasswordConfirmationActions.setPasswordValidation(newPassword, accountValidations);\r\n }\r\n break;\r\n default:\r\n this.showSignInError();\r\n break;\r\n }\r\n this.hideLoaderChangePassword();\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveChangePassword.name, e));\r\n }\r\n };\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n private resolveIsForgotPasswordEnabled = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveIsForgotPasswordEnabled.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n if (result.data) {\r\n this.setState({\r\n isForgotPasswordEnabled: result.data.isForgotPasswordEnabled,\r\n isReCaptchaEnabled: result.data.isReCaptchaEnabled,\r\n reCaptchaSiteKey: result.data.reCaptchaSiteKey || ''\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveIsForgotPasswordEnabled.name, e));\r\n }\r\n };\r\n\r\n private resolveSendForgotPasswordEmail = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveSendForgotPasswordEmail.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n if (!result.data) {\r\n const timeout: number = Math.floor(Math.random() * 15 + 1) * 1000;\r\n setTimeout(() => {\r\n this.setState({\r\n emailSent: true\r\n }, this.hideLoaderSendEmail);\r\n }, timeout);\r\n }\r\n else {\r\n this.setState({\r\n emailSent: true\r\n }, this.hideLoaderSendEmail);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveSendForgotPasswordEmail.name, e));\r\n }\r\n };\r\n // #endregion Forgot Password\r\n\r\n // #endregion Resolvers\r\n\r\n // #region Lifecycle\r\n public componentDidMount(): void {\r\n try {\r\n const {\r\n resources,\r\n userName\r\n } = this.state;\r\n\r\n if (!resources) {\r\n RequestsLayout.getResources(this.idModule, this.idPage, this.resolveGetResources);\r\n }\r\n else {\r\n this.hideLoader();\r\n }\r\n Requests.isForgotPasswordEnabled(this.resolveIsForgotPasswordEnabled);\r\n\r\n if (userName) {\r\n this.onNext();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.componentDidMount.name, e));\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n PasswordConfirmationStore.removePasswordValidationListener(this.onChangePasswordValidation);\r\n }\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n classes,\r\n open,\r\n width,\r\n onClose,\r\n onGoSignUp\r\n } = this.props;\r\n\r\n const {\r\n alert,\r\n authMode,\r\n isLoading,\r\n isLoadingChangePassword,\r\n isLoadingNext,\r\n isLoadingSignIn,\r\n password,\r\n passwordModified,\r\n resources,\r\n stepNumber,\r\n uiCulture,\r\n userName,\r\n userNameModified,\r\n\r\n // #region Change Password\r\n openChangePassword,\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n emailSent,\r\n isForgotPasswordEnabled,\r\n isLoadingSendEmail,\r\n isReCaptchaEnabled,\r\n openForgotPassword,\r\n reCaptchaSiteKey,\r\n reCaptchaError,\r\n userNameRecovery,\r\n userNameRecoveryModified\r\n // #endregion Forgot Password\r\n } = this.state;\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (resources && !isLoading) {\r\n\r\n if (openChangePassword) {\r\n contentPage = (\r\n \r\n \r\n {resources.btnCancel}\r\n \r\n \r\n {resources.btnChangePassword}\r\n \r\n \r\n )}\r\n id=\"changePasswordModal\"\r\n header={resources.lblChangePassword}\r\n maxWidth=\"md\"\r\n open={openChangePassword}\r\n onClose={this.onCloseChangePassword}\r\n >\r\n \r\n \r\n \r\n {resources.lblChangePasswordInstructions}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n let title: JSX.Element | undefined;\r\n let content: JSX.Element | JSX.Element[] | undefined;\r\n let button: JSX.Element | undefined;\r\n\r\n if (openForgotPassword) {\r\n title = (\r\n \r\n \r\n \r\n {resources.lblForgotPasswordTitle}\r\n \r\n \r\n \r\n );\r\n\r\n button = emailSent ? (\r\n \r\n {resources.btnClose}\r\n \r\n )\r\n : (\r\n \r\n \r\n {resources.btnCancel}\r\n \r\n \r\n {resources.btnSendEmail}\r\n \r\n \r\n );\r\n\r\n content = (\r\n
\r\n \r\n \r\n {!onClose && (\r\n <>\r\n {title}\r\n \r\n )}\r\n \r\n {emailSent ?\r\n Format.toString(resources.formatEmailSent, [userNameRecovery])\r\n : resources.lblForgotPasswordInstructions}\r\n \r\n \r\n \r\n {!emailSent && (\r\n \r\n )}\r\n \r\n \r\n {isReCaptchaEnabled && Boolean(reCaptchaSiteKey) && !emailSent && !isLoadingSendEmail && (\r\n \r\n \r\n \r\n \r\n {reCaptchaError && (\r\n \r\n \r\n {resources.lblReCaptchaRequired}\r\n \r\n \r\n )}\r\n \r\n )}\r\n {!onClose && (\r\n \r\n \r\n {button}\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n else {\r\n title = (\r\n <>\r\n \r\n \r\n \r\n {resources.lblLogInTitle}\r\n \r\n \r\n \r\n {alert && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {Boolean(onGoSignUp && stepNumber === 1) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {stepNumber === 2 && (\r\n \r\n \r\n \r\n {resources.lblUseAnotherAccount}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n button = stepNumber === 1 ? (\r\n \r\n {resources.btnNext}\r\n \r\n ) : (stepNumber === 2\r\n && (!authMode || authMode === StoreMode.Identity || authMode === StoreMode.ActiveDirectory) ? (\r\n \r\n {resources.btnSingIn}\r\n \r\n ) : undefined);\r\n\r\n content = (\r\n
\r\n \r\n \r\n {!onClose && (\r\n <>\r\n {title}\r\n \r\n )}\r\n \r\n {stepNumber === 2\r\n && (!authMode || authMode === StoreMode.Identity || authMode === StoreMode.ActiveDirectory) && (\r\n \r\n )}\r\n \r\n \r\n {isForgotPasswordEnabled && (\r\n \r\n \r\n \r\n {resources.btnForgot}\r\n \r\n \r\n \r\n )}\r\n {!onClose && (\r\n \r\n \r\n {button}\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n if (onClose) {\r\n contentPage = (\r\n \r\n {content}\r\n \r\n );\r\n }\r\n else {\r\n contentPage = (\r\n \r\n \r\n {content}\r\n \r\n \r\n );\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {contentPage}\r\n \r\n );\r\n }\r\n}\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(withWidth()(SignIn));","/* Copyright 2021 Ellucian Company L.P. and its affiliates.\r\n * File: IPasswordPolicy.ts */\r\n\r\nexport interface IPasswordPolicy {\r\n changePasswordUrl: string\r\n isLowerCaseRequired: boolean;\r\n isNumbersRequired: boolean;\r\n isSpecialCharacterRequired: boolean;\r\n isUpperCaseRequired: boolean;\r\n minimumLength: number;\r\n}\r\n\r\nexport interface IValidatePassword {\r\n areaName: string;\r\n password: string;\r\n}\r\n\r\nexport interface IPasswordPolicyResult {\r\n passwordValidation: IPasswordPolicyErrors;\r\n passwordMinLength: number;\r\n userAccountStatus: IPasswordPolicyErrors;\r\n status: number;\r\n userName: string;\r\n}\r\n\r\nexport enum IPasswordPolicyErrors {\r\n digits = 0,\r\n isEmpty = 1,\r\n lowerCase = 2,\r\n minLength = 3,\r\n specialCharacters = 4,\r\n upperCase = 5,\r\n newPasswordValid = 6,\r\n currentPasswordInvalid = 7,\r\n success = 8,\r\n unableToDefineUserName = 15,\r\n userAlreadyExists = 17,\r\n}","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: SignUp.ts */\r\n\r\n// Types\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IIdentityAccount } from '../../Types/Account/IIdentityAccount';\r\nimport { IValidatePassword } from '../../Types/Generic/IPasswordPolicy';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\n\r\n// Functions for requests\r\nconst SignUpRequests = {\r\n getEmailRegExp(resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getEmailRegExp.name, '/Settings/EmailRegExp', null, resolver, resolveError);\r\n },\r\n getPasswordPolicy(appArea: string,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getPasswordPolicy.name, '/Password/Policy', appArea, resolver, resolveError);\r\n },\r\n getReCaptchaSettings(resolver: (json: string) => void): void {\r\n Request.post(this.getReCaptchaSettings.name, '/SignUp/RecaptchaSettings', null, resolver);\r\n },\r\n postSignUpApplication(account: IIdentityAccount,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postSignUpApplication.name, '/SignUp/Application', account, resolver, resolveError);\r\n },\r\n postSignUpConed(account: IIdentityAccount,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postSignUpConed.name, '/SignUp/ConEd', account, resolver, resolveError);\r\n },\r\n postValidatePassword(passwordModel: IValidatePassword,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postValidatePassword.name, '/Password/Validate', passwordModel, resolver, resolveError);\r\n },\r\n};\r\n\r\n// Export object with the requests\r\nexport default SignUpRequests;","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: SignUp.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport React, { RefObject } from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Paragraph from '@hedtech/powercampus-design-system/react/core/Paragraph';\r\nimport PasswordConfirmation from '@hedtech/powercampus-design-system/react/components/PasswordConfirmation';\r\nimport ReCAPTCHA from '@hedtech/powercampus-design-system/react/core/ReCaptcha';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Types\r\nimport { IAccountValidations } from '@hedtech/powercampus-design-system/types/PasswordConfirmation/IAccountValidations';\r\nimport { IAlert } from '@hedtech/powercampus-design-system/types/IAlert';\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\nimport { IIdentityAccount, IIdentityAccountValidations } from '../../Types/Account/IIdentityAccount';\r\nimport { IPasswordPolicy, IPasswordPolicyResult, IPasswordPolicyErrors } from '../../Types/Generic/IPasswordPolicy';\r\nimport { ISignUpResources } from '../../Types/Resources/Generic/ISignUpResources';\r\n\r\n// Helpers\r\nimport Constants from '@hedtech/powercampus-design-system/helpers/Constants';\r\nimport { emailIsValid } from '@hedtech/powercampus-design-system/helpers/CharRegExp';\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport PasswordValidation from '@hedtech/powercampus-design-system/helpers/PasswordValidation';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Requests\r\nimport RequestsLayout from '@hedtech/powercampus-design-system/requests/LayoutRequests';\r\nimport Requests from '../../Requests/Generic/SignUp';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\nimport LayoutStore from '@hedtech/powercampus-design-system/flux/stores/LayoutStore';\r\nimport PasswordConfirmationActions from '@hedtech/powercampus-design-system/flux/actions/PasswordConfirmationActions';\r\nimport PasswordConfirmationStore from '@hedtech/powercampus-design-system/flux/stores/PasswordConfirmationStore';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface ISignUpProps {\r\n open?: boolean;\r\n type: 'ConEd' | 'Application' | 'SharedAccess';\r\n onAfterSignUp?: (userName?: string) => void;\r\n onClose?: () => void;\r\n onGoSignIn?: () => void;\r\n}\r\n\r\ninterface ISignUpState {\r\n anchorEl: any;\r\n account: IIdentityAccount;\r\n cannotCreateAccount: boolean;\r\n emailRegExp?: string;\r\n isLoading: boolean;\r\n isLoadingSave: boolean;\r\n password?: string;\r\n passwordPolicy?: IPasswordPolicy;\r\n resources?: ISignUpResources;\r\n accountValidations?: IAccountValidations;\r\n validations: IIdentityAccountValidations;\r\n\r\n // #region ReCatpcha\r\n isReCaptchaEnabled: boolean;\r\n reCaptchaError: boolean;\r\n reCaptchaSiteKey: string;\r\n uiCulture: string;\r\n // #endregion ReCatpcha\r\n}\r\n\r\nconst styles = createStyles({\r\n margin: {\r\n marginLeft: `-${Tokens.spacing40}`,\r\n marginTop: Tokens.spacing30,\r\n },\r\n popperText: {\r\n maxWidth: '15rem'\r\n },\r\n spacingButtons: {\r\n paddingTop: Tokens.spacing40\r\n },\r\n spacingInstructions: {\r\n paddingTop: Tokens.spacing40\r\n },\r\n textAlign: {\r\n textAlign: 'center'\r\n },\r\n reCaptchaErrorText: {\r\n paddingBottom: Tokens.spacing30\r\n },\r\n});\r\n\r\ntype PropsWithStyles = ISignUpProps & WithStyles;\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass SignUp extends React.Component {\r\n private idModule: string;\r\n private idPage: string;\r\n private reCaptchaRef: RefObject;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idModule = 'Generic';\r\n this.idPage = 'SignUp';\r\n this.state = this.getInitialState();\r\n this.reCaptchaRef = React.createRef();\r\n // #endregion Initialize Variables and State\r\n // #region Bind State Management Listeners\r\n PasswordConfirmationStore.addPasswordValidationListener(this.onChangePassword);\r\n // #endregion State Management Listeners\r\n }\r\n\r\n private getInitialState(): ISignUpState {\r\n let isLoading: boolean = true;\r\n let resources: ISignUpResources | undefined;\r\n let isReCaptchaEnabled: boolean = false;\r\n let reCaptchaSiteKey: string = '';\r\n\r\n if (this.state) {\r\n isLoading = this.state.isLoading;\r\n resources = this.state.resources;\r\n isReCaptchaEnabled = this.state.isReCaptchaEnabled;\r\n reCaptchaSiteKey = this.state.reCaptchaSiteKey;\r\n }\r\n return {\r\n account: {\r\n email: '',\r\n firstName: '',\r\n lastName: '',\r\n password: '',\r\n peopleId: ''\r\n },\r\n accountValidations: undefined,\r\n validations: {\r\n emailInvalid: false,\r\n emailModified: false,\r\n existingUser: false,\r\n firstNameModified: false,\r\n lastNameModified: false,\r\n },\r\n anchorEl: null,\r\n cannotCreateAccount: false,\r\n isLoading: isLoading,\r\n isLoadingSave: false,\r\n resources: resources,\r\n\r\n // #region ReCaptcha\r\n isReCaptchaEnabled: isReCaptchaEnabled,\r\n reCaptchaError: false,\r\n reCaptchaSiteKey: reCaptchaSiteKey,\r\n uiCulture: LayoutStore.getCultures().uiCulture\r\n // #endregion ReCaptcha\r\n };\r\n }\r\n\r\n // #region Events\r\n\r\n private onChangePassword = (): void => {\r\n try {\r\n const {\r\n account\r\n } = this.state;\r\n const password = PasswordConfirmationStore.getPassword();\r\n account.password = password;\r\n this.setState({\r\n password: password,\r\n account: account,\r\n accountValidations: PasswordConfirmationStore.getPasswordValidation()\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePassword.name, e));\r\n }\r\n };\r\n\r\n private onChangeTextField = (event: React.ChangeEvent): void => {\r\n try {\r\n const {\r\n account,\r\n validations,\r\n emailRegExp,\r\n } = this.state;\r\n\r\n const id: string = event.target.id;\r\n const value: string = event.target.value;\r\n switch (id) {\r\n case 'txtFirstName':\r\n account.firstName = value;\r\n validations.firstNameModified = true;\r\n break;\r\n case 'txtLastName':\r\n account.lastName = value;\r\n validations.lastNameModified = true;\r\n break;\r\n case 'txtEmail':\r\n account.email = value;\r\n if (emailRegExp && account.email) {\r\n validations.emailInvalid = !emailIsValid(account.email, emailRegExp);\r\n }\r\n else {\r\n validations.emailInvalid = false;\r\n }\r\n validations.emailModified = true;\r\n break;\r\n }\r\n this.setState({\r\n account: account,\r\n validations: validations\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextField.name, e));\r\n }\r\n };\r\n\r\n private onCloseModal = (): void => {\r\n try {\r\n const {\r\n onClose\r\n } = this.props;\r\n\r\n const {\r\n isLoadingSave\r\n } = this.state;\r\n\r\n if (onClose && !isLoadingSave) {\r\n this.setState(this.getInitialState());\r\n onClose();\r\n PasswordConfirmationActions.setPasswordValidation();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseModal.name, e));\r\n }\r\n };\r\n\r\n private onCreateAccount = (): void => {\r\n try {\r\n const {\r\n type\r\n } = this.props;\r\n\r\n const {\r\n account,\r\n accountValidations,\r\n isReCaptchaEnabled,\r\n isLoadingSave,\r\n password,\r\n validations\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n if (!isLoadingSave) {\r\n validations.emailModified = true;\r\n validations.firstNameModified = true;\r\n validations.lastNameModified = true;\r\n\r\n if (accountValidations) {\r\n let componentValidations: IAccountValidations = PasswordValidation.validatePassword(accountValidations, password,\r\n PasswordConfirmationStore.getPasswordPolicy());\r\n componentValidations = PasswordValidation.validateConfirmPassword(accountValidations, accountValidations.confirmPassword, password);\r\n PasswordConfirmationActions.setPasswordValidation(password, componentValidations);\r\n if (componentValidations.hasErrors) {\r\n isValid = false;\r\n }\r\n }\r\n\r\n let isValidRecaptcha: boolean = true;\r\n let reCaptchaResponse: string = '';\r\n\r\n if (isReCaptchaEnabled && this.reCaptchaRef?.current) {\r\n reCaptchaResponse = this.reCaptchaRef.current.getValue();\r\n isValidRecaptcha = Boolean(reCaptchaResponse);\r\n this.setState({\r\n reCaptchaError: !isValidRecaptcha\r\n });\r\n }\r\n\r\n if (!isReCaptchaEnabled || reCaptchaResponse) {\r\n this.setState({\r\n reCaptchaError: false\r\n });\r\n }\r\n\r\n if (isValid && isValidRecaptcha && Boolean(account.email)\r\n && !validations.emailInvalid\r\n && Boolean(account.firstName)\r\n && Boolean(account.lastName)\r\n && Boolean(account.password)) {\r\n this.showLoaderSave();\r\n switch (type) {\r\n case 'Application':\r\n Requests.postSignUpApplication(account, this.resolvePostSignUp, this.logError);\r\n break;\r\n case 'ConEd':\r\n Requests.postSignUpConed(account, this.resolvePostSignUp, this.logError);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCreateAccount.name, e));\r\n }\r\n };\r\n\r\n private onGoSignInModal = (): void => {\r\n try {\r\n const {\r\n onGoSignIn\r\n } = this.props;\r\n\r\n const {\r\n isLoadingSave\r\n } = this.state;\r\n\r\n if (onGoSignIn && !isLoadingSave) {\r\n this.setState(this.getInitialState());\r\n onGoSignIn();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onGoSignInModal.name, e));\r\n }\r\n };\r\n\r\n // #region ReCaptcha\r\n private onRecaptchaChange = (token: any): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: !Boolean(token)\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onRecaptchaChange.name, e));\r\n }\r\n };\r\n\r\n private onReCaptchaError = (): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onReCaptchaError.name, e));\r\n }\r\n };\r\n // #endregion ReCaptcha\r\n\r\n // #endregion Events\r\n\r\n // #region Loader Functions\r\n private hideAllLoaders = (): void => {\r\n this.setState({\r\n isLoading: false,\r\n isLoadingSave: false\r\n });\r\n };\r\n\r\n private hideLoaderSave = (): void => {\r\n this.setState({\r\n isLoadingSave: false\r\n });\r\n };\r\n\r\n private showLoaderSave = (): void => {\r\n this.setState({\r\n isLoadingSave: true\r\n });\r\n };\r\n // #endregion Loader Functions\r\n\r\n // #region Error Functions\r\n private logError(logData: ILogData): void {\r\n this.hideAllLoaders();\r\n LayoutActions.setLogData(logData);\r\n }\r\n\r\n private showError(message?: string): void {\r\n this.hideAllLoaders();\r\n LayoutActions.setAlert({ message: message, messageType: ResultType.error } as IAlert);\r\n }\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveGetEmailRegExp = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetEmailRegExp.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n this.setState({\r\n emailRegExp: result.data\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetEmailRegExp.name, e));\r\n }\r\n };\r\n\r\n private resolveGetResources = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetResources.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n this.setState({\r\n resources: result.data,\r\n isLoading: false,\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetResources.name, e));\r\n }\r\n };\r\n\r\n private resolvePostSignUp = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolvePostSignUp.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n const resultSignUp: IPasswordPolicyResult = result.data;\r\n if (resultSignUp.status === 0) {\r\n const {\r\n onAfterSignUp\r\n } = this.props;\r\n\r\n const {\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n LayoutActions.setAlert({\r\n message: resources.lblCreatedSuccessfully,\r\n messageType: ResultType.success\r\n } as IAlert);\r\n if (onAfterSignUp) {\r\n onAfterSignUp(result.data.userName);\r\n }\r\n PasswordConfirmationActions.setPasswordValidation();\r\n this.setState(this.getInitialState());\r\n }\r\n }\r\n else if (resultSignUp.status === -1) {\r\n if (resultSignUp.userAccountStatus == IPasswordPolicyErrors.unableToDefineUserName) {\r\n this.setState({\r\n cannotCreateAccount: true\r\n });\r\n PasswordConfirmationActions.setPasswordValidation();\r\n }\r\n else if (resultSignUp.userAccountStatus == IPasswordPolicyErrors.userAlreadyExists) {\r\n const {\r\n validations\r\n } = this.state;\r\n\r\n if (validations) {\r\n validations.existingUser = true;\r\n this.setState({\r\n validations: validations,\r\n password: '',\r\n cannotCreateAccount: true\r\n });\r\n PasswordConfirmationActions.setPasswordValidation();\r\n }\r\n }\r\n }\r\n else {\r\n this.showError();\r\n }\r\n this.hideLoaderSave();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolvePostSignUp.name, e));\r\n }\r\n };\r\n\r\n private resolveGetReCaptchaSettings = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetReCaptchaSettings.name);\r\n if (result?.status) {\r\n this.setState({\r\n isReCaptchaEnabled: result.data.isReCaptchaEnabled,\r\n reCaptchaSiteKey: result.data.reCaptchaSiteKey || ''\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetReCaptchaSettings.name, e));\r\n }\r\n };\r\n // #endregion Resolvers\r\n\r\n // #region Lifecycle\r\n public componentDidMount(): void {\r\n try {\r\n RequestsLayout.getResources(this.idModule, this.idPage,\r\n this.resolveGetResources,\r\n this.logError);\r\n Requests.getEmailRegExp(this.resolveGetEmailRegExp, this.logError);\r\n Requests.getReCaptchaSettings(this.resolveGetReCaptchaSettings);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.componentDidMount.name, e));\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n PasswordConfirmationStore.removePasswordValidationListener(this.onChangePassword);\r\n }\r\n\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n classes,\r\n open,\r\n onClose,\r\n onGoSignIn,\r\n type,\r\n } = this.props;\r\n\r\n const {\r\n account,\r\n cannotCreateAccount,\r\n isLoading,\r\n isLoadingSave,\r\n resources,\r\n validations,\r\n\r\n // #region ReCaptcha\r\n isReCaptchaEnabled,\r\n reCaptchaError,\r\n reCaptchaSiteKey,\r\n uiCulture\r\n // #endregion ReCaptcha\r\n } = this.state;\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (resources && !isLoading) {\r\n let title: JSX.Element | undefined;\r\n let newAccountContent: JSX.Element | JSX.Element[] | undefined;\r\n let button: JSX.Element | undefined;\r\n let reCaptchaElement: JSX.Element | undefined;\r\n\r\n // #region First Name\r\n let errorFirstName: boolean = false;\r\n let errorTextFirstName: string | undefined;\r\n if (validations.firstNameModified) {\r\n errorFirstName = !Boolean(account.firstName);\r\n errorTextFirstName = errorFirstName ?\r\n resources.lblFirstNameRequired\r\n : undefined;\r\n }\r\n // #endregion First Name\r\n\r\n // #region Last Name\r\n let errorLastName: boolean = false;\r\n let errorTextLastName: string | undefined;\r\n if (validations.lastNameModified) {\r\n errorLastName = !Boolean(account.lastName);\r\n errorTextLastName = errorLastName ?\r\n resources.lblLastNameRequired\r\n : undefined;\r\n }\r\n // #endregion Last Name\r\n\r\n // #region Email\r\n let errorEmail: boolean = false;\r\n let errorTextEmail: string | undefined;\r\n if (validations.emailModified) {\r\n errorEmail = !Boolean(account.email)\r\n || validations.emailInvalid\r\n || validations.existingUser;\r\n errorTextEmail = !Boolean(account.email) ?\r\n resources.lblEmailRequired\r\n : (validations.emailInvalid ?\r\n resources.lblEmailInvalid\r\n : validations.existingUser ?\r\n resources.lblExistingUser\r\n : undefined);\r\n }\r\n // #endregion Email\r\n\r\n if (!cannotCreateAccount) {\r\n title = (\r\n <>\r\n \r\n {resources.lblCreateAccount}\r\n \r\n {onGoSignIn && (\r\n \r\n )}\r\n \r\n );\r\n\r\n button = (\r\n \r\n {resources.btnCreateAccount}\r\n \r\n );\r\n }\r\n\r\n if (isReCaptchaEnabled) {\r\n reCaptchaElement = (\r\n \r\n \r\n \r\n {reCaptchaError && (\r\n \r\n \r\n {resources.lblReCaptchaRequired}\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n\r\n if (cannotCreateAccount) {\r\n title = (\r\n <>\r\n \r\n {resources.lblCreateAccount}\r\n \r\n \r\n );\r\n newAccountContent = (\r\n \r\n \r\n \r\n \r\n {resources.lblCannotCreateAccount}\r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n newAccountContent = (\r\n <>\r\n {!onClose && (\r\n \r\n \r\n {title}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n {resources.lblContactInformation}\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 {!onClose && (\r\n \r\n \r\n {button}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n\r\n if (onClose) {\r\n contentPage = (\r\n \r\n {newAccountContent}\r\n {reCaptchaElement}\r\n \r\n );\r\n }\r\n else {\r\n contentPage = (\r\n <>\r\n {newAccountContent}\r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {contentPage}\r\n \r\n );\r\n }\r\n}\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(SignUp);","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: AddressSearchModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Pagination from '@hedtech/powercampus-design-system/react/core/Pagination';\r\nimport Table, { TableBody, TableCell, TableHead, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Types\r\nimport { IAddress } from '../../../Types/Account/IAddress';\r\nimport { IAddressSearchModal } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n\r\n// #endregion Types\r\n\r\n// #region Internal types\r\nexport interface IAddressSearchModalProps {\r\n addresses?: IAddress[];\r\n hasSearchZipCode: boolean;\r\n open: boolean;\r\n pageNumber: number;\r\n pageSize: number;\r\n rowsPerPageOptions: number[];\r\n totalAddress: number;\r\n zipCode?: string;\r\n\r\n // events\r\n onChangePage: (event: any, page: number) => void;\r\n onChangeRowsPerPage: (event: any) => void;\r\n onChangeTextField?: (event: any) => void;\r\n onClear: () => void;\r\n onClickLink: (zipCode?: string, city?: string, stateProvinceId?: number, countryId?: number,\r\n countyId?: number) => void;\r\n onClose: () => void;\r\n onSearch: () => void;\r\n\r\n // resources\r\n resources: IAddressSearchModal;\r\n}\r\n// #endregion Internal types\r\n\r\n// #region Component\r\nconst AddressSearchModal: React.FC = (props: IAddressSearchModalProps): JSX.Element => {\r\n const {\r\n addresses,\r\n hasSearchZipCode,\r\n open,\r\n pageNumber,\r\n pageSize,\r\n rowsPerPageOptions,\r\n totalAddress,\r\n zipCode,\r\n\r\n // events\r\n onChangePage,\r\n onChangeRowsPerPage,\r\n onChangeTextField,\r\n onClear,\r\n onClickLink,\r\n onClose,\r\n onSearch,\r\n\r\n // resources\r\n resources\r\n } = props;\r\n\r\n const footerModal: JSX.Element = (\r\n \r\n \r\n {resources.btnSearch}\r\n \r\n \r\n {resources.btnClear}\r\n \r\n \r\n );\r\n\r\n let table: JSX.Element | undefined;\r\n\r\n if (addresses && addresses.length > 0) {\r\n const tableBody: JSX.Element[] = [];\r\n addresses.forEach((address, j) => {\r\n tableBody.push(\r\n \r\n \r\n \r\n {address.zipCode}\r\n \r\n \r\n \r\n \r\n {address.city}\r\n \r\n \r\n \r\n \r\n {address.state}\r\n \r\n \r\n \r\n \r\n {address.county}\r\n \r\n \r\n \r\n \r\n {address.country}\r\n \r\n \r\n \r\n );\r\n });\r\n\r\n table = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblZipCode}\r\n \r\n \r\n {resources.lblCity}\r\n \r\n \r\n {resources.lblState}\r\n \r\n \r\n {resources.lblCounty}\r\n \r\n \r\n {resources.lblCountry}\r\n \r\n \r\n \r\n \r\n {tableBody}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n else if (hasSearchZipCode) {\r\n table = (\r\n \r\n {resources.lblNoResults}\r\n \r\n );\r\n }\r\n\r\n let paginationComponent: JSX.Element | undefined;\r\n if (addresses && addresses.length > 0) {\r\n paginationComponent = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let bodyModal: JSX.Element;\r\n bodyModal = (\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {footerModal}\r\n \r\n
\r\n
\r\n
\r\n {table}\r\n
\r\n {paginationComponent}\r\n \r\n );\r\n\r\n return (\r\n \r\n {bodyModal}\r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default AddressSearchModal;","/* Copyright 2018 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: FieldsHandle.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Checkbox from '@hedtech/powercampus-design-system/react/core/Checkbox';\r\nimport DatePicker from '@hedtech/powercampus-design-system/react/core/DatePicker';\r\nimport Dropdown from '@hedtech/powercampus-design-system/react/core/Dropdown';\r\nimport ExpansionPanel from '@hedtech/powercampus-design-system/react/core/ExpansionPanel';\r\nimport FormControl, { FormControlLabel, FormGroup } from '@hedtech/powercampus-design-system/react/core/FormControl';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport IconButton from '@hedtech/powercampus-design-system/react/core/IconButton';\r\nimport List from '@hedtech/powercampus-design-system/react/core/List';\r\nimport Paragraph, { TextColor, TextSize } from '@hedtech/powercampus-design-system/react/core/Paragraph';\r\nimport RadioGroup from '@hedtech/powercampus-design-system/react/core/RadioGroup';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\nimport TextLink from '@hedtech/powercampus-design-system/react/core/TextLink';\r\n\r\n// Internal components\r\nimport { IApplicationHandler } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n\r\n// Helpers\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\nimport { isWidthUp, withWidth, WithWidth } from '@hedtech/powercampus-design-system/react/core/withWidth';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IApplicationErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IApplicationIpeds } from '../../../Types/Applications/IApplicationIpeds';\r\nimport { IFieldForm } from '../../../Types/Form/IFieldForm';\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IFieldsHandlerProps {\r\n dateTimeCulture: string;\r\n errors: IApplicationErrors[];\r\n expandedPanelId: boolean | string;\r\n fields: IFieldForm[];\r\n governmentIdFormat: string;\r\n groupIndex: number;\r\n isExpansionPanel: boolean;\r\n isHorizontalAligned: boolean;\r\n shortDatePattern: string;\r\n stepIndex: number;\r\n\r\n resources: IApplicationHandler;\r\n\r\n onClickButton: (event: React.MouseEvent) => void;\r\n onChangeCheckBox: (event: React.ChangeEvent) => void;\r\n onChangeDateTimeField: (date: string, id: string, isValid: boolean) => void;\r\n onDeleteItem: (event: any) => void;\r\n onChangeDropDown: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangeExpansionPanel: (label: string) => void;\r\n onChangeListCheckbox: (event: any) => void;\r\n onChangeRadioGroup: (event: React.ChangeEvent, value: string) => void;\r\n onChangeTextField: (event: React.ChangeEvent) => void;\r\n}\r\n\r\nconst styles = createStyles({\r\n category: {\r\n marginBottom: Tokens.spacing30,\r\n marginLeft: Tokens.spacing50\r\n },\r\n federalCategory: {\r\n '& > span:nth-child(2)': {\r\n fontWeight: Tokens.fontWeightBold\r\n },\r\n marginBottom: Tokens.spacing30\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IFieldsHandlerProps & WithStyles & WithWidth;\r\n// #endregion\r\n\r\n// #region Component\r\nconst FieldsHandler: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n classes,\r\n dateTimeCulture,\r\n errors,\r\n expandedPanelId,\r\n fields,\r\n governmentIdFormat,\r\n groupIndex,\r\n isExpansionPanel,\r\n isHorizontalAligned,\r\n resources,\r\n shortDatePattern,\r\n stepIndex,\r\n width,\r\n\r\n onChangeCheckBox,\r\n onChangeDropDown,\r\n onChangeDateTimeField,\r\n onChangeExpansionPanel,\r\n onChangeListCheckbox,\r\n onChangeRadioGroup,\r\n onChangeTextField,\r\n onClickButton,\r\n onDeleteItem\r\n } = props;\r\n\r\n const elements: JSX.Element[] = [];\r\n\r\n // General Sections Arrays\r\n let ids: string[] = [];\r\n const sectionIndexes: number[] = [];\r\n let sectionElements: JSX.Element[] = [];\r\n const sectionContainers: JSX.Element[] = [];\r\n let sectionIndex: number;\r\n\r\n // Header Arrays\r\n let headerDeleteElement: JSX.Element[] = [];\r\n let headerTitleElements: string[] = [];\r\n const firstHeaderTitleElement: string[] = [];\r\n\r\n const getId = (idStringArray: string[], index: number): number => Number(idStringArray[index]);\r\n\r\n const setHeaderTitleElements = (field: IFieldForm): void => {\r\n if (field.isExpansionPanelHeader) {\r\n if (field.value) {\r\n if (headerTitleElements[0] === resources.lblNew) {\r\n headerTitleElements.splice(0, 1);\r\n }\r\n if (field.componentType && field.componentType === 'Dropdown') {\r\n let selectedOption: number = 0;\r\n if (field.data && field.data.options && field.data.options.length > 0) {\r\n selectedOption =\r\n field.data.options.findIndex(x => x.value === field.value);\r\n if (selectedOption > -1) {\r\n headerTitleElements.push(`${field.data.options[selectedOption].description} `);\r\n }\r\n }\r\n }\r\n else {\r\n headerTitleElements.push(`${field.value} `);\r\n }\r\n }\r\n if (headerTitleElements.length === 0) {\r\n headerTitleElements.push(resources.lblNew);\r\n }\r\n }\r\n };\r\n\r\n const fillElements = (fieldElement: JSX.Element, field: IFieldForm): void => {\r\n if (isExpansionPanel && field.componentType === 'DeleteIconButton') {\r\n headerDeleteElement.push(fieldElement);\r\n }\r\n else {\r\n sectionElements.push(fieldElement);\r\n }\r\n };\r\n\r\n const setMultipleFields = (field: IFieldForm, fieldElement: JSX.Element, id: string) => {\r\n ids = field.data.id.split('|');\r\n sectionIndex = errors[getId(ids, 1)].groupErrors[getId(ids, 2)].sectionErrors.findIndex(\r\n section => section.sectionIndex === Number(getId(ids, 4))\r\n );\r\n // Verify if section exists\r\n if (sectionIndexes.includes(getId(ids, 4))) {\r\n setHeaderTitleElements(field);\r\n fillElements(fieldElement, field);\r\n }\r\n // Create a new section\r\n else {\r\n sectionElements = [];\r\n headerDeleteElement = [];\r\n headerTitleElements = [];\r\n\r\n setHeaderTitleElements(field);\r\n fillElements(fieldElement, field);\r\n sectionIndexes.push(getId(ids, 4));\r\n\r\n sectionContainers.push(\r\n isExpansionPanel ? (\r\n -1 ?\r\n errors[getId(ids, 1)].groupErrors[getId(ids, 2)].sectionErrors.length > 0 ?\r\n errors[getId(ids, 1)].groupErrors[getId(ids, 2)].sectionErrors[sectionIndex].isSectionError\r\n : false\r\n : false}\r\n background=\"gray\"\r\n expandIcon={}\r\n expanded={expandedPanelId === `panel|${stepIndex}|${groupIndex}|${getId(ids, 4)}`}\r\n header={(\r\n \r\n \r\n 0 && sectionIndex > -1 ?\r\n errors[getId(ids, 1)].groupErrors[getId(ids, 2)].sectionErrors[sectionIndex].isSectionError ?\r\n 'error' : undefined\r\n : undefined}\r\n >\r\n {headerTitleElements}\r\n \r\n \r\n \r\n {headerDeleteElement}\r\n \r\n \r\n )}\r\n key={`expansionPanel|${field.data.id}|${id}`}\r\n onChange={onChangeExpansionPanel(`panel|${stepIndex}|${groupIndex}|${getId(ids, 4)}`)}\r\n >\r\n \r\n {sectionElements}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {sectionElements}\r\n \r\n \r\n )\r\n );\r\n }\r\n };\r\n if (errors) {\r\n if (errors[stepIndex].groupErrors[groupIndex].groupId === 'addressInformationGroup') {\r\n firstHeaderTitleElement.push(`${resources.lblPrimary} `);\r\n }\r\n }\r\n\r\n fields.forEach((field, j) => {\r\n let fieldElement: JSX.Element | undefined;\r\n\r\n let id: string;\r\n if (field.data.modified) {\r\n id = `${field.data.id}`;\r\n }\r\n else {\r\n id = `${field.data.id}|${stepIndex}|${groupIndex}|${j}`;\r\n }\r\n\r\n let fieldSize: false | 'auto' | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\r\n switch (field.gridSize) {\r\n case 'XS':\r\n fieldSize = 2;\r\n break;\r\n case 'S':\r\n fieldSize = 3;\r\n break;\r\n case 'M':\r\n fieldSize = 4;\r\n break;\r\n case 'L':\r\n fieldSize = 6;\r\n break;\r\n case 'XL':\r\n fieldSize = 12;\r\n break;\r\n default:\r\n fieldSize = 12;\r\n }\r\n\r\n switch (field.componentType) {\r\n case 'Button':\r\n fieldSize = isHorizontalAligned ? 3 : fieldSize;\r\n fieldElement = (\r\n \r\n \r\n {field.data.label}\r\n \r\n \r\n );\r\n break;\r\n case 'TextField':\r\n if (id.substr(0, 'postalCodeId'.length) === 'postalCodeId' ||\r\n id.substr(0, 'educationEtsCodeId'.length) === 'educationEtsCodeId') {\r\n let buttonId: string = '';\r\n let isPostalCode: boolean = false;\r\n if (field.data.modified) {\r\n if (id.substr(0, 'postalCodeId'.length) === 'postalCodeId') {\r\n buttonId = id.replace('postalCodeId', 'postalCodeButtonId');\r\n }\r\n if (id.substr(0, 'educationEtsCodeId'.length) === 'educationEtsCodeId') {\r\n buttonId = id.replace('educationEtsCodeId', 'educationEtsCodeButtonId');\r\n }\r\n }\r\n else {\r\n if (id.substr(0, 'postalCodeId'.length) === 'postalCodeId') {\r\n buttonId = `postalCodeButtonId|${stepIndex}|${groupIndex}|${j + 1}`;\r\n isPostalCode = true;\r\n }\r\n if (id.substr(0, 'educationEtsCodeId'.length) === 'educationEtsCodeId') {\r\n buttonId = `educationEtsCodeButtonId|${stepIndex}|${groupIndex}|${j + 1}`;\r\n }\r\n }\r\n\r\n fieldElement = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblSearch}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n let format: string | undefined;\r\n if (id.substr(0, 'governmentId'.length) === 'governmentId' && governmentIdFormat) {\r\n format = governmentIdFormat;\r\n }\r\n\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n }\r\n break;\r\n\r\n case 'Dropdown':\r\n const emptyOption: IDropDownOption = {\r\n description: String(resources.lblSelect),\r\n value: ''\r\n };\r\n let exist: boolean = false;\r\n if (field.default && field.data.options) {\r\n field.data.options.forEach(option => {\r\n if (option.value.toString() === field.default.toString()) {\r\n exist = true;\r\n }\r\n });\r\n }\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'Checkbox':\r\n let checked: boolean = false;\r\n if (field.value !== undefined) {\r\n checked = field.value;\r\n }\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'DatePicker':\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'DeleteIconButton':\r\n fieldSize = isHorizontalAligned ? 1 : fieldSize;\r\n const idDelete: string = field.data.id;\r\n fieldElement = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'CheckboxList':\r\n let messageRequired: JSX.Element | undefined;\r\n if (field.data.error && field.isRequired) {\r\n messageRequired = (\r\n \r\n {field.data.helperText}\r\n \r\n );\r\n }\r\n else {\r\n messageRequired = undefined;\r\n }\r\n const chkElements: JSX.Element[] = [];\r\n let isCheck: boolean;\r\n if (field.data.options) {\r\n field.data.options.forEach((option, i) => {\r\n isCheck = false;\r\n if (field.value) {\r\n const array: string[] = Object.values(field.value.split(','));\r\n if (field.value && array.length > 0) {\r\n const index: number = array.findIndex(x => x === option.value.toString());\r\n if (index > -1) {\r\n isCheck = true;\r\n }\r\n }\r\n }\r\n chkElements.push(\r\n \r\n )\r\n }\r\n label={option.description}\r\n key={`${field.data.id}|list|${i}`}\r\n />\r\n );\r\n });\r\n }\r\n fieldElement = (\r\n \r\n {messageRequired}\r\n {field.data.label ? (\r\n \r\n {field.isRequired ? `${field.data.label} *` : `${field.data.label}`}\r\n \r\n ) : undefined}\r\n \r\n \r\n {chkElements}\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'Text':\r\n const errorColor: TextColor | undefined = field.data.error ? 'error' : undefined;\r\n let colorText: TextColor | undefined;\r\n if (!errorColor) {\r\n colorText = field.color ? field.color : undefined;\r\n }\r\n else {\r\n colorText = errorColor;\r\n }\r\n const size: TextSize | undefined = field.size;\r\n\r\n if (!field.isWithLink) {\r\n fieldElement = (\r\n \r\n \r\n {field.data.label}\r\n \r\n \r\n );\r\n }\r\n else {\r\n if (field.actionUrl && field.data.label) {\r\n const actions: string[] = field.actionUrl.split('|');\r\n fieldElement = (\r\n \r\n {\r\n if (action.substr(0, 'mailto:'.length) === 'mailto:' ||\r\n action.substr(0, 'tel:'.length) === 'tel:') {\r\n return ((_event: React.MouseEvent) => {\r\n window.location.href = `${action}`;\r\n });\r\n }\r\n else {\r\n return ((_event: React.MouseEvent) => {\r\n window.open(`${action}`, '_blank');\r\n });\r\n }\r\n })\r\n }\r\n />\r\n \r\n );\r\n }\r\n }\r\n break;\r\n\r\n case 'RadioGroup':\r\n const options: IDropDownOption[] = [];\r\n fieldElement = (\r\n \r\n \r\n {field.data.label}\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'NestedCheckboxList':\r\n const array: IApplicationIpeds[] = [];\r\n if (field.value) {\r\n const ipedsArray = field.value.split(',');\r\n ipedsArray.forEach(iped => {\r\n const ipedItem = iped.split('$');\r\n if (ipedItem[0] !== '') {\r\n if (ipedItem.length > 1) {\r\n array.push({\r\n ipedsEthnicityId: ipedItem[1],\r\n ipedsFederalCategoryId: ipedItem[0]\r\n });\r\n }\r\n else {\r\n array.push({\r\n ipedsFederalCategoryId: ipedItem[0]\r\n });\r\n }\r\n }\r\n });\r\n }\r\n let errorMessage: JSX.Element | undefined;\r\n if (field.data.error) {\r\n errorMessage = (\r\n \r\n {field.data.helperText}\r\n \r\n );\r\n }\r\n else {\r\n errorMessage = undefined;\r\n }\r\n const elementsList: JSX.Element[] = [];\r\n if (field.data.complexOptions && field.data.complexOptions.length > 0) {\r\n field.data.complexOptions.forEach(complexItem => {\r\n const elements: JSX.Element[] = [];\r\n if (complexItem.options && complexItem.options.length > 0) {\r\n complexItem.options.forEach(item => {\r\n let childIsChecked: boolean = false;\r\n if (array.length > 0) {\r\n let index: number = -1;\r\n index =\r\n array.findIndex(x =>\r\n (x.ipedsEthnicityId ?\r\n x.ipedsEthnicityId.toString() : '') === item.value.toString() &&\r\n x.ipedsFederalCategoryId.toString() === complexItem.value.toString());\r\n if (index > -1) {\r\n childIsChecked = true;\r\n }\r\n }\r\n elements.push(\r\n \r\n )\r\n }\r\n label={item.description}\r\n />\r\n );\r\n });\r\n }\r\n let parentIsChecked: boolean = false;\r\n if (array.length > 0) {\r\n let index: number = -1;\r\n index =\r\n array.findIndex(x =>\r\n (x.ipedsFederalCategoryId ?\r\n x.ipedsFederalCategoryId.toString() : '') === complexItem.value.toString());\r\n if (index > -1) {\r\n parentIsChecked = true;\r\n }\r\n }\r\n elementsList.push(\r\n <>\r\n \r\n )\r\n }\r\n label={complexItem.description}\r\n />\r\n {elements}\r\n \r\n );\r\n });\r\n }\r\n fieldElement = (\r\n \r\n {field.data.label ? (\r\n \r\n {field.isRequired ? `${field.data.label} *` : `${field.data.label}`}\r\n \r\n ) : undefined}\r\n \r\n {errorMessage}\r\n \r\n \r\n {elementsList}\r\n \r\n \r\n \r\n \r\n );\r\n break;\r\n case 'Link':\r\n if (field.data.label) {\r\n fieldElement = (\r\n \r\n \r\n {field.data.label}\r\n \r\n \r\n );\r\n }\r\n break;\r\n case 'IconLinkEmail':\r\n if (field.data.label) {\r\n fieldElement = (\r\n \r\n { if (field.actionUrl) { window.location.href = field.actionUrl } }}\r\n >\r\n {field.data.label}\r\n \r\n \r\n );\r\n }\r\n break;\r\n case 'IconLinkPhone':\r\n if (field.data.label) {\r\n fieldElement = (\r\n \r\n { if (field.actionUrl) { window.location.href = field.actionUrl } }}\r\n >\r\n {field.data.label}\r\n \r\n \r\n );\r\n }\r\n break;\r\n case 'Divider':\r\n fieldElement = (\r\n \r\n
\r\n
\r\n );\r\n break;\r\n case 'Image':\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n break;\r\n case 'HtmlElement':\r\n fieldElement = (\r\n \r\n \r\n
\r\n \r\n \r\n );\r\n break;\r\n }\r\n\r\n /* Determines the expansion panel header\r\n * for the first element of a group */\r\n if (field.isExpansionPanelHeader && field.value) {\r\n if (!field.data.modified) {\r\n if (field.componentType && field.componentType === 'Dropdown') {\r\n let selectedOption: number = 0;\r\n if (field.data && field.data.options && field.data.options.length > 0) {\r\n selectedOption =\r\n field.data.options.findIndex(x => x.value === field.value);\r\n if (selectedOption > -1) {\r\n firstHeaderTitleElement.push(`${field.data.options[selectedOption].description} `);\r\n }\r\n }\r\n }\r\n else {\r\n firstHeaderTitleElement.push(`${field.value} `);\r\n }\r\n }\r\n }\r\n\r\n /* Determines if the element is copied */\r\n if (fieldElement) {\r\n if (field.data.modified) {\r\n setMultipleFields(field, fieldElement, id);\r\n }\r\n else {\r\n elements.push(fieldElement);\r\n }\r\n }\r\n });\r\n\r\n return (\r\n isExpansionPanel && sectionContainers.length > 0 ? (\r\n <>\r\n }\r\n header={(\r\n \r\n {firstHeaderTitleElement.length > 0 ? firstHeaderTitleElement : resources.lblNew}\r\n \r\n )}\r\n onChange={onChangeExpansionPanel(`panel|${stepIndex}|${groupIndex}`)}\r\n >\r\n \r\n {elements}\r\n \r\n \r\n {sectionContainers}\r\n \r\n ) : (\r\n <>\r\n \r\n {elements}\r\n \r\n {sectionContainers}\r\n \r\n\r\n ));\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(withWidth()(FieldsHandler));","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n* File: FieldsGroupHandler.tsx\r\n* Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Internal components\r\nimport { IApplicationHandler } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\nimport FieldsHandler from './FieldsHandler';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Helpers\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IApplicationErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IFieldsGroup } from '../../../Types/Form/IFieldsGroup';\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IFieldsGroupHandlerProps {\r\n dateTimeCulture: string;\r\n errors: IApplicationErrors[];\r\n expanded: boolean | string;\r\n fieldGroup: IFieldsGroup;\r\n fieldGroupIndex: number;\r\n firstDayOfWeek: number;\r\n governmentIdFormat: string;\r\n isExpansionPanel: boolean;\r\n isHorizontalAligned: boolean;\r\n shortDatePattern: string;\r\n stepIndex: number;\r\n\r\n resources: IApplicationHandler;\r\n\r\n onAddMore: (fieldGroup: IFieldsGroup, stepIndex: number, fieldGroupIndex: number) => void;\r\n onChangeCheckBox: (event: React.ChangeEvent) => void;\r\n onChangeDateTimeField: (date: string, id: string, isValid: boolean) => void;\r\n onChangeDropDown: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangeExpansionPanel: (label: string) => void;\r\n onChangeListCheckbox: (event: any) => void;\r\n onChangeRadioGroup: (event: React.ChangeEvent, value: string) => void;\r\n onChangeTextField: (event: React.ChangeEvent) => void;\r\n onClickButton: (event: React.MouseEvent) => void;\r\n onDeleteItem: (event: any) => void;\r\n}\r\n\r\nconst styles = (() => createStyles({\r\n buttonTop: {\r\n marginTop: Tokens.spacing30\r\n },\r\n groupTitleBottom: {\r\n marginBottom: 0\r\n }\r\n}));\r\n\r\ntype PropsWithStyles = IFieldsGroupHandlerProps & WithStyles;\r\n\r\n// #endregion\r\n\r\n// #region Component\r\nconst FieldsGroupHandler: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n classes,\r\n dateTimeCulture,\r\n errors,\r\n expanded,\r\n fieldGroup,\r\n fieldGroupIndex,\r\n firstDayOfWeek,\r\n governmentIdFormat,\r\n isExpansionPanel,\r\n isHorizontalAligned,\r\n shortDatePattern,\r\n stepIndex,\r\n resources,\r\n\r\n onAddMore,\r\n onChangeCheckBox,\r\n onChangeDropDown,\r\n onChangeDateTimeField,\r\n onChangeExpansionPanel,\r\n onChangeListCheckbox,\r\n onChangeRadioGroup,\r\n onChangeTextField,\r\n onClickButton,\r\n onDeleteItem\r\n } = props;\r\n\r\n const isDisabled: boolean = fieldGroup.isDisableButton ? fieldGroup.isDisableButton : false;\r\n\r\n const content: JSX.Element[] = [];\r\n /* Field Id will be created in this way:\r\n * fieldId_sectionIndex_fieldIndex_positionInCollection\r\n * */\r\n const addMore = () => onAddMore(fieldGroup, stepIndex, fieldGroupIndex);\r\n if (fieldGroup.isMultiple) {\r\n content.push(\r\n \r\n \r\n \r\n );\r\n }\r\n let labelElement: JSX.Element | undefined;\r\n if (fieldGroup.label) {\r\n labelElement = (\r\n \r\n {fieldGroup.label}\r\n \r\n );\r\n }\r\n let instructionsElement: JSX.Element | undefined;\r\n if (fieldGroup.instructions) {\r\n instructionsElement = (\r\n \r\n {fieldGroup.instructions}\r\n \r\n );\r\n }\r\n\r\n content.push(\r\n \r\n {(fieldGroup.label !== '' || fieldGroup.instructions) &&\r\n fieldGroup.id !== 'confirmationGroup' ?\r\n (\r\n \r\n \r\n {labelElement}\r\n {instructionsElement}\r\n \r\n \r\n ) : undefined}\r\n \r\n \r\n );\r\n\r\n if (fieldGroup.isMultiple && Number(fieldGroup.maximumAllowed) !== 1) {\r\n content.push(\r\n \r\n \r\n \r\n {resources.lblAddNew}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {content}\r\n \r\n );\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(FieldsGroupHandler);","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: ApplicationCompletedModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Divider from '@hedtech/powercampus-design-system/react/core/Divider';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Internal components\r\nimport { IApplicationHandler } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\nimport FieldsGroupHandler from './FieldsGroupHandler';\r\n\r\n// Helpers\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IFieldsGroup } from '../../../Types/Form/IFieldsGroup';\r\nimport { IPaymentTransaction } from '../../../Types/Payment/IPaymentTransaction';\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IApplicationCompletedModalProps {\r\n dateTimeCulture: string;\r\n failedPayment: boolean;\r\n fieldGroup?: IFieldsGroup;\r\n paymentTransaction?: IPaymentTransaction;\r\n shortDatePattern: string;\r\n successPayment: boolean;\r\n\r\n onAddMore: (fieldGroup: IFieldsGroup, stepIndex: number, fieldGroupIndex: number) => void;\r\n onChangeCheckBox: (event: React.ChangeEvent) => void;\r\n onChangeDateTimeField: (date: string, id: string, isValid: boolean) => void;\r\n onChangeDropDown: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangeListCheckbox: (event: any) => void;\r\n onChangeRadioGroup: (event: React.ChangeEvent, value: string) => void;\r\n onChangeTextField: (event: React.ChangeEvent) => void;\r\n onClickButton: (event: React.MouseEvent) => void;\r\n onCloseFailedPayment: (event: React.MouseEvent) => void;\r\n\r\n resourcesApplicationHandler: IApplicationHandler;\r\n}\r\n\r\nconst styles = createStyles({\r\n containerDetails: {\r\n backgroundColor: Tokens.colorBrandNeutral200,\r\n padding: Tokens.spacing50\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IApplicationCompletedModalProps & WithStyles;\r\n// #endregion\r\n\r\n// #region Component\r\nconst ApplicationCompletedModal: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n classes,\r\n dateTimeCulture,\r\n failedPayment,\r\n fieldGroup,\r\n paymentTransaction,\r\n shortDatePattern,\r\n successPayment,\r\n\r\n onAddMore,\r\n onChangeCheckBox,\r\n onChangeDateTimeField,\r\n onChangeDropDown,\r\n onChangeListCheckbox,\r\n onChangeRadioGroup,\r\n onChangeTextField,\r\n onClickButton,\r\n onCloseFailedPayment,\r\n\r\n resourcesApplicationHandler\r\n } = props;\r\n\r\n let footerModal: JSX.Element;\r\n footerModal = (\r\n \r\n \r\n {resourcesApplicationHandler.btnOk}\r\n \r\n \r\n );\r\n\r\n const bodyModal: JSX.Element[] = [];\r\n if (fieldGroup) {\r\n bodyModal.push(\r\n \r\n {failedPayment ?\r\n (\r\n \r\n \r\n {resourcesApplicationHandler.lblContentTextApplication}\r\n \r\n \r\n ) :\r\n successPayment && paymentTransaction ?\r\n (\r\n \r\n \r\n
\r\n \r\n {resourcesApplicationHandler.lblTitleDetails}\r\n \r\n \r\n \r\n \r\n \r\n {resourcesApplicationHandler.lblAmount}\r\n \r\n \r\n \r\n \r\n {paymentTransaction.amount}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resourcesApplicationHandler.lblDescription}\r\n \r\n \r\n \r\n \r\n {paymentTransaction.description}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resourcesApplicationHandler.lblAuthorizationCode}\r\n \r\n \r\n \r\n \r\n {paymentTransaction.authorizationNumber}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n ) :\r\n undefined\r\n }\r\n {!failedPayment ?\r\n (\r\n \r\n \r\n \r\n ) : undefined}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n {bodyModal}\r\n \r\n );\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(ApplicationCompletedModal);","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n* File: ApplicationHandler.tsx\r\n* Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React, { RefObject } from 'react';\r\nimport Media from 'react-media';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Card from '@hedtech/powercampus-design-system/react/core/Card';\r\nimport Divider from '@hedtech/powercampus-design-system/react/core/Divider';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport MessageStyled from '@hedtech/powercampus-design-system/react/core/MessageStyled';\r\nimport ReCAPTCHA from '@hedtech/powercampus-design-system/react/core/ReCaptcha';\r\nimport StepProgress, {\r\n MobileStepper,\r\n MobileStepperLabel,\r\n MobileStepperStep,\r\n MobileStepperTitle,\r\n Step,\r\n StepButton,\r\n StepContent,\r\n StepLabel\r\n} from '@hedtech/powercampus-design-system/react/core/StepProgress';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Internal components\r\nimport ApplicationCompletedModal from './ApplicationCompletedModal';\r\nimport FieldsGroupHandler from './FieldsGroupHandler';\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IApplicationContent } from '../../../Types/Applications/IApplicationContent';\r\nimport { IApplicationErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IApplicationForm } from '../../../Types/Form/IApplicationForm';\r\nimport { IFieldsGroup } from '../../../Types/Form/IFieldsGroup';\r\nimport { IPaymentTransaction } from '../../../Types/Payment/IPaymentTransaction';\r\nimport { IApplicationHandler } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IApplicationHandlerProps {\r\n activeStep: number;\r\n components?: IApplicationForm;\r\n dateTimeCulture: string;\r\n errors: IApplicationErrors[];\r\n expanded: boolean | string;\r\n failedPayment: boolean;\r\n firstDayOfWeek: number;\r\n governmentIdFormat: string;\r\n paymentTransaction: IPaymentTransaction;\r\n saveMessage?: string;\r\n section?: JSON;\r\n shortDatePattern: string;\r\n showSaveButton: boolean;\r\n successPayment: boolean;\r\n\r\n resources: IApplicationHandler;\r\n onAddMore: (fieldGroup: IFieldsGroup) => void;\r\n onBackStep: () => void;\r\n onClickSave?: () => void;\r\n onClickStep: (event: React.MouseEvent) => void;\r\n onChangeCheckBox: (event: React.ChangeEvent) => void;\r\n onChangeDateTimeField: (date: string, id: string, isValid: boolean) => void;\r\n onChangeDropDown: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangeExpansionPanel: (label: string) => void;\r\n onChangeListCheckbox: (event: any) => void;\r\n onChangeRadioGroup: (event: React.ChangeEvent, value: string) => void;\r\n onChangeTextField: (event: React.ChangeEvent) => void;\r\n onClickButton: (event: React.MouseEvent) => void;\r\n onCloseFailedPayment: (event: React.MouseEvent) => void;\r\n onDeleteItem: (event: any) => void;\r\n onNextStep: () => void;\r\n onSubmit: () => void;\r\n\r\n // #region ReCaptcha\r\n isReCaptchaSubmitEnabled: boolean;\r\n reCaptchaError: boolean;\r\n reCaptchaRef: RefObject;\r\n reCaptchaSiteKey: string;\r\n uiCulture: string;\r\n onRecaptchaChange: (token: any) => void;\r\n onReCaptchaError: () => void;\r\n // #endregion ReCaptcha\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n backButtonMovil: {\r\n marginLeft: Tokens.spacing30\r\n },\r\n boxStep: {\r\n '& > span > span > span': {\r\n textAlign: 'left'\r\n },\r\n '&:focus': {\r\n boxShadow: 'none'\r\n }\r\n },\r\n buttonContainer: {\r\n marginTop: Tokens.spacing50\r\n },\r\n buttonsContainerMovil: {\r\n marginRight: Tokens.spacing50\r\n },\r\n buttonStep: {\r\n marginRight: Tokens.spacing40\r\n },\r\n cardRoot: {\r\n [theme.breakpoints.up('sm')]: {\r\n marginTop: Tokens.spacing80\r\n }\r\n },\r\n fieldContainer: {\r\n marginTop: Tokens.spacing30\r\n },\r\n footerPadding: {\r\n padding: `${Tokens.spacing50} ${Tokens.spacing50} 0 ${Tokens.spacing50}`,\r\n textAlign: 'center'\r\n },\r\n inline: {\r\n display: 'inline'\r\n },\r\n paddingLeft: {\r\n paddingLeft: Tokens.spacing80\r\n },\r\n marginLeft: {\r\n display: 'inline',\r\n marginLeft: Tokens.sizingSmall\r\n },\r\n mobileStepperContent: {\r\n minHeight: '65vh',\r\n padding: `${Tokens.spacing40} ${Tokens.spacing40} 0 ${Tokens.spacing40}`\r\n },\r\n reCaptchaErrorText: {\r\n paddingBottom: Tokens.spacing30\r\n },\r\n saveButtonMargin: {\r\n marginLeft: Tokens.sizingSmall,\r\n marginRight: Tokens.sizingSmall\r\n },\r\n saveFooter: {\r\n textAlign: 'center'\r\n },\r\n stepperDesktop: {\r\n padding: `${Tokens.spacing50} ${Tokens.spacing50} 0 ${Tokens.spacing50}`\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IApplicationHandlerProps & WithStyles;\r\n// #endregion\r\n\r\n// #region Component\r\n\r\nconst ApplicationHandler: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n activeStep,\r\n classes,\r\n components,\r\n dateTimeCulture,\r\n errors,\r\n expanded,\r\n failedPayment,\r\n firstDayOfWeek,\r\n governmentIdFormat,\r\n paymentTransaction,\r\n saveMessage,\r\n shortDatePattern,\r\n showSaveButton,\r\n successPayment,\r\n\r\n onAddMore,\r\n onBackStep,\r\n onClickSave,\r\n onClickStep,\r\n onChangeCheckBox,\r\n onChangeDateTimeField,\r\n onChangeDropDown,\r\n onChangeExpansionPanel,\r\n onChangeListCheckbox,\r\n onChangeRadioGroup,\r\n onChangeTextField,\r\n onClickButton,\r\n onCloseFailedPayment,\r\n onDeleteItem,\r\n onNextStep,\r\n onSubmit,\r\n\r\n resources,\r\n\r\n // #region ReCaptcha\r\n isReCaptchaSubmitEnabled,\r\n reCaptchaError,\r\n reCaptchaRef,\r\n reCaptchaSiteKey,\r\n uiCulture,\r\n onRecaptchaChange,\r\n onReCaptchaError\r\n // #endregion ReCaptcha\r\n } = props;\r\n\r\n const noContent: JSX.Element = (\r\n \r\n );\r\n\r\n const reCaptchaElement: JSX.Element = (\r\n <>\r\n \r\n {reCaptchaError && (\r\n \r\n \r\n {resources.lblReCaptchaRequired}\r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n let content: IApplicationContent[] = [];\r\n if (components && components.steps && components.steps.length > 0) {\r\n content = Array(components.steps.length);\r\n components.steps.forEach((step, i) => {\r\n const fieldsGroupsElements: JSX.Element[] = [];\r\n if (step.fieldsGroups && step.fieldsGroups.length > 0) {\r\n step.fieldsGroups.forEach((fieldGroup, j) => {\r\n fieldsGroupsElements.push(\r\n \r\n );\r\n });\r\n }\r\n\r\n content[i] = {\r\n content: (\r\n \r\n \r\n {fieldsGroupsElements}\r\n \r\n ),\r\n instructions: step.instructions,\r\n title: step.title\r\n };\r\n });\r\n }\r\n\r\n const fieldsGroupsModal: JSX.Element[] = [];\r\n const footer: JSX.Element[] = [];\r\n if (components && components.fieldsGroups) {\r\n if (components.fieldsGroups.length > 0) {\r\n // Confirmation Dialog\r\n if (components.isCompletedApplication) {\r\n let confirmationGroup: IFieldsGroup | undefined;\r\n const confirmationIndex: number =\r\n components.fieldsGroups.findIndex(x => x.id === 'confirmationGroup');\r\n if (confirmationIndex > -1) {\r\n confirmationGroup = components.fieldsGroups[confirmationIndex];\r\n }\r\n\r\n fieldsGroupsModal.push(\r\n \r\n );\r\n }\r\n // Footer\r\n let footerGroup: IFieldsGroup | undefined;\r\n const footerGroupIndex: number =\r\n components.fieldsGroups.findIndex(x => x.id === 'footerGroup');\r\n if (footerGroupIndex > -1) {\r\n footerGroup = components.fieldsGroups[footerGroupIndex];\r\n }\r\n if (footerGroup) {\r\n footer.push(\r\n \r\n );\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n {content.length > 0 ? (\r\n \r\n {(matches: boolean): JSX.Element => matches ? (\r\n \r\n {resources.lblNext}\r\n \r\n )\r\n }\r\n backButton={\r\n (\r\n \r\n {resources.lblBack}\r\n \r\n )\r\n }\r\n >\r\n
\r\n \r\n <>\r\n {components ? (\r\n <>\r\n {components.name || ''}\r\n {components.enableOnlinePayment\r\n && components.feeAmount ?\r\n (\r\n \r\n {Format.toString(components.isFlatFee\r\n ? resources.formatHasFee\r\n : resources.formatHasFees,\r\n [components.feeAmount])}\r\n \r\n )\r\n : undefined}\r\n \r\n ) : undefined}\r\n \r\n \r\n\r\n {activeStep !== content.length ? (\r\n <>\r\n \r\n \r\n {content[activeStep].title}\r\n \r\n \r\n {content[activeStep].content}\r\n \r\n ) : (\r\n <>\r\n \r\n {content.map((step, i) => (\r\n \r\n \r\n \r\n {errors[i].isStepError ? (\r\n \r\n {step.title}\r\n \r\n ) : step.title}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n {isReCaptchaSubmitEnabled && Boolean(reCaptchaSiteKey) && (\r\n \r\n {reCaptchaElement}\r\n \r\n )}\r\n \r\n \r\n {resources.lblSubmit}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n \r\n ) : (\r\n <>\r\n {components ? (\r\n \r\n \r\n \r\n {components.name || ''}\r\n \r\n {components.enableOnlinePayment\r\n && components.feeAmount ?\r\n (\r\n \r\n {Format.toString(components.isFlatFee\r\n ? resources.formatHasFee\r\n : resources.formatHasFees, [components.feeAmount])}\r\n \r\n )\r\n : undefined}\r\n \r\n \r\n \r\n ) : undefined}\r\n \r\n {content.map((step, i) => (\r\n \r\n \r\n \r\n {errors[i].isStepError ? (\r\n \r\n {step.title}\r\n \r\n ) : step.title}\r\n \r\n \r\n \r\n {step.content}\r\n {activeStep !== content.length - 1 && (\r\n \r\n \r\n \r\n \r\n {resources.lblBack}\r\n \r\n \r\n {resources.lblNext}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ))}\r\n \r\n {activeStep === content.length - 1 && (\r\n \r\n {isReCaptchaSubmitEnabled && Boolean(reCaptchaSiteKey) && (\r\n \r\n {reCaptchaElement}\r\n \r\n )}\r\n \r\n \r\n \r\n {resources.lblBack}\r\n \r\n \r\n {resources.lblSubmit}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n }\r\n
\r\n ) : noContent}\r\n {showSaveButton && onClickSave ?\r\n (\r\n
\r\n
\r\n \r\n \r\n {saveMessage}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {resources.lblSave}\r\n
\r\n \r\n
\r\n
\r\n )\r\n : undefined\r\n }\r\n
\r\n {footer}\r\n
\r\n {fieldsGroupsModal}\r\n
\r\n \r\n \r\n );\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(ApplicationHandler);","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: Attachments.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Card, { CardContent } from '@hedtech/powercampus-design-system/react/core/Card';\r\nimport Divider from '@hedtech/powercampus-design-system/react/core/Divider';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Hidden from '@hedtech/powercampus-design-system/react/core/Hidden';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport IconButton from '@hedtech/powercampus-design-system/react/core/IconButton';\r\nimport MessageStyled from '@hedtech/powercampus-design-system/react/core/MessageStyled';\r\nimport Table, { TableBody, TableCell, TableHead, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport Tooltip from '@hedtech/powercampus-design-system/react/core/Tooltip';\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IApplicationAttachment } from '../../../Types/Applications/IApplicationAttachment';\r\nimport { IAttachments } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n// #endregion Imports\r\n// #region Types\r\n\r\nexport interface IAttachmentProps {\r\n attachments?: IApplicationAttachment[];\r\n numberOfAttachments: number;\r\n totalSize?: string;\r\n onClickContinue: (event: React.MouseEvent) => void;\r\n onClickInfo: (event: React.MouseEvent) => void;\r\n onClickOpenFolder: (event: React.MouseEvent) => void;\r\n onClickRemoveAttachment: (event: React.MouseEvent) => void;\r\n resources: IAttachments;\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n buttonContainer: {\r\n marginTop: Tokens.spacing50\r\n },\r\n buttonStep: {\r\n marginRight: Tokens.spacing40\r\n },\r\n icon: {\r\n color: theme.palette.action.active,\r\n cursor: 'pointer'\r\n },\r\n inline: {\r\n display: 'inline'\r\n },\r\n marginLeft: {\r\n display: 'inline',\r\n marginLeft: Tokens.sizingSmall\r\n },\r\n marginRigth: {\r\n display: 'inline',\r\n marginRigth: Tokens.sizingSmall\r\n },\r\n table: {\r\n '& > tbody > tr > th:nth-child(1)': {\r\n width: '70%'\r\n },\r\n '& > tbody > tr > th:nth-child(2)': {\r\n width: '10%'\r\n },\r\n '& > tbody > tr > th:nth-child(3)': {\r\n width: '10%'\r\n },\r\n '& > tbody > tr > th:nth-child(4)': {\r\n width: '10%'\r\n }\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IAttachmentProps & WithStyles;\r\n// #endregion Types\r\n\r\n// #region Component\r\nconst Attachment: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n attachments,\r\n numberOfAttachments,\r\n classes,\r\n totalSize,\r\n onClickContinue,\r\n onClickInfo,\r\n onClickOpenFolder,\r\n onClickRemoveAttachment,\r\n resources\r\n } = props;\r\n\r\n let table: JSX.Element | undefined;\r\n if (attachments && attachments.length > 0) {\r\n table = (\r\n \r\n \r\n \r\n \r\n {resources.lblName}\r\n \r\n \r\n {resources.lblType}\r\n \r\n \r\n {resources.lblSize}\r\n \r\n \r\n {resources.lblDelete}\r\n \r\n \r\n \r\n \r\n {attachments.map((attachment, i) => (\r\n \r\n \r\n \r\n {attachment.attachmentTitle}\r\n \r\n \r\n \r\n \r\n {attachment.extension}\r\n \r\n \r\n \r\n \r\n {attachment.fileSize}\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 let content: JSX.Element | undefined;\r\n if (resources) {\r\n content = (\r\n \r\n \r\n \r\n \r\n \r\n {resources.lblTitle}\r\n \r\n \r\n \r\n \r\n \r\n {Format.toString(resources.lblInstructions, [numberOfAttachments])}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {resources.lblChooseFile}\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 {resources.lblSupportedFiles}\r\n \r\n \r\n \r\n \r\n {\r\n attachments && attachments.length > 0 ?\r\n (\r\n <>\r\n \r\n {resources.lblAttachments}\r\n \r\n {table}\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 {resources.lblContinue}\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 return (\r\n <>\r\n {content}\r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(Attachment);","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: ConfirmationSavedModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Generic components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Types\r\nimport { IConfirmationSavedModal } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface IConfirmationSavedModalProps {\r\n confirmationMessage: string;\r\n open: boolean;\r\n resources: IConfirmationSavedModal;\r\n onCloseModal: () => void;\r\n}\r\n// #endregion Types\r\n\r\n// #region Component\r\nconst ConfirmationSavedModal: React.FC = (props: IConfirmationSavedModalProps): JSX.Element => {\r\n const {\r\n confirmationMessage,\r\n open,\r\n resources,\r\n onCloseModal\r\n } = props;\r\n\r\n return (\r\n \r\n {resources.btnOk}\r\n \r\n )}\r\n id=\"confirmationSaveModal\"\r\n header={resources.lblTitle}\r\n maxWidth=\"md\"\r\n open={open}\r\n onClose={onCloseModal}\r\n >\r\n \r\n \r\n \r\n {confirmationMessage}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default ConfirmationSavedModal;","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: ETSSearchModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Dropdown from '@hedtech/powercampus-design-system/react/core/Dropdown';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Link from '@hedtech/powercampus-design-system/react/core/Link';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Pagination from '@hedtech/powercampus-design-system/react/core/Pagination';\r\nimport Table, { TableBody, TableCell, TableHead, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IInstitution } from '../../../Types/Applications/IInstitution';\r\nimport { IETSSearchModal } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IETSSearchModalProps {\r\n city?: string;\r\n countries: IDropDownOption[];\r\n country?: number;\r\n etsCode?: string;\r\n institutionName?: string;\r\n institutions?: IInstitution[];\r\n open: boolean;\r\n pageNumber: number;\r\n pageSize: number;\r\n rowsPerPageOptions: number[];\r\n state?: number;\r\n states: IDropDownOption[];\r\n totalInstitutions: number;\r\n\r\n // events\r\n onChangeDropDownETSSearch?: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangePage: (event: any, page: number) => void;\r\n onChangeRowsPerPage: (event: any) => void;\r\n onChangeTextFieldETSSearch?: (event: any) => void;\r\n onClear: () => void;\r\n onClickLink: (institutionName?: string, etsCode?: string, ficeCode?: string,\r\n city?: string, stateProvinceId?: number, countryId?: number) => void;\r\n onClose: () => void;\r\n onSearch: () => void;\r\n\r\n // resources\r\n resources: IETSSearchModal;\r\n}\r\n// #endregion\r\n\r\n// #region Component\r\nconst ETSSearchModal: React.FC = (props: IETSSearchModalProps): JSX.Element => {\r\n const {\r\n city,\r\n countries,\r\n country,\r\n etsCode,\r\n institutionName,\r\n institutions,\r\n open,\r\n pageNumber,\r\n pageSize,\r\n rowsPerPageOptions,\r\n state,\r\n states,\r\n totalInstitutions,\r\n\r\n // events\r\n onChangeDropDownETSSearch,\r\n onChangePage,\r\n onChangeRowsPerPage,\r\n onChangeTextFieldETSSearch,\r\n onClear,\r\n onClickLink,\r\n onClose,\r\n onSearch,\r\n\r\n // resources\r\n resources\r\n } = props;\r\n\r\n const emptyOptionState: IDropDownOption = {\r\n description: resources.lblEmptyOptionState,\r\n value: ''\r\n };\r\n\r\n const emptyOptionCountry: IDropDownOption = {\r\n description: resources.lblEmptyOptionCountry,\r\n value: ''\r\n };\r\n\r\n const footerModal: JSX.Element = (\r\n \r\n \r\n {resources.btnSearch}\r\n \r\n \r\n {resources.btnClear}\r\n \r\n \r\n );\r\n\r\n let tableInstitutions: JSX.Element | undefined;\r\n if (institutions && institutions.length > 0) {\r\n tableInstitutions = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblInstitutionName}\r\n \r\n \r\n {resources.lblETSCode}\r\n \r\n \r\n {resources.lblFICECode}\r\n \r\n \r\n {resources.lblCity}\r\n \r\n \r\n {resources.lblState}\r\n \r\n \r\n {resources.lblCountry}\r\n \r\n \r\n \r\n \r\n {\r\n institutions.map(\r\n (row, i) => (\r\n \r\n \r\n \r\n \r\n {row.name}\r\n \r\n \r\n \r\n \r\n \r\n {row.etsCode}\r\n \r\n \r\n \r\n \r\n {row.ficeCode}\r\n \r\n \r\n \r\n \r\n {row.city}\r\n \r\n \r\n \r\n \r\n {row.stateDesc}\r\n \r\n \r\n \r\n \r\n {row.countryDesc}\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 let paginationComponent: JSX.Element | undefined;\r\n if (institutions && institutions.length > 0) {\r\n paginationComponent = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let bodyModal: JSX.Element;\r\n bodyModal = (\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 {footerModal}\r\n \r\n
\r\n
\r\n {tableInstitutions}\r\n {paginationComponent}\r\n \r\n );\r\n\r\n return (\r\n \r\n {bodyModal}\r\n \r\n );\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default ETSSearchModal;","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n* File: ApplicationForm.ts */\r\n\r\n// Types\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IApplication } from '../../Types/Applications/IApplication';\r\nimport { IApplicationAttachment } from '../../Types/Applications/IApplicationAttachment';\r\nimport { ISavedApplication } from '../../Types/Applications/ISavedApplication';\r\nimport { IApplicationForm } from '../../Types/Form/IApplicationForm';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\n\r\n// Functions for requests\r\nconst ApplicationFormRequests = {\r\n // #region Addresses\r\n getAddresses(startIndex: number, length: number, zipCode?: string, resolver?: (json: string) => void,\r\n resolveError?: (logData: ILogData) => void): void {\r\n Request.post(this.getAddresses.name, '/Address',\r\n {\r\n length,\r\n startIndex,\r\n zipCode\r\n },\r\n resolver, resolveError);\r\n },\r\n // #endregion Addresses\r\n\r\n // #region ApplicationHandler\r\n getComponents(id: number, resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getComponents.name, '/Forms/Details',\r\n {\r\n id: id,\r\n type: 0\r\n },\r\n resolver, resolveError);\r\n },\r\n\r\n getSavedApplicationComponents(savedApplicationToken: string,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getComponents.name, '/Forms/Saved',\r\n savedApplicationToken,\r\n resolver, resolveError);\r\n },\r\n\r\n postSubmit(application: IApplication,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postSubmit.name, '/Applications/Create', application, resolver, resolveError);\r\n },\r\n\r\n postCreateSavedApplication(savedApplication: ISavedApplication,\r\n components: IApplicationForm, resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postCreateSavedApplication.name,\r\n '/Applications/CreateSavedApplication',\r\n {\r\n components,\r\n savedApplication\r\n },\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n postCreateSaveApplicationNotification(urlToSend: string, email: string,\r\n formApplicationName: string, resolver: (json: string) => void, resolveError: (ILogData: ILogData) => void): void {\r\n Request.post(this.postCreateSaveApplicationNotification.name,\r\n '/Applications/CreateSaveApplicationNotification',\r\n {\r\n email: email,\r\n formApplicationName: formApplicationName,\r\n urlToSend: urlToSend\r\n },\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n postCreateApplicationAttachment(applicationAttachment: IApplicationAttachment,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postCreateApplicationAttachment.name,\r\n '/Applications/CreateApplicationAttachment',\r\n applicationAttachment,\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n postListApplicationAttachments(applicationId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postListApplicationAttachments.name,\r\n '/Applications/ListApplicationAttachments',\r\n applicationId,\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n postDeleteApplicationAttachment(attachmentId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postListApplicationAttachments.name,\r\n '/Applications/DeleteApplicationAttachment',\r\n attachmentId,\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n getApplicationAttachments(applicationId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getApplicationAttachments.name,\r\n '/Applications/DeleteApplicationAttachment',\r\n applicationId,\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n GetApplicationAttachmentTotals(applicationId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getApplicationAttachments.name,\r\n '/Applications/GetApplicationAttachmentTotals',\r\n applicationId,\r\n resolver,\r\n resolveError);\r\n },\r\n // #endregion\r\n\r\n // #region TestScores\r\n getChildOptions(url: string, id: number, step: string, group: string, targetId: string, isApplicationForm: boolean,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void,\r\n formId?: number): void {\r\n if (!formId) {\r\n Request.post(this.getChildOptions.name, `/${url}`, {\r\n group,\r\n id,\r\n step,\r\n targetId\r\n }, resolver, resolveError);\r\n }\r\n else {\r\n Request.post(this.getChildOptions.name, `/${url}`, {\r\n formId,\r\n group,\r\n id,\r\n step,\r\n targetId,\r\n isApplicationForm\r\n }, resolver, resolveError);\r\n }\r\n },\r\n getValidateScoreType(\r\n applicationId: number,\r\n test: any,\r\n group: string,\r\n componentId: string,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getValidateScoreType.name,\r\n '/TestScores/ScoreType',\r\n { formId: applicationId, testId: test, group, componentId },\r\n resolver,\r\n resolveError);\r\n },\r\n // #endregion\r\n\r\n // #region Institutions\r\n getCountries(resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.get(this.getCountries.name, '/Institutions/Countries', resolver, resolveError);\r\n },\r\n getStates(resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.get(this.getCountries.name, '/Institutions/States', resolver, resolveError);\r\n },\r\n getInstitutions(startIndex: number, length: number, institutionName?: string, etsCode?: string,\r\n city?: string, stateId?: number, countryId?: number, resolver?: (json: string) => void,\r\n resolveError?: (logData: ILogData) => void): void {\r\n Request.post(this.getInstitutions.name, '/Institutions',\r\n {\r\n length,\r\n startIndex,\r\n institution: {\r\n city,\r\n countryId,\r\n etsCode,\r\n name: institutionName,\r\n stateProvinceId: stateId\r\n }\r\n },\r\n resolver, resolveError);\r\n },\r\n // #endregion\r\n\r\n // #region Settings\r\n getGeneralSettings(resolver: (json: string) => void): void {\r\n Request.get(this.getGeneralSettings.name, '/Settings/General', resolver);\r\n },\r\n getReCaptchaSettings(resolver: (json: string) => void): void {\r\n Request.post(this.getReCaptchaSettings.name, '/Applications/RecaptchaSettings', null, resolver);\r\n },\r\n // #endregion Settings\r\n\r\n};\r\n\r\n// Export object with the requests\r\nexport default ApplicationFormRequests;","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: Applications.ts */\r\n\r\n// Types\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\nimport { ISavedApplication } from '../../Types/Applications/ISavedApplication';\r\nimport { IApplicationForm } from '../../Types/Form/IApplicationForm';\r\n\r\n// Functions for requests\r\nconst ApplicationsRequests = {\r\n\r\n // #region ApplicationHandler\r\n getApplications(resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getApplications.name, '/Forms/List', 0 , resolver, resolveError);\r\n },\r\n // #endregion\r\n\r\n postDeleteSavedApplication(savedApplicationId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postDeleteSavedApplication.name, '/Forms/DeleteSavedApplication',\r\n savedApplicationId, resolver, resolveError);\r\n },\r\n\r\n postUpdateSavedApplication(savedApplication: ISavedApplication,\r\n components: IApplicationForm, resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postUpdateSavedApplication.name, '/Forms/UpdateSavedApplication',\r\n {\r\n components: components,\r\n savedApplication: savedApplication\r\n },\r\n resolver, resolveError);\r\n },\r\n getStatusSettings(resolver: (json: string) => void): void {\r\n Request.post(this.getStatusSettings.name, '/Settings/ApplicationStatus', null, resolver);\r\n },\r\n getSubmittedApplications(resolver: (json: string) => void): void {\r\n Request.post(this.getSubmittedApplications.name, '/Applications/GetSubmittedApplications', null, resolver);\r\n },\r\n};\r\n\r\n// Export object with the requests\r\nexport default ApplicationsRequests;","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: ApplicationFormView.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport moment from 'moment';\r\nimport React, { RefObject } from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\n// Core components\r\nimport Layout, { withLayout } from '@hedtech/powercampus-design-system/react/components/Layout';\r\nimport ConfirmationDialog from '@hedtech/powercampus-design-system/react/core/ConfirmationDialog';\r\n\r\n// Internal Components\r\nimport PaymentDetailModal from '../../Generic/PaymentDetailModal';\r\nimport ProcessPaymentModal from '../../Generic/ProcessPaymentModal';\r\nimport SignIn from '../../Generic/SignIn';\r\nimport SignUp from '../../Generic/SignUp';\r\nimport AddressSearchModal from './AddressSearchModal';\r\nimport ApplicationHandler from './ApplicationHandler';\r\nimport Attachments from './Attachments';\r\nimport ConfirmationSavedModal from './ConfirmationSavedModal';\r\nimport ETSSearchModal from './ETSSearchModal';\r\n\r\n// Generic components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Table, { TableBody, TableCell, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// #region Types\r\nimport { IAddress } from '../../../Types/Account/IAddress';\r\nimport { IAlert } from '@hedtech/powercampus-design-system/types/IAlert';\r\nimport { IApplication } from '../../../Types/Applications/IApplication';\r\nimport { IApplicationActivity } from '../../../Types/Applications/IApplicationActivity';\r\nimport { IApplicationAddress } from '../../../Types/Applications/IApplicationAddress';\r\nimport { IApplicationAttachment } from '../../../Types/Applications/IApplicationAttachment';\r\nimport { IApplicationEducation } from '../../../Types/Applications/IApplicationEducation';\r\nimport { IApplicationEmergencyContact } from '../../../Types/Applications/IApplicationEmergencyContact';\r\nimport { IApplicationEmployment } from '../../../Types/Applications/IApplicationEmployment';\r\nimport { IApplicationErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IApplicationForm } from '../../../Types/Form/IApplicationForm';\r\nimport { IApplicationFormResources } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\nimport { IApplicationIpeds } from '../../../Types/Applications/IApplicationIpeds';\r\nimport { IApplicationPhoneList } from '../../../Types/Applications/IApplicationPhoneList';\r\nimport { IApplicationProgram } from '../../../Types/Applications/IApplicationProgram';\r\nimport { IApplicationRelative } from '../../../Types/Applications/IApplicationRelative';\r\nimport { IApplicationResidency } from '../../../Types/Applications/IApplicationResidency';\r\nimport { IApplicationUserDefined } from '../../../Types/Applications/IApplicationUserDefined';\r\nimport { ICultures } from '@hedtech/powercampus-design-system/types/ICultures';\r\nimport { IDataForm } from '../../../Types/Form/IDataForm';\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IFieldForm } from '../../../Types/Form/IFieldForm';\r\nimport { IFieldsGroup } from '../../../Types/Form/IFieldsGroup';\r\nimport { IGroupErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IInstitution } from '../../../Types/Applications/IInstitution';\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IPaymentInfo } from '../../../Types/Payment/IPaymentInfo';\r\nimport { IPaymentTransaction } from '../../../Types/Payment/IPaymentTransaction';\r\nimport { ISavedApplication } from '../../../Types/Applications/ISavedApplication';\r\nimport { ITestScore } from '../../../Types/Applications/ITestScore';\r\nimport { PaymentOrigin } from '../../../Types/Enum/PaymentOrigin';\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\n// #endregion Types\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\n\r\n// Constants\r\nimport Constants from '@hedtech/powercampus-design-system/helpers/Constants';\r\n\r\n// Requests\r\nimport Requests from '../../../Requests/Admissions/ApplicationForm';\r\nimport RequestsApplication from '../../../Requests/Admissions/Applications';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\nimport LayoutStore from '@hedtech/powercampus-design-system/flux/stores/LayoutStore';\r\n// #endregion Imports\r\n\r\ninterface IApplicationFormState {\r\n // Address Search Modal\r\n addresses?: IAddress[];\r\n openAddressSearchModal: boolean;\r\n hasSearchZipCode: boolean;\r\n selectedZipCode?: string;\r\n\r\n // Account\r\n hasPersonId: boolean;\r\n showSignIn: boolean;\r\n showSignUp: boolean;\r\n\r\n // Application\r\n activeStep: number;\r\n application: IApplication;\r\n applicationId?: number;\r\n componentError: boolean;\r\n components?: IApplicationForm;\r\n cultures: ICultures;\r\n dateTimeCulture: string;\r\n errors: IApplicationErrors[];\r\n expanded: boolean | string;\r\n expansionPanelHeaders: string[];\r\n firstDayOfWeek: number;\r\n openNotAvailableModal: boolean;\r\n resources?: IApplicationFormResources;\r\n rowsPerPageOptions: number[];\r\n shortDatePattern: string;\r\n\r\n // Attachments\r\n attachments: IApplicationAttachment[];\r\n attachmentsTotalSize?: string;\r\n attachmentsTotalSizeNumber: number;\r\n fileId?: number;\r\n fileName?: string;\r\n fileSelector?: any;\r\n openRemoveAttachmentDialog: boolean;\r\n openSupportedFilesModal: boolean;\r\n showAttachments: boolean;\r\n totalNumberOfAttachments: number;\r\n\r\n // ETS Search Modal\r\n countries?: IDropDownOption[];\r\n institutions?: IInstitution[];\r\n openETSSearchModal: boolean;\r\n pageNumber: number;\r\n pageSize: number;\r\n selectedCity?: string;\r\n selectedCountry?: number;\r\n selectedEtsCode?: string;\r\n selectedFieldId?: string;\r\n selectedInstitutionName?: string;\r\n selectedState?: number;\r\n states?: IDropDownOption[];\r\n total: number;\r\n\r\n // Payment\r\n paymentDetailModalOpen: boolean;\r\n paymentInfo?: IPaymentInfo;\r\n paymentModalOpenFail: boolean;\r\n paymentModalOpenProcess: boolean;\r\n paymentModalOpenSuccess: boolean;\r\n paymentTransaction?: IPaymentTransaction;\r\n returnUrl?: string;\r\n\r\n // Save\r\n changeEmailText: boolean;\r\n confirmationMessage?: string;\r\n emailField?: string;\r\n emptyEmailField: boolean;\r\n invalidEmail: boolean;\r\n openConfirmationSavedModal: boolean;\r\n openEmailModal: boolean;\r\n saveMessage?: string;\r\n showSaveButton: boolean;\r\n token?: string;\r\n\r\n // Settings\r\n governmentIdFormat: string;\r\n\r\n // ReCatpcha\r\n isReCaptchaSubmitApplicationEnabled: boolean;\r\n reCaptchaError: boolean;\r\n reCaptchaSiteKey: string;\r\n uiCulture: string;\r\n}\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass ApplicationFormView extends React.Component {\r\n private idMainPage: string;\r\n private idModule: string;\r\n private idPage: string;\r\n private rowsPerPageOptions: number[];\r\n private reCaptchaRef: RefObject;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idMainPage = 'Applications';\r\n this.idModule = 'Admissions';\r\n this.idPage = 'ApplicationForm';\r\n this.rowsPerPageOptions = [5, 10, 15, 20, 25, 50];\r\n this.state = this.getInitialState();\r\n this.reCaptchaRef = React.createRef();\r\n // #endregion Initialize Variables and State\r\n\r\n // #region Bind State Management Listeners\r\n LayoutStore.addLayoutReadyListener(this.onLayoutReady);\r\n // #endregion State Management Listeners\r\n }\r\n\r\n private getInitialState(): IApplicationFormState {\r\n let resources: IApplicationFormResources | undefined;\r\n let isReCaptchaSubmitApplicationEnabled: boolean = false;\r\n\r\n let reCaptchaSiteKey: string = '';\r\n if (this.state) {\r\n resources = this.state.resources;\r\n isReCaptchaSubmitApplicationEnabled = this.state.isReCaptchaSubmitApplicationEnabled;\r\n reCaptchaSiteKey = this.state.reCaptchaSiteKey;\r\n }\r\n\r\n const cultures: ICultures = LayoutStore.getCultures();\r\n\r\n return {\r\n activeStep: 0,\r\n addresses: [],\r\n application: {\r\n addresses: [],\r\n education: [],\r\n employments: [],\r\n phones: [{ isPrimary: true }],\r\n testScores: [],\r\n userDefined: []\r\n },\r\n attachments: [],\r\n attachmentsTotalSizeNumber: 0,\r\n changeEmailText: true,\r\n componentError: false,\r\n components: undefined,\r\n cultures: LayoutStore.getCultures(),\r\n dateTimeCulture: cultures.dateTimeCulture,\r\n emptyEmailField: false,\r\n errors: [],\r\n expanded: false,\r\n expansionPanelHeaders: [],\r\n firstDayOfWeek: cultures.firstDayOfWeek,\r\n hasPersonId: false,\r\n hasSearchZipCode: false,\r\n institutions: [],\r\n invalidEmail: false,\r\n openAddressSearchModal: false,\r\n openConfirmationSavedModal: false,\r\n openEmailModal: false,\r\n openETSSearchModal: false,\r\n openNotAvailableModal: false,\r\n openRemoveAttachmentDialog: false,\r\n openSupportedFilesModal: false,\r\n pageNumber: 0,\r\n pageSize: 5,\r\n resources: resources,\r\n rowsPerPageOptions: [],\r\n shortDatePattern: cultures.shortDatePattern,\r\n showAttachments: false,\r\n showSaveButton: false,\r\n showSignIn: false,\r\n showSignUp: false,\r\n total: 0,\r\n totalNumberOfAttachments: 0,\r\n\r\n // Payment\r\n paymentDetailModalOpen: false,\r\n paymentModalOpenFail: false,\r\n paymentModalOpenProcess: false,\r\n paymentModalOpenSuccess: false,\r\n\r\n // Settings\r\n governmentIdFormat: '',\r\n\r\n // ReCaptcha\r\n isReCaptchaSubmitApplicationEnabled: isReCaptchaSubmitApplicationEnabled,\r\n reCaptchaError: false,\r\n reCaptchaSiteKey: reCaptchaSiteKey,\r\n uiCulture: LayoutStore.getCultures().uiCulture\r\n };\r\n }\r\n\r\n // #region Events\r\n // #region Payment\r\n private onClosePaymentDetailModal = (): void => {\r\n try {\r\n this.setState({\r\n paymentDetailModalOpen: false,\r\n paymentInfo: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClosePaymentDetailModal.name, e));\r\n }\r\n };\r\n\r\n private onClosePaymentModalProcess = (): void => {\r\n try {\r\n this.setState({\r\n paymentModalOpenProcess: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClosePaymentModalProcess.name, e));\r\n }\r\n };\r\n\r\n private onPay = (): void => {\r\n try {\r\n const {\r\n paymentInfo\r\n } = this.state;\r\n\r\n if (paymentInfo) {\r\n this.setState({\r\n paymentModalOpenProcess: true\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onPay.name, e));\r\n }\r\n };\r\n\r\n private onCloseFailedPayment = (): void => {\r\n try {\r\n window.location.href = `${Constants.webUrl}/Admissions/Applications`;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseFailedPayment.name, e));\r\n }\r\n };\r\n // #endregion Payment\r\n\r\n // #region Attachment\r\n private buildFileSelector = () => {\r\n try {\r\n const fileSelector = document.createElement('input');\r\n const {\r\n components\r\n } = this.state;\r\n if (components) {\r\n let supportedTypes: string = '';\r\n if (components.fileTypes) {\r\n components.fileTypes.forEach(fileType => {\r\n const newFileExt = fileType.fileExtension.replace(' ', '');\r\n const fileExtensions = newFileExt.split(';');\r\n fileExtensions.forEach(fileExt => {\r\n supportedTypes = supportedTypes + fileExt.replace('*.', '') + ',';\r\n });\r\n });\r\n fileSelector.setAttribute('type', 'file');\r\n fileSelector.setAttribute('files', supportedTypes);\r\n fileSelector.onchange = this.onChangeFile.bind(this);\r\n }\r\n }\r\n return fileSelector;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.buildFileSelector.name, e));\r\n return null;\r\n }\r\n };\r\n\r\n private getMediaTypeId = (fileExtension: string): number => {\r\n let mediaId: number = 0;\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n if (components && components.fileTypes) {\r\n components.fileTypes.forEach(fileType => {\r\n const newFileExt = fileType.fileExtension.replace(' ', '');\r\n const fileExtensions = newFileExt.split(';');\r\n fileExtensions.forEach(fileExt => {\r\n if (fileExt.replace('*.', '') === fileExtension) {\r\n mediaId = fileType.mediaTypeId;\r\n }\r\n });\r\n });\r\n }\r\n return mediaId;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.getMediaTypeId.name, e));\r\n return mediaId;\r\n }\r\n };\r\n\r\n private readUploadedFile = inputFile => {\r\n try {\r\n const temporaryFileReader = new FileReader();\r\n\r\n return new Promise(resolve => {\r\n temporaryFileReader.onload = () => {\r\n if (temporaryFileReader.result) {\r\n let encoded = temporaryFileReader.result.toString().replace(/^data:(.*,)?/, '');\r\n if ((encoded.length % 4) > 0) {\r\n encoded += '='.repeat(4 - (encoded.length % 4));\r\n }\r\n resolve(encoded);\r\n }\r\n };\r\n temporaryFileReader.readAsDataURL(inputFile);\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.readUploadedFile.name, e));\r\n return null;\r\n }\r\n };\r\n\r\n private onChangeFile = async event => {\r\n try {\r\n const {\r\n applicationId\r\n } = this.state;\r\n\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n const file = event.target.files[0];\r\n const fileName = file.name.split('.');\r\n const mediaId = this.getMediaTypeId(fileName[1]);\r\n if (mediaId !== 0 && applicationId) {\r\n const {\r\n attachmentsTotalSizeNumber,\r\n components,\r\n resources,\r\n totalNumberOfAttachments\r\n } = this.state;\r\n\r\n if (components && resources) {\r\n if (components.numberOfAttachments <= totalNumberOfAttachments) {\r\n LayoutActions.setAlert({\r\n message: Format.toString(resources.attachments.lblTotalAttachmentsError, [components.numberOfAttachments]),\r\n messageType: ResultType.warning\r\n } as IAlert);\r\n }\r\n else {\r\n const bytes = (file.size / 1048576).toFixed(5);\r\n if (Number(bytes) > Number(components.maxAttachmentSize)) {\r\n LayoutActions.setAlert({\r\n message: Format.toString(resources.attachments.lblAttachmentsSizeError, [components.maxAttachmentSize]),\r\n messageType: ResultType.warning\r\n } as IAlert);\r\n }\r\n else {\r\n if (Number(bytes) + Number(attachmentsTotalSizeNumber) > Number(components.maxAttachmentSize)) {\r\n LayoutActions.setAlert({\r\n message: Format.toString(resources.attachments.lblAllAttachmentsSizeError,\r\n [components.maxApplicationAttachmentSize]),\r\n messageType: ResultType.warning\r\n } as IAlert);\r\n }\r\n else {\r\n const fileContents = await this.readUploadedFile(file);\r\n const newFile: IApplicationAttachment = {\r\n applicationId: applicationId,\r\n attachmentTitle: fileName[0],\r\n extension: `.${fileName[1]}`,\r\n fileContent: fileContents,\r\n fileSize: file.size,\r\n mediaTypeId: mediaId\r\n };\r\n LayoutActions.setLoading(true);\r\n Requests.postCreateApplicationAttachment(newFile, this.resolveCreateAttachment, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeFile.name, e));\r\n }\r\n };\r\n\r\n private onClickOpenFolder = (event: React.MouseEvent) => {\r\n try {\r\n event.preventDefault();\r\n const {\r\n fileSelector\r\n } = this.state;\r\n fileSelector.click();\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickOpenFolder.name, e));\r\n }\r\n };\r\n\r\n private onClickContinue = () => {\r\n try {\r\n const {\r\n components,\r\n paymentInfo\r\n } = this.state;\r\n\r\n if (components) {\r\n if (paymentInfo) {\r\n const returnUrl =\r\n `${Constants.webUrl}/Admissions/ApplicationForm/${components.applicationFormId}`;\r\n this.setState({\r\n paymentDetailModalOpen: true,\r\n returnUrl: returnUrl,\r\n showAttachments: false\r\n });\r\n }\r\n else {\r\n components.isCompletedApplication = true;\r\n this.setState({\r\n components: components,\r\n showAttachments: false\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickContinue.name, e));\r\n }\r\n };\r\n\r\n private onClickInfo = () => {\r\n try {\r\n this.setState({\r\n openSupportedFilesModal: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickInfo.name, e));\r\n }\r\n };\r\n\r\n private onCloseSupportedFilesModal = () => {\r\n try {\r\n this.setState({\r\n openSupportedFilesModal: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseSupportedFilesModal.name, e));\r\n }\r\n };\r\n\r\n private onClickRemoveAttachmentButton = (event: any) => {\r\n try {\r\n const fieldButtonId: string[] = event.target.id.split('|');\r\n this.setState({\r\n fileId: Number(fieldButtonId[1]),\r\n fileName: fieldButtonId[2],\r\n openRemoveAttachmentDialog: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickRemoveAttachmentButton.name, e));\r\n }\r\n };\r\n\r\n private onClickRemoveAttachment = () => {\r\n try {\r\n const {\r\n fileId\r\n } = this.state;\r\n LayoutActions.setLoading(true);\r\n Requests.postDeleteApplicationAttachment(Number(fileId), this.resolveRemoveAttachment, this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickRemoveAttachment.name, e));\r\n }\r\n };\r\n\r\n private onCloseRemoveAttachmentModal = (): void => {\r\n try {\r\n this.setState({\r\n openRemoveAttachmentDialog: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseRemoveAttachmentModal.name, e));\r\n }\r\n };\r\n\r\n // #endregion Attachment\r\n\r\n // #region Account\r\n private onCloseSignIn = (): void => {\r\n try {\r\n this.setState({\r\n showSignIn: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseSignIn.name, e));\r\n }\r\n };\r\n\r\n private onCloseSignUp = (): void => {\r\n try {\r\n this.setState({\r\n showSignUp: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseSignUp.name, e));\r\n }\r\n };\r\n\r\n private onOpenSignIn = (): void => {\r\n try {\r\n this.setState({\r\n showSignIn: true,\r\n showSignUp: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onOpenSignIn.name, e));\r\n }\r\n };\r\n\r\n private onOpenSignUp = (): void => {\r\n try {\r\n this.setState({\r\n showSignIn: false,\r\n showSignUp: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onOpenSignUp.name, e));\r\n }\r\n };\r\n\r\n private onAfterSignUp = (userName?: string): void => {\r\n try {\r\n // After creation of new account user must be logged in\r\n LayoutStore.setIsAuthenticated(true);\r\n LayoutStore.setMenuOptions(undefined);\r\n if (userName) {\r\n this.setState({\r\n emailField: userName,\r\n showSignUp: false\r\n });\r\n this.onSaveEmailField();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onAfterSignUp.name, e));\r\n }\r\n };\r\n\r\n private onAfterSignIn = (): void => {\r\n try {\r\n this.setState({\r\n showSignIn: false\r\n });\r\n this.onSaveApplication();\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onAfterSignIn.name, e));\r\n }\r\n };\r\n // #endregion Account\r\n\r\n // #region Stepper\r\n private onBackStep = (): void => {\r\n try {\r\n const {\r\n activeStep\r\n } = this.state;\r\n\r\n this.setState({\r\n activeStep: activeStep - 1\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onBackStep.name, e));\r\n }\r\n };\r\n\r\n private onClickStep = (event: React.MouseEvent) => {\r\n try {\r\n const steps: string[] = event.currentTarget.id.split('|');\r\n this.setState({\r\n activeStep: Number(steps[1])\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickStep.name, e));\r\n }\r\n };\r\n\r\n private onNextStep = (): void => {\r\n try {\r\n const {\r\n activeStep\r\n } = this.state;\r\n\r\n this.setState({\r\n activeStep: activeStep + 1\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onNextStep.name, e));\r\n }\r\n };\r\n // #endregion Stepper\r\n\r\n // #region Address\r\n private onCloseAddressSearchModal = (): void => {\r\n try {\r\n this.setState({\r\n addresses: [],\r\n openAddressSearchModal: false,\r\n hasSearchZipCode: false,\r\n selectedZipCode: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseAddressSearchModal.name, e));\r\n }\r\n };\r\n\r\n private onClickZipCodeLink =\r\n (zipCode?: string, city?: string, stateProvinceId?: number, countryId?: number, countyId?: number) => (): void => {\r\n try {\r\n const {\r\n components,\r\n selectedFieldId\r\n } = this.state;\r\n\r\n if (selectedFieldId && components) {\r\n const fieldId: string[] = selectedFieldId.split('|');\r\n\r\n const fieldGroup: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n\r\n if (fieldId.length > 4) {\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCityId', true, city);\r\n this.assignFieldValue(fieldGroup, fieldId, 'stateProvinceId', true, stateProvinceId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'postalCodeId', true, zipCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCountyId', true, countyId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCountryId', true, countryId);\r\n }\r\n else {\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCityId', false, city);\r\n this.assignFieldValue(fieldGroup, fieldId, 'stateProvinceId', false, stateProvinceId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'postalCodeId', false, zipCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCountyId', false, countyId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCountryId', false, countryId);\r\n }\r\n }\r\n\r\n this.setState({\r\n openAddressSearchModal: false\r\n });\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.onClickZipCodeLink.name, e));\r\n }\r\n };\r\n\r\n private onChangeTextFieldAddressSearch = (event: any): void => {\r\n try {\r\n if (event.target.id && event.target.id !== '') {\r\n switch (event.target.id) {\r\n case 'txtZipCode':\r\n this.setState({\r\n selectedZipCode: event.target.value\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextFieldAddressSearch.name, e));\r\n }\r\n };\r\n\r\n private onClearAddress = (): void => {\r\n try {\r\n this.setState({\r\n addresses: [],\r\n hasSearchZipCode: false,\r\n selectedZipCode: undefined\r\n });\r\n }\r\n catch (e) {\r\n throw e;\r\n }\r\n };\r\n\r\n private onSearchAddress = (): void => {\r\n try {\r\n LayoutActions.setLoading(true);\r\n\r\n const {\r\n pageSize,\r\n selectedZipCode\r\n } = this.state;\r\n\r\n Requests.getAddresses(\r\n 0,\r\n pageSize,\r\n selectedZipCode,\r\n this.resolveGetAddress, this.logError);\r\n\r\n const {\r\n total\r\n } = this.state;\r\n\r\n if (total) {\r\n const previousSize = pageSize;\r\n // Fix 60\r\n this.setState({\r\n pageSize: 0\r\n }, () => {\r\n this.setState({\r\n pageNumber: 0,\r\n pageSize: previousSize\r\n });\r\n });\r\n }\r\n\r\n this.setState({\r\n hasSearchZipCode: true\r\n });\r\n }\r\n catch (e) {\r\n LayoutActions.setLoading(false);\r\n throw e;\r\n }\r\n };\r\n // #endregion Address\r\n\r\n // #region Education\r\n private onChangeTextFieldETSSearch = (event: any): void => {\r\n try {\r\n if (event.target.id && event.target.id !== '') {\r\n switch (event.target.id) {\r\n case 'txtEtsCode':\r\n this.setState({\r\n selectedEtsCode: event.target.value\r\n });\r\n break;\r\n case 'txtCity':\r\n this.setState({\r\n selectedCity: event.target.value\r\n });\r\n break;\r\n case 'txtInstitutionName':\r\n this.setState({\r\n selectedInstitutionName: event.target.value\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextFieldETSSearch.name, e));\r\n }\r\n };\r\n\r\n private onCloseETSSearchModal = (): void => {\r\n try {\r\n this.setState({\r\n institutions: [],\r\n openETSSearchModal: false,\r\n selectedCity: undefined,\r\n selectedCountry: undefined,\r\n selectedEtsCode: undefined,\r\n selectedInstitutionName: undefined,\r\n selectedState: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseETSSearchModal.name, e));\r\n }\r\n };\r\n\r\n private onChangeDropDownETSSearch = (optionSelected: IDropDownOption, id: string): void => {\r\n try {\r\n if (id && id !== '') {\r\n switch (id) {\r\n case 'ddlCountry':\r\n this.setState({\r\n selectedCountry: optionSelected.value === '' ? undefined :\r\n Number(optionSelected.value)\r\n });\r\n break;\r\n case 'ddlState':\r\n this.setState({\r\n selectedState: optionSelected.value === '' ? undefined :\r\n Number(optionSelected.value)\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeDropDownETSSearch.name, e));\r\n }\r\n };\r\n\r\n private onClearInstitution = (): void => {\r\n try {\r\n this.setState({\r\n institutions: [],\r\n selectedCity: undefined,\r\n selectedCountry: undefined,\r\n selectedEtsCode: undefined,\r\n selectedInstitutionName: undefined,\r\n selectedState: undefined\r\n });\r\n }\r\n catch (e) {\r\n throw e;\r\n }\r\n };\r\n\r\n private onSearchInstitution = (): void => {\r\n try {\r\n LayoutActions.setLoading(true);\r\n\r\n const {\r\n selectedCity,\r\n selectedEtsCode,\r\n selectedInstitutionName,\r\n selectedState,\r\n selectedCountry,\r\n pageSize\r\n } = this.state;\r\n\r\n Requests.getInstitutions(\r\n 0,\r\n pageSize,\r\n selectedInstitutionName,\r\n selectedEtsCode,\r\n selectedCity,\r\n selectedState,\r\n selectedCountry,\r\n this.resolveGetInstitutions, this.logError);\r\n\r\n const {\r\n total\r\n } = this.state;\r\n\r\n if (total) {\r\n const previousSize = pageSize;\r\n // Fix 60\r\n this.setState({\r\n pageSize: 0\r\n }, () => {\r\n this.setState({\r\n pageNumber: 0,\r\n pageSize: previousSize\r\n });\r\n });\r\n }\r\n }\r\n catch (e) {\r\n LayoutActions.setLoading(false);\r\n throw e;\r\n }\r\n };\r\n\r\n private onClickLink =\r\n (institutionName?: string, etsCode?: string, ficeCode?: string, city?: string, stateProvinceId?: number, countryId?: number) => (): void => {\r\n try {\r\n const {\r\n components,\r\n selectedFieldId\r\n } = this.state;\r\n\r\n if (selectedFieldId && components) {\r\n const fieldId: string[] = selectedFieldId.split('|');\r\n\r\n const fieldGroup: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n\r\n if (fieldId.length > 4) {\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationInstitutionName', true, institutionName);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationEtsCodeId', true, etsCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationFiceCode', true, ficeCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationCityId', true, city);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationStateId', true, stateProvinceId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationCountryId', true, countryId);\r\n }\r\n else {\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationInstitutionName', false, institutionName);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationEtsCodeId', false, etsCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationFiceCode', false, ficeCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationCityId', false, city);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationStateId', false, stateProvinceId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationCountryId', false, countryId);\r\n }\r\n }\r\n\r\n this.setState({\r\n openETSSearchModal: false\r\n });\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.onClickLink.name, e));\r\n }\r\n };\r\n // #endregion Education\r\n\r\n // #region Phone\r\n private onPrimaryButtonClick = (fieldId: string[], newComponents: IApplicationForm, value: any): IApplicationForm => {\r\n try {\r\n const phoneFields: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n let field: any = [];\r\n let numRow: number = 4;\r\n\r\n field = newComponents;\r\n phoneFields.fields.forEach(function (item, row) {\r\n const idFields: string[] = item.data.id.split('|');\r\n if (fieldId[0] === idFields[0]) {\r\n if (fieldId[3] !== idFields[3] || fieldId[4] !== idFields[4]) {\r\n item.value = '';\r\n }\r\n else {\r\n numRow = row;\r\n }\r\n }\r\n });\r\n\r\n field.steps[Number(fieldId[1])].fieldsGroups[fieldId[2]].fields[Number(numRow)].value = value;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveLayoutReady.name, e));\r\n }\r\n return newComponents;\r\n };\r\n // #endregion Phone\r\n\r\n // #region Submit and Save\r\n private onSaveApplication = (): void => {\r\n try {\r\n const {\r\n components,\r\n resources,\r\n token\r\n } = this.state;\r\n\r\n if (resources) {\r\n const applicationTop: HTMLElement | null = document.getElementById('applicationTop');\r\n if (applicationTop) {\r\n applicationTop.scrollIntoView();\r\n }\r\n LayoutActions.setLoading(true);\r\n if (components) {\r\n if (components && components.layoutId) {\r\n // Update saved application\r\n if (token) {\r\n if (components.person &&\r\n (components.person.email || components.person.temporaryEmail)) {\r\n const savedApplication: ISavedApplication = {\r\n applicationFormSettingId: components.applicationFormId,\r\n email: components.person.email ? components.person.email :\r\n components.person.temporaryEmail ? components.person.temporaryEmail : '',\r\n formLayoutId: components.layoutId,\r\n token: token\r\n };\r\n RequestsApplication.postUpdateSavedApplication(savedApplication,\r\n components, this.resolveSaveIncompleteApplication, this.logError);\r\n }\r\n }\r\n else {\r\n if (LayoutStore && !LayoutStore.getIsAuthenticated()) {\r\n // If person doesn't have a person id\r\n if (!components.person || !components.person.personId) {\r\n this.onOpenSignIn();\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n else {\r\n // If user has primary email use this to populate email confirmation modal.\r\n if (components.person && components.person.email) {\r\n this.setState({\r\n emailField: components.person.email,\r\n openEmailModal: true\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n else if (components.person && components.person.temporaryEmail) {\r\n this.onSaveEmailField();\r\n }\r\n // If user has not primary email and email exist in the form with some value use it.\r\n else {\r\n if (components) {\r\n let hasValueEmailField: boolean = false;\r\n components.steps.forEach(step => {\r\n step.fieldsGroups.forEach(fieldsGroup => {\r\n fieldsGroup.fields.forEach(field => {\r\n if (field.data.id === 'emailId') {\r\n if (field.value && !field.data.error) {\r\n this.setState({\r\n emailField: field.value,\r\n openEmailModal: true\r\n });\r\n hasValueEmailField = true;\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n });\r\n });\r\n });\r\n // If user has not primary email and email not exist in the form or is empty don't populate it.\r\n if (!hasValueEmailField) {\r\n this.setState({\r\n openEmailModal: true\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onSaveApplication.name, e));\r\n }\r\n };\r\n\r\n private onSaveEmailField = (): void => {\r\n try {\r\n LayoutActions.setLoading(true);\r\n\r\n const {\r\n components,\r\n emailField,\r\n invalidEmail\r\n } = this.state;\r\n\r\n if (!emailField &&\r\n components && components.person && !components.person.temporaryEmail) {\r\n this.setState({\r\n emptyEmailField: true\r\n });\r\n }\r\n else {\r\n if (!invalidEmail && components && components.person) {\r\n const savedApplication: ISavedApplication = {\r\n applicationFormSettingId: components.applicationFormId,\r\n email: emailField ? emailField :\r\n components.person.temporaryEmail ? components.person.temporaryEmail : '',\r\n formLayoutId: components.layoutId\r\n };\r\n Requests.postCreateSavedApplication(savedApplication, components, this.resolveSaveIncompleteApplication, this.logError);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextFieldModal.name, e));\r\n }\r\n };\r\n\r\n private onSubmit = (): void => {\r\n try {\r\n const {\r\n application,\r\n components,\r\n governmentIdFormat\r\n } = this.state;\r\n\r\n const applicationTop: HTMLElement | null = document.getElementById('applicationTop');\r\n if (applicationTop) {\r\n applicationTop.scrollIntoView();\r\n }\r\n\r\n if (components) {\r\n components.steps.forEach(step => {\r\n step.fieldsGroups.forEach(fieldsGroup => {\r\n fieldsGroup.fields.forEach(field => {\r\n let exist: boolean = false;\r\n if (field.componentType === 'Dropdown') {\r\n if (field.default && field.data.options) {\r\n field.data.options.forEach(option => {\r\n if (option.value.toString() === field.default.toString()) {\r\n exist = true;\r\n }\r\n });\r\n }\r\n if (exist) {\r\n field.value = field.value ? field.value : field.default;\r\n this.setApplicationValues(field.data.id, field.value);\r\n }\r\n else if (!field.default && field.value !== '') {\r\n this.setApplicationValues(field.data.id, field.value);\r\n }\r\n }\r\n else {\r\n field.value = field.value ? field.value : field.default;\r\n this.setApplicationValues(field.data.id, field.value);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n this.setState({\r\n components\r\n });\r\n\r\n const {\r\n isReCaptchaSubmitApplicationEnabled\r\n } = this.state;\r\n\r\n let reCaptchaResponse: string = '';\r\n if (isReCaptchaSubmitApplicationEnabled && this.reCaptchaRef?.current) {\r\n reCaptchaResponse = this.reCaptchaRef.current.getValue();\r\n this.setState({\r\n reCaptchaError: !Boolean(reCaptchaResponse)\r\n });\r\n }\r\n\r\n const allRequiredFields: boolean = this.reviewRequiredFields();\r\n if (!isReCaptchaSubmitApplicationEnabled || reCaptchaResponse) {\r\n this.setState({\r\n reCaptchaError: false\r\n });\r\n\r\n if (allRequiredFields) {\r\n\r\n // Remove non-alphanumeric characters from governmentId\r\n if (application.governmentId && governmentIdFormat) {\r\n let cleanGovernmentId: string = '';\r\n for (let i = 0; i < governmentIdFormat.length; i++) {\r\n if (governmentIdFormat[i] === 'X' || governmentIdFormat[i] === '#') {\r\n cleanGovernmentId += application.governmentId[i];\r\n }\r\n }\r\n application.governmentId = cleanGovernmentId;\r\n }\r\n\r\n if (application) {\r\n LayoutActions.showPageLoader();\r\n Requests.postSubmit(application, this.resolveSubmitApplication, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onSubmit.name, e));\r\n }\r\n };\r\n\r\n private onCloseEmailModal = (): void => {\r\n try {\r\n this.setState({\r\n openEmailModal: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseEmailModal.name, e));\r\n }\r\n };\r\n\r\n private onCloseNotAvailableModal = (): void => {\r\n try {\r\n window.location.assign(`${Constants.webUrl}/Admissions/Applications`);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseNotAvailableModal.name, e));\r\n }\r\n };\r\n\r\n private onCloseConfirmationSavedModal = (): void => {\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n if (components) {\r\n const confirmationIndex: number =\r\n components.fieldsGroups.findIndex(x => x.id === 'confirmationGroup');\r\n const finishButtonId: number =\r\n components.fieldsGroups[confirmationIndex].fields.findIndex(x => x.data.id === 'finishId');\r\n if (confirmationIndex > -1 && finishButtonId > -1) {\r\n const actionUrl: string | undefined = components.fieldsGroups[confirmationIndex].fields[finishButtonId].actionUrl;\r\n if (actionUrl) {\r\n window.location.assign(actionUrl);\r\n }\r\n else {\r\n window.location.assign(`${Constants.webUrl}/Admissions/Applications`);\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseConfirmationSavedModal.name, e));\r\n }\r\n };\r\n // #endregion Submit and Save\r\n\r\n // #region Change Fields Events\r\n private onChangeCheckBox = (event: any): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = event.target.id.split('|');\r\n const newComponents: IApplicationForm = components;\r\n const value: boolean = Boolean(event.target.checked);\r\n const evaluateAppJs = eval;\r\n\r\n if (fieldId.length < 5) {\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n const field: IFieldForm = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n\r\n if (field.isUserDefined && field.customScript) {\r\n if (value) {\r\n field.value = evaluateAppJs(field.customScript);\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n else {\r\n field.value = NaN;\r\n }\r\n }\r\n else {\r\n field.value = value ? value : undefined;\r\n }\r\n }\r\n }\r\n else {\r\n const field: IFieldForm | undefined =\r\n components.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].\r\n fields.find(x =>\r\n x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, fieldId[0].length) === fieldId[0]);\r\n if (field) {\r\n field.value = value;\r\n }\r\n }\r\n\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeCheckBox.name, e));\r\n }\r\n };\r\n\r\n private onChangeDateTimeField = (date: string, id: string, isValid: boolean): void => {\r\n try {\r\n const {\r\n application,\r\n components,\r\n cultures,\r\n resources,\r\n shortDatePattern\r\n } = this.state;\r\n\r\n if (id && id !== '' && application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = id.split('|');\r\n let fieldIndex: number = 0;\r\n if (fieldId[4]) {\r\n fieldIndex = Number(fieldId[4]) + 1;\r\n }\r\n let newComponents: IApplicationForm = components;\r\n const field = newComponents.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].\r\n fields[Number(fieldId[3])];\r\n\r\n const dateMinFormat: string =\r\n moment().add(-100, 'years').format(cultures.shortDatePattern.toUpperCase());\r\n const dateMaxFormat: string =\r\n moment().add(100, 'years').format(cultures.shortDatePattern.toUpperCase());\r\n\r\n switch (fieldId[0]) {\r\n case 'dateOfBirthId':\r\n app.dateOfBirth = date;\r\n newComponents = this.setValues(fieldId, newComponents, date);\r\n if (isValid) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n }\r\n else {\r\n if (date) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n }\r\n break;\r\n case 'visaExpirationDateId':\r\n app.visaExpiration = date;\r\n newComponents = this.setValues(fieldId, newComponents, date);\r\n if (isValid) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n }\r\n else {\r\n if (date) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n }\r\n break;\r\n case 'passportExpirationDateId':\r\n app.passportExpiration = date;\r\n newComponents = this.setValues(fieldId, newComponents, date);\r\n if (isValid) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n }\r\n else {\r\n if (date) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n }\r\n break;\r\n case 'testDateTakenId':\r\n const fieldTestTaken: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n if (!app.testScores[fieldIndex]) {\r\n app.testScores[fieldIndex] = {} as ITestScore;\r\n }\r\n app.testScores[fieldIndex].dateTaken = date;\r\n if (!isValid) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n if (fieldId.length > 4) {\r\n fieldTestTaken.fields.forEach(function (field) {\r\n const itemArrId: string[] = field.data.id.split('|');\r\n if (fieldId[3] === itemArrId[3] && fieldId[4] === itemArrId[4]) {\r\n if (!isValid) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n } else if (moment(date, shortDatePattern).toDate() > new Date()) {\r\n field.data.error = true;\r\n field.data.helperText =\r\n Format.toString(\r\n field.data.errorMessageRange, [\r\n newComponents.dateTimeMin,\r\n moment(new Date()).format(shortDatePattern.toUpperCase())]);\r\n } else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = date;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n fieldTestTaken.fields.forEach(function (field) {\r\n const itemArrId: string[] = field.data.id.split('|');\r\n if (fieldId[0] === itemArrId[0] && itemArrId.length === 1) {\r\n if (!isValid) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n } else if (moment(date).toDate() > new Date()) {\r\n field.data.error = true;\r\n field.data.helperText =\r\n Format.toString(\r\n field.data.errorMessageRange, [\r\n newComponents.dateTimeMin,\r\n moment(new Date()).format(shortDatePattern.toUpperCase())]);\r\n } else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = date;\r\n }\r\n }\r\n });\r\n }\r\n break;\r\n default:\r\n newComponents = this.setValues(fieldId, newComponents, date);\r\n if (isValid) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n }\r\n else {\r\n if (date) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n else {\r\n if (field.isRequired) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.onChangeDateTimeField.name, e));\r\n }\r\n };\r\n\r\n private onChangeDropDown = (optionSelected: IDropDownOption, id: string): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (id && id !== '' && application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = id.split('|');\r\n let fieldIndex: number = 0;\r\n if (fieldId[4]) {\r\n fieldIndex = Number(fieldId[4]) + 1;\r\n }\r\n\r\n let valueSelected: any | undefined;\r\n if (optionSelected.value) {\r\n switch (typeof optionSelected.value) {\r\n case 'string':\r\n valueSelected = String(optionSelected.value);\r\n break;\r\n case 'number':\r\n valueSelected = Number(optionSelected.value);\r\n break;\r\n default:\r\n valueSelected = optionSelected.value;\r\n break;\r\n }\r\n }\r\n\r\n switch (fieldId[0]) {\r\n case 'testId':\r\n if (!app.testScores[fieldIndex]) {\r\n app.testScores[fieldIndex] = {} as ITestScore;\r\n }\r\n app.testScores[fieldIndex].id = valueSelected;\r\n app.testScores[fieldIndex].typeId = 0;\r\n\r\n const testScoreComponents: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n const score: IFieldForm | undefined =\r\n testScoreComponents.find(f =>\r\n f.data.id.split('|')[0] === 'testScoreId' &&\r\n (f.data.id.split('|')[4] || '') === (fieldId[4] || ''));\r\n\r\n if (score && valueSelected && valueSelected !== '') {\r\n Requests.getValidateScoreType(\r\n application.applicationId || 0,\r\n app.testScores[fieldIndex].id,\r\n 'testScoreGroup',\r\n score.data.id,\r\n this.resolveValidateScore, this.logError);\r\n }\r\n break;\r\n case 'testTypeId':\r\n if (!app.testScores[fieldIndex]) {\r\n app.testScores[fieldIndex] = {} as ITestScore;\r\n }\r\n app.testScores[fieldIndex].typeId = valueSelected;\r\n break;\r\n case 'hispanicGroupId':\r\n if (components) {\r\n // Get fieldsGroup\r\n const fieldsGroup: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n // Get checkBoxList hispanicCheckboxListId index\r\n let checkBoxListIndex: number = -1;\r\n fieldsGroup.forEach((field, i) => {\r\n if (field.data.id.substr(0, 'hispanicCheckboxListId'.length) === 'hispanicCheckboxListId') {\r\n checkBoxListIndex = i;\r\n }\r\n });\r\n // Get checkBoxList hispanicCheckboxListId\r\n const checkBoxListField: IFieldForm =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[checkBoxListIndex];\r\n let ipedsList: IApplicationIpeds[] | undefined = application.ipeds;\r\n if (valueSelected === '1') {\r\n if (checkBoxListField) {\r\n // Add category in list\r\n const ipeds: IApplicationIpeds = { ipedsEthnicityId: undefined, ipedsFederalCategoryId: 1 };\r\n if (ipedsList) {\r\n const ipedIndex: number =\r\n ipedsList.findIndex(x => x.ipedsFederalCategoryId === 1);\r\n // Category was not found, add category\r\n if (ipedIndex === -1) {\r\n ipedsList.push(ipeds);\r\n }\r\n }\r\n // ipedsList was undefined so add a new item with category\r\n else {\r\n ipedsList = [ipeds];\r\n }\r\n checkBoxListField.value = undefined;\r\n }\r\n }\r\n if (valueSelected === '0') {\r\n if (checkBoxListField) {\r\n if (ipedsList && ipedsList.length > 0) {\r\n let index: number = -1;\r\n do {\r\n index = ipedsList.findIndex(x => x.ipedsFederalCategoryId === 1);\r\n if (index > -1) {\r\n ipedsList.splice(index, 1);\r\n }\r\n } while (index > -1);\r\n }\r\n checkBoxListField.value = undefined;\r\n }\r\n }\r\n if (valueSelected === undefined) {\r\n if (checkBoxListField) {\r\n if (ipedsList && ipedsList.length > 0) {\r\n let index: number = ipedsList.length;\r\n do {\r\n ipedsList.splice(index, 1);\r\n index--;\r\n } while (ipedsList.length > 0);\r\n }\r\n checkBoxListField.value = undefined;\r\n }\r\n }\r\n application.ipeds = ipedsList;\r\n this.setState({\r\n application: application,\r\n components: components\r\n });\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n let newComponents: IApplicationForm = components;\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n newComponents = this.setValues(fieldId, newComponents, valueSelected);\r\n\r\n const fieldGroup: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n const sectionFields: any = fieldGroup.fields.filter(x => (x.data.id.split('|')[4] || '') === (fieldId[4] || ''));\r\n\r\n sectionFields.forEach(field => {\r\n if (fieldId[0] === 'testId' && field.childField && valueSelected && valueSelected !== '' &&\r\n Number(valueSelected) > 0) {\r\n Requests.getChildOptions(\r\n field.childEndPoint,\r\n valueSelected || 0,\r\n fieldId[1],\r\n fieldId[2],\r\n field.childField,\r\n true,\r\n this.resolveGetChildOptions,\r\n this.logError,\r\n undefined);\r\n }\r\n if (fieldId[0] === 'activityTypeId' && field.childField && valueSelected && valueSelected !== '' &&\r\n Number(valueSelected) > 0) {\r\n Requests.getChildOptions(\r\n field.childEndPoint,\r\n valueSelected || 0,\r\n fieldId[1],\r\n fieldId[2],\r\n field.childField,\r\n true,\r\n this.resolveGetChildOptions,\r\n this.logError,\r\n Number(newComponents.applicationFormId));\r\n }\r\n if (fieldId[0] === 'campusOptionsId' && field.childField && valueSelected && valueSelected !== '' &&\r\n Number(valueSelected) > 0) {\r\n Requests.getChildOptions(\r\n field.childEndPoint,\r\n valueSelected || 0,\r\n fieldId[1],\r\n fieldId[2],\r\n field.childField,\r\n true,\r\n this.resolveGetChildOptions,\r\n this.logError,\r\n undefined);\r\n }\r\n });\r\n }\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeDropDown.name, e));\r\n }\r\n };\r\n\r\n private onChangeListCheckbox = (event: any): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n const fieldId: string[] = event.currentTarget.id.split('|');\r\n const app: IApplication = application;\r\n\r\n if (application && components) {\r\n const childField: string[] = event.target.id.split('|');\r\n if (childField[1] === 'noHispanicNestedCheckboxListId') {\r\n const field: IFieldForm =\r\n components.steps[Number(childField[2])].\r\n fieldsGroups[Number(childField[3])].\r\n fields[Number(childField[4])];\r\n if (!app.ipeds && field.value) {\r\n const fieldGroup: IFieldsGroup =\r\n components.steps[Number(childField[2])].\r\n fieldsGroups[Number(childField[3])];\r\n this.setIpedsValuesNestedCheckList(fieldGroup);\r\n }\r\n if (event.target.checked === true) {\r\n let ipedNew: IApplicationIpeds = { ipedsFederalCategoryId: 0 };\r\n let ipedIndex: number = -1;\r\n if (childField[0] === 'child') {\r\n ipedNew = {\r\n ipedsEthnicityId: Number(childField[7]),\r\n ipedsFederalCategoryId: Number(childField[6])\r\n };\r\n if (app.ipeds) {\r\n ipedIndex = app.ipeds.findIndex(x => x.ipedsEthnicityId === undefined &&\r\n x.ipedsFederalCategoryId === Number(childField[6]));\r\n }\r\n }\r\n else if (childField[0] === 'parent') {\r\n ipedNew = {\r\n ipedsEthnicityId: undefined,\r\n ipedsFederalCategoryId: Number(childField[6])\r\n };\r\n if (app.ipeds) {\r\n ipedIndex =\r\n app.ipeds.findIndex(x => x.ipedsFederalCategoryId ===\r\n Number(childField[6]));\r\n }\r\n }\r\n if (app.ipeds) {\r\n if (ipedIndex > -1) {\r\n app.ipeds[ipedIndex] = ipedNew;\r\n }\r\n else {\r\n app.ipeds.push(ipedNew);\r\n }\r\n }\r\n else {\r\n app.ipeds = [ipedNew];\r\n }\r\n }\r\n else {\r\n if (app.ipeds) {\r\n if (childField[0] === 'child') {\r\n const itemToRemove: number =\r\n app.ipeds.findIndex(x => x.ipedsEthnicityId === Number(childField[7]) &&\r\n x.ipedsFederalCategoryId === Number(childField[6]));\r\n app.ipeds.splice(itemToRemove, 1);\r\n }\r\n else if (childField[0] === 'parent') {\r\n let index: number = -1;\r\n do {\r\n index = app.ipeds.findIndex(x =>\r\n x.ipedsFederalCategoryId === Number(childField[6]));\r\n if (index > -1) {\r\n app.ipeds.splice(index, 1);\r\n }\r\n } while (index > -1);\r\n }\r\n }\r\n }\r\n if (childField && childField[2] && childField[3] && childField[4]) {\r\n const field: IFieldForm =\r\n components.steps[Number(childField[2])].\r\n fieldsGroups[Number(childField[3])].\r\n fields[Number(childField[4])];\r\n if (app.ipeds && app.ipeds.length === 0 && field.isRequired) {\r\n field.value = undefined;\r\n }\r\n else {\r\n // change value of field\r\n if (app.ipeds) {\r\n field.value = undefined;\r\n app.ipeds.forEach(iped => {\r\n if (iped.ipedsFederalCategoryId !== 1) {\r\n if (field.value) {\r\n field.value = field.value +\r\n `${iped.ipedsFederalCategoryId.toString()}$${iped.ipedsEthnicityId ?\r\n iped.ipedsEthnicityId.toString() : ''},`;\r\n }\r\n else {\r\n field.value =\r\n `${iped.ipedsFederalCategoryId.toString()}$${iped.ipedsEthnicityId ?\r\n iped.ipedsEthnicityId.toString() : ''},`;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n switch (fieldId[0]) {\r\n case 'campusId':\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: any =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (!app.campuses && field.value) {\r\n const fieldGroup =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n this.reviewCampus(fieldGroup);\r\n }\r\n }\r\n if (app.campuses) {\r\n const campusIndex: number = app.campuses.findIndex(x => x === Number(fieldId[4]));\r\n if (event.target.checked === true) {\r\n app.campuses.push(Number(fieldId[4]));\r\n }\r\n else {\r\n app.campuses.splice(campusIndex, 1);\r\n }\r\n }\r\n else {\r\n if (event.target.checked === true) {\r\n const campus: number = Number(fieldId[4]);\r\n app.campuses = [campus];\r\n }\r\n }\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: any =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (app.campuses && app.campuses.length === 0 && field.isRequired) {\r\n field.value = undefined;\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n else {\r\n if (app.campuses) {\r\n field.value = app.campuses.toString();\r\n }\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n }\r\n break;\r\n case 'interestId':\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: any =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (!app.academicInterests && field.value) {\r\n const fieldGroup =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n this.reviewAcademicInterest(fieldGroup);\r\n }\r\n }\r\n if (app.academicInterests) {\r\n const index: number = app.academicInterests.findIndex(x => x === Number(fieldId[4]));\r\n if (event.target.checked === true) {\r\n app.academicInterests.push(Number(fieldId[4]));\r\n }\r\n else {\r\n app.academicInterests.splice(index, 1);\r\n }\r\n }\r\n else {\r\n if (event.target.checked === true) {\r\n app.academicInterests = [Number(fieldId[4])];\r\n }\r\n }\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: any = components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (app.academicInterests && app.academicInterests.length === 0 && field.isRequired) {\r\n field.value = undefined;\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n else {\r\n if (app.academicInterests) {\r\n field.value = app.academicInterests.toString();\r\n }\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n }\r\n break;\r\n case 'hispanicCheckboxListId':\r\n const field: IFieldForm =\r\n components.steps[Number(childField[1])].\r\n fieldsGroups[Number(childField[2])].\r\n fields[Number(childField[3])];\r\n if (!app.ipeds && field.value) {\r\n const fieldGroup: IFieldsGroup =\r\n components.steps[Number(childField[1])].\r\n fieldsGroups[Number(childField[2])];\r\n this.setIpedsValuesCheckList(fieldGroup);\r\n }\r\n const ipedNew: IApplicationIpeds = {\r\n ipedsEthnicityId: Number(fieldId[4]),\r\n ipedsFederalCategoryId: 1\r\n };\r\n if (app.ipeds) {\r\n const ipedIndex: number = app.ipeds.findIndex(x => x.ipedsEthnicityId === undefined &&\r\n x.ipedsFederalCategoryId === 1);\r\n if (event.target.checked === true) {\r\n // when exists category 1 and null, record should be updated\r\n if (ipedIndex > -1) {\r\n app.ipeds[ipedIndex] = ipedNew;\r\n }\r\n else {\r\n app.ipeds.push(ipedNew);\r\n }\r\n }\r\n else {\r\n // remove item from list\r\n const itemToRemove: number =\r\n app.ipeds.findIndex(x => x.ipedsEthnicityId === Number(fieldId[4]) &&\r\n x.ipedsFederalCategoryId === 1);\r\n app.ipeds.splice(itemToRemove, 1);\r\n }\r\n }\r\n else {\r\n app.ipeds = [ipedNew];\r\n }\r\n // Select yes in radio buttons\r\n components.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].fields.forEach(field => {\r\n if (field.data.id === 'hispanicGroupId') {\r\n field.value = '1';\r\n }\r\n });\r\n // Add in the list of value id's selected\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: IFieldForm =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (app.ipeds && app.ipeds.length === 0 && field.isRequired) {\r\n field.value = undefined;\r\n }\r\n else {\r\n // change value of field\r\n if (app.ipeds) {\r\n const ipedsArray: string[] = [];\r\n app.ipeds.forEach(ethnicity => {\r\n if (ethnicity.ipedsFederalCategoryId === 1) {\r\n if (ethnicity.ipedsEthnicityId) {\r\n ipedsArray.push(ethnicity.ipedsEthnicityId.toString());\r\n }\r\n }\r\n });\r\n field.value = ipedsArray.toString();\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n this.setState({\r\n application: app,\r\n components: components\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeListCheckbox.name, e));\r\n }\r\n };\r\n\r\n private onChangeRadioGroup = (event: any, value: string): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (event.target.name && event.target.name !== '' && application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = event.target.name.split('|');\r\n let newComponents: IApplicationForm = components;\r\n\r\n switch (fieldId[0]) {\r\n case 'primaryPhoneId':\r\n newComponents = this.onPrimaryButtonClick(fieldId, newComponents, value);\r\n break;\r\n }\r\n\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n newComponents = this.setValues(fieldId, newComponents, value);\r\n\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.onChangeRadioGroup.name, e));\r\n }\r\n };\r\n\r\n private onChangeTextField = (event: any): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (event.target.id && event.target.id !== '' && application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = event.target.id.split('|');\r\n let fieldIndex: number = 0;\r\n if (fieldId[4]) {\r\n fieldIndex = Number(fieldId[4]) + 1;\r\n }\r\n let newComponents: IApplicationForm = components;\r\n switch (fieldId[0]) {\r\n case 'emailId':\r\n if (fieldId && fieldId[1] && fieldId[2]) {\r\n const field: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (!components.emailRegExpression || event.target.value.match(components.emailRegExpression)) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = event.target.value;\r\n app.email = event.target.value;\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageNotValid;\r\n }\r\n }\r\n break;\r\n case 'emergencyPhoneId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n break;\r\n case 'firstNameId':\r\n app.firstName = event.target.value;\r\n break;\r\n case 'formerLastNameId':\r\n app.formerLastName = event.target.value;\r\n break;\r\n case 'governmentId':\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n const field: any = newComponents.steps[Number(fieldId[1])]\r\n .fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n const governmentId: string = event.target.value;\r\n if (governmentId.includes('_')) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageFormat;\r\n }\r\n else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n app.governmentId = governmentId;\r\n }\r\n break;\r\n case 'lastNameId':\r\n app.lastName = event.target.value;\r\n break;\r\n case 'lastNamePrefixId':\r\n app.lastNamePrefix = event.target.value;\r\n break;\r\n case 'legalNameId':\r\n app.legalName = event.target.value;\r\n break;\r\n case 'middleNameId':\r\n app.middleName = event.target.value;\r\n break;\r\n case 'monthsInCountryId':\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n const field: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (Number(event.target.value) >= 0 && Number(event.target.value) <= 9999) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n app.monthsInCountry = Number(event.target.value);\r\n }\r\n else {\r\n if (Number(event.target.value) > 9999) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRange;\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageNumeric;\r\n }\r\n }\r\n }\r\n break;\r\n case 'nickNameId':\r\n app.nickname = event.target.value;\r\n break;\r\n case 'otherSourceId':\r\n app.otherSource = event.target.value;\r\n break;\r\n case 'testScoreId':\r\n const fieldGroupTestScore: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n\r\n if (!app.testScores[fieldIndex]) {\r\n app.testScores[fieldIndex] = {} as ITestScore;\r\n }\r\n app.testScores[fieldIndex].score = event.target.value;\r\n\r\n if (fieldId.length > 4) {\r\n fieldGroupTestScore.fields.forEach(function (field) {\r\n const itemArrId: string[] = field.data.id.split('|');\r\n if (fieldId[3] === itemArrId[3] && fieldId[4] === itemArrId[4]) {\r\n if (Number(event.target.value) > 9999) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRange;\r\n field.value = event.target.value;\r\n } else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = event.target.value;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n fieldGroupTestScore.fields.forEach(function (field) {\r\n const itemArrId: string[] = field.data.id.split('|');\r\n if (fieldId[0] === itemArrId[0] && itemArrId.length === 1) {\r\n if (Number(event.target.value) > 9999) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRange;\r\n field.value = event.target.value;\r\n } else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = event.target.value;\r\n }\r\n }\r\n });\r\n }\r\n break;\r\n case 'passportNumberId':\r\n app.passportNumber = event.target.value;\r\n break;\r\n case 'phoneNumberId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n break;\r\n case 'visaNumberId':\r\n app.visaNumber = event.target.value;\r\n break;\r\n case 'numberOfHoursPerWeekId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n let fieldHoursPerWeek: any;\r\n if (fieldId.length < 5) {\r\n fieldHoursPerWeek = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n }\r\n else {\r\n fieldHoursPerWeek = newComponents.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].fields.find(x =>\r\n x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, 'numberOfHoursPerWeekId'.length) ===\r\n 'numberOfHoursPerWeekId');\r\n }\r\n if (Number(event.target.value) > 168) {\r\n fieldHoursPerWeek.data.error = true;\r\n fieldHoursPerWeek.data.helperText = fieldHoursPerWeek.data.errorMessageRange;\r\n }\r\n else {\r\n fieldHoursPerWeek.data.error = false;\r\n fieldHoursPerWeek.data.helperText = '';\r\n }\r\n break;\r\n case 'numberOfWeeksPerYearId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n let fieldWeeksPerYear: any;\r\n if (fieldId.length < 5) {\r\n fieldWeeksPerYear = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n }\r\n else {\r\n fieldWeeksPerYear = newComponents.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].fields.find(x =>\r\n x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, 'numberOfWeeksPerYearId'.length) ===\r\n 'numberOfWeeksPerYearId');\r\n }\r\n if (Number(event.target.value) > 52) {\r\n fieldWeeksPerYear.data.error = true;\r\n fieldWeeksPerYear.data.helperText = fieldWeeksPerYear.data.errorMessageRange;\r\n }\r\n else {\r\n fieldWeeksPerYear.data.error = false;\r\n fieldWeeksPerYear.data.helperText = '';\r\n }\r\n break;\r\n case 'numberOfYearsId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n let fieldYears: any;\r\n if (fieldId.length < 5) {\r\n fieldYears = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n }\r\n else {\r\n fieldYears = newComponents.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].fields.find(x =>\r\n x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, 'numberOfYearsId'.length) ===\r\n 'numberOfYearsId');\r\n }\r\n if (Number(event.target.value) > 99) {\r\n fieldYears.data.error = true;\r\n fieldYears.data.helperText = fieldYears.data.errorMessageRange;\r\n }\r\n else {\r\n fieldYears.data.error = false;\r\n fieldYears.data.helperText = '';\r\n }\r\n break;\r\n }\r\n\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n newComponents = this.setValues(fieldId, newComponents, event.target.value);\r\n\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextField.name, e));\r\n }\r\n };\r\n\r\n private onChangeTextFieldModal = (event: any): void => {\r\n try {\r\n\r\n if (event.target.id && event.target.id !== '') {\r\n switch (event.target.id) {\r\n case 'txtEmailField':\r\n const {\r\n components\r\n } = this.state;\r\n if (components) {\r\n if (!components.emailRegExpression || event.target.value.match(components.emailRegExpression)) {\r\n this.setState({\r\n changeEmailText: false,\r\n emailField: event.target.value,\r\n invalidEmail: false\r\n });\r\n }\r\n else {\r\n this.setState({\r\n changeEmailText: false,\r\n emailField: event.target.value,\r\n invalidEmail: true\r\n });\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextFieldModal.name, e));\r\n }\r\n };\r\n\r\n private onClickButton = (event: React.MouseEvent): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (event.currentTarget.id && event.currentTarget.id !== '' && application && components) {\r\n const fieldId: string[] = event.currentTarget.id.split('|');\r\n\r\n switch (fieldId[0]) {\r\n case 'educationEtsCodeButtonId':\r\n this.setState({\r\n institutions: undefined,\r\n openETSSearchModal: true,\r\n selectedCity: undefined,\r\n selectedCountry: undefined,\r\n selectedEtsCode: undefined,\r\n selectedFieldId: event.currentTarget.id,\r\n selectedInstitutionName: undefined,\r\n selectedState: undefined\r\n });\r\n break;\r\n case 'postalCodeButtonId':\r\n // Get zip code\r\n let zipCode: string = '';\r\n const fieldGroup: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n let fieldIndex: number = -1;\r\n if (fieldId.length > 4) {\r\n fieldIndex = fieldGroup.findIndex(x => x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, 'postalCodeId'.length) === 'postalCodeId');\r\n }\r\n else {\r\n fieldIndex = fieldGroup.findIndex(x => x.data.id === 'postalCodeId');\r\n }\r\n if (fieldIndex > -1) {\r\n zipCode = components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].\r\n fields[fieldIndex].value;\r\n }\r\n\r\n this.setState({\r\n openAddressSearchModal: true,\r\n hasSearchZipCode: false,\r\n selectedFieldId: event.currentTarget.id,\r\n selectedZipCode: zipCode\r\n });\r\n\r\n LayoutActions.setLoading(true);\r\n\r\n const {\r\n pageSize\r\n } = this.state;\r\n\r\n Requests.getAddresses(\r\n 0,\r\n pageSize,\r\n zipCode,\r\n this.resolveGetAddress, this.logError);\r\n\r\n const {\r\n total\r\n } = this.state;\r\n\r\n if (total) {\r\n const previousSize = pageSize;\r\n // Fix 60\r\n this.setState({\r\n pageSize: 0\r\n }, () => {\r\n this.setState({\r\n pageNumber: 0,\r\n pageSize: previousSize\r\n });\r\n });\r\n }\r\n break;\r\n case 'finishId':\r\n // Get action of button\r\n const confirmationIndex: number =\r\n components.fieldsGroups.findIndex(x => x.id === 'confirmationGroup');\r\n const finishButtonId: number =\r\n components.fieldsGroups[confirmationIndex].fields.findIndex(x => x.data.id === 'finishId');\r\n if (confirmationIndex > -1 && finishButtonId > -1) {\r\n const actionUrl: string | undefined = components.fieldsGroups[confirmationIndex].fields[finishButtonId].actionUrl;\r\n if (actionUrl) {\r\n window.location.assign(actionUrl);\r\n }\r\n else {\r\n window.location.assign(`${Constants.webUrl}/Admissions/Applications`);\r\n }\r\n }\r\n break;\r\n default:\r\n const actionUrl: string | undefined =\r\n components.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].\r\n fields[Number(fieldId[3])].actionUrl;\r\n if (actionUrl) {\r\n window.location.assign(actionUrl);\r\n }\r\n else {\r\n window.location.assign(`${Constants.webUrl}/Admissions/Applications`);\r\n }\r\n break;\r\n }\r\n }\r\n } catch (e) {\r\n LayoutActions.setLoading(false);\r\n this.logError(LogData.fromException(this.onClickButton.name, e));\r\n }\r\n };\r\n // #endregion Change Fields Events\r\n\r\n // #region Pagination\r\n private getRowsPerPageOptions(maxValue: number): number[] {\r\n const rowsPerPageOptions: number[] = [];\r\n try {\r\n this.rowsPerPageOptions.forEach(option => {\r\n if (option < maxValue) {\r\n rowsPerPageOptions.push(option);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.getRowsPerPageOptions.name, e));\r\n }\r\n return rowsPerPageOptions;\r\n }\r\n\r\n private onChangePage = (_event: any, page: number): void => {\r\n try {\r\n const {\r\n selectedInstitutionName,\r\n selectedEtsCode,\r\n selectedCity,\r\n selectedState,\r\n selectedCountry,\r\n pageSize\r\n } = this.state;\r\n\r\n this.setState({\r\n pageNumber: page\r\n });\r\n\r\n LayoutActions.setLoading(true);\r\n Requests.getInstitutions(\r\n page,\r\n pageSize,\r\n selectedInstitutionName,\r\n selectedEtsCode,\r\n selectedCity,\r\n selectedState,\r\n selectedCountry,\r\n this.resolveGetInstitutions, this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePage.name, e));\r\n }\r\n };\r\n\r\n private onChangePageAddress = (_event: any, page: number): void => {\r\n try {\r\n const {\r\n selectedZipCode,\r\n pageSize\r\n } = this.state;\r\n\r\n this.setState({\r\n pageNumber: page\r\n });\r\n\r\n LayoutActions.setLoading(true);\r\n Requests.getAddresses(\r\n page,\r\n pageSize,\r\n selectedZipCode,\r\n this.resolveGetAddress, this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePage.name, e));\r\n }\r\n };\r\n\r\n private onChangeRowsPerPage = (event: any): void => {\r\n try {\r\n this.setState({\r\n pageNumber: 0,\r\n pageSize: Number(event.target.value)\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeRowsPerPage.name, e));\r\n }\r\n };\r\n // #endregion Pagination\r\n\r\n // #region Expansion\r\n private onAddMore = (fieldGroup: IFieldsGroup, stepIndex: number, fieldGroupIndex: number): void => {\r\n try {\r\n if (fieldGroup.id && fieldGroup.id !== '') {\r\n const {\r\n components,\r\n errors,\r\n expanded\r\n } = this.state;\r\n\r\n if (components) {\r\n if (components.expansionPanel === null) {\r\n components.expansionPanel = {};\r\n }\r\n switch (fieldGroup.id) {\r\n case 'employmentGroup':\r\n if (components.expansionPanel.employeeCount !== undefined) {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.employeeCount, 'employmentErrosId', expanded);\r\n\r\n components.expansionPanel.employeeCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, 'employmentErrosId', expanded);\r\n\r\n components.expansionPanel.employeeCount = 1;\r\n }\r\n break;\r\n case 'programOfStudyGroup':\r\n if (components.expansionPanel.programsCount !== undefined) {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.programsCount, 'programOfStudydErrorsId', expanded);\r\n\r\n components.expansionPanel.programsCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, 'programOfStudydErrorsId', expanded);\r\n\r\n components.expansionPanel.programsCount = 1;\r\n }\r\n break;\r\n case 'phoneGroup':\r\n if (components.expansionPanel.phoneCount !== undefined) {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.phoneCount, 'phoneErrorsId', expanded);\r\n\r\n components.expansionPanel.phoneCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, 'phoneErrorsId', expanded);\r\n\r\n components.expansionPanel.phoneCount = 1;\r\n }\r\n break;\r\n case 'testScoreGroup':\r\n const initialGroupLengthTS: number = fieldGroup.fields.length;\r\n\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, initialGroupLengthTS, 'testScoreErrorsId', expanded);\r\n\r\n const finalGroupLengthTS: number = fieldGroup.fields.length;\r\n const newSetTS: IFieldForm[] = fieldGroup.fields.slice(initialGroupLengthTS, finalGroupLengthTS);\r\n const parentDropDownTS: IFieldForm = newSetTS[newSetTS.findIndex(e => e.childField !== null)];\r\n const childDropDownTS:\r\n IFieldForm =\r\n newSetTS[newSetTS.findIndex(e => e.data.id.split('|')[0] === parentDropDownTS.childField)];\r\n childDropDownTS.data.options = [];\r\n parentDropDownTS.childField = childDropDownTS.data.id;\r\n\r\n if (components.expansionPanel.testScoresCount !== undefined) {\r\n components.expansionPanel.testScoresCount++;\r\n }\r\n else {\r\n components.expansionPanel.testScoresCount = 1;\r\n }\r\n break;\r\n case 'emergencyContactGroup':\r\n if (errors[stepIndex].groupErrors[fieldGroupIndex].sectionErrors.length < 1) {\r\n if (components.expansionPanel.emergencyContactsCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.emergencyContactsCount, '', expanded);\r\n\r\n components.expansionPanel.emergencyContactsCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n\r\n components.expansionPanel.emergencyContactsCount = 1;\r\n }\r\n }\r\n break;\r\n case 'addressInformationGroup':\r\n if (components.expansionPanel.addressessCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.addressessCount, '', expanded);\r\n\r\n components.expansionPanel.addressessCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n\r\n components.expansionPanel.addressessCount = 1;\r\n }\r\n break;\r\n case 'educationGroup':\r\n if (components.expansionPanel.educationCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.educationCount, '', expanded);\r\n\r\n components.expansionPanel.educationCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n\r\n components.expansionPanel.educationCount = 1;\r\n }\r\n break;\r\n case 'activityGroup':\r\n const initialGroupLength: number = fieldGroup.fields.length;\r\n\r\n if (components.expansionPanel.activityCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.activityCount, '', expanded);\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n }\r\n\r\n const finalGroupLength: number = fieldGroup.fields.length;\r\n const newSet: IFieldForm[] = fieldGroup.fields.slice(initialGroupLength, finalGroupLength);\r\n const parentDropDown: IFieldForm = newSet[newSet.findIndex(e => e.childField !== null)];\r\n const childDropDown: IFieldForm = newSet[newSet.findIndex(e => e.data.id.split('|')[0] === parentDropDown.childField)];\r\n childDropDown.data.options = [];\r\n parentDropDown.childField = childDropDown.data.id;\r\n\r\n if (components.expansionPanel.activityCount !== undefined) {\r\n components.expansionPanel.activityCount++;\r\n }\r\n else {\r\n components.expansionPanel.activityCount = 1;\r\n }\r\n break;\r\n case 'relativesGroup':\r\n if (components.expansionPanel.relativesCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.relativesCount, '', expanded);\r\n\r\n components.expansionPanel.relativesCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n\r\n components.expansionPanel.relativesCount = 1;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onAddMore.name, e));\r\n }\r\n };\r\n\r\n private onAddDeleteButton =\r\n (fieldGroup: IFieldsGroup, stepIndex: number, fieldGroupIndex: number, groupLength: number, sectionNumber: number): void => {\r\n try {\r\n const data: IDataForm = {\r\n id: `deleteIcon|${stepIndex}|${fieldGroupIndex}|${groupLength}|${sectionNumber}`,\r\n modified: true,\r\n section: sectionNumber\r\n };\r\n\r\n const deleteButton: IFieldForm = {\r\n componentType: 'DeleteIconButton',\r\n data: data,\r\n isNumeric: false,\r\n isRequired: false,\r\n onClick: this.onDeleteItem,\r\n value: ''\r\n };\r\n\r\n fieldGroup.fields.push(deleteButton);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onAddDeleteButton.name, e));\r\n }\r\n };\r\n\r\n private onChangeExpansionPanel = (panelId: string) => (): void => {\r\n try {\r\n this.setState({\r\n expanded: panelId\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeExpansionPanel.name, e));\r\n }\r\n };\r\n\r\n private onDeleteItem = (event: any): void => {\r\n try {\r\n const {\r\n errors,\r\n components\r\n } = this.state;\r\n\r\n if (components) {\r\n if (event.currentTarget.id) {\r\n const buttonId: string[] = event.currentTarget.id.split('|');\r\n const componentName: string = components.steps[buttonId[1]].fieldsGroups[buttonId[2]].id;\r\n const fields: IFieldForm[] = components.steps[buttonId[1]].fieldsGroups[buttonId[2]].fields;\r\n if (fields) {\r\n let fieldIndex: number;\r\n do {\r\n fieldIndex = fields.findIndex(x => x.data.section === Number(buttonId[4]));\r\n if (fieldIndex > -1) {\r\n fields.splice(fieldIndex, 1);\r\n }\r\n } while (fieldIndex > -1);\r\n }\r\n components.steps[Number(buttonId[1])].fieldsGroups[Number(buttonId[2])].fields = fields;\r\n\r\n // Delete section from sectionErrors\r\n const sectionIndex = errors[Number(buttonId[1])].groupErrors[Number(buttonId[2])].sectionErrors.findIndex(\r\n section => section.sectionIndex === Number(buttonId[4]));\r\n if (sectionIndex > -1) {\r\n errors[Number(buttonId[1])].groupErrors[Number(buttonId[2])].sectionErrors.splice(sectionIndex, 1);\r\n }\r\n\r\n switch (componentName) {\r\n case 'phoneGroup':\r\n // Search for primary selected in phone group\r\n const primaryPhoneField: IFieldForm[] = components.steps[buttonId[1]].fieldsGroups[buttonId[2]]\r\n .fields.filter(x => x.data.id.substr(0, 'primaryPhoneId'.length) === 'primaryPhoneId' && x.value === '1');\r\n // If doesn't exist, select first item as primary\r\n if (primaryPhoneField.length === 0) {\r\n const firstPrimaryPhoneField: number = components.steps[buttonId[1]].fieldsGroups[buttonId[2]]\r\n .fields.findIndex(x => x.data.id === 'primaryPhoneId');\r\n if (firstPrimaryPhoneField > -1) {\r\n components.steps[buttonId[1]].fieldsGroups[buttonId[2]]\r\n .fields[firstPrimaryPhoneField].value = '1';\r\n }\r\n }\r\n break;\r\n case 'testScoreGroup':\r\n const {\r\n application\r\n } = this.state;\r\n application.testScores[Number(buttonId[3]) + 1] = {};\r\n this.setState({\r\n application: application\r\n });\r\n break;\r\n }\r\n const fieldGroup: IFieldsGroup =\r\n components.steps[buttonId[1]].fieldsGroups[buttonId[2]];\r\n let maxAdd: number;\r\n if (fieldGroup.maximumAllowed) {\r\n maxAdd = Number(fieldGroup.maximumAllowed) - 1;\r\n }\r\n else {\r\n maxAdd = 99;\r\n }\r\n if (errors[buttonId[1]].groupErrors[buttonId[2]].sectionErrors.length < maxAdd) {\r\n // Add more button if it was remove\r\n components.steps[buttonId[1]].fieldsGroups[buttonId[2]].isMultiple = true;\r\n }\r\n }\r\n\r\n this.setState({\r\n components: components,\r\n errors: errors\r\n });\r\n\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onDeleteItem.name, e));\r\n }\r\n };\r\n // #endregion Expansion\r\n\r\n // #region ReCaptcha\r\n private onRecaptchaChange = (token: any): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: !Boolean(token)\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onRecaptchaChange.name, e));\r\n }\r\n };\r\n\r\n private onReCaptchaError = (): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onReCaptchaError.name, e));\r\n }\r\n };\r\n // #endregion ReCaptcha\r\n // #endregion Events\r\n\r\n // #region Functions\r\n private assignFieldValue =\r\n (fieldGroup: IFieldForm[], fieldId: string[], fieldIdName: string, isSectionField: boolean, value?: any): void => {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n if (components) {\r\n let fieldIndex: number = 1;\r\n if (isSectionField) {\r\n fieldIndex = fieldGroup.findIndex(x => x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, fieldIdName.length) === fieldIdName);\r\n }\r\n else {\r\n fieldIndex = fieldGroup.findIndex(x => x.data.id === fieldIdName);\r\n }\r\n if (fieldIndex > -1) {\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].\r\n fields[fieldIndex].value = value;\r\n }\r\n }\r\n };\r\n\r\n private cleanErrorMessages = (fieldId: string[], newComponents: IApplicationForm): IApplicationForm => {\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n let field: IFieldForm | undefined;\r\n\r\n if (fieldId.length > 4) {\r\n const fieldGroup: IFieldForm[] =\r\n newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n field =\r\n fieldGroup.find(x => x.data.id.split('|')[3] === fieldId[3] && x.data.id.split('|')[4] === fieldId[4]);\r\n }\r\n else {\r\n field =\r\n newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n }\r\n\r\n if (field !== undefined) {\r\n if ((field.data.errorMessageDuplicate === undefined ||\r\n field.data.errorMessageDuplicate === null) &&\r\n (field.data.errorMessageFormat === undefined ||\r\n field.data.errorMessageFormat === null) &&\r\n (field.data.errorMessageNotValid === undefined ||\r\n field.data.errorMessageNotValid === null) &&\r\n (field.data.errorMessageNumeric === undefined ||\r\n field.data.errorMessageNumeric === null) &&\r\n (field.data.errorMessagePrimary === undefined ||\r\n field.data.errorMessagePrimary === null) &&\r\n (field.data.errorMessageRange === undefined ||\r\n field.data.errorMessageRange === null)) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n }\r\n }\r\n return newComponents;\r\n };\r\n\r\n private copyField =\r\n (id: string, stepIndex: number, fieldGroupIndex: number, groupLength: number, sectionNumber: number, components: IApplicationForm): IApplicationForm => {\r\n try {\r\n const fields: any =\r\n components.steps[stepIndex].fieldsGroups[fieldGroupIndex].fields;\r\n const fieldIndex: number =\r\n fields.findIndex(x => x.data.id === id);\r\n\r\n const copiedField: IFieldForm = fields[fieldIndex];\r\n const newField: IFieldForm = JSON.parse(JSON.stringify(copiedField));\r\n\r\n newField.data.id =\r\n `${id}|${stepIndex}|${fieldGroupIndex}|${groupLength}|${sectionNumber}`;\r\n let exist: boolean = false;\r\n if (copiedField.componentType === 'Dropdown') {\r\n if (copiedField.default && copiedField.data.options) {\r\n copiedField.data.options.forEach(option => {\r\n if (option.value.toString() === copiedField.default.toString()) {\r\n exist = true;\r\n }\r\n });\r\n }\r\n if (exist) {\r\n newField.value = copiedField.default;\r\n }\r\n else {\r\n newField.value = '';\r\n }\r\n }\r\n else {\r\n newField.value = copiedField.default ? copiedField.default : '';\r\n }\r\n newField.data.error = false;\r\n newField.data.helperText = '';\r\n newField.data.modified = true;\r\n newField.data.section = sectionNumber;\r\n fields.push(newField);\r\n components.steps[stepIndex].fieldsGroups[fieldGroupIndex].fields = fields;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.copyField.name, e));\r\n }\r\n return components;\r\n };\r\n\r\n private createNewSection =\r\n (components: IApplicationForm, fieldGroup: IFieldsGroup, errors: IApplicationErrors[], stepIndex: number, fieldGroupIndex: number, count: number, errorTexId: string, expanded):\r\n void => {\r\n const groupLength: number = fieldGroup.fields.length;\r\n /* Initialization of SectionErrors in errors state variable and set of\r\n * SectionIndex = sectionErrors.length -1; \r\n */\r\n const sectionIndex = errors[stepIndex].groupErrors[fieldGroupIndex].sectionErrors.push(\r\n { sectionIndex: count, isSectionError: false, fieldsErrors: [] }) - 1;\r\n\r\n fieldGroup.fields.forEach((field, i) => {\r\n if (!field.data.modified) {\r\n if (field.data.id !== errorTexId) {\r\n components = this.copyField(field.data.id, stepIndex,\r\n fieldGroupIndex, (groupLength - 1) + i, count, components);\r\n }\r\n // Initialization of FieldErrors in errors state variable\r\n errors[stepIndex].groupErrors[fieldGroupIndex].sectionErrors[sectionIndex].fieldsErrors.push(\r\n { fieldId: field.data.id, isFieldError: false }\r\n );\r\n }\r\n });\r\n\r\n this.onAddDeleteButton(fieldGroup, stepIndex, fieldGroupIndex, (groupLength - 1), count);\r\n\r\n let maxAdd: number;\r\n if (fieldGroup.maximumAllowed) {\r\n maxAdd = Number(fieldGroup.maximumAllowed) - 1;\r\n }\r\n else {\r\n maxAdd = 99;\r\n }\r\n if (errors && errors[stepIndex].groupErrors[fieldGroupIndex].sectionErrors.length < maxAdd) {\r\n fieldGroup.isMultiple = true;\r\n }\r\n else {\r\n fieldGroup.isMultiple = false;\r\n }\r\n\r\n this.setState({\r\n components: components,\r\n errors: errors,\r\n expanded: fieldGroup.isExpansionPanel ?\r\n `panel|${stepIndex}|${fieldGroupIndex}|${count}` : expanded\r\n });\r\n };\r\n\r\n private reviewRequiredFields = (): boolean => {\r\n const {\r\n application,\r\n components,\r\n errors\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n if (components) {\r\n let programsValid: boolean = true;\r\n let testScoresValid: boolean = true;\r\n let validPhones: boolean = true;\r\n let isValidEmploymentSection: boolean = true;\r\n let emergencyContactsValid: boolean = true;\r\n let ipedsValid: boolean = true;\r\n let addressValid: boolean = true;\r\n let userDefinedValid: boolean = true;\r\n let educationValid: boolean = true;\r\n let activityValid: boolean = true;\r\n let relativeValid: boolean = true;\r\n let residencyValid: boolean = true;\r\n\r\n let ids: string[] = [];\r\n let fieldSectionIndex: number;\r\n let fieldId: string;\r\n let sectionErrorIndex: number;\r\n let fieldErrorIndex: number;\r\n\r\n components.steps.forEach((step, stepIndex) => {\r\n fieldErrorIndex = -1;\r\n step.fieldsGroups.forEach((fieldsGroup, groupIndex) => {\r\n fieldsGroup.fields.forEach(field => {\r\n if (field.isRequired && !field.value) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n isValid = false;\r\n } else if (field.isNumeric && String(field.value).length > 0 && isNaN(Number(field.value))) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageNumeric;\r\n isValid = false;\r\n } else if (field.isRequired && field.value && field.componentType === 'DatePicker') {\r\n const date = moment(field.value, 'YYYY-MM-DD');\r\n const isDateValid: boolean = date.isValid();\r\n const minDate = new Date(moment().add(-100, 'years').toDate());\r\n const maxDate = new Date(moment().add(+100, 'years').toDate());\r\n\r\n const isDateInRange: boolean =\r\n new Date(moment(field.value).toDate()) >= minDate &&\r\n new Date(moment(field.value).toDate()) <= maxDate;\r\n if (!isDateValid || !isDateInRange) {\r\n field.value = undefined;\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n isValid = false;\r\n }\r\n if (isDateValid && isDateInRange) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n } else if (field.value && field.componentType === 'DatePicker') {\r\n const date = moment(field.value, 'YYYY-MM-DD');\r\n const isDateValid: boolean = date.isValid();\r\n const minDate = new Date(moment().add(-100, 'years').toDate());\r\n const maxDate = new Date(moment().add(+100, 'years').toDate());\r\n\r\n const isDateInRange: boolean =\r\n new Date(moment(field.value).toDate()) >= minDate &&\r\n new Date(moment(field.value).toDate()) <= maxDate;\r\n if (isDateValid && !isDateInRange) {\r\n field.value = undefined;\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n isValid = false;\r\n }\r\n }\r\n else if (field.parentId == 'governmentIdGroup' && field.data.error) {\r\n isValid = false;\r\n }\r\n else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n });\r\n\r\n // init counts\r\n if (!components.expansionPanel) {\r\n components.expansionPanel = {};\r\n components.expansionPanel.activityCount = components.expansionPanel.activityCount ?\r\n components.expansionPanel.activityCount : 0;\r\n\r\n components.expansionPanel.addressessCount = components.expansionPanel.addressessCount ?\r\n components.expansionPanel.addressessCount : 0;\r\n\r\n components.expansionPanel.educationCount = components.expansionPanel.educationCount ?\r\n components.expansionPanel.educationCount : 0;\r\n\r\n components.expansionPanel.emergencyContactsCount = components.expansionPanel.emergencyContactsCount ?\r\n components.expansionPanel.emergencyContactsCount : 0;\r\n\r\n components.expansionPanel.employeeCount = components.expansionPanel.employeeCount ?\r\n components.expansionPanel.employeeCount : 0;\r\n\r\n components.expansionPanel.phoneCount = components.expansionPanel.phoneCount ?\r\n components.expansionPanel.phoneCount : 0;\r\n\r\n components.expansionPanel.programsCount = components.expansionPanel.programsCount ?\r\n components.expansionPanel.programsCount : 0;\r\n\r\n components.expansionPanel.relativesCount = components.expansionPanel.relativesCount ?\r\n components.expansionPanel.relativesCount : 0;\r\n\r\n components.expansionPanel.testScoresCount = components.expansionPanel.testScoresCount ?\r\n components.expansionPanel.testScoresCount : 0;\r\n }\r\n\r\n // #region Components Validations\r\n\r\n // #region Programs\r\n if (fieldsGroup.id === 'programOfStudyGroup') {\r\n programsValid = this.reviewPrograms(fieldsGroup);\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'programOfStudydErrorsId');\r\n if (!programsValid) {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = true;\r\n }\r\n }\r\n else {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = false;\r\n fieldsGroup.fields[textErrorIndex].data.label = '';\r\n }\r\n }\r\n }\r\n // #endregion Programs\r\n\r\n // #region TestScores\r\n if (fieldsGroup.id === 'testScoreGroup') {\r\n const filteredControls: IFieldForm[] =\r\n fieldsGroup.fields.filter(f => !(f.data.id.includes('deleteIcon') || f.data.id.includes('testScoreErrorsId')));\r\n const groupedControls: any = filteredControls.reduce(function (r, a) {\r\n const key: string | undefined = a.data.id.split('|')[4];\r\n let index: number = 0;\r\n if (!key) {\r\n index = 0;\r\n } else {\r\n index = Number(key) + 1;\r\n }\r\n r[index] = r[index] || [];\r\n r[index].push(a);\r\n return r;\r\n }, Object.create(null));\r\n\r\n const messageErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'testScoreErrorsId');\r\n testScoresValid = this.reviewTestScores(groupedControls);\r\n if (!testScoresValid) {\r\n if (messageErrorIndex > -1) {\r\n fieldsGroup.fields[messageErrorIndex].data.error = true;\r\n fieldsGroup.fields[messageErrorIndex].data.label = fieldsGroup.errorMessageDuplicate;\r\n }\r\n }\r\n else {\r\n if (messageErrorIndex > -1) {\r\n fieldsGroup.fields[messageErrorIndex].data.error = false;\r\n fieldsGroup.fields[messageErrorIndex].data.label = '';\r\n }\r\n }\r\n\r\n // Validate testscore completeness\r\n if (testScoresValid && !filteredControls.some(f => f.data.error === true)) {\r\n testScoresValid = this.reviewTestScoreCompleteness(groupedControls);\r\n\r\n if (!testScoresValid) {\r\n if (messageErrorIndex > -1) {\r\n fieldsGroup.fields[messageErrorIndex].data.error = true;\r\n fieldsGroup.fields[messageErrorIndex].data.label = fieldsGroup.errorMessageRequired;\r\n }\r\n }\r\n else {\r\n if (messageErrorIndex > -1) {\r\n fieldsGroup.fields[messageErrorIndex].data.error = false;\r\n fieldsGroup.fields[messageErrorIndex].data.label = '';\r\n }\r\n }\r\n }\r\n\r\n // removes empty test scores\r\n for (let i: number = application.testScores.length; i >= 0; i--) {\r\n if (application.testScores[i]) {\r\n if (!application.testScores[i].id) {\r\n application.testScores.splice(i, 1);\r\n }\r\n } else {\r\n application.testScores.splice(i, 1);\r\n }\r\n }\r\n }\r\n // #endregion TestScores\r\n\r\n // #region Phones\r\n if (fieldsGroup.id === 'phoneGroup') {\r\n validPhones = this.reviewPhoneGroup(fieldsGroup);\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'phoneErrorsId');\r\n if (!validPhones) {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = true;\r\n }\r\n }\r\n else {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = false;\r\n fieldsGroup.fields[textErrorIndex].data.label = '';\r\n }\r\n }\r\n }\r\n // #endregion Phones\r\n\r\n // #region Ipeds\r\n if (fieldsGroup.id === 'ipedsGroup') {\r\n ipedsValid = this.reviewIpeds(fieldsGroup);\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'ipedsErrorsId');\r\n if (!ipedsValid) {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = true;\r\n }\r\n }\r\n else {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = false;\r\n fieldsGroup.fields[textErrorIndex].data.label = '';\r\n }\r\n }\r\n }\r\n // #endregion Ipeds\r\n\r\n // #region Employment\r\n if (fieldsGroup.id === 'employmentGroup') {\r\n isValidEmploymentSection = this.reviewEmployment(fieldsGroup);\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n if (!isValidEmploymentSection) {\r\n field.data.error = true;\r\n }\r\n else {\r\n field.data.error = false;\r\n field.data.label = '';\r\n }\r\n });\r\n isValid = !isValidEmploymentSection ? false : isValid;\r\n }\r\n // #endregion Employment\r\n\r\n // #region EmergencyContacts\r\n if (fieldsGroup.id === 'emergencyContactGroup') {\r\n emergencyContactsValid = this.reviewEmergencyContacts(fieldsGroup);\r\n isValid = !emergencyContactsValid ? false : isValid;\r\n }\r\n // #endregion EmergencyContacts\r\n\r\n // #region Address\r\n if (fieldsGroup.id === 'addressInformationGroup') {\r\n addressValid = this.reviewAddress(fieldsGroup);\r\n isValid = !addressValid ? false : isValid;\r\n }\r\n // #endregion Address\r\n\r\n // #region UserDefinedFields\r\n if (fieldsGroup.isCustom) {\r\n userDefinedValid = this.reviewUserDefined(fieldsGroup);\r\n isValid = !userDefinedValid ? false : isValid;\r\n }\r\n // #endregion UserDefinedFields\r\n\r\n // #region Education\r\n if (fieldsGroup.id === 'educationGroup') {\r\n educationValid = this.reviewEducation(fieldsGroup);\r\n isValid = !educationValid ? false : isValid;\r\n }\r\n // #endregion Education\r\n\r\n // #region Activities\r\n if (fieldsGroup.id === 'activityGroup') {\r\n activityValid = this.reviewActivities(fieldsGroup);\r\n }\r\n // #endregion Activities\r\n\r\n // #region Relatives\r\n if (fieldsGroup.id === 'relativesGroup') {\r\n relativeValid = this.reviewRelatives(fieldsGroup);\r\n isValid = !relativeValid ? false : isValid;\r\n }\r\n // #endregion Relatives\r\n\r\n // #region Residency\r\n if (fieldsGroup.id === 'residencyGroup') {\r\n residencyValid = this.reviewResidency(fieldsGroup);\r\n isValid = !residencyValid ? false : isValid;\r\n }\r\n // #endregion Residency\r\n\r\n // #region Campuses\r\n if (fieldsGroup.id === 'campusGroup') {\r\n this.reviewCampus(fieldsGroup);\r\n }\r\n // #endregion Campuses\r\n\r\n // #region Academic Interest\r\n if (fieldsGroup.id === 'interestGroup') {\r\n this.reviewAcademicInterest(fieldsGroup);\r\n }\r\n // #endregion Academic Interest\r\n // #endregion Components Validations\r\n // Group errors\r\n fieldsGroup.fields.forEach(field => {\r\n // Set errors in copied fields inside the SectionErrors array of errors state variable\r\n if (field.data.modified) {\r\n ids = field.data.id.split('|');\r\n if (ids[0] !== 'deleteIcon') {\r\n // Gets the actual Section index from the field id\r\n fieldSectionIndex = Number(ids[4]);\r\n // Gets the actual Field id\r\n fieldId = ids[0];\r\n // Gets the index of the sectionErrors array\r\n sectionErrorIndex = errors[stepIndex].groupErrors[groupIndex].sectionErrors.findIndex(section =>\r\n section.sectionIndex === fieldSectionIndex);\r\n if (sectionErrorIndex > -1) {\r\n // Gets the index of the fieldErrors array\r\n fieldErrorIndex = errors[stepIndex].groupErrors[groupIndex].sectionErrors[sectionErrorIndex].fieldsErrors\r\n .findIndex(field => field.fieldId === fieldId);\r\n if (fieldErrorIndex > -1) {\r\n // Sets the value of the error\r\n errors[stepIndex].groupErrors[groupIndex].sectionErrors[sectionErrorIndex].fieldsErrors[fieldErrorIndex]\r\n .isFieldError = field.data.error ? field.data.error : false;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // Set errors in first fields inside the firstSectionErrors array state variable\r\n fieldErrorIndex = errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.firstFieldsErrors.findIndex(fieldError =>\r\n fieldError.fieldId === field.data.id);\r\n // Checks if the field is already in firstFieldsErrors\r\n if (fieldErrorIndex > -1) {\r\n errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.firstFieldsErrors[fieldErrorIndex].isFieldError =\r\n field.data.error ? field.data.error : false;\r\n } else {\r\n errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.firstFieldsErrors.push(\r\n { fieldId: field.data.id, isFieldError: field.data.error ? field.data.error : false }\r\n );\r\n }\r\n }\r\n });\r\n\r\n errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.isFirstSectionErrors =\r\n errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.firstFieldsErrors.some(fieldError => fieldError.isFieldError);\r\n\r\n errors[stepIndex].groupErrors[groupIndex].sectionErrors.forEach(sectionError => {\r\n sectionError.isSectionError = sectionError.fieldsErrors.some(fieldError => fieldError.isFieldError);\r\n });\r\n\r\n errors[stepIndex].groupErrors[groupIndex].isGroupError =\r\n fieldsGroup.fields.some(field => field.data.error ? field.data.error : false);\r\n });\r\n errors[stepIndex].isStepError = errors[stepIndex].groupErrors.some(groupError => groupError.isGroupError);\r\n });\r\n\r\n // Multiple components validations\r\n isValid = programsValid && testScoresValid &&\r\n validPhones && ipedsValid && addressValid &&\r\n activityValid && relativeValid &&\r\n isValid;\r\n\r\n const allErrors: IGroupErrors[] = [];\r\n const especificErrors: IGroupErrors[] = [];\r\n if (!isValid) {\r\n errors.forEach(step => {\r\n step.groupErrors.forEach(groupError => {\r\n if (groupError.isGroupError) {\r\n if (\r\n // groupError.groupId === 'emergencyContactGroup' ||\r\n (groupError.groupId === 'educationGroup' && application.education.length === 0) ||\r\n groupError.groupId === 'activityGroup' ||\r\n groupError.groupId === 'residencyGroup') {\r\n especificErrors.push(groupError);\r\n }\r\n else {\r\n allErrors.push(groupError);\r\n }\r\n }\r\n });\r\n });\r\n if (allErrors.length === 0) {\r\n isValid = programsValid && testScoresValid && validPhones &&\r\n ipedsValid && addressValid &&\r\n isValidEmploymentSection && emergencyContactsValid &&\r\n educationValid && activityValid && relativeValid && residencyValid;\r\n }\r\n }\r\n\r\n this.setState({\r\n components: components,\r\n errors: errors\r\n });\r\n }\r\n return isValid;\r\n };\r\n\r\n private setApplicationValues = (fieldId: string, fieldDefault: any): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n switch (fieldId) {\r\n case 'attendStatusId':\r\n application.collegeAttendStatus = fieldDefault;\r\n break;\r\n case 'campusId':\r\n application.campuses = fieldDefault;\r\n break;\r\n case 'counselorId':\r\n application.counselorId = fieldDefault;\r\n break;\r\n case 'countryOfBirthId':\r\n application.countryOfBirth = fieldDefault;\r\n break;\r\n case 'ethnicityId':\r\n application.ethnicity = fieldDefault;\r\n break;\r\n case 'genderId':\r\n application.gender = fieldDefault;\r\n break;\r\n case 'maritalyId':\r\n application.maritalStatus = fieldDefault;\r\n break;\r\n case 'passportCountryId':\r\n application.passportCountryId = fieldDefault;\r\n break;\r\n case 'primaryCitizenshipId':\r\n application.primaryCitizenship = fieldDefault;\r\n break;\r\n case 'primaryLanguageId':\r\n application.primaryLanguage = fieldDefault;\r\n break;\r\n case 'prefixId':\r\n application.prefix = fieldDefault;\r\n break;\r\n case 'religionId':\r\n application.religion = fieldDefault;\r\n break;\r\n case 'secondayCitizenshipId':\r\n application.secondaryCitizenship = fieldDefault;\r\n break;\r\n case 'secondaryLanguageId':\r\n application.secondaryLanguage = fieldDefault;\r\n break;\r\n case 'sessionPeriodId':\r\n application.period = fieldDefault;\r\n break;\r\n case 'sourceId':\r\n application.sourceId = fieldDefault;\r\n break;\r\n case 'suffixId':\r\n application.suffix = fieldDefault;\r\n break;\r\n case 'veteranId':\r\n application.veteranStatus = fieldDefault;\r\n break;\r\n case 'visaId':\r\n application.visa = fieldDefault;\r\n break;\r\n case 'visaCountryId':\r\n application.visaCountryId = fieldDefault;\r\n break;\r\n case 'extraCurricularActivityId':\r\n application.isInterestedInExtracurricular = fieldDefault;\r\n break;\r\n case 'financialAidId':\r\n application.isInterestedInFinancialAid = fieldDefault;\r\n break;\r\n case 'retiredId':\r\n application.isRetired = fieldDefault;\r\n break;\r\n case 'seekingDegreeId':\r\n application.isSeekingDegree = fieldDefault;\r\n break;\r\n case 'policyCheckboxId':\r\n application.policy = fieldDefault;\r\n break;\r\n case 'dateOfBirthId':\r\n application.dateOfBirth = fieldDefault;\r\n break;\r\n case 'visaExpirationDateId':\r\n application.visaExpiration = fieldDefault;\r\n break;\r\n case 'passportExpirationDateId':\r\n application.passportExpiration = fieldDefault;\r\n break;\r\n case 'emailId':\r\n application.email = fieldDefault;\r\n break;\r\n case 'firstNameId':\r\n application.firstName = fieldDefault;\r\n break;\r\n case 'formerLastNameId':\r\n application.formerLastName = fieldDefault;\r\n break;\r\n case 'governmentId':\r\n application.governmentId = fieldDefault;\r\n break;\r\n case 'lastNameId':\r\n application.lastName = fieldDefault;\r\n break;\r\n case 'lastNamePrefixId':\r\n application.lastNamePrefix = fieldDefault;\r\n break;\r\n case 'legalNameId':\r\n application.legalName = fieldDefault;\r\n break;\r\n case 'middleNameId':\r\n application.middleName = fieldDefault;\r\n break;\r\n case 'monthsInCountryId':\r\n application.monthsInCountry = fieldDefault;\r\n break;\r\n case 'nickNameId':\r\n application.nickname = fieldDefault;\r\n break;\r\n case 'otherSourceId':\r\n application.otherSource = fieldDefault;\r\n break;\r\n case 'passportNumberId':\r\n application.passportNumber = fieldDefault;\r\n break;\r\n case 'visaNumberId':\r\n application.visaNumber = fieldDefault;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({\r\n application: fieldDefault\r\n });\r\n };\r\n\r\n private setValues = (fieldId: string[], newComponents: IApplicationForm, value: any): IApplicationForm => {\r\n if (fieldId.length > 4) {\r\n const fieldGroup: IFieldForm[] =\r\n newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n const field: IFieldForm | undefined =\r\n fieldGroup.find(x => x.data.id.split('|')[3] === fieldId[3] && x.data.id.split('|')[4] === fieldId[4]);\r\n if (field) {\r\n field.value = value;\r\n }\r\n }\r\n else {\r\n const field: IFieldForm =\r\n newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (fieldId) {\r\n field.value = value;\r\n }\r\n }\r\n return newComponents;\r\n };\r\n\r\n // #region Review Information\r\n private reviewActivities = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid = true;\r\n\r\n if (components && components.expansionPanel.activityCount === undefined) {\r\n components.expansionPanel.activityCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.activityCount !== undefined && components.expansionPanel.activityCount > -1) {\r\n let activityList: IApplicationActivity[] = [];\r\n const activity: IApplicationActivity = {};\r\n\r\n let activityTypefield: IFieldForm | undefined;\r\n if (activityTypefield = fieldsGroup.fields.find(x => x.data.id === 'activityTypeId')) {\r\n activity.activityType = activityTypefield.value;\r\n }\r\n let activityField: IFieldForm | undefined;\r\n if (activityField = fieldsGroup.fields.find(x => x.data.id === 'activityId')) {\r\n activity.activity = activityField.value;\r\n }\r\n let positionHeldField: IFieldForm | undefined;\r\n if (positionHeldField = fieldsGroup.fields.find(x => x.data.id === 'positionHeldId')) {\r\n activity.position = positionHeldField.value;\r\n }\r\n let numberOfHoursPerWeekField: IFieldForm | undefined;\r\n if (numberOfHoursPerWeekField = fieldsGroup.fields.find(x => x.data.id === 'numberOfHoursPerWeekId')) {\r\n activity.hoursPerWeek = numberOfHoursPerWeekField.value;\r\n }\r\n let numberOfWeeksPerYearField: IFieldForm | undefined;\r\n if (numberOfWeeksPerYearField = fieldsGroup.fields.find(x => x.data.id === 'numberOfWeeksPerYearId')) {\r\n activity.weeksPerYear = numberOfWeeksPerYearField.value;\r\n }\r\n let numberOfYearsField: IFieldForm | undefined;\r\n if (numberOfYearsField = fieldsGroup.fields.find(x => x.data.id === 'numberOfYearsId')) {\r\n activity.numberOfYears = numberOfYearsField.value;\r\n }\r\n let participated9Field: IFieldForm | undefined;\r\n if (participated9Field = fieldsGroup.fields.find(x => x.data.id === 'participated9Id')) {\r\n activity.participatedGrade09 = Boolean(participated9Field.value);\r\n }\r\n let participated10Field: IFieldForm | undefined;\r\n if (participated10Field = fieldsGroup.fields.find(x => x.data.id === 'participated10Id')) {\r\n activity.participatedGrade10 = Boolean(participated10Field.value);\r\n }\r\n let participated11Field: IFieldForm | undefined;\r\n if (participated11Field = fieldsGroup.fields.find(x => x.data.id === 'participated11Id')) {\r\n activity.participatedGrade11 = Boolean(participated11Field.value);\r\n }\r\n let participated12Field: IFieldForm | undefined;\r\n if (participated12Field = fieldsGroup.fields.find(x => x.data.id === 'participated12Id')) {\r\n activity.participatedGrade12 = Boolean(participated12Field.value);\r\n }\r\n let participatedPostSecondaryField: IFieldForm | undefined;\r\n if (participatedPostSecondaryField = fieldsGroup.fields.find(x => x.data.id === 'participatedPostSecondaryId')) {\r\n activity.participatedPostsecondary = Boolean(participatedPostSecondaryField.value);\r\n }\r\n\r\n // XNOR\r\n // If any required fields or none are filled that is allowed\r\n activity.activityType = activity.activityType || 0;\r\n activity.activity = activity.activity || 0;\r\n if (!(activity.activityType !== 0 && activity.activity !== 0) &&\r\n (activity.activityType !== 0 || activity.activity !== 0)) {\r\n return false;\r\n }\r\n\r\n activityList = this.setApplicationActivitiesValues(activity, activityList);\r\n\r\n let i: number = 0;\r\n do {\r\n let activityItem: IApplicationActivity = {};\r\n activityItem = this.setApplicationActivitiesAdditional(fieldsGroup, i, activityItem);\r\n\r\n // Duplicated\r\n if (activityList.find(x => x.activityType === activityItem.activityType &&\r\n x.activity === activityItem.activity)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'activityErrosId'.length) === 'activityErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n\r\n activityList = this.setApplicationActivitiesValues(activityItem, activityList);\r\n\r\n i++;\r\n } while (i < components.expansionPanel.activityCount);\r\n\r\n if (activityList.length > 0) {\r\n // Required fields should be filled\r\n activityList.forEach(activity => {\r\n if (activity.position || activity.hoursPerWeek ||\r\n activity.weeksPerYear || activity.numberOfYears ||\r\n activity.participatedGrade09 || activity.participatedGrade10 ||\r\n activity.participatedGrade11 || activity.participatedGrade12 ||\r\n activity.participatedPostsecondary) {\r\n if ((activity.activityType === null || activity.activityType === 0) &&\r\n (activity.activity === null || activity.activity === 0)) {\r\n isValid = false;\r\n }\r\n }\r\n });\r\n }\r\n // List is empty so no error should be show\r\n else {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n if (isValid) {\r\n application.activities = activityList;\r\n }\r\n\r\n this.setState({\r\n application\r\n });\r\n }\r\n return isValid;\r\n\r\n };\r\n\r\n private reviewAddress = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (components && components.expansionPanel.addressessCount === undefined) {\r\n components.expansionPanel.addressessCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.addressessCount !== undefined && components.expansionPanel.addressessCount > -1) {\r\n const addressList: IApplicationAddress[] = [];\r\n let address: IApplicationAddress = { isPrimary: false };\r\n\r\n address = this.setApplicationAddress(fieldsGroup, address);\r\n address = this.setApplicationAddressValues(address);\r\n\r\n if (address.type !== 0 && address.line1 !== '' &&\r\n address.city !== '' && address.country !== 0) {\r\n address.isPrimary = true;\r\n addressList.push(address);\r\n }\r\n else if (address.line2 || address.line3 || address.line4 ||\r\n address.city || address.stateProvince || address.postalCode ||\r\n address.county) {\r\n addressList.push(address);\r\n }\r\n\r\n let i: number = 0;\r\n do {\r\n let address: IApplicationAddress = { isPrimary: false };\r\n address = this.setApplicationAddressAdditional(fieldsGroup, i, address);\r\n\r\n // Duplicated\r\n if (addressList.find(x => x.type === address.type)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'addressErrorsId'.length) === 'addressErrorsId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n\r\n address = this.setApplicationAddressValues(address);\r\n\r\n if (address.type !== 0 && address.line1 !== '' &&\r\n address.city !== '' && address.country !== 0) {\r\n addressList.push(address);\r\n }\r\n else if (address.line2 !== '' || address.line3 !== '' || address.line4 !== '' ||\r\n address.city !== '' || address.stateProvince !== 0 || address.postalCode !== '' ||\r\n address.county !== 0) {\r\n addressList.push(address);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.addressessCount);\r\n\r\n application.addresses = addressList;\r\n\r\n this.setState({\r\n application\r\n });\r\n\r\n return true;\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n\r\n private reviewEducation = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n\r\n if (components && components.expansionPanel.educationCount === undefined) {\r\n components.expansionPanel.educationCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.educationCount !== undefined && components.expansionPanel.educationCount > -1) {\r\n const educationList: IApplicationEducation[] = [];\r\n let education: IApplicationEducation = {\r\n enrollment: {},\r\n institution: {\r\n city: '',\r\n countryDesc: '',\r\n etsCode: '',\r\n ficeCode: '',\r\n id: 0,\r\n name: '',\r\n stateDesc: ''\r\n }\r\n };\r\n\r\n education = this.setApplicationEducation(fieldsGroup, education);\r\n education = this.setApplicationEducationValues(education);\r\n\r\n if (education.institution.city || education.enrollment.startDate || education.enrollment.endDate ||\r\n education.institution.etsCode || education.institution.name || education.institution.ficeCode) {\r\n educationList.push(education);\r\n }\r\n else if (education.enrollment &&\r\n education.enrollment.curriculumId && education.enrollment.curriculumId > 0 ||\r\n education.enrollment.honorsId && education.enrollment.honorsId > 0 ||\r\n education.enrollment.degreeId && education.enrollment.degreeId > 0 ||\r\n education.institution.id && education.institution.id > 0 ||\r\n education.institution.stateProvinceId && education.institution.stateProvinceId > 0 ||\r\n education.institution.countryId && education.institution.countryId > 0) {\r\n educationList.push(education);\r\n }\r\n\r\n // Dates\r\n if (education.enrollment.startDate && education.enrollment.endDate) {\r\n if (components && (education.enrollment.startDate || education.enrollment.endDate)) {\r\n if (moment(education.enrollment.startDate).format('YYYY-MM-DD') > moment(education.enrollment.endDate).format('YYYY-MM-DD')) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageNotValid;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n else if (moment(education.enrollment.startDate).format('YYYY-MM-DD') <\r\n moment(education.enrollment.endDate).format('YYYY-MM-DD')) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n else if (education.enrollment && education.enrollment.startDate && education.enrollment.endDate &&\r\n (education.enrollment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n education.enrollment.endDate > moment(components.dateTimeMax).format('YYYY-MM-DD'))) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRange\r\n + moment(components.dateTimeMin).format('YYYY') + '-' +\r\n + moment(components.dateTimeMax).format('YYYY');\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n else if (education.enrollment && education.enrollment.startDate && education.enrollment.endDate &&\r\n (education.enrollment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n education.enrollment.endDate < moment(components.dateTimeMax).format('YYYY-MM-DD'))) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n let i: number = 0;\r\n do {\r\n let education: IApplicationEducation = {\r\n enrollment: {},\r\n institution: {\r\n city: '',\r\n countryDesc: '',\r\n etsCode: '',\r\n ficeCode: '',\r\n id: 0,\r\n name: '',\r\n stateDesc: ''\r\n }\r\n };\r\n\r\n education = this.setApplicationEducationAdditional(fieldsGroup, i, education);\r\n education = this.setApplicationEducationValues(education);\r\n\r\n // Dates\r\n if (education.enrollment.startDate && education.enrollment.endDate) {\r\n if (components && (education.enrollment.startDate || education.enrollment.endDate)) {\r\n if (moment(education.enrollment.startDate).format('YYYY-MM-DD') >\r\n moment(education.enrollment.endDate).format('YYYY-MM-DD')) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageNotValid;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n else if (moment(education.enrollment.startDate).format('YYYY-MM-DD') <\r\n moment(education.enrollment.endDate).format('YYYY-MM-DD')) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n else if (education.enrollment && education.enrollment.startDate && education.enrollment.endDate &&\r\n (education.enrollment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n education.enrollment.endDate > moment(components.dateTimeMax).format('YYYY-MM-DD'))) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRange\r\n + moment(components.dateTimeMin).format('YYYY') + '-' +\r\n + moment(components.dateTimeMax).format('YYYY');\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n else if (education.enrollment && education.enrollment.startDate && education.enrollment.endDate &&\r\n (education.enrollment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n education.enrollment.endDate < moment(components.dateTimeMax).format('YYYY-MM-DD'))) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n }\r\n }\r\n // Duplicated\r\n if (education.enrollment && education.enrollment.degreeId && education.enrollment.curriculumId &&\r\n education.enrollment.honorsId &&\r\n (education.enrollment.degreeId > 0 && education.enrollment.curriculumId > 0 &&\r\n education.enrollment.honorsId > 0)) {\r\n if (educationList.find(x => x.enrollment.degreeId === education.enrollment.degreeId &&\r\n x.enrollment.curriculumId === education.enrollment.curriculumId &&\r\n x.enrollment.honorsId === education.enrollment.honorsId)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n }\r\n else {\r\n if (education.institution.etsCode) {\r\n if (educationList.find(x => x.institution.etsCode === education.institution.etsCode)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (education.institution.city || education.enrollment.startDate || education.enrollment.endDate ||\r\n education.institution.etsCode || education.institution.name || education.institution.ficeCode) {\r\n educationList.push(education);\r\n }\r\n else if (education.enrollment &&\r\n education.enrollment.curriculumId && education.enrollment.curriculumId > 0 ||\r\n education.enrollment.honorsId && education.enrollment.honorsId > 0 ||\r\n education.enrollment.degreeId && education.enrollment.degreeId > 0 ||\r\n education.institution.id && education.institution.id > 0 ||\r\n education.institution.stateProvinceId && education.institution.stateProvinceId > 0 ||\r\n education.institution.countryId && education.institution.countryId > 0) {\r\n educationList.push(education);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.educationCount);\r\n\r\n // Education is required\r\n if (fieldsGroup.isRequired) {\r\n // List is no empty so no error should be show.\r\n if (educationList.length > 0) {\r\n isValid = true;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n // List is empty so error should be show.\r\n else {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n field.data.error = true;\r\n });\r\n }\r\n }\r\n // Education is include\r\n else {\r\n // List is empty so no error should be show\r\n if (educationList.length === 0) {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n application.education = educationList;\r\n }\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewEmergencyContacts = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid = true;\r\n\r\n if (components && components.expansionPanel.emergencyContactsCount === undefined) {\r\n components.expansionPanel.emergencyContactsCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.emergencyContactsCount !== undefined && components.expansionPanel.emergencyContactsCount > -1) {\r\n const emergencyList: IApplicationEmergencyContact[] = [];\r\n\r\n const emergency: IApplicationEmergencyContact = { firstName: '', lastName: '', phoneNumber: '' };\r\n const firstNamefield = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyFirstNameId');\r\n if (firstNamefield > -1) {\r\n emergency.firstName = fieldsGroup.fields[firstNamefield].value;\r\n }\r\n const lastNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyLastNameId');\r\n if (lastNameField > -1) {\r\n emergency.lastName = fieldsGroup.fields[lastNameField].value;\r\n }\r\n const phoneField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyPhoneId');\r\n if (phoneField > -1) {\r\n emergency.phoneNumber = fieldsGroup.fields[phoneField].value;\r\n }\r\n const suffixField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencySuffixId');\r\n if (suffixField > -1) {\r\n emergency.suffixId = fieldsGroup.fields[suffixField].value;\r\n }\r\n const middleNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyMiddleNameId');\r\n if (middleNameField > -1) {\r\n emergency.middleName = fieldsGroup.fields[middleNameField].value;\r\n }\r\n const lastNamePrefixField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyLastNamePrefixId');\r\n if (lastNamePrefixField > -1) {\r\n emergency.lastNamePrefix = fieldsGroup.fields[lastNamePrefixField].value;\r\n }\r\n const relationshipField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyRelationshipId');\r\n if (relationshipField > -1) {\r\n emergency.relationshipId = fieldsGroup.fields[relationshipField].value;\r\n }\r\n const prefix = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyPrefixId');\r\n if (prefix > -1) {\r\n emergency.prefixId = fieldsGroup.fields[prefix].value;\r\n }\r\n\r\n // XNOR\r\n // If any required fields or none are filled that is allowed\r\n emergency.firstName = emergency.firstName === null ? '' : emergency.firstName;\r\n emergency.lastName = emergency.lastName === null ? '' : emergency.lastName;\r\n emergency.phoneNumber = emergency.phoneNumber === null ? '' : emergency.phoneNumber;\r\n if (!(emergency.firstName !== '' && emergency.lastName !== '' && emergency.phoneNumber !== '') &&\r\n (emergency.firstName !== '' || emergency.lastName !== '' || emergency.phoneNumber !== '')) {\r\n return false;\r\n }\r\n\r\n if (emergency.firstName !== null && emergency.firstName !== '' &&\r\n emergency.lastName !== null && emergency.lastName !== '' &&\r\n emergency.phoneNumber !== null && emergency.phoneNumber !== '') {\r\n emergencyList.push(emergency);\r\n }\r\n else if (emergency.suffixId || emergency.middleName ||\r\n emergency.lastNamePrefix || emergency.relationshipId || emergency.prefixId) {\r\n emergencyList.push(emergency);\r\n }\r\n let i: number = 0;\r\n do {\r\n const emergency: IApplicationEmergencyContact = { firstName: '', lastName: '', phoneNumber: '' };\r\n\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === i);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'emergencyFirstNameId'.length) === 'emergencyFirstNameId') {\r\n emergency.firstName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyLastNameId'.length) === 'emergencyLastNameId') {\r\n emergency.lastName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyPhoneId'.length) === 'emergencyPhoneId') {\r\n emergency.phoneNumber = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencySuffixId'.length) === 'emergencySuffixId') {\r\n emergency.suffixId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyMiddleNameId'.length) === 'emergencyMiddleNameId') {\r\n emergency.middleName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyLastNamePrefixId'.length) === 'emergencyLastNamePrefixId') {\r\n emergency.lastNamePrefix = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyRelationshipId'.length) === 'emergencyRelationshipId') {\r\n emergency.relationshipId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyPrefixId'.length) === 'emergencyPrefixId') {\r\n emergency.prefixId = field.value;\r\n }\r\n });\r\n // Duplicated\r\n if (emergencyList.find(x => x.firstName === emergency.firstName &&\r\n x.lastName === emergency.lastName && x.relationshipId === emergency.relationshipId)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'emergencyErrorsId'.length) === 'emergencyErrorsId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n if (emergency.firstName !== null && emergency.firstName !== '' &&\r\n emergency.lastName !== null && emergency.lastName !== '' &&\r\n emergency.phoneNumber !== null && emergency.phoneNumber !== '') {\r\n emergencyList.push(emergency);\r\n }\r\n else if (emergency.suffixId || emergency.middleName ||\r\n emergency.lastNamePrefix || emergency.relationshipId || emergency.prefixId) {\r\n emergencyList.push(emergency);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.emergencyContactsCount);\r\n // Emergency is required\r\n if (fieldsGroup.isRequired) {\r\n // List is no empty so no error should be show.\r\n if (emergencyList.length > 0) {\r\n isValid = true;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'emergencyErrorsId');\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n // List is empty so error should be show.\r\n else {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'emergencyErrorsId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n field.data.error = true;\r\n });\r\n }\r\n }\r\n // Emergency is include\r\n else {\r\n // List is not empty\r\n if (emergencyList.length > 0) {\r\n // Required fields should be filled\r\n emergencyList.forEach(emergency => {\r\n if (emergency.suffixId || emergency.middleName ||\r\n emergency.lastNamePrefix || emergency.relationshipId || emergency.prefixId) {\r\n if ((emergency.firstName === null || emergency.firstName === '') &&\r\n (emergency.lastName === null || emergency.lastName === '') &&\r\n (emergency.phoneNumber === null || emergency.phoneNumber === '')) {\r\n isValid = false;\r\n }\r\n }\r\n });\r\n }\r\n // List is empty so no error should be show\r\n else {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n application.emergencyContacts = emergencyList;\r\n }\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewEmployment = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid = true;\r\n\r\n if (components && components.expansionPanel.employeeCount === undefined) {\r\n components.expansionPanel.employeeCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.employeeCount !== undefined && components.expansionPanel.employeeCount > -1) {\r\n const employmentList: IApplicationEmployment[] = [];\r\n if (components) {\r\n const employment: IApplicationEmployment = { name: '', positionId: 0, startDate: undefined, endDate: undefined };\r\n const employerNamefield = fieldsGroup.fields.findIndex(x => x.data.id === 'employerNameId');\r\n const employerPositionField = fieldsGroup.fields.findIndex(x => x.data.id === 'employerPositionId');\r\n if (employerNamefield > -1 && employerPositionField > -1) {\r\n employment.name = fieldsGroup.fields[employerNamefield].value;\r\n employment.positionId = fieldsGroup.fields[employerPositionField].value;\r\n\r\n employment.name = employment.name === null ? '' : employment.name;\r\n employment.positionId = employment.positionId === null ? 0 : employment.positionId;\r\n // If name has value position is not required\r\n if (employment.name !== '') {\r\n fieldsGroup.fields[employerPositionField].data.error = false;\r\n fieldsGroup.fields[employerPositionField].data.helperText = '';\r\n }\r\n // If position has value name is not required\r\n if (employment.positionId > 0) {\r\n fieldsGroup.fields[employerNamefield].data.error = false;\r\n fieldsGroup.fields[employerNamefield].data.helperText = '';\r\n }\r\n }\r\n const employerStartDateField = fieldsGroup.fields.findIndex(x => x.data.id === 'employerStartDateId');\r\n if (employerStartDateField > -1) {\r\n employment.startDate = fieldsGroup.fields[employerStartDateField].value;\r\n }\r\n const employerEndDateField = fieldsGroup.fields.findIndex(x => x.data.id === 'employerEndDateId');\r\n if (employerEndDateField > -1) {\r\n employment.endDate = fieldsGroup.fields[employerEndDateField].value;\r\n }\r\n // When group is required and name and position is empty, required error is show.\r\n if (fieldsGroup.isRequired && employment.name === '' &&\r\n (employment.positionId === 0 || employment.positionId === undefined)) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n return false;\r\n }\r\n if (employment.name !== '' || employment.positionId > 0) {\r\n employmentList.push(employment);\r\n }\r\n if (employment.startDate || employment.endDate) {\r\n if (employment.startDate && employment.endDate) {\r\n // Dates\r\n if (moment(employment.startDate).format('YYYY-MM-DD') > moment(employment.endDate).format('YYYY-MM-DD')) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageNotValid;\r\n });\r\n }\r\n else if (employment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n employment.endDate > moment(components.dateTimeMax).format('YYYY-MM-DD')) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRange\r\n + moment(components.dateTimeMin).format('YYYY') + '-' +\r\n + moment(components.dateTimeMax).format('YYYY');\r\n });\r\n }\r\n }\r\n if (employment.name === '' &&\r\n (employment.positionId === 0 || employment.positionId === undefined)) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n return false;\r\n }\r\n }\r\n let i: number = 0;\r\n do {\r\n const employment: IApplicationEmployment = { name: '', positionId: 0, startDate: undefined, endDate: undefined };\r\n\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === i);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'employerNameId'.length) === 'employerNameId') {\r\n employment.name = field.value === null ? null : field.value;\r\n }\r\n if (field.data.id.substr(0, 'employerPositionId'.length) === 'employerPositionId') {\r\n employment.positionId = field.value === '' ? 0 : field.value;\r\n }\r\n if (field.data.id.substr(0, 'employerStartDateId'.length) === 'employerStartDateId') {\r\n employment.startDate = field.value === '' ? null : field.value;\r\n }\r\n if (field.data.id.substr(0, 'employerEndDateId'.length) === 'employerEndDateId') {\r\n employment.endDate = field.value === '' ? null : field.value;\r\n }\r\n });\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'employerNameId'.length) === 'employerNameId' &&\r\n employment.positionId > 0) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n if (field.data.id.substr(0, 'employerPositionId'.length) === 'employerPositionId' &&\r\n employment.name !== '') {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n });\r\n // Duplicated\r\n if (employmentList.find(x => x.name === employment.name &&\r\n x.positionId === employment.positionId &&\r\n x.startDate === employment.startDate &&\r\n x.endDate === employment.endDate)) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n });\r\n return false;\r\n }\r\n // If start date or end date is entered Position or Name should have a value\r\n if (employment.startDate || employment.endDate) {\r\n if (employment.name === '' &&\r\n (employment.positionId === 0 || employment.positionId === undefined)) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n return false;\r\n }\r\n if (employment.startDate && employment.endDate) {\r\n // Dates validations\r\n if (moment(employment.startDate).format('YYYY-MM-DD') > moment(employment.endDate).format('YYYY-MM-DD')) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageNotValid;\r\n });\r\n }\r\n else if (employment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n employment.endDate > moment(components.dateTimeMax).format('YYYY-MM-DD')) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRange\r\n + moment(components.dateTimeMin).format('YYYY') + '-' +\r\n + moment(components.dateTimeMax).format('YYYY');\r\n });\r\n }\r\n }\r\n }\r\n if (employment.name !== '' || employment.positionId > 0) {\r\n employmentList.push(employment);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.employeeCount);\r\n // Employment is required\r\n if (fieldsGroup.isRequired) {\r\n // List is empty so error should be show.\r\n if (employmentList.length === 0) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n }\r\n }\r\n // Employment is include\r\n else {\r\n // List is not empty\r\n if (employmentList.length > 0) {\r\n // Required fields should be filled\r\n employmentList.forEach(employment => {\r\n if (employment.startDate || employment.endDate) {\r\n if ((employment.name === null || employment.name === '') &&\r\n employment.positionId === 0) {\r\n isValid = false;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n application.employments = employmentList;\r\n }\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewIpeds = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n let isValid = true;\r\n const hispanicAnswer: string = fieldsGroup.fields[2].value;\r\n\r\n if (hispanicAnswer) {\r\n // If question is responded with NO, user must select at least one subrace\r\n if (hispanicAnswer === '0') {\r\n if (application.ipeds) {\r\n const subRaces: IApplicationIpeds[] =\r\n application.ipeds.filter(x => x.ipedsFederalCategoryId !== 1);\r\n if (subRaces.length === 0) {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'ipedsErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageRequired;\r\n }\r\n }\r\n else {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'ipedsErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageRequired;\r\n }\r\n }\r\n }\r\n else {\r\n // If question was not answered and some subraces were selected, user must answer question\r\n if (application.ipeds && application.ipeds.length > 0) {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'ipedsErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageNotValid;\r\n }\r\n }\r\n // Save ipeds if them were saved\r\n application.ipeds = undefined;\r\n this.setIpedsValuesCheckList(fieldsGroup);\r\n this.setIpedsValuesNestedCheckList(fieldsGroup);\r\n\r\n return isValid;\r\n };\r\n\r\n private reviewPhoneGroup = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (components && components.expansionPanel.phoneCount === undefined) {\r\n components.expansionPanel.phoneCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.phoneCount !== undefined && components.expansionPanel.phoneCount > -1) {\r\n const phoneList: IApplicationPhoneList[] = [];\r\n\r\n const phone: IApplicationPhoneList = { type: '', countryId: 0, number: '', isPrimary: false };\r\n const phoneTypeField = fieldsGroup.fields.findIndex(x => x.data.id === 'phoneTypeId');\r\n if (phoneTypeField > -1) {\r\n phone.type = fieldsGroup.fields[phoneTypeField].value;\r\n }\r\n const phoneCountryField = fieldsGroup.fields.findIndex(x => x.data.id === 'phoneCountryId');\r\n if (phoneCountryField > -1) {\r\n phone.countryId = fieldsGroup.fields[phoneCountryField].value;\r\n }\r\n const phoneNumberField = fieldsGroup.fields.findIndex(x => x.data.id === 'phoneNumberId');\r\n if (phoneNumberField > -1) {\r\n phone.number = fieldsGroup.fields[phoneNumberField].value;\r\n }\r\n const primaryPhoneField = fieldsGroup.fields.findIndex(x => x.data.id === 'primaryPhoneId');\r\n if (primaryPhoneField > -1) {\r\n phone.isPrimary = fieldsGroup.fields[primaryPhoneField].value === '1' ? true : false;\r\n }\r\n\r\n // Set values\r\n phone.type = phone.type === null ? '' : phone.type;\r\n phone.countryId = phone.countryId === 0 ? 0 : phone.countryId;\r\n phone.number = phone.number === null ? '' : phone.number;\r\n phone.isPrimary = phone.isPrimary === null ? false : phone.isPrimary;\r\n\r\n // Add phone to list\r\n if (phone.type !== '' && phone.countryId !== 0 && phone.number !== '') {\r\n phoneList.push(phone);\r\n }\r\n\r\n let i: number = 0;\r\n do {\r\n const phoneItem: IApplicationPhoneList = { type: '', countryId: 0, number: '', isPrimary: false };\r\n\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === i);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'phoneTypeId'.length) === 'phoneTypeId') {\r\n phoneItem.type = field.value;\r\n }\r\n if (field.data.id.substr(0, 'phoneCountryId'.length) === 'phoneCountryId') {\r\n phoneItem.countryId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'phoneNumberId'.length) === 'phoneNumberId') {\r\n phoneItem.number = field.value;\r\n }\r\n if (field.data.id.substr(0, 'primaryPhoneId'.length) === 'primaryPhoneId') {\r\n phoneItem.isPrimary = field.value === '1' ? true : false;\r\n }\r\n });\r\n // Duplicated\r\n if (phoneList.find(x => x.type === phoneItem.type &&\r\n x.countryId === phoneItem.countryId && x.number === phoneItem.number)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'phoneErrorsId'.length) === 'phoneErrorsId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n });\r\n return false;\r\n }\r\n // Set values\r\n phoneItem.type = phoneItem.type === null ? '' : phoneItem.type;\r\n phoneItem.countryId = phoneItem.countryId === 0 ? 0 : phoneItem.countryId;\r\n phoneItem.number = phoneItem.number === null ? '' : phoneItem.number;\r\n phoneItem.isPrimary = phoneItem.isPrimary === null ? false : phoneItem.isPrimary;\r\n\r\n // Add phone to list\r\n if (phoneItem.type !== '' && phoneItem.countryId !== 0 && phoneItem.number !== '') {\r\n phoneList.push(phoneItem);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.phoneCount);\r\n\r\n application.phones = phoneList;\r\n\r\n this.setState({\r\n application\r\n });\r\n\r\n return true;\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n\r\n private reviewPrograms = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid = true;\r\n\r\n if (components && components.expansionPanel.programsCount === undefined) {\r\n components.expansionPanel.programsCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.programsCount !== undefined && components.expansionPanel.programsCount > -1) {\r\n const programList: IApplicationProgram[] = [];\r\n const program: IApplicationProgram = { programId: 0 };\r\n if (fieldsGroup && fieldsGroup.fields && fieldsGroup.fields.length > 0) {\r\n let exist: boolean = false;\r\n const field = fieldsGroup.fields.find(x => x.data.id === 'programOfStudydId');\r\n if (field && field.data && field.data.options && field.data.options.length > 0) {\r\n field.data.options.forEach(option => {\r\n if (Number(option.value) === Number(field.value)) {\r\n exist = true;\r\n }\r\n });\r\n if (exist) {\r\n program.programId = field.value;\r\n }\r\n else {\r\n isValid = false;\r\n }\r\n }\r\n }\r\n if (isValid) {\r\n const commintmentField = fieldsGroup.fields.findIndex(x => x.data.id === 'commitmentId');\r\n if (commintmentField > -1) {\r\n program.commitmentId = fieldsGroup.fields[commintmentField].value;\r\n }\r\n if (program.programId > 0) {\r\n programList.push(program);\r\n }\r\n let i: number = 0;\r\n do {\r\n const program: IApplicationProgram = { programId: 0 };\r\n\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === i);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'programOfStudydId'.length) === 'programOfStudydId') {\r\n program.programId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'commitmentId'.length) === 'commitmentId') {\r\n program.commitmentId = field.value;\r\n }\r\n });\r\n if (programList.find(x => x.programId === program.programId)) {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'programOfStudydErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageDuplicate;\r\n }\r\n if (programList.find(x => x.programId ===\r\n program.programId && x.commitmentId === program.commitmentId)) {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'programOfStudydErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageRequired;\r\n }\r\n else if (program.programId > 0) {\r\n programList.push(program);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.programsCount);\r\n\r\n if (isValid) {\r\n application.programs = programList;\r\n }\r\n\r\n this.setState({\r\n application\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewRelatives = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n\r\n if (components && components.expansionPanel.relativesCount === undefined) {\r\n components.expansionPanel.relativesCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.relativesCount !== undefined && components.expansionPanel.relativesCount > -1) {\r\n const relativeList: IApplicationRelative[] = [];\r\n let relative: IApplicationRelative = {\r\n attendedInstitution: false,\r\n relationFirstName: '',\r\n relationLastName: '',\r\n relationType: 0\r\n };\r\n relative = this.setApplicationRelative(fieldsGroup, relative);\r\n relative = this.setApplicationRelativeValues(relative);\r\n\r\n if (relative.relationFirstName || relative.relationLastName || relative.relationType > 0 ||\r\n relative.attendedInstitution) {\r\n relativeList.push(relative);\r\n }\r\n else if (relative.relationPrefix || relative.relationSuffix || relative.relationMiddleName ||\r\n relative.relationLastNamePrefix) {\r\n relativeList.push(relative);\r\n }\r\n\r\n let i: number = 0;\r\n do {\r\n let relative: IApplicationRelative = {\r\n attendedInstitution: false,\r\n relationFirstName: '',\r\n relationLastName: '',\r\n relationType: 0\r\n };\r\n\r\n relative = this.setApplicationRelativeAdditional(fieldsGroup, i, relative);\r\n relative = this.setApplicationRelativeValues(relative);\r\n\r\n // Duplicated\r\n if (relative.relationFirstName && relative.relationLastName && relative.relationType) {\r\n if (relativeList.find(x => x.relationFirstName === relative.relationFirstName &&\r\n x.relationLastName === relative.relationLastName &&\r\n x.relationType === relative.relationType)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'relativesErrosId'.length) === 'relativesErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n }\r\n if (relative.relationFirstName || relative.relationLastName || relative.relationType > 0 ||\r\n relative.attendedInstitution) {\r\n relativeList.push(relative);\r\n }\r\n else if (relative.relationPrefix || relative.relationSuffix || relative.relationMiddleName ||\r\n relative.relationLastNamePrefix) {\r\n relativeList.push(relative);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.relativesCount);\r\n\r\n // Relatives is required\r\n if (fieldsGroup.isRequired) {\r\n // List is no empty so no error should be show.\r\n if (relativeList.length > 0) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'relativesErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.error = false;\r\n field.data.label = '';\r\n });\r\n isValid = true;\r\n }\r\n // List is empty so error should be show.\r\n if (relativeList.length === 0) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'relativesErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.error = true;\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n }\r\n }\r\n else {\r\n if (relativeList.length === 0) {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n application.relatives = relativeList;\r\n\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewResidency = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n const residencyList: IApplicationResidency[] = [];\r\n let residency: IApplicationResidency = {};\r\n residency = this.setApplicationResidency(fieldsGroup, residency);\r\n\r\n if (residency.residencyPreference !== null ||\r\n residency.foodPlanInterest !== null ||\r\n residency.dormPlanInterest !== null ||\r\n residency.dormCampus !== null ||\r\n residency.dormBuilding !== null) {\r\n residencyList.push(residency);\r\n }\r\n\r\n // Residency is required\r\n if (fieldsGroup.isRequired) {\r\n // List is no empty so no error should be show.\r\n if (residencyList.length > 0) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'relativesErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.error = false;\r\n field.data.label = '';\r\n });\r\n isValid = true;\r\n }\r\n // List is empty so error should be show.\r\n if (residencyList.length === 0) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'residencyErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.error = true;\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n }\r\n }\r\n // Residency is include\r\n else {\r\n // List is empty so no error should be show\r\n if (residencyList.length === 0) {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n if (residencyList.length > 0) {\r\n if (residencyList[0].residencyPreference && residencyList[0].residencyPreference > 0) {\r\n application.residencyPreference = residencyList[0].residencyPreference;\r\n }\r\n if (residencyList[0].foodPlanInterest) {\r\n application.foodPlanInterest = residencyList[0].foodPlanInterest;\r\n }\r\n if (residencyList[0].dormPlanInterest) {\r\n application.dormPlanInterest = residencyList[0].dormPlanInterest;\r\n }\r\n if (residencyList[0].dormCampus && residencyList[0].dormCampus > 0) {\r\n application.dormCampus = residencyList[0].dormCampus;\r\n }\r\n if (residencyList[0].dormBuilding && residencyList[0].dormBuilding > 0) {\r\n application.dormBuilding = residencyList[0].dormBuilding;\r\n }\r\n }\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewTestScoreCompleteness = (groupedControls: any): boolean => {\r\n let validCompleteness: boolean = true;\r\n // this is meant to iterate over all controls grouped by section\r\n for (const keyIndex of Object.keys(groupedControls)) {\r\n const scoreA: IFieldForm[] = groupedControls[Number(keyIndex)];\r\n\r\n const fieldsPopulated: boolean = scoreA.every(f => f.value && f.value !== '');\r\n const fieldsEmpty: boolean = scoreA.every(f => !f.value || f.value === '');\r\n\r\n if (!fieldsPopulated && !fieldsEmpty) {\r\n scoreA.forEach(field => {\r\n if (field.value && field.value !== '') {\r\n field.data.error = false;\r\n } else {\r\n field.data.error = true;\r\n validCompleteness = false;\r\n }\r\n });\r\n }\r\n }\r\n return validCompleteness;\r\n };\r\n\r\n private reviewTestScores = (groupedControls: any): boolean => {\r\n // this is meant to iterate over all controls grouped by section\r\n for (let i: number = 0; i < Object.keys(groupedControls).length; i++) {\r\n const scoreA: any = groupedControls[Number(Object.keys(groupedControls)[i])];\r\n for (let j: number = 0; j < Object.keys(groupedControls).length; j++) {\r\n if (i !== j) {\r\n let identical: boolean = true;\r\n const scoreB: any = groupedControls[Number(Object.keys(groupedControls)[j])];\r\n for (let k: number = 0; k < scoreA.length; k++) {\r\n const fieldA: IFieldForm = scoreA[k];\r\n const fieldB: IFieldForm = scoreB[k];\r\n if (fieldA.data.id !== fieldB.data.id) {\r\n if ((fieldA.value || '') !== (fieldB.value || '')) {\r\n identical = false;\r\n }\r\n }\r\n }\r\n if (identical) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n private reviewUserDefined = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n fieldsGroup.fields.forEach(field => {\r\n if (field.isUserDefined) {\r\n // validate length of field\r\n const userDefined: IApplicationUserDefined = {\r\n columnLabel: '',\r\n columnName: '',\r\n columnType: 0,\r\n columnValue: '',\r\n isUploading: false\r\n };\r\n if (field.value) {\r\n if (field.maxLength && field.value.toString().length <= field.maxLength) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n isValid = true;\r\n\r\n userDefined.columnLabel = field.data.label ? field.data.label : '';\r\n userDefined.columnName = field.data.id;\r\n if (field.dataType === 'nvarchar') {\r\n userDefined.columnType = 1;\r\n }\r\n if (field.dataType === 'date') {\r\n userDefined.columnType = 2;\r\n }\r\n if (field.dataType === 'time') {\r\n userDefined.columnType = 3;\r\n }\r\n userDefined.columnValue = field.value;\r\n userDefined.isUploading = field.isUploading ? field.isUploading : false;\r\n let userDefinedIndex: number = -1;\r\n userDefinedIndex =\r\n application.userDefined.findIndex(x => x.columnName === userDefined.columnName);\r\n if (userDefinedIndex > -1) {\r\n application.userDefined.splice(userDefinedIndex, 1);\r\n }\r\n application.userDefined.push(userDefined);\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRange;\r\n isValid = false;\r\n }\r\n }\r\n else {\r\n if (field.isRequired) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n isValid = false;\r\n }\r\n }\r\n }\r\n });\r\n return isValid;\r\n };\r\n\r\n private reviewCampus = (fieldsGroup: IFieldsGroup): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n const campusIndex = fieldsGroup.fields.findIndex(x => x.data.id === 'campusId');\r\n if (fieldsGroup.fields[campusIndex].componentType === 'CheckboxList') {\r\n application.campuses = undefined;\r\n if (campusIndex > -1) {\r\n const campusList = fieldsGroup.fields[campusIndex].value;\r\n if (campusList) {\r\n const array = Object.values(campusList.split(','));\r\n array.forEach(campus => {\r\n if (application.campuses) {\r\n let findCampus: number = -1;\r\n findCampus = application.campuses.findIndex(x => x === Number(campus));\r\n if (findCampus === -1) {\r\n application.campuses.push(\r\n Number(campus)\r\n );\r\n }\r\n }\r\n else {\r\n application.campuses = [\r\n Number(campus)\r\n ];\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n private reviewAcademicInterest = (fieldsGroup: IFieldsGroup): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n const interestIndex = fieldsGroup.fields.findIndex(x => x.data.id === 'interestId');\r\n application.academicInterests = undefined;\r\n if (interestIndex > -1) {\r\n const interestList = fieldsGroup.fields[interestIndex].value;\r\n if (interestList) {\r\n const array = Object.values(interestList.split(','));\r\n array.forEach(interest => {\r\n if (application.academicInterests) {\r\n let findInterest: number = -1;\r\n findInterest = application.academicInterests.findIndex(x => x === Number(interest));\r\n if (findInterest === -1) {\r\n application.academicInterests.push(\r\n Number(interest)\r\n );\r\n }\r\n }\r\n else {\r\n application.academicInterests = [\r\n Number(interest)\r\n ];\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // #endregion Review Information\r\n\r\n // #region Set Values for Collections\r\n private setApplicationActivitiesAdditional = (fieldsGroup: any, sectionNumber: number, activityItem: IApplicationActivity):\r\n IApplicationActivity => {\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === sectionNumber);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'activityTypeId'.length) === 'activityTypeId') {\r\n activityItem.activityType = field.value;\r\n }\r\n if (field.data.id.substr(0, 'activityId'.length) === 'activityId') {\r\n activityItem.activity = field.value;\r\n }\r\n if (field.data.id.substr(0, 'positionHeldId'.length) === 'positionHeldId') {\r\n activityItem.position = field.value;\r\n }\r\n if (field.data.id.substr(0, 'numberOfHoursPerWeekId'.length) === 'numberOfHoursPerWeekId') {\r\n activityItem.hoursPerWeek = field.value;\r\n }\r\n if (field.data.id.substr(0, 'numberOfWeeksPerYearId'.length) === 'numberOfWeeksPerYearId') {\r\n activityItem.weeksPerYear = field.value;\r\n }\r\n if (field.data.id.substr(0, 'numberOfYearsId'.length) === 'numberOfYearsId') {\r\n activityItem.numberOfYears = field.value;\r\n }\r\n if (field.data.id.substr(0, 'participated9Id'.length) === 'participated9Id') {\r\n activityItem.participatedGrade09 = Boolean(field.value);\r\n }\r\n if (field.data.id.substr(0, 'participated10Id'.length) === 'participated10Id') {\r\n activityItem.participatedGrade10 = Boolean(field.value);\r\n }\r\n if (field.data.id.substr(0, 'participated11Id'.length) === 'participated11Id') {\r\n activityItem.participatedGrade11 = Boolean(field.value);\r\n }\r\n if (field.data.id.substr(0, 'participated12Id'.length) === 'participated12Id') {\r\n activityItem.participatedGrade12 = Boolean(field.value);\r\n }\r\n if (field.data.id.substr(0, 'participatedPostSecondaryId'.length) === 'participatedPostSecondaryId') {\r\n activityItem.participatedPostsecondary = Boolean(field.value);\r\n }\r\n });\r\n return activityItem;\r\n };\r\n\r\n private setApplicationAddress = (fieldsGroup: any, address: IApplicationAddress):\r\n IApplicationAddress => {\r\n const addressTypefield = fieldsGroup.fields.findIndex(x => x.data.id === 'addressTypeId');\r\n if (addressTypefield > -1) {\r\n address.type = fieldsGroup.fields[addressTypefield].value;\r\n }\r\n const houseNumberField = fieldsGroup.fields.findIndex(x => x.data.id === 'houseNumberId');\r\n if (houseNumberField > -1) {\r\n address.houseNumber = fieldsGroup.fields[houseNumberField].value;\r\n }\r\n const addressLine1Field = fieldsGroup.fields.findIndex(x => x.data.id === 'addressLine1Id');\r\n if (addressLine1Field > -1) {\r\n address.line1 = fieldsGroup.fields[addressLine1Field].value;\r\n }\r\n const addressLine2Field = fieldsGroup.fields.findIndex(x => x.data.id === 'addressLine2Id');\r\n if (addressLine2Field > -1) {\r\n address.line2 = fieldsGroup.fields[addressLine2Field].value;\r\n }\r\n const addressLine3Field = fieldsGroup.fields.findIndex(x => x.data.id === 'addressLine3Id');\r\n if (addressLine3Field > -1) {\r\n address.line3 = fieldsGroup.fields[addressLine3Field].value;\r\n }\r\n const addressLine4Field = fieldsGroup.fields.findIndex(x => x.data.id === 'addressLine4Id');\r\n if (addressLine4Field > -1) {\r\n address.line4 = fieldsGroup.fields[addressLine4Field].value;\r\n }\r\n const addressCityField = fieldsGroup.fields.findIndex(x => x.data.id === 'addressCityId');\r\n if (addressCityField > -1) {\r\n address.city = fieldsGroup.fields[addressCityField].value;\r\n }\r\n const stateProvinceField = fieldsGroup.fields.findIndex(x => x.data.id === 'stateProvinceId');\r\n if (stateProvinceField > -1) {\r\n address.stateProvince = fieldsGroup.fields[stateProvinceField].value;\r\n }\r\n const postalCodeField = fieldsGroup.fields.findIndex(x => x.data.id === 'postalCodeId');\r\n if (postalCodeField > -1) {\r\n address.postalCode = fieldsGroup.fields[postalCodeField].value;\r\n }\r\n const countyIdField = fieldsGroup.fields.findIndex(x => x.data.id === 'addressCountyId');\r\n if (countyIdField > -1) {\r\n address.county = fieldsGroup.fields[countyIdField].value;\r\n }\r\n const addressCountryField = fieldsGroup.fields.findIndex(x => x.data.id === 'addressCountryId');\r\n if (addressCountryField > -1) {\r\n address.country = fieldsGroup.fields[addressCountryField].value;\r\n }\r\n return address;\r\n };\r\n\r\n private setApplicationAddressValues = (address: IApplicationAddress): IApplicationAddress => {\r\n address.type = address.type || 0;\r\n address.line1 = address.line1 || '';\r\n address.city = address.city || '';\r\n address.country = address.country || 0;\r\n\r\n address.line2 = address.line2 || '';\r\n address.line3 = address.line3 || '';\r\n address.line4 = address.line4 || '';\r\n address.city = address.city || '';\r\n address.stateProvince = address.stateProvince || 0;\r\n address.postalCode = address.postalCode || '';\r\n address.county = address.county || 0;\r\n\r\n return address;\r\n };\r\n\r\n private setApplicationAddressAdditional =\r\n (fieldsGroup: any, sectionNumber: number, address: IApplicationAddress): IApplicationAddress => {\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === sectionNumber);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'addressTypeId'.length) === 'addressTypeId') {\r\n address.type = field.value;\r\n }\r\n if (field.data.id.substr(0, 'houseNumberId'.length) === 'houseNumberId') {\r\n address.houseNumber = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressLine1Id'.length) === 'addressLine1Id') {\r\n address.line1 = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressLine2Id'.length) === 'addressLine2Id') {\r\n address.line2 = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressLine3Id'.length) === 'addressLine3Id') {\r\n address.line3 = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressLine4Id'.length) === 'addressLine4Id') {\r\n address.line4 = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressCityId'.length) === 'addressCityId') {\r\n address.city = field.value;\r\n }\r\n if (field.data.id.substr(0, 'stateProvinceId'.length) === 'stateProvinceId') {\r\n address.stateProvince = field.value;\r\n }\r\n if (field.data.id.substr(0, 'postalCodeId'.length) === 'postalCodeId') {\r\n address.postalCode = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressCountyId'.length) === 'addressCountyId') {\r\n address.county = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressCountryId'.length) === 'addressCountryId') {\r\n address.country = field.value;\r\n }\r\n });\r\n return address;\r\n };\r\n\r\n private setApplicationEducation = (fieldsGroup: any, education: IApplicationEducation): IApplicationEducation => {\r\n const degreefield = fieldsGroup.fields.findIndex(x => x.data.id === 'educationDegreeId');\r\n if (degreefield > -1) {\r\n education.enrollment.degreeId = fieldsGroup.fields[degreefield].value;\r\n }\r\n const curriculumField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationCurriculumId');\r\n if (curriculumField > -1) {\r\n education.enrollment.curriculumId = fieldsGroup.fields[curriculumField].value;\r\n }\r\n const honorsField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationHonorsId');\r\n if (honorsField > -1) {\r\n education.enrollment.honorsId = fieldsGroup.fields[honorsField].value;\r\n }\r\n const startDateField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationStartDateId');\r\n if (startDateField > -1) {\r\n education.enrollment.startDate = fieldsGroup.fields[startDateField].value;\r\n }\r\n const endDateField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationEndDateId');\r\n if (endDateField > -1) {\r\n education.enrollment.endDate = fieldsGroup.fields[endDateField].value;\r\n }\r\n const institutionField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationInstitutionName');\r\n if (institutionField > -1) {\r\n education.institution.name = fieldsGroup.fields[institutionField].value;\r\n }\r\n const etsCodeField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationEtsCodeId');\r\n if (etsCodeField > -1) {\r\n education.institution.etsCode = fieldsGroup.fields[etsCodeField].value;\r\n }\r\n const cityField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationCityId');\r\n if (cityField > -1) {\r\n education.institution.city = fieldsGroup.fields[cityField].value;\r\n }\r\n const stateField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationStateId');\r\n if (stateField > -1) {\r\n education.institution.stateProvinceId = fieldsGroup.fields[stateField].value;\r\n }\r\n const countryField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationCountryId');\r\n if (countryField > -1) {\r\n education.institution.countryId = fieldsGroup.fields[countryField].value;\r\n }\r\n const ficeCodeField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationFiceCode');\r\n if (ficeCodeField > -1) {\r\n education.institution.ficeCode = fieldsGroup.fields[ficeCodeField].value;\r\n }\r\n return education;\r\n };\r\n\r\n private setApplicationRelativeAdditional =\r\n (fieldsGroup: any, sectionNumber: number, relativeItem: IApplicationRelative): IApplicationRelative => {\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === sectionNumber);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'relativesPrefixId'.length) === 'relativesPrefixId') {\r\n relativeItem.relationPrefix = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesFirstNameId'.length) === 'relativesFirstNameId') {\r\n relativeItem.relationFirstName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesMiddleNameId'.length) === 'relativesMiddleNameId') {\r\n relativeItem.relationMiddleName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesLastNamePrefixId'.length) === 'relativesLastNamePrefixId') {\r\n relativeItem.relationLastNamePrefix = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesLastNameId'.length) === 'relativesLastNameId') {\r\n relativeItem.relationLastName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesSuffixId'.length) === 'relativesSuffixId') {\r\n relativeItem.relationSuffix = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesRelationshipId'.length) === 'relativesRelationshipId') {\r\n relativeItem.relationType = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesAttendedInstitutionId'.length) === 'relativesAttendedInstitutionId') {\r\n relativeItem.attendedInstitution = field.value;\r\n }\r\n });\r\n return relativeItem;\r\n };\r\n\r\n private setApplicationEducationValues = (education: IApplicationEducation): IApplicationEducation => {\r\n education.institution.city = education.institution.city || '';\r\n education.enrollment.curriculumId = education.enrollment.curriculumId || 0;\r\n education.enrollment.degreeId = education.enrollment.degreeId || 0;\r\n education.enrollment.honorsId = education.enrollment.honorsId || 0;\r\n education.enrollment.startDate = education.enrollment.startDate || undefined;\r\n education.enrollment.endDate = education.enrollment.endDate || undefined;\r\n education.institution.id = education.institution.id || 0;\r\n education.institution.name = education.institution.name || '';\r\n education.institution.etsCode = education.institution.etsCode || '';\r\n education.institution.city = education.institution.city || '';\r\n education.institution.stateProvinceId = education.institution.stateProvinceId || 0;\r\n education.institution.countryId = education.institution.countryId || 0;\r\n education.institution.ficeCode = education.institution.ficeCode || '';\r\n return education;\r\n };\r\n\r\n private setApplicationEducationAdditional = (fieldsGroup: any, sectionNumber: number, education: IApplicationEducation):\r\n IApplicationEducation => {\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === sectionNumber);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'educationDegreeId'.length) === 'educationDegreeId') {\r\n education.enrollment.degreeId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationCurriculumId'.length) === 'educationCurriculumId') {\r\n education.enrollment.curriculumId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationHonorsId'.length) === 'educationHonorsId') {\r\n education.enrollment.honorsId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationStartDateId'.length) === 'educationStartDateId') {\r\n education.enrollment.startDate = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationEndDateId'.length) === 'educationEndDateId') {\r\n education.enrollment.endDate = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationInstitutionName'.length) === 'educationInstitutionName') {\r\n education.institution.name = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationEtsCodeId'.length) === 'educationEtsCodeId') {\r\n education.institution.etsCode = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationCityId'.length) === 'educationCityId') {\r\n education.institution.city = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationStateId'.length) === 'educationStateId') {\r\n education.institution.stateProvinceId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationCountryId'.length) === 'educationCountryId') {\r\n education.institution.countryId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationFiceCode'.length) === 'educationFiceCode') {\r\n education.institution.ficeCode = field.value;\r\n }\r\n });\r\n return education;\r\n };\r\n\r\n private setApplicationResidency = (fieldsGroup: any, residency: IApplicationResidency): IApplicationResidency => {\r\n const residencyPreferenceField = fieldsGroup.fields.findIndex(x => x.data.id === 'commutePreferenceId');\r\n if (residencyPreferenceField > -1) {\r\n residency.residencyPreference = fieldsGroup.fields[residencyPreferenceField].value;\r\n }\r\n const foodPlanInterestField = fieldsGroup.fields.findIndex(x => x.data.id === 'interestedFoodPlanId');\r\n if (foodPlanInterestField > -1) {\r\n residency.foodPlanInterest = fieldsGroup.fields[foodPlanInterestField].value;\r\n }\r\n const dormPlanInterestField = fieldsGroup.fields.findIndex(x => x.data.id === 'interestedDormPlanId');\r\n if (dormPlanInterestField > -1) {\r\n residency.dormPlanInterest = fieldsGroup.fields[dormPlanInterestField].value;\r\n }\r\n const dormCampusField = fieldsGroup.fields.findIndex(x => x.data.id === 'campusOptionsId');\r\n if (dormCampusField > -1) {\r\n residency.dormCampus = fieldsGroup.fields[dormCampusField].value;\r\n }\r\n const dormBuildingField = fieldsGroup.fields.findIndex(x => x.data.id === 'dormPlanOptionsId');\r\n if (dormBuildingField > -1) {\r\n residency.dormBuilding = fieldsGroup.fields[dormBuildingField].value;\r\n }\r\n return residency;\r\n };\r\n\r\n private setApplicationRelative = (fieldsGroup: any, relative: IApplicationRelative): IApplicationRelative => {\r\n const prefixField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesPrefixId');\r\n if (prefixField > -1) {\r\n relative.relationPrefix = fieldsGroup.fields[prefixField].value;\r\n }\r\n const firstNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesFirstNameId');\r\n if (firstNameField > -1) {\r\n relative.relationFirstName = fieldsGroup.fields[firstNameField].value;\r\n }\r\n const middleNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesMiddleNameId');\r\n if (middleNameField > -1) {\r\n relative.relationMiddleName = fieldsGroup.fields[middleNameField].value;\r\n }\r\n const lastNamePrefixField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesLastNamePrefixId');\r\n if (lastNamePrefixField > -1) {\r\n relative.relationLastNamePrefix = fieldsGroup.fields[lastNamePrefixField].value;\r\n }\r\n const lastNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesLastNameId');\r\n if (lastNameField > -1) {\r\n relative.relationLastName = fieldsGroup.fields[lastNameField].value;\r\n }\r\n const suffixField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesSuffixId');\r\n if (suffixField > -1) {\r\n relative.relationSuffix = fieldsGroup.fields[suffixField].value;\r\n }\r\n const relationshipField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesRelationshipId');\r\n if (relationshipField > -1) {\r\n relative.relationType = fieldsGroup.fields[relationshipField].value;\r\n }\r\n const attendedInstitutionField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesAttendedInstitutionId');\r\n if (attendedInstitutionField > -1) {\r\n relative.attendedInstitution = Boolean(fieldsGroup.fields[attendedInstitutionField].value);\r\n }\r\n return relative;\r\n };\r\n\r\n private setApplicationRelativeValues = (relative: IApplicationRelative): IApplicationRelative => {\r\n relative.applicationId = relative.applicationId || 0;\r\n relative.relationMiddleName = relative.relationMiddleName || '';\r\n relative.relationLastNamePrefix = relative.relationLastNamePrefix || '';\r\n\r\n return relative;\r\n };\r\n\r\n private setApplicationActivitiesValues =\r\n (activity: IApplicationActivity, activityList: IApplicationActivity[]): IApplicationActivity[] => {\r\n activity.activityType = activity.activityType || 0;\r\n activity.activity = activity.activity || 0;\r\n activity.hoursPerWeek = activity.hoursPerWeek || 0;\r\n activity.weeksPerYear = activity.weeksPerYear || 0;\r\n activity.numberOfYears = activity.numberOfYears || 0;\r\n activity.participatedGrade09 = activity.participatedGrade09 || false;\r\n activity.participatedGrade10 = activity.participatedGrade10 || false;\r\n activity.participatedGrade11 = activity.participatedGrade11 || false;\r\n activity.participatedGrade12 = activity.participatedGrade12 || false;\r\n activity.participatedPostsecondary = activity.participatedPostsecondary || false;\r\n\r\n if (activity.activityType !== 0 && activity.activity !== 0) {\r\n activityList.push(activity);\r\n }\r\n else if (activity.position || activity.hoursPerWeek || activity.weeksPerYear ||\r\n activity.numberOfYears || activity.participatedGrade09 || activity.participatedGrade10 ||\r\n activity.participatedGrade11 || activity.participatedGrade12 || activity.participatedPostsecondary) {\r\n activityList.push(activity);\r\n }\r\n return activityList;\r\n };\r\n\r\n private setIpedsValuesCheckList = (fieldsGroup: IFieldsGroup): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n const ipedsCheckList = fieldsGroup.fields[3].value;\r\n if (ipedsCheckList) {\r\n const array = Object.values(ipedsCheckList.split(','));\r\n array.forEach(iped => {\r\n if (application.ipeds) {\r\n let index: number = -1;\r\n index = application.ipeds.findIndex(x => x.ipedsFederalCategoryId === 1\r\n && x.ipedsEthnicityId === Number(iped));\r\n if (index === -1) {\r\n application.ipeds.push({\r\n ipedsEthnicityId: Number(iped),\r\n ipedsFederalCategoryId: 1\r\n });\r\n }\r\n }\r\n else {\r\n application.ipeds = [{\r\n ipedsEthnicityId: Number(iped),\r\n ipedsFederalCategoryId: 1\r\n }];\r\n }\r\n });\r\n }\r\n\r\n this.setState({\r\n application: application\r\n });\r\n };\r\n\r\n private setIpedsValuesNestedCheckList = (fieldsGroup: IFieldsGroup): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n const ipedsNestedCheckboxList = fieldsGroup.fields[4].value;\r\n if (ipedsNestedCheckboxList) {\r\n const ipedsArray = ipedsNestedCheckboxList.split(',');\r\n ipedsArray.forEach(iped => {\r\n const ipedItem = iped.split('$');\r\n if (ipedItem[0] !== '') {\r\n if (ipedItem.length > 1) {\r\n if (application.ipeds) {\r\n application.ipeds.push({\r\n ipedsEthnicityId: ipedItem[1] !== '' ? Number(ipedItem[1]) : undefined,\r\n ipedsFederalCategoryId: Number(ipedItem[0])\r\n });\r\n }\r\n else {\r\n application.ipeds = [{\r\n ipedsEthnicityId: ipedItem[1] !== '' ? Number(ipedItem[1]) : undefined,\r\n ipedsFederalCategoryId: Number(ipedItem[0])\r\n }];\r\n }\r\n }\r\n else {\r\n if (application.ipeds) {\r\n application.ipeds.push({\r\n ipedsFederalCategoryId: Number(ipedItem[0])\r\n });\r\n }\r\n else {\r\n application.ipeds = [{\r\n ipedsFederalCategoryId: Number(ipedItem[0])\r\n }];\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.setState({\r\n application: application\r\n });\r\n };\r\n\r\n // #endregion Set Values for Collections\r\n // #endregion Functions\r\n\r\n // #region Error Functions\r\n private logError = (logData: ILogData): void => {\r\n LayoutActions.setLogData(logData);\r\n };\r\n\r\n private redirectError = (code: number): void => {\r\n LayoutActions.setRedirectCode(code);\r\n };\r\n\r\n private showError = (message?: string): void => {\r\n LayoutActions.setAlert({ message: message, messageType: ResultType.error } as IAlert);\r\n };\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveLayoutReady = () => {\r\n try {\r\n const {\r\n application,\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n document.title = resources.lblPageTitle;\r\n\r\n if (application) {\r\n const hdnAppId: HTMLInputElement | undefined =\r\n document.getElementById('hdnApplicationId') as HTMLInputElement;\r\n if (hdnAppId && hdnAppId.value) {\r\n application.applicationId = Number(hdnAppId.value);\r\n hdnAppId.remove();\r\n Requests.getComponents(application.applicationId, this.resolveGetComponents, this.logError);\r\n\r\n const hdnTransactionId: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionId') as HTMLInputElement;\r\n const hdnTransactionStatus: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionStatus') as HTMLInputElement;\r\n const hdnTransactionAmount: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionAmount') as HTMLInputElement;\r\n const hdnTransactionDescription: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionDescription') as HTMLInputElement;\r\n const hdnTransactionAuthorizationNumber: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionAuthorizationNumber') as HTMLInputElement;\r\n const hdnTransactionReturnUrl: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionReturnUrl') as HTMLInputElement;\r\n if (hdnTransactionId && hdnTransactionId.value\r\n && hdnTransactionStatus\r\n && hdnTransactionAmount\r\n && hdnTransactionDescription\r\n && hdnTransactionAuthorizationNumber\r\n && hdnTransactionReturnUrl) {\r\n const paymentTransaction: IPaymentTransaction = {\r\n amount: hdnTransactionAmount.value,\r\n authorizationNumber: hdnTransactionAuthorizationNumber.value,\r\n description: hdnTransactionDescription.value,\r\n returnUrl: hdnTransactionReturnUrl.value,\r\n status: Number(hdnTransactionStatus.value),\r\n transactionId: Number(hdnTransactionAmount.value)\r\n } as IPaymentTransaction;\r\n this.setState({\r\n paymentModalOpenFail: Number(hdnTransactionStatus.value) === 0,\r\n paymentModalOpenSuccess: Number(hdnTransactionStatus.value) === 1,\r\n paymentTransaction: paymentTransaction\r\n });\r\n hdnTransactionId.remove();\r\n hdnTransactionStatus.remove();\r\n hdnTransactionAmount.remove();\r\n hdnTransactionDescription.remove();\r\n hdnTransactionAuthorizationNumber.remove();\r\n hdnTransactionReturnUrl.remove();\r\n }\r\n }\r\n else {\r\n const hdnSavedApplicationToken: HTMLInputElement | undefined =\r\n document.getElementById('hdnSavedApplicationToken') as HTMLInputElement;\r\n if (hdnSavedApplicationToken && hdnSavedApplicationToken.value) {\r\n this.setState({\r\n token: hdnSavedApplicationToken.value\r\n });\r\n hdnSavedApplicationToken.remove();\r\n Requests.getSavedApplicationComponents(hdnSavedApplicationToken.value, this.resolveGetComponents, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.logError(LogData.noResources(this.resolveLayoutReady.name));\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveLayoutReady.name, e));\r\n }\r\n };\r\n\r\n private resolveCountries = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveCountries.name);\r\n\r\n if (result?.status) {\r\n const countries: any = result.data;\r\n\r\n this.setState({\r\n countries: countries\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveCountries.name, e));\r\n }\r\n };\r\n\r\n private resolveGetAddress = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetAddress.name);\r\n\r\n if (result?.status) {\r\n const rowsPerPageOptions: number[] = this.getRowsPerPageOptions(result.data.overallCount\r\n ? result.data.overallCount : 0);\r\n this.setState({\r\n addresses: result.data.addresses,\r\n rowsPerPageOptions,\r\n total: result.data.overallCount\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetAddress.name, e));\r\n }\r\n };\r\n\r\n private resolveGetComponents = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetComponents.name);\r\n\r\n if (result?.status) {\r\n const components: IApplicationForm = result.data;\r\n if (components.steps) {\r\n const errors: IApplicationErrors[] = Array(components.steps.length);\r\n if (components.applicationFormId > 0) {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n application.applicationId = components.applicationFormId;\r\n }\r\n if (components.savedApplicationId) {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n application.savedApplicationId = components.savedApplicationId;\r\n }\r\n if (components.canSaveApplication) {\r\n this.setState({\r\n confirmationMessage: components.confirmationSaveMessage,\r\n saveMessage: components.footerSaveMessage,\r\n showSaveButton: components.canSaveApplication\r\n });\r\n }\r\n\r\n components.steps.forEach((step, i) => {\r\n errors[i] = { isStepError: false, groupErrors: Array(step.fieldsGroups.length), stepTitle: step.title };\r\n for (let j = 0; j < step.fieldsGroups.length; j++) {\r\n errors[i].groupErrors[j] = {\r\n firstSectionErrors: {\r\n firstFieldsErrors: [],\r\n isFirstSectionErrors: false\r\n },\r\n groupId: step.fieldsGroups[j].id,\r\n isGroupError: false,\r\n sectionErrors: []\r\n };\r\n }\r\n });\r\n\r\n const {\r\n paymentModalOpenFail,\r\n paymentModalOpenSuccess\r\n } = this.state;\r\n\r\n if (paymentModalOpenFail || paymentModalOpenSuccess) {\r\n components.isCompletedApplication = true;\r\n this.setState({\r\n showAttachments: false\r\n });\r\n }\r\n\r\n this.setState({\r\n components: components,\r\n errors: errors\r\n }, () => LayoutActions.setLoading(false));\r\n\r\n const fileSelector = this.buildFileSelector();\r\n\r\n this.setState({\r\n fileSelector: fileSelector\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetComponents.name, e));\r\n }\r\n };\r\n\r\n private resolveGetChildOptions = (json: string): void => {\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n if (components) {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetChildOptions.name);\r\n\r\n if (result?.status) {\r\n if (result.data) {\r\n if (result.data.step && result.data.group && result.data.targetId) {\r\n const fields: any = components.steps[Number(result.data.step)].fieldsGroups[Number(result.data.group)].fields;\r\n const fieldIndex: number =\r\n fields.findIndex(x => x.data.id === result.data.targetId);\r\n if (fieldIndex > -1) {\r\n const childField: IFieldForm = fields[fieldIndex];\r\n if (result.data.results) {\r\n childField.data.options = result.data.results as IDropDownOption[];\r\n }\r\n else {\r\n childField.data.options = [] as IDropDownOption[];\r\n }\r\n if (childField) {\r\n childField.value = undefined;\r\n }\r\n this.setState({\r\n components: components\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetChildOptions.name, e));\r\n }\r\n };\r\n\r\n private resolveGetInstitutions = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetInstitutions.name);\r\n\r\n if (result?.status) {\r\n const rowsPerPageOptions: number[] = this.getRowsPerPageOptions(result.data.overallCount\r\n ? result.data.overallCount : 0);\r\n this.setState({\r\n institutions: result.data.institutions,\r\n rowsPerPageOptions,\r\n total: result.data.overallCount\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetInstitutions.name, e));\r\n }\r\n };\r\n\r\n private resolveStates = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveStates.name);\r\n\r\n if (result?.status) {\r\n const states: any = result.data;\r\n\r\n this.setState({\r\n states: states\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveStates.name, e));\r\n }\r\n };\r\n\r\n private resolveSaveIncompleteApplication = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveSaveIncompleteApplication.name);\r\n\r\n if (result?.status) {\r\n if (result.data.result) {\r\n const {\r\n components\r\n } = this.state;\r\n // Send notification\r\n if (components && result.data.token && result.data.email && components.name) {\r\n LayoutActions.setLoading(false);\r\n const urlToSend = `${window.location.origin}${Constants.webUrl}/Admissions/ApplicationForm/Saved/${result.data.token}`;\r\n Requests.postCreateSaveApplicationNotification(urlToSend,\r\n result.data.email, components.name, this.resolveCreateSaveApplicationNotification, this.logError);\r\n this.setState({\r\n openConfirmationSavedModal: true\r\n });\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveSaveIncompleteApplication.name, e));\r\n }\r\n };\r\n\r\n private resolveCreateSaveApplicationNotification = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveCreateSaveApplicationNotification.name);\r\n\r\n if (!result?.status) {\r\n this.logError(LogData.badJsonResult(this.resolveCreateSaveApplicationNotification.name));\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveCreateSaveApplicationNotification.name, e));\r\n }\r\n };\r\n\r\n private resolveSubmitApplication = (json: string): void => {\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveSubmitApplication.name);\r\n\r\n if (result?.status) {\r\n if (result.data.result) {\r\n if (components) {\r\n if (result.data.applicationId) {\r\n this.setState({\r\n applicationId: result.data.applicationId\r\n });\r\n }\r\n if (result.data.paymentInfo) {\r\n this.setState({\r\n paymentInfo: result.data.paymentInfo\r\n });\r\n }\r\n // Attachments are after sumbit and before payment\r\n if (components.allowAttachment) {\r\n const {\r\n applicationId\r\n } = this.state;\r\n if (applicationId !== undefined && applicationId > 0) {\r\n Requests.postListApplicationAttachments(applicationId, this.resolveGetListApplicationAttachments, this.logError);\r\n this.setState({\r\n showAttachments: true\r\n });\r\n }\r\n }\r\n else {\r\n if (result.data.paymentInfo) {\r\n const returnUrl =\r\n `${Constants.webUrl}/Admissions/ApplicationForm/${components.applicationFormId}`;\r\n\r\n this.setState({\r\n paymentDetailModalOpen: true,\r\n paymentInfo: result.data.paymentInfo,\r\n returnUrl: returnUrl\r\n });\r\n }\r\n else {\r\n components.isCompletedApplication = true;\r\n this.setState({\r\n components: components\r\n });\r\n }\r\n }\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n else {\r\n this.showError();\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveSubmitApplication.name, e));\r\n }\r\n };\r\n\r\n private resolveValidateScore = (json: string): void => {\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveValidateScore.name);\r\n\r\n if (result?.status && components) {\r\n components.steps.forEach(step => {\r\n const group: IFieldsGroup | undefined = step.fieldsGroups.find(g => g.id === result.data.group);\r\n if (group) {\r\n const field: IFieldForm | undefined = group.fields.find(f => f.data.id === result.data.componentId);\r\n if (field) {\r\n if (result.data.isNumeric) {\r\n field.isNumeric = true;\r\n } else {\r\n field.isNumeric = false;\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.setState({\r\n components: this.state.components\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveValidateScore.name, e));\r\n }\r\n };\r\n\r\n private resolveCreateAttachment = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveCreateAttachment.name);\r\n\r\n if (result?.status) {\r\n if (result.data.result) {\r\n const {\r\n applicationId\r\n } = this.state;\r\n if (applicationId !== undefined && applicationId > 0) {\r\n LayoutActions.setLoading(true);\r\n Requests.postListApplicationAttachments(applicationId, this.resolveGetListApplicationAttachments, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveCreateAttachment.name, e));\r\n }\r\n };\r\n\r\n private resolveGetListApplicationAttachments = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetListApplicationAttachments.name);\r\n\r\n if (result?.status) {\r\n if (result.data) {\r\n this.setState({\r\n attachments: result.data.appAttachmentsViewModel,\r\n openRemoveAttachmentDialog: false\r\n });\r\n const {\r\n applicationId\r\n } = this.state;\r\n if (applicationId) {\r\n LayoutActions.setLoading(true);\r\n Requests.GetApplicationAttachmentTotals(applicationId, this.resolveGetAttachmentTotals, this.logError);\r\n }\r\n const fileSelector = this.buildFileSelector();\r\n this.setState({\r\n fileSelector: fileSelector\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetListApplicationAttachments.name, e));\r\n }\r\n };\r\n\r\n private resolveRemoveAttachment = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveRemoveAttachment.name);\r\n\r\n if (result?.status) {\r\n if (result.data) {\r\n const {\r\n applicationId\r\n } = this.state;\r\n if (applicationId) {\r\n LayoutActions.setLoading(true);\r\n Requests.postListApplicationAttachments(applicationId, this.resolveGetListApplicationAttachments, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveRemoveAttachment.name, e));\r\n }\r\n };\r\n\r\n private resolveGetAttachmentTotals = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetAttachmentTotals.name);\r\n\r\n if (result?.status) {\r\n this.setState({\r\n attachmentsTotalSize: result.data.appAttachmentTotalsViewModel.totalAttachmentSize,\r\n attachmentsTotalSizeNumber: Number(result.data.appAttachmentTotalsViewModel.totalAttachmentSizeNumber),\r\n totalNumberOfAttachments: Number(result.data.appAttachmentTotalsViewModel.totalNumberOfAttachments)\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetAttachmentTotals.name, e));\r\n }\r\n };\r\n\r\n private resolveGetGeneralSettings = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetGeneralSettings.name);\r\n if (result?.status) {\r\n this.setState({\r\n governmentIdFormat: result.data.general.governmentIdFormat\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetGeneralSettings.name, e));\r\n }\r\n };\r\n\r\n private resolveGetReCaptchaSettings = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetReCaptchaSettings.name);\r\n if (result?.status) {\r\n this.setState({\r\n isReCaptchaSubmitApplicationEnabled: result.data.isReCaptchaSubmitApplicationEnabled,\r\n reCaptchaSiteKey: result.data.reCaptchaSiteKey || ''\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetReCaptchaSettings.name, e));\r\n }\r\n };\r\n // #endregion Resolvers\r\n\r\n // #region State Management Events\r\n private onLayoutReady = (): void => {\r\n const ready: boolean = LayoutStore.getLayoutReady();\r\n const resources: IApplicationFormResources | undefined = LayoutStore.getResources();\r\n const cultures: ICultures = LayoutStore.getCultures();\r\n\r\n if (ready) {\r\n Requests.getStates(this.resolveStates, this.logError);\r\n Requests.getCountries(this.resolveCountries, this.logError);\r\n Requests.getGeneralSettings(this.resolveGetGeneralSettings);\r\n Requests.getReCaptchaSettings(this.resolveGetReCaptchaSettings);\r\n\r\n this.setState({\r\n dateTimeCulture: cultures.dateTimeCulture,\r\n firstDayOfWeek: cultures.firstDayOfWeek,\r\n shortDatePattern: cultures.shortDatePattern,\r\n\r\n // Resources\r\n resources: resources\r\n }, this.resolveLayoutReady);\r\n }\r\n else {\r\n this.setState({\r\n componentError: true\r\n }, () => this.logError(LogData.layoutNoReady(this.onLayoutReady.name)));\r\n }\r\n };\r\n // #endregion State Management Events\r\n\r\n // #region Lifecycle\r\n public componentWillUnmount = (): void => {\r\n LayoutStore.removeLayoutReadyListener(this.onLayoutReady);\r\n };\r\n\r\n public componentDidCatch = (error, info): void => {\r\n this.setState({\r\n componentError: true\r\n }, () => {\r\n this.logError(LogData.fromComponentException(this.componentDidCatch.name, error, info));\r\n this.redirectError(500);\r\n });\r\n };\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n activeStep,\r\n addresses,\r\n attachments,\r\n attachmentsTotalSize,\r\n changeEmailText,\r\n componentError,\r\n components,\r\n confirmationMessage,\r\n countries,\r\n dateTimeCulture,\r\n emailField,\r\n emptyEmailField,\r\n errors,\r\n expanded,\r\n fileName,\r\n firstDayOfWeek,\r\n hasPersonId,\r\n hasSearchZipCode,\r\n institutions,\r\n invalidEmail,\r\n openAddressSearchModal,\r\n openETSSearchModal,\r\n pageNumber,\r\n pageSize,\r\n paymentModalOpenFail,\r\n paymentModalOpenSuccess,\r\n paymentTransaction,\r\n resources,\r\n rowsPerPageOptions,\r\n openConfirmationSavedModal,\r\n openEmailModal,\r\n openNotAvailableModal,\r\n openRemoveAttachmentDialog,\r\n openSupportedFilesModal,\r\n saveMessage,\r\n selectedCity,\r\n selectedCountry,\r\n selectedEtsCode,\r\n selectedInstitutionName,\r\n selectedState,\r\n selectedZipCode,\r\n shortDatePattern,\r\n showAttachments,\r\n showSaveButton,\r\n showSignIn,\r\n showSignUp,\r\n states,\r\n total,\r\n\r\n // Payment\r\n paymentDetailModalOpen,\r\n paymentInfo,\r\n paymentModalOpenProcess,\r\n returnUrl,\r\n\r\n // Settings\r\n governmentIdFormat,\r\n\r\n // ReCaptcha\r\n isReCaptchaSubmitApplicationEnabled,\r\n reCaptchaError,\r\n reCaptchaSiteKey,\r\n uiCulture\r\n } = this.state;\r\n\r\n // #region Payment modals\r\n let processPaymentModal: JSX.Element | undefined;\r\n if (paymentModalOpenProcess && paymentInfo) {\r\n processPaymentModal = (\r\n \r\n );\r\n }\r\n // #endregion Payment modals\r\n\r\n let addressSearchModal: JSX.Element | undefined;\r\n\r\n if (resources && resources.addressSearchModal) {\r\n addressSearchModal = (\r\n \r\n );\r\n }\r\n\r\n let etsSearchModal: JSX.Element | undefined;\r\n if (resources && resources.etsSearchModal && states && countries) {\r\n etsSearchModal = (\r\n \r\n );\r\n }\r\n\r\n let confirmationSavedModal: JSX.Element | undefined;\r\n if (resources && confirmationMessage) {\r\n confirmationSavedModal = (\r\n \r\n );\r\n }\r\n\r\n let emailModal: JSX.Element | undefined;\r\n if (resources && openEmailModal) {\r\n emailModal = (\r\n \r\n {resources.emailModal.lblSave}\r\n \r\n )}\r\n id=\"emailModal\"\r\n header={resources.emailModal.lblSaveApplication}\r\n maxWidth=\"md\"\r\n open={openEmailModal}\r\n onClose={this.onCloseEmailModal}\r\n >\r\n \r\n \r\n \r\n {emailField && changeEmailText ? resources.emailModal.lblSaveApplicationInstructions\r\n : resources.emailModal.lblSaveApplicationEmptyEmailIns}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let notAvailableModal: JSX.Element | undefined;\r\n if (resources && openNotAvailableModal) {\r\n notAvailableModal = (\r\n \r\n {resources.notAvailableModal.lblOk}\r\n \r\n )}\r\n id=\"notAvailableModal\"\r\n header={resources.notAvailableModal.lblNotAvailable}\r\n maxWidth=\"md\"\r\n open={openNotAvailableModal}\r\n onClose={this.onCloseNotAvailableModal}\r\n >\r\n \r\n \r\n \r\n {resources.notAvailableModal.lblNotAvailableMessage}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let supportedFiles: JSX.Element | undefined;\r\n if (resources && components && components.fileTypes) {\r\n const supportedFilesBody: JSX.Element[] = [];\r\n components.fileTypes.forEach((availableFileType, i) => {\r\n let fileExt = '';\r\n const fileExtensions = availableFileType.fileExtension.split(';');\r\n fileExtensions.forEach(fExt => {\r\n fileExt = fileExt + fExt.replace('*.', '');\r\n });\r\n fileExt = fileExt.replace(/ /g, ', ');\r\n supportedFilesBody.push(\r\n \r\n \r\n \r\n {fileExt}\r\n \r\n \r\n \r\n );\r\n });\r\n\r\n supportedFiles = (\r\n \r\n \r\n {supportedFilesBody}\r\n \r\n
\r\n );\r\n }\r\n\r\n let supportedFilesModal: JSX.Element | undefined;\r\n if (resources && openSupportedFilesModal) {\r\n supportedFilesModal = (\r\n \r\n {resources.attachments.lblClose}\r\n \r\n )}\r\n id=\"supportedFilesModal\"\r\n header={resources.attachments.lblSupportedFilesTitle}\r\n maxWidth=\"md\"\r\n open={openSupportedFilesModal}\r\n onClose={this.onCloseSupportedFilesModal}\r\n >\r\n \r\n \r\n {supportedFiles}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let attachmentsComponent: JSX.Element | undefined;\r\n if (resources && components && components.fileTypes) {\r\n attachmentsComponent = (\r\n \r\n );\r\n }\r\n\r\n let removeAttachmentModal: JSX.Element | undefined;\r\n if (resources && openRemoveAttachmentDialog) {\r\n removeAttachmentModal = (\r\n \r\n );\r\n }\r\n\r\n let signInModal: JSX.Element | undefined;\r\n if (!hasPersonId) {\r\n signInModal = (\r\n \r\n );\r\n }\r\n\r\n let signUpModal: JSX.Element | undefined;\r\n if (showSignUp) {\r\n signUpModal = (\r\n \r\n );\r\n }\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (!componentError && resources) {\r\n // #region Payment Info modal\r\n let paymentInfoModal: JSX.Element | undefined;\r\n if (paymentInfo && components && paymentDetailModalOpen) {\r\n paymentInfoModal = (\r\n \r\n );\r\n }\r\n // #endregion Payment Info modal\r\n\r\n if (components) {\r\n if (!showAttachments) {\r\n contentPage = (\r\n <>\r\n \r\n {paymentInfoModal}\r\n \r\n );\r\n }\r\n else {\r\n contentPage = (\r\n <>\r\n {attachmentsComponent}\r\n \r\n );\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {contentPage}\r\n {addressSearchModal}\r\n {etsSearchModal}\r\n {processPaymentModal}\r\n {confirmationSavedModal}\r\n {emailModal}\r\n {notAvailableModal}\r\n {supportedFilesModal}\r\n {removeAttachmentModal}\r\n {signInModal}\r\n {signUpModal}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst ApplicationFormViewWithLayout = withLayout(ApplicationFormView);\r\n// #endregion Component\r\n\r\n// RenderDOM: Component\r\nReactDOM.render(, document.getElementById('root'));","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 63120,\n\t\"./it-ch.js\": 63120,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 18;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t18: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_hedtech_powercampus_self_service\"] = self[\"webpackChunk_hedtech_powercampus_self_service\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [464], () => (__webpack_require__(60072)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","props","classNameButtonText","classNameIconButton","disabled","lblPrint","link","resources","_useState","useState","_useState2","_slicedToArray","open","setOpen","onClickPrint","window","location","assign","React","Hidden","smDown","Button","TextProps","display","IconProps","name","align","className","id","textVariantStyling","variant","onClick","mdUp","IconButton","color","Icon","large","Snackbar","ContentProps","message","lblPrintProcess","type","ResultType","onClose","PaymentOrigin","PaymentDetailModal","_React$Component","_inherits","_super","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","json","result","Resolver","resolveGetResources","status","setState","data","e","logError","LogData","idModule","idPage","state","getInitialState","_createClass","key","value","this","componentError","logData","LayoutActions","code","RequestsLayout","componentDidMount","error","info","_this2","componentDidCatch","redirectError","contentPage","_this$props","classes","coupons","enableOnlinePayment","paymentInfo","paymentInfoNoChanges","paymentMethod","paymentOrigin","titleName","yearTerm","onApplyCoupon","onChangeCouponCode","onChangePaymentAnotherAmount","onChangePaymentMethod","onPay","onRemoveCoupon","_this$state","paymentMethods","headerModal","footerModal","rowClassName","isFirstRow","hasCharges","Registration","currentBalanceValue","totalAmountValue","push","description","Format","formatBalance","currentBalance","errorTextAnotherAmount","errorAnotherAmount","modified","Boolean","anotherAmount","invalidAnotherAmount","lblAnotherAmountInvalid","undefined","lblAnotherAmountRequired","lblAnotherAmount","nodeComplement","TextField","helperText","size","onChange","ConEdRegistration","useTransactionChargesOnly","paymentDueValue","Text","formatTitle","Grid","container","alignItems","justifyContent","item","xs","instructionsContainer","lblInstructions","statementNumber","Print","printing","lblPrintStatement","concat","Constants","spacing","RadioGroup","options","amountContainer","direction","discountApplied","totalAmount","lblDiscountedTotal","lblTotal","paymentDue","lblPaymentDue","ButtonGroup","requireOnlinePayment","btnBillMeLater","btnPay","btnOk","Modal","disableBackdropClick","disableEscapeKeyDown","disableHeaderTypography","header","maxWidth","footer","showTitleBarClose","lblDiscountTitle","lblDiscountInstructions","map","coupon","ci","sm","md","lg","isNew","noDeleteButton","btnDeleteCoupon","isApplied","isModified","isValid","lblDiscountCouponInvalid","lblDiscountCouponRequired","label","lblDiscountCoupon","maxCharacters","onEnterPress","btnApplyCoupon","lblDetail","chargeCredits","Table","breakpoint","root","table","TableHead","TableRow","TableCell","component","lblCourse","lblCharge","lblAmount","find","c","isCredit","lblDiscount","TableBody","row","cci","length","sectionId","noBottomBorder","columnName","scope","isOther","eventId","eventName","formatTitleSection","lblOthers","Application","amount","lblProgramFees","discountAmount","TableFooter","colSpan","footerPayment","classnames","footerTextSpacing","formatDiscountedTotal","formatTotal","formatPaymentDue","withStyles","theme","createStyles","backgroundColor","Tokens","height","marginBottom","paddingBottom","paddingLeft","paddingRight","paddingTop","width","marginTop","borderBottomColor","breakpoints","up","postProcessPayment","paymentRequest","resolver","resolveError","Request","postProcessTranscriptPayment","requestTranscripts","postProcessDonationPayment","giftCampaigns","ProcessPaymentModal","applicationId","conEdTransactionId","personId","returnUrl","termSessionId","periodId","split","paymentPeriod","sessionPeriodId","Number","termPeriodId","term","year","Requests","resolvePostProcessPayment","onOk","replace","encodeURI","showError","messageType","_this$props2","lblTitle","btnCancel","Alert","text","lblContentText","AuthStatus","authenticateUser","userName","password","changePassword","passwordChange","getAuthenticationMode","isForgotPasswordEnabled","sendForgotPasswordEmail","reCaptchaResponse","styles","forgotPasswordLink","forgotText","loginCard","animation","loginText","reCaptchaContent","reCaptchaErrorText","signInButton","spacingAlert","spacingTitle","SignIn","LayoutStore","onAfterSignIn","URLSearchParams","search","get","newState","isLoading","includes","Redirect","OnFinishSignIn","event","alert","target","passwordModified","onChangePassword","userNameModified","onChangeUserName","isLoadingNext","isLoadingSignIn","onCloseModal","onGoSignUp","onGoSignUpModal","_this$userNameRef","showLoaderNext","resolveGetAuthenticationMode","userNameRef","current","focus","onNext","_this$passwordRef","_this$state2","authMode","variation","showLoaderSignIn","resolveAuthenticateUser","timeout","Math","floor","random","setTimeout","lblInvalidCredentials","hideLoaderSignIn","passwordRef","onSignIn","_this$userNameRef2","onUseAnotherAccount","_this$state3","accountValidations","errorCurrentPassword","newPassword","validations","PasswordValidation","PasswordConfirmationStore","confirmPassword","PasswordConfirmationActions","hasErrors","isCurrentPwdNewPwd","showLoaderChangePassword","currentPassword","resolveChangePassword","onChangePasswordButton","_this$userNameRef3","onCloseChangePassword","onChangePasswordValidation","userNameRecovery","userNameRecoveryModified","onChangeUserNameRecovery","emailSent","openForgotPassword","_this$userNameRecover","userNameRecoveryRef","onClickForgotPassword","_this$state4","stepNumber","reCaptchaError","_this$userNameRef4","_this$passwordRef2","StoreMode","onCloseForgotPassword","token","onRecaptchaChange","onReCaptchaError","_this$reCaptchaRef","_this$state5","isReCaptchaEnabled","reCaptchaRef","getValue","showLoaderSendEmail","resolveSendForgotPasswordEmail","onSendEmail","isLoadingChangePassword","isLoadingSendEmail","lblGenericError","hideAllLoaders","mode","_this$passwordRef3","hideLoaderNext","showSignInError","_this$passwordRef4","authResponse","success","Success","changePasswordAtNextLogon","openChangePassword","InvalidCredentials","IsLocked","_authResponse$attempt","attempt","remainingLockedOutTime","formatLockedAccount","lblLocked","InvalidPassword","_authResponse$attempt2","remainingAttempts","formatInvalidAttempts","_this$state6","response","updatedSuccessfully","errors","ChangePasswordError","isNotPreviousPassword","hideLoaderChangePassword","resolveIsForgotPasswordEnabled","reCaptchaSiteKey","hideLoaderSendEmail","uiCulture","_this$state7","hideLoader","title","content","button","_this$state8","loading","btnChangePassword","lblChangePassword","lblChangePasswordInstructions","PasswordConfirmation","route","weight","lblForgotPasswordTitle","btnClose","btnSendEmail","role","formatEmailSent","lblForgotPasswordInstructions","autoComplete","lblUserNameRequired","lblUserName","ref","ReCAPTCHA","hl","sitekey","onExpired","onErrored","lblReCaptchaRequired","lblLogInTitle","overModal","Paragraph","events","lblUseAnotherAccount","btnNext","btnSingIn","lblPasswordRequired","lblPassword","passwordToggle","btnForgot","Card","CardContent","withWidth","IPasswordPolicyErrors","getEmailRegExp","getPasswordPolicy","appArea","getReCaptchaSettings","postSignUpApplication","account","postSignUpConed","postValidatePassword","passwordModel","margin","marginLeft","popperText","spacingButtons","spacingInstructions","textAlign","SignUp","emailRegExp","firstName","firstNameModified","lastName","lastNameModified","email","emailInvalid","emailIsValid","emailModified","onChangeTextField","isLoadingSave","componentValidations","isValidRecaptcha","showLoaderSave","resolvePostSignUp","onCreateAccount","onGoSignIn","onGoSignInModal","resolveGetEmailRegExp","resultSignUp","onAfterSignUp","lblCreatedSuccessfully","userAccountStatus","unableToDefineUserName","cannotCreateAccount","userAlreadyExists","existingUser","hideLoaderSave","resolveGetReCaptchaSettings","peopleId","anchorEl","newAccountContent","reCaptchaElement","errorTextFirstName","errorFirstName","lblFirstNameRequired","errorTextLastName","errorLastName","lblLastNameRequired","errorTextEmail","errorEmail","lblEmailInvalid","lblExistingUser","lblEmailRequired","lblCreateAccount","btnCreateAccount","src","lblCannotCreateAccount","noCompareAgainstPreviousPwd","topElements","lblContactInformation","lblFirstName","required","lblLastName","lblEmail","paginationComponent","bodyModal","addresses","hasSearchZipCode","pageNumber","pageSize","rowsPerPageOptions","totalAddress","zipCode","onChangePage","onChangeRowsPerPage","onClear","onClickLink","onSearch","btnSearch","btnClear","tableBody","forEach","address","j","lblZipCode","city","stateProvinceId","countryId","countyId","lblCity","lblState","lblCounty","county","lblCountry","country","lblNoResults","Pagination","count","page","rowsPerPage","onPageChange","onRowsPerPageChange","category","federalCategory","fontWeight","sectionIndex","dateTimeCulture","expandedPanelId","fields","governmentIdFormat","groupIndex","isExpansionPanel","isHorizontalAligned","shortDatePattern","stepIndex","onChangeCheckBox","onChangeDropDown","onChangeDateTimeField","onChangeExpansionPanel","onChangeListCheckbox","onChangeRadioGroup","onClickButton","onDeleteItem","elements","ids","sectionIndexes","sectionElements","sectionContainers","headerDeleteElement","headerTitleElements","firstHeaderTitleElement","getId","idStringArray","index","setHeaderTitleElements","field","isExpansionPanelHeader","lblNew","splice","componentType","selectedOption","findIndex","x","fillElements","fieldElement","groupErrors","groupId","lblPrimary","fieldSize","gridSize","substr","buttonId","isPostalCode","isRequired","String","lblSearch","format","placeholder","emptyOption","lblSelect","exist","option","toString","Dropdown","multiple","allowMultipleSelection","checked","Checkbox","DatePicker","culture","idDelete","btnDelete","messageRequired","isCheck","chkElements","i","array","Object","values","FormControlLabel","control","FormControl","FormGroup","colorText","isWithLink","actionUrl","actions","action","_event","href","errorMessage","iped","ipedItem","ipedsEthnicityId","ipedsFederalCategoryId","elementsList","complexOptions","complexItem","childIsChecked","parentIsChecked","List","TextLink","alt","dangerouslySetInnerHTML","__html","sectionErrors","section","ExpansionPanel","applicationFormError","isSectionError","background","expandIcon","expanded","isWidthUp","setMultipleFields","firstSectionErrors","isFirstSectionErrors","buttonTop","groupTitleBottom","labelElement","instructionsElement","fieldGroup","fieldGroupIndex","firstDayOfWeek","onAddMore","isDisabled","isDisableButton","isMultiple","instructions","FieldsHandler","maximumAllowed","lblAddNew","containerDetails","padding","failedPayment","paymentTransaction","successPayment","onCloseFailedPayment","resourcesApplicationHandler","lblContentTextApplication","lblTitleDetails","Divider","lblDescription","lblAuthorizationCode","authorizationNumber","FieldsGroupHandler","backButtonMovil","boxStep","boxShadow","buttonContainer","buttonsContainerMovil","marginRight","buttonStep","cardRoot","fieldContainer","footerPadding","inline","mobileStepperContent","minHeight","saveButtonMargin","saveFooter","stepperDesktop","activeStep","components","saveMessage","showSaveButton","onBackStep","onClickSave","onClickStep","onNextStep","onSubmit","isReCaptchaSubmitEnabled","noContent","MessageStyled","classMessage","lblNotAvailable","steps","Array","step","fieldsGroupsElements","fieldsGroups","fieldsGroupsModal","isCompletedApplication","confirmationGroup","confirmationIndex","ApplicationCompletedModal","footerGroup","footerGroupIndex","accent","Media","query","matches","MobileStepper","position","nextButton","fluid","lblNext","backButton","lblBack","MobileStepperTitle","feeAmount","isFlatFee","formatHasFee","formatHasFees","MobileStepperStep","MobileStepperLabel","StepProgress","nonLinear","orientation","Step","StepButton","StepLabel","isStepError","optional","formatCompleteStep","lblSubmit","StepContent","lblSave","icon","palette","active","cursor","marginRigth","attachments","numberOfAttachments","totalSize","onClickContinue","onClickInfo","onClickOpenFolder","onClickRemoveAttachment","lblName","lblType","lblSize","lblDelete","attachment","attachmentTitle","extension","fileSize","Tooltip","placement","applicationAttachmentId","lblChooseFile","lblSupportedFiles","lblAttachments","lblTotalSize","lblNoUploads","lblContinue","confirmationMessage","tableInstitutions","countries","etsCode","institutionName","institutions","states","totalInstitutions","onChangeDropDownETSSearch","onChangeTextFieldETSSearch","emptyOptionState","lblEmptyOptionState","emptyOptionCountry","lblEmptyOptionCountry","lblInstitutionName","lblETSCode","lblFICECode","Link","ficeCode","stateDesc","countryDesc","getAddresses","startIndex","getComponents","getSavedApplicationComponents","savedApplicationToken","postSubmit","application","postCreateSavedApplication","savedApplication","postCreateSaveApplicationNotification","urlToSend","formApplicationName","postCreateApplicationAttachment","applicationAttachment","postListApplicationAttachments","postDeleteApplicationAttachment","attachmentId","getApplicationAttachments","GetApplicationAttachmentTotals","getChildOptions","url","group","targetId","isApplicationForm","formId","getValidateScoreType","test","componentId","testId","getCountries","getStates","getInstitutions","stateId","institution","getGeneralSettings","getApplications","postDeleteSavedApplication","savedApplicationId","postUpdateSavedApplication","getStatusSettings","getSubmittedApplications","ApplicationFormView","paymentDetailModalOpen","onClosePaymentDetailModal","paymentModalOpenProcess","onClosePaymentModalProcess","fileSelector","document","createElement","supportedTypes","fileTypes","fileType","fileExtension","fileExt","setAttribute","onchange","onChangeFile","bind","buildFileSelector","mediaId","mediaTypeId","getMediaTypeId","inputFile","temporaryFileReader","FileReader","Promise","resolve","onload","encoded","repeat","readAsDataURL","readUploadedFile","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","file","fileName","attachmentsTotalSizeNumber","totalNumberOfAttachments","bytes","fileContents","newFile","_context","prev","next","stopPropagation","preventDefault","files","lblTotalAttachmentsError","toFixed","maxAttachmentSize","lblAttachmentsSizeError","lblAllAttachmentsSizeError","maxApplicationAttachmentSize","sent","fileContent","resolveCreateAttachment","t0","stop","_x","apply","arguments","click","applicationFormId","showAttachments","openSupportedFilesModal","onCloseSupportedFilesModal","fieldButtonId","fileId","openRemoveAttachmentDialog","onClickRemoveAttachmentButton","resolveRemoveAttachment","onCloseRemoveAttachmentModal","showSignIn","onCloseSignIn","showSignUp","onCloseSignUp","onOpenSignIn","onOpenSignUp","emailField","onSaveEmailField","onSaveApplication","currentTarget","openAddressSearchModal","selectedZipCode","onCloseAddressSearchModal","selectedFieldId","fieldId","assignFieldValue","onClickZipCodeLink","onChangeTextFieldAddressSearch","resolveGetAddress","total","previousSize","selectedEtsCode","selectedCity","selectedInstitutionName","openETSSearchModal","selectedCountry","selectedState","onCloseETSSearchModal","optionSelected","resolveGetInstitutions","newComponents","phoneFields","numRow","idFields","resolveLayoutReady","applicationTop","getElementById","scrollIntoView","layoutId","person","temporaryEmail","applicationFormSettingId","formLayoutId","RequestsApplication","resolveSaveIncompleteApplication","openEmailModal","hasValueEmailField","fieldsGroup","invalidEmail","emptyEmailField","onChangeTextFieldModal","_this$state9","setApplicationValues","isReCaptchaSubmitApplicationEnabled","allRequiredFields","reviewRequiredFields","governmentId","cleanGovernmentId","resolveSubmitApplication","onCloseEmailModal","onCloseNotAvailableModal","finishButtonId","onCloseConfirmationSavedModal","_this$state10","app","evaluateAppJs","eval","isUserDefined","customScript","NaN","date","_this$state11","cultures","fieldIndex","dateMinFormat","moment","add","toUpperCase","dateMaxFormat","dateOfBirth","setValues","cleanErrorMessages","formatDateOutOfRange","errorMessageRequired","visaExpiration","passportExpiration","fieldTestTaken","testScores","dateTaken","itemArrId","toDate","Date","errorMessageRange","dateTimeMin","_this$state12","valueSelected","_typeof","typeId","score","f","resolveValidateScore","checkBoxListIndex","checkBoxListField","ipedsList","ipeds","filter","childField","childEndPoint","resolveGetChildOptions","_this$state13","setIpedsValuesNestedCheckList","ipedNew","ipedIndex","itemToRemove","campuses","reviewCampus","campusIndex","campus","academicInterests","reviewAcademicInterest","setIpedsValuesCheckList","ipedsArray","ethnicity","_this$state14","onPrimaryButtonClick","_this$state15","emailRegExpression","match","errorMessageNotValid","onlyNum","RegExp","formerLastName","errorMessageFormat","lastNamePrefix","legalName","middleName","monthsInCountry","errorMessageNumeric","nickname","otherSource","fieldGroupTestScore","passportNumber","visaNumber","fieldHoursPerWeek","fieldWeeksPerYear","fieldYears","changeEmailText","_this$state16","_this$state17","_this$state18","_this$state19","expansionPanel","employeeCount","createNewSection","programsCount","phoneCount","initialGroupLengthTS","finalGroupLengthTS","newSetTS","slice","parentDropDownTS","childDropDownTS","testScoresCount","emergencyContactsCount","addressessCount","educationCount","initialGroupLength","activityCount","finalGroupLength","newSet","parentDropDown","childDropDown","relativesCount","groupLength","sectionNumber","deleteButton","isNumeric","onAddDeleteButton","panelId","_this$state20","componentName","firstPrimaryPhoneField","maxAdd","fieldIdName","isSectionField","errorMessageDuplicate","errorMessagePrimary","copiedField","newField","JSON","parse","stringify","copyField","errorTexId","fieldsErrors","isFieldError","_this$state21","fieldSectionIndex","sectionErrorIndex","fieldErrorIndex","programsValid","testScoresValid","validPhones","isValidEmploymentSection","emergencyContactsValid","ipedsValid","addressValid","userDefinedValid","educationValid","activityValid","relativeValid","residencyValid","isNaN","isDateValid","minDate","maxDate","isDateInRange","parentId","reviewPrograms","textErrorIndex","filteredControls","groupedControls","reduce","r","a","create","messageErrorIndex","reviewTestScores","some","reviewTestScoreCompleteness","reviewPhoneGroup","reviewIpeds","reviewEmployment","reviewEmergencyContacts","reviewAddress","isCustom","reviewUserDefined","reviewEducation","reviewActivities","reviewRelatives","reviewResidency","firstFieldsErrors","fieldError","sectionError","isGroupError","groupError","allErrors","especificErrors","education","fieldDefault","collegeAttendStatus","counselorId","countryOfBirth","gender","maritalStatus","passportCountryId","primaryCitizenship","primaryLanguage","prefix","religion","secondaryCitizenship","secondaryLanguage","period","sourceId","suffix","veteranStatus","visa","visaCountryId","isInterestedInExtracurricular","isInterestedInFinancialAid","isRetired","isSeekingDegree","policy","_this$state22","activityTypefield","activityField","positionHeldField","numberOfHoursPerWeekField","numberOfWeeksPerYearField","numberOfYearsField","participated9Field","participated10Field","participated11Field","participated12Field","participatedPostSecondaryField","activityList","activity","activityType","hoursPerWeek","weeksPerYear","numberOfYears","participatedGrade09","participatedGrade10","participatedGrade11","participatedGrade12","participatedPostsecondary","setApplicationActivitiesValues","_loop","activityItem","setApplicationActivitiesAdditional","v","_ret","activities","_this$state23","addressList","isPrimary","setApplicationAddress","setApplicationAddressValues","line1","line2","line3","line4","stateProvince","postalCode","_loop2","setApplicationAddressAdditional","_ret2","_this$state24","educationList","enrollment","setApplicationEducation","setApplicationEducationValues","startDate","endDate","curriculumId","honorsId","degreeId","dateTimeMax","_loop3","setApplicationEducationAdditional","_ret3","_this$state25","emergencyList","emergency","phoneNumber","firstNamefield","lastNameField","phoneField","suffixField","suffixId","middleNameField","lastNamePrefixField","relationshipField","relationshipId","prefixId","_loop4","_ret4","emergencyContacts","_this$state26","employmentList","employment","positionId","employerNamefield","employerPositionField","employerStartDateField","employerEndDateField","_loop5","fieldsBySection","_ret5","employments","hispanicAnswer","_this$state27","phoneList","phone","number","phoneTypeField","phoneCountryField","phoneNumberField","primaryPhoneField","_loop6","phoneItem","_ret6","phones","_this$state28","programList","program","programId","commintmentField","commitmentId","_loop7","programs","_this$state29","relativeList","relative","attendedInstitution","relationFirstName","relationLastName","relationType","setApplicationRelative","setApplicationRelativeValues","relationPrefix","relationSuffix","relationMiddleName","relationLastNamePrefix","_loop8","setApplicationRelativeAdditional","_ret7","relatives","residencyList","residency","setApplicationResidency","residencyPreference","foodPlanInterest","dormPlanInterest","dormCampus","dormBuilding","validCompleteness","_i","_Object$keys","keys","keyIndex","scoreA","fieldsPopulated","every","fieldsEmpty","identical","scoreB","k","fieldA","fieldB","userDefined","columnLabel","columnType","columnValue","isUploading","maxLength","userDefinedIndex","dataType","campusList","interestIndex","interestList","interest","addressTypefield","houseNumberField","houseNumber","addressLine1Field","addressLine2Field","addressLine3Field","addressLine4Field","addressCityField","stateProvinceField","postalCodeField","countyIdField","addressCountryField","degreefield","curriculumField","honorsField","startDateField","endDateField","institutionField","etsCodeField","cityField","stateField","countryField","ficeCodeField","relativeItem","residencyPreferenceField","foodPlanInterestField","dormPlanInterestField","dormCampusField","dormBuildingField","prefixField","firstNameField","attendedInstitutionField","ipedsCheckList","ipedsNestedCheckboxList","_this$state30","lblPageTitle","hdnAppId","remove","resolveGetComponents","hdnTransactionId","hdnTransactionStatus","hdnTransactionAmount","hdnTransactionDescription","hdnTransactionAuthorizationNumber","hdnTransactionReturnUrl","transactionId","paymentModalOpenFail","paymentModalOpenSuccess","hdnSavedApplicationToken","resolveCountries","getRowsPerPageOptions","overallCount","canSaveApplication","confirmationSaveMessage","footerSaveMessage","stepTitle","_this$state31","results","resolveStates","origin","resolveCreateSaveApplicationNotification","openConfirmationSavedModal","allowAttachment","resolveGetListApplicationAttachments","g","appAttachmentsViewModel","resolveGetAttachmentTotals","attachmentsTotalSize","appAttachmentTotalsViewModel","totalAttachmentSize","totalAttachmentSizeNumber","resolveGetGeneralSettings","general","ready","onLayoutReady","idMainPage","expansionPanelHeaders","hasPersonId","openNotAvailableModal","maxValue","processPaymentModal","addressSearchModal","etsSearchModal","confirmationSavedModal","emailModal","notAvailableModal","supportedFiles","supportedFilesModal","attachmentsComponent","removeAttachmentModal","signInModal","signUpModal","paymentInfoModal","_this$state32","AddressSearchModal","onChangePageAddress","onClearAddress","onSearchAddress","ETSSearchModal","onClearInstitution","onSearchInstitution","ConfirmationSavedModal","lblSaveApplication","lblSaveApplicationInstructions","lblSaveApplicationEmptyEmailIns","lblEnterEmail","lblInvalidEmal","lblEmailAddress","lblEmptyEmailAddress","lblOk","lblNotAvailableMessage","supportedFilesBody","availableFileType","fExt","lblClose","lblSupportedFilesTitle","Attachments","ConfirmationDialog","contentText","lblRemoveConfirmation","primaryActionOnClick","primaryActionText","lblAcceptConfirmation","secondaryActionOnClick","secondaryActionText","lblCancelConfirmation","lblRemoveTitle","ApplicationHandler","applicationHandler","Layout","hideHeader","showCart","showNotifications","ApplicationFormViewWithLayout","withLayout","ReactDOM","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","m","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","n","getter","__esModule","d","definition","defineProperty","enumerable","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","nc","__webpack_exports__"],"sourceRoot":""}