{"version":3,"sources":["assets/images/landing.jpg","assets/images/logo.svg","aws-exports.js","utils/theme.ts","screens/Error.tsx","utils/constants.ts","contexts/ModalContext.tsx","components/Common/Modal/Modal.style.tsx","components/Common/ArrowedButton/ArrowedButton.tsx","components/Common/PlainButton/PlainButton.tsx","components/Common/Modal/Modal.tsx","App.style.tsx","contexts/MembershipContext.tsx","utils/get-membership-info.ts","hooks/use-membership-info.tsx","utils/get-entities.ts","hooks/use-entities.ts","hooks/use-query.tsx","utils/membership-condition.ts","components/Common/MembershipRoute/MembershipRoute.tsx","components/Common/SSORoute/SSORoute.tsx","components/Common/Disclosures/Disclosures.tsx","components/Common/Help/Help.tsx","components/Common/InfoTile/InfoTile.tsx","components/Membership/Taxes/Taxes.tsx","components/Common/TaxesTile/TaxesTile.tsx","components/Common/VerticalSplit/VerticalSplit.tsx","components/Membership/MemberInfo/MemberInfo.tsx","components/Membership/Sidebar/Sidebar.tsx","utils/filterByVisibleOptionalProducts.ts","hocs/WithFormContext/WithFormContext.tsx","hocs/WithInsideLoading/WithInsideLoading.tsx","utils/calculate-dues-total.ts","utils/charges-supplemental-dues.ts","components/Common/BorderedBox/BorderedBox.tsx","components/Common/OneAtLeft/OneAtLeft.style.tsx","components/Common/OneAtLeft/OneAtLeft.tsx","components/Common/TitledTable/TitledTable.style.tsx","components/Common/TitledTable/TitledTable.tsx","utils/format-number.ts","components/Order/AdditionalFees/Table/Item/Item.style.tsx","components/Order/AdditionalFees/Table/Item/Item.tsx","components/Order/AdditionalFees/Table/Table.tsx","components/Common/Alert/Alert.tsx","components/Order/Alert/Alert.tsx","components/Order/ArchiPACModal/ArchiPACModal.tsx","components/Common/Checkbox/Checkbox.style.tsx","components/Common/Checkbox/Checkbox.tsx","components/Common/Tooltip/Tooltip.style.tsx","components/Common/Tooltip/Tooltip.tsx","components/Common/Disclaimer/Disclaimer.tsx","components/Order/AutoRenew/Checkbox/Checkbox.tsx","hocs/WithErrorHelper/WithErrorHelper.tsx","components/Order/ConfirmAllied/Checkbox/Checkbox.tsx","components/Order/ConfirmLicense/Checkbox/Checkbox.tsx","components/Order/ConfirmTerms/Checkbox/Checkbox.tsx","components/Order/Dues/Table/Item/Item.style.tsx","components/Order/Dues/Table/Item/Item.tsx","components/Order/Dues/Table/Table.tsx","components/Order/Installments/Checkbox/Checkbox.tsx","components/Common/Select/Select.style.tsx","components/Common/Select/Select.tsx","hocs/WithController/WithController.tsx","components/Order/Installments/Select/Select.style.tsx","components/Order/Installments/Select/Select.tsx","components/Order/OptionalProducts/Table/Item/Item.style.tsx","components/Order/OptionalProducts/Table/Item/ItemComponent.tsx","components/Order/OptionalProducts/Table/Item/Item.tsx","components/Order/OptionalProducts/Table/Table.tsx","utils/generate-optional-checkbox-state.ts","components/Order/Order.style.tsx","components/Order/PayOffline/Button/Button.tsx","components/Common/Radio/Radio.style.tsx","components/Common/Radio/Radio.tsx","components/Common/RadioGroup/RadioGroup.tsx","components/Order/SuppDues/MemberType/MemberType.style.tsx","components/Order/SuppDues/MemberType/MemberType.tsx","components/Common/Input/Input.tsx","components/Order/SuppDues/Responsible/Responsible.style.tsx","components/Order/SuppDues/Responsible/ResponsibleComponent.tsx","components/Order/SuppDues/Responsible/Responsible.tsx","components/Order/SuppDues/Table/Item/Item.style.tsx","components/Order/SuppDues/Table/Item/ItemComponent.tsx","components/Order/SuppDues/Table/Item/Item.tsx","components/Order/SuppDues/Table/Table.style.tsx","components/Order/SuppDues/Table/TableComponent.tsx","components/Order/SuppDues/Table/Table.tsx","utils/supplemental-dues-calculation.tsx","components/Order/Total/Table/Table.style.tsx","components/Order/Total/Table/TableComponent.tsx","contexts/OrderContext.tsx","components/Order/Total/Table/Table.tsx","components/Order/Installments/Disabled/DisabledInstallment.style.tsx","components/Order/OrderComponent.tsx","utils/order-create-payload.ts","utils/order-send-payload.ts","utils/generate-renew-schema.ts","components/Order/RedirectToCheckout/RedirectToCheckout.tsx","contexts/BackdropContext.tsx","utils/get-salesforce-sso-url.ts","components/Order/Order.tsx","utils/get-default-subscription.ts","utils/generate-renew-form-options.ts","hocs/WithBackdropContext/WithBackdropContext.tsx","screens/Renew.tsx","hocs/WithLoading/WithLoading.tsx","hooks/use-external-script.ts","utils/generate-contact-form-options.ts","utils/generate-contact-form-schema.ts","utils/update-contact.ts","components/Contact/Form/MembershipType/MembershipType.style.tsx","components/Contact/Form/SelfDescribe/Radio/Radio.style.tsx","components/Contact/Form/SelfDescribe/Radio/Radio.tsx","components/Contact/Form/MembershipType/MembershipType.tsx","components/Contact/Form/Form.style.tsx","components/Common/ConditionalFormPropertyRenderer/ConditionalFormPropertyRenderer.tsx","components/Common/DateInput/DateInput.styles.tsx","components/Common/DateInput/DateInput.tsx","utils/help-country-list.ts","components/Contact/Form/CountryHelp.tsx","components/Contact/Form/FormComponent.tsx","components/Contact/Form/Form.tsx","screens/Join.style.tsx","components/NonPayableZipCodeDisclaimer/NonPayableZipCodeDisclaimer.style.tsx","components/NonPayableZipCodeDisclaimer/NonPayableZipCodeDisclaimer.tsx","utils/is-zip-code-payable.ts","screens/Join.tsx","screens/Active/Active.tsx","components/Common/CustomBackdrop/CustomBackdrop.style.tsx","components/Common/CustomBackdrop/CustomBackdrop.tsx","utils/get-contact-statuses.ts","components/LandingHome/LandingHome.style.tsx","components/Common/BoxWithTitle/BoxWithTitle.style.tsx","components/Common/BoxWithTitle/BoxWithTitle.tsx","components/Common/SimpleForm/SimpleForm.style.tsx","components/Common/SimpleForm/SimpleForm.tsx","components/LandingHome/LandingBox.style.tsx","components/LandingHome/LandingBox.tsx","components/LandingHome/LandingAccountFound.tsx","utils/redirect-to-join.ts","utils/generate-state.ts","components/LandingHome/LandingAccountNotFound.tsx","components/LandingHome/LandingHomeComponent.tsx","utils/get-preferred-email.ts","components/LandingHome/LandingHome.tsx","screens/Home.style.tsx","screens/Home.tsx","utils/generate-account-recovery-schema.ts","components/AccountRecovery/AccountRecovery.style.tsx","components/AccountRecovery/AccountRecoveryComponent.tsx","components/AccountRecovery/AccountRecovery.tsx","screens/AccountRecovery.tsx","utils/generate-recovery-attempt-form-schema.ts","components/AccountRecovery/Attempt/AttemptBasicInformation.tsx","components/AccountRecovery/Attempt/AttemptAdditionalInformation.tsx","components/AccountRecovery/Attempt/AttemptConfirmEmail.tsx","utils/create-account-recovery-attempt.ts","components/AccountRecovery/Attempt/Attempt.style.tsx","components/AccountRecovery/Attempt/Attempt.tsx","screens/AccountRecoveryAttempt.tsx","utils/get-dues.ts","components/DuesEstimator/DuesEstimator.tsx","screens/DuesEstimator.tsx","components/Common/BackgroundImage/BackgroundImage.tsx","components/Common/BackgroundImage/BackgroundImage.style.tsx","components/Common/Footer/Footer.tsx","components/Common/Header/Header.style.tsx","components/Common/Header/Header.tsx","utils/use-query-param.ts","components/Common/MainLayout/MainLayout.tsx","screens/CesAudit.tsx","screens/UnderAudit.tsx","screens/LandingEpaymentInProcess.tsx","App.tsx","index.tsx"],"names":["module","exports","awsmobile","palette","primary","main","dark","secondary","light","error","red","A400","background","default","typography","fontFamily","h1","fontSize","color","h2","h3","body1","body2","subtitle2","fontWeight","caption","theme","createMuiTheme","overrides","MuiCssBaseline","html","body","height","MuiListItemText","multiline","marginTop","marginBottom","MuiTableCell","root","borderBottom","head","concat","MuiFormLabel","asterisk","MuiFilledInput","underline","input","backgroundColor","borderRadius","responsiveFontSizes","Divider","withStyles","width","MuiDivider","ScreensError","props","React","createElement","Grid","container","direction","justify","alignItems","spacing","item","Typography","variant","errorHeader","gutterBottom","errorMessage","CONTACT_STATUS","TERMINATED","NON_MEMBER","ACTIVE","LAPSED","DEFAULT_MODAL_CONTENT","isOpen","title","content","onConfirm","window","location","reload","confirmActionName","INVALID_SESSION_MODAL_CONTENT","SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER","SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER","SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM","EMPLOYEES_INFO","memberArchitectCount","count","rate","label","nonMemberArchitectCount","associateCount","technicalStaffCount","otherStaffCount","MEMBERSHIP_TYPE_ARCHITECT","process","REACT_APP_MEMBERSHIP_TYPE_ARCHITECT","MEMBERSHIP_TYPE_INTL_ASSOCIATE","REACT_APP_MEMBERSHIP_TYPE_INTL_ASSOCIATE","MEMBERSHIP_TYPE_ASSOCIATE","REACT_APP_MEMBERSHIP_TYPE_ASSOCIATE","MEMBERSHIP_TYPE_ALLIED","REACT_APP_MEMBERSHIP_TYPE_HONORARY","REACT_APP_MEMBERSHIP_TYPE_ALLIED","JOIN_SELF_DESCRIBE_OPTIONS","value","MEMBERSHIP_TYPE_MAPPING","ModalContext","createContext","options","setOptions","ModalStyle","makeStyles","padding","opacity","button","buttonClasses","breakpoints","textTransform","down","ArrowedButton","classes","arrowDirection","text","className","otherProps","Button","Object","assign","size","disableElevation","startIcon","KeyboardArrowLeftIcon","endIcon","KeyboardArrowRightIcon","children","border","PlainButton","onClick","disabled","Modal","modalOptions","setIsOpen","useState","onCancel","event","useEffect","_props$modalOptions","Dialog","open","onClose","keepMounted","aria-labelledby","aria-describedby","DialogTitle","disableTypography","id","DialogContent","DialogContentText","DialogActions","name","cancelActionName","data-testid","AppContainerStyle","minHeight","display","justifyContent","MembershipContext","membershipInfo","setMembershipInfo","countries","setCountries","careerTypes","setCareerTypes","getMembershipInfo","async","user","Auth","currentAuthenticatedUser","currentSession","API","get","queryStringParameters","legacyId","attributes","headers","Authorization","getAccessToken","getJwtToken","data","useMembershipInfo","useContext","loading","setLoading","setError","fetchData","membershipInfoResponse","Error","err","getEntities","entity","useEntities","responses","Promise","all","index","findIndex","splice","useQuery","search","useLocation","useMemo","URLSearchParams","membershipCondition","membershipStatus","membershipCesAudit","membershipRenewYear","renewEligibleYears","epaymentStatus","deceased","condition","eligibleForRestart","includes","eligibleForRenew","eligibleForActive","Math","max","epaymentInProgressOrPending","MembershipRoute","loadingUser","setLoadingUser","setUser","entities","then","userData","catch","finally","path","pathname","redirectTo","redirectToPath","redirectToHome","contact","cesAudit","renewYear","membershipEpaymentStatus","conditionPath","query","Redirect","to","toString","Route","cloneElement","SSORoute","isAuthenticated","setIsAuthenticated","federatedSignIn","ItemWithLink","ListItem","disableGutters","Link","href","target","Disclosures","List","Help","InfoTile","divider","MembershipTaxes","_props$chapters$Natio","_props$chapters$State","_props$chapters$Local","renderChapterTax","chapterName","deductibility","ListItemText","chapters","National","Deductibility__c","State","Local","TaxesTile","showTaxesTile","VerticalSplit","titleSection","md","xs","left","right","MembershipMemberInfo","_props$contact","_props$contact2","_props$contact3","_props$contact4","_props$contact4$renew","AIANumber","membershipType","substring","MembershipSidebar","Children","toArray","filter","Boolean","map","child","Fragment","filterByVisibleOptionalProducts","items","OrderApi__Display_Name__c","startsWith","WithFormContext","Component","methods","useFormContext","formMethods","CircularProgress","position","MuiCircularProgress","WithInsideLoading","calculateDuesTotal","dues","_dues$Local","_dues$State","_dues$National","price","reduce","a","b","chargesSupplementalDues","emeritus","_chapters$State","_chapters$Local","AIA_Charge_Supplemental_dues__c","BorderedBox","paperProps","Paper","square","OneAtLeftStyle","flexDirection","flexGrow","OneAtLeft","_props$children","Array","isArray","key","TitledTableCellStyle","TitledTable","Table","TableHead","TableRow","TableCell","colSpan","TableBody","formatNumber","num","toFixed","replace","OrderAdditionalFeesTableItemCellStyle","textAlign","OrderAdditionalFeesTableItem","OrderAdditionalFeesTable","_props$formMethods","_props$optionalProduc","subscriptionPlanId","useWatch","control","defaultValue","defaultSubscriptionPlanId","optionalProducts","Id","OrderApi__Price__c","length","paddingBottom","MuiPaper","AlertIcon","paddingRight","WarningIcon","Alert","message","hideIcon","OrderAlertMemoized","memo","hasErrors","prev","next","displayName","OrderAlert","_props$formMethods2","errors","keys","ArchiPACModal","showAutoRenewModal","setShowAutoRenewModal","CheckboxStyle","alignSelf","checked","Checkbox","inputProps","FormControlLabel","MuiCheckbox","inputRef","register","TooltipStyle","tooltip","InfoIconStyle","margin","verticalAlign","Tooltip","tooltipClasses","infoIconClasses","MaterialTooltip","InfoIcon","aria-label","cssStyles","textJustify","grayedOut","grey","Disclaimer","styles","note","FormCheckbox","OrderAutoRenewCheckbox","autoRenewIsChecked","show","rel","userHasSubscriptionPlanAvailable","disclaimerMessage","FormControlMemo","hasError","FormControl","component","FormHelperText","role","required","WithErrorHelper","_formMethods$errors","CheckboxWithError","labelStyle","marginRight","OrderConfirmLicenseCheckbox","labelClasses","OrderConfirmTermsCheckbox","DuesTableItemCellStyle","paddingLeft","OrderDuesTableItem","OrderDuesTable","chapterItems","_props$dues","_props$dues2","_props$dues3","_props$dues3$State","_props$dues4","_props$dues4$State","_props$dues5","_props$dues5$Local","_props$dues6","_props$dues6$Local","push","OrderInstallmentsCheckbox","installmentsLabel","SelectStyle","Select","selectClasses","InputLabel","shrink","style","MuiSelect","WithController","ComponentWithController","Controller","as","InstalmentsSelectStyle","up","SelectComponent","OrderInstallmentsSelect","_props$subscriptionPl","instalmentsSelectClasses","sortedSubscriptionPlans","subscriptionPlans","sort","OrderApi__Number_Of_Installments__c","subscription","MenuItem","OptionalProductsItemCellStyle","minWidth","CheckboxComponent","OrderOptionalProductsTableItemComponent","cellClasses","onChange","disclaimer","OrderOptionalProductsTableItem","checkboxChecked","setCheckboxChecked","checkedByDefault","handleCheck","OrderOptionalProductsTable","_filterByVisibleOptio","generateProductOptions","itemIndex","checkboxData","generateOptionalCheckboxState","productName","_membershipInfo$relat","_membershipInfo$chapt","_membershipInfo$chapt2","_packageItems$find","_packageItems$find2","_packageItems$find3","packageItems","related","contactData","needToPrecheckDonationForUser","storedValue","sessionStorage","getItem","isPrechecked","JSON","parse","AIA_Require_PAC__c","find","AIA_Require_Item__c","canOptionalBeUnchecked","_packageItems$find4","disclaimerText","AIA_Help_Text__c","undefined","BorderedBoxStyle","MarginTopStyle","ButtonRowStyle","order","ArrowedButtonWithLoading","OrderPayOfflineButton","orderButtonProps","RadioStyle","FormControlLabelStyle","h5","Radio","radioClasses","formControlLabelClasses","MuiRadio","RadioGroup","radioGroupProps","MuiRadioGroup","MemberTypeRadioGroupStyle","RadioGroupWithError","RadioComponent","SUPPLEMENTAL_DUES_OPTIONS","OrderSuppDuesMemberType","option","Input","TextField","InputLabelProps","MemberResponsibleStyle","marginLeft","InputWithError","InputComponent","OrderSuppDuesResponsibleComponent","gridClasses","OrderSuppDuesResponsible","SuppDuesTableItemCellStyle","maxWidth","paddingTop","OrderSuppDuesTableItemComponent","keyValue","placeholder","e","stateDues","localDues","align","total","OrderSuppDuesTableItem","setTotal","SuppDuesTableCellStyle","showColumn","ShowStateAndLocalColumn","showOtherColumn","OrderSuppDuesTableComponent","_props$items","showStateColumn","showLocalColumn","elem","OrderSuppDuesTable","_props$chapters","_props$chapters2","supplementalDuesMemberType","state","local","supplementalDuesItems","employeeTypesWithSupplementalDues","employeeTypes","forEach","row","calculateSupplementalDuesTotal","employeesTotal","_chapters$State2","_chapters$Local2","supplementalDues","getSupplementalDues","employeeType","stateTotal","acc","stateMinRate","AIA_Min_Limit__c","stateMaxRate","AIA_Max_Limit__c","localTotal","localMinRate","localMaxRate","TotalTableRowStyle","OrderTotalTableComponent","OrderContext","orderTotal","setOrderTotal","OrderTotalTable","_props$dues$Local","_props$dues2$State","_props$dues3$National","_props$formMethods3","_props$formMethods4","_props$formMethods5","_props$formMethods6","prices","memberType","countEmployees","totalByEmployees","OrderPayOfflineButtonComponent","OrderPayNowButton","AlertWithFormContext","today","Date","currentYear","getFullYear","currentMonth","getMonth","handlePayment","submitAction","onSubmit","getPaymentState","paymentMethod","selectedPayment","isLoading","OrderComponent","_props$membershipInfo","_props$membershipInfo2","_props$membershipInfo4","_props$membershipInfo5","_props$membershipInfo6","_props$membershipInfo7","_props$membershipInfo8","_props$membershipInfo9","_props$membershipInfo10","_getDefaultSubscripti","_props$membershipInfo11","_props$membershipInfo12","_props$membershipInfo13","_props$membershipInfo14","_props$membershipInfo15","_props$membershipInfo16","_props$membershipInfo17","_props$membershipInfo18","_props$membershipInfo19","_props$membershipInfo20","_props$membershipInfo21","_props$membershipInfo22","borderedBoxClasses","marginTopClasses","buttonRowClasses","payOnlineState","payOfflineState","hasArchiPACDonationOption","some","toLowerCase","archiPACIsChecked","getArchiPACCheckboxName","_props$membershipInfo3","_items$itemIndex","itemId","userHasInstallmentsOption","allowedInstallmentBasedOnMonth","showSubscriptionPlans","sub","Provider","noValidate","OrderConfirmAlliedCheckbox","hasAccessToAutoRenew","createPayload","defaultSubscriptionId","_membershipInfo$relat2","_membershipInfo$order","_membershipInfo$order2","additionalPackageItems","additionalPackages","calculateAdditionalPackagesItems","lineItems","additionalPackage","packageItem","OrderApi__Item__c","OrderApi__Sale_Price__c","installmentFeesItems","calculateInstallmentFeesItems","installmentFee","supplementalDuePaid","supplementalDueContact","suppDuesItems","_membershipInfo$relat3","_membershipInfo$conta","_membershipInfo$conta2","suppDuesTotals","getTotal","calculateSuppDuesItems","supplementalDue","AIA_Chapter_Level__c","OrderApi__Price_Override__c","createSupplementalDuePay","accountId","AIA_Member_Architect_Count__c","AIA_Non_member_Architect_Count__c","AIA_Associate_Count__c","AIA_Technical_Staff_Count__c","AIA_Other_Staff_Count__c","AIA_Total_Supplemental_Dues_Amount_Paid__c","AIA_Account__c","AIA_Supplemental_Dues_Year__c","AIA_Supp_Dues_Questionnaire_Response__c","AIA_Supp_Dues_Member_ID__c","memberId","AIA_Supp_Dues_Name__c","memberName","createSupplementalDueContact","OrderId","OrderApi__Subscription_Plan__c","SupplementalDuePaid","AutoRenew","autoRenew","sendPayload","request","token","post","employeeCountCondition","Joi","alternatives","conditional","is","string","valid","number","employeeArchitectCountCondition","min","messages","joiSchemaMessages","OrderRedirectToCheckout","BackdropContext","getSalesforceSsoUrl","MemoizedOrderComponent","orderFormPropsAreEqual","redirectToCheckoutPage","paymentType","orderId","contactId","startUrl","redirectUrl","encodeURIComponent","scrollToTop","scrollTo","top","behavior","Order","setIsLoading","setHasError","setPaymentMethod","setModalOptions","setBackdropOptions","schema","chargeSuppDues","joiResolver","object","allow","array","confirmLicense","boolean","invalid","confirmTerms","confirmAlliedProfessional","confirmInstallments","prefs","formOptions","resolver","defaultValues","shouldFocusError","useForm","payInInstallmentsFailureModalContent","FormProvider","handleSubmit","clear","action","plan","WithBackdropContext","type","context","backdropOptions","OrderWithContext","ScreensRenew","WithLoading","generateContactFormOptions","selfDescribe","country","careerType","zipCode","gradDate","licenseDate","countryConditions","empty","otherwise","usZipCodeValidation","pattern","zipCodeConditions","when","forbidden","addressZipCodeConditions","selfDescribeCondition","isDateField","date","generateContactFormSchema","addressRequired","addressStreet","addressStreetLine2","addressCity","addressState","addressCountry","addressZipCode","updateContact","MembershipTypeRadioGroupStyle","SubDescriptionStyle","ContactFormSelfDescribeRadio","subDescriptionClasses","getValues","ContactFormMembershipType","hideNewGrad","CaptionStyle","ContainerStyle","ErrorHelperStyle","property","formPropertyName","showValues","InputStyles","DateInput","dateInputClasses","textInput","useRef","ref","ChinaShanghai","ChinaOthers","HongKong","CountryHelp","selectedCountry","helpText","entries","val","ContactFormNextButton","DateWithError","SelectWithError","NON_ALLIED","SelectWithErrorEntity","describedBy","CountryField","ConditionalFormPropertyRenderer","sm","ZipCodeField","AddressCustomField","GradDateFieldWithFormContext","LicenseDateField","CareerTypeField","ContactFormComponent","errorHelperClasses","containerClasses","captionClasses","isDuesEstimator","alignContent","_props$onSubmit","call","ContactForm","url","setState","script","document","querySelector","handleScript","src","appendChild","addEventListener","removeEventListener","useExternalScript","address2Field","autocomplete","_duesEstimatorDefault","_duesEstimatorDefault2","duesEstimatorDefaultValues","joinSelfDescribe","localStorage","joinGradDate","slice","joinLicenseDate","getDefaultValues","handlePlaceSelect","address","getPlace","address_components","selectedAddress","street","city","types","long_name","short_name","extractAddress","setValue","focus","getElementById","autocompleteInput","google","maps","places","Autocomplete","addListener","isDirty","hasDirtyValues","updateContactBody","orderDoesntExists","AIA_Membership_Country_Picklist__c","AIA_Career_Type__c","AIA_Membership_Zip_Code_Assignment__c","AIA_Join_SelfDescribe__c","AIA_Membership_Type__c","AIA_Join_Grad_Date__c","toISOString","AIA_Join_License_Date__c","AIA_Mailing_Address_Street__c","AIA_Mailing_Address_City__c","AIA_Mailing_Address_State__c","AIA_Mailing_Address_Zip__c","AIA_Mailing_Address_Country__c","bundle__c","newMembershipInfo","_props$setModalOption","_props$setModalOption2","StepperStyle","StepperLabelStyle","labelContainer","textDecoration","StepperContentStyle","transition","StepperIconStyle","zIndex","active","completed","DisclaimerStyle","NonPayableZipCodeDisclaimer","disclaimerClasses","EXCLUDED_ZIPCODES","isZipCodePayable","ContactFormWithModal","JoinStepperIcon","icon","stepperIcons","1","Person","2","AttachMoney","completedIcon","Check","clsx","String","LeftSide","stepperClasses","activeStep","setActiveStep","handleStep","stepIndex","steps","showPaymentDisclaimer","membershipZipAssignment","Steps","Stepper","orientation","step","Step","StepButton","StepLabel","StepIconComponent","JoinStepLabel","contentClasses","StepContent","JoinStepContent","RightSide","ScreensJoin","ScreensActive","expireDate","membershipExpireDate","getExpireDate","CustomBackdropStyle","drawer","CustomBackdrop","executeAction","isOpened","Backdrop","getContactStatuses","email","LandingStyle","form","box","HeaderStyle","BoxWithTitle","headerClasses","boxClasses","borderedBox","borderTop","GridStyle","SimpleForm","LandingBoxStyle","footer","LandingBox","handleGoToAia","LandingAccountFound","callToAction","titleName","contactStatus","foundMessage","notFoundMessage","cesAuditFailedMessage","underCesAuditMessage","deceasedMessage","epaymentInProgressOrPendingMessage","status","getCallToActionName","_props$contactStatus","handleSignIn","preventDefault","customProvider","customState","onBack","redirectToJoin","redirectUri","protocol","host","scope","join","random","substr","handleJoin","LandingAccountNotFound","ButtonWithLoading","LandingHomeComponent","getUserEmail","response","fetch","sfid","json","LandingHome","setStatus","setContactStatus","setEmail","wasPreferredEmailFetched","setWasPreferredEmailFetched","tlds","statuses","handleBack","HomeStyle","ScreensHome","RadioGroupWithController","AccountRecoveryComponent","AccountRecovery","history","useHistory","setErrors","onErrorHandler","AccountRecoveryContainer","stepCondition","stepLimit","emailCondition","confirmEmailCondition","any","equal","generateRecoveryAttemptFormSchema","firstName","lastName","previousEmail","memberNumber","birthdate","degreeGraduationYear","universityAttended","stateFirstLicense","previousChapter","confirmEmail","phoneNumber","AccountRecoveryAttemptBasicInformation","AccountRecoveryAttemptAdditionalInformation","success","createAccountRecoveryAttempt","horizontal","StepperIcon","AccountRecoveryAttempt","setErrorMessage","setSuccess","setStep","stepperClass","alternativeLabel","nonLinear","stepNumber","AccountRecoveryAttemptConfirmEmail","_error$response","_error$response$data","AccountRecoveryAttemptContainer","getDues","alternativeLicensePath","MemoizedContactForm","contactFormPropsAreEqual","DuesEstimator","loadingDues","setLoadingDues","setDues","setShowPaymentDisclaimer","setContactData","loadingJoin","setLoadingJoin","setTimeout","prefillData","stringify","setItem","VerticalSplitWithLoading","DuesEstimatorWithModal","ScreensDuesEstimator","BackgroundImage","backgroundImage","backgroundSize","backgroundPosition","bottom","AppBar","elevation","MuiList","Footer","year","MuiContainer","HeaderAppBarStyle","HeaderContainerStyle","whiteLink","cursor","Header","appBarClass","containerClass","whiteLinkClass","Container","logo","alt","handleHeader","REACT_APP_MY_ACCOUNT_URL","useQueryParam","MainLayout","landing","setLanding","aiauParam","archiPACParam","ScreensCesAudit","ScreensUnderAudit","LandingEpaymentInProcess","signOut","ScreensHomeWithLoading","ScreensRenewWithLoading","ScreensJoinWithLoading","ScreensActiveWithLoading","ScreensCesAuditWithLoading","ScreensUnderAuditWithLoading","awsConfig","awsExports","region","userPoolId","userPoolWebClientId","mandatorySignIn","storage","authConfig","domain","redirectSignIn","redirectSignOut","responseType","Amplify","configure","oauth","App","ModalWithContext","BackdropWithContext","Router","ThemeProvider","CssBaseline","Switch","exact","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.25403b7f.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/landing.cb1a8772.jpg\";","module.exports = __webpack_public_path__ + \"static/media/logo.7983dd84.svg\";","/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"us-east-1\",\n \"aws_cloud_logic_custom\": [\n {\n \"name\": \"membership\",\n \"endpoint\": \"https://75lekauh4l.execute-api.us-east-1.amazonaws.com/staging\",\n \"region\": \"us-east-1\"\n }\n ]\n};\n\n\nexport default awsmobile;\n","import { red } from '@material-ui/core/colors';\nimport { createMuiTheme, responsiveFontSizes } from '@material-ui/core/styles';\n\n// A custom theme for this app\nconst palette = {\n primary: {\n main: '#ef4135',\n dark: 'black',\n },\n secondary: {\n main: '#efefef',\n light: '#e1e1e1',\n dark: '#808080',\n },\n error: {\n main: red.A400,\n },\n background: {\n default: '#fff',\n },\n};\n\nconst typography = {\n fontFamily: 'architype-light,sans-serif',\n h1: {\n fontSize: '6.4rem',\n color: palette.primary.main,\n },\n h2: {\n fontSize: '2em',\n },\n h3: {\n fontSize: '1.6em',\n },\n body1: {\n fontSize: '1.6rem',\n },\n body2: {\n fontSize: '1.6rem',\n },\n subtitle2: {\n fontSize: '1.6rem',\n fontWeight: 500,\n },\n caption: {\n fontSize: '1.4rem',\n },\n};\n\nlet theme = createMuiTheme({\n typography,\n palette,\n overrides: {\n MuiCssBaseline: {\n '@global': {\n html: {\n 'font-size': '10px',\n },\n body: {\n 'font-size': '1.6rem',\n height: '100%',\n },\n },\n },\n MuiListItemText: {\n multiline: {\n marginTop: 0,\n marginBottom: 0,\n },\n },\n MuiTableCell: {\n root: {\n borderBottom: 'none',\n },\n head: {\n borderBottom: `1px solid ${palette.secondary.light}`,\n },\n },\n MuiFormLabel: {\n asterisk: {\n color: red.A400,\n '&$error': {\n color: red.A400,\n },\n },\n },\n MuiFilledInput: {\n underline: {\n '&:before': {\n borderBottom: 'none',\n },\n },\n input: {\n backgroundColor: '#ffff',\n borderRadius: '0px',\n },\n },\n },\n});\n\ntheme = responsiveFontSizes(theme);\n\nexport default theme;\n","import React from 'react';\nimport { Divider as MuiDivider, Grid, Typography, withStyles } from '@material-ui/core';\n\nconst Divider = withStyles({\n root: {\n width: '100%',\n },\n})(MuiDivider);\n\ninterface ScreensErrorProps {\n errorHeader: string;\n errorMessage: string;\n}\n\nconst ScreensError = (props: ScreensErrorProps): JSX.Element => {\n return (\n \n \n \n {props.errorHeader}\n \n \n \n \n \n {props.errorMessage}\n \n \n \n );\n};\n\nexport default ScreensError;\n","import { EmployeesInfo } from '../data_types/empoyees-info';\nimport { ModalAttributes } from '../data_types/modal';\n\nexport const CONTACT_STATUS = {\n TERMINATED: 'Terminated',\n NON_MEMBER: 'Non-Member',\n ACTIVE: 'Active',\n LAPSED: 'Lapsed',\n};\n\nexport const DEFAULT_MODAL_CONTENT: ModalAttributes = {\n isOpen: false,\n title: 'Error',\n content: 'An error occurred.',\n onConfirm: (): void => window.location.reload(),\n confirmActionName: 'Reload',\n};\n\nexport const INVALID_SESSION_MODAL_CONTENT: ModalAttributes = {\n ...DEFAULT_MODAL_CONTENT,\n title: 'Session expired',\n content: 'Your session has expired and you need to log in again.',\n};\n\nexport const SESSION_INVALID_ERROR = 'not authenticated';\n\nexport const SUPPLEMENTAL_DUES_OPTIONS_NON_SOLE_PRACTITIONER =\n 'I am not a sole practitioner, and I do not own or manage an architecture firm.';\nexport const SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER =\n 'I own or manage an architecture firm and designate another AIA member to pay the supplemental dues my firm owes.';\nexport const SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER = 'I am a sole practitioner.';\nexport const SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM = 'I own or manage an architectural firm.';\n\nexport const EMPLOYEES_INFO: EmployeesInfo = {\n memberArchitectCount: {\n count: 'AIA_Member_Architect_Count__c',\n rate: 'AIA_Architect_Member_Rate__c',\n label: 'Architect Member',\n },\n nonMemberArchitectCount: {\n count: 'AIA_Non_member_Architect_Count__c',\n rate: 'AIA_Architect_Non_Member_Rate__c',\n label: 'Architect Non-Member',\n },\n associateCount: {\n count: 'AIA_Associate_Count__c',\n rate: 'AIA_Associate_Rate__c',\n label: 'Associate',\n },\n technicalStaffCount: {\n count: 'AIA_Technical_Staff_Count__c',\n rate: 'AIA_Tech_Staff_Rate__c',\n label: 'Technical Staff',\n },\n otherStaffCount: {\n count: 'AIA_Other_Staff_Count__c',\n rate: 'AIA_Other_Staff_Rate__c',\n label: 'Other Staff',\n },\n};\n\nexport const ARCHIPAC_DONATION_NAME_EXPRESSION = 'ArchiPAC';\nexport const ARCHIPAC_DONATION_DISCLAIMER = `Contributions to ArchiPAC are not tax-deductible. Contributions are voluntary and will be used for political purposes; you may refuse to contribute without reprisal. Contribution guidelines are only suggestions; you may contribute more or less than the suggested amounts, and you will not be favored, or disadvantaged based on the amount of your contribution or your decision not to contribute. All contributions must be from U.S. citizens or lawful permanent residents (e.g., green card holders) from personal funds and may not be made by anyone who is a federal government contractor. Corporate contributions are prohibited by federal law. Federal law requires political committees to use their best efforts to collect and report the name, address, employer, and occupation of individuals whose contributions exceed $200 during a calendar year. Corporate contributions to ArchiPAC are deposited in a separate Architects Advocacy Fund to support other activities. If a contribution cannot be used for PAC purposes, members will be notified and the money will be transferred into the Architects Advocacy Fund (AAF), a non-PAC fund used for member advocacy. After receiving notice, members may decline the transfer and request a refund of the contribution.`;\n\nexport const ARCHIPAC_DONATION_NOTE = `ArchiPAC is prohibited from accepting business funds or contributions by company credit card or business checking account.`;\n\nexport const ORLANDO_FOUNDATION_FOR_ARCHITECTURE_DISCLAIMER =\n 'Thank you for your contribution to The Orlando Foundation for Architecture (OFA), a non-profit organization dedicated to public education that inspires people to discover WHY DESIGN MATTERS. No goods or services were provided in exchange for this contribution. OFA is an exempt organization as described in Section 501(c)(3) of the Internal Revenue Code. OFA offers 100% deductibility, as no political activities are permitted.';\nexport const SAN_FRANCISCO_SPECIAL_ASSESSMENT_DISCLAIMER =\n 'Thank you for your special assessment of $170 to AIA San Francisco, towards the Center for Architecture + Design. The assessment will be recognized as a donation and may be deductible as a trade or business expense. Architect Members will receive a Center membership, which complements your AIASF membership and includes complimentary access to public programs and member discounts. Learn more at https://centersf.org/shape-your-city.';\nexport const TAMPA_BAY_CENTER_FOR_ARCHITECTURE_DISCLAIMER =\n 'Thank you for your contribution to Center for Architecture & Design, Tampa Bay (CA+D) a nonprofit organization dedicated to promoting the power of design to shape our community. No goods or services were provided in exchange for this contribution. CA+D is an exempt organization as described in Section 501(c)(3) of the Internal Revenue Code. CA+D offers 100% deductibility, as no political activities are permitted. #For questions about your AIA membership, please contact AIA Headquarters at (800) 242 3837, option 2, membersupport@aia.org.';\n\nexport const PARTIAL_AIAU_SUBSCRIPTION_OPTIONAL_ITEM_NAME = 'AIAU Subscription';\nexport const INSTALLMENT_ADMINISTRATION_FEE_NAME = 'Installment';\n\nexport const MEMBERSHIP_TYPE_ARCHITECT = process.env.REACT_APP_MEMBERSHIP_TYPE_ARCHITECT || 'Architect';\nexport const MEMBERSHIP_TYPE_INTL_ASSOCIATE = process.env.REACT_APP_MEMBERSHIP_TYPE_INTL_ASSOCIATE || 'Intl Associate';\nexport const MEMBERSHIP_TYPE_ASSOCIATE = process.env.REACT_APP_MEMBERSHIP_TYPE_ASSOCIATE || 'Associate';\nexport const MEMBERSHIP_TYPE_HONORARY = process.env.REACT_APP_MEMBERSHIP_TYPE_HONORARY || 'Honorary';\nexport const MEMBERSHIP_TYPE_ALLIED = process.env.REACT_APP_MEMBERSHIP_TYPE_ALLIED || 'Allied';\n\nexport const SELF_DESCRIBE_US_ARCHITECT = 'us-license-architect';\nexport const SELF_DESCRIBE_NON_US_ARCHITECT = 'non-us-license-int-associate';\nexport const SELF_DESCRIBE_NEW_GRADUATE = 'new-graduate-associate';\nexport const SELF_DESCRIBE_AXP_ENROLLED = 'axp-enrolled-associate';\nexport const SELF_DESCRIBE_ARCHITECT_DEGREE = 'architect-degree-associate';\nexport const SELF_DESCRIBE_SUPERVISION = 'licensed-supervision-associate';\nexport const SELF_DESCRIBE_FACULTY_MEMBER = 'faculty-member-associate';\nexport const SELF_DESCRIBE_ALLIED = 'professional-allied';\n\nexport const JOIN_SELF_DESCRIBE_OPTIONS: { label: string; value: string }[] = [\n {\n label: 'I hold an active architecture license from a U.S. licensing authority.',\n value: SELF_DESCRIBE_US_ARCHITECT,\n },\n {\n label: 'I hold an active architecture license from a non-U.S. licensing authority.',\n value: SELF_DESCRIBE_NON_US_ARCHITECT,\n },\n {\n label: 'I am a new graduate.',\n value: SELF_DESCRIBE_NEW_GRADUATE,\n },\n {\n label: 'I am enrolled in AXP.',\n value: SELF_DESCRIBE_AXP_ENROLLED,\n },\n {\n label: 'I am not licensed, but I have an architecture degree.',\n value: SELF_DESCRIBE_ARCHITECT_DEGREE,\n },\n {\n label: 'I do not have an architecture degree, but I am working under the supervision of a licensed architect.',\n value: SELF_DESCRIBE_SUPERVISION,\n },\n {\n label: 'I am a faculty member in an architecture program.',\n value: SELF_DESCRIBE_FACULTY_MEMBER,\n },\n {\n label: 'I am an allied professional.',\n value: SELF_DESCRIBE_ALLIED,\n },\n];\n\nexport const MEMBERSHIP_TYPE_MAPPING: { [key: string]: string | undefined } = {\n [SELF_DESCRIBE_US_ARCHITECT]: MEMBERSHIP_TYPE_ARCHITECT,\n [SELF_DESCRIBE_NON_US_ARCHITECT]: MEMBERSHIP_TYPE_INTL_ASSOCIATE,\n [SELF_DESCRIBE_NEW_GRADUATE]: MEMBERSHIP_TYPE_ASSOCIATE,\n [SELF_DESCRIBE_AXP_ENROLLED]: MEMBERSHIP_TYPE_ASSOCIATE,\n [SELF_DESCRIBE_ARCHITECT_DEGREE]: MEMBERSHIP_TYPE_ASSOCIATE,\n [SELF_DESCRIBE_SUPERVISION]: MEMBERSHIP_TYPE_ASSOCIATE,\n [SELF_DESCRIBE_FACULTY_MEMBER]: MEMBERSHIP_TYPE_ASSOCIATE,\n [SELF_DESCRIBE_ALLIED]: MEMBERSHIP_TYPE_ALLIED,\n};\n\nexport const MEMBERSHIP_COUNTRY_UNITED_STATES = 'United States';\n\nexport const DUES_ESTIMATOR_DISCLAIMER = `Disclaimer: The dues calculator is a tool to estimate new or reinstating prospective membership\ndues for national, state and local chapter assignment before the join process. In some cases,\nthe dues amounts may be different based on the estimated amounts provided before joining.\nChanges in total cost may depend on membership categories, prior membership with the AIA or\nlocal or state chapter assignment. If you need the actual membership dues amount, please start\nthe online join process or contact AIA member services at (800) 242-3837, option 2 or 1+ (202)\n626-7300, option 2 (outside the U.S.).`;\n\nexport const LOCAL_STORAGE_DUES_ESTIMATOR_VALUES_KEY = 'dues-estimator-default-values';\nexport const CES_AUDIT_FAILED = 'Audited-Failed';\nexport const UNDER_CES_AUDIT = 'Under Audit';\n","import { Dispatch, SetStateAction, createContext } from 'react';\nimport { DEFAULT_MODAL_CONTENT } from '../utils/constants';\nimport { ModalAttributes } from 'data_types/modal';\n\nexport const ModalContext = createContext({\n options: DEFAULT_MODAL_CONTENT,\n setOptions: (null as unknown) as Dispatch>,\n});\n","import { makeStyles } from '@material-ui/core';\n\nexport const ModalStyle = makeStyles((theme) => ({\n root: {\n '& .MuiPaper-root': {\n borderRadius: '0px',\n },\n '& .MuiDialogTitle-root': {\n backgroundColor: theme.palette.primary.main,\n color: '#fff',\n },\n '& .MuiDialogContent-root': {\n padding: '16px 24px',\n '& p': {\n color: '#000000',\n opacity: 0.87,\n },\n },\n '& .MuiDialogActions-root': {\n padding: '0 24px 16px 24px',\n },\n button: {\n '& .confirm': {\n backgroundColor: 'blue',\n },\n '& .cancel': {\n backgroundColor: 'yellow',\n },\n },\n },\n}));\n","import React from 'react';\nimport { Button, ButtonProps, makeStyles, Typography } from '@material-ui/core';\nimport KeyboardArrowLeftIcon from '@material-ui/icons/KeyboardArrowLeft';\nimport KeyboardArrowRightIcon from '@material-ui/icons/KeyboardArrowRight';\n\nexport interface ArrowedButtonProps extends ButtonProps {\n text: string;\n arrowDirection?: 'left' | 'right';\n}\n\nconst buttonClasses = makeStyles(({ breakpoints }) => ({\n root: {\n borderRadius: 0,\n textTransform: 'none',\n [breakpoints.down('xs')]: {\n width: '100%',\n },\n },\n}));\n\nconst ArrowedButton = (props: ArrowedButtonProps): JSX.Element => {\n const classes = buttonClasses();\n const { arrowDirection, text, color, className, ...otherProps } = props;\n\n return (\n }\n endIcon={(!arrowDirection || arrowDirection === 'right') && }\n >\n {props.children}\n {text}\n \n );\n};\n\nexport default ArrowedButton;\n","import React from 'react';\nimport { Button, ButtonProps, makeStyles, Typography } from '@material-ui/core';\n\nexport interface PlainButtonProps extends ButtonProps {\n text: string;\n}\n\nconst buttonClasses = makeStyles(({ breakpoints, palette }) => ({\n root: {\n borderRadius: 0,\n textTransform: 'none',\n [breakpoints.down('xs')]: {\n width: '100%',\n },\n backgroundColor: '#fff',\n color: palette.primary.main,\n border: '1px solid rgba(0, 0, 0, 0.12)',\n '&:hover': {\n backgroundColor: 'black',\n color: '#fff',\n },\n },\n}));\n\nconst PlainButton = (props: PlainButtonProps): JSX.Element => {\n const classes = buttonClasses();\n\n return (\n \n {props.children}\n {props.text}\n \n );\n};\n\nexport default PlainButton;\n","import React, { useEffect, useState } from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport { DialogActions, Typography } from '@material-ui/core';\nimport { ModalAttributes } from '../../../data_types/modal';\nimport { DEFAULT_MODAL_CONTENT } from '../../../utils/constants';\nimport { ModalStyle } from './Modal.style';\nimport ArrowedButton from '../ArrowedButton/ArrowedButton';\nimport PlainButton from '../PlainButton/PlainButton';\n\ninterface ModalProps {\n modalOptions?: ModalAttributes;\n}\n\nconst Modal = (props: ModalProps): JSX.Element => {\n const classes = ModalStyle();\n const modalOptions = props.modalOptions || DEFAULT_MODAL_CONTENT;\n const [isOpen, setIsOpen] = useState(modalOptions.isOpen);\n const onCancel = (event: React.MouseEvent): void => {\n if (modalOptions.onCancel) {\n modalOptions.onCancel(event);\n }\n setIsOpen(false);\n };\n\n useEffect(() => {\n setIsOpen(props.modalOptions?.isOpen || false);\n }, [props.modalOptions]);\n\n return (\n \n \n {modalOptions.title}\n \n \n {modalOptions.content}\n \n \n {modalOptions.onCancel && (\n \n )}\n {modalOptions.onConfirm && (\n \n )}\n \n \n );\n};\n\nexport default Modal;\n","import { makeStyles } from '@material-ui/core';\n\nexport const AppContainerStyle = makeStyles(({ breakpoints }) => ({\n root: {\n padding: '24px 65px',\n minHeight: 'calc(100vh - 146px)',\n [breakpoints.down('xs')]: {\n minHeight: 'calc(100vh - 228px)',\n padding: '12px 24px',\n },\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n}));\n","import { Dispatch, SetStateAction, createContext } from 'react';\nimport { GlobalValue } from '../data_types/global-value';\nimport { MemberOrderResponse } from '../data_types/member-order';\n\nexport const MembershipContext = createContext({\n membershipInfo: null as MemberOrderResponse | null,\n setMembershipInfo: (null as unknown) as Dispatch>,\n countries: null as GlobalValue[] | null,\n setCountries: (null as unknown) as Dispatch>,\n careerTypes: null as GlobalValue[] | null,\n setCareerTypes: (null as unknown) as Dispatch>,\n});\n","import { API, Auth } from 'aws-amplify';\nimport { MemberOrderResponse } from '../data_types/member-order';\n\nconst getMembershipInfo = async (): Promise => {\n const user = await Auth.currentAuthenticatedUser();\n const currentSession = await Auth.currentSession();\n const response = await API.get('membership', '/membership-info', {\n queryStringParameters: {\n legacyId: user.attributes['custom:uuid'],\n },\n headers: {\n Authorization: currentSession.getAccessToken().getJwtToken(),\n },\n });\n\n return response.data;\n};\n\nexport default getMembershipInfo;\n","import { useContext, useState } from 'react';\nimport { MembershipContext } from '../contexts/MembershipContext';\nimport { MemberOrderResponse } from '../data_types/member-order';\nimport getMembershipInfo from '../utils/get-membership-info';\n\nexport interface MembershipData {\n loading: boolean;\n error: boolean;\n fetchData: () => Promise;\n membershipInfo: MemberOrderResponse | null;\n}\n\nexport const useMembershipInfo = (): MembershipData => {\n const { membershipInfo, setMembershipInfo } = useContext(MembershipContext);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(false);\n\n const fetchData = async (): Promise => {\n setLoading(true);\n try {\n const membershipInfoResponse = await getMembershipInfo();\n if (membershipInfoResponse) {\n setMembershipInfo(membershipInfoResponse);\n } else {\n throw new Error('Invalid data');\n }\n } catch (err) {\n setError(true);\n } finally {\n setLoading(false);\n }\n };\n\n return { loading, error, fetchData, membershipInfo };\n};\n","import { API } from 'aws-amplify';\nimport { GlobalValue } from '../data_types/global-value';\n\nexport type EntityType = 'countries' | 'career-types';\n\nconst getEntities = async (entity: EntityType): Promise => {\n const response = await API.get('membership', `/${entity}`, {});\n\n return response.data;\n};\n\nexport default getEntities;\n","import { useContext, useState } from 'react';\nimport { MembershipContext } from '../contexts/MembershipContext';\nimport { GlobalValue } from '../data_types/global-value';\nimport { MEMBERSHIP_COUNTRY_UNITED_STATES } from '../utils/constants';\nimport getEntities from '../utils/get-entities';\n\nexport interface EntitiesData {\n loading: boolean;\n error: boolean;\n fetchData: () => Promise;\n countries: GlobalValue[] | null;\n careerTypes: GlobalValue[] | null;\n}\n\nexport const useEntities = (): EntitiesData => {\n const { countries, setCountries, careerTypes, setCareerTypes } = useContext(MembershipContext);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(false);\n\n const fetchData = async (): Promise => {\n setLoading(true);\n try {\n const responses = await Promise.all([getEntities('countries'), getEntities('career-types')]);\n if (!responses[0] && !responses[1]) {\n throw new Error('Invalid data');\n }\n\n const index = responses[0].findIndex((item) => item.value === MEMBERSHIP_COUNTRY_UNITED_STATES);\n if (index) {\n responses[0] = [responses[0][index]].concat(responses[0]);\n responses[0].splice(index + 1, 1);\n }\n\n setCountries(responses[0]);\n setCareerTypes(responses[1]);\n } catch {\n setError(true);\n } finally {\n setLoading(false);\n }\n };\n\n return { loading, error, fetchData, countries, careerTypes };\n};\n","import { useMemo } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nfunction useQuery(): URLSearchParams {\n const { search } = useLocation();\n\n return useMemo(() => {\n return new URLSearchParams(search);\n }, [search]);\n}\n\nexport default useQuery;\n","import { UNDER_CES_AUDIT, CES_AUDIT_FAILED, CONTACT_STATUS } from './constants';\n\nconst eligibleForRestart = (\n membershipStatus: string,\n membershipRenewYear: number | null,\n renewEligibleYears: number[],\n): boolean => {\n return (\n membershipStatus === CONTACT_STATUS.TERMINATED &&\n (!membershipRenewYear || !renewEligibleYears.includes(membershipRenewYear))\n );\n};\n\nconst eligibleForRenew = (\n membershipStatus: string,\n membershipRenewYear: number | null,\n renewEligibleYears: number[],\n): boolean => {\n return (\n [CONTACT_STATUS.ACTIVE, CONTACT_STATUS.LAPSED].includes(membershipStatus) &&\n !!membershipRenewYear &&\n renewEligibleYears.includes(membershipRenewYear)\n );\n};\n\nconst eligibleForActive = (\n membershipStatus: string,\n membershipRenewYear: number | null,\n renewEligibleYears: number[],\n): boolean => {\n return (\n membershipStatus === CONTACT_STATUS.ACTIVE &&\n !!membershipRenewYear &&\n membershipRenewYear > Math.max(...renewEligibleYears)\n );\n};\n\nconst epaymentInProgressOrPending = (condition: string, epaymentStatus: string): boolean => {\n return ['join', 'restart', 'renew'].includes(condition) && epaymentStatus === 'In-Progress Pending';\n};\n\ntype Condition =\n | 'active'\n | 'join'\n | 'restart'\n | 'renew'\n | 'ces-audit'\n | 'under-audit'\n | 'deceased'\n | 'epayment-in-progress-or-pending';\n\nexport const membershipCondition = (\n membershipStatus: string,\n membershipCesAudit: string | null,\n membershipRenewYear: number | null,\n renewEligibleYears: number[],\n epaymentStatus = '',\n deceased?: boolean,\n): Condition => {\n let condition: Condition = 'join';\n if (deceased) {\n condition = 'deceased';\n } else if (eligibleForRestart(membershipStatus, membershipRenewYear, renewEligibleYears)) {\n condition = 'restart';\n } else if (eligibleForRenew(membershipStatus, membershipRenewYear, renewEligibleYears)) {\n condition = 'renew';\n if (membershipCesAudit === CES_AUDIT_FAILED) {\n condition = 'ces-audit';\n }\n if (membershipCesAudit === UNDER_CES_AUDIT) {\n condition = 'under-audit';\n }\n } else if (eligibleForActive(membershipStatus, membershipRenewYear, renewEligibleYears)) {\n condition = 'active';\n }\n\n if (epaymentInProgressOrPending(condition, epaymentStatus)) {\n condition = 'epayment-in-progress-or-pending';\n }\n\n return condition;\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState, cloneElement } from 'react';\nimport { RouteProps } from 'react-router';\nimport { Redirect, Route, useLocation } from 'react-router-dom';\nimport { MemberOrderResponse } from '../../../data_types/member-order';\nimport { GlobalValue } from '../../../data_types/global-value';\nimport { useMembershipInfo } from '../../../hooks/use-membership-info';\nimport { useEntities } from '../../../hooks/use-entities';\nimport useQuery from '../../../hooks/use-query';\nimport { Auth } from 'aws-amplify';\nimport { membershipCondition } from '../../../utils/membership-condition';\n\nconst redirectToHome = (user: unknown, loading: boolean, path: string): boolean => !user && !loading && path !== '/';\n\nconst redirectToPath = (\n membershipInfo: MemberOrderResponse | null,\n countries: GlobalValue[] | null,\n user: unknown,\n loading: boolean,\n path: string,\n): string | null => {\n let redirectToPath = null;\n\n if (redirectToHome(user, loading, path)) {\n redirectToPath = '/';\n } else if (membershipInfo && countries) {\n const condition = membershipCondition(\n membershipInfo.contact.membershipStatus,\n membershipInfo.contact.cesAudit,\n membershipInfo.contact.renewYear,\n membershipInfo.renewEligibleYears,\n membershipInfo.contact.membershipEpaymentStatus,\n );\n const conditionPath = `/${condition}`;\n redirectToPath = conditionPath !== path ? conditionPath : null;\n }\n\n return redirectToPath;\n};\n\nconst MembershipRoute: React.FC = (props: RouteProps) => {\n const { children, ...otherProps } = props;\n const [loadingUser, setLoadingUser] = useState(false);\n const [user, setUser] = useState(null);\n const entities = useEntities();\n const membershipInfo = useMembershipInfo();\n\n useEffect(() => {\n setLoadingUser(true);\n Auth.currentAuthenticatedUser()\n .then((userData) => {\n setUser(userData);\n if (!membershipInfo.membershipInfo) {\n membershipInfo.fetchData();\n }\n if (!(entities.countries && entities.careerTypes)) {\n entities.fetchData();\n }\n })\n .catch(() => undefined)\n .finally(() => {\n setLoadingUser(false);\n });\n }, []);\n\n const loading = loadingUser || entities.loading || membershipInfo.loading;\n const error = entities.error || membershipInfo.error;\n\n const location = useLocation();\n const path = location.pathname;\n const redirectTo = redirectToPath(membershipInfo.membershipInfo, entities.countries, user, loading, path);\n const query = useQuery();\n if (redirectTo) {\n return (\n \n );\n }\n\n return (\n \n {children\n ? cloneElement(children as JSX.Element, {\n loading,\n error,\n membershipInfo: membershipInfo.membershipInfo,\n countries: entities.countries,\n careerTypes: entities.careerTypes,\n })\n : null}\n \n );\n};\n\nexport default MembershipRoute;\n","import React, { useState, useEffect } from 'react';\nimport { RouteProps } from 'react-router';\nimport { Auth } from 'aws-amplify';\nimport { Redirect } from 'react-router-dom';\n\nconst SSORoute: React.FC = (): JSX.Element | null => {\n const [isAuthenticated, setIsAuthenticated] = useState(false);\n\n useEffect(() => {\n Auth.currentAuthenticatedUser()\n .then(() => setIsAuthenticated(true))\n .catch(() => Auth.federatedSignIn());\n }, []);\n\n return isAuthenticated ? : null;\n};\n\nexport default SSORoute;\n","import React from 'react';\nimport { Link, List, ListItem, Typography } from '@material-ui/core';\n\nconst ItemWithLink = (props: { href: string; children: string }): JSX.Element => {\n return (\n \n \n \n {props.children} {'>'}\n \n \n \n );\n};\n\nconst Disclosures = (): JSX.Element => {\n return (\n \n Privacy\n Ethics statement\n Terms & conditions\n \n );\n};\n\nexport default Disclosures;\n","import React from 'react';\nimport { Link, List, ListItem, Typography } from '@material-ui/core';\n\nconst Help = (): JSX.Element => {\n return (\n \n \n (800) 242 3837 (option 2)\n \n \n \n \n membersupport@aia.org\n \n \n \n \n );\n};\n\nexport default Help;\n","import React from 'react';\nimport { ListItem, Typography } from '@material-ui/core';\n\ninterface InfoTileProps {\n title: string;\n divider?: boolean;\n children: JSX.Element;\n}\n\nconst InfoTile = ({ title, divider, children }: InfoTileProps): JSX.Element => {\n return (\n \n
\n {title}\n {children}\n
\n
\n );\n};\n\nexport default InfoTile;\n","import React from 'react';\nimport { List, ListItem, ListItemText } from '@material-ui/core';\nimport { Chapters } from '../../../data_types/member-order';\n\ninterface MembershipTaxesProps {\n chapters: Chapters;\n}\n\nconst MembershipTaxes = (props: MembershipTaxesProps): JSX.Element => {\n const renderChapterTax = (chapterName: string, deductibility: number): JSX.Element => (\n \n \n \n );\n\n return (\n \n {props.chapters.National?.Deductibility__c\n ? renderChapterTax('National', props.chapters.National.Deductibility__c)\n : null}\n {props.chapters.State?.Deductibility__c\n ? renderChapterTax('State', props.chapters.State.Deductibility__c)\n : null}\n {props.chapters.Local?.Deductibility__c\n ? renderChapterTax('Local', props.chapters.Local.Deductibility__c)\n : null}\n \n );\n};\n\nexport default MembershipTaxes;\n","import React from 'react';\nimport { Chapters } from '../../../data_types/member-order';\nimport MembershipTaxes from '../../Membership/Taxes/Taxes';\nimport InfoTile from '../InfoTile/InfoTile';\n\ninterface TaxesTileProps {\n chapters?: Chapters;\n}\n\nconst TaxesTile = (props: TaxesTileProps): JSX.Element | null => {\n const showTaxesTile =\n props.chapters &&\n (props.chapters.National?.Deductibility__c ||\n props.chapters.State?.Deductibility__c ||\n props.chapters.Local?.Deductibility__c);\n\n return props.chapters && showTaxesTile ? (\n \n \n \n ) : null;\n};\n\nexport default TaxesTile;\n","import React from 'react';\nimport { Grid, Typography } from '@material-ui/core';\n\ninterface VerticalSplitProps {\n title?: string;\n left: JSX.Element;\n right: JSX.Element;\n}\n\nconst VerticalSplit = (props: VerticalSplitProps): JSX.Element => {\n let titleSection;\n if (props.title) {\n titleSection = (\n \n \n \n {props.title}\n \n \n \n );\n }\n\n return (\n \n {titleSection}\n \n \n {props.left}\n \n \n {props.right}\n \n \n \n );\n};\n\nexport default VerticalSplit;\n","import React from 'react';\nimport { List, ListItem, ListItemText } from '@material-ui/core';\nimport { Contact } from '../../../data_types/member-order';\n\ninterface MembershipMemberInfoProps {\n contact?: Contact;\n}\n\nconst MembershipMemberInfo = (props: MembershipMemberInfoProps): JSX.Element => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default MembershipMemberInfo;\n","import React from 'react';\nimport { List } from '@material-ui/core';\n\ninterface MembershipSidebarProps {\n children: React.ReactNode[] | React.ReactNode;\n}\n\nconst MembershipSidebar = (props: MembershipSidebarProps): JSX.Element => {\n const children = React.Children.toArray(props.children).filter(Boolean);\n\n return (\n \n {React.Children.map(children, (child) => {\n return <>{child};\n })}\n \n );\n};\n\nexport default MembershipSidebar;\n","import { PackageItemsEntity } from '../data_types/member-order';\n\nexport const filterByVisibleOptionalProducts = (\n items?: PackageItemsEntity[] | null,\n): PackageItemsEntity[] | undefined => {\n return items?.filter(\n (item: PackageItemsEntity) =>\n !item.OrderApi__Display_Name__c.startsWith('Installment') &&\n !item.OrderApi__Display_Name__c.startsWith('Supplemental Dues -'),\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nconst WithFormContext =

(Component: React.ComponentType

): React.FC

=> {\n const ComponentWithFormContext = (props: P): JSX.Element => {\n const methods = useFormContext();\n\n return ;\n };\n\n return ComponentWithFormContext;\n};\n\nexport default WithFormContext;\n","import React from 'react';\nimport { CircularProgress as MuiCircularProgress, withStyles } from '@material-ui/core';\n\nexport interface WithLoadingProps {\n loading?: boolean;\n children?: React.ReactNode;\n}\n\nconst CircularProgress = withStyles({\n root: {\n position: 'absolute',\n },\n})(MuiCircularProgress);\n\n// eslint-disable-next-line react/display-name\nconst WithInsideLoading =

(Component: React.ComponentType

): React.FC

=> ({\n loading,\n ...props\n}: WithLoadingProps): JSX.Element => {\n return loading ? (\n \n {props.children}\n \n \n ) : (\n \n );\n};\n\nexport default WithInsideLoading;\n","import { OrderDues } from '../data_types/member-order';\n\nexport const calculateDuesTotal = (dues: OrderDues | undefined): number => {\n const prices: (number | null | undefined)[] = [dues?.Local?.price, dues?.State?.price, dues?.National?.price];\n return prices.reduce((a: number, b) => a + (b || 0), 0);\n};\n","import { Chapters } from '../data_types/member-order';\n\nexport const chargesSupplementalDues = (\n chapters: Chapters | undefined,\n emeritus: boolean | undefined,\n): boolean => {\n return !!(\n chapters &&\n !emeritus &&\n (chapters.State?.AIA_Charge_Supplemental_dues__c || chapters.Local?.AIA_Charge_Supplemental_dues__c)\n );\n};\n","import React from 'react';\nimport { Paper, PaperProps } from '@material-ui/core';\n\ninterface PaymentLayoutProps extends PaperProps {\n children?: React.ReactNode[] | React.ReactNode;\n}\n\nconst BorderedBox = (props: PaymentLayoutProps): JSX.Element => {\n const { children, ...paperProps } = props;\n return (\n \n {children}\n \n );\n};\n\nexport default BorderedBox;\n","import { makeStyles } from '@material-ui/core';\n\nexport const OneAtLeftStyle = makeStyles(({ breakpoints }) => ({\n root: {\n flexDirection: 'row',\n [breakpoints.down('xs')]: {\n flexDirection: 'column',\n alignItems: 'inherit',\n },\n '&> .MuiGrid-item:first-child': {\n flexGrow: 1,\n },\n },\n}));\n","import React from 'react';\nimport { Grid } from '@material-ui/core';\nimport { OneAtLeftStyle } from './OneAtLeft.style';\n\ninterface OneAtLeftProps extends React.HTMLAttributes {\n children: React.ReactNode[] | React.ReactNode;\n alignItems?: 'flex-start' | 'center' | 'flex-end';\n}\n\nconst OneAtLeft = (props: OneAtLeftProps): JSX.Element => {\n const classes = OneAtLeftStyle();\n\n return (\n \n {Array.isArray(props.children)\n ? props.children?.map((item, index) => (\n \n {item}\n \n ))\n : null}\n \n );\n};\n\nexport default OneAtLeft;\n","import { makeStyles } from '@material-ui/core';\n\nexport const TitledTableCellStyle = makeStyles({\n head: {\n padding: '12px 16px 5px 16px',\n },\n});\n","import React, { cloneElement } from 'react';\nimport { Table, TableHead, TableRow, TableBody, TableCell, Typography } from '@material-ui/core';\nimport { TitledTableCellStyle } from './TitledTable.style';\n\ninterface TitledTableProps {\n items: object[];\n title: string;\n children?: JSX.Element;\n}\n\nconst TitledTable = (props: TitledTableProps): JSX.Element | null => {\n const classes = TitledTableCellStyle();\n\n return (\n \n \n \n \n {props.title}\n \n \n \n \n {props.items.map((item) => {\n return props.children ? cloneElement(props.children, item) : null;\n })}\n \n
\n );\n};\n\nexport default TitledTable;\n","export const formatNumber = (num: number | undefined): string => {\n if (num) {\n return '$ ' + num.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n }\n\n return '$ 0';\n};\n","import { makeStyles } from '@material-ui/core';\n\nexport const OrderAdditionalFeesTableItemCellStyle = makeStyles({\n root: {\n padding: '5px 16px',\n height: '43.5px',\n '&:last-of-type': {\n textAlign: 'right',\n },\n },\n});\n","import React from 'react';\nimport { TableRow, TableCell } from '@material-ui/core';\nimport { formatNumber } from '../../../../../utils/format-number';\nimport { OrderAdditionalFeesTableItemCellStyle } from './Item.style';\n\ninterface OrderAdditionalFeesTableItemProps {\n id?: string;\n name?: string;\n price?: number;\n}\n\nconst OrderAdditionalFeesTableItem = (props: OrderAdditionalFeesTableItemProps): JSX.Element => {\n const classes = OrderAdditionalFeesTableItemCellStyle();\n return (\n \n {props.name}\n {formatNumber(props.price)}\n \n );\n};\n\nexport default OrderAdditionalFeesTableItem;\n","import React from 'react';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport { PackageItemsEntity } from '../../../../data_types/member-order';\nimport { INSTALLMENT_ADMINISTRATION_FEE_NAME } from '../../../../utils/constants';\nimport TitledTable from '../../../Common/TitledTable/TitledTable';\nimport OrderAdditionalFeesTableItem from './Item/Item';\n\ninterface OrderAdditionalFeesTableProps {\n optionalProducts?: PackageItemsEntity[] | null;\n defaultSubscriptionPlanId?: string;\n formMethods?: UseFormMethods;\n}\n\nconst OrderAdditionalFeesTable = (props: OrderAdditionalFeesTableProps): JSX.Element | null => {\n const subscriptionPlanId = useWatch({\n control: props.formMethods?.control,\n name: 'subscriptionPlanId',\n defaultValue: props.defaultSubscriptionPlanId,\n });\n\n const optionalProducts = props.optionalProducts\n ?.filter((item: PackageItemsEntity) =>\n item.OrderApi__Display_Name__c.startsWith(INSTALLMENT_ADMINISTRATION_FEE_NAME),\n )\n .map((item: PackageItemsEntity) => {\n return {\n id: item.Id,\n key: item.Id,\n name: item.OrderApi__Display_Name__c,\n price: item.OrderApi__Price__c,\n };\n });\n\n const show =\n subscriptionPlanId !== props.defaultSubscriptionPlanId && optionalProducts && optionalProducts.length > 0;\n\n return show && optionalProducts ? (\n \n \n \n ) : null;\n};\n\nexport default OrderAdditionalFeesTable;\n","import React from 'react';\nimport { Paper as MuiPaper, withStyles } from '@material-ui/core';\nimport WarningIcon from '@material-ui/icons/Warning';\nimport theme from '../../../utils/theme';\n\ninterface AlertProps extends React.HTMLAttributes {\n message: string;\n hideIcon?: boolean;\n}\n\nconst Paper = withStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n paddingBottom: '10px',\n color: theme.palette.error.main,\n border: 'none',\n },\n})(MuiPaper);\n\nconst AlertIcon = withStyles({\n root: {\n fontSize: '2.5em',\n paddingRight: '10px',\n },\n})(WarningIcon);\n\nconst Alert = (props: AlertProps): JSX.Element => {\n const { message, hideIcon, ...otherProps } = props;\n return (\n \n {!hideIcon && }\n {message}\n \n );\n};\n\nexport default Alert;\n","import React, { memo } from 'react';\nimport { UseFormMethods } from 'react-hook-form';\nimport Alert from '../../Common/Alert/Alert';\n\ninterface OrderAlertProps {\n formMethods?: UseFormMethods;\n}\n\ninterface OrderAlertMemoizedProps {\n hasErrors: boolean;\n}\n\nconst OrderAlertMemoized = memo(\n (props: OrderAlertMemoizedProps) => {\n return props.hasErrors ? : null;\n },\n (prev: OrderAlertMemoizedProps, next: OrderAlertMemoizedProps) => {\n return prev.hasErrors === next.hasErrors;\n },\n);\nOrderAlertMemoized.displayName = 'OrderAlertMemoized';\n\nconst OrderAlert = (props: OrderAlertProps): JSX.Element | null => {\n const hasErrors: boolean = props.formMethods?.errors ? Object.keys(props.formMethods?.errors).length > 0 : false;\n\n return ;\n};\n\nexport default OrderAlert;\n","import Link from '@material-ui/core/Link/Link';\nimport Modal from 'components/Common/Modal/Modal';\nimport React from 'react';\n\ninterface ArchiPACModalProps {\n showAutoRenewModal: boolean;\n setShowAutoRenewModal: React.Dispatch>;\n}\n\nconst ArchiPACModal = ({ showAutoRenewModal, setShowAutoRenewModal }: ArchiPACModalProps): JSX.Element => {\n const modalOptions = {\n isOpen: showAutoRenewModal,\n title: 'ArchiPAC Donation Note',\n content: (\n <>\n ArchiPAC contributions are for one year only and will not be enrolled in the AIA Automatic Membership\n Renewal Program. You can contribute to ArchiPAC anytime during the year by visiting the{' '}\n Advocacy page and logging in to your{' '}\n AIA account.\n \n ),\n onCancel: (): void => {\n setShowAutoRenewModal(false);\n },\n cancelActionName: 'Close',\n };\n return ;\n};\n\nexport default ArchiPACModal;\n","import { makeStyles } from '@material-ui/core';\n\nexport const CheckboxStyle = makeStyles((theme) => ({\n root: {\n alignSelf: 'flex-start',\n '&$checked': {\n color: theme.palette.error.main,\n },\n },\n checked: {},\n}));\n","import React from 'react';\nimport { UseFormMethods } from 'react-hook-form';\nimport { FormControlLabel, Checkbox as MuiCheckbox } from '@material-ui/core';\nimport { CheckboxProps as MuiCheckboxProps } from '@material-ui/core/Checkbox/Checkbox';\nimport { CheckboxStyle } from './Checkbox.style';\n\ninterface CheckboxProps extends MuiCheckboxProps {\n formMethods?: UseFormMethods;\n label: JSX.Element | string;\n}\n\nconst Checkbox = (props: CheckboxProps): JSX.Element => {\n const classes = CheckboxStyle();\n const { formMethods, label, ...inputProps } = props;\n\n return (\n \n }\n label={label}\n />\n );\n};\n\nexport default Checkbox;\n","import { makeStyles } from '@material-ui/core';\n\nexport const TooltipStyle = makeStyles((theme) => ({\n tooltip: {\n backgroundColor: theme.palette.secondary.light,\n color: theme.palette.primary.dark,\n fontSize: theme.typography.caption.fontSize,\n },\n}));\n\nexport const InfoIconStyle = makeStyles(() => ({\n root: {\n '& > svg': {\n margin: '10px',\n },\n fontSize: '20px',\n verticalAlign: 'text-bottom',\n },\n}));\n","import React from 'react';\nimport { Tooltip as MaterialTooltip } from '@material-ui/core';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { InfoIconStyle, TooltipStyle } from './Tooltip.style';\n\ninterface TooltipProps {\n title: string;\n}\n\nconst Tooltip = (props: TooltipProps): JSX.Element => {\n const tooltipClasses = TooltipStyle();\n const infoIconClasses = InfoIconStyle();\n\n return (\n \n \n \n );\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport { Typography, makeStyles } from '@material-ui/core';\n\ninterface DisclaimerProps {\n grayedOut?: boolean;\n message: string | React.ReactElement;\n note?: string;\n}\n\nconst cssStyles = makeStyles((theme) => ({\n root: {\n textAlign: 'justify',\n textJustify: 'inter-word',\n marginTop: '12px',\n },\n grayedOut: {\n color: theme.palette.grey[500],\n },\n}));\n\nconst Disclaimer = (props: DisclaimerProps): JSX.Element => {\n const styles = cssStyles();\n\n return (\n

\n {props.note ? (\n <>\n Note: {props.note}\n

\n \n ) : null}\n {props.message}\n
\n );\n};\n\nexport default Disclaimer;\n","import React from 'react';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport { Link } from '@material-ui/core';\nimport WithFormContext from '../../../../hocs/WithFormContext/WithFormContext';\nimport Checkbox from '../../../Common/Checkbox/Checkbox';\nimport Tooltip from 'components/Common/Tooltip/Tooltip';\nimport Disclaimer from 'components/Common/Disclaimer/Disclaimer';\n\nconst FormCheckbox = WithFormContext(Checkbox);\ninterface OrderAutoRenewCheckboxProps {\n defaultSubscriptionPlanId?: string;\n userHasSubscriptionPlanAvailable?: boolean;\n formMethods?: UseFormMethods;\n}\n\nconst OrderAutoRenewCheckbox = (props: OrderAutoRenewCheckboxProps): JSX.Element | null => {\n const subscriptionPlanId = useWatch({\n control: props.formMethods?.control,\n name: 'subscriptionPlanId',\n defaultValue: props.defaultSubscriptionPlanId,\n });\n const autoRenewIsChecked = useWatch({\n control: props.formMethods?.control,\n name: 'autoRenew',\n defaultValue: false,\n });\n const show = subscriptionPlanId === props.defaultSubscriptionPlanId;\n const tooltipText =\n 'If you opt for autorenewal, you will not be able to enroll in the monthly installment program. Each renewal cycle allows for only one payment program selection.';\n const label = (\n <>\n AIA Membership Autorenewal: I agree to enroll in AIA's Automatic Membership Dues Renewal Program. By\n selecting this option, I acknowledge and agree to the{' '}\n \n terms & conditions\n {' '}\n of the program. {props.userHasSubscriptionPlanAvailable ? : null}\n \n );\n const disclaimerMessage = (\n <>\n Your autorenewal will be charged on December 31. You can cancel your enrollment at any time by logging in to\n My Account at{' '}\n \n me.aia.org\n \n . Select Membership > Manage My Autorenewal > Cancel. You may also cancel by contacting the Member\n Support Center at (800) 242-3837, option 2, or{' '}\n \n membersupport@aia.org\n \n . The program's terms and conditions are available on our website{' '}\n \n here\n \n .\n \n );\n\n return show ? (\n <>\n \n {autoRenewIsChecked && }\n \n ) : null;\n};\n\nexport default OrderAutoRenewCheckbox;\n","import React, { cloneElement, memo } from 'react';\nimport { FieldErrors, UseFormMethods } from 'react-hook-form';\nimport { FormControl, FormHelperText } from '@material-ui/core';\n\ntype WithErrorProps = {\n name?: string;\n required?: boolean;\n formMethods?: UseFormMethods;\n};\n\ntype FormControlMemoProps = {\n error: FieldErrors;\n required?: boolean;\n children: JSX.Element;\n};\n\nconst FormControlMemo = memo(\n (props: FormControlMemoProps) => {\n const hasError = !!props.error;\n\n return (\n \n {cloneElement(props.children, { 'aria-invalid': hasError })}\n {hasError && {props.error.message}}\n \n );\n },\n (prev: FormControlMemoProps, next: FormControlMemoProps) => {\n return prev.error === next.error && prev.required === next.required;\n },\n);\nFormControlMemo.displayName = 'FormControlMemo';\n\n// eslint-disable-next-line react/display-name\nconst WithErrorHelper =

(Component: React.ComponentType

): React.FC

=> ({\n name,\n formMethods,\n required,\n ...props\n}: P & WithErrorProps): JSX.Element => {\n const error = name ? formMethods?.errors?.[name] : null;\n\n return (\n \n \n \n );\n};\n\nexport default WithErrorHelper;\n","import React from 'react';\nimport { Typography, makeStyles } from '@material-ui/core';\nimport WithFormContext from '../../../../hocs/WithFormContext/WithFormContext';\nimport WithErrorHelper from '../../../../hocs/WithErrorHelper/WithErrorHelper';\nimport Checkbox from '../../../Common/Checkbox/Checkbox';\nimport Tooltip from '../../../Common/Tooltip/Tooltip';\nimport { MEMBERSHIP_TYPE_ALLIED } from '../../../../utils/constants';\n\ninterface OrderConfirmLicenseCheckboxProps {\n membershipType?: string;\n}\n\nconst CheckboxWithError = WithFormContext(WithErrorHelper(Checkbox));\n\nexport const labelStyle = makeStyles({\n root: {\n marginRight: '5px',\n },\n});\n\nconst OrderConfirmLicenseCheckbox = (props: OrderConfirmLicenseCheckboxProps): JSX.Element | null => {\n const labelClasses = labelStyle();\n const show = props.membershipType === MEMBERSHIP_TYPE_ALLIED;\n\n const disclaimer = `Those with established professional reputations who are registered to practice their professions\n where such requirements exist, or persons who are employed outside of architectural practice but are involved\n in positions allied to the field of architecture. Individual Allied members may include engineers, planners,\n landscape architects, sculptors, muralists, artist, and others in government, education, journalism, manufacturing,\n industry and/or other fields allied to architecture.`;\n\n const label = (\n <>\n I attest that I meet the requirements for Allied Membership of the AIA.{' '}\n \n *\n \n \n \n );\n\n return show ? (\n <>\n \n \n ) : null;\n};\n\nexport default OrderConfirmLicenseCheckbox;\n","import React from 'react';\nimport { Typography } from '@material-ui/core';\nimport WithFormContext from '../../../../hocs/WithFormContext/WithFormContext';\nimport WithErrorHelper from '../../../../hocs/WithErrorHelper/WithErrorHelper';\nimport Checkbox from '../../../Common/Checkbox/Checkbox';\nimport { MEMBERSHIP_TYPE_ARCHITECT } from '../../../../utils/constants';\n\ninterface OrderConfirmLicenseCheckboxProps {\n membershipType?: string;\n}\n\nconst CheckboxWithError = WithFormContext(WithErrorHelper(Checkbox));\n\nconst OrderConfirmLicenseCheckbox = (props: OrderConfirmLicenseCheckboxProps): JSX.Element | null => {\n const show = props.membershipType === MEMBERSHIP_TYPE_ARCHITECT;\n\n const label = (\n <>\n I attest that I am currently licensed to practice architecture in the U.S.{' '}\n \n *\n \n \n );\n\n return show ? (\n \n ) : null;\n};\n\nexport default OrderConfirmLicenseCheckbox;\n","import React from 'react';\nimport { Link, Typography } from '@material-ui/core';\nimport WithFormContext from '../../../../hocs/WithFormContext/WithFormContext';\nimport WithErrorHelper from '../../../../hocs/WithErrorHelper/WithErrorHelper';\nimport Checkbox from '../../../Common/Checkbox/Checkbox';\n\nconst CheckboxWithError = WithFormContext(WithErrorHelper(Checkbox));\n\nconst OrderConfirmTermsCheckbox = (): JSX.Element | null => {\n const label = (\n <>\n I agree to the{' '}\n \n AIA Membership Terms and Conditions\n {' '}\n \n *\n \n \n );\n\n return ;\n};\n\nexport default OrderConfirmTermsCheckbox;\n","import { makeStyles } from '@material-ui/core';\n\nexport const DuesTableItemCellStyle = makeStyles({\n root: {\n padding: '12px 16px',\n '&:first-of-type': {\n paddingLeft: '27px',\n },\n '&:last-of-type': {\n textAlign: 'right',\n },\n },\n});\n","import React from 'react';\nimport { TableRow, TableCell } from '@material-ui/core';\nimport { formatNumber } from '../../../../../utils/format-number';\nimport { DuesTableItemCellStyle } from './Item.style';\n\ninterface OrderDuesTableItemProps {\n name?: string;\n price?: number;\n}\n\nconst OrderDuesTableItem = (props: OrderDuesTableItemProps): JSX.Element => {\n const classes = DuesTableItemCellStyle();\n\n return (\n \n {props.name}\n {formatNumber(props.price)}\n \n );\n};\n\nexport default OrderDuesTableItem;\n","import React from 'react';\nimport { OrderDues } from '../../../../data_types/member-order';\nimport TitledTable from '../../../Common/TitledTable/TitledTable';\nimport OrderDuesTableItem from './Item/Item';\n\ninterface OrderDuesTableProps {\n dues?: OrderDues;\n}\n\nconst OrderDuesTable = (props: OrderDuesTableProps): JSX.Element => {\n const chapterItems = [];\n if (props.dues) {\n chapterItems.push({ key: 'national', name: props.dues?.National.name, price: props.dues?.National.price });\n props.dues.State &&\n chapterItems.push({ key: 'state', name: props.dues?.State?.name, price: props.dues?.State?.price });\n props.dues.Local &&\n chapterItems.push({ key: 'local', name: props.dues?.Local?.name, price: props.dues?.Local?.price });\n }\n\n return (\n \n \n \n );\n};\n\nexport default OrderDuesTable;\n","import React from 'react';\nimport { Typography } from '@material-ui/core';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport WithFormContext from '../../../../hocs/WithFormContext/WithFormContext';\nimport WithErrorHelper from '../../../../hocs/WithErrorHelper/WithErrorHelper';\nimport Checkbox from '../../../Common/Checkbox/Checkbox';\n\ninterface OrderInstallmentsCheckboxProps {\n defaultSubscriptionPlanId?: string;\n formMethods?: UseFormMethods;\n}\n\nconst CheckboxWithError = WithFormContext(WithErrorHelper(Checkbox));\n\nconst OrderInstallmentsCheckbox = (props: OrderInstallmentsCheckboxProps): JSX.Element | null => {\n const subscriptionPlanId = useWatch({\n control: props.formMethods?.control,\n name: 'subscriptionPlanId',\n defaultValue: props.defaultSubscriptionPlanId,\n });\n\n const show = subscriptionPlanId !== props.defaultSubscriptionPlanId;\n\n const installmentsLabel = (\n <>\n By clicking the checkbox you agree to pay all installments until membership is paid in full. You will be\n charged today and the last day of each month. You must use a credit card for installment payments. Only\n membership dues can be paid in installments.{' '}\n \n *\n \n \n );\n\n return show ? (\n \n ) : null;\n};\n\nexport default OrderInstallmentsCheckbox;\n","import { makeStyles } from '@material-ui/core';\n\nexport const SelectStyle = makeStyles({\n root: {\n width: '100%',\n },\n});\n","import React, { ReactNode } from 'react';\nimport { FormControl, InputLabel, Select as MuiSelect } from '@material-ui/core';\nimport { SelectProps as MuiSelectProps } from '@material-ui/core/Select/Select';\nimport { SelectStyle } from './Select.style';\n\ninterface SelectProps extends MuiSelectProps {\n label: string;\n required?: boolean;\n children?: ReactNode[] | ReactNode;\n}\n\nconst Select = (props: SelectProps): JSX.Element => {\n const selectClasses = SelectStyle();\n const { label, children, ...otherProps } = props;\n\n return (\n \n \n {label} {props.required && *}\n \n \n {children}\n \n \n );\n};\n\nexport default Select;\n","import React from 'react';\nimport { UseFormMethods, Controller } from 'react-hook-form';\n\ntype ControllerProps = {\n name: string;\n defaultValue?: string | number | undefined | null;\n formMethods?: UseFormMethods;\n};\n\nconst WithController =

(Component: React.ComponentType

): React.FC

=> {\n const ComponentWithController = ({ name, formMethods, ...props }: P & ControllerProps): JSX.Element => {\n return (\n } />\n );\n };\n\n return ComponentWithController;\n};\n\nexport default WithController;\n","import { makeStyles } from '@material-ui/core';\n\nexport const InstalmentsSelectStyle = makeStyles(({ breakpoints }) => ({\n root: {\n [breakpoints.up('sm')]: {\n width: '100px',\n },\n },\n}));\n","import React from 'react';\nimport { MenuItem } from '@material-ui/core';\nimport { SubscriptionPlan } from '../../../../data_types/member-order';\nimport WithFormContext from '../../../../hocs/WithFormContext/WithFormContext';\nimport SelectComponent from '../../../Common/Select/Select';\nimport WithController from '../../../../hocs/WithController/WithController';\nimport { InstalmentsSelectStyle } from './Select.style';\n\ninterface OrderInstallmentsSelectProps {\n subscriptionPlans?: SubscriptionPlan[];\n}\n\nconst Select = WithFormContext(WithController(SelectComponent));\n\nconst OrderInstallmentsSelect = (props: OrderInstallmentsSelectProps): JSX.Element | null => {\n const instalmentsSelectClasses = InstalmentsSelectStyle();\n\n const sortedSubscriptionPlans = props.subscriptionPlans?.sort(\n (a, b) => (a.OrderApi__Number_Of_Installments__c || 1) - (b.OrderApi__Number_Of_Installments__c || 1),\n );\n\n return (\n \n {sortedSubscriptionPlans?.map((subscription: SubscriptionPlan) => (\n \n {subscription.OrderApi__Number_Of_Installments__c || 'Pay in full'}\n \n ))}\n \n );\n};\n\nexport default OrderInstallmentsSelect;\n","import { makeStyles } from '@material-ui/core';\n\nexport const OptionalProductsItemCellStyle = makeStyles({\n root: {\n padding: '12px 16px',\n '&:last-of-type': {\n textAlign: 'right',\n minWidth: '110px',\n },\n verticalAlign: 'top',\n },\n});\n","import React from 'react';\nimport { TableRow, TableCell } from '@material-ui/core';\nimport WithFormContext from 'hocs/WithFormContext/WithFormContext';\nimport CheckboxComponent from 'components/Common/Checkbox/Checkbox';\nimport { formatNumber } from 'utils/format-number';\nimport { OptionalProductsItemCellStyle } from './Item.style';\nimport Disclaimer from 'components/Common/Disclaimer/Disclaimer';\n\ninterface OrderOptionalProductsTableItemComponentProps {\n id: string;\n name: string;\n price: number;\n label: string;\n disclaimer?: {\n message: string;\n note?: string;\n };\n onChange: () => void;\n checked: boolean;\n disabled?: boolean;\n}\n\nconst Checkbox = WithFormContext(CheckboxComponent);\n\nconst OrderOptionalProductsTableItemComponent = (props: OrderOptionalProductsTableItemComponentProps): JSX.Element => {\n const cellClasses = OptionalProductsItemCellStyle();\n\n return (\n \n \n props.onChange()}\n checked={!!props.checked}\n disabled={props.disabled}\n />\n {props.disclaimer ? (\n \n ) : null}\n \n \n {formatNumber(props.price)}\n \n \n );\n};\n\nexport default OrderOptionalProductsTableItemComponent;\n","import React, { useEffect, useState } from 'react';\nimport OrderOptionalProductsTableItemComponent from './ItemComponent';\ninterface OrderOptionalProductsTableItemProps {\n id?: string;\n name?: string;\n price?: number;\n label?: string;\n checkedByDefault?: boolean;\n disabled?: boolean;\n disclaimer?: {\n message: string;\n note?: string;\n };\n}\nconst OrderOptionalProductsTableItem = (props: OrderOptionalProductsTableItemProps): JSX.Element => {\n const [checkboxChecked, setCheckboxChecked] = useState(false);\n useEffect(() => {\n if (props.checkedByDefault) {\n setCheckboxChecked(true);\n }\n }, [props.checkedByDefault]);\n const handleCheck = (): void => setCheckboxChecked(!checkboxChecked);\n return (\n \n );\n};\nexport default OrderOptionalProductsTableItem;\n","import React from 'react';\nimport { PackageItemsEntity } from '../../../../data_types/member-order';\nimport TitledTable from '../../../Common/TitledTable/TitledTable';\nimport OrderOptionalProductsTableItem from './Item/Item';\nimport { generateOptionalCheckboxState } from 'utils/generate-optional-checkbox-state';\nimport { useMembershipInfo } from 'hooks/use-membership-info';\nimport { filterByVisibleOptionalProducts } from 'utils/filterByVisibleOptionalProducts';\n\ninterface OrderOptionalProductsTableProps {\n optionalProducts?: PackageItemsEntity[] | null;\n}\ninterface IterableProductInterface {\n key: string;\n id: string;\n name: string;\n price: number;\n label: string;\n checkedByDefault: boolean;\n disclaimer: React.ReactNode | undefined;\n disabled: boolean;\n}\n\nconst OrderOptionalProductsTable = (props: OrderOptionalProductsTableProps): JSX.Element | null => {\n const membershipInfo = useMembershipInfo();\n\n const generateProductOptions = (item: PackageItemsEntity, itemIndex: number): IterableProductInterface => {\n const checkboxData = generateOptionalCheckboxState({\n productName: item.OrderApi__Display_Name__c,\n membershipInfo: membershipInfo.membershipInfo,\n });\n\n return {\n key: item.Id,\n id: item.Id,\n name: `additionalPackages[${itemIndex}].${item.Id}`,\n price: item.OrderApi__Price__c,\n label: item.OrderApi__Display_Name__c,\n checkedByDefault: checkboxData.checked,\n disclaimer: checkboxData.disclaimer,\n disabled: checkboxData.disabled,\n };\n };\n\n const optionalProducts = filterByVisibleOptionalProducts(\n props.optionalProducts,\n )?.map((item: PackageItemsEntity, index: number) => generateProductOptions(item, index));\n\n const show = optionalProducts && optionalProducts.length > 0;\n\n return show && optionalProducts ? (\n \n \n \n ) : null;\n};\n\nexport default OrderOptionalProductsTable;\n","import { MemberOrderResponse } from 'data_types/member-order';\nimport {\n ARCHIPAC_DONATION_DISCLAIMER,\n ARCHIPAC_DONATION_NOTE,\n MEMBERSHIP_TYPE_ASSOCIATE,\n MEMBERSHIP_TYPE_INTL_ASSOCIATE,\n ORLANDO_FOUNDATION_FOR_ARCHITECTURE_DISCLAIMER,\n PARTIAL_AIAU_SUBSCRIPTION_OPTIONAL_ITEM_NAME,\n SAN_FRANCISCO_SPECIAL_ASSESSMENT_DISCLAIMER,\n TAMPA_BAY_CENTER_FOR_ARCHITECTURE_DISCLAIMER,\n} from 'utils/constants';\n\ntype OptionalProductCheckboxData = {\n checked: boolean;\n disclaimer?: {\n message: string;\n note?: string;\n };\n disabled: boolean;\n};\n\ntype Props = {\n membershipInfo: MemberOrderResponse | null;\n productName: string;\n};\n\nexport const generateOptionalCheckboxState = ({ membershipInfo, productName }: Props): OptionalProductCheckboxData => {\n const packageItems = membershipInfo?.related?.packageItems;\n const contactData = membershipInfo?.contact;\n\n let needToPrecheckDonationForUser;\n\n switch (productName) {\n case 'ArchiPAC donation':\n const storedValue = sessionStorage.getItem('isArchiPACPrechecked');\n const isPrechecked = storedValue ? JSON.parse(storedValue) : false;\n const isPacDonationActive = !!membershipInfo?.chapters?.State?.AIA_Require_PAC__c || isPrechecked;\n\n return {\n checked: isPacDonationActive,\n disclaimer: {\n message: ARCHIPAC_DONATION_DISCLAIMER,\n note: ARCHIPAC_DONATION_NOTE,\n },\n disabled: false,\n };\n case 'Orlando Foundation for Architecture':\n needToPrecheckDonationForUser = packageItems?.find((item) => item.OrderApi__Display_Name__c === productName)\n ?.AIA_Require_Item__c;\n\n return {\n checked: !!needToPrecheckDonationForUser,\n disclaimer: {\n message: ORLANDO_FOUNDATION_FOR_ARCHITECTURE_DISCLAIMER,\n },\n disabled: false,\n };\n case 'Special Assessment for the Center for Architecture + Design':\n let canOptionalBeUnchecked = false;\n canOptionalBeUnchecked = [MEMBERSHIP_TYPE_ASSOCIATE, MEMBERSHIP_TYPE_INTL_ASSOCIATE].includes(\n contactData?.membershipType as string,\n );\n canOptionalBeUnchecked = canOptionalBeUnchecked || !!contactData?.emeritus;\n\n needToPrecheckDonationForUser = packageItems?.find((item) => item.OrderApi__Display_Name__c === productName)\n ?.AIA_Require_Item__c;\n\n needToPrecheckDonationForUser = needToPrecheckDonationForUser && !canOptionalBeUnchecked;\n return {\n checked: !!needToPrecheckDonationForUser,\n disclaimer: {\n message: SAN_FRANCISCO_SPECIAL_ASSESSMENT_DISCLAIMER,\n },\n disabled: !canOptionalBeUnchecked,\n };\n case 'Tampa Bay Center for Architecture & Design':\n needToPrecheckDonationForUser = packageItems?.find((item) => item.OrderApi__Display_Name__c === productName)\n ?.AIA_Require_Item__c;\n return {\n checked: !!needToPrecheckDonationForUser,\n disclaimer: {\n message: TAMPA_BAY_CENTER_FOR_ARCHITECTURE_DISCLAIMER,\n },\n disabled: false,\n };\n default:\n // Handle partial matches within the default case\n if (productName.includes(PARTIAL_AIAU_SUBSCRIPTION_OPTIONAL_ITEM_NAME)) {\n const storedValue = sessionStorage.getItem('isAiauPrechecked');\n const isPrechecked = storedValue ? JSON.parse(storedValue) : false;\n const disclaimerText = packageItems?.find((item) =>\n item.OrderApi__Display_Name__c.includes(PARTIAL_AIAU_SUBSCRIPTION_OPTIONAL_ITEM_NAME),\n )?.AIA_Help_Text__c;\n return {\n checked: isPrechecked,\n disclaimer: disclaimerText\n ? {\n message: disclaimerText,\n }\n : undefined,\n disabled: false,\n };\n }\n\n // Handle unknown cases\n return {\n checked: false,\n disclaimer: undefined,\n disabled: false,\n };\n }\n};\n","import { makeStyles } from '@material-ui/core';\n\nexport const BorderedBoxStyle = makeStyles({\n root: {\n padding: '16px',\n marginBottom: '25px',\n '& > fieldset > .Mui-error': {\n paddingLeft: '16px',\n },\n },\n});\n\nexport const MarginTopStyle = makeStyles({\n root: {\n marginTop: '30px',\n },\n});\n\nexport const ButtonRowStyle = makeStyles(({ breakpoints }) => ({\n root: {\n [breakpoints.down('xs')]: {\n '&> :nth-child(2)': {\n order: -1,\n },\n },\n },\n}));\n","import React from 'react';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport WithInsideLoading, { WithLoadingProps } from '../../../../hocs/WithInsideLoading/WithInsideLoading';\nimport ArrowedButton, { ArrowedButtonProps } from '../../../Common/ArrowedButton/ArrowedButton';\n\ninterface OrderPayOfflineButtonProps extends WithLoadingProps, ArrowedButtonProps {\n formMethods?: UseFormMethods;\n defaultSubscriptionPlanId: string | undefined;\n}\n\nconst ArrowedButtonWithLoading = WithInsideLoading(ArrowedButton);\n\nconst OrderPayOfflineButton = ({\n defaultSubscriptionPlanId,\n disabled,\n formMethods,\n ...orderButtonProps\n}: OrderPayOfflineButtonProps): JSX.Element => {\n const subscriptionPlanId = useWatch({\n control: formMethods?.control,\n name: 'subscriptionPlanId',\n defaultValue: defaultSubscriptionPlanId,\n });\n\n disabled = disabled || subscriptionPlanId !== defaultSubscriptionPlanId;\n\n return ;\n};\n\nexport default OrderPayOfflineButton;\n","import { makeStyles } from '@material-ui/core';\n\nexport const RadioStyle = makeStyles((theme) => ({\n root: {\n '&$checked': {\n color: theme.palette.error.main,\n },\n },\n checked: {},\n}));\n\nexport const FormControlLabelStyle = makeStyles((theme) => ({\n label: theme.typography.h5,\n}));\n","import React from 'react';\nimport { UseFormMethods } from 'react-hook-form';\nimport { FormControlLabel, Radio as MuiRadio } from '@material-ui/core';\nimport { RadioProps as MuiRadioProps } from '@material-ui/core/Radio/Radio';\nimport { RadioStyle, FormControlLabelStyle } from './Radio.style';\n\ninterface RadioProps extends MuiRadioProps {\n formMethods?: UseFormMethods;\n label: JSX.Element | string;\n}\n\nconst Radio = (props: RadioProps): JSX.Element => {\n const radioClasses = RadioStyle();\n const formControlLabelClasses = FormControlLabelStyle();\n const { formMethods, label, style, ...inputProps } = props;\n\n return (\n \n }\n label={label}\n />\n );\n};\n\nexport default Radio;\n","import React, { ReactNode } from 'react';\nimport { RadioGroup as MuiRadioGroup } from '@material-ui/core';\nimport { RadioGroupProps as MuiRadioGroupProps } from '@material-ui/core/RadioGroup/RadioGroup';\nimport { UseFormMethods } from 'react-hook-form';\n\ninterface RadioGroupProps extends MuiRadioGroupProps {\n formMethods?: UseFormMethods;\n children?: ReactNode[] | ReactNode;\n}\n\nconst RadioGroup = (props: RadioGroupProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { children, formMethods, ...radioGroupProps } = props;\n return {children};\n};\n\nexport default RadioGroup;\n","import { makeStyles } from '@material-ui/core';\n\nexport const MemberTypeRadioGroupStyle = makeStyles({\n root: {\n padding: '16px 16px 0 16px',\n },\n});\n","import React from 'react';\nimport WithErrorHelper from '../../../../hocs/WithErrorHelper/WithErrorHelper';\nimport WithFormContext from '../../../../hocs/WithFormContext/WithFormContext';\nimport {\n SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER,\n SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM,\n SUPPLEMENTAL_DUES_OPTIONS_NON_SOLE_PRACTITIONER,\n SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER,\n} from '../../../../utils/constants';\nimport RadioComponent from '../../../Common/Radio/Radio';\nimport RadioGroup from '../../../Common/RadioGroup/RadioGroup';\nimport { MemberTypeRadioGroupStyle } from './MemberType.style';\n\nconst RadioGroupWithError = WithFormContext(WithErrorHelper(RadioGroup));\nconst Radio = WithFormContext(RadioComponent);\n\nconst SUPPLEMENTAL_DUES_OPTIONS = [\n {\n label: SUPPLEMENTAL_DUES_OPTIONS_NON_SOLE_PRACTITIONER,\n value: SUPPLEMENTAL_DUES_OPTIONS_NON_SOLE_PRACTITIONER,\n },\n {\n label: SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER,\n value: SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER,\n },\n {\n label: SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER,\n value: SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER,\n },\n {\n label: SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM,\n value: SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM,\n },\n];\n\nconst OrderSuppDuesMemberType = (): JSX.Element => {\n const classes = MemberTypeRadioGroupStyle();\n return (\n \n {SUPPLEMENTAL_DUES_OPTIONS.map((option) => (\n \n ))}\n \n );\n};\n\nexport default OrderSuppDuesMemberType;\n","import React from 'react';\nimport { UseFormMethods } from 'react-hook-form';\nimport { TextField, StandardTextFieldProps } from '@material-ui/core';\n\ninterface InputProps extends Omit {\n formMethods?: UseFormMethods;\n variant?: 'filled' | 'standard';\n}\n\nconst Input = (props: InputProps): JSX.Element => {\n const { formMethods, ...otherProps } = props;\n return (\n \n );\n};\n\nexport default Input;\n","import { makeStyles } from '@material-ui/core';\n\nexport const MemberResponsibleStyle = makeStyles({\n root: {\n marginLeft: '24px',\n marginBottom: '16px',\n },\n});\n","import React from 'react';\nimport { Grid } from '@material-ui/core';\nimport WithFormContext from '../../../../hocs/WithFormContext/WithFormContext';\nimport WithErrorHelper from '../../../../hocs/WithErrorHelper/WithErrorHelper';\nimport InputComponent from '../../../Common/Input/Input';\nimport { MemberResponsibleStyle } from './Responsible.style';\n\nconst InputWithError = WithFormContext(WithErrorHelper(InputComponent));\nconst Input = WithFormContext(InputComponent);\n\nconst OrderSuppDuesResponsibleComponent = (): JSX.Element => {\n const gridClasses = MemberResponsibleStyle();\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default OrderSuppDuesResponsibleComponent;\n","import React from 'react';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport { SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER } from '../../../../utils/constants';\nimport OrderSuppDuesResponsibleComponent from './ResponsibleComponent';\n\ninterface OrderSuppDuesResponsibleProps {\n formMethods?: UseFormMethods;\n}\n\nconst OrderSuppDuesResponsible = (props: OrderSuppDuesResponsibleProps): JSX.Element | null => {\n const supplementalDuesMemberType = useWatch({\n control: props.formMethods?.control,\n name: 'supplementalDuesMemberType',\n defaultValue: '',\n });\n\n const show = supplementalDuesMemberType === SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER;\n\n return show ? : null;\n};\n\nexport default OrderSuppDuesResponsible;\n","import { makeStyles } from '@material-ui/core';\n\nexport const SuppDuesTableItemCellStyle = makeStyles({\n root: {\n padding: '5px 0px 5px 5px',\n verticalAlign: 'top',\n '&:first-of-type': {\n paddingLeft: '12px',\n '&> :first-child': {\n width: '100%',\n maxWidth: '300px',\n paddingBottom: '5px',\n },\n },\n '&:not(:first-child)': {\n paddingTop: '16px',\n textAlign: 'right',\n },\n },\n});\n","import React, { ChangeEvent } from 'react';\nimport { TableRow, TableCell } from '@material-ui/core';\nimport WithFormContext from '../../../../../hocs/WithFormContext/WithFormContext';\nimport WithErrorHelper from '../../../../../hocs/WithErrorHelper/WithErrorHelper';\nimport Input from '../../../../Common/Input/Input';\nimport { formatNumber } from '../../../../../utils/format-number';\nimport { SuppDuesTableItemCellStyle } from './Item.style';\n\ninterface OrderSuppDuesTableItemComponentProps {\n keyValue: string;\n placeholder: string;\n name: string;\n stateDues?: number;\n localDues?: number;\n total: number;\n onChange: (value: string) => void;\n}\n\nconst InputWithError = WithFormContext(WithErrorHelper(Input));\n\nconst OrderSuppDuesTableItemComponent = (props: OrderSuppDuesTableItemComponentProps): JSX.Element => {\n const classes = SuppDuesTableItemCellStyle();\n\n return (\n \n \n ): void => {\n props.onChange(e.target.value);\n }}\n />\n \n {props.stateDues !== undefined ? (\n {formatNumber(props.stateDues)}\n ) : null}\n {props.localDues !== undefined ? (\n {formatNumber(props.localDues)}\n ) : null}\n \n {formatNumber(props.total)}\n \n \n );\n};\n\nexport default OrderSuppDuesTableItemComponent;\n","import React, { useState } from 'react';\nimport OrderSuppDuesTableItemComponent from './ItemComponent';\n\nexport interface OrderSuppDuesTableItemProps {\n keyValue?: string;\n name?: string;\n placeholder?: string;\n stateDues?: number;\n localDues?: number;\n total?: number;\n}\n\nconst OrderSuppDuesTableItem = (props: OrderSuppDuesTableItemProps): JSX.Element => {\n const [total, setTotal] = useState(props.total || 0);\n\n const handleOnChange = (value: string): void => {\n const stateDues = props.stateDues || 0;\n const localDues = props.localDues || 0;\n const total = (+value || 0) * (stateDues + localDues);\n setTotal(total);\n };\n\n return (\n \n );\n};\n\nexport default OrderSuppDuesTableItem;\n","import { makeStyles } from '@material-ui/core';\n\nexport const SuppDuesTableCellStyle = makeStyles({\n head: {\n padding: '16px 5px 5px 5px',\n border: 'none',\n '&:first-of-type': {\n paddingLeft: '12px',\n },\n '&:last-of-type': {\n paddingRight: '0px',\n textAlign: 'right',\n },\n '&:not(:first-child)': {\n paddingRight: '0px',\n textAlign: 'right',\n },\n },\n});\n","import React, { cloneElement } from 'react';\nimport { Table, TableHead, TableRow, TableCell, TableBody } from '@material-ui/core';\nimport { OrderSuppDuesTableItemProps } from './Item/Item';\nimport { SuppDuesTableCellStyle } from './Table.style';\n\ninterface OrderSuppDuesTableComponentProps {\n items?: OrderSuppDuesTableItemProps[];\n children?: JSX.Element;\n}\n\nconst showColumn = (value: 'stateDues' | 'localDues', items?: OrderSuppDuesTableItemProps[]): boolean => {\n return items && items.length > 0 ? !!items?.[0][value] : true;\n};\n\nconst ShowStateAndLocalColumn = (props: {\n showColumn: boolean | number | undefined;\n showOtherColumn: boolean | number | undefined;\n children: string;\n}): JSX.Element | null => {\n const classes = SuppDuesTableCellStyle();\n\n return props.showColumn ? (\n \n {props.children}\n \n ) : null;\n};\n\nconst OrderSuppDuesTableComponent = (props: OrderSuppDuesTableComponentProps): JSX.Element => {\n const classes = SuppDuesTableCellStyle();\n\n const showStateColumn = showColumn('stateDues', props.items);\n const showLocalColumn = showColumn('localDues', props.items);\n\n return (\n \n \n \n \n # Employees\n \n \n State\n \n \n Local\n \n \n Total\n \n \n \n \n {props.items?.map((elem) => {\n return props.children ? cloneElement(props.children, { ...elem, key: elem.keyValue }) : null;\n })}\n \n
\n );\n};\n\nexport default OrderSuppDuesTableComponent;\n","import React from 'react';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport { TableCell, TableRow } from '@material-ui/core';\nimport { Chapters } from '../../../../data_types/member-order';\nimport OrderSuppDuesTableItem, { OrderSuppDuesTableItemProps } from './Item/Item';\nimport TitledTable from '../../../Common/TitledTable/TitledTable';\nimport OrderSuppDuesTableComponent from './TableComponent';\nimport {\n EMPLOYEES_INFO,\n SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM,\n SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER,\n} from '../../../../utils/constants';\n\ninterface OrderSuppDuesTableProps {\n formMethods?: UseFormMethods;\n chapters?: Chapters;\n}\n\nconst OrderSuppDuesTable = (props: OrderSuppDuesTableProps): JSX.Element | null => {\n const supplementalDuesMemberType = useWatch({\n control: props.formMethods?.control,\n name: 'supplementalDuesMemberType',\n defaultValue: '',\n });\n\n const state = props.chapters?.State;\n const local = props.chapters?.Local;\n const show =\n supplementalDuesMemberType === SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER ||\n supplementalDuesMemberType === SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM;\n\n const employeeTypesWithSupplementalDues = (): OrderSuppDuesTableItemProps[] => {\n const employeeTypes: OrderSuppDuesTableItemProps[] = [];\n\n Object.keys(EMPLOYEES_INFO).forEach((key) => {\n const stateDues = (state && (state[EMPLOYEES_INFO[key].rate] as number)) || 0;\n const localDues = (local && (local[EMPLOYEES_INFO[key].rate] as number)) || 0;\n\n if (stateDues + localDues > 0) {\n const row: OrderSuppDuesTableItemProps = {\n keyValue: key,\n name: key,\n placeholder: EMPLOYEES_INFO[key].label,\n stateDues: state?.AIA_Charge_Supplemental_dues__c ? stateDues : undefined,\n localDues: local?.AIA_Charge_Supplemental_dues__c ? localDues : undefined,\n total: key === 'memberArchitectCount' ? stateDues + localDues : 0,\n };\n employeeTypes.push(row);\n }\n });\n\n return employeeTypes;\n };\n\n const supplementalDuesItems = employeeTypesWithSupplementalDues();\n\n return show ? (\n \n \n \n \n \n \n \n \n \n ) : null;\n};\n\nexport default OrderSuppDuesTable;\n","import { Chapters, EmployeesTotal } from '../data_types/member-order';\nimport { EMPLOYEES_INFO } from './constants';\n\ninterface SupplementalDues {\n name: string;\n label: string;\n stateDues: number;\n localDues: number;\n}\n\nconst getSupplementalDues = (employeeTypes: string[], chapters: Chapters): SupplementalDues[] => {\n return employeeTypes.map((employeeType) => ({\n name: employeeType,\n label: EMPLOYEES_INFO[employeeType].label,\n stateDues: (chapters.State && (chapters.State[EMPLOYEES_INFO[employeeType].rate] as number)) || 0,\n localDues: (chapters.Local && (chapters.Local[EMPLOYEES_INFO[employeeType].rate] as number)) || 0,\n }));\n};\n\nexport interface SuppDuesTotal {\n state: number;\n local: number;\n}\n\nconst calculateSupplementalDuesTotal = (employeesTotal: EmployeesTotal, chapters: Chapters): SuppDuesTotal => {\n const supplementalDues = getSupplementalDues(Object.keys(employeesTotal), chapters);\n let stateTotal = supplementalDues.reduce((acc, elem) => acc + elem.stateDues * (employeesTotal[elem.name] || 0), 0);\n const stateMinRate = chapters.State?.AIA_Min_Limit__c || 0;\n const stateMaxRate = chapters.State?.AIA_Max_Limit__c || stateTotal;\n\n if (stateTotal < stateMinRate) {\n stateTotal = stateMinRate;\n } else if (stateMaxRate !== 0 && stateTotal > stateMaxRate) {\n stateTotal = stateMaxRate;\n }\n\n let localTotal = supplementalDues.reduce((acc, elem) => acc + elem.localDues * (employeesTotal[elem.name] || 0), 0);\n const localMinRate = chapters.Local?.AIA_Min_Limit__c || 0;\n const localMaxRate = chapters.Local?.AIA_Max_Limit__c || localTotal;\n\n if (localTotal < localMinRate) {\n localTotal = localMinRate;\n } else if (localMaxRate !== 0 && localTotal > localMaxRate) {\n localTotal = localMaxRate;\n }\n\n return {\n state: stateTotal,\n local: localTotal,\n };\n};\n\nexport default calculateSupplementalDuesTotal;\n","import { makeStyles } from '@material-ui/core';\n\nexport const TotalTableRowStyle = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.palette.secondary.light,\n },\n}));\n","import React from 'react';\nimport { Table, TableBody, TableRow, TableCell, Typography } from '@material-ui/core';\nimport { formatNumber } from '../../../../utils/format-number';\nimport { TotalTableRowStyle } from './Table.style';\n\ninterface OrderTotalTableComponentProps {\n total: number;\n}\n\nconst OrderTotalTableComponent = (props: OrderTotalTableComponentProps): JSX.Element => {\n const classes = TotalTableRowStyle();\n\n return (\n \n \n \n \n Total membership dues\n \n \n {formatNumber(props.total)}\n \n \n \n
\n );\n};\n\nexport default OrderTotalTableComponent;\n","import { Dispatch, SetStateAction, createContext } from 'react';\n\nexport const OrderContext = createContext({\n orderTotal: null as null | number,\n setOrderTotal: (null as unknown) as Dispatch>,\n});\n","import React, { useContext } from 'react';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport { EmployeesTotal, OrderDues, StateOrLocal } from '../../../../data_types/member-order';\nimport {\n SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER,\n SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM,\n} from '../../../../utils/constants';\nimport calculateSupplementalDuesTotal from '../../../../utils/supplemental-dues-calculation';\nimport OrderTotalTableComponent from './TableComponent';\nimport { OrderContext } from 'contexts/OrderContext';\n\nexport interface OrderTotalTableProps {\n formMethods?: UseFormMethods;\n dues?: OrderDues;\n state?: StateOrLocal;\n local?: StateOrLocal;\n}\n\nconst OrderTotalTable = (props: OrderTotalTableProps): JSX.Element | null => {\n let prices: (number | null | undefined)[] = [\n props.dues?.Local?.price,\n props.dues?.State?.price,\n props.dues?.National?.price,\n ];\n const { setOrderTotal } = useContext(OrderContext);\n const memberType: string =\n useWatch({\n control: props.formMethods?.control,\n name: 'supplementalDuesMemberType',\n }) || '';\n\n const employeesTotal: EmployeesTotal = {\n memberArchitectCount: useWatch({\n control: props.formMethods?.control,\n name: 'memberArchitectCount',\n defaultValue: 1,\n }),\n nonMemberArchitectCount: useWatch({\n control: props.formMethods?.control,\n name: 'nonMemberArchitectCount',\n defaultValue: null,\n }),\n associateCount: useWatch({\n control: props.formMethods?.control,\n name: 'associateCount',\n defaultValue: null,\n }),\n technicalStaffCount: useWatch({\n control: props.formMethods?.control,\n name: 'technicalStaffCount',\n defaultValue: null,\n }),\n otherStaffCount: useWatch({\n control: props.formMethods?.control,\n name: 'otherStaffCount',\n defaultValue: null,\n }),\n };\n\n const countEmployees = [\n SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER,\n SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM,\n ].includes(memberType);\n const totalByEmployees = calculateSupplementalDuesTotal(employeesTotal, { State: props.state, Local: props.local });\n countEmployees && (prices = prices.concat(totalByEmployees.local + totalByEmployees.state));\n\n const total = prices.reduce((a: number, b) => a + (b || 0), 0);\n setOrderTotal(total);\n return ;\n};\n\nexport default OrderTotalTable;\n","import { makeStyles } from '@material-ui/core';\n\nexport const InstallmentDisabledStyle = makeStyles(() => ({\n root: {\n marginTop: '20px',\n },\n}));\n","import { Typography } from '@material-ui/core';\nimport React, { BaseSyntheticEvent, useEffect, useState } from 'react';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport { filterByVisibleOptionalProducts } from 'utils/filterByVisibleOptionalProducts';\nimport { MemberOrderResponse, SubscriptionPlan } from '../../data_types/member-order';\nimport WithFormContext from '../../hocs/WithFormContext/WithFormContext';\nimport WithInsideLoading from '../../hocs/WithInsideLoading/WithInsideLoading';\nimport { calculateDuesTotal } from '../../utils/calculate-dues-total';\nimport { chargesSupplementalDues } from '../../utils/charges-supplemental-dues';\nimport ArrowedButton from '../Common/ArrowedButton/ArrowedButton';\nimport BorderedBox from '../Common/BorderedBox/BorderedBox';\nimport OneAtLeft from '../Common/OneAtLeft/OneAtLeft';\nimport OrderAdditionalFeesTable from './AdditionalFees/Table/Table';\nimport OrderAlert from './Alert/Alert';\nimport ArchiPACModal from './ArchiPACModal/ArchiPACModal';\nimport OrderAutoRenewCheckbox from './AutoRenew/Checkbox/Checkbox';\nimport OrderConfirmAlliedCheckbox from './ConfirmAllied/Checkbox/Checkbox';\nimport OrderConfirmLicenseCheckbox from './ConfirmLicense/Checkbox/Checkbox';\nimport OrderConfirmTermsCheckbox from './ConfirmTerms/Checkbox/Checkbox';\nimport OrderDuesTable from './Dues/Table/Table';\nimport OrderInstallmentsCheckbox from './Installments/Checkbox/Checkbox';\nimport OrderInstallmentsSelect from './Installments/Select/Select';\nimport OrderOptionalProductsTable from './OptionalProducts/Table/Table';\nimport { BorderedBoxStyle, ButtonRowStyle, MarginTopStyle } from './Order.style';\nimport OrderPayOfflineButtonComponent from './PayOffline/Button/Button';\nimport OrderSuppDuesMemberType from './SuppDues/MemberType/MemberType';\nimport OrderSuppDuesResponsible from './SuppDues/Responsible/Responsible';\nimport OrderSuppDuesTable from './SuppDues/Table/Table';\nimport OrderTotalTable from './Total/Table/Table';\nimport DisabledInstallment from './Installments/Disabled/DisabledInstallment';\nimport { OrderContext } from 'contexts/OrderContext';\n\nexport interface OrderComponentProps {\n membershipInfo: MemberOrderResponse;\n isLoading: boolean;\n hasError: boolean;\n paymentMethod: string;\n onSubmit?: (e?: BaseSyntheticEvent | undefined) => Promise;\n formMethods?: UseFormMethods;\n}\nconst ARCHIPAC_DONATION = 'ArchiPAC donation';\nconst OrderPayOfflineButton = WithInsideLoading(OrderPayOfflineButtonComponent);\nconst OrderPayNowButton = WithInsideLoading(ArrowedButton);\nconst AlertWithFormContext = WithFormContext(OrderAlert);\nconst today = new Date();\nconst currentYear = today.getFullYear();\nconst currentMonth = today.getMonth() + 1;\n\nconst getDefaultSubscription = (subscriptionPlans: SubscriptionPlan[] | undefined): SubscriptionPlan | undefined => {\n return subscriptionPlans?.find((sub: SubscriptionPlan) => sub.OrderApi__Number_Of_Installments__c === null);\n};\n\nconst handlePayment = (\n submitAction: 'online' | 'offline',\n e: React.FormEvent,\n onSubmit?: (e?: BaseSyntheticEvent | undefined) => Promise,\n): void => {\n const event = { ...e, submitAction };\n onSubmit?.(event);\n};\n\nconst getPaymentState = (\n paymentMethod: 'online' | 'offline',\n selectedPayment: string,\n isLoading: boolean,\n): {\n loading: boolean;\n disabled: boolean;\n} => {\n return {\n loading: selectedPayment === paymentMethod && isLoading,\n disabled: isLoading,\n };\n};\n\nconst OrderComponent = (props: OrderComponentProps): JSX.Element => {\n const [showAutoRenewModal, setShowAutoRenewModal] = useState(false);\n const [orderTotal, setTotal] = useState(null);\n const borderedBoxClasses = BorderedBoxStyle();\n const marginTopClasses = MarginTopStyle();\n const buttonRowClasses = ButtonRowStyle();\n const handlePayOnline = (e: React.FormEvent): void => handlePayment('online', e, props.onSubmit);\n const handlePayOffline = (e: React.FormEvent): void => handlePayment('offline', e, props.onSubmit);\n const payOnlineState = getPaymentState('online', props.paymentMethod, props.isLoading);\n const payOfflineState = getPaymentState('offline', props.paymentMethod, props.isLoading);\n\n const hasArchiPACDonationOption = props.membershipInfo.related?.packageItems?.some(\n (item) => item.OrderApi__Display_Name__c.toLowerCase() === ARCHIPAC_DONATION.toLowerCase(),\n );\n const getArchiPACCheckboxName = (): string => {\n if (hasArchiPACDonationOption) {\n const items = filterByVisibleOptionalProducts(props.membershipInfo.related?.packageItems);\n const itemIndex = items?.findIndex(\n (item) => item.OrderApi__Display_Name__c.toLowerCase() === ARCHIPAC_DONATION.toLowerCase(),\n ) as number;\n const itemId = items?.[itemIndex]?.Id;\n return `additionalPackages[${itemIndex}].${itemId}`;\n } else {\n return 'not-exist';\n }\n };\n const autoRenewIsChecked = useWatch({\n control: props.formMethods?.control,\n name: 'autoRenew',\n defaultValue: false,\n });\n const archiPACIsChecked = useWatch({\n control: props.formMethods?.control,\n name: getArchiPACCheckboxName(),\n });\n const isInstallmentsDisabled = process.env.REACT_APP_FEATURE_INSTALLMENTS_DISABLED === 'true';\n const userHasInstallmentsOption =\n props.membershipInfo.related?.subscriptionPlans &&\n props.membershipInfo.related?.subscriptionPlans.length > 1 &&\n calculateDuesTotal(props.membershipInfo.order?.items) > 0;\n const allowedInstallmentBasedOnMonth =\n !props.membershipInfo.contact?.renewYear ||\n (props.membershipInfo.contact?.renewYear === currentYear && currentMonth < 10) ||\n (props.membershipInfo.contact?.renewYear ?? 0) > currentYear;\n const hasAvailableInstallments = userHasInstallmentsOption && !autoRenewIsChecked && allowedInstallmentBasedOnMonth;\n const showSubscriptionPlans = isInstallmentsDisabled ? false : hasAvailableInstallments;\n const defaultSubscriptionPlanId = getDefaultSubscription(props.membershipInfo.related?.subscriptionPlans)?.Id;\n\n useEffect(() => {\n if (autoRenewIsChecked && archiPACIsChecked) {\n setShowAutoRenewModal(true);\n }\n }, [autoRenewIsChecked, archiPACIsChecked]);\n return (\n \n
\n \n {chargesSupplementalDues(\n props.membershipInfo.chapters,\n props.membershipInfo.contact?.emeritus,\n ) && (\n \n \n Your chapter assesses supplemental dues for membership. Please select the option that best\n applies applies to you.{' '}\n \n *\n \n \n \n \n \n )}\n {Order summary}\n \n \n \n \n \n\n
\n \n \n \n {showSubscriptionPlans ? (\n \n ) : null}\n {props.membershipInfo?.hasAccessToAutoRenew && !!orderTotal ? (\n
\n \n {hasArchiPACDonationOption ? (\n \n ) : null}\n
\n ) : null}\n {isInstallmentsDisabled && }\n
\n\n
\n \n {!autoRenewIsChecked && (\n \n )}\n {showSubscriptionPlans ? (\n \n ) : null}\n \n \n
\n \n \n );\n};\n\nexport default OrderComponent;\n","import { OrderData } from '../components/Order/Order';\nimport {\n MemberOrderResponse,\n UpdateMembershipInfoRequest,\n SupplementalDuePaid,\n SupplementalDueContact,\n LineItem,\n PackageItemsEntity,\n StateOrLocal,\n} from '../data_types/member-order';\nimport { chargesSupplementalDues } from './charges-supplemental-dues';\nimport { SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER, SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM } from './constants';\nimport calculateSupplementalDuesTotal, { SuppDuesTotal } from './supplemental-dues-calculation';\n\nconst calculateAdditionalPackagesItems = (\n additionalPackages: object[],\n packageItems?: PackageItemsEntity[] | null,\n): LineItem[] => {\n const lineItems: LineItem[] = [];\n additionalPackages.forEach((item) => {\n const additionalPackage = item as { [key: string]: boolean };\n const id = Object.keys(additionalPackage)[0];\n const value = additionalPackage[id];\n\n if (value) {\n const packageItem = packageItems?.find((packageItem) => {\n return packageItem.Id === id;\n });\n\n lineItems.push({\n OrderApi__Item__c: packageItem?.Id,\n OrderApi__Sale_Price__c: packageItem?.OrderApi__Price__c,\n });\n }\n });\n return lineItems;\n};\n\nconst calculateInstallmentFeesItems = (\n subscriptionPlanId: string | undefined,\n defaultSubscriptionId: string | undefined,\n packageItems?: PackageItemsEntity[] | null,\n): LineItem[] => {\n const lineItems: LineItem[] = [];\n if (subscriptionPlanId && subscriptionPlanId !== defaultSubscriptionId) {\n const installmentFee = packageItems?.find((item) => item.OrderApi__Display_Name__c.startsWith('Installment'));\n installmentFee &&\n lineItems.push({\n OrderApi__Item__c: installmentFee?.Id || undefined,\n OrderApi__Sale_Price__c: installmentFee?.OrderApi__Price__c,\n });\n }\n return lineItems;\n};\n\nconst getTotal = (data: OrderData, state?: StateOrLocal, local?: StateOrLocal): SuppDuesTotal => {\n return calculateSupplementalDuesTotal(\n {\n memberArchitectCount: data.memberArchitectCount,\n nonMemberArchitectCount: data.nonMemberArchitectCount,\n associateCount: data.associateCount,\n technicalStaffCount: data.technicalStaffCount,\n otherStaffCount: data.otherStaffCount,\n },\n { State: state, Local: local },\n );\n};\n\nconst calculateSuppDuesItems = (\n suppDuesTotals: SuppDuesTotal,\n packageItems?: PackageItemsEntity[] | null,\n): LineItem[] => {\n const lineItems: LineItem[] = [];\n const supplementalDues = packageItems?.filter((item) =>\n item.OrderApi__Display_Name__c.startsWith('Supplemental Dues -'),\n );\n supplementalDues?.forEach((supplementalDue) => {\n if (\n (supplementalDue.AIA_Chapter_Level__c === 'Local' && suppDuesTotals.local > 0) ||\n suppDuesTotals.state > 0\n ) {\n lineItems.push({\n OrderApi__Item__c: supplementalDue.Id,\n OrderApi__Sale_Price__c:\n supplementalDue.AIA_Chapter_Level__c === 'Local' ? suppDuesTotals.local : suppDuesTotals.state,\n OrderApi__Price_Override__c: true,\n });\n }\n });\n return lineItems;\n};\n\nconst paysSuppDues = (supplementalDuesMemberType: string | undefined): boolean => {\n return (\n supplementalDuesMemberType !== undefined &&\n [SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER, SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM].includes(\n supplementalDuesMemberType,\n )\n );\n};\n\nconst createSupplementalDuePay = (\n data: OrderData,\n total: number,\n accountId: string | undefined,\n renewYear: number | null | undefined,\n): SupplementalDuePaid => ({\n AIA_Member_Architect_Count__c: data.memberArchitectCount,\n AIA_Non_member_Architect_Count__c: data.nonMemberArchitectCount,\n AIA_Associate_Count__c: data.associateCount,\n AIA_Technical_Staff_Count__c: data.technicalStaffCount,\n AIA_Other_Staff_Count__c: data.otherStaffCount,\n AIA_Total_Supplemental_Dues_Amount_Paid__c: total,\n AIA_Account__c: accountId,\n AIA_Supplemental_Dues_Year__c: renewYear || undefined,\n});\n\nconst createSupplementalDueContact = (data: OrderData): SupplementalDueContact => ({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n AIA_Supp_Dues_Questionnaire_Response__c: data.supplementalDuesMemberType!,\n AIA_Supp_Dues_Member_ID__c: data.memberId,\n AIA_Supp_Dues_Name__c: data.memberName,\n});\n\nconst createPayload = (\n data: OrderData,\n membershipInfo: MemberOrderResponse,\n defaultSubscriptionId: string | undefined,\n): UpdateMembershipInfoRequest => {\n const additionalPackageItems = data.additionalPackages\n ? calculateAdditionalPackagesItems(data.additionalPackages, membershipInfo.related?.packageItems)\n : [];\n const installmentFeesItems = calculateInstallmentFeesItems(\n data.subscriptionPlanId,\n defaultSubscriptionId,\n membershipInfo.related?.packageItems,\n );\n\n let supplementalDuePaid: SupplementalDuePaid | undefined;\n let supplementalDueContact: SupplementalDueContact | undefined;\n let suppDuesItems: LineItem[] = [];\n\n if (chargesSupplementalDues(membershipInfo.chapters, membershipInfo.contact.emeritus)) {\n if (paysSuppDues(data.supplementalDuesMemberType)) {\n const suppDuesTotals = getTotal(data, membershipInfo.chapters?.State, membershipInfo.chapters?.Local);\n suppDuesItems = calculateSuppDuesItems(suppDuesTotals, membershipInfo.related?.packageItems);\n supplementalDuePaid = createSupplementalDuePay(\n data,\n suppDuesTotals.local + suppDuesTotals.state,\n membershipInfo.contact?.accountId,\n membershipInfo.contact?.renewYear,\n );\n }\n\n supplementalDueContact = createSupplementalDueContact(data);\n }\n\n return {\n OrderId: membershipInfo.order?.order?.Id || '',\n OrderApi__Subscription_Plan__c: data.subscriptionPlanId || defaultSubscriptionId,\n lineItems: additionalPackageItems.concat(installmentFeesItems, suppDuesItems),\n contact: supplementalDueContact,\n SupplementalDuePaid: supplementalDuePaid,\n AutoRenew: data.autoRenew || false,\n };\n};\n\nexport default createPayload;\n","import { API, Auth } from 'aws-amplify';\nimport { LineItem, MemberOrderResponse, OrderDues, UpdateMembershipInfoRequest } from '../data_types/member-order';\nimport { calculateDuesTotal } from './calculate-dues-total';\n\nconst calculateOrderTotal = (dues: OrderDues | undefined, request: UpdateMembershipInfoRequest): number => {\n const duesTotal = calculateDuesTotal(dues);\n const lineItemsTotal = request.lineItems.reduce(\n (a: number, b: LineItem) => a + (b.OrderApi__Sale_Price__c || 0),\n 0,\n );\n\n return duesTotal + lineItemsTotal;\n};\n\nconst sendPayload = async (\n submitAction: string,\n membershipInfo: MemberOrderResponse,\n request: UpdateMembershipInfoRequest,\n): Promise => {\n const user = await Auth.currentAuthenticatedUser();\n const currentSession = await Auth.currentSession();\n const token = currentSession.getAccessToken().getJwtToken();\n\n return API.post('membership', '/membership-info', {\n body: {\n ...request,\n },\n headers: {\n Authorization: token,\n },\n });\n};\n\nexport default sendPayload;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Joi from 'joi';\nimport { joiResolver } from '@hookform/resolvers/joi';\nimport {\n SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER,\n SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM,\n SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER,\n} from './constants';\nimport { Resolver } from 'react-hook-form';\n\nconst requiredMessage = 'This information is required.';\nconst employeeCountCondition = Joi.alternatives().conditional('supplementalDuesMemberType', {\n is: Joi.string().valid(SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER, SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM),\n then: Joi.number().required(),\n});\n\nconst employeeArchitectCountCondition = Joi.alternatives().conditional('supplementalDuesMemberType', {\n is: Joi.string().valid(SUPPLEMENTAL_DUES_OPTIONS_SOLE_PRACTITIONER, SUPPLEMENTAL_DUES_OPTIONS_MANAGE_FIRM),\n then: Joi.number().min(1).required().messages({ 'number.min': 'You should include at least yourself.' }),\n});\n\nconst joiSchemaMessages = {\n 'number.base': requiredMessage,\n 'string.empty': requiredMessage,\n 'any.invalid': requiredMessage,\n};\n\nexport const generateRenewSchema = (chargeSuppDues: boolean): Resolver, object> => {\n return joiResolver(\n Joi.object({\n subscriptionPlanId: Joi.string(),\n supplementalDuesMemberType: chargeSuppDues ? Joi.string().required() : Joi.valid(),\n memberName: Joi.alternatives().conditional('supplementalDuesMemberType', {\n is: SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER,\n then: Joi.string().required(),\n }),\n memberId: Joi.alternatives().conditional('supplementalDuesMemberType', {\n is: SUPPLEMENTAL_DUES_OPTIONS_DESIGNATE_MEMBER,\n then: Joi.string().allow(''),\n }),\n memberArchitectCount: employeeArchitectCountCondition,\n nonMemberArchitectCount: employeeCountCondition,\n associateCount: employeeCountCondition,\n technicalStaffCount: employeeCountCondition,\n otherStaffCount: employeeCountCondition,\n additionalPackages: Joi.array().items(Joi.object()),\n confirmLicense: Joi.boolean().invalid(false),\n confirmTerms: Joi.boolean().invalid(false),\n confirmAlliedProfessional: Joi.boolean().invalid(false),\n confirmInstallments: Joi.boolean().invalid(false),\n autoRenew: Joi.boolean(),\n }).prefs({\n messages: joiSchemaMessages,\n }),\n );\n};\n","import { CircularProgress, Typography } from '@material-ui/core';\nimport React from 'react';\n\nconst OrderRedirectToCheckout = (): JSX.Element => {\n return (\n <>\n \n \n Redirecting to checkout page...\n \n \n );\n};\n\nexport default OrderRedirectToCheckout;\n","import { BackdropOptions } from 'data_types/backdrop-options';\nimport { Dispatch, SetStateAction, createContext } from 'react';\n\nexport const BackdropContext = createContext({\n options: { isOpen: false } as BackdropOptions,\n setOptions: (null as unknown) as Dispatch>,\n});\n","import { API } from 'aws-amplify';\n\nconst getSalesforceSsoUrl = async (): Promise => {\n const response = await API.get('membership', '/salesforce-app-sso-url', {});\n return response.data;\n};\n\nexport default getSalesforceSsoUrl;\n","import React, { memo, useContext, useState } from 'react';\nimport { MemberOrderResponse } from '../../data_types/member-order';\nimport OrderComponent, { OrderComponentProps } from './OrderComponent';\nimport createPayload from '../../utils/order-create-payload';\nimport sendPayload from '../../utils/order-send-payload';\nimport { getDefaultSubscription } from '../../utils/get-default-subscription';\nimport { generateRenewSchema } from '../../utils/generate-renew-schema';\nimport { generateRenewFormOptions } from '../../utils/generate-renew-form-options';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { chargesSupplementalDues } from '../../utils/charges-supplemental-dues';\nimport OrderRedirectToCheckout from './RedirectToCheckout/RedirectToCheckout';\nimport { ModalContext } from '../../contexts/ModalContext';\nimport { BackdropContext } from '../../contexts/BackdropContext';\nimport { DEFAULT_MODAL_CONTENT, INVALID_SESSION_MODAL_CONTENT, SESSION_INVALID_ERROR } from '../../utils/constants';\nimport getSalesforceSsoUrl from 'utils/get-salesforce-sso-url';\n\ntype OrderProps = {\n membershipInfo: MemberOrderResponse;\n};\n\nexport interface OrderData {\n subscriptionPlanId: string | undefined;\n supplementalDuesMemberType?: string;\n memberName?: string;\n memberId?: string;\n memberArchitectCount: number;\n nonMemberArchitectCount: number;\n associateCount: number;\n technicalStaffCount: number;\n otherStaffCount: number;\n additionalPackages?: object[];\n confirmLicense: boolean;\n confirmTerms: boolean;\n confirmInstallments: boolean;\n autoRenew: boolean;\n}\n\nconst orderFormPropsAreEqual = (prev: OrderComponentProps, next: OrderComponentProps): boolean => {\n return prev.hasError === next.hasError && prev.isLoading === next.isLoading;\n};\n\nconst MemoizedOrderComponent = memo(OrderComponent, orderFormPropsAreEqual);\n\nconst redirectToCheckoutPage = async (\n paymentType: string,\n orderId: string,\n contactId?: string,\n): Promise => {\n const ssoUrl = await getSalesforceSsoUrl();\n const startUrl =\n paymentType === 'online'\n ? `${process.env.REACT_APP_CHECKOUT_PATH}/${orderId}`\n : `${process.env.REACT_APP_PDF_PATH}?recordId=${contactId}`;\n\n const redirectUrl = `${process.env.REACT_APP_SSO_URL}?startURL=${encodeURIComponent(startUrl)}`;\n window.location.assign(redirectUrl);\n};\n\nconst scrollToTop = (): void => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n};\n\nconst Order = (props: OrderProps): JSX.Element => {\n const [isLoading, setIsLoading] = useState(false);\n const [hasError, setHasError] = useState(false);\n const [paymentMethod, setPaymentMethod] = useState('');\n\n const { setOptions: setModalOptions } = useContext(ModalContext);\n const { setOptions: setBackdropOptions } = useContext(BackdropContext);\n\n const defaultSubscriptionPlanId = getDefaultSubscription(props.membershipInfo.related?.subscriptionPlans)?.Id;\n const schema = generateRenewSchema(\n chargesSupplementalDues(\n props.membershipInfo.chapters,\n props.membershipInfo.contact?.emeritus,\n ),\n );\n const formOptions = generateRenewFormOptions({\n resolver: schema,\n defaultValues: {\n subscriptionPlanId: defaultSubscriptionPlanId || '',\n },\n });\n\n const formMethods = useForm(formOptions);\n\n const { membershipInfo } = props;\n\n const payInInstallmentsFailureModalContent = {\n isOpen: true,\n title: 'Paying in installments failed',\n content: (\n
\n Thank you for attempting to renew your 2023 AIA Membership Dues. We are sorry that you were unable to\n complete your transaction online due to a timeout issue.\n
\n
\n Please contact the Support Center at (800) 242 3837, option 2, to complete your application for a Dues\n Installment Plan. We look forward to serving you during the hours of 8:30 am – 6:00 pm EST.\n
\n
\n Best regards,\n
\n The Membership Team\n
\n membersupport@aia.org\n
\n ),\n onCancel: (): void => {\n return;\n },\n cancelActionName: 'Close',\n };\n\n const updateOrder = async (data: unknown, e: unknown): Promise => {\n const request = createPayload(data as OrderData, membershipInfo, defaultSubscriptionPlanId);\n\n try {\n const submitAction = (e as { submitAction: string }).submitAction;\n setPaymentMethod(submitAction);\n setIsLoading(true);\n\n await sendPayload(submitAction, membershipInfo, request);\n\n sessionStorage.clear();\n setBackdropOptions?.({\n isOpen: true,\n child: ,\n action: redirectToCheckoutPage(submitAction, request.OrderId, membershipInfo.contact?.id),\n });\n } catch (error) {\n setHasError(true);\n\n const triedPayingWithInstallments = membershipInfo.related?.subscriptionPlans?.find(\n (plan) => plan.Id === request.OrderApi__Subscription_Plan__c,\n )?.OrderApi__Number_Of_Installments__c;\n\n if (triedPayingWithInstallments) {\n setModalOptions(payInInstallmentsFailureModalContent);\n } else if (error === SESSION_INVALID_ERROR) {\n setModalOptions({ ...INVALID_SESSION_MODAL_CONTENT, isOpen: true });\n } else {\n setModalOptions?.({ ...DEFAULT_MODAL_CONTENT, isOpen: true });\n }\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n \n \n \n );\n};\n\nexport default Order;\n","import { SubscriptionPlan } from '../data_types/member-order';\n\nexport const getDefaultSubscription = (\n subscriptionPlans: SubscriptionPlan[] | undefined,\n): SubscriptionPlan | undefined => {\n return subscriptionPlans?.find((sub: SubscriptionPlan) => sub.OrderApi__Number_Of_Installments__c === null);\n};\n","import { CustomFormOptions, FormOptions } from '../data_types/form-options';\n\ninterface RenewDefaultValues {\n subscriptionPlanId: string;\n supplementalDuesMemberType: string;\n memberName: string;\n memberId: string;\n memberArchitectCount: number;\n nonMemberArchitectCount: string;\n associateCount: string;\n technicalStaffCount: string;\n otherStaffCount: string;\n additionalPackages: string[];\n confirmLicense: boolean;\n confirmTerms: boolean;\n confirmInstallments: boolean;\n}\n\nexport const generateRenewFormOptions = (options: CustomFormOptions): FormOptions => {\n const defaultFormOptions = {\n resolver: options.resolver,\n defaultValues: {\n ...{\n subscriptionPlanId: '',\n supplementalDuesMemberType: '',\n memberName: '',\n memberId: '',\n memberArchitectCount: 1,\n nonMemberArchitectCount: '',\n associateCount: '',\n technicalStaffCount: '',\n otherStaffCount: '',\n additionalPackages: [],\n confirmLicense: false,\n confirmTerms: false,\n confirmInstallments: false,\n autoRenew: false,\n },\n ...options.defaultValues,\n },\n shouldFocusError: false,\n };\n return defaultFormOptions as FormOptions;\n};\n","import React, { Dispatch, SetStateAction, useContext } from 'react';\n\nconst WithBackdropContext = (\n type: 'modal' | 'backdrop',\n context: React.Context<{\n options: T;\n setOptions: Dispatch>;\n }>,\n Component: React.ComponentType

,\n): React.FC

=> {\n const ComponentWithBackdropContext = (props: P): JSX.Element => {\n const { options, setOptions } = useContext(context);\n\n return type === 'backdrop' ? (\n \n ) : (\n \n );\n };\n\n return ComponentWithBackdropContext;\n};\n\nexport default WithBackdropContext;\n","import React from 'react';\nimport Disclosures from '../components/Common/Disclosures/Disclosures';\nimport Help from '../components/Common/Help/Help';\nimport InfoTile from '../components/Common/InfoTile/InfoTile';\nimport TaxesTile from '../components/Common/TaxesTile/TaxesTile';\nimport VerticalSplit from '../components/Common/VerticalSplit/VerticalSplit';\nimport MembershipMemberInfo from '../components/Membership/MemberInfo/MemberInfo';\nimport MembershipSidebar from '../components/Membership/Sidebar/Sidebar';\nimport Order from '../components/Order/Order';\nimport { MemberOrderResponse } from '../data_types/member-order';\nimport WithBackdropContext from '../hocs/WithBackdropContext/WithBackdropContext';\nimport { BackdropContext } from '../contexts/BackdropContext';\nimport { ModalContext } from '../contexts/ModalContext';\n\ninterface ScreensRenewProps {\n membershipInfo?: MemberOrderResponse;\n}\n\nconst OrderWithContext = WithBackdropContext(\n 'backdrop',\n BackdropContext,\n WithBackdropContext('modal', ModalContext, Order),\n);\n\nconst ScreensRenew = (props: ScreensRenewProps): JSX.Element | null => {\n if (!props.membershipInfo) {\n return null;\n }\n\n return (\n }\n right={\n \n \n \n \n \n \n \n \n \n \n \n \n }\n />\n );\n};\n\nexport default ScreensRenew;\n","import React from 'react';\nimport { CircularProgress as MuiCircularProgress, withStyles } from '@material-ui/core';\nimport ScreensError from '../../screens/Error';\n\ninterface WithLoadingProps {\n loading?: boolean;\n error?: boolean;\n}\n\nconst CircularProgress = withStyles(() => ({\n root: {},\n}))(MuiCircularProgress);\n\n// eslint-disable-next-line react/display-name\nconst WithLoading =

