{"version":3,"sources":["component/routes/enrollnow/msa/enrollnow-msa.guard.ts","component/routes/enrollnow/msa/enrollnow-msa.tsx","../../../../../src/internal/operators/takeWhile.ts","../../../../../src/internal/operators/finalize.ts","../../../../../src/internal/observable/timer.ts","../../../../../src/internal/util/isDate.ts","../../../../../src/internal/observable/interval.ts","component/routes/enrollnow/msa/enrollnow-msa.module.scss"],"names":["redirectionGuardMsa","programsToEnroll","arguments","length","undefined","condition","Promise","resolve","ProgramsUtility","isDeveloperProgram","AccountUtility","isMsaAccount","to","INTERNAL_ROUTES","ENROLLMENT","EnrollNowMsaRoute","props","accountType","setAccountType","useState","showNextPage","setShowNextPage","publisherName","setPublisherName","addressInfo","setAddressInfo","FormControlNames","addressLine1","addressLine2","city","country","postalCode","state","contactInfo","setContactInfo","primaryContactFirstName","primaryContactLastName","primaryContactEmail","intlPhone","supportWebsite","preferredEmailLanguage","taxId","companyApproverInfo","setCompanyApproverInfo","agreementLink","setAgreementLink","publisherNameValid","setPublisherNameValid","contactDetailsValid","setContactDetailsValid","companyApproverDetailsValid","setCompanyApproverDetailsValid","addressDetailsValidated","setAddressDetailsValidated","addressDetailsFormValid","setAddressDetailsFormValid","showLoader","setShowLoader","pageHasError","setPageHasError","errorMessage","setErrorMessage","unsubscribe","Subject","showSubmitLoader","setShowSubmitLoader","workflowInProgress","setWorkflowInProgress","showWorkflowAcceptedMessage","setShowWorkflowAcceptedMessage","avsSupportedCountries","setAvsSupportedCountries","sellerId","setSellerId","isPaymentSupported","setIsPaymentSupported","externalSystemReferenceId","StoreUtility","getState","getMessage","key","correlationId","sessionTransactionId","Pipe","ResourcePipe","TransformPipe","Navigation","navigate","ENROLLMENT_ERROR","replace","customCode","OVDF_MESSAGE_CODES","DEVELOPER_PROGRAM_ERROR_CODE","useEffect","SellerAccountService","getDeveloperProgramPreEnrollInfo","pipe","takeUntil","catchError","error","errorCode","of","finalize","subscribe","response","_response$agreements","account","_ServerData$loggedInU","_ServerData$loggedInU2","_ServerData$loggedInU3","id","sellerCountryIsoCode","identity","cultureName","pname","vettedAddress","vettedName","vettedEmail","vettedPhone","website","companyApproverName","companyApproverEmail","companyApproverPhone","countryCode","stateOrProvince","firstName","ServerData","loggedInUser","lastName","emailAddress","emailId","concat","areaCode","phoneNumber","agreements","downloadLink","AvsService","getSupportedCountries","then","next","complete","getWorkflowStatus","count","referenceId","interval","switchMap","UnifiedEnrollmentService","takeWhile","wf","workflowStatus","toLowerCase","WORKFLOW_STATUS_TYPE","Completed","window","location","href","EXTERNAL_ROUTES","DASHBOARD_HOME","InProgress","workflowSubStatus","WaitingForPayment","ENROLLMENT_PAYMENT","search","Failed","tap","isValidRequest","createRequestBody","telNumParts","split","companyApproverTelPart","primaryContact","email","companyApproverContact","IdentityType","Business","address","isNewAadAccount","applicationReferenceId","createUnifiedRequestBody","accountId","toString","companyName","primaryContactPhone","join","registrationId","additionalContacts","createCompanyApproverContactPayload","type","phone","_jsx","RedirectionGuard","guard","children","Loader","size","fullScreen","blockOperation","_jsxs","FlexPageWrapper","Header","title","_Fragment","className","RegistrationPrice","programName","FormControlPublisherName","value","onChange","_ref2","name","valid","classes","AvsComponent","supportedCountries","disabledFields","shouldValidate","onAddressValidated","onAddressChanged","selectedAddress","region","formValue","InnerHtml","DeveloperContactFormComponent","CompanyApproverFormComponent","TestAttribute","ProgramAgreementsComponent","FormControlCountry","data-testid","label","ALL_SUPPORTED_COUNTRY_CODES_FOR_DEVELOPER_PROGRAMS","_ref","prev","disabled","ReactStringReplacePipe","countryFaqLink","Anchor","COUNTRY_FAQ_LINK","target","AccountTypeSelection","disableCompany","isMsaCompanyBlocked","editable","onClick","onClickBack","onClickNext","isUnifiedFlowEnabled","requestBody","submitEnrollment","err","details","DeveloperEnrollmentService","enrollIntoDeveloperProgram","isMsaDunsSupported","ENROLLMENT_AAD","getPaymentInfo","paymentSupported","AuthType","MSA","AlertError","MessageBar","messageBarType","MessageBarType","success","isMultiline","withRouter","module","exports"],"mappings":"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","file":"en-us/dashboard/account/exp/staticres/static/js/8.fc50e338.chunk.js","sourcesContent":["/**\r\n * @description the guard methods for MSA Enroll view\r\n */\r\nimport { INTERNAL_ROUTES } from \"../../../../constants\";\r\nimport { IRedirectionGuardCondition } from \"../../../hoc\";\r\nimport { AccountUtility, ProgramsUtility } from \"../../../../utility\";\r\n\r\nexport function redirectionGuardMsa(\r\n  programsToEnroll: string[] = []\r\n): IRedirectionGuardCondition {\r\n  return {\r\n    condition: Promise.resolve(\r\n      !ProgramsUtility.isDeveloperProgram(programsToEnroll[0]) ||\r\n        !AccountUtility.isMsaAccount()\r\n    ),\r\n    to: INTERNAL_ROUTES.ENROLLMENT,\r\n  };\r\n}\r\n","/**\r\n * @description the enroll now route component for MSA\r\n */\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { withRouter } from \"react-router\";\r\nimport { interval, of, Subject } from \"rxjs\";\r\nimport {\r\n  catchError,\r\n  finalize,\r\n  switchMap,\r\n  takeUntil,\r\n  takeWhile,\r\n  tap,\r\n} from \"rxjs/operators\";\r\nimport {\r\n  AlertError,\r\n  Anchor,\r\n  FlexPageWrapper,\r\n  FormControlCountry,\r\n  FormControlNames,\r\n  FormControlPublisherName,\r\n  Header,\r\n  IFormControl,\r\n  IFormValue,\r\n  Loader,\r\n} from \"../../../reusables\";\r\nimport { InnerHtml, RedirectionGuard, TestAttribute } from \"../../../hoc\";\r\nimport { redirectionGuardMsa } from \"./enrollnow-msa.guard\";\r\nimport {\r\n  Pipe,\r\n  ReactStringReplacePipe,\r\n  ResourcePipe,\r\n  TransformPipe,\r\n} from \"../../../../pipes\";\r\nimport {\r\n  ApiError,\r\n  AuthType,\r\n  Dictionary,\r\n  IdentityType,\r\n} from \"../../../../models\";\r\nimport {\r\n  AccountTypeSelection,\r\n  AvsComponent,\r\n  CompanyApproverFormComponent,\r\n  DeveloperContactFormComponent,\r\n  ProgramAgreementsComponent,\r\n} from \"../../../shared\";\r\nimport { ProgramsUtility, ServerData, StoreUtility } from \"../../../../utility\";\r\nimport {\r\n  TEnrollmentState,\r\n} from \"../../../../store\";\r\nimport {\r\n  AvsService,\r\n  DeveloperEnrollmentService,\r\n  SellerAccountService,\r\n  UnifiedEnrollmentService,\r\n} from \"../../../../services\";\r\nimport {\r\n  ALL_SUPPORTED_COUNTRY_CODES_FOR_DEVELOPER_PROGRAMS,\r\n  EXTERNAL_ROUTES,\r\n  INTERNAL_ROUTES,\r\n  OVDF_MESSAGE_CODES,\r\n  WORKFLOW_STATUS_TYPE,\r\n} from \"../../../../constants\";\r\nimport { Navigation } from \"../../router\";\r\nimport { IOnAvsAddressSelectedPopup } from \"../../../overlays\";\r\n\r\nimport classes from \"./enrollnow-msa.module.scss\";\r\nimport { MessageBar, MessageBarType } from \"@fluentui/react\";\r\nimport { RegistrationPrice } from \"../../../shared\";\r\n\r\ntype IPropType = {\r\n  history: any;\r\n};\r\n\r\nexport const EnrollNowMsaRoute: React.FC<IPropType> = (props) => {\r\n  /**\r\n   * State config\r\n   */\r\n  const [accountType, setAccountType] = useState(\"\");\r\n  const [showNextPage, setShowNextPage] = useState(false);\r\n  const [publisherName, setPublisherName] = useState(\"\");\r\n  const [addressInfo, setAddressInfo] = useState({\r\n    [FormControlNames.addressLine1]: \"\",\r\n    [FormControlNames.addressLine2]: \"\",\r\n    [FormControlNames.city]: \"\",\r\n    [FormControlNames.country]: \"\",\r\n    [FormControlNames.postalCode]: \"\",\r\n    [FormControlNames.state]: \"\",\r\n  });\r\n  const [contactInfo, setContactInfo] = useState({\r\n    [FormControlNames.primaryContactFirstName]: \"\",\r\n    [FormControlNames.primaryContactLastName]: \"\",\r\n    [FormControlNames.primaryContactEmail]: \"\",\r\n    [FormControlNames.intlPhone]: \"\",\r\n    [FormControlNames.supportWebsite]: \"\",\r\n    [FormControlNames.preferredEmailLanguage]: \"\",\r\n    [FormControlNames.taxId]: \"\",\r\n  });\r\n  const [companyApproverInfo, setCompanyApproverInfo] = useState({\r\n    [FormControlNames.primaryContactFirstName]: \"\",\r\n    [FormControlNames.primaryContactLastName]: \"\",\r\n    [FormControlNames.primaryContactEmail]: \"\",\r\n    [FormControlNames.intlPhone]: \"\",\r\n  });\r\n\r\n  const [agreementLink, setAgreementLink] = useState(\"\");\r\n  const [publisherNameValid, setPublisherNameValid] = useState(false);\r\n  const [contactDetailsValid, setContactDetailsValid] = useState(false);\r\n  const [companyApproverDetailsValid, setCompanyApproverDetailsValid] =\r\n    useState(false);\r\n  const [addressDetailsValidated, setAddressDetailsValidated] = useState(false);\r\n  const [addressDetailsFormValid, setAddressDetailsFormValid] = useState(false);\r\n  const [showLoader, setShowLoader] = useState(true);\r\n  const [pageHasError, setPageHasError] = useState(false);\r\n  const [errorMessage, setErrorMessage] = useState(\"\");\r\n  const unsubscribe = new Subject<void>();\r\n  const [showSubmitLoader, setShowSubmitLoader] = useState(false);\r\n  const [workflowInProgress, setWorkflowInProgress] = useState(false);\r\n  const [showWorkflowAcceptedMessage, setShowWorkflowAcceptedMessage] =\r\n    useState(false);\r\n  const [avsSupportedCountries, setAvsSupportedCountries] = useState([\"\"]);\r\n  const [sellerId, setSellerId] = useState(0);\r\n  const [isPaymentSupported, setIsPaymentSupported] = useState(false);\r\n\r\n  /**\r\n   * Store utility\r\n   */\r\n  const { programsToEnroll, externalSystemReferenceId } = StoreUtility.getState(\r\n    \"enrollment\"\r\n  ) as TEnrollmentState;\r\n\r\n  /**\r\n   * Get Error key to display the message\r\n   */\r\n  const getMessage = (\r\n    key: string,\r\n    correlationId: string,\r\n    sessionTransactionId: string\r\n  ) => {\r\n    if (key === \"InvalidProgram\") {\r\n      return Pipe(\r\n        ResourcePipe,\r\n        TransformPipe\r\n      )(\"EnrollErrorView_InvalidProgram_Description\");\r\n    } else if (key === \"InvalidFormDetails\") {\r\n      return Pipe(ResourcePipe, TransformPipe)(\"Common_Error_InvalidData\");\r\n    } else if (key === \"EnrollmentNotAllowed\") {\r\n      return Pipe(ResourcePipe, TransformPipe)(\"Common_Error_NotAllowed\");\r\n    } else if (key === \"InvalidPublisherName\") {\r\n      return Pipe(\r\n        ResourcePipe,\r\n        TransformPipe\r\n      )(\"FormField_PublisherName_NotValid\");\r\n    } else if (key === \"AlreadyEnrolled\" || key === \"SessionValidationFailed\") {\r\n      Navigation.navigate(\r\n        props,\r\n        INTERNAL_ROUTES.ENROLLMENT_ERROR.replace(\":reason\", key).replace(\r\n          \":programName\",\r\n          programsToEnroll?.[0]\r\n        ),\r\n        {\r\n          correlationId: correlationId,\r\n          sessionTransactionId: sessionTransactionId,\r\n          customCode: OVDF_MESSAGE_CODES.DEVELOPER_PROGRAM_ERROR_CODE,\r\n        }\r\n      );\r\n    }\r\n    return Pipe(ResourcePipe, TransformPipe)(\"Common_GenericError\", {\r\n      correlationId: correlationId,\r\n    });\r\n  };\r\n\r\n  /**\r\n   * Preenroll API to get the MSA account details.\r\n   */\r\n  const getMSAAccountInfo = () => {\r\n    SellerAccountService.getDeveloperProgramPreEnrollInfo(\r\n      programsToEnroll?.[0],\r\n      undefined,\r\n      externalSystemReferenceId\r\n    )\r\n      .pipe(\r\n        takeUntil(unsubscribe),\r\n        catchError((error: ApiError) => {\r\n          setPageHasError(true);\r\n          setErrorMessage(getMessage(error.errorCode, error.correlationId, \"\"));\r\n          return of(null);\r\n        }),\r\n        finalize(() => setShowLoader(false))\r\n      )\r\n      .subscribe((response) => {\r\n        if (response?.account) {\r\n          setSellerId(response.account.id);\r\n          const { accountType, sellerCountryIsoCode, identity } =\r\n            response.account;\r\n          const {\r\n            cultureName,\r\n            publisherName: pname,\r\n            vettedAddress,\r\n            vettedName,\r\n            vettedEmail,\r\n            vettedPhone,\r\n            website,\r\n            companyApproverName,\r\n            companyApproverEmail,\r\n            companyApproverPhone,\r\n          } = identity || {};\r\n          setAccountType(accountType);\r\n          setPublisherName(pname || \"\");\r\n          setAddressInfo({\r\n            [FormControlNames.addressLine1]: vettedAddress?.addressLine1 || \"\",\r\n            [FormControlNames.addressLine2]: vettedAddress?.addressLine2 || \"\",\r\n            [FormControlNames.city]: vettedAddress?.city || \"\",\r\n            [FormControlNames.country]:\r\n              vettedAddress?.countryCode || sellerCountryIsoCode,\r\n            [FormControlNames.postalCode]: vettedAddress?.postalCode || \"\",\r\n            [FormControlNames.state]: vettedAddress?.stateOrProvince || \"\",\r\n          });\r\n          setContactInfo({\r\n            [FormControlNames.primaryContactFirstName]:\r\n              vettedName?.firstName || ServerData.loggedInUser?.firstName || \"\",\r\n            [FormControlNames.primaryContactLastName]:\r\n              vettedName?.lastName || ServerData.loggedInUser?.lastName || \"\",\r\n            [FormControlNames.primaryContactEmail]:\r\n              vettedEmail?.emailAddress ||\r\n              ServerData.loggedInUser?.emailId ||\r\n              \"\",\r\n            [FormControlNames.intlPhone]: `${vettedPhone?.countryCode || \"\"}:${\r\n              vettedPhone?.areaCode || \"\"\r\n            }:${vettedPhone?.phoneNumber || \"\"}`,\r\n            [FormControlNames.supportWebsite]: website || \"\",\r\n            [FormControlNames.preferredEmailLanguage]: cultureName || \"\",\r\n            [FormControlNames.taxId]: \"\",\r\n          });\r\n          setCompanyApproverInfo({\r\n            [FormControlNames.primaryContactFirstName]:\r\n              companyApproverName?.firstName,\r\n            [FormControlNames.primaryContactLastName]:\r\n              companyApproverName?.lastName,\r\n            [FormControlNames.primaryContactEmail]:\r\n              companyApproverEmail?.emailAddress,\r\n            [FormControlNames.intlPhone]: `${\r\n              companyApproverPhone?.countryCode || \"\"\r\n            }:${companyApproverPhone?.areaCode || \"\"}:${\r\n              companyApproverPhone?.phoneNumber || \"\"\r\n            }`,\r\n          });\r\n        }\r\n\r\n        if (response?.agreements?.length) {\r\n          setAgreementLink(response.agreements[0].downloadLink);\r\n        }\r\n      });\r\n  };\r\n\r\n  const populateAVSCountries = () => {\r\n    AvsService.getSupportedCountries().then((response) => {\r\n      setAvsSupportedCountries(response);\r\n    });\r\n  };\r\n\r\n  const getPaymentInfo = () => {\r\n    const paymentSupported = ProgramsUtility.isPaymentSupported(\r\n      programsToEnroll?.[0],\r\n      AuthType.MSA,\r\n      accountType\r\n    );\r\n\r\n    let country = addressInfo[FormControlNames.country];\r\n    if (paymentSupported && country) {\r\n      setIsPaymentSupported(paymentSupported);\r\n    }\r\n  };\r\n\r\n  /**\r\n   * UseEffect Hook for initial load\r\n   */\r\n  useEffect(() => {\r\n    getMSAAccountInfo();\r\n    populateAVSCountries();\r\n    return () => {\r\n      unsubscribe.next();\r\n      unsubscribe.complete();\r\n    };\r\n  }, []);\r\n\r\n  /**\r\n   * Method used to handle on country change.\r\n   * @param country country attribute from parameters dictionary object\r\n   */\r\n  const onCountryChange = ({ country }: Dictionary<IFormControl>) => {\r\n    setAddressInfo((prev) => ({\r\n      ...prev,\r\n      [FormControlNames.country]: country.value,\r\n    }));\r\n  };\r\n\r\n  /**\r\n   * On change of account type change.\r\n   * @param accountType\r\n   */\r\n  const onAccountTypeChange = (accountType: string) => {\r\n    setAccountType(accountType);\r\n  };\r\n\r\n  const onClickBack = () => {\r\n    setShowNextPage(false);\r\n    setErrorMessage(\"\");\r\n    setPageHasError(false);\r\n  };\r\n\r\n  /**\r\n   * On click of next botton. Goes to next page or enroll into developer program.\r\n   */\r\n  const onClickNext = () => {\r\n    if (!showNextPage) {\r\n      if (\r\n        accountType === IdentityType.Business &&\r\n        ProgramsUtility.isMsaDunsSupported(programsToEnroll[0])\r\n      ) {\r\n        Navigation.navigate(props, INTERNAL_ROUTES.ENROLLMENT_AAD, {\r\n          state: {\r\n            country: addressInfo[FormControlNames.country],\r\n          },\r\n        });\r\n      } else {\r\n        setShowNextPage(true);\r\n        getPaymentInfo();\r\n      }\r\n    } else {\r\n      if (isValidRequest()) {\r\n        setShowSubmitLoader(true);\r\n        if (ProgramsUtility.isUnifiedFlowEnabled(programsToEnroll[0])) {\r\n          const requestBody = createUnifiedRequestBody();\r\n          UnifiedEnrollmentService.submitEnrollment(\r\n            programsToEnroll[0],\r\n            requestBody as any,\r\n            avsSupportedCountries\r\n          )\r\n            .pipe(\r\n              catchError((err: ApiError) => {\r\n                setErrorMessage(\r\n                  getMessage(err.errorCode, err.correlationId, err.details[0])\r\n                );\r\n                setShowSubmitLoader(false);\r\n                return of(null);\r\n              })\r\n            )\r\n            .subscribe((response: any) => {\r\n              if (response?.referenceId) {\r\n                setWorkflowInProgress(true);\r\n                getWorkflowStatus(8, response?.referenceId);\r\n              }\r\n              return response;\r\n            });\r\n        } else {\r\n          const requestBody = createRequestBody();\r\n          DeveloperEnrollmentService.enrollIntoDeveloperProgram(\r\n            programsToEnroll[0],\r\n            requestBody\r\n          )\r\n            .pipe(\r\n              takeUntil(unsubscribe),\r\n              catchError((err: ApiError) => {\r\n                setErrorMessage(\r\n                  getMessage(err.errorCode, err.correlationId, err.details[0])\r\n                );\r\n                return of(null);\r\n              }),\r\n              finalize(() => {\r\n                setShowSubmitLoader(false);\r\n              })\r\n            )\r\n            .subscribe((response) => {\r\n              if (response) {\r\n                window.location.href = EXTERNAL_ROUTES.DASHBOARD_HOME;\r\n              }\r\n            });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  const getWorkflowStatus = (count: number, referenceId: string): void => {\r\n    const retryInterval = 30000; //30 second delay between retry attempts\r\n    interval(retryInterval)\r\n      .pipe(\r\n        switchMap(() =>\r\n          UnifiedEnrollmentService.getWorkflowStatus(referenceId)\r\n        ),\r\n        takeWhile((wf) => {\r\n          if (count === 0) {\r\n            setShowWorkflowAcceptedMessage(true); // Show wf accepted banner\r\n            setShowSubmitLoader(false); // Make loader disappear\r\n            return false;\r\n          } else if (\r\n            wf != null &&\r\n            wf.workflowStatus.toLowerCase() ===\r\n              WORKFLOW_STATUS_TYPE.Completed.toLowerCase()\r\n          ) {\r\n            setShowSubmitLoader(false);\r\n            window.location.href = EXTERNAL_ROUTES.DASHBOARD_HOME;\r\n            return false;\r\n          } else if (\r\n            wf != null &&\r\n            wf.workflowStatus.toLowerCase() ===\r\n              WORKFLOW_STATUS_TYPE.InProgress.toLowerCase() &&\r\n            wf.workflowSubStatus.toLowerCase() ===\r\n              WORKFLOW_STATUS_TYPE.WaitingForPayment.toLowerCase()\r\n          ) {\r\n            setShowSubmitLoader(false);\r\n            Navigation.navigate(props, INTERNAL_ROUTES.ENROLLMENT_PAYMENT, {\r\n              search: `programName=${programsToEnroll[0]}`,\r\n            });\r\n            return false;\r\n          } else if (\r\n            wf != null &&\r\n            wf.workflowStatus.toLowerCase() ===\r\n              WORKFLOW_STATUS_TYPE.Failed.toLowerCase()\r\n          ) {\r\n            setErrorMessage(\r\n              `${Pipe(ResourcePipe)(\"Something_Went_Wrong\")} \r\n                                ${Pipe(ResourcePipe)(\r\n                                  \"Please_Contact_Support\"\r\n                                )} (ReferenceId: ${referenceId})`\r\n            );\r\n            setWorkflowInProgress(false);\r\n            setShowSubmitLoader(false);\r\n            return false;\r\n          } else {\r\n            return true;\r\n          }\r\n        }),\r\n        tap(() => {\r\n          count -= 1;\r\n        })\r\n      )\r\n      .subscribe();\r\n  };\r\n\r\n  /**\r\n   * Validate the request before sending it.\r\n   * @returns\r\n   */\r\n  const isValidRequest = (): boolean => {\r\n    if (!!publisherName && !!accountType && !addressDetailsValidated) {\r\n      return false;\r\n    }\r\n    return true;\r\n  };\r\n\r\n  /**\r\n   * Create request body for enrollment.\r\n   * @returns\r\n   */\r\n  const createRequestBody = (): any => {\r\n    let telNumParts = contactInfo[FormControlNames.intlPhone].split(\":\");\r\n    let companyApproverTelPart =\r\n      companyApproverInfo[FormControlNames.intlPhone].split(\":\");\r\n    return {\r\n      accountType: accountType,\r\n      publisherName: publisherName,\r\n      primaryContact: {\r\n        firstName: contactInfo[FormControlNames.primaryContactFirstName],\r\n        lastName: contactInfo[FormControlNames.primaryContactLastName],\r\n        email: contactInfo[FormControlNames.primaryContactEmail],\r\n        phoneNumber: {\r\n          countryCode: telNumParts[0],\r\n          areaCode: telNumParts[1],\r\n          phoneNumber: telNumParts[2],\r\n        },\r\n      },\r\n      companyApproverContact:\r\n        accountType === IdentityType.Business\r\n          ? {\r\n              firstName:\r\n                companyApproverInfo[FormControlNames.primaryContactFirstName],\r\n              lastName:\r\n                companyApproverInfo[FormControlNames.primaryContactLastName],\r\n              email: companyApproverInfo[FormControlNames.primaryContactEmail],\r\n              phoneNumber: {\r\n                countryCode: companyApproverTelPart[0],\r\n                areaCode: companyApproverTelPart[1],\r\n                phoneNumber: companyApproverTelPart[2],\r\n              },\r\n            }\r\n          : null,\r\n      website: contactInfo[FormControlNames.supportWebsite],\r\n      preferredEmailLanguage:\r\n        contactInfo[FormControlNames.preferredEmailLanguage],\r\n      address: {\r\n        country: addressInfo[FormControlNames.country],\r\n        city: addressInfo[FormControlNames.city],\r\n        state: addressInfo[FormControlNames.state],\r\n        addressLine1: addressInfo[FormControlNames.addressLine1],\r\n        addressLine2: addressInfo[FormControlNames.addressLine2],\r\n        postalCode: addressInfo[FormControlNames.postalCode],\r\n      },\r\n      taxId: contactInfo[FormControlNames.taxId],\r\n      isNewAadAccount: false,\r\n      applicationReferenceId: externalSystemReferenceId,\r\n    };\r\n  };\r\n\r\n  /**\r\n   * Create request body for enrollment for unified flows\r\n   * @returns\r\n   */\r\n  const createUnifiedRequestBody = (): any => {\r\n    let telNumParts = contactInfo[FormControlNames.intlPhone].split(\":\");\r\n    return {\r\n      ...addressInfo,\r\n      ...contactInfo,\r\n      ...(sellerId > 0 ? { accountId: sellerId.toString() } : {}),\r\n      accountType:\r\n        accountType === IdentityType.Business ? \"organization\" : \"individual\",\r\n      companyName: publisherName,\r\n      publisherName,\r\n      website: contactInfo[FormControlNames.supportWebsite],\r\n      preferredEmailLanguage:\r\n        contactInfo[FormControlNames.preferredEmailLanguage],\r\n      primaryContactPhone: telNumParts.join(\" \"),\r\n      registrationId: contactInfo[FormControlNames.taxId],\r\n      additionalContacts:\r\n        accountType === IdentityType.Business\r\n          ? createCompanyApproverContactPayload()\r\n          : [],\r\n    };\r\n  };\r\n\r\n  const createCompanyApproverContactPayload = (): any => {\r\n    let companyApproverTelPart =\r\n      companyApproverInfo[FormControlNames.intlPhone].split(\":\");\r\n    return [\r\n      {\r\n        type: \"CompanyApprover\",\r\n        firstName:\r\n          companyApproverInfo[FormControlNames.primaryContactFirstName],\r\n        lastName: companyApproverInfo[FormControlNames.primaryContactLastName],\r\n        email: companyApproverInfo[FormControlNames.primaryContactEmail],\r\n        phone: companyApproverTelPart.join(\" \"),\r\n      },\r\n    ];\r\n  };\r\n\r\n  /**\r\n   * on change of publisher name.\r\n   * @param param0\r\n   */\r\n  const onPublisherNameChange = ({\r\n    publisherName: { value: name, valid },\r\n  }: Dictionary<IFormControl>) => {\r\n    setPublisherNameValid(valid);\r\n    setPublisherName(name);\r\n  };\r\n\r\n  /**\r\n   * on address validated.\r\n   * @param valid\r\n   */\r\n  const onAddressValidated = (valid: boolean) => {\r\n    setAddressDetailsValidated(valid);\r\n  };\r\n\r\n  /**\r\n   * On contact address change.\r\n   * @param formValue\r\n   */\r\n  const onAddressChanged = (formValue: IFormValue) => {\r\n    setAddressDetailsFormValid(formValue.valid);\r\n    setAddressInfo(formValue.value);\r\n  };\r\n\r\n  /**\r\n   * On AVS address change.\r\n   * @param selectedAddress\r\n   */\r\n  const onAvsAddressChanged = (selectedAddress: IOnAvsAddressSelectedPopup) => {\r\n    setAddressInfo({\r\n      [FormControlNames.addressLine1]: selectedAddress.address.addressLine1,\r\n      [FormControlNames.addressLine2]: selectedAddress.address.addressLine2,\r\n      [FormControlNames.city]: selectedAddress.address.city,\r\n      [FormControlNames.country]: selectedAddress.address.country,\r\n      [FormControlNames.postalCode]: selectedAddress.address.postalCode,\r\n      [FormControlNames.state]: selectedAddress.address.region,\r\n    });\r\n  };\r\n\r\n  const onContactDetailsChange = (formValue: IFormValue) => {\r\n    setContactDetailsValid(formValue.valid);\r\n    setContactInfo(formValue.value);\r\n  };\r\n\r\n  /**\r\n   * Method used to update the state for company info\r\n   * @param formValue\r\n   */\r\n  const onCompanyApproverChange = (formValue: IFormValue) => {\r\n    setCompanyApproverDetailsValid(formValue.valid);\r\n    setCompanyApproverInfo(formValue.value);\r\n  };\r\n\r\n  /**\r\n   * method is used to disable the agree and continue button.\r\n   * @returns\r\n   */\r\n  const isDisabled = () => {\r\n    if (pageHasError) {\r\n      return true;\r\n    }\r\n    if (showNextPage) {\r\n      return !(\r\n        publisherNameValid &&\r\n        contactDetailsValid &&\r\n        addressDetailsFormValid &&\r\n        addressDetailsValidated &&\r\n        (accountType === IdentityType.Business\r\n          ? companyApproverDetailsValid\r\n          : true)\r\n      );\r\n    } else {\r\n      return !(addressInfo[FormControlNames.country] && accountType);\r\n    }\r\n  };\r\n\r\n  return (\r\n    <RedirectionGuard guard={redirectionGuardMsa(programsToEnroll)}>\r\n      {showLoader ? (\r\n        <Loader size=\"large\" fullScreen={true} blockOperation={true} />\r\n      ) : (\r\n        <FlexPageWrapper>\r\n          <Header title={Pipe(ResourcePipe)(\"MsaEnrollment_Title\")} />\r\n          {!showNextPage ? (\r\n            <>\r\n              <div className=\"row\">\r\n                <div className=\"col-xs-12\">\r\n                  <FormControlCountry\r\n                    data-testid=\"country-dropdown\"\r\n                    label=\"MSA_Account_Country_Label\"\r\n                    supportedCountries={\r\n                      ALL_SUPPORTED_COUNTRY_CODES_FOR_DEVELOPER_PROGRAMS\r\n                    }\r\n                    value={addressInfo[FormControlNames.country]}\r\n                    onChange={onCountryChange}\r\n                    disabled={\r\n                      !!addressInfo[FormControlNames.country] && sellerId > 0\r\n                    }\r\n                  />\r\n                </div>\r\n              </div>\r\n              <p className=\"spacer-xs-top\">\r\n                {Pipe(ResourcePipe, ReactStringReplacePipe)(\r\n                  \"MSA_Country_Field_Description\",\r\n                  {\r\n                    countryFaqLink: (\r\n                      <Anchor\r\n                        className=\"spacer-xxs-left\"\r\n                        href={EXTERNAL_ROUTES.COUNTRY_FAQ_LINK}\r\n                        target=\"_blank\"\r\n                      >\r\n                        {Pipe(ResourcePipe)(\"Common_FAQ\")}\r\n                      </Anchor>\r\n                    ),\r\n                  }\r\n                )}\r\n              </p>\r\n              <AccountTypeSelection\r\n                value={accountType}\r\n                onChange={onAccountTypeChange}\r\n                disableCompany={ProgramsUtility.isMsaCompanyBlocked(\r\n                  programsToEnroll[0]\r\n                )}\r\n                editable={!(!!accountType && sellerId > 0)}\r\n              />\r\n            </>\r\n          ) : (\r\n            <>\r\n              <p className=\"spacer-md-top\">\r\n                {Pipe(ResourcePipe)(\"MSA_Account_Information_Description\")}\r\n              </p>\r\n              {isPaymentSupported && (\r\n                <RegistrationPrice\r\n                  accountType={accountType}\r\n                  country={addressInfo[FormControlNames.country]}\r\n                  programName={programsToEnroll[0]}\r\n                />\r\n              )}\r\n              <div className=\"row\">\r\n                <div className=\"col-xs-24\">\r\n                  <FormControlPublisherName\r\n                    value={publisherName}\r\n                    sellerId={sellerId}\r\n                    country={addressInfo[FormControlNames.country]}\r\n                    onChange={onPublisherNameChange}\r\n                  />\r\n                </div>\r\n              </div>\r\n              <p className=\"spacer-sm-top\">\r\n                {Pipe(ResourcePipe)(\"MSA_Publisher_Name_Description\")}\r\n              </p>\r\n              <h3 className=\"spacer-md-top\">\r\n                {Pipe(ResourcePipe)(\"Common_Contact_Address\")}\r\n              </h3>\r\n              <p className=\"spacer-xxs-top\">\r\n                {Pipe(ResourcePipe)(\"Common_Contact_Address_Description\")}\r\n              </p>\r\n              <div className={`${classes[\"avs-wrapper\"]}`}>\r\n                <AvsComponent\r\n                  value={addressInfo}\r\n                  supportedCountries={[addressInfo[FormControlNames.country]]}\r\n                  disabledFields={[FormControlNames.country]}\r\n                  shouldValidate={true}\r\n                  onAddressValidated={onAddressValidated}\r\n                  onAddressChanged={onAvsAddressChanged}\r\n                  onChange={onAddressChanged}\r\n                />\r\n              </div>\r\n              <h3 className=\"spacer-md-top\">\r\n                {Pipe(ResourcePipe)(\"Common_Contact_Details\")}\r\n              </h3>\r\n              <p className=\"spacer-xxs-top\">\r\n                {Pipe(ResourcePipe)(\"Common_Contact_Details_Description\")}\r\n              </p>\r\n              {accountType === IdentityType.Business && (\r\n                <p className=\"spacer-xs-top\">\r\n                  <InnerHtml>\r\n                    {Pipe(ResourcePipe)(\"Common_Contact_Details_Warning\")}\r\n                  </InnerHtml>\r\n                </p>\r\n              )}\r\n              <DeveloperContactFormComponent\r\n                accountType={accountType}\r\n                countryCode={addressInfo[FormControlNames.country]}\r\n                programsToEnroll={programsToEnroll}\r\n                value={contactInfo}\r\n                onChange={onContactDetailsChange}\r\n              />\r\n              <CompanyApproverFormComponent\r\n                value={companyApproverInfo}\r\n                accountType={accountType}\r\n                countryCode={addressInfo[FormControlNames.country]}\r\n                onChange={onCompanyApproverChange}\r\n              />\r\n              <TestAttribute name=\"enrollment-form-agreement-text-description\">\r\n                {\r\n                  <>  \r\n                    <hr className=\"spacer-ml-top\"></hr>\r\n                    <h3 className=\"spacer-md-top spacer-xs-bottom font-weight-bold\">\r\n                        {Pipe(ResourcePipe)(\"Accept_Agreement_Title\")}\r\n                    </h3>\r\n                    <InnerHtml>\r\n                      {Pipe(ResourcePipe)(\"Accept_Agreement_Description_MSA\")}\r\n                    </InnerHtml>\r\n                    <ProgramAgreementsComponent\r\n                      programsToEnroll={programsToEnroll}\r\n                    ></ProgramAgreementsComponent>\r\n                  </>\r\n                }\r\n              </TestAttribute>\r\n            </>\r\n          )}\r\n          <div\r\n            className={`spacer-sm-top ${\r\n              showNextPage ? \"flex-space-between\" : \"justify-content-flex-end\"\r\n            }`}\r\n          >\r\n            {showNextPage && (\r\n              <button type=\"button\" className=\"btn\" onClick={onClickBack}>\r\n                {Pipe(ResourcePipe)(\"Common_Back\")}\r\n              </button>\r\n            )}\r\n            <TestAttribute name=\"enrollment-form-next-button\">\r\n              <div className=\"flex\">\r\n                {showSubmitLoader && (\r\n                  <TestAttribute name=\"enrollment-form-loader\">\r\n                    <Loader\r\n                      blockOperation={true}\r\n                      className=\"remove-all-margin spacer-xxs-right\"\r\n                    />\r\n                  </TestAttribute>\r\n                )}\r\n                <button\r\n                  disabled={\r\n                    isDisabled() || workflowInProgress || showSubmitLoader\r\n                  }\r\n                  onClick={onClickNext}\r\n                  className=\"btn btn-primary\"\r\n                >\r\n                  {Pipe(ResourcePipe)(\r\n                    showNextPage ? \"Accept_And_Continue\" : \"Common_Next\"\r\n                  )}\r\n                </button>\r\n              </div>\r\n            </TestAttribute>\r\n          </div>\r\n          {errorMessage && (\r\n            <AlertError key={errorMessage}>{errorMessage}</AlertError>\r\n          )}\r\n          {showWorkflowAcceptedMessage === true ? (\r\n            <MessageBar\r\n              className=\"spacer-ms-top\"\r\n              messageBarType={MessageBarType.success}\r\n              isMultiline={false}\r\n            >\r\n              {Pipe(ResourcePipe)(\"WorkflowAcceptedConfirmationMessage\")}\r\n            </MessageBar>\r\n          ) : null}\r\n        </FlexPageWrapper>\r\n      )}\r\n    </RedirectionGuard>\r\n  );\r\n};\r\n\r\nexport default withRouter(EnrollNowMsaRoute as any);\r\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeWhile(predicate, inclusive) {\n    if (inclusive === void 0) { inclusive = false; }\n    return operate(function (source, subscriber) {\n        var index = 0;\n        source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n            var result = predicate(value, index++);\n            (result || inclusive) && subscriber.next(value);\n            !result && subscriber.complete();\n        }));\n    });\n}\n//# sourceMappingURL=takeWhile.js.map","import { operate } from '../util/lift';\nexport function finalize(callback) {\n    return operate(function (source, subscriber) {\n        try {\n            source.subscribe(subscriber);\n        }\n        finally {\n            subscriber.add(callback);\n        }\n    });\n}\n//# sourceMappingURL=finalize.js.map","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime, intervalOrScheduler, scheduler) {\n    if (dueTime === void 0) { dueTime = 0; }\n    if (scheduler === void 0) { scheduler = asyncScheduler; }\n    var intervalDuration = -1;\n    if (intervalOrScheduler != null) {\n        if (isScheduler(intervalOrScheduler)) {\n            scheduler = intervalOrScheduler;\n        }\n        else {\n            intervalDuration = intervalOrScheduler;\n        }\n    }\n    return new Observable(function (subscriber) {\n        var due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n        if (due < 0) {\n            due = 0;\n        }\n        var n = 0;\n        return scheduler.schedule(function () {\n            if (!subscriber.closed) {\n                subscriber.next(n++);\n                if (0 <= intervalDuration) {\n                    this.schedule(undefined, intervalDuration);\n                }\n                else {\n                    subscriber.complete();\n                }\n            }\n        }, due);\n    });\n}\n//# sourceMappingURL=timer.js.map","export function isValidDate(value) {\n    return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { timer } from './timer';\nexport function interval(period, scheduler) {\n    if (period === void 0) { period = 0; }\n    if (scheduler === void 0) { scheduler = asyncScheduler; }\n    if (period < 0) {\n        period = 0;\n    }\n    return timer(period, period, scheduler);\n}\n//# sourceMappingURL=interval.js.map","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avs-wrapper\":\"enrollnow-msa-module__avs-wrapper___7e337\"};"],"sourceRoot":""}