{"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/webpack/runtime/create fake namespace object","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};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","/* Copyright 2019 - 2024 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 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// Helpers\r\nimport { useMediaQueryHiddenUp } from '@hedtech/powercampus-design-system/helpers/ComponentVisibility';\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 const mdUp = useMediaQueryHiddenUp('md');\r\n\r\n return (\r\n <>\r\n {mdUp ? (\r\n \r\n {lblPrint ? lblPrint : resources.lblPrint}\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 - 2024 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 { createStyles, Theme, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\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// 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 const headerModal: JSX.Element = (\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 const footerModal: JSX.Element = 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 - 2024 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\nimport TextLink from '@hedtech/powercampus-design-system/react/core/TextLink';\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 - 2024 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: PasswordPolicyErrors;\r\n passwordMinLength: number;\r\n userAccountStatus: PasswordPolicyErrors;\r\n status: number;\r\n userName: string;\r\n}\r\n\r\nexport enum PasswordPolicyErrors {\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 UnableToCreateADUser = 14,\r\n unableToDefineUserName = 15,\r\n userAlreadyExists = 18\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 - 2024 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, PasswordPolicyErrors } 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 emailRegExp,\r\n validations\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 validations.existingUser = false;\r\n this.setState({\r\n validations: validations\r\n });\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 isLoading: false,\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 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\r\n const {\r\n resources,\r\n validations\r\n } = this.state;\r\n\r\n if (resultSignUp.status === 0) {\r\n const {\r\n onAfterSignUp\r\n } = this.props;\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 === PasswordPolicyErrors.userAlreadyExists) {\r\n if (validations) {\r\n validations.existingUser = true;\r\n this.setState({\r\n cannotCreateAccount: false,\r\n validations: validations\r\n });\r\n }\r\n }\r\n else {\r\n this.setState({\r\n cannotCreateAccount: true,\r\n password: ''\r\n });\r\n PasswordConfirmationActions.setPasswordValidation();\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 type,\r\n onClose,\r\n onGoSignIn\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 = !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 = !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 = !account.email\r\n || validations.emailInvalid\r\n || validations.existingUser;\r\n\r\n if (!account.email) {\r\n errorTextEmail = resources.lblEmailRequired;\r\n }\r\n else if (validations.emailInvalid) {\r\n errorTextEmail = resources.lblEmailInvalid;\r\n }\r\n else if (validations.existingUser) {\r\n errorTextEmail = resources.lblExistingUser;\r\n }\r\n else {\r\n errorTextEmail = undefined;\r\n }\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 \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 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 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 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 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 - 2024 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 TextLink from '@hedtech/powercampus-design-system/react/core/TextLink';\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// #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 onClickZipLink: (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 onClickZipLink,\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 onClickZipLink(address.zipCode, address.city, address.stateProvinceId, address.countryId, address.countyId)}\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 - 2024 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, fieldElementWithGrid: 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\r\n // Verify if section exists\r\n if (sectionIndexes.includes(getId(ids, 4))) {\r\n setHeaderTitleElements(field);\r\n fillElements(fieldElementWithGrid, 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(fieldElementWithGrid, 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\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 const fieldElementWithGrid = (\r\n isHorizontalAligned ? (\r\n fieldElement\r\n ) : (\r\n \r\n {fieldElement}\r\n \r\n )\r\n );\r\n if (field.data.modified) {\r\n setMultipleFields(field, fieldElementWithGrid, id);\r\n }\r\n else {\r\n elements.push(fieldElementWithGrid);\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 {isHorizontalAligned && isWidthUp('sm', width) ? (elements) : (\r\n \r\n {elements}\r\n \r\n )}\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 - 2024 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 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 { hiddenAtMdDown, hiddenAtMdUp } from '@hedtech/powercampus-design-system/helpers/ComponentVisibility';\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 {resources.lblSupportedFiles}\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 - 2024 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 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\nimport TextLink from '@hedtech/powercampus-design-system/react/core/TextLink';\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 onClickETSLink: (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 onClickETSLink,\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 onClickETSLink(row.name, row.etsCode, row.ficeCode, row.city,\r\n row.stateProvinceId, row.countryId)}\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 const bodyModal: JSX.Element = (\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 - 2024 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 onClickInstitutionLink =\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.onClickInstitutionLink.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, Constants.dateFormatMoment);\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, Constants.dateFormatMoment);\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(Constants.dateFormatMoment) > moment(education.enrollment.endDate).format(Constants.dateFormatMoment)) {\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(Constants.dateFormatMoment) <\r\n moment(education.enrollment.endDate).format(Constants.dateFormatMoment)) {\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(Constants.dateFormatMoment) ||\r\n education.enrollment.endDate > moment(components.dateTimeMax).format(Constants.dateFormatMoment))) {\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(Constants.dateFormatMoment) ||\r\n education.enrollment.endDate < moment(components.dateTimeMax).format(Constants.dateFormatMoment))) {\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(Constants.dateFormatMoment) >\r\n moment(education.enrollment.endDate).format(Constants.dateFormatMoment)) {\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(Constants.dateFormatMoment) <\r\n moment(education.enrollment.endDate).format(Constants.dateFormatMoment)) {\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(Constants.dateFormatMoment) ||\r\n education.enrollment.endDate > moment(components.dateTimeMax).format(Constants.dateFormatMoment))) {\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(Constants.dateFormatMoment) ||\r\n education.enrollment.endDate < moment(components.dateTimeMax).format(Constants.dateFormatMoment))) {\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(Constants.dateFormatMoment) > moment(employment.endDate).format(Constants.dateFormatMoment)) {\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(Constants.dateFormatMoment) ||\r\n employment.endDate > moment(components.dateTimeMax).format(Constants.dateFormatMoment)) {\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(Constants.dateFormatMoment) > moment(employment.endDate).format(Constants.dateFormatMoment)) {\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(Constants.dateFormatMoment) ||\r\n employment.endDate > moment(components.dateTimeMax).format(Constants.dateFormatMoment)) {\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 else if (application.campuses) {\r\n application.campuses = [Number(application.campuses)];\r\n }\r\n else {\r\n application.campuses = undefined;\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 === '' ? null : 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 === '' ? null : 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 = Boolean(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 === '' ? null : 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[prefixField].value === '' ? null : fieldsGroup.fields[prefixField].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\": 81073,\n\t\"./et.js\": 81073,\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\": 15596,\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\": 15596,\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\": 10150,\n\t\"./it-ch.js\": 10150,\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\": 45851,\n\t\"./ms-my.js\": 45851,\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\": 95606,\n\t\"./ss.js\": 95606,\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","leafPrototypes","getProto","props","classNameButtonText","classNameIconButton","disabled","lblPrint","link","resources","_useState","useState","_useState2","_slicedToArray","open","setOpen","onClickPrint","window","location","assign","mdUp","useMediaQueryHiddenUp","React","Button","TextProps","display","IconProps","name","align","className","id","variant","onClick","IconButton","color","Icon","large","Snackbar","ContentProps","message","lblPrintProcess","type","ResultType","success","onClose","PaymentOrigin","PaymentDetailModal","_React$Component","_this","_classCallCheck","_callSuper","_defineProperty","json","result","Resolver","resolveGetResources","status","setState","data","e","logError","LogData","fromException","idModule","idPage","state","getInitialState","_inherits","_createClass","key","value","this","componentError","logData","LayoutActions","setLogData","code","setRedirectCode","RequestsLayout","getResources","componentDidMount","error","info","_this2","fromComponentException","componentDidCatch","redirectError","contentPage","_this$props","classes","coupons","enableOnlinePayment","paymentInfo","paymentInfoNoChanges","paymentMethod","paymentOrigin","titleName","yearTerm","onApplyCoupon","onChangeCouponCode","onChangePaymentAnotherAmount","onChangePaymentMethod","onPay","onRemoveCoupon","_this$state","paymentMethods","hasCharges","Registration","currentBalanceValue","totalAmountValue","push","description","Format","toString","formatBalance","currentBalance","errorTextAnotherAmount","errorAnotherAmount","modified","Boolean","anotherAmount","invalidAnotherAmount","lblAnotherAmountInvalid","undefined","lblAnotherAmountRequired","lblAnotherAmount","nodeComplement","TextField","helperText","size","onChange","ConEdRegistration","useTransactionChargesOnly","paymentDueValue","rowClassName","isFirstRow","headerModal","Text","formatTitle","Grid","container","alignItems","justifyContent","item","xs","instructionsContainer","lblInstructions","statementNumber","Print","printing","lblPrintStatement","toLink","concat","spacing","RadioGroup","options","amountContainer","direction","discountApplied","totalAmount","lblDiscountedTotal","lblTotal","paymentDue","lblPaymentDue","footerModal","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","colorBrandNeutral200","height","marginBottom","spacing50","paddingBottom","paddingLeft","spacing40","paddingRight","paddingTop","width","colorTextAlertNeutral","spacing30","marginTop","sizingSmall","borderBottomColor","colorBrandNeutral100","spacing70","breakpoints","up","postProcessPayment","paymentRequest","resolver","resolveError","Request","post","postProcessTranscriptPayment","requestTranscripts","postProcessDonationPayment","giftCampaigns","ProcessPaymentModal","applicationId","conEdTransactionId","personId","returnUrl","termSessionId","periodId","split","paymentPeriod","sessionPeriodId","Number","termPeriodId","term","year","Requests","resolvePostProcessPayment","setLoading","onOk","replace","encodeURI","showError","setAlert","messageType","_this$props2","lblTitle","btnCancel","Alert","text","lblContentText","AuthStatus","authenticateUser","userName","password","changePassword","passwordChange","getAuthenticationMode","isForgotPasswordEnabled","sendForgotPasswordEmail","reCaptchaResponse","styles","forgotPasswordLink","forgotText","loginCard","animation","spacing80","loginText","reCaptchaContent","reCaptchaErrorText","signInButton","spacing20","spacingAlert","spacingTitle","SignIn","LayoutStore","setIsAuthenticated","setMenuOptions","showPageLoader","onAfterSignIn","URLSearchParams","search","get","newState","isLoading","includes","Redirect","toHome","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","validatePassword","PasswordConfirmationStore","getPasswordPolicy","validateConfirmPassword","confirmPassword","PasswordConfirmationActions","setPasswordValidation","hasErrors","isCurrentPwdNewPwd","showLoaderChangePassword","currentPassword","resolveChangePassword","onChangePasswordButton","_this$userNameRef3","onCloseChangePassword","getPasswordValidation","getPassword","onChangePasswordValidation","userNameRecovery","userNameRecoveryModified","onChangeUserNameRecovery","emailSent","openForgotPassword","_this$userNameRecover","userNameRecoveryRef","onClickForgotPassword","_this$state4","stepNumber","reCaptchaError","_this$userNameRef4","_this$passwordRef2","StoreMode","Identity","ActiveDirectory","onCloseForgotPassword","token","onRecaptchaChange","onReCaptchaError","_this$reCaptchaRef","_this$state5","isReCaptchaEnabled","reCaptchaRef","getValue","showLoaderSendEmail","resolveSendForgotPasswordEmail","onSendEmail","isLoadingChangePassword","isLoadingSendEmail","lblGenericError","hideAllLoaders","setResourcesByKey","mode","_this$passwordRef3","hideLoaderNext","ADFS","toADFSLogin","SAML","toSAMLLogin","showSignInError","_this$passwordRef4","authResponse","Success","changePasswordAtNextLogon","openChangePassword","InvalidCredentials","IsLocked","_authResponse$attempt","attempt","remainingLockedOutTime","formatLockedAccount","lblLocked","InvalidPassword","_authResponse$attempt2","remainingAttempts","formatInvalidAttempts","_this$state6","response","updatedSuccessfully","errors","ChangePasswordError","AlreadyUsed","isNotPreviousPassword","hideLoaderChangePassword","resolveIsForgotPasswordEnabled","reCaptchaSiteKey","hideLoaderSendEmail","addPasswordValidationListener","getResourcesByKey","uiCulture","getCultures","_this$state7","hideLoader","removePasswordValidationListener","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","TextLink","btnForgot","Card","CardContent","withWidth","PasswordPolicyErrors","getEmailRegExp","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","existingUser","showLoaderSave","resolvePostSignUp","onCreateAccount","onGoSignIn","onGoSignInModal","resolveGetEmailRegExp","resultSignUp","onAfterSignUp","lblCreatedSuccessfully","userAccountStatus","userAlreadyExists","cannotCreateAccount","hideLoaderSave","resolveGetReCaptchaSettings","peopleId","anchorEl","newAccountContent","reCaptchaElement","errorTextFirstName","errorFirstName","lblFirstNameRequired","errorTextLastName","errorLastName","lblLastNameRequired","errorTextEmail","errorEmail","lblEmailInvalid","lblExistingUser","lblEmailRequired","lblCreateAccount","src","Constants","imagesCDN","lblCannotCreateAccount","btnCreateAccount","noCompareAgainstPreviousPwd","topElements","lblContactInformation","lblFirstName","required","lblLastName","lblEmail","paginationComponent","bodyModal","addresses","hasSearchZipCode","pageNumber","pageSize","rowsPerPageOptions","totalAddress","zipCode","onChangePage","onChangeRowsPerPage","onClear","onClickZipLink","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","fontWeightBold","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","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","alt","dangerouslySetInnerHTML","__html","fieldElementWithGrid","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","mqXSmall","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","sx","hiddenAtMdUp","hiddenAtMdDown","textVariantStyling","lblSupportedFiles","lblAttachments","lblTotalSize","lblNoUploads","lblContinue","confirmationMessage","tableInstitutions","countries","etsCode","institutionName","institutions","states","totalInstitutions","onChangeDropDownETSSearch","onChangeTextFieldETSSearch","onClickETSLink","emptyOptionState","lblEmptyOptionState","emptyOptionCountry","lblEmptyOptionCountry","lblInstitutionName","lblETSCode","lblFICECode","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","webUrl","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","warning","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","onClickInstitutionLink","newComponents","phoneFields","numRow","idFields","resolveLayoutReady","applicationTop","getElementById","scrollIntoView","layoutId","person","temporaryEmail","applicationFormSettingId","formLayoutId","RequestsApplication","resolveSaveIncompleteApplication","getIsAuthenticated","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","dateFormatMoment","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","_ret","_loop","activityItem","setApplicationActivitiesAdditional","v","activities","_this$state23","addressList","isPrimary","setApplicationAddress","setApplicationAddressValues","line1","line2","line3","line4","stateProvince","postalCode","_ret2","_loop2","setApplicationAddressAdditional","_this$state24","educationList","enrollment","setApplicationEducation","setApplicationEducationValues","startDate","endDate","curriculumId","honorsId","degreeId","dateTimeMax","_ret3","_loop3","setApplicationEducationAdditional","_this$state25","emergencyList","emergency","phoneNumber","firstNamefield","lastNameField","phoneField","suffixField","suffixId","middleNameField","lastNamePrefixField","relationshipField","relationshipId","prefixId","_ret4","_loop4","emergencyContacts","_this$state26","employmentList","employment","positionId","employerNamefield","employerPositionField","employerStartDateField","employerEndDateField","_ret5","_loop5","fieldsBySection","employments","hispanicAnswer","_this$state27","phoneList","phone","number","phoneTypeField","phoneCountryField","phoneNumberField","primaryPhoneField","_ret6","_loop6","phoneItem","phones","_this$state28","programList","program","programId","commintmentField","commitmentId","_loop7","programs","_this$state29","relativeList","relative","attendedInstitution","relationFirstName","relationLastName","relationType","setApplicationRelative","setApplicationRelativeValues","relationPrefix","relationSuffix","relationMiddleName","relationLastNamePrefix","_ret7","_loop8","setApplicationRelativeAdditional","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","noResources","resolveCountries","getRowsPerPageOptions","overallCount","canSaveApplication","confirmationSaveMessage","footerSaveMessage","stepTitle","_this$state31","results","resolveStates","origin","resolveCreateSaveApplicationNotification","openConfirmationSavedModal","badJsonResult","allowAttachment","resolveGetListApplicationAttachments","g","appAttachmentsViewModel","resolveGetAttachmentTotals","attachmentsTotalSize","appAttachmentTotalsViewModel","totalAttachmentSize","totalAttachmentSizeNumber","resolveGetGeneralSettings","general","ready","getLayoutReady","layoutNoReady","onLayoutReady","removeLayoutReadyListener","idMainPage","addLayoutReadyListener","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__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","n","getter","__esModule","d","getPrototypeOf","obj","t","then","ns","def","indexOf","getOwnPropertyNames","definition","defineProperty","enumerable","globalThis","Function","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","nc","__webpack_exports__"],"sourceRoot":""}