(Component: React.ComponentType

): React.FC

=> ({\n loading,\n error,\n ...props\n}: WithLoadingProps): JSX.Element => {\n return loading ? (\n \n ) : error ? (\n \n ) : (\n \n );\n};\n\nexport default WithLoading;\n","import { useEffect, useState } from 'react';\n\nexport const useExternalScript = (url: string): string => {\n const [state, setState] = useState(url ? 'loading' : 'idle');\n\n useEffect(() => {\n if (!url) {\n setState('idle');\n return;\n }\n let script = document.querySelector(`script[src=\"${url}\"]`) as HTMLScriptElement;\n\n const handleScript = (e: { type: string }): void => {\n setState(e.type === 'load' ? 'ready' : 'error');\n };\n\n if (!script) {\n script = document.createElement('script');\n script.type = 'application/javascript';\n script.src = url;\n script.async = true;\n document.body.appendChild(script);\n script.addEventListener('load', handleScript);\n script.addEventListener('error', handleScript);\n }\n\n script.addEventListener('load', handleScript);\n script.addEventListener('error', handleScript);\n\n return (): void => {\n script.removeEventListener('load', handleScript);\n script.removeEventListener('error', handleScript);\n };\n }, [url]);\n\n return state;\n};\n","import { CustomFormOptions, FormOptions } from '../data_types/form-options';\n\nexport interface ContactFormDefaultValues {\n [key: string]: string | boolean | undefined;\n selfDescribe: string;\n country: string;\n careerType: string;\n zipCode: string;\n gradDate: string;\n licenseDate: string;\n membershipStatus?: string;\n}\n\nexport const generateContactFormOptions = (options: CustomFormOptions): FormOptions => {\n const defaultFormOptions = {\n resolver: options.resolver,\n defaultValues: {\n ...{\n selfDescribe: '',\n country: '',\n careerType: '',\n zipCode: '',\n gradDate: '',\n licenseDate: '',\n membershipStatus: 'Non-Member',\n },\n ...options.defaultValues,\n },\n shouldFocusError: false,\n };\n return defaultFormOptions as FormOptions;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Joi from 'joi';\nimport { joiResolver } from '@hookform/resolvers/joi';\nimport {\n MEMBERSHIP_COUNTRY_UNITED_STATES,\n SELF_DESCRIBE_ARCHITECT_DEGREE,\n SELF_DESCRIBE_FACULTY_MEMBER,\n SELF_DESCRIBE_NEW_GRADUATE,\n SELF_DESCRIBE_NON_US_ARCHITECT,\n SELF_DESCRIBE_US_ARCHITECT,\n SELF_DESCRIBE_ALLIED,\n} from './constants';\nimport { Resolver } from 'react-hook-form';\n\nconst requiredMessage = 'This information is required.';\nconst noFutureDateMessage = 'Future dates are not valid.';\nconst joiSchemaMessages = {\n 'string.base': requiredMessage,\n 'string.empty': requiredMessage,\n 'any.invalid': requiredMessage,\n 'date.base': requiredMessage,\n 'date.max': noFutureDateMessage,\n};\n\nconst countryConditions = Joi.alternatives().conditional('selfDescribe', {\n is: SELF_DESCRIBE_ALLIED,\n then: Joi.string().allow('').empty(['']).default(MEMBERSHIP_COUNTRY_UNITED_STATES),\n otherwise: Joi.string().required(),\n});\n\nconst usZipCodeValidation = {\n is: MEMBERSHIP_COUNTRY_UNITED_STATES,\n then: Joi.string()\n .pattern(/^[0-9]{5}(?:-[0-9]{4})?$/)\n .required()\n .messages({\n 'string.pattern.base': 'It should be a valid US postal code.',\n }),\n otherwise: Joi.string(),\n};\n\nconst zipCodeConditions = Joi.alternatives()\n .conditional('country', usZipCodeValidation)\n .when('selfDescribe', { is: SELF_DESCRIBE_ALLIED, then: Joi.forbidden() });\n\nconst addressZipCodeConditions = Joi.alternatives().conditional('addressCountry', usZipCodeValidation);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nconst selfDescribeCondition = (options: string[], isDateField?: boolean) => {\n return Joi.alternatives().conditional('selfDescribe', {\n is: Joi.string().valid(...options),\n then: isDateField ? Joi.date().max('now').required() : Joi.string().required(),\n otherwise: isDateField ? Joi.date().max('now').allow('') : Joi.string().allow(''),\n });\n};\n\nexport const generateContactFormSchema = (addressRequired = true): Resolver, object> => {\n return joiResolver(\n Joi.object({\n selfDescribe: Joi.string().required(),\n country: countryConditions,\n zipCode: zipCodeConditions,\n careerType: selfDescribeCondition([\n SELF_DESCRIBE_US_ARCHITECT,\n SELF_DESCRIBE_NON_US_ARCHITECT,\n SELF_DESCRIBE_FACULTY_MEMBER,\n ]),\n gradDate: selfDescribeCondition([SELF_DESCRIBE_NEW_GRADUATE, SELF_DESCRIBE_ARCHITECT_DEGREE], true),\n licenseDate: selfDescribeCondition([SELF_DESCRIBE_US_ARCHITECT, SELF_DESCRIBE_NON_US_ARCHITECT], true),\n membershipStatus: Joi.string(),\n addressStreet: addressRequired ? Joi.string().required() : Joi.string(),\n addressStreetLine2: Joi.string().allow(''),\n addressCity: addressRequired ? Joi.string().required() : Joi.string(),\n addressState: addressRequired ? Joi.string().required() : Joi.string(),\n addressCountry: addressRequired ? Joi.string().required() : Joi.string(),\n addressZipCode: addressRequired ? addressZipCodeConditions : Joi.string(),\n }).prefs({\n messages: joiSchemaMessages,\n }),\n );\n};\n","import { API, Auth } from 'aws-amplify';\nimport { UpdateContactRequest } from '../data_types/update-contact-request';\n\nconst updateContact = async (contactId: string, request: UpdateContactRequest): Promise => {\n const user = await Auth.currentAuthenticatedUser();\n const currentSession = await Auth.currentSession();\n const token = currentSession.getAccessToken().getJwtToken();\n\n return API.post('membership', `/contact/${contactId}`, {\n body: {\n ...request,\n },\n headers: {\n Authorization: token,\n },\n });\n};\n\nexport default updateContact;\n","import { makeStyles } from '@material-ui/core';\n\nexport const MembershipTypeRadioGroupStyle = makeStyles({\n root: {\n padding: '16px 0 0 16px',\n },\n});\n","import { makeStyles } from '@material-ui/core';\n\nexport const SubDescriptionStyle = makeStyles({\n root: {\n paddingLeft: '20px',\n },\n});\n","import { Typography } from '@material-ui/core';\nimport React from 'react';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport Radio from '../../../../Common/Radio/Radio';\nimport { SubDescriptionStyle } from './Radio.style';\n\ninterface ContactFormSelfDescribeRadioProps {\n formMethods?: UseFormMethods;\n label: string;\n value: string;\n membershipStatus?: string;\n caption: string | (string | JSX.Element)[];\n}\n\nconst ContactFormSelfDescribeRadio = (props: ContactFormSelfDescribeRadioProps): JSX.Element => {\n const subDescriptionClasses = SubDescriptionStyle();\n\n const selfDescribe = useWatch({\n control: props.formMethods?.control,\n name: 'selfDescribe',\n defaultValue: props.formMethods?.getValues('selfDescribe'),\n });\n\n return (\n

\n \n {props.value === selfDescribe && (\n
\n {props.caption}\n
\n )}\n
\n );\n};\n\nexport default ContactFormSelfDescribeRadio;\n","/* eslint-disable react/jsx-key */\nimport React from 'react';\nimport WithController from '../../../../hocs/WithController/WithController';\nimport WithErrorHelper from '../../../../hocs/WithErrorHelper/WithErrorHelper';\nimport WithFormContext from '../../../../hocs/WithFormContext/WithFormContext';\nimport RadioGroup from '../../../Common/RadioGroup/RadioGroup';\nimport { MembershipTypeRadioGroupStyle } from './MembershipType.style';\nimport {\n CONTACT_STATUS,\n JOIN_SELF_DESCRIBE_OPTIONS,\n MEMBERSHIP_TYPE_MAPPING,\n SELF_DESCRIBE_NEW_GRADUATE,\n} from '../../../../utils/constants';\nimport ContactFormSelfDescribeRadio from '../SelfDescribe/Radio/Radio';\n\nconst RadioGroupWithError = WithFormContext(WithErrorHelper(WithController(RadioGroup)));\n\ninterface ContactFormMembershipType {\n hideNewGrad?: boolean;\n membershipStatus?: string;\n}\n\nconst ContactFormMembershipType = (props: ContactFormMembershipType): JSX.Element => {\n const classes = MembershipTypeRadioGroupStyle();\n const options = props.hideNewGrad\n ? JOIN_SELF_DESCRIBE_OPTIONS.filter((option) => option.value !== SELF_DESCRIBE_NEW_GRADUATE)\n : JOIN_SELF_DESCRIBE_OPTIONS;\n\n return (\n \n {options.map((option, index) => {\n const caption = [\n 'You will be ',\n props.membershipStatus === CONTACT_STATUS.TERMINATED ? 'restarting your membership' : 'joining',\n ' as an ',\n {MEMBERSHIP_TYPE_MAPPING[option.value]},\n ' member.',\n ];\n return (\n \n );\n })}\n \n );\n};\n\nexport default ContactFormMembershipType;\n","import { makeStyles } from '@material-ui/core';\n\nexport const BorderedBoxStyle = makeStyles({\n root: {\n padding: '16px',\n },\n});\n\nexport const CaptionStyle = makeStyles({\n root: {\n padding: '10px 4px 10px 4px',\n },\n});\n\nexport const ContainerStyle = makeStyles(({ breakpoints }) => ({\n root: {\n paddingTop: '16px',\n paddingBottom: '16px',\n '&> div': {\n margin: 0,\n '& fieldset': {\n width: '100%',\n },\n '& .MuiTextField-root': {\n width: '100%',\n },\n [breakpoints.down('xs')]: {\n width: '100%',\n '&> .MuiGrid-item': {\n width: '100%',\n padding: '4px 0',\n },\n },\n },\n },\n}));\n\nexport const ErrorHelperStyle = makeStyles({\n root: {\n '& .Mui-error': {\n paddingLeft: '16px',\n },\n },\n});\n","import { FunctionComponent } from 'react';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport WithFormContext from '../../../hocs/WithFormContext/WithFormContext';\n\ninterface ConditionalFormPropertyRendererProps {\n formPropertyName: string;\n showValues: unknown[];\n formMethods?: UseFormMethods;\n}\n\nconst ConditionalFormPropertyRenderer: FunctionComponent = (\n props,\n): JSX.Element | null => {\n const property = useWatch({\n control: props.formMethods?.control,\n name: props.formPropertyName,\n defaultValue: props.formMethods?.getValues(props.formPropertyName),\n });\n\n const show = props.showValues.includes(property);\n\n return show ? (props.children as JSX.Element) : null;\n};\n\nexport default WithFormContext(ConditionalFormPropertyRenderer);\n","import { makeStyles } from '@material-ui/core';\n\nexport const InputStyles = makeStyles({\n root: {\n width: '100%',\n },\n});\n","import React, { useRef } from 'react';\nimport { UseFormMethods } from 'react-hook-form';\nimport { TextField, StandardTextFieldProps } from '@material-ui/core';\nimport { InputStyles } from './DateInput.styles';\n\ninterface InputProps extends StandardTextFieldProps {\n formMethods?: UseFormMethods;\n label: string;\n}\n\nconst DateInput = (props: InputProps): JSX.Element => {\n const dateInputClasses = InputStyles();\n const textInput = useRef(null);\n\n const { formMethods, ...otherProps } = props;\n return (\n \n );\n};\n\nexport default DateInput;\n","const countries = {\n ChinaShanghai: {\n value: 'China (Shanghai)',\n text: 'Select this option if you live or work in Shanghai.',\n },\n ChinaOthers: {\n value: 'China (Others)',\n text:\n 'Select this option if you live or work in China, excluding Shanghai. If you live or work in Hong Kong, please make that selection.',\n },\n HongKong: {\n value: 'Hong Kong',\n text:\n 'Select this option if you live or work in China, excluding Shanghai (select Shanghai option) and the Greater Bay Area of Hong Kong, including Hong Kong SAR, Macao SAR, Guangzhou, Shenzhen, Zhuhai, Foshan, Huizhou, Dongguan, Zhongshan, Jiangmen, or Zhaoqing, (select Hong Kong option).',\n },\n};\n\nexport default countries;\n","import React from 'react';\nimport { Grid, Typography } from '@material-ui/core';\nimport { useWatch } from 'react-hook-form';\nimport countries from 'utils/help-country-list';\n\nconst CountryHelp = (): JSX.Element | null => {\n const selectedCountry = (useWatch({\n name: 'country',\n }) as unknown) as string;\n let helpText = '';\n Object.entries(countries).forEach(([, val]) => {\n if (val.value === selectedCountry) {\n helpText = val.text;\n }\n });\n\n return helpText ? (\n \n \n {helpText}\n \n \n ) : null;\n};\n\nexport default CountryHelp;\n","import { Grid, MenuItem, Typography } from '@material-ui/core';\nimport React, { BaseSyntheticEvent } from 'react';\nimport { GlobalValue } from '../../../data_types/global-value';\nimport BorderedBox from '../../Common/BorderedBox/BorderedBox';\nimport ContactFormMembershipType from './MembershipType/MembershipType';\nimport ArrowedButton from '../../Common/ArrowedButton/ArrowedButton';\nimport WithInsideLoading from '../../../hocs/WithInsideLoading/WithInsideLoading';\nimport { BorderedBoxStyle, ErrorHelperStyle, ContainerStyle, CaptionStyle } from './Form.style';\nimport ConditionalFormPropertyRenderer from '../../Common/ConditionalFormPropertyRenderer/ConditionalFormPropertyRenderer';\nimport {\n MEMBERSHIP_COUNTRY_UNITED_STATES,\n SELF_DESCRIBE_ARCHITECT_DEGREE,\n SELF_DESCRIBE_AXP_ENROLLED,\n SELF_DESCRIBE_FACULTY_MEMBER,\n SELF_DESCRIBE_NEW_GRADUATE,\n SELF_DESCRIBE_NON_US_ARCHITECT,\n SELF_DESCRIBE_US_ARCHITECT,\n CONTACT_STATUS,\n SELF_DESCRIBE_SUPERVISION,\n} from '../../../utils/constants';\nimport WithFormContext from '../../../hocs/WithFormContext/WithFormContext';\nimport WithErrorHelper from '../../../hocs/WithErrorHelper/WithErrorHelper';\nimport Input from '../../Common/Input/Input';\nimport DateInput from '../../Common/DateInput/DateInput';\nimport Select from '../../Common/Select/Select';\nimport WithController from '../../../hocs/WithController/WithController';\nimport { UseFormMethods, useWatch } from 'react-hook-form';\nimport RadioGroup from '../../Common/RadioGroup/RadioGroup';\nimport Radio from '../../Common/Radio/Radio';\nimport CountryHelp from './CountryHelp';\n\nexport interface ContactFormComponentProps {\n countries: GlobalValue[];\n careerTypes: GlobalValue[];\n isLoading: boolean;\n hasError: boolean;\n membershipStatus: string;\n onSubmit?: (e?: BaseSyntheticEvent | undefined) => Promise;\n isDuesEstimator?: boolean;\n}\n\nconst ContactFormNextButton = WithInsideLoading(ArrowedButton);\nconst InputWithError = WithFormContext(WithErrorHelper(Input));\nconst DateWithError = WithFormContext(WithErrorHelper(DateInput));\nconst SelectWithError = WithFormContext(WithErrorHelper(WithController(Select)));\nconst RadioGroupWithError = WithFormContext(WithErrorHelper(WithController(RadioGroup)));\n\nconst NON_ALLIED = [\n SELF_DESCRIBE_US_ARCHITECT,\n SELF_DESCRIBE_NON_US_ARCHITECT,\n SELF_DESCRIBE_NEW_GRADUATE,\n SELF_DESCRIBE_AXP_ENROLLED,\n SELF_DESCRIBE_ARCHITECT_DEGREE,\n SELF_DESCRIBE_SUPERVISION,\n SELF_DESCRIBE_FACULTY_MEMBER,\n];\n\nconst SelectWithErrorEntity = (props: {\n entities: GlobalValue[];\n name: string;\n label: string;\n describedBy?: string;\n}): JSX.Element => {\n const { name, label, entities } = props;\n return (\n \n {entities.map((entity) => (\n \n {entity.value}\n \n ))}\n \n );\n};\n\nconst CountryField = (props: { countries: GlobalValue[] }): JSX.Element => (\n \n \n \n \n \n \n);\n\nconst ZipCodeField = (): JSX.Element => (\n \n \n \n \n \n \n \n);\n\ninterface GradDateFieldProps {\n formMethods?: UseFormMethods;\n}\n\nconst GradDateField = (props: GradDateFieldProps): JSX.Element => {\n const selfDescribe = useWatch({\n control: props.formMethods?.control,\n name: 'selfDescribe',\n defaultValue: props.formMethods?.getValues('selfDescribe'),\n });\n const required = selfDescribe !== SELF_DESCRIBE_AXP_ENROLLED;\n\n return (\n \n \n \n \n \n );\n};\n\ninterface AddressCustomFieldProps {\n name: string;\n label: string;\n required: boolean;\n [key: string]: string | Date | boolean | number | undefined;\n}\n\nconst AddressCustomField = (props: AddressCustomFieldProps): JSX.Element => {\n const { name, label, required, ...otherProps } = props;\n\n return (\n \n \n \n );\n};\n\nconst GradDateFieldWithFormContext = WithFormContext(GradDateField);\n\nconst LicenseDateField = (): JSX.Element => (\n \n \n \n \n \n);\n\nconst CareerTypeField = (props: { careerTypes: GlobalValue[] }): JSX.Element => (\n \n \n \n \n \n);\n\nconst ContactFormComponent = (props: ContactFormComponentProps): JSX.Element | null => {\n const borderedBoxClasses = BorderedBoxStyle();\n const errorHelperClasses = ErrorHelperStyle();\n const containerClasses = ContainerStyle();\n const captionClasses = CaptionStyle();\n\n const handleOnClick = (e: React.FormEvent): void => {\n props.onSubmit?.(e);\n };\n\n const hideNewGrad = props.membershipStatus === CONTACT_STATUS.TERMINATED;\n\n return (\n <>\n \n *\n \n Asterisks indicate required fields.\n
\n \n {props.isDuesEstimator && (\n \n I am a \n new}\n value=\"Non-Member\"\n style={{ marginLeft: '0px', marginRight: '8px' }}\n />\n or \n former}\n value=\"Terminated\"\n style={{ marginLeft: '0px', marginRight: '8px' }}\n />\n member.\n \n )}\n\n \n Choose the option that best describes you.{' '}\n \n *\n \n \n \n \n\n \n \n \n \n Chapter assignment is based on home or work address. Please provide the country and\n postal code for either your home or work address to establish your chapter assignment.\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {props.isDuesEstimator ? null : (\n \n \n \n Please share an address where we can send your new member kit.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n \n \n \n
\n \n );\n};\n\nexport default ContactFormComponent;\n","import React, { Dispatch, SetStateAction, useContext, useEffect, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { MembershipContext } from '../../../contexts/MembershipContext';\nimport { GlobalValue } from '../../../data_types/global-value';\nimport { Contact, MemberOrderResponse } from '../../../data_types/member-order';\nimport { UpdateContactRequest } from '../../../data_types/update-contact-request';\nimport { useExternalScript } from '../../../hooks/use-external-script';\nimport {\n CONTACT_STATUS,\n DEFAULT_MODAL_CONTENT,\n INVALID_SESSION_MODAL_CONTENT,\n LOCAL_STORAGE_DUES_ESTIMATOR_VALUES_KEY,\n MEMBERSHIP_TYPE_MAPPING,\n SELF_DESCRIBE_NEW_GRADUATE,\n SESSION_INVALID_ERROR,\n} from '../../../utils/constants';\nimport { ContactFormDefaultValues, generateContactFormOptions } from '../../../utils/generate-contact-form-options';\nimport { generateContactFormSchema } from '../../../utils/generate-contact-form-schema';\nimport getMembershipInfo from '../../../utils/get-membership-info';\nimport updateContact from '../../../utils/update-contact';\nimport { DuesEstimatorData } from '../../DuesEstimator/DuesEstimator';\nimport ContactFormComponent from './FormComponent';\nimport { ModalAttributes } from 'data_types/modal';\n\nexport interface ContactFormProps {\n contact: Contact;\n countries: GlobalValue[];\n careerTypes: GlobalValue[];\n setMembershipInfo?: Dispatch>;\n setModalOptions?: Dispatch>;\n onSubmit?: () => void;\n}\n\ninterface ContactFormData {\n [key: string]: string | Date | boolean | undefined;\n selfDescribe: string;\n country: string;\n careerType?: string;\n zipCode?: string;\n gradDate?: Date;\n licenseDate?: Date;\n addressStreet: string;\n addressStreetLine2?: string;\n addressCity: string;\n addressState: string;\n addressCountry: string;\n addressZipCode: string;\n}\n\ninterface Address {\n street: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n}\n\nconst isDirty = (data: ContactFormData, defaultValues: ContactFormDefaultValues): boolean => {\n const hasDirtyValues: boolean = [\n 'country',\n 'careerType',\n 'zipCode',\n 'gradDate',\n 'licenseDate',\n 'addressStreet',\n 'addressCity',\n 'addressState',\n 'addressZipCode',\n 'addressCountry',\n ]\n .map((key) => data[key] !== undefined && data[key] !== defaultValues[key])\n .some((value) => value === true);\n\n return data.selfDescribe !== defaultValues.selfDescribe || hasDirtyValues;\n};\n\nconst updateContactBody = (\n data: ContactFormData,\n contact: Contact,\n orderDoesntExists: boolean,\n): UpdateContactRequest => {\n return {\n AIA_Membership_Country_Picklist__c: data.country,\n AIA_Career_Type__c: data.careerType || contact.careerType,\n AIA_Membership_Zip_Code_Assignment__c: data.zipCode || null,\n AIA_Join_SelfDescribe__c: data.selfDescribe,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n AIA_Membership_Type__c: MEMBERSHIP_TYPE_MAPPING[data.selfDescribe]!,\n AIA_Join_Grad_Date__c: data.gradDate ? data.gradDate.toISOString().slice(0, 10) : contact.joinGradDate,\n AIA_Join_License_Date__c: data.licenseDate\n ? data.licenseDate.toISOString().slice(0, 10)\n : contact.joinLicenseDate,\n AIA_Mailing_Address_Street__c: data.addressStreetLine2\n ? data.addressStreet + ' ' + data.addressStreetLine2\n : data.addressStreet,\n AIA_Mailing_Address_City__c: data.addressCity,\n AIA_Mailing_Address_State__c: data.addressState,\n AIA_Mailing_Address_Zip__c: data.addressZipCode,\n AIA_Mailing_Address_Country__c: data.addressCountry,\n bundle__c: orderDoesntExists.toString(),\n };\n};\n\nconst getDefaultValues = (contact: Contact): ContactFormDefaultValues => {\n const duesEstimatorDefaultValues: DuesEstimatorData =\n !contact.joinSelfDescribe && JSON.parse(localStorage.getItem(LOCAL_STORAGE_DUES_ESTIMATOR_VALUES_KEY) || '{}');\n\n const selfDescribe = contact.joinSelfDescribe || duesEstimatorDefaultValues.selfDescribe || '';\n const defaultSelfDescribe =\n contact.membershipStatus === CONTACT_STATUS.TERMINATED && selfDescribe === SELF_DESCRIBE_NEW_GRADUATE\n ? ''\n : selfDescribe;\n\n return {\n selfDescribe: defaultSelfDescribe,\n country: '',\n careerType:\n contact.careerType && contact.careerType !== 'None Selected'\n ? contact.careerType\n : duesEstimatorDefaultValues.careerType || '',\n zipCode: '',\n gradDate: contact.joinGradDate || duesEstimatorDefaultValues.gradDate?.slice(0, 10) || '',\n licenseDate: contact.joinLicenseDate || duesEstimatorDefaultValues.licenseDate?.slice(0, 10) || '',\n };\n};\n\nconst extractAddress = (address: google.maps.GeocoderAddressComponent[]): Address => {\n let street = '';\n let city = '';\n let state = '';\n let country = '';\n let zipCode = '';\n\n for (const component of address as google.maps.GeocoderAddressComponent[]) {\n const componentType = component.types[0];\n\n switch (componentType) {\n case 'street_number': {\n street = `${component.long_name} ${street}`;\n break;\n }\n\n case 'route': {\n street += component.short_name;\n break;\n }\n\n case 'postal_code': {\n zipCode = `${component.long_name}${zipCode}`;\n break;\n }\n\n case 'postal_code_suffix': {\n zipCode = `${zipCode}-${component.long_name}`;\n break;\n }\n\n case 'locality':\n city = component.long_name;\n break;\n\n case 'administrative_area_level_1': {\n state = component.short_name;\n break;\n }\n\n case 'country':\n country = component.long_name;\n break;\n }\n }\n return { street, city, state, country, zipCode };\n};\n\nconst ContactForm = (props: ContactFormProps): JSX.Element | null => {\n const [isLoading, setIsLoading] = useState(false);\n const [hasError, setHasError] = useState(false);\n const { membershipInfo, setMembershipInfo } = useContext(MembershipContext);\n const externalScript = `https://maps.googleapis.com/maps/api/js?key=${process.env.REACT_APP_GOOGLE_MAPS_KEY}&libraries=places`;\n const state = useExternalScript(externalScript);\n\n let autocomplete: google.maps.places.Autocomplete | null = null;\n let address2Field: HTMLInputElement;\n\n const defaultValues = getDefaultValues(props.contact);\n\n const schema = generateContactFormSchema();\n const formOptions = generateContactFormOptions({\n resolver: schema,\n defaultValues,\n });\n\n const formMethods = useForm(formOptions);\n\n const handlePlaceSelect = (): void => {\n const addressObject = (autocomplete as google.maps.places.Autocomplete).getPlace();\n const address = addressObject.address_components;\n if (address) {\n const selectedAddress = extractAddress(address);\n formMethods.setValue('addressStreet', selectedAddress.street);\n formMethods.setValue('addressCity', selectedAddress.city);\n formMethods.setValue('addressState', selectedAddress.state);\n formMethods.setValue('addressZipCode', selectedAddress.zipCode);\n formMethods.setValue('addressCountry', selectedAddress.country);\n }\n address2Field.focus();\n };\n\n useEffect(() => {\n if (state === 'ready') {\n address2Field = document.getElementById('addressStreetLine2') as HTMLInputElement;\n const autocompleteInput = document.getElementById('autocomplete') as HTMLInputElement;\n autocomplete = new google.maps.places.Autocomplete(autocompleteInput, {});\n autocomplete.addListener('place_changed', handlePlaceSelect);\n }\n }, [state]);\n\n const onSubmitHandler = async (data: ContactFormData): Promise => {\n try {\n setIsLoading(true);\n if (isDirty(data, defaultValues) || !membershipInfo?.order?.order) {\n await updateContact(\n props.contact.id,\n updateContactBody(data, props.contact, !membershipInfo?.order?.order),\n );\n const newMembershipInfo = await getMembershipInfo();\n setMembershipInfo(newMembershipInfo);\n }\n props.onSubmit?.();\n } catch (error) {\n setHasError(true);\n if (error === SESSION_INVALID_ERROR) {\n props.setModalOptions?.({ ...INVALID_SESSION_MODAL_CONTENT, isOpen: true });\n } else {\n props.setModalOptions?.({ ...DEFAULT_MODAL_CONTENT, isOpen: true });\n }\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n \n \n \n );\n};\n\nexport default ContactForm;\n","import { makeStyles } from '@material-ui/core';\nimport theme from '../utils/theme';\n\nexport const StepperStyle = makeStyles({\n root: {\n paddingTop: '15px',\n },\n});\n\nexport const StepperLabelStyle = makeStyles({\n labelContainer: { marginLeft: '25px' },\n label: {\n color: theme.palette.primary.main + '!important',\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n});\n\nexport const StepperContentStyle = makeStyles({\n transition: { marginLeft: '25px' },\n});\n\nexport const StepperIconStyle = makeStyles((theme) => ({\n root: {\n backgroundColor: '#ccc',\n zIndex: 1,\n color: '#fff',\n width: 25,\n height: 25,\n display: 'flex',\n borderRadius: '50%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n active: {\n backgroundColor: theme.palette.primary.main,\n },\n completed: {\n backgroundColor: theme.palette.primary.main,\n },\n}));\n","import { makeStyles } from '@material-ui/core';\n\nexport const DisclaimerStyle = makeStyles({\n root: {\n padding: '25px 0',\n },\n});\n","import { Link, Typography } from '@material-ui/core';\nimport React from 'react';\nimport { DisclaimerStyle } from './NonPayableZipCodeDisclaimer.style';\n\nconst NonPayableZipCodeDisclaimer = (): JSX.Element => {\n const disclaimerClasses = DisclaimerStyle();\n\n return (\n \n The zip code you have entered may provide you with alternative chapter membership options.{' '}\n \n Learn more\n \n \n );\n};\n\nexport default NonPayableZipCodeDisclaimer;\n","const EXCLUDED_ZIPCODES = [\n '66012',\n '66018',\n '66021',\n '66030',\n '66031',\n '66051',\n '66061',\n '66062',\n '66063',\n '66083',\n '66085',\n '66101',\n '66102',\n '66103',\n '66104',\n '66105',\n '66106',\n '66109',\n '66110',\n '66111',\n '66112',\n '66113',\n '66115',\n '66117',\n '66118',\n '66119',\n '66160',\n '66201',\n '66202',\n '66203',\n '66204',\n '66205',\n '66206',\n '66207',\n '66208',\n '66209',\n '66210',\n '66211',\n '66212',\n '66213',\n '66214',\n '66215',\n '66216',\n '66217',\n '66218',\n '66219',\n '66220',\n '66221',\n '66222',\n '66223',\n '66224',\n '66225',\n '66226',\n '66227',\n '66250',\n '66251',\n '66276',\n '66282',\n '66283',\n '66285',\n '66286',\n];\n\nconst isZipCodePayable = (zipCode: string | null | undefined): boolean => {\n return !EXCLUDED_ZIPCODES.includes(zipCode || '');\n};\n\nexport default isZipCodePayable;\n","import { Stepper, Step, StepLabel, StepContent, StepButton } from '@material-ui/core';\nimport { AttachMoney, Check, Person } from '@material-ui/icons';\nimport React from 'react';\nimport VerticalSplit from '../components/Common/VerticalSplit/VerticalSplit';\nimport ContactForm from '../components/Contact/Form/Form';\nimport MembershipSidebar from '../components/Membership/Sidebar/Sidebar';\nimport Order from '../components/Order/Order';\nimport { GlobalValue } from '../data_types/global-value';\nimport { MemberOrderResponse } from '../data_types/member-order';\nimport clsx from 'clsx';\nimport { StepIconProps } from '@material-ui/core';\nimport { StepperIconStyle, StepperStyle, StepperLabelStyle, StepperContentStyle } from './Join.style';\nimport InfoTile from '../components/Common/InfoTile/InfoTile';\nimport Help from '../components/Common/Help/Help';\nimport Disclosures from '../components/Common/Disclosures/Disclosures';\nimport TaxesTile from '../components/Common/TaxesTile/TaxesTile';\nimport WithBackdropContext from '../hocs/WithBackdropContext/WithBackdropContext';\nimport { BackdropContext } from '../contexts/BackdropContext';\nimport { ModalContext } from '../contexts/ModalContext';\nimport { CONTACT_STATUS } from '../utils/constants';\nimport NonPayableZipCodeDisclaimer from '../components/NonPayableZipCodeDisclaimer/NonPayableZipCodeDisclaimer';\nimport isZipCodePayable from '../utils/is-zip-code-payable';\n\ninterface ScreensJoinProps {\n membershipInfo?: MemberOrderResponse;\n countries?: GlobalValue[];\n careerTypes?: GlobalValue[];\n}\n\ninterface LeftSideProps {\n membershipInfo: MemberOrderResponse;\n countries: GlobalValue[];\n careerTypes: GlobalValue[];\n}\n\ninterface StepsProps extends LeftSideProps {\n activeStep: number;\n handleStep: (step: number) => void;\n}\ninterface RightSideProps {\n membershipInfo: MemberOrderResponse;\n}\n\nconst ContactFormWithModal = WithBackdropContext('modal', ModalContext, ContactForm);\nconst OrderWithContext = WithBackdropContext(\n 'backdrop',\n BackdropContext,\n WithBackdropContext('modal', ModalContext, Order),\n);\n\nconst JoinStepperIcon = (props: StepIconProps): JSX.Element => {\n const { active, completed, icon } = props;\n const classes = StepperIconStyle();\n\n const stepperIcons: { [key: string]: JSX.Element } = {\n 1: ,\n 2: ,\n };\n\n const completedIcon = ;\n\n return (\n \n {completed ? completedIcon : stepperIcons[String(icon)]}\n \n );\n};\n\nconst JoinStepLabel = (label: string): JSX.Element => {\n const labelClasses = StepperLabelStyle();\n\n return (\n \n {label}\n \n );\n};\n\nconst JoinStepContent = (content: JSX.Element): JSX.Element => {\n const contentClasses = StepperContentStyle();\n\n return {content};\n};\n\nconst Steps = (props: StepsProps): { label: string; content: JSX.Element }[] => {\n const showPaymentDisclaimer = !isZipCodePayable(props.membershipInfo.contact.membershipZipAssignment);\n\n return [\n {\n label: 'Primary information',\n content: (\n props.handleStep(props.activeStep + 1)}\n />\n ),\n },\n {\n label: 'Order summary',\n content: showPaymentDisclaimer ? (\n \n ) : (\n \n ),\n },\n ];\n};\n\nconst LeftSide = (props: LeftSideProps): JSX.Element | null => {\n const stepperClasses = StepperStyle();\n\n const [activeStep, setActiveStep] = React.useState(0);\n\n const handleStep = (stepIndex: number): void => {\n setActiveStep(stepIndex);\n };\n\n const steps = Steps({ ...props, activeStep, handleStep });\n\n return (\n \n {steps.map((step, index) => {\n return (\n \n handleStep(index)}>{JoinStepLabel(step.label)}\n {JoinStepContent(step.content)}\n \n );\n })}\n \n );\n};\n\nconst RightSide = (props: RightSideProps): JSX.Element | null => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nconst ScreensJoin = (props: ScreensJoinProps): JSX.Element | null => {\n if (!props.membershipInfo || !props.countries || !props.careerTypes) {\n return null;\n }\n\n const title =\n props.membershipInfo.contact.membershipStatus === CONTACT_STATUS.TERMINATED\n ? 'Restart your membership'\n : 'Welcome to AIA';\n\n return (\n \n }\n right={}\n />\n );\n};\n\nexport default ScreensJoin;\n","import React from 'react';\nimport { MemberOrderResponse } from '../../data_types/member-order';\nimport { Link, Typography } from '@material-ui/core';\n\ninterface ScreensActiveProps {\n membershipInfo?: MemberOrderResponse;\n}\n\nconst getExpireDate = (membershipInfo: MemberOrderResponse | undefined): number | undefined => {\n return membershipInfo &&\n membershipInfo.contact &&\n membershipInfo.contact?.membershipExpireDate &&\n membershipInfo.contact?.membershipExpireDate !== ''\n ? new Date(membershipInfo.contact.membershipExpireDate).getFullYear()\n : undefined;\n};\n\nconst ScreensActive = (props: ScreensActiveProps): JSX.Element => {\n const expireDate = getExpireDate(props.membershipInfo);\n\n return (\n \n

\n {expireDate\n ? `According to our records, your membership is active and is due to expire on 12/31/${expireDate}. No further action is required at this time.`\n : 'According to our records, your membership is active. No further action is required at this time.'}\n

\n

\n Should you like to verify this, please reach out to us by phone (800) 242 3837 (option 2) or email us at{' '}\n membersupport@aia.org\n

\n
\n );\n};\n\nexport default ScreensActive;\n","import { makeStyles } from '@material-ui/core';\n\nexport const CustomBackdropStyle = makeStyles((theme) => ({\n root: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff',\n },\n}));\n","import React, { useEffect, useState } from 'react';\nimport { Backdrop, CircularProgress } from '@material-ui/core';\nimport { CustomBackdropStyle } from './CustomBackdrop.style';\n\ninterface BackdropProps {\n backdropOptions?: { isOpen: boolean; child: JSX.Element; action?: Promise };\n}\n\nconst CustomBackdrop = (props: BackdropProps): JSX.Element | null => {\n const classes = CustomBackdropStyle();\n\n const [loading, setLoading] = useState(true);\n const backdropOptions = props.backdropOptions || { isOpen: false, child: };\n\n useEffect(() => {\n const executeAction = async (): Promise => {\n if (backdropOptions?.action) {\n await backdropOptions.action;\n setLoading(false);\n }\n };\n\n executeAction();\n });\n\n const isOpened = backdropOptions.isOpen && loading;\n return isOpened ? (\n \n {backdropOptions.child}\n \n ) : null;\n};\n\nexport default CustomBackdrop;\n","import { API } from 'aws-amplify';\n\nexport interface ContactStatus {\n email: string;\n status: string | null;\n legacyId: string;\n cesAudit: string | null;\n renewYear: number | null;\n renewEligibleYears: number[];\n epaymentStatus: string;\n deceased: boolean;\n}\n\nconst getContactStatuses = async (email: string): Promise => {\n const response = await API.get('membership', `/users?email=${email}`, {});\n\n return response.data;\n};\n\nexport default getContactStatuses;\n","import { makeStyles } from '@material-ui/core';\n\nexport const LandingStyle = makeStyles(() => ({\n form: {\n zIndex: 2,\n },\n box: {\n textAlign: 'center',\n '& fieldset.MuiFormControl-root, button': {\n width: '100%',\n padding: '16px 0',\n },\n },\n}));\n","import { makeStyles } from '@material-ui/core';\n\nexport const HeaderStyle = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.palette.secondary.dark,\n color: '#fff',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '40px',\n },\n}));\n\nexport const BoxStyle = (width?: string): Record => {\n return makeStyles({\n root: {\n width: width || '400px',\n },\n borderedBox: {\n borderTop: 'none',\n padding: '25px 60px',\n },\n })();\n};\n","import { Typography } from '@material-ui/core';\nimport React from 'react';\nimport BorderedBox from '../BorderedBox/BorderedBox';\nimport { BoxStyle, HeaderStyle } from './BoxWithTitle.style';\n\ninterface BoxWithTitleProps extends React.HTMLAttributes {\n title: string;\n width?: string;\n children: React.ReactNode[] | React.ReactNode;\n}\n\nconst BoxWithTitle = (props: BoxWithTitleProps): JSX.Element => {\n const headerClasses = HeaderStyle();\n const boxClasses = BoxStyle(props.width);\n\n return (\n
\n
\n {props.title}\n
\n {props.children}\n
\n );\n};\n\nexport default BoxWithTitle;\n","import { makeStyles } from '@material-ui/core';\n\nexport const GridStyle = makeStyles({\n root: {\n '& > div': {\n width: '100%',\n textAlign: 'center',\n '& .MuiFormControl-root, button': {\n width: '100%',\n },\n '& button': {\n marginBottom: '10px',\n },\n },\n },\n});\n","import { Grid } from '@material-ui/core';\nimport React from 'react';\nimport { GridStyle } from './SimpleForm.style';\n\ninterface SimpleFormProps extends React.HTMLAttributes {\n spacing?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n}\n\nconst SimpleForm = (props: SimpleFormProps): JSX.Element => {\n const gridClasses = GridStyle();\n const { spacing, ...otherProps } = props;\n\n return (\n \n {Array.isArray(props.children) ? (\n props.children.map((item, index) => (\n \n {item}\n \n ))\n ) : (\n {props.children}\n )}\n \n );\n};\n\nexport default SimpleForm;\n","import { makeStyles } from '@material-ui/core';\n\nexport const LandingBoxStyle = makeStyles(({ palette }) => ({\n root: {\n width: 'auto',\n '& .MuiPaper-root': {\n borderBottom: 'none',\n },\n '& button.action-button': {\n margin: '15px 0 5px 0',\n },\n zIndex: 2,\n },\n footer: {\n padding: '15px',\n textAlign: 'center',\n backgroundColor: palette.secondary.main,\n width: '400px',\n border: '1px solid rgba(0, 0, 0, 0.12)',\n borderTop: 'none',\n },\n}));\n","/* eslint-disable react/no-unescaped-entities */\nimport { Grid, Typography } from '@material-ui/core';\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport BoxWithTitle from '../Common/BoxWithTitle/BoxWithTitle';\nimport SimpleForm from '../Common/SimpleForm/SimpleForm';\nimport { LandingBoxStyle } from './LandingBox.style';\n\nconst LandingBox = (props: { title: string; children?: JSX.Element | JSX.Element[] }): JSX.Element => {\n const classes = LandingBoxStyle();\n\n return (\n \n \n \n \n {props.children}\n \n \n \n \n \n \n Don't have access to your account?\n \n \n \n \n );\n};\n\nexport default LandingBox;\n","import { Typography } from '@material-ui/core';\nimport { Auth } from 'aws-amplify';\nimport React from 'react';\nimport { ContactStatus } from '../../utils/get-contact-statuses';\nimport ArrowedButton from '../Common/ArrowedButton/ArrowedButton';\nimport PlainButton from '../Common/PlainButton/PlainButton';\nimport LandingBox from './LandingBox';\nimport { membershipCondition } from '../../utils/membership-condition';\n\nconst handleSignIn = (e: React.MouseEvent, callToAction?: string, email?: string): void => {\n e.preventDefault();\n Auth.federatedSignIn({\n customProvider: 'COGNITO',\n customState: email,\n });\n};\n\nexport const handleGoToAia = (): void => {\n window.location.href = 'https://aia.org';\n};\n\nconst getCallToActionName = (\n contactStatus: ContactStatus,\n): [(string | JSX.Element)[], string | undefined, string | undefined] => {\n const foundMessage = ['We found an AIA account for ', {contactStatus.email}, '.'];\n const notFoundMessage = [\n 'The account for ',\n {contactStatus.email},\n ' is already active. No action is required until the next membership renewal period.',\n ];\n const cesAuditFailedMessage = [\n 'We found an AIA account for ',\n {contactStatus.email},\n \". Your record is under audit for not meeting AIA's education requirements, and are not eligible to renew till this has been corrected. Please contact member services at (800) AIA 3837.\",\n ];\n const underCesAuditMessage = [\n 'You are currently under AIA CES audit for failure to meet your annual continuing education requirement. Your membership is not currently eligible for renewal. Please contact ',\n \n ces@aia.org\n ,\n ' for more details.',\n ];\n const deceasedMessage = ['This member is not eligible to renew because is marked as deceased.'];\n const epaymentInProgressOrPendingMessage = [\n 'Payment for your dues is already in progress. To avoid duplicate charges, please allow 3-4 days for the transaction to be completed.',\n ];\n const underAuditTitle = 'Under Audit';\n const epaymentInProgressOrPendingMessageTitle = 'Payment in Progress';\n const condition = membershipCondition(\n contactStatus.status || '',\n contactStatus.cesAudit,\n contactStatus.renewYear,\n contactStatus.renewEligibleYears,\n contactStatus.epaymentStatus,\n contactStatus.deceased,\n );\n\n switch (condition) {\n case 'renew':\n return [foundMessage, 'Renew your membership', undefined];\n case 'restart':\n return [foundMessage, 'Restart your membership', undefined];\n case 'join':\n return [foundMessage, 'Join AIA', undefined];\n case 'ces-audit':\n return [cesAuditFailedMessage, undefined, undefined];\n case 'under-audit':\n return [underCesAuditMessage, undefined, underAuditTitle];\n case 'deceased':\n return [deceasedMessage, undefined, undefined];\n case 'epayment-in-progress-or-pending':\n return [epaymentInProgressOrPendingMessage, undefined, epaymentInProgressOrPendingMessageTitle];\n default:\n return [notFoundMessage, undefined, undefined];\n }\n};\n\nconst LandingAccountFound = (props: { contactStatus: ContactStatus; onBack: () => void }): JSX.Element | null => {\n const [message, callToAction, titleName] = getCallToActionName(props.contactStatus);\n\n return (\n \n \n {message}\n \n\n handleSignIn(e, callToAction, props.contactStatus?.email)\n : handleGoToAia\n }\n />\n props.onBack()} />\n \n );\n};\n\nexport default LandingAccountFound;\n","import { generateState } from './generate-state';\n\nconst redirectToJoin = (): void => {\n const redirectUri = `${window.location.protocol}//${window.location.host}`;\n const clientId = process.env.REACT_APP_WEBCLIENT_ID;\n const scope = ['phone', 'email', 'profile', 'openid', process.env.REACT_APP_AUTH_MEMBERSHIP_SCOPE].join(' ');\n const state = generateState();\n\n window.location.assign(\n `https://${process.env.REACT_APP_AUTH_DOMAIN}/signup?redirect_uri=${redirectUri}&response_type=code&client_id=${clientId}&scope=${scope}&state=${state}`,\n );\n};\n\nexport default redirectToJoin;\n","export const generateState = (): string => {\n return Math.random().toString(16).substr(2, 8);\n};\n","/* eslint-disable react/no-unescaped-entities */\nimport { Typography } from '@material-ui/core';\nimport React from 'react';\nimport redirectToJoin from '../../utils/redirect-to-join';\nimport ArrowedButton from '../Common/ArrowedButton/ArrowedButton';\nimport PlainButton from '../Common/PlainButton/PlainButton';\nimport LandingBox from './LandingBox';\n\nconst handleJoin = (): void => {\n redirectToJoin();\n};\n\nconst LandingAccountNotFound = (props: { email: string; onBack: () => void }): JSX.Element => {\n return (\n \n <>\n \n Are you new here?\n
\n
\n If you are attempting to renew an existing membership or reactivate a former membership, go back and\n enter the email associated with your account.\n
\n
\n If you are joining AIA for the first time, create an account for {props.email}\n
\n
\n If you have any questions, please contact: 800 242 3837 Option 2\n
\n \n props.onBack()} />\n \n
\n );\n};\n\nexport default LandingAccountNotFound;\n","/* eslint-disable react/no-unescaped-entities */\nimport { Typography } from '@material-ui/core';\nimport React from 'react';\nimport WithErrorHelper from '../../hocs/WithErrorHelper/WithErrorHelper';\nimport WithFormContext from '../../hocs/WithFormContext/WithFormContext';\nimport WithInsideLoading from '../../hocs/WithInsideLoading/WithInsideLoading';\nimport { ContactStatus } from '../../utils/get-contact-statuses';\nimport ArrowedButton from '../Common/ArrowedButton/ArrowedButton';\nimport Input from '../Common/Input/Input';\nimport { LandingStyle } from './LandingHome.style';\nimport LandingAccountFound from './LandingAccountFound';\nimport LandingAccountNotFound from './LandingAccountNotFound';\nimport BoxWithTitle from '../Common/BoxWithTitle/BoxWithTitle';\n\nconst InputWithError = WithFormContext(WithErrorHelper(Input));\nconst ButtonWithLoading = WithInsideLoading(ArrowedButton);\n\nexport interface LandingHomeComponentProps {\n onSubmit: (e?: React.BaseSyntheticEvent | undefined) => Promise;\n onBack: () => void;\n status: null | 'Found' | 'Not-Found';\n email: string;\n contactStatus: null | ContactStatus;\n loading: boolean;\n}\n\nconst LandingHomeComponent = (props: LandingHomeComponentProps): JSX.Element => {\n const classes = LandingStyle();\n\n const handleFormSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n props.onSubmit(event);\n };\n\n return props.status === null ? (\n
\n \n Please enter your email to renew or create your AIA membership.\n \n \n \n
\n ) : props.status === 'Not-Found' ? (\n \n ) : (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n \n );\n};\n\nexport default LandingHomeComponent;\n","const getUserEmail = async (sfid: string): Promise<{ email: string }> => {\n const response = await fetch(`${process.env.REACT_APP_API_URL}/users/email/${sfid}`);\n return await response.json();\n};\n\nexport default getUserEmail;\n","import React, { useEffect, useState } from 'react';\nimport Joi from 'joi';\nimport { joiResolver } from '@hookform/resolvers/joi';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport getContactStatuses, { ContactStatus } from '../../utils/get-contact-statuses';\nimport LandingHomeComponent from './LandingHomeComponent';\nimport getUserEmail from '../../utils/get-preferred-email';\nimport useQuery from '../../hooks/use-query';\n\nconst requiredMessage = 'This information is required.';\nconst invalidEmailMessage = 'Email must be valid.';\n\nconst LandingHome = (): JSX.Element => {\n const [loading, setLoading] = useState(false);\n const [status, setStatus] = useState(null as null | 'Found' | 'Not-Found');\n const [contactStatus, setContactStatus] = useState(null as null | ContactStatus);\n const [email, setEmail] = useState('' as string);\n const [wasPreferredEmailFetched, setWasPreferredEmailFetched] = useState(false);\n\n const formMethods = useForm({\n resolver: joiResolver(\n Joi.object({\n email: Joi.string()\n .email({ tlds: { allow: false } })\n .required(),\n }).prefs({\n messages: {\n 'string.empty': requiredMessage,\n 'string.email': invalidEmailMessage,\n },\n }),\n ),\n });\n\n const query = useQuery();\n useEffect(() => {\n const sfid = query.get('ck');\n if (sfid && !wasPreferredEmailFetched) {\n getUserEmail(sfid).then(({ email }) => {\n formMethods.setValue('email', email);\n });\n setWasPreferredEmailFetched(true);\n }\n }, [query, formMethods, wasPreferredEmailFetched]);\n\n const getContactStatus = async (data: { email: string }): Promise => {\n try {\n setLoading(true);\n setEmail(data.email);\n\n const statuses = await getContactStatuses(data.email);\n if (!statuses.length) {\n setStatus('Not-Found');\n } else {\n setContactStatus(statuses[0]);\n setStatus('Found');\n }\n } catch (error) {\n formMethods.setError('email', {\n type: 'manual',\n message: 'Something went wrong. Please try again later.',\n });\n } finally {\n setLoading(false);\n }\n };\n\n const handleBack = (): void => {\n setStatus(null);\n };\n\n return (\n \n \n \n );\n};\n\nexport default LandingHome;\n","import { makeStyles } from '@material-ui/core';\n\nexport const HomeStyle = makeStyles(({ breakpoints }) => ({\n root: {\n margin: 'auto',\n [breakpoints.down('sm')]: {\n marginTop: '25px',\n },\n [breakpoints.up('sm')]: {\n marginTop: 'auto',\n },\n },\n}));\n","/* eslint-disable react/no-unescaped-entities */\nimport { Grid } from '@material-ui/core';\nimport React from 'react';\nimport LandingHome from '../components/LandingHome/LandingHome';\nimport { HomeStyle } from './Home.style';\n\nconst ScreensHome = (): JSX.Element | null => {\n const classes = HomeStyle();\n\n return (\n \n \n \n );\n};\n\nexport default ScreensHome;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Joi from 'joi';\nimport { joiResolver } from '@hookform/resolvers/joi';\nimport { Resolver } from 'react-hook-form';\n\nconst requiredMessage = 'This information is required.';\nconst joiSchemaMessages = {\n 'string.empty': requiredMessage,\n};\n\nexport const generateAccountRecoverySchema = (): Resolver, object> => {\n return joiResolver(\n Joi.object({\n action: Joi.string().valid().required(),\n }).prefs({\n messages: joiSchemaMessages,\n }),\n );\n};\n","import { makeStyles } from '@material-ui/core';\n\nexport const GridStyle = makeStyles({\n root: {\n '& .full-width': {\n width: '100%',\n '& p': {\n textAlign: 'center',\n },\n '& button': {\n width: '100%',\n },\n },\n },\n});\n","/* eslint-disable react/no-unescaped-entities */\nimport { FormHelperText, Grid } from '@material-ui/core';\nimport React, { FormEvent } from 'react';\nimport WithFormContext from '../../hocs/WithFormContext/WithFormContext';\nimport WithController from '../../hocs/WithController/WithController';\nimport ArrowedButton from '../Common/ArrowedButton/ArrowedButton';\nimport BoxWithTitle from '../Common/BoxWithTitle/BoxWithTitle';\nimport Radio from '../Common/Radio/Radio';\nimport RadioGroup from '../Common/RadioGroup/RadioGroup';\nimport { GridStyle } from './AccountRecovery.style';\ninterface AccountRecoveryComponentProps {\n errors: boolean;\n onSubmit: (event: FormEvent) => void;\n}\n\nconst RadioGroupWithController = WithFormContext(WithController(RadioGroup));\n\nconst AccountRecoveryComponent = (props: AccountRecoveryComponentProps): JSX.Element => {\n const classes = GridStyle();\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n {props.errors && (\n \n Please select an option\n \n )}\n \n \n \n
\n );\n};\n\nexport default AccountRecoveryComponent;\n","import React, { useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { generateAccountRecoverySchema } from '../../utils/generate-account-recovery-schema';\nimport AccountRecoveryComponent from './AccountRecoveryComponent';\nimport { useHistory } from 'react-router-dom';\n\nconst AccountRecovery = (): JSX.Element => {\n const formMethods = useForm({ resolver: generateAccountRecoverySchema(), defaultValues: { action: '' } });\n const history = useHistory();\n const [errors, setErrors] = useState(false);\n\n const onSubmitHandler = (data: { action: string }): void => {\n if (data.action === 'forgotPassword') {\n window.location.assign(`https://${process.env.REACT_APP_AUTH_DOMAIN}/forgot-password`);\n } else {\n history.push('/account-recovery-attempt');\n }\n };\n\n const onErrorHandler = (): void => {\n setErrors(true);\n };\n\n return (\n \n \n \n );\n};\n\nexport default AccountRecovery;\n","import React from 'react';\nimport AccountRecoveryContainer from '../components/AccountRecovery/AccountRecovery';\n\nconst AccountRecovery = (): JSX.Element => {\n return ;\n};\n\nexport default AccountRecovery;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Joi from 'joi';\nimport { joiResolver } from '@hookform/resolvers/joi';\nimport { Resolver } from 'react-hook-form';\n\nconst requiredMessage = 'This information is required.';\nconst validDateMessage = 'Date is not valid.';\nconst joiSchemaMessages = {\n 'string.empty': requiredMessage,\n 'date.base': validDateMessage,\n};\n\nconst stepCondition = (step: number, stepLimit: number, condition: Joi.AnySchema): Joi.AnySchema => {\n return step >= stepLimit ? condition : Joi.valid();\n};\n\nconst emailCondition = (step: number): Joi.AnySchema => {\n return stepCondition(\n step,\n 3,\n Joi.string()\n .email({ tlds: { allow: false } })\n .required(),\n );\n};\n\nconst confirmEmailCondition = (step: number): Joi.AnySchema => {\n return stepCondition(\n step,\n 3,\n Joi.any()\n .equal(Joi.ref('email'))\n .required()\n .label('Confirm email')\n .options({ messages: { 'any.only': '{{#label}} does not match' } }),\n );\n};\n\nexport const generateRecoveryAttemptFormSchema = (step: 1 | 2 | 3): Resolver, object> => {\n return joiResolver(\n Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n previousEmail: Joi.string()\n .email({ tlds: { allow: false } })\n .allow(''),\n memberNumber: Joi.string().empty('').default(null),\n birthdate: stepCondition(step, 2, Joi.date().required()),\n degreeGraduationYear: stepCondition(step, 2, Joi.number().empty('').default(null)),\n universityAttended: stepCondition(step, 2, Joi.string().allow('')),\n stateFirstLicense: stepCondition(step, 2, Joi.string().allow('')),\n previousChapter: stepCondition(step, 2, Joi.string().allow('')),\n email: emailCondition(step),\n confirmEmail: confirmEmailCondition(step),\n phoneNumber: stepCondition(step, 3, Joi.string().required()),\n }).prefs({\n messages: joiSchemaMessages,\n }),\n );\n};\n","/* eslint-disable react/no-unescaped-entities */\nimport React, { FormEvent } from 'react';\nimport WithErrorHelper from '../../../hocs/WithErrorHelper/WithErrorHelper';\nimport WithFormContext from '../../../hocs/WithFormContext/WithFormContext';\nimport Input from '../../Common/Input/Input';\nimport ArrowedButton from '../../Common/ArrowedButton/ArrowedButton';\nimport SimpleForm from '../../Common/SimpleForm/SimpleForm';\nimport { InputLabel } from '@material-ui/core';\n\ninterface AccountRecoveryAttemptBasicInformationProps {\n onSubmit: (event: FormEvent) => void;\n show: boolean;\n}\n\nconst InputWithError = WithFormContext(WithErrorHelper(Input));\n\nconst AccountRecoveryAttemptBasicInformation = (props: AccountRecoveryAttemptBasicInformationProps): JSX.Element => {\n return (\n \n \n Please enter the following information so we can identify your account.\n \n \n \n \n \n
\n \n
\n
\n );\n};\n\nexport default AccountRecoveryAttemptBasicInformation;\n","/* eslint-disable react/no-unescaped-entities */\nimport { InputLabel } from '@material-ui/core';\nimport React, { FormEvent } from 'react';\nimport WithErrorHelper from '../../../hocs/WithErrorHelper/WithErrorHelper';\nimport WithFormContext from '../../../hocs/WithFormContext/WithFormContext';\nimport WithInsideLoading from '../../../hocs/WithInsideLoading/WithInsideLoading';\nimport Input from '../../Common/Input/Input';\nimport ArrowedButton from '../../Common/ArrowedButton/ArrowedButton';\nimport DateInput from '../../Common/DateInput/DateInput';\nimport SimpleForm from '../../Common/SimpleForm/SimpleForm';\nimport PlainButton from '../../Common/PlainButton/PlainButton';\n\ninterface AccountRecoveryAttemptAdditionalInformationProps {\n onBack: (event: FormEvent) => void;\n onSubmit: (event: FormEvent) => void;\n show: boolean;\n}\n\nconst InputWithError = WithFormContext(WithErrorHelper(Input));\nconst DateWithError = WithFormContext(WithErrorHelper(DateInput));\nconst ButtonWithLoading = WithInsideLoading(ArrowedButton);\n\nconst AccountRecoveryAttemptAdditionalInformation = (\n props: AccountRecoveryAttemptAdditionalInformationProps,\n): JSX.Element => {\n return (\n \n \n Please enter as many fields as possible. This information will be used for verifying your request and\n its approval will depend on the correctness of your answers.\n \n \n \n \n \n \n\n
\n \n \n
\n
\n );\n};\n\nexport default AccountRecoveryAttemptAdditionalInformation;\n","/* eslint-disable react/no-unescaped-entities */\nimport { InputLabel, Link } from '@material-ui/core';\nimport React, { FormEvent } from 'react';\nimport WithErrorHelper from '../../../hocs/WithErrorHelper/WithErrorHelper';\nimport WithFormContext from '../../../hocs/WithFormContext/WithFormContext';\nimport WithInsideLoading from '../../../hocs/WithInsideLoading/WithInsideLoading';\nimport Alert from '../../Common/Alert/Alert';\nimport Input from '../../Common/Input/Input';\nimport ArrowedButton from '../../Common/ArrowedButton/ArrowedButton';\nimport SimpleForm from '../../Common/SimpleForm/SimpleForm';\nimport PlainButton from '../../Common/PlainButton/PlainButton';\n\ninterface AccountRecoveryAttemptAdditionalInformationProps {\n onBack: (event: FormEvent) => void;\n onSubmit: (event: FormEvent) => void;\n errorMessage: string;\n success: boolean;\n loading: boolean;\n show: boolean;\n}\n\nconst InputWithError = WithFormContext(WithErrorHelper(Input));\nconst ButtonWithLoading = WithInsideLoading(ArrowedButton);\n\nconst AccountRecoveryAttemptAdditionalInformation = (\n props: AccountRecoveryAttemptAdditionalInformationProps,\n): JSX.Element => {\n return props.success ? (\n \n \n Your account recovery request has been sent. We will review it and get in touch with you via phone or\n email.\n \n Go to AIA.org\n \n ) : (\n \n {props.errorMessage ? (\n \n ) : (\n \n Please enter the new email for your account and your phone number in case we need to get in touch\n with you.\n \n )}\n \n \n \n\n
\n \n \n
\n
\n );\n};\n\nexport default AccountRecoveryAttemptAdditionalInformation;\n","import { API } from 'aws-amplify';\nimport { AccountRecoveryAttempt } from '../data_types/account-recovery-attempt';\n\nconst createAccountRecoveryAttempt = async (request: AccountRecoveryAttempt): Promise => {\n return API.post('membership', '/account-recovery-attempt', {\n body: {\n ...request,\n },\n });\n};\n\nexport default createAccountRecoveryAttempt;\n","import { makeStyles } from '@material-ui/core';\n\nexport const StepperIconStyle = makeStyles((theme) => ({\n root: {\n backgroundColor: '#ccc',\n zIndex: 1,\n color: '#fff',\n width: 25,\n height: 25,\n display: 'flex',\n borderRadius: '50%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n active: {\n backgroundColor: theme.palette.primary.main,\n },\n completed: {\n backgroundColor: theme.palette.primary.main,\n },\n}));\n\nexport const StepperStyle = makeStyles({\n horizontal: {\n padding: 0,\n marginBottom: '24px',\n '& :nth-child(1)': {\n '& span': {\n alignItems: 'flex-start',\n },\n },\n '& :nth-child(2)': {\n '& .MuiStepConnector-root': {\n left: 'calc(-50% + -5px)',\n right: 'calc(50% + 20px)',\n },\n },\n '& :nth-child(3)': {\n '& .MuiStepConnector-root': {\n left: 'calc(-50% + 20px)',\n right: 'calc(50% - 5px)',\n },\n '& span': {\n alignItems: 'flex-end',\n },\n },\n },\n});\n","import React, { useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { generateRecoveryAttemptFormSchema } from '../../../utils/generate-recovery-attempt-form-schema';\nimport AccountRecoveryAttemptBasicInformation from './AttemptBasicInformation';\nimport AccountRecoveryAttemptAdditionalInformation from './AttemptAdditionalInformation';\nimport AccountRecoveryAttemptConfirmEmail from './AttemptConfirmEmail';\nimport { AccountRecoveryAttempt as AccountRecoveryAttemptType } from '../../../data_types/account-recovery-attempt';\nimport createAccountRecoveryAttempt from '../../../utils/create-account-recovery-attempt';\nimport { Step, StepIconProps, StepLabel, Stepper } from '@material-ui/core';\nimport { Check } from '@material-ui/icons';\nimport clsx from 'clsx';\nimport { StepperIconStyle, StepperStyle } from './Attempt.style';\n\nconst StepperIcon = (props: StepIconProps): JSX.Element => {\n const { active, completed, icon, style } = props;\n const classes = StepperIconStyle();\n\n const completedIcon = ;\n\n return (\n \n {completed ? completedIcon : icon}\n \n );\n};\n\nconst AccountRecoveryAttempt = (): JSX.Element => {\n const [errorMessage, setErrorMessage] = useState('');\n const [success, setSuccess] = useState(false);\n const [loading, setLoading] = useState(false);\n const [step, setStep] = useState(1 as 1 | 2 | 3);\n const formMethods = useForm({\n resolver: generateRecoveryAttemptFormSchema(step),\n });\n\n const onSubmitHandler = async (data: AccountRecoveryAttemptType): Promise => {\n try {\n setLoading(true);\n await createAccountRecoveryAttempt(data);\n setErrorMessage('');\n setSuccess(true);\n } catch (error) {\n const message =\n error?.response?.data?.message === 'Error:A contact with that email already exists'\n ? 'A user with that email already exists. Try to reset your password instead or use a different recovery email.'\n : 'Creating the recovery request failed. Please try again or call (800) AIA-3887.';\n\n setErrorMessage(message);\n } finally {\n setLoading(false);\n }\n };\n\n const stepperClass = StepperStyle();\n\n return (\n
\n \n {!success ? (\n \n {[1, 2, 3].map((stepNumber) => {\n return (\n stepNumber} key={`step-${stepNumber}`}>\n \n \n );\n })}\n \n ) : (\n \n )}\n {\n setStep(2);\n })}\n />\n {\n setStep(1);\n }}\n onSubmit={formMethods.handleSubmit((): void => {\n setStep(3);\n })}\n />\n {\n setStep(2);\n }}\n onSubmit={formMethods.handleSubmit(onSubmitHandler)}\n />\n \n
\n );\n};\n\nexport default AccountRecoveryAttempt;\n","import React from 'react';\nimport AccountRecoveryAttemptContainer from '../components/AccountRecovery/Attempt/Attempt';\nimport BoxWithTitle from '../components/Common/BoxWithTitle/BoxWithTitle';\n\nconst AccountRecoveryAttempt = (): JSX.Element => {\n return (\n \n \n \n );\n};\n\nexport default AccountRecoveryAttempt;\n","import { API } from 'aws-amplify';\nimport { DuesEstimatorData } from '../components/DuesEstimator/DuesEstimator';\nimport { Order } from '../data_types/member-order';\nimport { MEMBERSHIP_TYPE_MAPPING, SELF_DESCRIBE_SUPERVISION } from './constants';\n\nconst getDues = async (props: DuesEstimatorData): Promise => {\n if (props.selfDescribe === SELF_DESCRIBE_SUPERVISION) {\n props.alternativeLicensePath = true;\n }\n let filter = '';\n Object.entries(props).forEach(([key, value]: [string, string]) => {\n if (key === 'selfDescribe') {\n value = MEMBERSHIP_TYPE_MAPPING[value] as string;\n key = 'membershipType';\n }\n filter = `${key}=${value}&${filter}`;\n });\n filter = filter.substring(0, filter.length - 1);\n\n const response = await API.get('membership', `/dues?${filter}`, {});\n return response.data[0];\n};\n\nexport default getDues;\n","import React, { memo, useContext, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport getDues from '../../utils/get-dues';\nimport OrderDuesTable from '../Order/Dues/Table/Table';\nimport OrderTotalTable from '../Order/Total/Table/Table';\nimport { Order } from '../../data_types/member-order';\nimport { MembershipContext } from '../../contexts/MembershipContext';\nimport { Grid, Typography } from '@material-ui/core';\nimport {\n DEFAULT_MODAL_CONTENT,\n DUES_ESTIMATOR_DISCLAIMER,\n INVALID_SESSION_MODAL_CONTENT,\n LOCAL_STORAGE_DUES_ESTIMATOR_VALUES_KEY,\n SESSION_INVALID_ERROR,\n} from '../../utils/constants';\nimport ContactFormComponent, { ContactFormComponentProps } from '../Contact/Form/FormComponent';\nimport { generateContactFormSchema } from '../../utils/generate-contact-form-schema';\nimport { generateContactFormOptions } from '../../utils/generate-contact-form-options';\nimport ArrowedButton from '../Common/ArrowedButton/ArrowedButton';\nimport WithInsideLoading from '../../hocs/WithInsideLoading/WithInsideLoading';\nimport redirectToJoin from '../../utils/redirect-to-join';\nimport NonPayableZipCodeDisclaimer from '../NonPayableZipCodeDisclaimer/NonPayableZipCodeDisclaimer';\nimport isZipCodePayable from '../../utils/is-zip-code-payable';\nimport { OrderContext } from 'contexts/OrderContext';\n\ninterface DuesEstimatorProps {\n setModalOptions?: (opt: object) => void;\n}\nexport interface DuesEstimatorData {\n selfDescribe: string;\n country: string;\n zipCode?: string;\n careerType?: string;\n gradDate?: string;\n licenseDate?: string;\n alternativeLicensePath?: boolean;\n}\n\nconst contactFormPropsAreEqual = (prev: ContactFormComponentProps, next: ContactFormComponentProps): boolean => {\n return prev.hasError === next.hasError && prev.isLoading === next.isLoading;\n};\n\nconst MemoizedContactForm = memo(ContactFormComponent, contactFormPropsAreEqual);\n\nconst ArrowedButtonWithLoading = WithInsideLoading(ArrowedButton);\n\nconst DuesEstimator = (props: DuesEstimatorProps): JSX.Element | null => {\n const [loadingDues, setLoadingDues] = useState(false);\n const [hasError, setHasError] = useState(false);\n const { countries, careerTypes } = useContext(MembershipContext);\n const [dues, setDues] = useState(null as Order | null);\n const [showPaymentDisclaimer, setShowPaymentDisclaimer] = useState(false);\n const [contactData, setContactData] = useState(null as DuesEstimatorData | null);\n const [loadingJoin, setLoadingJoin] = useState(false);\n const [orderTotal, setTotal] = useState(null);\n\n const schema = generateContactFormSchema(false);\n const formOptions = generateContactFormOptions({\n resolver: schema,\n });\n\n const formMethods = useForm(formOptions);\n\n const onSubmitHandler = async (contactData: DuesEstimatorData): Promise => {\n try {\n if (!isZipCodePayable(contactData.zipCode)) {\n setShowPaymentDisclaimer(true);\n } else {\n setLoadingDues(true);\n setShowPaymentDisclaimer(false);\n setContactData(contactData);\n const dues = await getDues(contactData);\n setDues(dues);\n }\n setTimeout(() => {\n window.scrollTo({ top: 1000, behavior: 'smooth' });\n }, 0);\n } catch (error) {\n setHasError(true);\n if (error === SESSION_INVALID_ERROR) {\n props.setModalOptions?.({ ...INVALID_SESSION_MODAL_CONTENT, isOpen: true });\n } else {\n props.setModalOptions?.({ ...DEFAULT_MODAL_CONTENT, isOpen: true });\n }\n } finally {\n setLoadingDues(false);\n }\n };\n\n const handleJoin = (): void => {\n setLoadingJoin(true);\n\n const prefillData = JSON.stringify(contactData);\n localStorage.setItem(LOCAL_STORAGE_DUES_ESTIMATOR_VALUES_KEY, prefillData);\n\n redirectToJoin();\n };\n\n return (\n \n \n \n {dues && !loadingDues && (\n <>\n \n \n \n \n \n \n \n {DUES_ESTIMATOR_DISCLAIMER}\n \n \n \n \n \n \n \n )}\n {showPaymentDisclaimer && }\n \n \n );\n};\n\nexport default DuesEstimator;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect } from 'react';\nimport VerticalSplit from '../components/Common/VerticalSplit/VerticalSplit';\nimport DuesEstimator from '../components/DuesEstimator/DuesEstimator';\nimport { ModalContext } from '../contexts/ModalContext';\nimport WithBackdropContext from '../hocs/WithBackdropContext/WithBackdropContext';\nimport WithLoading from '../hocs/WithLoading/WithLoading';\nimport { useEntities } from '../hooks/use-entities';\n\nconst VerticalSplitWithLoading = WithLoading(VerticalSplit);\nconst DuesEstimatorWithModal = WithBackdropContext('modal', ModalContext, DuesEstimator);\n\nconst ScreensDuesEstimator = (): JSX.Element | null => {\n const { loading, error, fetchData, countries, careerTypes } = useEntities();\n\n useEffect(() => {\n if (!(countries && careerTypes)) {\n fetchData();\n }\n }, []);\n\n return (\n }\n right={<>}\n />\n );\n};\n\nexport default ScreensDuesEstimator;\n","import { AppBar, Grid } from '@material-ui/core';\nimport React from 'react';\nimport background from '../../../assets/images/landing.jpg';\nimport { BackgroundImageStyle } from './BackgroundImage.style';\n\nexport interface BackgroundImageProps {\n children: React.ReactNode;\n}\n\nconst BackgroundImage = (props: BackgroundImageProps): JSX.Element => {\n const classes = BackgroundImageStyle(background);\n\n return (\n
\n {props.children}\n \n \n \n Conjunctive PointsThe New City\n \n Eric Owen Moss, FAIA\n Winner, AIA Twenty-five Year Award 2020\n \n \n
\n );\n};\n\nexport default BackgroundImage;\n","import { makeStyles } from '@material-ui/core';\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport const BackgroundImageStyle = (background: string) =>\n makeStyles({\n root: {\n height: '100%',\n },\n backgroundImage: {\n backgroundImage: `url(${background})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center center',\n },\n caption: {\n background: 'linear-gradient(0deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.5) 50%, rgba(255,255,255,0) 100%)',\n position: 'fixed',\n bottom: 0,\n '& .MuiGrid-container': {\n marginLeft: '40px',\n marginBottom: '10px',\n margin: '20px 0px 10px 40px',\n },\n zIndex: 1,\n },\n })();\n","import React from 'react';\nimport {\n AppBar,\n Container as MuiContainer,\n List as MuiList,\n ListItem,\n Divider as MuiDivider,\n Link,\n withStyles,\n} from '@material-ui/core';\n\nconst List = withStyles((theme) => ({\n root: {\n 'min-height': '71px',\n [theme.breakpoints.up('sm')]: {\n display: 'flex',\n flexDirection: 'row',\n },\n '& .MuiListItem-root': {\n width: 'initial',\n },\n },\n}))(MuiList);\n\nconst Divider = withStyles((theme) => ({\n root: {\n [theme.breakpoints.up('sm')]: {\n height: '22px',\n 'margin-top': 'auto',\n 'margin-bottom': 'auto',\n width: '1px',\n },\n },\n}))(MuiDivider);\n\nconst Footer = (): JSX.Element | null => {\n const year = new Date().getFullYear();\n\n return (\n \n \n \n © {year} AIA\n \n (800) AIA-3837\n \n \n \n membersupport@aia.org\n \n \n \n \n \n Privacy\n \n \n \n \n \n );\n};\n\nexport default Footer;\n","import { makeStyles } from '@material-ui/core';\n\nexport const HeaderAppBarStyle = makeStyles(({ breakpoints }) => ({\n root: {\n height: '74px',\n '& img': {\n height: '70px',\n },\n [breakpoints.down('xs')]: {\n height: '54px',\n '& img': {\n height: '50px',\n },\n },\n },\n}));\n\nexport const HeaderContainerStyle = makeStyles(({ breakpoints }) => ({\n root: {\n padding: '0 65px',\n [breakpoints.down('xs')]: {\n padding: '0 24px',\n },\n },\n}));\n","import React, { useEffect, useState } from 'react';\nimport { AppBar, Container, Grid, Link, makeStyles } from '@material-ui/core';\nimport logo from '../../../assets/images/logo.svg';\nimport { HeaderAppBarStyle, HeaderContainerStyle } from './Header.style';\nimport { Auth } from 'aws-amplify';\n\nconst whiteLink = makeStyles({\n root: {\n color: '#fff',\n cursor: 'pointer',\n },\n});\n\nconst Header = (): JSX.Element => {\n const appBarClass = HeaderAppBarStyle();\n const containerClass = HeaderContainerStyle();\n const whiteLinkClass = whiteLink();\n\n const [user, setUser] = useState(undefined as undefined | null);\n const handleHeader = (): void => {\n if (user) {\n window.location.assign(process.env.REACT_APP_MY_ACCOUNT_URL as string);\n } else {\n Auth.federatedSignIn();\n }\n };\n\n useEffect(() => {\n Auth.currentAuthenticatedUser()\n .then((userData) => {\n setUser(userData);\n })\n .catch(() => {\n setUser(null);\n });\n }, []);\n\n return (\n \n \n \n \n \n \"The\n \n \n {user !== undefined && (\n \n \n {user ? 'My account' : 'Sign In'}\n \n \n )}\n \n \n \n );\n};\n\nexport default Header;\n","import { useLocation } from 'react-router-dom';\n\nexport const useQueryParam: (name: string) => string | null = (name: string) => {\n const { search } = useLocation();\n const urlParams = new URLSearchParams(search);\n return urlParams.get(name);\n};\n","import { Auth } from 'aws-amplify';\nimport React, { useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport BackgroundImage from '../BackgroundImage/BackgroundImage';\nimport Footer from '../Footer/Footer';\nimport Header from '../Header/Header';\nimport { useQueryParam } from 'utils/use-query-param';\n\ninterface MainLayoutProps {\n children: JSX.Element | JSX.Element[];\n}\n\nconst MainLayout = (props: MainLayoutProps): JSX.Element => {\n const location = useLocation();\n const [landing, setLanding] = useState(false);\n\n const aiauParam = JSON.parse(useQueryParam('aiau') || 'false');\n const archiPACParam = JSON.parse(useQueryParam('archiPAC') || 'false');\n\n useEffect(() => {\n if (aiauParam) {\n sessionStorage.setItem('isAiauPrechecked', aiauParam);\n }\n if (archiPACParam) {\n sessionStorage.setItem('isArchiPACPrechecked', archiPACParam);\n }\n }, [aiauParam, archiPACParam]);\n\n useEffect(() => {\n Auth.currentAuthenticatedUser()\n .then(() => {\n setLanding(false);\n })\n .catch(() => {\n setLanding(location.pathname === '/');\n });\n }, [location]);\n\n return (\n <>\n {landing ? (\n \n
\n {props.children}\n \n ) : (\n
\n
\n {props.children}\n
\n
\n )}\n \n );\n};\n\nexport default MainLayout;\n","import React from 'react';\nimport { Typography } from '@material-ui/core';\n\nconst ScreensCesAudit = (): JSX.Element => {\n return (\n \n

\n Your record is under audit for not meeting AIA's education requirements, and are not eligible to\n renew till this has been corrected. Please contact member services at (800) AIA 3837.\n

\n
\n );\n};\n\nexport default ScreensCesAudit;\n","import React from 'react';\nimport { Typography } from '@material-ui/core';\n\nconst ScreensUnderAudit = (): JSX.Element => {\n return (\n \n

\n You are currently under AIA CES audit for failure to meet your annual continuing education requirement.\n Your membership is not currently eligible for renewal. Please contact \n \n ces@aia.org\n \n  for more details.\n

\n
\n );\n};\n\nexport default ScreensUnderAudit;\n","import React from 'react';\nimport { Typography } from '@material-ui/core';\nimport ArrowedButton from 'components/Common/ArrowedButton/ArrowedButton';\nimport PlainButton from 'components/Common/PlainButton/PlainButton';\nimport { Auth } from 'aws-amplify';\nimport LandingBox from 'components/LandingHome/LandingBox';\nimport { handleGoToAia } from 'components/LandingHome/LandingAccountFound';\n\nconst LandingEpaymentInProcess = (): JSX.Element => {\n const title = 'Payment in Progress';\n const message =\n 'Payment for your dues is already in progress. To avoid duplicate charges, please allow 3-4 days for the transaction to be completed.';\n return (\n \n \n {message}\n \n\n \n => await Auth.signOut()} />\n \n );\n};\n\nexport default LandingEpaymentInProcess;\n","import React, { Dispatch, SetStateAction, useState } from 'react';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport { Container } from '@material-ui/core';\nimport { ThemeProvider } from '@material-ui/core/styles';\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\nimport Amplify, { Auth } from 'aws-amplify';\nimport awsExports from './aws-exports';\nimport theme from './utils/theme';\nimport ScreensError from './screens/Error';\nimport { ModalContext } from './contexts/ModalContext';\nimport Modal from './components/Common/Modal/Modal';\nimport { DEFAULT_MODAL_CONTENT } from './utils/constants';\nimport { AppContainerStyle } from './App.style';\nimport { MembershipContext } from './contexts/MembershipContext';\nimport MembershipRoute from './components/Common/MembershipRoute/MembershipRoute';\nimport SSORoute from './components/Common/SSORoute/SSORoute';\nimport ScreensRenew from './screens/Renew';\nimport WithLoading from './hocs/WithLoading/WithLoading';\nimport ScreensJoin from './screens/Join';\nimport ScreensActive from './screens/Active/Active';\nimport { BackdropContext } from './contexts/BackdropContext';\nimport WithBackdropContext from './hocs/WithBackdropContext/WithBackdropContext';\nimport CustomBackdrop from './components/Common/CustomBackdrop/CustomBackdrop';\nimport ScreensHome from './screens/Home';\nimport AccountRecovery from './screens/AccountRecovery';\nimport AccountRecoveryAttempt from './screens/AccountRecoveryAttempt';\nimport DuesEstimator from './screens/DuesEstimator';\nimport MainLayout from './components/Common/MainLayout/MainLayout';\nimport ScreensCesAudit from './screens/CesAudit';\nimport ScreensUnderAudit from './screens/UnderAudit';\nimport { MemberOrderResponse } from 'data_types/member-order';\nimport { BackdropOptions } from 'data_types/backdrop-options';\nimport { GlobalValue } from 'data_types/global-value';\nimport LandingEpaymentInProcess from 'screens/LandingEpaymentInProcess';\n\nconst ScreensHomeWithLoading = WithLoading(ScreensHome);\nconst ScreensRenewWithLoading = WithLoading(ScreensRenew);\nconst ScreensJoinWithLoading = WithLoading(ScreensJoin);\nconst ScreensActiveWithLoading = WithLoading(ScreensActive);\nconst ScreensCesAuditWithLoading = WithLoading(ScreensCesAudit);\nconst ScreensUnderAuditWithLoading = WithLoading(ScreensUnderAudit);\n\nconst App = (): JSX.Element => {\n const [modalOptions, setModalOptions] = useState(DEFAULT_MODAL_CONTENT);\n const [backdropOptions, setBackdropOptions] = useState({ isOpen: false } as BackdropOptions);\n const [membershipInfo, setMembershipInfo] = useState((null as unknown) as MemberOrderResponse);\n const [countries, setCountries] = useState((null as unknown) as GlobalValue[]);\n const [careerTypes, setCareerTypes] = useState((null as unknown) as GlobalValue[]);\n const ModalWithContext = WithBackdropContext('modal', ModalContext, Modal);\n const BackdropWithContext = WithBackdropContext(\n 'backdrop',\n BackdropContext as React.Context<{\n options: BackdropOptions;\n setOptions: Dispatch>;\n }>,\n CustomBackdrop,\n );\n const containerClass = AppContainerStyle();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst awsConfig = {\n ...awsExports,\n Auth: {\n region: process.env.REACT_APP_AWS_REGION,\n userPoolId: process.env.REACT_APP_USER_POOL_ID,\n userPoolWebClientId: process.env.REACT_APP_WEBCLIENT_ID,\n mandatorySignIn: false,\n storage: sessionStorage,\n },\n};\n\nconst authConfig = {\n domain: process.env.REACT_APP_AUTH_DOMAIN,\n scope: ['phone', 'email', 'profile', 'openid', process.env.REACT_APP_AUTH_MEMBERSHIP_SCOPE],\n redirectSignIn: `${window.location.protocol}//${window.location.host}`,\n redirectSignOut: `${window.location.protocol}//${window.location.host}`,\n responseType: 'code',\n};\n\nAmplify.configure(awsConfig);\nAuth.configure({ oauth: authConfig });\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Amplify from 'aws-amplify';\nimport App from './App';\nimport awsExports from './aws-exports';\n\nAmplify.configure(awsExports);\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root'),\n);\n"],"sourceRoot":""}