{"version":3,"file":"js/actions.xxxxxxxxxxxxxxxxxxxx.js","mappings":"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","sources":["webpack://zenbusiness.com/./src/client/actions/register_wfg/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_wfg/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_wfg/index.js","webpack://zenbusiness.com/./src/client/actions/register_smb_website/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_smb_website/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_smb_website/index.js","webpack://zenbusiness.com/./src/client/actions/register_domainname/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_domainname/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_domainname/index.js","webpack://zenbusiness.com/./src/client/actions/initialization/index.js","webpack://zenbusiness.com/./src/client/actions/orders/index.js","webpack://zenbusiness.com/./src/client/actions/register_blr/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_blr/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_blr/index.js","webpack://zenbusiness.com/./src/client/actions/register_smb_ecomm_addon/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_smb_ecomm_addon/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_smb_ecomm_addon/index.js","webpack://zenbusiness.com/./src/client/actions/complete_nypub/flows/default.js","webpack://zenbusiness.com/./src/client/actions/complete_nypub/flows/index.js","webpack://zenbusiness.com/./src/client/actions/complete_nypub/index.js","webpack://zenbusiness.com/./src/client/actions/complete_blr/flows/default.js","webpack://zenbusiness.com/./src/client/actions/complete_blr/flows/index.js","webpack://zenbusiness.com/./src/client/actions/complete_blr/index.js","webpack://zenbusiness.com/./src/client/actions/register_initialcpascreening/index.js","webpack://zenbusiness.com/./src/client/actions/register_domain_v2/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_domain_v2/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_domain_v2/index.js","webpack://zenbusiness.com/./src/client/actions/complete_dbaentity/flows/default.js","webpack://zenbusiness.com/./src/client/actions/complete_dbaentity/flows/index.js","webpack://zenbusiness.com/./src/client/actions/complete_dbaentity/index.js","webpack://zenbusiness.com/./src/client/actions/register_basicemail/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_basicemail/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_basicemail/index.js","webpack://zenbusiness.com/./src/client/actions/Lead/index.js","webpack://zenbusiness.com/./src/client/actions/register_amendment/index.js","webpack://zenbusiness.com/./src/client/actions/register_domainprivacy/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_domainprivacy/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_domainprivacy/index.js","webpack://zenbusiness.com/./src/client/actions/ettf_renewal/flows/default.js","webpack://zenbusiness.com/./src/client/actions/ettf_renewal/flows/index.js","webpack://zenbusiness.com/./src/client/actions/ettf_renewal/index.js","webpack://zenbusiness.com/./src/client/actions/register_accounting/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_accounting/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_accounting/index.js","webpack://zenbusiness.com/./src/client/actions/register_annual_report/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_annual_report/index.js","webpack://zenbusiness.com/./src/client/actions/register_nypub/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_nypub/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_nypub/index.js","webpack://zenbusiness.com/./src/client/actions/register_dbaentity_pf/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_dbaentity_pf/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_dbaentity_pf/stepsFlowFactory.js","webpack://zenbusiness.com/./src/client/actions/register_dbaentity_pf/index.js","webpack://zenbusiness.com/./src/client/actions/complete_ein/flows/default.js","webpack://zenbusiness.com/./src/client/actions/complete_ein/flows/index.js","webpack://zenbusiness.com/./src/client/actions/complete_ein/index.js","webpack://zenbusiness.com/./src/client/actions/register_nameres/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_nameres/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_nameres/index.js","webpack://zenbusiness.com/./src/client/actions/register_zb_banking_preferred/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_zb_banking_preferred/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_zb_banking_preferred/index.js","webpack://zenbusiness.com/./src/client/actions/register_onlinetools/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_onlinetools/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_onlinetools/index.js","webpack://zenbusiness.com/./src/client/actions/register_nextpage/index.js","webpack://zenbusiness.com/./src/client/actions/register_smb_website_ecomm/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_smb_website_ecomm/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_smb_website_ecomm/index.js","webpack://zenbusiness.com/./src/client/actions/expense_tracker_n_taxes_filing/flows/default.js","webpack://zenbusiness.com/./src/client/actions/expense_tracker_n_taxes_filing/flows/index.js","webpack://zenbusiness.com/./src/client/actions/expense_tracker_n_taxes_filing/index.js","webpack://zenbusiness.com/./src/client/actions/companies/index.js","webpack://zenbusiness.com/./src/client/actions/account/index.js","webpack://zenbusiness.com/./src/client/actions/registration/flows/default.js","webpack://zenbusiness.com/./src/client/actions/registration/flows/index.js","webpack://zenbusiness.com/./src/client/actions/registration/index.js","webpack://zenbusiness.com/./src/client/actions/register_gs/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_gs/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_gs/index.js","webpack://zenbusiness.com/./src/client/actions/complete_business/flows/default.js","webpack://zenbusiness.com/./src/client/actions/complete_business/flows/index.js","webpack://zenbusiness.com/./src/client/actions/complete_business/index.js","webpack://zenbusiness.com/./src/client/actions/purchase_post_addons/flows/default.js","webpack://zenbusiness.com/./src/client/actions/purchase_post_addons/flows/index.js","webpack://zenbusiness.com/./src/client/actions/purchase_post_addons/index.js","webpack://zenbusiness.com/./src/client/actions/complete_corp/flows/default.js","webpack://zenbusiness.com/./src/client/actions/complete_corp/flows/index.js","webpack://zenbusiness.com/./src/client/actions/complete_corp/index.js","webpack://zenbusiness.com/./src/client/actions/register_tax_services/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_tax_services/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_tax_services/index.js","webpack://zenbusiness.com/./src/client/actions/register_zbmpro/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_zbmpro/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_zbmpro/index.js","webpack://zenbusiness.com/./src/client/actions/register_wfgir/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_wfgir/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_wfgir/index.js","webpack://zenbusiness.com/./src/client/actions/register_bof/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_bof/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_bof/index.js","webpack://zenbusiness.com/./src/client/actions/register_business/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_business/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_business/index.js","webpack://zenbusiness.com/./src/client/actions/complete_cora/flows/default.js","webpack://zenbusiness.com/./src/client/actions/complete_cora/flows/index.js","webpack://zenbusiness.com/./src/client/actions/complete_cora/index.js","webpack://zenbusiness.com/./src/client/actions/register_corpdocs/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_corpdocs/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_corpdocs/index.js","webpack://zenbusiness.com/./src/client/actions/register_ein/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_ein/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_ein/index.js","webpack://zenbusiness.com/./src/client/actions/complete_llc/flows/default.js","webpack://zenbusiness.com/./src/client/actions/complete_llc/flows/index.js","webpack://zenbusiness.com/./src/client/actions/complete_llc/index.js","webpack://zenbusiness.com/./src/client/actions/register_smb_website_or_ecomm/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_smb_website_or_ecomm/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_smb_website_or_ecomm/index.js","webpack://zenbusiness.com/./src/client/actions/register_bof_modification/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_bof_modification/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_bof_modification/index.js","webpack://zenbusiness.com/./src/client/actions/register_business_kit/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_business_kit/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_business_kit/index.js","webpack://zenbusiness.com/./src/client/actions/register_email_v2/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_email_v2/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_email_v2/index.js","webpack://zenbusiness.com/./src/client/actions/register_cora_pf/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_cora_pf/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_cora_pf/stepsFlowFactory.js","webpack://zenbusiness.com/./src/client/actions/register_cora_pf/index.js","webpack://zenbusiness.com/./src/client/actions/register_logokit/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_logokit/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_logokit/index.js","webpack://zenbusiness.com/./src/client/actions/business_name_generator/flows/default.js","webpack://zenbusiness.com/./src/client/actions/business_name_generator/flows/index.js","webpack://zenbusiness.com/./src/client/actions/business_name_generator/index.js","webpack://zenbusiness.com/./src/client/actions/register_account/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_account/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_account/index.js","webpack://zenbusiness.com/./src/client/actions/register_stock_setup/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_stock_setup/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_stock_setup/index.js","webpack://zenbusiness.com/./src/client/actions/complete_wfg/flows/default.js","webpack://zenbusiness.com/./src/client/actions/complete_wfg/flows/index.js","webpack://zenbusiness.com/./src/client/actions/complete_wfg/index.js","webpack://zenbusiness.com/./src/client/actions/register_opagreement/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_opagreement/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_opagreement/index.js"],"sourcesContent":["import { URLS } from '../../../constants/register_wfg';\nimport { isLoggedIn } from '../../../utils/AuthService';\n\nconst\n  getNewCustomerFlowOrder = (url) => {\n    if (url === URLS.LOGIN_POST) {\n      return [ URLS.LOGIN_POST ];\n    }\n    return [ URLS.ACCOWN_NAME, URLS.ACCOWN_CONTACT, URLS.DOM_JUR, URLS.BUS_TYPE, URLS.BUS_NAME, URLS.DATA_CONFIRM, URLS.PAYMENT, URLS.LOGIN_POST ];\n  },\n  getNewCompanyFlowOrder = (url, registration) => {\n    const { business } = registration,\n      { hasCompanies } = business;\n\n    if (!hasCompanies) {\n      return [ URLS.DOM_JUR, URLS.BUS_TYPE, URLS.BUS_NAME, URLS.PAYMENT ];\n    }\n    return [ URLS.BUS_ID, URLS.DOM_JUR, URLS.BUS_TYPE, URLS.BUS_NAME, URLS.DATA_CONFIRM, URLS.PAYMENT ];\n  },\n  getExistingCompanyFlowOrder = () => {\n    return [ URLS.BUS_ID, URLS.PAYMENT ];\n  },\n  getFlowOrder = (url, registration) => {\n    const\n      { business, page } = registration,\n      { id } = business,\n      { fromDashboard } = page,\n      loggedIn = isLoggedIn();\n\n    if (!loggedIn) {\n      return getNewCustomerFlowOrder(url, registration);\n    }\n    if (fromDashboard) {\n      if (id) {\n        return [ URLS.START, ...getExistingCompanyFlowOrder(url, registration) ];\n      }\n      return [ URLS.START, ...getNewCompanyFlowOrder(url, registration) ];\n    }\n    if (id) {\n      return getExistingCompanyFlowOrder(url, registration);\n    }\n    return getNewCompanyFlowOrder(url, registration);\n  };\n\nexport default {\n  getNewCustomerFlowOrder,\n  getExistingCompanyFlowOrder,\n  getNewCompanyFlowOrder,\n  getFlowOrder\n};\n","import { getRegisterWFGFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterWFGFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getStateFees as getInitStateFees, setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMP_WFG_URLS } from '../../constants/complete_wfg';\nimport { ACTIONS, URLS } from '../../constants/register_wfg';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, registrationService } from '../../services';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { OrderTypes } from '../../utils/OrderUtils';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getWFGYearlyPrice } from '../../utils/ProductService';\n\nconst\n  defaultBusinessData = { id: '', domesticJurisdiction: '', name: '', type: 'LLCX', businessOrderType: '', hasCompanies: true },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultPageData = { fromDashboard: false },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  getFlowOrder = (url) => {\n    const registration = { business: businessData, page: pageData };\n\n    return getFlow(url, registration);\n  },\n  go = (jump, dispatch, doReplace) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      { id, businessOrderType } = businessData,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getAppEntryPoint();\n    } else if (jumpIndex >= flowOrder.length) {\n      if (id) {\n        if (businessOrderType === OrderTypes.LLC || businessOrderType === OrderTypes.CORP || businessOrderType === OrderTypes.NY_PUBLICATION) {\n          browserHistory.push(`/${COMP_WFG_URLS.BASE}/${COMP_WFG_URLS.SHARE}`);\n          return;\n        }\n      }\n      browserHistory.push(`/${COMP_WFG_URLS.BASE}/${COMP_WFG_URLS.START}`);\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl, doReplace) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch, doReplace);\n    }\n  },\n  doReset = () => {\n    _assign(businessData, defaultBusinessData);\n    _assign(pageData, defaultPageData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n  _assign(businessData, getReducerSnapshot(businessKey, { id: '', type: 'LLCX', businessOrderType: '' }));\n};\n\nexport const goToNextUncompletedPage = (dispatch, location, forceBusinessId) => {\n  if (forceBusinessId === 'wfg') {\n    browserHistory.push(`/${URLS.BASE}/${URLS.BUS_ID}`);\n    return true;\n  }\n\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      browserHistory.push(`/${COMP_WFG_URLS.BASE}/${COMP_WFG_URLS.START}`);\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const setAccountOwnerContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_CONTACT, true);\n};\n\nexport const setAccountOwnerModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_MODAL, false);\n};\n\nexport const setAccountOwnerName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_NAME, true);\n};\n\nexport const setBusinessId = (dispatch, data) => {\n  const { business } = data,\n    { domesticJurisdiction, name, type, hasCompanies } = business || data;\n\n  businessData.businessOrderType = data.businessOrderType;\n  businessData.id = data.id;\n  businessData.domesticJurisdiction = domesticJurisdiction;\n  businessData.name = name;\n  businessData.type = type;\n\n  set(dispatch, data, ACTIONS.BUS_ID, true, !hasCompanies);\n  businessData.hasCompanies = hasCompanies;\n\n};\n\nexport const setBusinessModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_MODAL, false);\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  businessData.name = data.name;\n  set(dispatch, data, ACTIONS.BUS_NAME, true);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_TYPE, true);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, true);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  businessData.domesticJurisdiction = data.domesticJurisdiction;\n  set(dispatch, data, ACTIONS.DOM_JUR, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const\n    fullData = _assign({}, data || {}, { worryFree: true }),\n    { fromDashboard = false } = data;\n\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  pageData.fromDashboard = fromDashboard;\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, fullData, ACTIONS.INIT, false);\n  /*\n  * achieves? ~> preserve and expose is_dashboard to the query params as well\n  * why? ~> pageData.fromDashboard only makes it accessible to sub-sequent utlity functions\n  */\n  const url = `${getEntryPoint()}?fromDashboard=${fromDashboard}`;\n  browserHistory.replace(url);\n};\n\nexport const setLogin = (dispatch) => {\n  set(dispatch, { flow: 'wfg' }, ACTIONS.LOGIN, false);\n};\n\nexport const setLoginPostPurchase = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LOGIN_POST, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createWFGOrder = (dispatch, reducerData, fees) => {\n  const serviceMethod = 'createWFG';\n\n  registrationService[serviceMethod](reducerData, fees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    const price = getWFGYearlyPrice();\n    const addlData = createAdditionalData('worry_free_compliance', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'worry_free_compliance', price, addlData);\n    go(1, dispatch);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { customer } = reducerData,\n    { cardToken, expMonth, expYear, cvc, brand, last4 } = customer;\n\n  if (!isLoggedIn() || !cardToken) {\n    createWFGOrder(dispatch, reducerData, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createWFGOrder(dispatch, reducerData, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const createLead = (dispatch, lead) => {\n  logger.logAction(ACTIONS.CREATE_LEAD);\n  dispatch({\n    type: ACTIONS.CREATE_LEAD\n  });\n  registrationService.createLead(lead).then((response) => {\n    logger.logAction(ACTIONS.CREATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const getStateFees = (dispatch, data, filingFees) => {\n  if (!filingFees[data.domesticJurisdiction] || !filingFees[data.domesticJurisdiction].worry_free_service) {\n    getInitStateFees(dispatch, data.domesticJurisdiction);\n  }\n};\n\nexport const setBackFromCompleteBusiness = () => {\n  browserHistory.push(getEntryPoint());\n};\n\nexport const orderAlreadyCreated = (dispatch) => {\n  go(1, dispatch);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  goToNextUncompletedPage,\n  orderAlreadyCreated,\n  setAccountOwnerContact,\n  setAccountOwnerModal,\n  setAccountOwnerName,\n  setBusinessId,\n  setBusinessModal,\n  setBusinessName,\n  setBusinessType,\n  setDataConfirmation,\n  setDomesticJurisdiction,\n  setInit,\n  setLogin,\n  setLoginPostPurchase,\n  setPayment,\n  setStart,\n  setBackFromCompleteBusiness,\n  createOrder,\n  createLead,\n  getStateFees,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_smb_website';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n\n    const { smbWebsite } = registration,\n      { alreadyPurchased } = smbWebsite;\n\n    return alreadyPurchased ? [ URLS.ALREADY_PURCHASED ] : [ URLS.CHOOSE_INTERVAL, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterSMBWebsiteFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterSMBWebsiteFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_smb_website';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as smbWebsiteKey } from '../../reducers/registration/smbWebsite';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackClick, trackEvent } from '../../utils/ThirdPartyTracking';\nimport {\n  getSMBWebsiteMonthlyPrice,\n  getSMBWebsiteYearlyPrice\n} from '../../utils/ProductService';\n\nconst\n  defaultSMBWebsiteData = { companyId: '', companyCount: 0 },\n  smbWebsiteData = getReducerSnapshot(smbWebsiteKey, defaultSMBWebsiteData),\n  getFlowOrder = (url) => {\n    const registration = {\n      smbWebsite: smbWebsiteData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    return smbWebsiteData.companyId ?\n      `/${COMPANY_URLS.BASE}/${smbWebsiteData.companyId}` :  `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  trackClickEvent = (pageTitle, clickText, inputValue) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + 1 : index,\n      nextUrl = jumpIndex >= 0 && jumpIndex <= flowOrder.length ? flowOrder[jumpIndex] : '',\n\n      pageDetails = {\n        activeFlow: URLS.BASE,\n        pageTitle,\n        pageType: 'standalone - SMB Website'\n      },\n      clickDetails = {\n        clickType: 'button',\n        clickText,\n        inputValue\n      };\n    if (nextUrl) {\n      clickDetails.nextUrl = nextUrl;\n    }\n    trackClick(pageDetails, clickDetails);\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(smbWebsiteData, defaultSMBWebsiteData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\n\nexport const setAlreadyPurchased = (dispatch, data) => {\n  const { redirect } = data;\n  if (redirect) {\n    trackClickEvent(URLS.ALREADY_PURCHASED, 'Go to Dashboard', 'true');\n    setTimeout(() => {\n      set(dispatch, {}, ACTIONS.ALREADY_PURCHASED, false);\n      document.location = getCompanyUrl();\n    }, 1000);\n  } else {\n    set(dispatch, {}, ACTIONS.ALREADY_PURCHASED, false);\n  }\n};\n\nexport const setChooseInterval = (dispatch, data) => {\n  const { yearlyInterval } = data;\n  _assign(smbWebsiteData, { yearlyInterval });\n  trackClickEvent(URLS.CHOOSE_INTERVAL, yearlyInterval ? 'Pay yearly' : 'Pay monthly', yearlyInterval ? 'true' : 'false');\n  set(dispatch, data, ACTIONS.CHOOSE_INTERVAL, true);\n};\n\n\nexport const setComplete = (dispatch, data) => {\n  const { redirect } = data;\n  if (smbWebsiteData.fromPublish) {\n    set(dispatch, {}, ACTIONS.COMPLETE, true);\n    document.location = `/mfe/websites/postpublish?external_uid=${smbWebsiteData.externalUid}&accountname=${smbWebsiteData.accountName}&sitename=${smbWebsiteData.siteName}&planid=${smbWebsiteData.planId}`;\n  } else if (redirect) {\n    trackClickEvent(URLS.COMPLETE, 'Go to Dashboard', 'true');\n    setTimeout(() => {\n      set(dispatch, {}, ACTIONS.COMPLETE, true);\n      document.location = getCompanyUrl();\n    }, 2000);\n  } else {\n    set(dispatch, {}, ACTIONS.COMPLETE, false);\n  }\n};\n\n\nexport const setInit = (dispatch, data) => {\n  const { alreadyPurchased, companyId, fromPublish, externalUid, accountName, siteName, planId } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(smbWebsiteData, { companyId, alreadyPurchased, fromPublish, externalUid, accountName, siteName, planId });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${alreadyPurchased ? URLS.ALREADY_PURCHASED : URLS.CHOOSE_INTERVAL}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  trackClickEvent(URLS.PAYMENT, 'Place Your Order', 'true');\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nconst createSMBWebsiteOrder = (dispatch, reducerData, accountId) => {\n  registrationService.createSMBWebsite(reducerData, accountId).then((response) => {\n    const {\n      smbWebsite: { yearlyInterval }\n    } = reducerData;\n\n    const price = yearlyInterval ? getSMBWebsiteYearlyPrice() : getSMBWebsiteMonthlyPrice();\n    const addlData = createAdditionalData('smb_website', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'SMB Website', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\n\nexport const createOrder = (dispatch, reducerData, accountId) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { smbWebsite } = reducerData,\n    { cardToken, expMonth, expYear, cvc, brand, last4 } = smbWebsite;\n\n  if (!cardToken) {\n    createSMBWebsiteOrder(dispatch, reducerData, accountId);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createSMBWebsiteOrder(dispatch, reducerData, accountId);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setAlreadyPurchased,\n  setChooseInterval,\n  setComplete,\n  setInit,\n  setPayment,\n  resetAllData\n};\n","import _isEmpty from 'lodash/isEmpty';\nimport { URLS } from '../../../constants/register_domainname';\nimport { isBasicEmailEnabled, isDomainNamePrivacyEnabled } from '../../../utils/ProductService';\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [URLS.COMPLETE];\n    }\n\n    const\n      { domainName, purchase, business } = registration,\n      { companyCount } = domainName,\n      { basicEmail } = purchase,\n      { isSimulated, contact } = business,\n      flow = [URLS.START];\n    if (companyCount > 1 && !isSimulated) {\n      flow.push(URLS.CHOOSE_COMPANY);\n    }\n    if (isSimulated && _isEmpty(contact)) {\n      flow.push(URLS.PRIM_CONTACT);\n    }\n\n    flow.push(URLS.DOMAIN_NAMES);\n\n    if (isDomainNamePrivacyEnabled()) {\n      flow.push(URLS.PURCH_DOMAIN_PRIV);\n    }\n    if (isBasicEmailEnabled()) {\n      flow.push(URLS.PURCH_EMAIL);\n      if (basicEmail) {\n        flow.push(URLS.EMAIL_ADDRESSES);\n      }\n    }\n    if (isBasicEmailEnabled() || isDomainNamePrivacyEnabled()) {\n      flow.push(URLS.PRODUCT_CONFIRM);\n    }\n    flow.push(URLS.PAYMENT, URLS.COMPLETE);\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_domainname';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as domainNameKey } from '../../reducers/registration/domainName';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService, businessEntityService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport { getDomainNameYearlyPrice } from '../../utils/ProductService';\n\nconst\n  defaultDomainNameData = { companyId: '', companyCount: 0 },\n  domainNameData = getReducerSnapshot(domainNameKey, defaultDomainNameData),\n  defaultPurchaseData = { domainNamePrivacy: null, basicEmail: null },\n  purchaseData = getReducerSnapshot(purchaseKey, defaultPurchaseData),\n  businessData = getReducerSnapshot(businessKey, { isSimulated: false }),\n  getFlowOrder = (url) => {\n    const registration = {\n      domainName: domainNameData,\n      purchase: purchaseData,\n      business: businessData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (domainNameData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${domainNameData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(domainNameData, defaultDomainNameData);\n    _assign(purchaseData, defaultPurchaseData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const goToEmailAddressPurchase = () => {\n  browserHistory.push(`/${URLS.BASE}/${URLS.PURCH_EMAIL}`);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setBasicEmailAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMAIL_ADDRESS, true);\n};\n\nexport const setBasicEmailAddresses = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMAIL_ADDRESSES, true);\n};\n\nexport const setBasicEmailAddressModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMAIL_ADDRESSES, false);\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(domainNameData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setDomainNamePrimary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DOMAIN_NAME, true);\n};\n\nexport const setDomainNames = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DOMAIN_NAMES, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount } = data;\n  businessData.isSimulated = data.isSimulated;\n  setIsFreeAccount(data.isSimulated);\n  businessData.contact = data.contact;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(domainNameData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, false);\n};\n\nexport const setProductConfirmation = (dispatch, data) => {\n  purchaseData.basicEmail = data.basicEmail;\n  purchaseData.domainNamePrivacy = data.domainNamePrivacy;\n  set(dispatch, data, ACTIONS.PRODUCT_CONFIRM, true);\n};\n\nexport const setPurchaseBasicEmail = (dispatch, data) => {\n  purchaseData.basicEmail = data.basicEmail;\n  set(dispatch, data, ACTIONS.PURCH_EMAIL, true);\n};\n\nexport const setPurchaseDomainNamePrivacy = (dispatch, data) => {\n  purchaseData.domainNamePrivacy = data.domainNamePrivacy;\n  set(dispatch, data, ACTIONS.PURCH_DOMAIN_PRIV, true);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createDomainNameOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createDomainName(reducerData, accountId, filingFees).then((response) => {\n    const price = getDomainNameYearlyPrice();\n    const addlData = createAdditionalData('domain_name', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'domain_name', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { domainName } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = domainName;\n\n  if (!cardToken) {\n    createDomainNameOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createDomainNameOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport const updateOrder = (dispatch, reducerData, advance) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  businessEntityService.updateContacts(reducerData).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setBasicEmailAddress,\n  setBasicEmailAddressModal,\n  setChooseCompany,\n  setComplete,\n  setDomainNamePrimary,\n  setInit,\n  setPayment,\n  setProductConfirmation,\n  setPurchaseBasicEmail,\n  setPurchaseDomainNamePrivacy,\n  setStart,\n  updateOrder,\n  resetAllData\n};\n","import { ACTIONS } from '../../constants/initialization';\nimport { initializationService } from '../../services';\nimport WebView from '../../utils/WebViewUtils';\nimport logger from '../../utils/ClientLogger';\n\n// Initialization Action Creators\nconst isFromWebView = WebView.isWebView;\n\nexport const setInitialization = (dispatch, data) => {\n  data.isWebView = isFromWebView;\n  logger.logAction(ACTIONS.SET_INITIALIZATION, data);\n  dispatch({\n    type: ACTIONS.SET_INITIALIZATION,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setAppEntryPoint = (dispatch, useReferrer) => {\n  logger.logAction(ACTIONS.SET_APP_ENTRY_POINT, useReferrer ? document.referrer : window.location.pathname);\n  dispatch({\n    type: ACTIONS.SET_APP_ENTRY_POINT,\n    payload: {\n      data: {\n        entryPoint: useReferrer ? document.referrer : window.location.pathname\n      }\n    }\n  });\n};\n\nexport const getStateFees = (dispatch, stateCode) => {\n  logger.logAction(ACTIONS.GET_STATE_FEES, { stateCode });\n  dispatch({\n    type: ACTIONS.GET_STATE_FEES\n  });\n  initializationService.getStateFees(stateCode).then((response) => {\n    const stateFeeResponse = (stateCode) ? { [stateCode]: response } : response;\n\n    logger.logAction(ACTIONS.GET_STATE_FEES_COMPLETE, stateFeeResponse);\n    dispatch({\n      type: ACTIONS.GET_STATE_FEES_COMPLETE,\n      payload: {\n        data: stateFeeResponse\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_STATE_FEES_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_STATE_FEES_COMPLETE,\n      error: true,\n      payload: {\n        data: err && err.errorCode ? err.errorCode : 2000\n      }\n    });\n  });\n};\n\nexport const getExpediteFees = (dispatch, stateCode) => {\n  logger.logAction(ACTIONS.GET_EXPEDITE_FEES, { stateCode });\n  dispatch({\n    type: ACTIONS.GET_EXPEDITE_FEES\n  });\n  initializationService.getExpediteFees(stateCode).then((response) => {\n    const expediteFeeResponse = (stateCode) ? { [stateCode]: response } : response;\n\n    logger.logAction(ACTIONS.GET_EXPEDITE_FEES_COMPLETE, expediteFeeResponse);\n    dispatch({\n      type: ACTIONS.GET_EXPEDITE_FEES_COMPLETE,\n      payload: {\n        data: expediteFeeResponse\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_EXPEDITE_FEES_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_EXPEDITE_FEES_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const initializeData = (dispatch, data) => {\n  logger.logAction(ACTIONS.INITIALIZE_PRICING_DATA, data);\n  dispatch({\n    type: ACTIONS.INITIALIZE_PRICING_DATA,\n    payload: {\n      data\n    }\n  });\n};\n\nexport default {\n  setAppEntryPoint,\n  getStateFees,\n  getExpediteFees\n};\n","import { ACTIONS } from '../../constants/orders';\nimport logger from '../../utils/ClientLogger';\nimport { orderService } from '../../services';\n\nexport const getOrders = (dispatch) => {\n  logger.logAction(ACTIONS.GET_ORDERS);\n  dispatch({\n    type: ACTIONS.GET_ORDERS\n  });\n  orderService.getOrders().then((response) => {\n    logger.logAction(ACTIONS.GET_ORDERS_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.GET_ORDERS_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_ORDERS_COMPLETE, err);\n    if (err.message === 'Order missing data and no existing data') {\n      dispatch({\n        type: ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: 3001\n        }\n      });\n      return;\n    }\n    dispatch({\n      type: ACTIONS.GET_ORDERS_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 3000\n      }\n    });\n  });\n};\n\nexport const getOrderTasks = (dispatch, businessEntityUuid) => {\n  logger.logAction(ACTIONS.GET_ORDER_TASKS, { businessEntityUuid });\n  dispatch({\n    type: ACTIONS.GET_ORDER_TASKS\n  });\n  return orderService.getOrderTasksByCompany(businessEntityUuid).then((response) => {\n    logger.logAction(ACTIONS.GET_ORDER_TASKS_COMPLETE, response);\n    // The BFF returns the task list as an index-keyed object with envelope fields, not the bare array\n    // the contract shows — so extract real task entries (objects with order_task_uuid) either way.\n    const tasksArray = (Array.isArray(response) ? response : Object.values(response || {}))\n      .filter((task) => { return task && typeof task === 'object' && task.order_task_uuid; });\n    if (tasksArray.length > 0) {\n      dispatch({\n        type: ACTIONS.GET_ORDER_TASKS_COMPLETE,\n        payload: { orderTasks: tasksArray }\n      });\n    }\n    return tasksArray;\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_ORDER_TASKS_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_ORDER_TASKS_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 3000\n      }\n    });\n  });\n};\n\nexport default {\n  getOrders,\n  getOrderTasks\n};\n","import { URLS } from '../../../constants/register_blr';\nimport { isLoggedIn } from '../../../utils/AuthService';\n\n/* eslint-disable max-statements */\nconst\n  getNewCustomerFlowOrder = (url) => {\n    if (url === URLS.LOGIN_POST) {\n      return [ URLS.LOGIN_POST ];\n    }\n\n    return [ URLS.ACCOWN_NAME, URLS.ACCOWN_CONTACT, URLS.BUS_EXIST, URLS.BUS_TYPE, URLS.BUS_NAME, URLS.DOM_JUR, URLS.BUS_DESC, URLS.DATA_CONFIRM, URLS.PAYMENT, URLS.LOGIN_POST ];\n  },\n  getNewCompanyFlowOrder = (url, registration) => {\n    const\n      { business, page } = registration,\n      { isSimulated, id } = page,\n      // eslint-disable-next-line no-sparse-arrays\n      flowItems = [\n        ...(isSimulated && id ? [] : [URLS.BUS_ID]), /* for simulated entities dont display the pick entity */\n        URLS.BUS_EXIST, URLS.BUS_TYPE, URLS.BUS_NAME, URLS.DOM_JUR, URLS.BUS_DESC, URLS.DATA_CONFIRM, URLS.PAYMENT\n      ],\n      { hasCompanies } = business;\n\n    if (!hasCompanies) {\n      flowItems.shift();\n    }\n    if (url === URLS.ACCOWN_NAME) { // For the logged-in transition\n      flowItems.unshift(URLS.ACCOWN_NAME);\n    }\n    if (url === URLS.ACCOWN_CONTACT) {\n      flowItems.unshift(URLS.ACCOWN_CONTACT);\n    }\n    return flowItems;\n  },\n  getExistingCompanyFlowOrder = () => {\n    return [ URLS.BUS_ID, URLS.PAYMENT ];\n  },\n  getFlowOrder = (url, registration) => {\n    const\n      { business, page } = registration,\n      { id } = business,\n      { fromDashboard, isSimulated } = page,\n      startConfirm = URLS.START,\n      loggedIn = isLoggedIn();\n\n    if (!loggedIn) {\n      return getNewCustomerFlowOrder(url, registration);\n    }\n    if (fromDashboard) {\n      if (id && !isSimulated) {\n        return [ startConfirm, ...getExistingCompanyFlowOrder(url, registration) ];\n      }\n      return [ startConfirm, ...getNewCompanyFlowOrder(url, registration) ];\n    }\n    if (id && !isSimulated) {\n      return getExistingCompanyFlowOrder(url, registration);\n    }\n    return getNewCompanyFlowOrder(url, registration);\n  };\n\nexport default {\n  getExistingCompanyFlowOrder,\n  getNewCompanyFlowOrder,\n  getNewCustomerFlowOrder,\n  getFlowOrder\n};\n","import { getRegisterEINFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterEINFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getEntryPoint as getCompleteEntryPoint } from '../complete_blr';\nimport { getStateFees as getInitStateFees, setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { ACTIONS, URLS } from '../../constants/register_blr';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, registrationService } from '../../services';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport { getBusinessLicensePrice } from '../../utils/ProductService';\n\nconst\n  defaultBusinessData = { id: '' },\n  businessData = _assign(getReducerSnapshot(businessKey, defaultBusinessData, { hasCompanies: true })),\n  defaultPageData = { fromDashboard: false },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  getFlowOrder = (url) => {\n    const registration = { business: businessData, page: pageData };\n    return getFlow(url, registration);\n  },\n  goInFlow = (flowOrder, jumpIndex, dispatch, doReplace) => {\n    const\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getAppEntryPoint();\n    } else if (jumpIndex >= flowOrder.length) {\n      browserHistory.push(getCompleteEntryPoint(false));\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  go = (jump, dispatch, doReplace) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    goInFlow(flowOrder, jumpIndex, dispatch, doReplace);\n  },\n  set = (dispatch, data, actionKey, moveUrl, doReplace) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch, doReplace);\n    }\n  },\n  doReset = () => {\n    _assign(businessData, defaultBusinessData, { hasCompanies: true });\n    _assign(pageData, defaultPageData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const goToNextUncompletedPage = (dispatch, location, forceBusinessId) => {\n  if (forceBusinessId === 'bl') {\n    browserHistory.push(`/${URLS.BASE}/${URLS.BUS_ID}`);\n    return true;\n  }\n\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index >= 0 ? index + 1 : index;\n\n  if (index >= 0) {\n    goInFlow(flowOrder, jumpIndex, dispatch, false);\n    return true;\n  }\n  return false;\n};\n\nexport const getStateFees = (dispatch, data, filingFees) => {\n  if (!filingFees[data.domesticJurisdiction] || !filingFees[data.domesticJurisdiction].business_license_report) {\n    getInitStateFees(dispatch, data.domesticJurisdiction);\n  }\n};\n\nexport const setAccountOwnerContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_CONTACT, true);\n};\n\nexport const setAccountOwnerName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_NAME, true);\n};\n\nexport const setBusinessDataModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DATA_MODAL, false);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, true);\n};\n\nexport const setBusinessExist = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_EXIST, true);\n};\n\nexport const setBusinessId = (dispatch, data) => {\n  const { business, id } = data,\n    { hasCompanies } = business || data;\n\n  businessData.id = id;\n\n  set(dispatch, data, ACTIONS.BUS_ID, true, !hasCompanies);\n  businessData.hasCompanies = hasCompanies;\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME, true);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_TYPE, true);\n};\n\nexport const setContactDataModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_MODAL, false);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, true);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DOM_JUR, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const\n    { fromDashboard = false, id, isSimulated } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  pageData.fromDashboard = fromDashboard;\n  pageData.id = id;\n  pageData.isSimulated = isSimulated;\n  setIsFreeAccount(isSimulated);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.INIT, false);\n  /*\n  * achieves? ~> preserve and expose is_dashboard to the query params as well\n  * why? ~> pageData.fromDashboard only makes it accessible to sub-sequent utlity functions\n  */\n  const url = `${getEntryPoint()}?fromDashboard=${fromDashboard}`;\n  browserHistory.replace(url);\n};\n\nexport const setLogin = (dispatch) => {\n  set(dispatch, { flow: 'bl' }, ACTIONS.LOGIN, false);\n};\n\nexport const setLoginPostPurchase = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LOGIN_POST, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createBLROrder = (dispatch, reducerData) => {\n  registrationService.createBusinessLicense(reducerData).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    const price = getBusinessLicensePrice();\n    const addlData = createAdditionalData('business_license_report', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'business_license', price, addlData);\n    go(1);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { customer } = reducerData,\n    { cardToken, expMonth, expYear, cvc, brand, last4 } = customer;\n\n  if (!isLoggedIn() || !cardToken) {\n    createBLROrder(dispatch, reducerData);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createBLROrder(dispatch, reducerData);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const createLead = (dispatch, lead) => {\n  logger.logAction(ACTIONS.CREATE_LEAD);\n  dispatch({\n    type: ACTIONS.CREATE_LEAD\n  });\n  registrationService.createLead(lead).then((response) => {\n    logger.logAction(ACTIONS.CREATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const updateLead = (dispatch, lead, leadUuid) => {\n  logger.logAction(ACTIONS.UPDATE_LEAD);\n  dispatch({\n    type: ACTIONS.UPDATE_LEAD\n  });\n  registrationService.updateLead(leadUuid, lead).then((response) => {\n    logger.logAction(ACTIONS.UPDATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    console.error('ERROR! The following content was not sufficient to update a lead: ', lead);\n    logger.error(ACTIONS.UPDATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const setBackFromCompleteBusiness = () => {\n  browserHistory.push(getEntryPoint());\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  goToNextUncompletedPage,\n  getStateFees,\n  orderAlreadyCreated,\n  setAccountOwnerContact,\n  setAccountOwnerName,\n  setBusinessDataModal,\n  setBusinessDescription,\n  setBusinessExist,\n  setBusinessId,\n  setBusinessName,\n  setBusinessType,\n  setContactDataModal,\n  setDomesticJurisdiction,\n  setInit,\n  setLogin,\n  setLoginPostPurchase,\n  setPayment,\n  createOrder,\n  createLead,\n  setStart,\n  setBackFromCompleteBusiness\n};\n","import { URLS } from '../../../constants/register_smb_ecomm_addon';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n\n    const { smbEcommAddon: { alreadyPurchased } } = registration;\n\n    return alreadyPurchased ? [ URLS.ALREADY_PURCHASED ] : [ URLS.CHOOSE_INTERVAL, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterSMBEcommAddonFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterSMBEcommAddonFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_smb_ecomm_addon';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as smbEcommAddonKey } from '../../reducers/registration/smbEcommAddon';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackClick, trackEvent } from '../../utils/ThirdPartyTracking';\nimport {\n  getSMBEcommAddonMonthlyPrice,\n  getSMBEcommAddonYearlyPrice\n} from '../../utils/ProductService';\n\nconst\n  defaultSMBEcommAddonData = { companyId: '', companyCount: 0 },\n  smbEcommAddonData = getReducerSnapshot(smbEcommAddonKey, defaultSMBEcommAddonData),\n  getFlowOrder = (url) => {\n    const registration = {\n      smbEcommAddon: smbEcommAddonData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    return smbEcommAddonData.companyId ?\n      `/${COMPANY_URLS.BASE}/${smbEcommAddonData.companyId}` :  `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  trackClickEvent = (pageTitle, clickText, inputValue) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + 1 : index,\n      nextUrl = jumpIndex >= 0 && jumpIndex <= flowOrder.length ? flowOrder[jumpIndex] : '',\n\n      pageDetails = {\n        activeFlow: URLS.BASE,\n        pageTitle,\n        pageType: 'standalone - SMB Website Addon'\n      },\n      clickDetails = {\n        clickType: 'button',\n        clickText,\n        inputValue\n      };\n    if (nextUrl) {\n      clickDetails.nextUrl = nextUrl;\n    }\n    trackClick(pageDetails, clickDetails);\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(smbEcommAddonData, defaultSMBEcommAddonData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\n\nexport const setAlreadyPurchased = (dispatch, data) => {\n  const { redirect } = data;\n  if (redirect) {\n    trackClickEvent(URLS.ALREADY_PURCHASED, 'Go to Dashboard', 'true');\n    setTimeout(() => {\n      set(dispatch, {}, ACTIONS.ALREADY_PURCHASED, false);\n      document.location = getCompanyUrl();\n    }, 1000);\n  } else {\n    set(dispatch, {}, ACTIONS.ALREADY_PURCHASED, false);\n  }\n};\n\nexport const setWebsiteNotPurchased = (dispatch, data) => {\n  const { redirect } = data;\n  if (redirect) {\n    trackClickEvent(URLS.WEBSITE_NOT_PURCHASED, 'Go to Dashboard', 'true');\n    setTimeout(() => {\n      set(dispatch, {}, ACTIONS.WEBSITE_NOT_PURCHASED, false);\n      document.location = getCompanyUrl();\n    }, 1000);\n  } else {\n    set(dispatch, {}, ACTIONS.WEBSITE_NOT_PURCHASED, false);\n  }\n};\n\nexport const setChooseInterval = (dispatch, data) => {\n  const { yearlyInterval } = data;\n  _assign(smbEcommAddonData, { yearlyInterval });\n  trackClickEvent(URLS.CHOOSE_INTERVAL, yearlyInterval ? 'Pay yearly' : 'Pay monthly', yearlyInterval ? 'true' : 'false');\n  set(dispatch, data, ACTIONS.CHOOSE_INTERVAL, true);\n};\n\n\nexport const setComplete = (dispatch, data) => {\n  const { redirect } = data;\n  if (smbEcommAddonData.isUpgrade) {\n    set(dispatch, {}, ACTIONS.COMPLETE, true);\n    // eslint-disable-next-line max-len\n    document.location = `/mfe/websites/postpublish?external_uid=${smbEcommAddonData.externalUid}&accountname=${smbEcommAddonData.accountName}&sitename=${smbEcommAddonData.siteName}&planid=${smbEcommAddonData.planId}&from_entitled=${smbEcommAddonData.fromEntitled}&can_upgrade=true`;\n  } else if (smbEcommAddonData.fromPublish) {\n    set(dispatch, {}, ACTIONS.COMPLETE, true);\n    document.location = `/mfe/websites/postpublish?external_uid=${smbEcommAddonData.externalUid}&accountname=${smbEcommAddonData.accountName}&sitename=${smbEcommAddonData.siteName}&planid=${smbEcommAddonData.planId}`;\n  } else if (redirect) {\n    trackClickEvent(URLS.COMPLETE, 'Go to Dashboard', 'true');\n    setTimeout(() => {\n      set(dispatch, {}, ACTIONS.COMPLETE, true);\n      document.location = getCompanyUrl();\n    }, 2000);\n  } else {\n    set(dispatch, {}, ACTIONS.COMPLETE, false);\n  }\n};\n\nconst selectBrowserUrl = (alreadyPurchased, websiteNotPurchased) => {\n  if (alreadyPurchased) {\n    browserHistory.replace(`/${URLS.BASE}/${URLS.ALREADY_PURCHASED}`);\n  } else if (websiteNotPurchased) {\n    browserHistory.replace(`/${URLS.BASE}/${URLS.WEBSITE_NOT_PURCHASED}`);\n  } else {\n    browserHistory.replace(`/${URLS.BASE}/${URLS.CHOOSE_INTERVAL}`);\n  }\n};\n\n\nexport const setInit = (dispatch, data) => {\n  const { alreadyPurchased, websiteNotPurchased, companyId, fromPublish, isUpgrade, externalUid, accountName, siteName, planId, fromEntitled } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(smbEcommAddonData, { companyId, alreadyPurchased, websiteNotPurchased, fromPublish, isUpgrade, externalUid, accountName, siteName, planId, fromEntitled });\n  set(dispatch, data, ACTIONS.INIT, false);\n  selectBrowserUrl(alreadyPurchased, websiteNotPurchased);\n};\n\nexport const setPayment = (dispatch, data) => {\n  trackClickEvent(URLS.PAYMENT, 'Place Your Order', 'true');\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nconst createSMBEcommAddonOrder = (dispatch, reducerData, accountId) => {\n  registrationService.createSMBEcommAddon(reducerData, accountId).then((response) => {\n    const { smbEcommAddon: { yearlyInterval } } = reducerData;\n    const price = yearlyInterval ? getSMBEcommAddonYearlyPrice() : getSMBEcommAddonMonthlyPrice();\n    const addlData = createAdditionalData('smb_ecomm_addon', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'smb_ecomm_addon', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\n\nexport const createOrder = (dispatch, reducerData, accountId) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { smbEcommAddon } = reducerData,\n    { cardToken, expMonth, expYear, cvc, brand, last4 } = smbEcommAddon;\n\n  if (!cardToken) {\n    createSMBEcommAddonOrder(dispatch, reducerData, accountId);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createSMBEcommAddonOrder(dispatch, reducerData, accountId);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setAlreadyPurchased,\n  setWebsiteNotPurchased,\n  setChooseInterval,\n  setComplete,\n  setInit,\n  setPayment,\n  resetAllData\n};\n","import { URLS } from '../../../constants/complete_nypub';\nimport { OrderTypes, isOrderCompleteByType } from '../../../utils/OrderUtils';\n\nconst\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing } = registration.businessAddresses,\n      flowItems = [];\n\n    flowItems.push(URLS.PHYS_ADDR);\n    if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n    return flowItems;\n  },\n  getPostPrincipalsFlowOrder = (url, registration) => {\n    const\n      { page } = registration,\n      { forceToMembers, forceToManagers } = page,\n      flowItems = [];\n\n    if (forceToMembers || forceToManagers) {\n      flowItems.push(URLS.DATA_CONFIRM);\n    } else {\n      flowItems.push(URLS.REG_AGT);\n      if (url === URLS.PRIM_CONTACT) {\n        flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.PRIM_CONTACT, URLS.DATA_CONFIRM);\n      } else {\n        flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.DATA_CONFIRM);\n      }\n    }\n    if (forceToMembers) {\n      flowItems.push(URLS.LLC_MBR_COUNT);\n    } else if (forceToManagers) {\n      flowItems.push(URLS.LLC_MGR_OPT);\n    }\n    flowItems.push(URLS.SHARE, URLS.COMPLETE);\n    return flowItems;\n  },\n  getLLCFlowOrder = (url, registration) => {\n    const { manager, page } = registration;\n    const { managerType } = manager;\n    const { forceToMembers, forceToManagers } = page;\n\n    const flowItems = [ URLS.LLC_MBR_COUNT, URLS.LLC_MBR_LIST ];\n\n    if (url === URLS.LLC_MBR_LIST && forceToMembers) {\n      flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n      return flowItems;\n    }\n\n    flowItems.push(URLS.LLC_MGR_OPT);\n    if (managerType === 'SomeOwners' || managerType === 'SomeManagers') {\n      flowItems.push(URLS.LLC_BUS_RUN);\n    }\n    if (managerType === 'SomeManagers' || managerType === 'AllManagers') {\n      flowItems.push(URLS.LLC_MGR_COUNT, URLS.LLC_MGR_LIST);\n    }\n    if (url === URLS.LLC_MGR_LIST && forceToManagers) {\n      flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n      return flowItems;\n    }\n\n    flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n\n    return flowItems;\n  },\n  /* eslint-disable max-statements */\n  getFlowOrder = (url, registration) => {\n    const { business } = registration;\n    const { businessOrderType } = business;\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    if (isOrderCompleteByType(businessOrderType, OrderTypes.NY_PUBLICATION)) {\n      return [ URLS.START ];\n    }\n\n    if (businessOrderType === OrderTypes.EIN || businessOrderType === OrderTypes.BUSINESS_LICENSE_REPORT) {\n      return [ URLS.START, ...getLLCFlowOrder(url, registration)];\n    }\n\n    return [ URLS.START, URLS.BUS_DESC, ...getAddressFlow(url, registration), ...getLLCFlowOrder(url, registration) ];\n  };\n  /* eslint-enable max-statements */\n\nexport default {\n  getPostPrincipalsFlowOrder,\n  getLLCFlowOrder,\n  getFlowOrder\n};\n","import { getCompleteNYPubFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteNYPubFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/complete_nypub';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as managerKey } from '../../reducers/registration/managers';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { registrationService } from '../../services';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlows from './flows';\n\nconst\n  defaultBusinessData = { type: 'LLCX', id: '', businessOrderType: '', domesticJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultManagerData = { managerType: '' },\n  managerData = getReducerSnapshot(managerKey, defaultManagerData),\n  defaultPageData = { forceToMembers: false, forceToManagers: false, forceToPayment: false, forceToContact: false },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  // This is a reduced flow for analyzing the data confirmation.\n  /* eslint-disable max-statements */\n  getFlowOrder = (url) => {\n    const registration = {\n      business: businessData,\n      businessAddresses: businessAddressesData,\n      manager: managerData,\n      page: pageData\n    };\n    return getFlows(url, registration);\n  },\n  go = (jump) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    if (jumpIndex < 0) {\n      if (!isLoggedIn()) {\n        document.location = getAppEntryPoint();\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(managerData, getReducerSnapshot(managerKey, defaultManagerData));\n    _assign(pageData, getReducerSnapshot(pageKey, defaultPageData));\n  };\n\nexport const getEntryPoint = (fromBack) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index = fromBack ? flow.length - 1 : 0;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const getNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n\n  const flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        return { isDashboard: true, url: `/${COMPANY_URLS.BASE}/${businessData.id}` };\n      }\n      return { isDashboard: true, url: `/${DASHBOARD_URLS.BASE}` };\n    }\n    return { isDasboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n\n  const flowOrder = getFlowOrder(location);\n  const index = _indexOf(flowOrder, location);\n  const jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const goToPrimaryContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRIM_CONTACT, URLS.PRIM_CONTACT);\n};\n\nexport const setAddressesModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.ADDR_MODAL, false);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, false);\n};\n\nexport const setBusinessModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_MODAL, false);\n};\n\nexport const setChoosePrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRIM_CONTACT, false);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.COMPLETE, true);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  pageData.forceToDataConfirmation = data.forceToDataConfirmation;\n  pageData.forceToMembers = data.forceToMembers;\n  pageData.forceToManagers = data.forceToManagers;\n  pageData.forceToContact = data.forceToContact;\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, false);\n};\n\nexport const setLLCBusinessRunners = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_BUS_RUN, false);\n};\n\nexport const setLLCManagerCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_COUNT, false);\n};\n\nexport const setLLCManagerList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST, false);\n};\n\nexport const setLLCManagerListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST_MODAL, false);\n};\n\nexport const setLLCManagerOption = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT, false);\n};\n\nexport const setLLCManagerOptionModal = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT_MODAL, false);\n};\n\nexport const setLLCMemberCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_COUNT, false);\n};\n\nexport const setLLCMemberList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST, false);\n};\n\nexport const setLLCMemberListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST_MODAL, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setMailingAddressModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR_MODAL, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPhysicalAddressModal = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR_MODAL, false);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, false);\n};\n\nexport const setPrimaryContactModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT_MODAL, false);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, false);\n};\n\nexport const setPrincipalAddressModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR_MODAL, false);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT, false);\n};\n\nexport const setRegisteredAgentModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT_MODAL, false);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n};\n\nexport const updateContacts = (dispatch, data) => {\n  const { contactType } = data;\n  const type = {\n    member: 'UPDATE_MBR',\n    manager: 'UPDATE_MGR',\n    director: 'UPDATE_DIR',\n    officer: 'UPDATE_OFC'\n  };\n  const action = type[contactType || ''];\n  if (action) set(dispatch, data, ACTIONS[action], false);\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, advance) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService.updateNyPubLLC(reducerData, filingFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const setAccountOwnerData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_DATA, false);\n};\n\nexport const setContactData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_DATA, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  updateSnapshots();\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  goToPrimaryContact,\n  setAddressesModal,\n  setBusinessDescription,\n  setBusinessModal,\n  setChoosePrimaryContact,\n  setComplete,\n  setDataConfirmation,\n  setLLCBusinessRunners,\n  setLLCManagerCount,\n  setLLCManagerList,\n  setLLCManagerListModal,\n  setLLCManagerOption,\n  setLLCManagerOptionModal,\n  setLLCMemberCount,\n  setLLCMemberList,\n  setLLCMemberListModal,\n  setMailingAddress,\n  setPhysicalAddress,\n  setPrimaryContact,\n  setPrimaryContactModal,\n  setPrincipalAddress,\n  setRegisteredAgent,\n  setRegisteredAgentModal,\n  setShare,\n  setStart,\n  updateContacts,\n  updateOrder,\n  resetAllData\n};\n","import { URLS } from '../../../constants/complete_blr';\n\nconst\n  getBLRDataFlowOrder = (url, registration) => {\n    const\n      { blr } = registration,\n      { hasEmployees } = blr,\n      flowItems = [\n        URLS.BUS_AT_HOME,\n        URLS.BUS_INDUSTRY,\n        URLS.HAS_EMPLOYEES\n      ];\n\n    if (url === URLS.EMPL_COUNT || hasEmployees) {\n      flowItems.push(URLS.EMPL_COUNT);\n    }\n    flowItems.push(URLS.HAS_DBAS);\n    return flowItems;\n  },\n\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing } = registration.businessAddresses,\n      flowItems = [];\n\n    flowItems.push(URLS.PHYS_ADDR);\n    if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getCorpFlowOrder = (url, registration) => {\n    const\n      { officer } = registration,\n      flowItems = [ URLS.CORP_DIR_COUNT, URLS.CORP_DIR_LIST ],\n      { hasAsstSecretary, hasVicePresident } = officer;\n\n    flowItems.push(URLS.CORP_CHOOSE_PRES);\n    if (url === URLS.CORP_PRES) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_PRES);\n    }\n    flowItems.push(URLS.CORP_HAS_VP);\n    if (hasVicePresident) {\n      flowItems.push(URLS.CORP_CHOOSE_VP);\n      if (url === URLS.CORP_VP) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_VP);\n      }\n    }\n    flowItems.push(URLS.CORP_CHOOSE_TRSR);\n    if (url === URLS.CORP_TRSR) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_TRSR);\n    }\n    flowItems.push(URLS.CORP_CHOOSE_SEC);\n    if (url === URLS.CORP_SEC) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_SEC);\n    }\n    flowItems.push(URLS.CORP_HAS_ASST_SEC);\n    if (hasAsstSecretary) {\n      flowItems.push(URLS.CORP_CHOOSE_ASST_SEC);\n      if (url === URLS.CORP_ASST_SEC) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_ASST_SEC);\n      }\n    }\n\n    flowItems.push(URLS.REG_AGT);\n    if (url === URLS.PRIM_CONTACT) {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.PRIM_CONTACT);\n    } else {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    }\n    flowItems.push(URLS.AUTH_SIG);\n\n    return flowItems;\n  },\n\n  /* eslint-enable max-statements */\n  getLLCFlowOrder = (url, registration) => {\n    const\n      { manager } = registration,\n      flowItems = [ URLS.LLC_MBR_COUNT, URLS.LLC_MBR_LIST ],\n      { managerType } = manager;\n\n    flowItems.push(URLS.LLC_MGR_OPT);\n    if (managerType === 'SomeOwners' || managerType === 'SomeManagers' || managerType === '') {\n      flowItems.push(URLS.LLC_BUS_RUN);\n    }\n    if (managerType === 'SomeManagers' || managerType === 'AllManagers' || managerType === '') {\n      flowItems.push(URLS.LLC_MGR_COUNT, URLS.LLC_MGR_LIST);\n    }\n\n    flowItems.push(URLS.REG_AGT);\n    if (url === URLS.PRIM_CONTACT) {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.PRIM_CONTACT);\n    } else {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    }\n    flowItems.push(URLS.AUTH_SIG);\n\n    return flowItems;\n  },\n\n  getNewCompanyFlow = (url, registration) => {\n    const\n      { business } = registration,\n      { type } = business,\n      flowItems = [];\n\n    if (type === 'CORP') {\n      flowItems.push(URLS.START_BUS_DATA, ...getAddressFlow(url, registration), ...getCorpFlowOrder(url, registration));\n    } else {\n      flowItems.push(URLS.START_BUS_DATA, ...getAddressFlow(url, registration), ...getLLCFlowOrder(url, registration));\n    }\n    flowItems.push(URLS.START_BLR_DATA, ...getBLRDataFlowOrder(url, registration), URLS.DATA_CONFIRM, URLS.SHARE, URLS.COMPLETE);\n    return flowItems;\n  },\n\n  getDashboardFlow = (url, registration) => {\n    return [ URLS.START_BLR_DATA, ...getBLRDataFlowOrder(url, registration), URLS.DATA_CONFIRM, URLS.SHARE, URLS.COMPLETE ];\n  },\n\n  /* eslint-disable max-statements */\n  getFlowOrder = (url, registration) => {\n    const\n      { blr } = registration,\n      { existingCompany } = blr;\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    if (existingCompany) {\n      return getDashboardFlow(url, registration);\n    }\n    return getNewCompanyFlow(url, registration);\n  };\n  /* eslint-enable max-statements */\n\nexport default {\n  getFlowOrder\n};\n","import { getCompleteWFGFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteWFGFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getEntryPoint as getPostPurchaseEntryPoint } from '../purchase_post_addons';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/complete_blr';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as blrKey } from '../../reducers/registration/blr';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as managerKey } from '../../reducers/registration/managers';\nimport { storageKey as officerKey } from '../../reducers/registration/officers';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { storageKey as registeredAgentKey } from '../../reducers/registration/registeredAgent';\nimport { registrationService, orderService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlows from './flows';\n\nconst\n  defaultBlrData = { existingCompany: false, skipBlr: false },\n  blrData = getReducerSnapshot(blrKey, defaultBlrData),\n  defaultBusinessData = { type: 'LLCX', id: '', businessOrderType: '', addressMatch: false, addressIsGoogle: false, domesticJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultManagerData = { managerType: '' },\n  managerData = getReducerSnapshot(managerKey, defaultManagerData),\n  defaultOfficerData = { hasAsstSecretary: false, hasVicePresident: false },\n  officerData = getReducerSnapshot(officerKey, defaultOfficerData),\n  defaultPageData = { forceToMembers: false, forceToManagers: false, forceToDirectors: false, forceToOfficers: false, forceToPayment: false, forceToContact: false, registrationFlow: '' },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  defaultRegisteredAgentData = { forceContact: false, forcePerson: false },\n  registeredAgentData = getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData),\n\n  getFlowOrder = (url) => {\n    const registration = {\n      blr: blrData,\n      business: businessData,\n      businessAddresses: businessAddressesData,\n      manager: managerData,\n      officer: officerData,\n      page: pageData,\n      registeredAgent: registeredAgentData\n    };\n    return getFlows(url, registration);\n  },\n  go = (jump) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    if (jumpIndex < 0) {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[0]}`);\n    } else if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(blrData, getReducerSnapshot(blrKey, defaultBlrData));\n    _assign(managerData, getReducerSnapshot(managerKey, defaultManagerData));\n    _assign(officerData, getReducerSnapshot(officerKey, defaultOfficerData));\n    _assign(pageData, getReducerSnapshot(pageKey, defaultPageData));\n    _assign(registeredAgentData, getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData));\n  };\n\nexport const getEntryPoint = (fromBack, forLogin) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index1 = (fromBack && !blrData.skipBlr) ? flow.length - 1 : 0,\n    index = forLogin ? 1 : index1;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const getNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n\n  const\n    { registrationFlow } = pageData,\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'bl') {\n        if (businessData.id) {\n          return { isDashboard: true, url: `/${COMPANY_URLS.BASE}/${businessData.id}` };\n        }\n        return { isDashboard: true, url: `/${DASHBOARD_URLS.BASE}` };\n      }\n      return { isDashboard: false, url: getPostPurchaseEntryPoint() };\n    }\n    return { isDasboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n\n  const\n    { registrationFlow } = pageData,\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'bl') {\n        if (businessData.id) {\n          document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n        } else {\n          document.location = `/${DASHBOARD_URLS.BASE}`;\n        }\n      } else {\n        browserHistory.push(getPostPurchaseEntryPoint());\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const goToCorpAsstSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_ASST_SEC, URLS.CORP_ASST_SEC);\n};\n\nexport const goToCorpPresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_PRES, URLS.CORP_PRES);\n};\n\nexport const goToCorpSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_SEC, URLS.CORP_SEC);\n};\n\nexport const goToCorpTreasurer = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_TRSR, URLS.CORP_TRSR);\n};\n\nexport const goToCorpVicePresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_VP, URLS.CORP_VP);\n};\n\nexport const goToPrimaryContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRIM_CONTACT, URLS.PRIM_CONTACT);\n};\n\nexport const setAddressesModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ADDR_MODAL, false);\n};\n\nexport const setAuthorizedSignatory = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG, false);\n};\n\nexport const setAuthorizedSignatoryModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG_MODAL, false);\n};\n\nexport const setBusinessIndustry = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_INDUSTRY, false);\n};\n\nexport const setBusinessOutOfHome = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_AT_HOME, false);\n};\n\nexport const setChoosePrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRIM_CONTACT, false);\n};\n\nexport const setComplete = (dispatch) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, false);\n\n  document.location = businessData?.id\n    ? `/${COMPANY_URLS.BASE}/${businessData.id}/compliance/business-licenses`\n    : `/${DASHBOARD_URLS.BASE}`;\n};\n\nexport const setCorpAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_ASST_SEC, false);\n};\n\nexport const setCorpChooseAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_ASST_SEC, false);\n};\n\nexport const setCorpChoosePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_PRES, false);\n};\n\nexport const setCorpChooseSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_SEC, false);\n};\n\nexport const setCorpChooseTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_TRSR, false);\n};\n\nexport const setCorpChooseVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_VP, false);\n};\n\nexport const setCorpDirectorCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_COUNT, false);\n};\n\nexport const setCorpDirectorList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_LIST, false);\n};\n\nexport const setCorpDirectorListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_LIST_MODAL, false);\n};\n\nexport const setCorpHasAsstSecretary = (dispatch, data) => {\n  officerData.hasAsstSecretary = data.hasAsstSecretary;\n  set(dispatch, data, ACTIONS.CORP_HAS_ASST_SEC, false);\n};\n\nexport const setCorpHasVicePresident = (dispatch, data) => {\n  officerData.hasVicePresident = data.hasVicePresident;\n  set(dispatch, data, ACTIONS.CORP_HAS_VP, false);\n};\n\nexport const setCorpOfficerListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_OFF_LIST_MODAL, false);\n};\n\nexport const setCorpPresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_PRES, false);\n};\n\nexport const setCorpSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_SEC, false);\n};\n\nexport const setCorpTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_TRSR, false);\n};\n\nexport const setCorpVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_VP, false);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, false);\n};\n\nexport const setEmployeesCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMPL_COUNT, false);\n};\n\nexport const setHasDBAs = (dispatch, data) => {\n  blrData.hasDBAs = data.hasDBAs;\n  set(dispatch, data, ACTIONS.HAS_DBAS, false);\n};\n\nexport const setHasEmployees = (dispatch, data) => {\n  blrData.hasEmployees = data.hasEmployees;\n  set(dispatch, data, ACTIONS.HAS_EMPLOYEES, false);\n};\n\nexport const setLLCBusinessRunners = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_BUS_RUN, false);\n};\n\nexport const setLLCManagerCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_COUNT, false);\n};\n\nexport const setLLCManagerList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST, false);\n};\n\nexport const setLLCManagerListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST_MODAL, false);\n};\n\nexport const setLLCManagerOption = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT, false);\n};\n\nexport const setLLCManagerOptionModal = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT_MODAL, false);\n};\n\nexport const setLLCMemberCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_COUNT, false);\n};\n\nexport const setLLCMemberList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST, false);\n};\n\nexport const setLLCMemberListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST_MODAL, false);\n};\n\nexport const setLicenseDataModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LIC_DATA_MODAL, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, false);\n};\n\nexport const setPrimaryContactModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT_MODAL, false);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT, false);\n};\n\nexport const setRegisteredAgentModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT_MODAL, false);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n};\n\nexport const setStartBlrData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START_BLR_DATA, true);\n};\n\nexport const setStartBusData = (dispatch, data) => {\n  updateSnapshots();\n  set(dispatch, data, ACTIONS.START_BUS_DATA, true);\n};\n\nexport const updateContacts = (dispatch, data) => {\n  const { contactType } = data;\n  const type = {\n    member: 'UPDATE_MBR',\n    manager: 'UPDATE_MGR',\n    director: 'UPDATE_DIR',\n    officer: 'UPDATE_OFC'\n  };\n  const action = type[contactType || ''];\n  if (action) set(dispatch, data, ACTIONS[action], false);\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, advance, blrOrderTaskUuid) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n\n  const handleCatchError = (err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  };\n\n  const handleUpdateResponse = (response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1);\n    }\n  };\n\n  registrationService.updateBusinessLicense(reducerData, filingFees)\n    .then((response) => {\n      if (!blrOrderTaskUuid) {\n        handleUpdateResponse(response);\n        return;\n      }\n      orderService.updateOrderTaskStatus(blrOrderTaskUuid, 'pending')\n        .then(() => {\n          handleUpdateResponse(response);\n        }).catch(handleCatchError);\n    })\n    .catch(handleCatchError);\n\n};\n\nexport const setWillMarkOrderCompleted = (dispatch, payload) => {\n  dispatch({\n    type: ORDER_ACTIONS.WILL_MARK_ORDER_COMPLETED,\n    payload\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  goToCorpAsstSecretary,\n  goToCorpPresident,\n  goToCorpSecretary,\n  goToCorpTreasurer,\n  goToCorpVicePresident,\n  goToPrimaryContact,\n  setAddressesModal,\n  setAuthorizedSignatory,\n  setAuthorizedSignatoryModal,\n  setBusinessIndustry,\n  setBusinessOutOfHome,\n  setChoosePrimaryContact,\n  setComplete,\n  setCorpAsstSecretary,\n  setCorpChooseAsstSecretary,\n  setCorpChoosePresident,\n  setCorpChooseSecretary,\n  setCorpChooseTreasurer,\n  setCorpChooseVicePresident,\n  setCorpDirectorCount,\n  setCorpDirectorList,\n  setCorpDirectorListModal,\n  setCorpHasAsstSecretary,\n  setCorpHasVicePresident,\n  setCorpPresident,\n  setCorpSecretary,\n  setCorpTreasurer,\n  setCorpVicePresident,\n  setDataConfirmation,\n  setEmployeesCount,\n  setHasDBAs,\n  setHasEmployees,\n  setLLCBusinessRunners,\n  setLLCManagerCount,\n  setLLCManagerList,\n  setLLCManagerListModal,\n  setLLCManagerOption,\n  setLLCManagerOptionModal,\n  setLLCMemberCount,\n  setLLCMemberList,\n  setLLCMemberListModal,\n  setLicenseDataModal,\n  setMailingAddress,\n  setPhysicalAddress,\n  setPrimaryContact,\n  setPrimaryContactModal,\n  setRegisteredAgent,\n  setRegisteredAgentModal,\n  setShare,\n  setStartBlrData,\n  setStartBusData,\n  setWillMarkOrderCompleted,\n  updateContacts,\n  updateOrder,\n  resetAllData\n};\n","import { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS } from '../../constants/register_initialcpascreening';\nimport logger from '../../utils/ClientLogger';\nimport { orderService, registrationService } from '../../services';\nimport { trackEvent } from '../../utils/ThirdPartyTracking';\n\nexport const createOrder = (dispatch, jurisdiction, companyId, accountId, returnTo) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER,\n    payload: {\n      data: {\n        jurisdiction,\n        companyId,\n        accountId\n      }\n    }\n  });\n\n  registrationService.createInitialCPAScreening(jurisdiction, companyId, accountId).then((response) => {\n    trackEvent('Purchase', 'complete', 'initial_cpa_screening');\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          jurisdiction,\n          companyId\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      document.location = returnTo || `/${COMPANY_URLS.BASE}/${companyId}/orders`;\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport default {\n  createOrder\n};\n","import { URLS } from '../../../constants/register_domain_v2';\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = () => {\n    const flow = [URLS.DOMAIN_NAMES];\n\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterDomainV2Id } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterDomainV2Id()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_domain_v2';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as domainNameKey } from '../../reducers/registration/domainV2';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\n\nconst\n  defaultDomainNameData = { companyId: '', companyCount: 0 },\n  domainNameData = getReducerSnapshot(domainNameKey, defaultDomainNameData),\n  defaultPurchaseData = { domainNamePrivacy: null, basicEmail: null },\n  purchaseData = getReducerSnapshot(purchaseKey, defaultPurchaseData),\n  businessData = getReducerSnapshot(businessKey, { isSimulated: false }),\n  getFlowOrder = (url) => {\n    const registration = {\n      domainName: domainNameData,\n      purchase: purchaseData,\n      business: businessData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (domainNameData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${domainNameData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.DOMAIN_NAMES,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(domainNameData, defaultDomainNameData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setDomainNamePrimary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DOMAIN_NAME, true);\n};\n\nexport const setDomainNames = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DOMAIN_NAMES, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(domainNameData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.DOMAIN_NAMES}`);\n};\n\nexport const setProductConfirmation = (dispatch, data) => {\n  purchaseData.basicEmail = data.basicEmail;\n  purchaseData.domainNamePrivacy = data.domainNamePrivacy;\n  set(dispatch, data, ACTIONS.PRODUCT_CONFIRM, true);\n};\n\nexport const createDomainNameOrderV2 = (data) => {\n  registrationService.createDomainNameV2(true, domainNameData.companyId, data.primary, data.orderUuid).then(() => {\n    // Pass the domain name to the domain success page so we can display it\n    window.location.href = `/mfe/websites/domainname-registration-v2/success?domain=${data.primary}`;\n  }).catch((err) => {\n    logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  setComplete,\n  setDomainNamePrimary,\n  setInit,\n  createDomainNameOrderV2,\n  setProductConfirmation,\n  resetAllData\n};\n","import { URLS } from '../../../constants/complete_dbaentity';\n\nconst\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing } = registration.businessAddresses,\n      flowItems = [];\n\n    flowItems.push(URLS.PHYS_ADDR);\n    if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n    return flowItems;\n  },\n\n  getFlowOrder = (url, registration) => {\n    const\n      { dbaEntity, purchase } = registration,\n      flowItems = [\n        URLS.START,\n        URLS.BUS_DESC,\n        ...getAddressFlow(url, registration)],\n      { hasEIN, parentType } = dbaEntity,\n      { ein } = purchase;\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    if (parentType !== 'sole') {\n      flowItems.push(URLS.REG_AGT, URLS.OWNER_COUNT);\n    }\n    flowItems.push(URLS.OWNERS);\n    if (parentType !== 'sole') {\n      flowItems.push(URLS.STATE_FILING);\n    }\n    if (!ein) {\n      flowItems.push(URLS.HAS_EIN);\n      if (hasEIN) {\n        flowItems.push(URLS.EIN);\n      }\n    }\n    flowItems.push(URLS.AUTH_SIG, URLS.DATA_CONFIRM);\n    if (!ein) {\n      flowItems.push(URLS.SHARE, URLS.COMPLETE);\n    }\n    return flowItems;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getCompleteLLCFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteLLCFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getEntryPoint as getEINEntryPoint } from '../complete_ein';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/complete_dbaentity';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as dbaEntityKey } from '../../reducers/registration/dbaEntity';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\n\nconst\n  defaultBusinessData = { id: '' },\n  defaultDBAEntityData = { domesticEntity: null, hasEIN: null, parentType: '' },\n  dbaEntityData = getReducerSnapshot(dbaEntityKey, defaultDBAEntityData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultPurchaseData = { ein: null },\n  purchaseData = getReducerSnapshot(purchaseKey, defaultPurchaseData),\n\n  getFlowOrder = (url) => {\n    const\n      registration = {\n        business: businessData,\n        businessAddresses: businessAddressesData,\n        dbaEntity: dbaEntityData,\n        purchase: purchaseData\n      },\n      flow = getFlow(url, registration);\n\n    return flow;\n  },\n  goInFlowOrder = (flowOrder, jumpIndex) => {\n    const\n      { ein } = purchaseData,\n      { id } = businessData;\n\n    if (jumpIndex < 0) {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[0]}`);\n    } else if (jumpIndex >= flowOrder.length) {\n      if (ein) {\n        browserHistory.push(getEINEntryPoint());\n      } else if (id) {\n        document.location = `/${COMPANY_URLS.BASE}/${id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(dbaEntityData, getReducerSnapshot(dbaEntityKey, defaultDBAEntityData));\n    _assign(purchaseData, getReducerSnapshot(purchaseKey, defaultPurchaseData));\n  },\n  go = (jump) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2);\n    if (url === URLS.COMPLETE) {\n      updateSnapshots();\n    }\n    const  flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    goInFlowOrder(flowOrder, jumpIndex);\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1);\n    }\n  };\n\nexport const getEntryPoint = (fromBack) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index = fromBack ? flow.length - 1 : 0;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nexport const getCompleteEntryPoint = () => {\n  return `/${URLS.BASE}/${URLS.SHARE}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const getNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1,\n    { ein } = purchaseData,\n    { id } = businessData;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (ein) {\n        return { isDashboard: false, url: getEINEntryPoint() };\n      }\n      if (id) {\n        return { isDashboard: true, url: `/${COMPANY_URLS.BASE}/${id}` };\n      }\n      return { isDashboard: true, url: `/${DASHBOARD_URLS.BASE}` };\n    }\n    return { isDashboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    goInFlowOrder(flowOrder, jumpIndex);\n    return true;\n  }\n  return false;\n};\n\nexport const setAllAddressesModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  set(dispatch, data, ACTIONS.ADDR_MODAL, false);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, false);\n};\n\nexport const setBusinessModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_MODAL, false);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.COMPLETE, true);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, false);\n};\n\nexport const setDBAModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DBA_MODAL, false);\n};\n\nexport const setDomesticEntity = (dispatch, data) => {\n  dbaEntityData.domesticEntity = data.domesticEntity;\n  set(dispatch, data, ACTIONS.DOM_ENTITY, false);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DOM_JUR, false);\n};\n\nexport const setEIN = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EIN, false);\n};\n\nexport const setHasEIN = (dispatch, data) => {\n  dbaEntityData.hasEIN = data.hasEIN;\n  set(dispatch, data, ACTIONS.HAS_EIN, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setOwnerCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.OWNER_COUNT, false);\n};\n\nexport const setOwnersModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.OWNER_MODAL, false);\n};\n\nexport const setOwners = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.OWNERS, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, false);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT, false);\n};\n\nexport const setRegisteredAgentModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT_MODAL, false);\n};\n\nexport const setRegistrationModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_MODAL, false);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n};\n\nexport const setAuthorizedSignatory = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG, false);\n};\n\nexport const setAuthorizedSignatoryModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG_MODAL, false);\n};\n\n\nexport const setStart = (dispatch, data) => {\n  updateSnapshots();\n  set(dispatch, data, ACTIONS.START, data.forward);\n};\n\nexport const setStateFiling = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.STATE_FILING, false);\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, advance) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService.updateDBAEntity(reducerData, filingFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport default {\n  getEntryPoint,\n  getCompleteEntryPoint,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  setAllAddressesModal,\n  setBusinessDescription,\n  setBusinessModal,\n  setComplete,\n  setDataConfirmation,\n  setDBAModal,\n  setDomesticEntity,\n  setDomesticJurisdiction,\n  setEIN,\n  setHasEIN,\n  setMailingAddress,\n  setOwnerCount,\n  setOwnersModal,\n  setOwners,\n  setPhysicalAddress,\n  setPrincipalAddress,\n  setRegisteredAgent,\n  setRegisteredAgentModal,\n  setRegistrationModal,\n  setShare,\n  setStart,\n  setStateFiling,\n  updateOrder\n};\n","import { URLS } from '../../../constants/register_basicemail';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n\n    const\n      { domainName } = registration,\n      { companyCount, emailInPlan } = domainName,\n      flow = [ URLS.START ];\n\n    if (emailInPlan) {\n      return [ URLS.EMAIL_ADDRESS, URLS.PAYMENT, URLS.COMPLETE ];\n    }\n    if (companyCount > 1) {\n      flow.push(URLS.CHOOSE_COMPANY);\n    }\n    flow.push(URLS.EMAIL_ADDRESS, URLS.PAYMENT, URLS.COMPLETE);\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_basicemail';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as domainNameKey } from '../../reducers/registration/domainName';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getBasicEmailYearlyPrice } from '../../utils/ProductService';\n\nconst\n  defaultDomainNameData = { companyId: '', companyCount: 0, emailInPlan: false },\n  domainNameData = getReducerSnapshot(domainNameKey, defaultDomainNameData),\n  getFlowOrder = (url) => {\n    const registration = {\n      domainName: domainNameData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (domainNameData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${domainNameData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(domainNameData, defaultDomainNameData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setBasicEmailAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMAIL_ADDRESS, true);\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(domainNameData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount, emailInPlan = false } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(domainNameData, { companyId, companyCount, emailInPlan });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createBasicEmailOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createBasicEmail(reducerData, accountId, filingFees).then((response) => {\n    const price = getBasicEmailYearlyPrice();\n    const addlData = createAdditionalData('basic_email', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'basic_email', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { domainName } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = domainName;\n\n  if (!cardToken) {\n    createBasicEmailOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createBasicEmailOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setBasicEmailAddress,\n  setChooseCompany,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","/* eslint-disable no-dupe-class-members */\nimport _snakeCase from 'lodash/snakeCase';\nimport { getVisitUUID } from '../../utils/VisitorCookie';\nimport { registrationService } from '../../services';\nimport logger from '../../utils/ClientLogger';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\n\n\nclass LeadManager {\n  constructor(actions) {\n    this.#ACTIONS = actions;\n    this.#data = {};\n  }\n\n#ACTIONS = {};\n\n\n#data = {};\n\n\n#getLeadInfo() {\n  return {\n    ...this.#data,\n    visit_uuid: getVisitUUID()\n  };\n}\n\n#setData(data) {\n  this.#data = Object.keys(data)\n    .reduce((current, key) => {\n      return { ...current, [_snakeCase(key)]: data[key] };\n    }, { lead_source: window.zenIsMobile ? 'mobile' : 'web' });\n}\n\n#createLead(dispatch) {\n  const lead = this.#getLeadInfo();\n  registrationService.createLead(lead).then((response) => {\n    logger.logAction(this.#ACTIONS.CREATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: this.#ACTIONS.CREATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(this.#ACTIONS.CREATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: this.#ACTIONS.CREATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'serverError',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n}\n\n#updateLead(dispatch) {\n  const frontEndLead = this.#getLeadInfo(),\n    { leadUUID } = getReducerSnapshot('registration/lead', {});\n  logger.logAction(this.#ACTIONS.UPDATE_LEAD);\n  dispatch({\n    type: this.#ACTIONS.UPDATE_LEAD\n  });\n    // Send update with just the minimum changed info (phone/email) & required fields\n  const lead = {\n    lead_phone: frontEndLead.phone || '',\n    lead_source: frontEndLead.lead_source,\n    lead_email: frontEndLead.email,\n    lead_first_name: frontEndLead.first_name,\n    lead_last_name: frontEndLead.last_name\n  };\n  registrationService.updateLead(leadUUID, lead).then((response) => {\n    logger.logAction(this.#ACTIONS.UPDATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: this.#ACTIONS.UPDATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    console.error('ERROR! The following content was not sufficient to update a lead: ', lead);\n    logger.error(this.#ACTIONS.UPDATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: this.#ACTIONS.UPDATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n}\n\nsetLead(dispatch, createOrUpdateLead, data) {\n  this.#setData(data);\n  if (createOrUpdateLead && createOrUpdateLead === 'create') {\n    this.#createLead(dispatch);\n  } else if (createOrUpdateLead === 'update') {\n    this.#updateLead(dispatch);\n  }\n}\n}\n\nexport default LeadManager;\n","import _assign from 'lodash/assign';\nimport { browserHistory } from 'react-router';\nimport _get from 'lodash/get';\n\nimport { ACTIONS, URLS } from '../../constants/amendment';\nimport { accountService, businessEntityService, amendmentService, orderService, registrationService } from '../../services';\nimport logger from '../../utils/ClientLogger';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { setAppEntryPoint } from '../initialization';\nimport { getAmendmentPrice } from '../../utils/ProductService';\n\nconst createAmendmentOrder = (dispatch, reducerData, accountId, filingFees, fieldInfo) => {\n  registrationService.createAmendment(reducerData, accountId, filingFees, fieldInfo).then((response) => {\n    const price = getAmendmentPrice();\n    const addlData = createAdditionalData('amendment', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'annual_report', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      browserHistory.push(`/${URLS.BASE}/${URLS.ORDER_SUBMITTED}`);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nconst formFieldInfo = (rules, companyType) => {\n  const fieldInfo = {\n    name: {\n      isEditable: Boolean(rules.amendment),\n      requiresAmendment: Boolean(rules.amendment)\n    },\n    business_purpose: {},\n    structure: {},\n    managers: {},\n    members: {},\n    directors: {},\n    officers: {},\n    addresses: {},\n    stock_info: {},\n    authorized_signatory: {},\n    showWebFileId: false,\n    showMakesLessThanAmount: false\n  };\n\n  if (companyType === 'llc') {\n    fieldInfo.directors = null;\n    fieldInfo.officers = null;\n    fieldInfo.stock_info = null;\n  } else {\n    fieldInfo.structure = null;\n    fieldInfo.managers = null;\n    fieldInfo.members = null;\n  }\n\n\n  Object.keys(rules.annual_report).forEach((fieldKey) => {\n    if (fieldKey === 'makes_less_than_amount') {\n      fieldInfo.showMakesLessThanAmount = rules.annual_report.makes_less_than_amount;\n      return null;\n    }\n    if (fieldKey === 'web_file_id') {\n      fieldInfo.showWebFileId = rules.amendment[fieldKey];\n    }\n    if (!rules.amendment) {\n      fieldInfo[fieldKey] = {\n        canFileAnnualReport: rules.annual_report[fieldKey],\n        isEditable: rules.annual_report[fieldKey],\n        requiresAmendment: !rules.annual_report[fieldKey] && rules.amendment[fieldKey]\n      };\n      return null;\n    }\n    fieldInfo[fieldKey] = {\n      canFileAnnualReport: true,\n      isEditable: rules.amendment[fieldKey],\n      requiresAmendment: !rules.annual_report[fieldKey] && rules.amendment[fieldKey]\n    };\n\n    return null;\n  });\n\n  return fieldInfo;\n};\n\nconst set = (dispatch, data, actionKey) => {\n  logger.logAction(actionKey, data);\n  dispatch({\n    type: actionKey,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees, fieldRules) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { amendment } = reducerData,\n    { cardNumber, expMonth, expYear, cvc, cardToken, brand, last4 } = amendment;\n  if (!cardToken) {\n    createAmendmentOrder(dispatch, reducerData, accountId, filingFees, fieldRules);\n  } else {\n    const data = { cardNumber, expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createAmendmentOrder(dispatch, reducerData, accountId, filingFees, fieldRules);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const fetchComplianceEvents = (dispatch, reducerData, companyInfo) => {\n  logger.logAction(ACTIONS.FETCH_JURISDICTION_REQ, { companyInfo });\n\n  dispatch({ type: ACTIONS.FETCH_COMPLIANCE_EVENTS_REQ });\n\n  businessEntityService.getComplianceEvents(reducerData, companyInfo.id).then(({ results }) => {\n    if (results.length > 0) {\n      dispatch({\n        type: ACTIONS.FETCH_COMPLIANCE_EVENTS_COMPLETE,\n        upcomingEventDate: results[0].event_date\n      });\n    }\n  }).catch((error) => {\n    console.log('error', error);\n  });\n};\n\nexport const fetchJurisdictionInfo = (dispatch, jurisdictionCode, companyInfo, jurisdictionType) => {\n  logger.logAction(ACTIONS.FETCH_JURISDICTION_REQ, { jurisdictionCode, companyInfo, jurisdictionType });\n\n  dispatch({ type: ACTIONS.FETCH_JURISDICTION_REQ });\n\n  amendmentService.getJurisdictionInfo(jurisdictionCode).then((response) => {\n    const rules = response[companyInfo.type === 'LLCX' ? 'llc' : 'corp'][jurisdictionType];\n\n    dispatch({\n      type: ACTIONS.FETCH_JURISDICTION_COMPLETE,\n      jurisdictionRules: rules,\n      fieldInfo: formFieldInfo(rules, companyInfo.type === 'LLCX' ? 'llc' : 'corp')\n    });\n  }).catch((error) => {\n    console.log('error', error);\n  });\n};\n\nexport const handleDeepLink = (dispatch, allCompanies, businessEntityId) => {\n  logger.logAction(ACTIONS.INIT, {});\n  dispatch({\n    type: ACTIONS.INIT,\n    data: {}\n  });\n\n  const selectedCompany = allCompanies[businessEntityId];\n\n  logger.logAction(ACTIONS.SET_COMPANY, { ...allCompanies[businessEntityId], id: businessEntityId });\n  dispatch({\n    type: ACTIONS.SET_COMPANY,\n    company: {\n      ...allCompanies[businessEntityId],\n      id: businessEntityId\n    }\n  });\n\n  if (allCompanies[businessEntityId].domesticJurisdiction === 'AR') {\n    logger.logAction(ACTIONS.SET_DEFAULT_TAX_PREPARER, { taxPreparer: selectedCompany.contact });\n    dispatch({\n      type: ACTIONS.SET_DEFAULT_TAX_PREPARER,\n      taxPreparer: selectedCompany.contact\n    });\n  }\n\n  logger.logAction(ACTIONS.SET_JURISDICTION_TYPE, { jurisdictionType: 'domestic' });\n  dispatch({\n    type: ACTIONS.SET_JURISDICTION_TYPE,\n    jurisdictionType: 'domestic',\n    filingJurisdiction: allCompanies[businessEntityId].domesticJurisdiction\n  });\n};\n\nexport const setSelectOnlyAnnualReport = (dispatch, didSelectOnlyAnnualReport) => {\n  logger.logAction(ACTIONS.SET_SELECT_ONLY_ANNUAL_REPORT, { didSelectOnlyAnnualReport });\n  dispatch({\n    type: ACTIONS.SET_SELECT_ONLY_ANNUAL_REPORT,\n    didSelectOnlyAnnualReport\n  });\n};\n\nexport const setAddWFC = (dispatch, didAddWFC) => {\n  logger.logAction(ACTIONS.SET_ADD_WFC, { didAddWFC });\n  dispatch({\n    type: ACTIONS.SET_ADD_WFC,\n    didAddWFC\n  });\n};\n\nexport const setCompanyToFile = (dispatch, company, sendToModifyPage) => {\n  logger.logAction(ACTIONS.SET_COMPANY, { company });\n  dispatch({\n    type: ACTIONS.SET_COMPANY,\n    company\n  });\n  logger.logAction(ACTIONS.ADVANCE_IN_FLOW, { newRouteName: sendToModifyPage ? URLS.MODIFY_COMPANY : URLS.SELECT_JURISDICTION });\n  dispatch({\n    type: ACTIONS.ADVANCE_IN_FLOW,\n    newRouteName: sendToModifyPage ? URLS.MODIFY_COMPANY : URLS.SELECT_JURISDICTION\n  });\n};\n\nexport const setJurisdictionType = (dispatch, jurisdictionType, originalCompanyInfo) => {\n  if (originalCompanyInfo.domesticJurisdiction === 'AR') {\n    logger.logAction(ACTIONS.SET_DEFAULT_TAX_PREPARER, { taxPreparer: originalCompanyInfo.contact });\n    dispatch({\n      type: ACTIONS.SET_DEFAULT_TAX_PREPARER,\n      taxPreparer: originalCompanyInfo.contact\n    });\n  }\n\n  logger.logAction(ACTIONS.SET_JURISDICTION_TYPE, { jurisdictionType, filingJurisdiction: jurisdictionType === 'domestic' ? originalCompanyInfo.domesticJurisdiction : null });\n  dispatch({\n    type: ACTIONS.SET_JURISDICTION_TYPE,\n    jurisdictionType,\n    filingJurisdiction: jurisdictionType === 'domestic' ? originalCompanyInfo.domesticJurisdiction : null\n  });\n  logger.logAction(ACTIONS.ADVANCE_IN_FLOW, { type: ACTIONS.ADVANCE_IN_FLOW, newRouteName: jurisdictionType === 'foreign' ? URLS.SELECT_FOREIGN_JURISDICTION : URLS.MODIFY_COMPANY });\n  dispatch({\n    type: ACTIONS.ADVANCE_IN_FLOW,\n    newRouteName: jurisdictionType === 'foreign' ? URLS.SELECT_FOREIGN_JURISDICTION : URLS.MODIFY_COMPANY\n  });\n};\n\nexport const setInit = (dispatch) => {\n  setAppEntryPoint(dispatch, true);\n  logger.logAction(ACTIONS.INIT, {});\n  dispatch({\n    type: ACTIONS.INIT,\n    data: {}\n  });\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setPurchaseWFG = (dispatch, isPurchasing) => {\n  logger.logAction(ACTIONS.SET_PURCHASE_WFG, { isPurchasing });\n  dispatch({\n    type: ACTIONS.SET_PURCHASE_WFG,\n    isPurchasing\n  });\n};\n\nexport const setUseCredit = (dispatch, useCredit, creditUUID, hasWFG) => {\n  logger.logAction(ACTIONS.SET_USE_CREDIT, { useCredit, creditUUID, hasWFG });\n  dispatch({\n    type: ACTIONS.SET_USE_CREDIT,\n    useCredit,\n    creditUUID,\n    hasWFG\n  });\n};\n\nexport const setUseARS = (dispatch, hasARS) => {\n  logger.logAction(ACTIONS.SET_USE_ARS, { hasARS });\n  dispatch({\n    type: ACTIONS.SET_USE_ARS,\n    hasARS\n  });\n};\n\nexport const setChangingOwnership = (dispatch, changingOwnership) => {\n  logger.logAction(ACTIONS.SET_CHANGING_OWNERSHIP, { changingOwnership });\n  dispatch({\n    type: ACTIONS.SET_CHANGING_OWNERSHIP,\n    changingOwnership\n  });\n};\n\nconst dispatchUpdateField = (dispatch, fieldName, newValue) => {\n  logger.logAction(ACTIONS.SET_FIELD, { fieldName, updatedFieldValue: newValue });\n\n  return dispatch({\n    type: ACTIONS.SET_FIELD,\n    fieldName,\n    updatedFieldValue: newValue\n  });\n};\n\nconst dispatchResetField = (dispatch, fieldName) => {\n  logger.logAction(ACTIONS.RESET_FIELD, { fieldName });\n\n  return dispatch({\n    type: ACTIONS.RESET_FIELD,\n    fieldName\n  });\n};\n\n/* eslint-disable max-statements */\nexport const updateField = (dispatch, fieldName, newValue, originalValue) => {\n  let hasChanges = false;\n\n  switch (fieldName) {\n    case 'name':\n    case 'description':\n    case 'structure':\n      if (newValue !== originalValue) {\n        return dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      return dispatchResetField(dispatch, fieldName);\n\n    case 'members':\n    case 'managers':\n      if (newValue.length !== originalValue.length) {\n        const updatedContacts = [];\n        newValue.forEach((contact) => {\n          if (\n            ((_get(contact, 'firstName') &&\n              _get(contact, 'lastName')) ||\n              _get(contact, 'companyName')) &&\n            _get(contact, 'addressLine1') &&\n            _get(contact, 'city') &&\n            _get(contact, 'state') &&\n            _get(contact, 'zipCode')\n          ) {\n            hasChanges = true;\n            updatedContacts.push(contact);\n          }\n        });\n\n        hasChanges = true;\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      } else {\n        const updatedContacts = [];\n        originalValue.forEach((contact, index) => {\n          if (((_get(contact, 'firstName') &&\n            _get(contact, 'lastName')) ||\n            _get(contact, 'companyName')) &&\n            (contact.firstName !== _get(newValue[index], 'firstName') ||\n              contact.middleName !== _get(newValue[index], 'middleName') ||\n              contact.lastName !== _get(newValue[index], 'lastName') ||\n              contact.companyName !== _get(newValue[index], 'companyName') ||\n              contact.suffix !== _get(newValue[index], 'suffix') ||\n              contact.email !== _get(newValue[index], 'email') ||\n              contact.phoneNumber !== _get(newValue[index], 'phoneNumber') ||\n              contact.addressLine1 !== _get(newValue[index], 'addressLine1') ||\n              contact.addressLine2 !== _get(newValue[index], 'addressLine2') ||\n              contact.city !== _get(newValue[index], 'city') ||\n              contact.state !== _get(newValue[index], 'state') ||\n              contact.zipCode !== _get(newValue[index], 'zipCode'))\n          ) {\n            hasChanges = true;\n            updatedContacts.push(newValue[index]);\n          } else {\n            updatedContacts.push(contact);\n          }\n        });\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      }\n\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'directors':\n    case 'officers':\n      if (newValue.length !== originalValue.length) {\n        const updatedContacts = [];\n        newValue.forEach((contact) => {\n          if (\n            ((_get(contact, 'firstName') &&\n              _get(contact, 'lastName')) ||\n              _get(contact, 'companyName')) &&\n            _get(contact, 'addressLine1') &&\n            _get(contact, 'city') &&\n            _get(contact, 'state') &&\n            _get(contact, 'zipCode')\n          ) {\n            hasChanges = true;\n            updatedContacts.push(contact);\n          }\n        });\n\n        hasChanges = true;\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      } else {\n        const updatedContacts = [];\n\n        originalValue.forEach((contact, index) => {\n          if (\n            !originalValue[index] ||\n            (((_get(contact, 'firstName') &&\n              _get(contact, 'lastName')) ||\n              _get(contact, 'companyName')) &&\n              (_get(contact, 'firstName') !== _get(newValue[index], 'firstName') ||\n                _get(contact, 'middleName') !== _get(newValue[index], 'middleName') ||\n                _get(contact, 'lastName') !== _get(newValue[index], 'lastName') ||\n                _get(contact, 'companyName') !== _get(newValue[index], 'companyName') ||\n                _get(contact, 'suffix') !== _get(newValue[index], 'suffix') ||\n                _get(contact, 'email') !== _get(newValue[index], 'email') ||\n                _get(contact, 'phoneNumber') !== _get(newValue[index], 'phoneNumber') ||\n                _get(contact, 'addressLine1') !== _get(newValue[index], 'addressLine1') ||\n                _get(contact, 'addressLine2') !== _get(newValue[index], 'addressLine2') ||\n                _get(contact, 'city') !== _get(newValue[index], 'city') ||\n                _get(contact, 'state') !== _get(newValue[index], 'state') ||\n                _get(contact, 'title') !== _get(newValue[index], 'title') ||\n                _get(contact, 'zipCode') !== _get(newValue[index], 'zipCode')\n              ))) {\n            hasChanges = true;\n            updatedContacts.push(newValue[index]);\n          } else {\n            updatedContacts.push(contact);\n          }\n        });\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      }\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'stockInfo':\n      if (newValue.authorizedShares !== originalValue.authorizedShares ||\n        newValue.valuePerShare !== originalValue.valuePerShare\n      ) {\n        return dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      return dispatchResetField(dispatch, fieldName);\n\n    case 'taxPreparer':\n      if (newValue.firstName !== originalValue.firstName ||\n        newValue.middleName !== originalValue.middleName ||\n        newValue.lastName !== originalValue.lastName ||\n        newValue.phoneNumber !== originalValue.phoneNumber\n      ) {\n        return dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      return dispatchResetField(dispatch, fieldName);\n\n    case 'addresses':\n      Object.keys(newValue).forEach((addressType) => {\n        if (\n          !hasChanges &&\n          (newValue[addressType].addressLine1 !== originalValue[addressType].addressLine1 ||\n            newValue[addressType].addressLine2 !== originalValue[addressType].addressLine2 ||\n            newValue[addressType].city !== originalValue[addressType].city ||\n            newValue[addressType].state !== originalValue[addressType].state ||\n            newValue[addressType].zipCode !== originalValue[addressType].zipCode)\n        ) {\n          hasChanges = true;\n          dispatchUpdateField(dispatch, fieldName, newValue);\n        }\n      });\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'authorizedSignatory':\n      if (\n        newValue.firstName !== _get(originalValue, 'firstName') ||\n        newValue.middleName !== _get(originalValue, 'middleName') ||\n        newValue.lastName !== _get(originalValue, 'lastName') ||\n        newValue.companyName !== _get(originalValue, 'companyName')\n      ) {\n        hasChanges = true;\n        dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'didDisposeOfProperty':\n    case 'hadGrossSales':\n    case 'maintainLicense':\n    case 'makesLessThan':\n    case 'useProperty':\n    case 'webFileId':\n      dispatchUpdateField(dispatch, fieldName, newValue);\n      break;\n\n    default:\n      break;\n  }\n\n  return null;\n};\n/* eslint-enable max-statements */\n","import { URLS } from '../../../constants/register_domainprivacy';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n\n    const { domainName: { companyCount, primary } } = registration;\n    const showSelectDomain = !primary;\n    const flow = [ URLS.START ];\n\n    if (companyCount > 1) {\n      flow.push(URLS.CHOOSE_COMPANY);\n    }\n    if (showSelectDomain) {\n      flow.push(URLS.SELECT_DOMAIN);\n    }\n    flow.push(URLS.PAYMENT, URLS.COMPLETE);\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_domainprivacy';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as domainNameKey } from '../../reducers/registration/domainName';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport { getDomainNamePrivacyYearlyPrice } from '../../utils/ProductService';\n\nconst\n  defaultDomainNameData = { companyId: '', companyCount: 0 },\n  domainNameData = getReducerSnapshot(domainNameKey, defaultDomainNameData),\n  getFlowOrder = (url) => {\n    const registration = {\n      domainName: domainNameData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (domainNameData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${domainNameData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(domainNameData, defaultDomainNameData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(domainNameData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setDomainName = (dispatch, data, redirect = true) => {\n  set(dispatch, data, ACTIONS.SELECT_DOMAIN, redirect);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount } = data;\n  setIsFreeAccount(data.isSimulated);\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(domainNameData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createDomainNamePrivacyOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createDomainNamePrivacy(reducerData, accountId, filingFees).then((response) => {\n    const price = getDomainNamePrivacyYearlyPrice();\n    const addlData = createAdditionalData('domain_name_privacy', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'domain_name_privacy', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { domainName } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = domainName;\n\n  if (!cardToken) {\n    createDomainNamePrivacyOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createDomainNamePrivacyOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setChooseCompany,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import { URLS } from '../../../constants/ettf_renewal';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = () => {\n    return [ URLS.CHOOSE_PLAN, URLS.CONFIRMATION ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = () => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder();\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/ettf_renewal';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as ettfRenewalKey } from '../../reducers/registration/ettfRenewal';\nimport logger from '../../utils/ClientLogger';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { fintechService, accountService } from '../../services';\n\nconst\n  defaultEttfRenewalData = { companyId: '' },\n  ettfRenewalData = getReducerSnapshot(ettfRenewalKey, defaultEttfRenewalData),\n  getCompanyUrl = () => {\n    if (ettfRenewalData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${ettfRenewalData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlow(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(ettfRenewalData, defaultEttfRenewalData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlow();\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setInit = async (dispatch, data) => {\n  try {\n    const paymentResponse = await accountService.getPaymentMethods(dispatch);\n    const orderTaskMigrationServicesResponse = await fintechService.getOrderTaskMigrationServices(data);\n\n    let lastFour = '';\n    const {\n      default_source: defaultSource,\n      sources = [{}]\n    } = paymentResponse;\n    lastFour = sources.find((source) => { return source.id === defaultSource; }).last4 || '';\n\n    const { companyId, termEndDate } = data;\n    doReset();\n    setAppEntryPoint(dispatch, true);\n\n    set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n    _assign(ettfRenewalData, { companyId });\n\n    set(\n      dispatch,\n      {\n        ...data,\n        lastFour,\n        planData: orderTaskMigrationServicesResponse.data.planData,\n        termEndDate: new Date(termEndDate).toDateString()\n      },\n      ACTIONS.INIT,\n      false\n    );\n\n    browserHistory.replace(getEntryPoint());\n  } catch (err) {\n    set(dispatch, {\n      error: err && err.error ? err.error : 'Server Error',\n      errorCode: err && err.errorCode ? err.errorCode : 500\n    }, ACTIONS.MIGRATE_MONEY_PLAN_COMPLETE, false);\n  }\n};\n\nexport const setChoosePlan = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PLAN, true);\n};\n\nexport const migrateMoneyPlan = (dispatch, {\n  couponUuid,\n  orderTaskUuid,\n  plan,\n  planData,\n  term\n}) => {\n  logger.logAction(ACTIONS.MIGRATE_MONEY_PLAN);\n  dispatch({\n    type: ACTIONS.MIGRATE_MONEY_PLAN\n  });\n  fintechService.migrateMoneyPlan({\n    couponUuid,\n    orderTaskUuid,\n    plan,\n    planData,\n    term\n  }).then((response) => {\n    set(dispatch, { ...response, plan }, ACTIONS.MIGRATE_MONEY_PLAN_COMPLETE, true);\n  }).catch((err) => {\n    set(dispatch, {\n      error: err && err.error ? err.error : 'Server Error',\n      errorCode: err && err.errorCode ? err.errorCode : 500\n    }, ACTIONS.MIGRATE_MONEY_PLAN_COMPLETE, false);\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\n\nexport default {\n  getEntryPoint,\n  goBack,\n  setInit,\n  setChoosePlan,\n  resetAllData,\n  migrateMoneyPlan,\n  setComplete\n};\n","import { URLS } from '../../../constants/register_accounting';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n\n    return [ URLS.START, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_accounting';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\n\nconst\n  defaultBusinessData = { id: '', businessOrderType: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  getFlowOrder = (url) => {\n    return getFlow(url);\n  },\n  getCompanyUrl = () => {\n    if (businessData.id) {\n      return `/${COMPANY_URLS.BASE}/${businessData.id}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(businessData, defaultBusinessData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setBackFromCompleteBusiness = () => {\n  browserHistory.push(getEntryPoint());\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  _assign(businessData, { id: companyId });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createAccountingOrder = (dispatch, reducerData, accountId) => {\n  registrationService.createAccounting(reducerData, accountId).then((response) => {\n    const price = 0;\n    const addlData = createAdditionalData('accounting', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'accounting', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { accounting } = reducerData,\n    { cardNumber, expMonth, expYear, cvc } = accounting;\n\n  if (!cardNumber) {\n    createAccountingOrder(dispatch, reducerData, accountId);\n  } else {\n    const data = { cardNumber, expMonth, expYear, cvc, isDefault: true };\n    accountService.addPaymentMethod(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createAccountingOrder(dispatch, reducerData, accountId);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  setBackFromCompleteBusiness,\n  orderAlreadyCreated,\n  resetAllData\n};\n","import _get from 'lodash/get';\nimport _cloneDeep from 'lodash/cloneDeep';\nimport { URLS, ADDITIONAL_QUESTIONS_KEYS as KEYS } from '../../../constants/annual_report';\nimport { txFlowChangesEnabled } from '../../../components/register_compliance_reports/annual_report/utils/common';\nimport { setForeignJurisdictionStateId } from '../index';\nimport { reportError } from '../../../utils/ReportingUtils';\n\nconst questionsShowFlagMap = {\n  showMakesLessThanAmount: URLS.ADDITIONAL_QUESTIONS.MAKES_LESS_THAN,\n\n  showHadGoodStanding: URLS.ADDITIONAL_QUESTIONS.GOOD_STANDING_IN_MD,\n  showHadPersonalProperty: URLS.ADDITIONAL_QUESTIONS.PERSONAL_PROPERTY_IN_MD,\n  showUseProperty: URLS.ADDITIONAL_QUESTIONS.PROPERTY_IN_MD,\n  showMaintainLicense: URLS.ADDITIONAL_QUESTIONS.MAINTAIN_LICENSE,\n  showHadGrossSales: URLS.ADDITIONAL_QUESTIONS.GROSS_SALES_IN_MD,\n  showListGrossSales: URLS.ADDITIONAL_QUESTIONS.LIST_GROSS_SALES,\n  showDidDisposeOfProperty: URLS.ADDITIONAL_QUESTIONS.DISPOSE_OF_PROPERTY,\n\n  showWebFileId: URLS.ADDITIONAL_QUESTIONS.WEB_FILE_ID,\n  showTotalRevenue: URLS.ADDITIONAL_QUESTIONS.TOTAL_REVENUE,\n  showOwnsAnyOtherBusiness: URLS.ADDITIONAL_QUESTIONS.OWNS_ANY_OTHER_BUSINESS,\n  showCompanyDataOwns: URLS.ADDITIONAL_QUESTIONS.COMPANY_DATA_OWNS,\n  showIsOwnedByAnyOtherBusiness: URLS.ADDITIONAL_QUESTIONS.IS_OWNED_BY_ANY_OTHER_BUSINESS,\n  showCompanyDataOwnedBy: URLS.ADDITIONAL_QUESTIONS.COMPANY_DATA_OWNED_BY,\n\n  showOwnsRealProperty: URLS.ADDITIONAL_QUESTIONS.OWN_PROPERTY,\n  showHasThereBeenATransferOfStock: URLS.ADDITIONAL_QUESTIONS.TRANSFER_OF_STOCK,\n  showHasTransferOfStockBeenOverEqualFiftyPercent: URLS.ADDITIONAL_QUESTIONS.TRANSFER_OF_STOCK_OVER_EQUAL_FIFTY_PERCENT,\n  showHasControllingInterestTransferFiledDepartmentRevenue: URLS.ADDITIONAL_QUESTIONS.HAS_CONTROLLING_INTEREST_TRANSFER_FILED_DEPARTMENT_REVENUE,\n\n  showHasEnteredIntoContract: URLS.ADDITIONAL_QUESTIONS.HAS_ENTERED_INTO_CONTRACT,\n\n  showHoldsInterestInAgriculturalLand: URLS.ADDITIONAL_QUESTIONS.INTEREST_AGRICULTURAL_LAND,\n  showIsFamilyFarmLLC: URLS.ADDITIONAL_QUESTIONS.FAMILY_FARM_LLC,\n\n  showNaicsCode: URLS.ADDITIONAL_QUESTIONS.NAICS_CODE,\n  showNumberOfStateEmployees: URLS.ADDITIONAL_QUESTIONS.NUMBER_OF_STATE_EMPLOYEES,\n  showNumberOfEmployees: URLS.ADDITIONAL_QUESTIONS.NUMBER_OF_EMPLOYEES,\n  showScrapMetalDealer: URLS.ADDITIONAL_QUESTIONS.SCRAP_METAL_DEALER,\n  showCurrentlyExporting: URLS.ADDITIONAL_QUESTIONS.CURRENTLY_EXPORTING,\n  showTopExportMarkets: URLS.ADDITIONAL_QUESTIONS.TOP_EXPORT_MARKETS,\n  showBeInterestedInExporting: URLS.ADDITIONAL_QUESTIONS.BE_INTERESTED_IN_EXPORTING,\n  showIsMinorityOwnedBusiness: URLS.ADDITIONAL_QUESTIONS.IS_MINORITY_OWNED_BUSINESS,\n  showIsWomanOwnedBusiness: URLS.ADDITIONAL_QUESTIONS.IS_WOMAN_OWNED_BUSINESS,\n  showsOwnMoreThanOneBusiness: URLS.ADDITIONAL_QUESTIONS.OWN_MORE_THAN_ONE_BUSINESS,\n  showHowManyBusinesses: URLS.ADDITIONAL_QUESTIONS.HOW_MANY_BUSINESSES,\n  showHowManyCounties: URLS.ADDITIONAL_QUESTIONS.HOW_MANY_COUNTIES,\n  showDoesEmployIndividualsWhoServeInForces: URLS.ADDITIONAL_QUESTIONS.DOES_EMPLOY_INDIVIDUALS_WHO_SERVE_IN_FORCES,\n  showHowManyIndividuals: URLS.ADDITIONAL_QUESTIONS.HOW_MANY_INDIVIDUALS,\n  showDoesOwnerServeInForces: URLS.ADDITIONAL_QUESTIONS.DOES_OWNER_SERVE_IN_FORCES,\n  showGetSupportFromWVSBDC: URLS.ADDITIONAL_QUESTIONS.GET_SUPPORT_FROM_WVSBDC,\n  showIssuedSharesAndGrossAssets: URLS.ADDITIONAL_QUESTIONS.ISSUED_SHARES_AND_GROSS_ASSETS,\n  showWorkerCompensationInsurance: URLS.ADDITIONAL_QUESTIONS.WORKER_COMPENSATION_INSURANCE,\n  showIsBusinessSelfInsured: URLS.ADDITIONAL_QUESTIONS.IS_BUSINESS_SELF_INSURED,\n  showSelfInsuranceDetails: URLS.ADDITIONAL_QUESTIONS.SELF_INSURANCE_DETAILS,\n  showChiefExecutiveOfficer: URLS.ADDITIONAL_QUESTIONS.CHIEF_EXECUTIVE_OFFICER,\n  showBusinessEntityPrincipalAddress: URLS.ADDITIONAL_QUESTIONS.BUSINESS_ENTITY_PRINCIPAL_ADDRESS,\n  showNumberOfDirectorsAndDirectorsAsWomen: URLS.ADDITIONAL_QUESTIONS.NUMBER_OF_DIRECTORS_AND_DIRECTORS_AS_WOMEN,\n  showOwnedUSMilitaryVeteran: URLS.ADDITIONAL_QUESTIONS.OWNED_US_MILITARY_VETERAN,\n  showOwnedUSDisabledMilitaryVeteran: URLS.ADDITIONAL_QUESTIONS.OWNED_US_DISABLED_MILITARY_VETERAN,\n  showNetReceiptsLessThanOneMillion: URLS.ADDITIONAL_QUESTIONS.NET_RECEIPTS_LESS_THAN_ONE_MILLION,\n  showUpToDateStockInformation: URLS.ADDITIONAL_QUESTIONS.UP_TO_DATE_STOCK_INFORMATION,\n  showStockClass: URLS.ADDITIONAL_QUESTIONS.STOCK_CLASS,\n  showStockAdded: URLS.ADDITIONAL_QUESTIONS.STOCK_ADDED,\n  showCorpTransacts: URLS.ADDITIONAL_QUESTIONS.CORP_TRANSACTS,\n  showCorpOwnership: URLS.ADDITIONAL_QUESTIONS.CORP_OWNERSHIP,\n  showIssuedShares:URLS.ADDITIONAL_QUESTIONS.ISSUED_SHARES,\n  showControllingMembers: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS,\n  showControllingMembers1: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS1,\n  showControllingMembers2: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS2,\n  showControllingMembers3: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS3,\n  showControllingMembers3a: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS3a,\n  showControllingMembers3b: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS3b,\n  showControllingMembers3c: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS3c,\n  showBankruptcy: URLS.ADDITIONAL_QUESTIONS.BANKRUPTCY,\n  showIsCombinedGroup: URLS.ADDITIONAL_QUESTIONS.IS_COMBINED_GROUP,\n  showIsCombinedGroupTempLossPreserved: URLS.ADDITIONAL_QUESTIONS.IS_COMBINED_GROUP_TEMP_LOSS_PRESERVED,\n  showIsTieredPartnerRevAdjusted: URLS.ADDITIONAL_QUESTIONS.IS_TIERED_PARTNER_REV_ADJUSTED,\n  showIsPassiveEntityTX: URLS.ADDITIONAL_QUESTIONS.IS_PASSIVE_ENTITY_TX,\n  showIsREITTX: URLS.ADDITIONAL_QUESTIONS.IS_REIT_TX,\n  showIsNewVetOwnedTX: URLS.ADDITIONAL_QUESTIONS.IS_NEW_VET_OWNED_TX\n};\n\nconst updatedCompanyInfoRestrictions = {\n  showListGrossSales: (updatedCompanyInfo) => {\n    return  updatedCompanyInfo[KEYS.HAD_GROSS_SALES] === 'yes';\n  },\n  showHasTransferOfStockBeenOverEqualFiftyPercent: (updatedCompanyInfo) => {\n    return  updatedCompanyInfo[KEYS.HAS_THERE_BEEN_A_TRANSFER_OF_STOCK] === 'yes';\n  },\n  showHasControllingInterestTransferFiledDepartmentRevenue: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.HAS_TRANSFER_OF_STOCK_BEEN_OVER_EQUAL_FIFTY_PERCENT] === 'yes';\n  },\n  showTopExportMarkets: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.CURRENTLY_EXPORTING] === 'yes';\n  },\n  showBeInterestedInExporting: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.CURRENTLY_EXPORTING] === 'no';\n  },\n  showHowManyBusinesses: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.OWN_MORE_THAN_ONE_BUSINESS] === 'yes';\n  },\n  showHowManyCounties: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.OWN_MORE_THAN_ONE_BUSINESS] === 'yes';\n  },\n  showHowManyIndividuals: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.DOES_EMPLOY_INDIVIDUALS_WHO_SERVE_IN_FORCES] === 'yes';\n  },\n  showIsBusinessSelfInsured: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.WORKER_COMPENSATION_INSURANCE] === 'yes';\n  },\n  showSelfInsuranceDetails: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.IS_BUSINESS_SELF_INSURED] === 'no';\n  },\n  showOwnedUSDisabledMilitaryVeteran: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.OWNED_US_MILITARY_VETERAN] === 'yes';\n  },\n  showStockClass: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.UP_TO_DATE_STOCK_INFORMATION] === 'yes';\n  },\n  showStockAdded: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.UP_TO_DATE_STOCK_INFORMATION] === 'yes';\n  },\n  showCorpTransacts: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.UP_TO_DATE_STOCK_INFORMATION] === 'no';\n  },\n  showCorpOwnership: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.UP_TO_DATE_STOCK_INFORMATION] === 'no';\n  },\n  showIsCombinedGroupTempLossPreserved: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.IS_COMBINED_GROUP] === 'yes';\n  },\n  showCompanyDataOwnedBy: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.IS_OWNED_BY_ANY_OTHER_BUSINESS] === 'yes';\n  },\n  showCompanyDataOwns: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.OWNS_ANY_OTHER_BUSINESS] === 'yes';\n  }\n};\n\nconst modifyQuestionsFlowForMdLlc = ({ originalFieldInfo }) => {\n  const fieldInfoClone = _cloneDeep(originalFieldInfo);\n\n  Object.keys(fieldInfoClone).forEach((key) => {\n    if (key.match(/^show/)) fieldInfoClone[key] = false;\n  });\n\n  return { ...fieldInfoClone, showHadGoodStanding: true, showHadPersonalProperty: true };\n};\n\nconst modifyQuestionsFlowForTx = ({ originalFieldInfo }) => {\n  const fieldsToDisable = ['showIsCombinedGroup', 'showIsCombinedGroupTempLossPreserved', 'showIsTieredPartnerRevAdjusted', 'showIsPassiveEntityTX', 'showIsREITTX', 'showIsNewVetOwnedTX'];\n  const fieldInfoClone = _cloneDeep(originalFieldInfo);\n\n  Object.keys(fieldInfoClone).forEach((key) => {\n    if (fieldsToDisable.includes(key)) fieldInfoClone[key] = false;\n  });\n\n  return fieldInfoClone;\n};\n\nconst getAdditionalQuestionsFlow = (updatedCompanyInfo, originalFieldInfo, ldFlags, domesticJurisdiction, businessType, complianceEventDueDate) => {\n  let fieldInfo = originalFieldInfo;\n\n  if (domesticJurisdiction === 'MD' && businessType === 'LLCX') {\n    fieldInfo = modifyQuestionsFlowForMdLlc({ businessType, domesticJurisdiction, originalFieldInfo, ldFlags });\n  } else if (txFlowChangesEnabled({ complianceEventDueDate, jurisdiction: domesticJurisdiction, flags: ldFlags })) {\n    fieldInfo = modifyQuestionsFlowForTx({ complianceEventDueDate, domesticJurisdiction, originalFieldInfo, ldFlags });\n  }\n\n  const reduced = Object.keys(questionsShowFlagMap).reduce((flow, showFlag) => {\n    if (fieldInfo[showFlag]) {\n      const hasToCheckUpdatedCompanyInfo = updatedCompanyInfoRestrictions[showFlag];\n      if (!hasToCheckUpdatedCompanyInfo) {\n        flow.push(questionsShowFlagMap[showFlag]);\n        return flow;\n      }\n      const canAddUrl = hasToCheckUpdatedCompanyInfo(updatedCompanyInfo);\n      if (canAddUrl) {\n        flow.push(questionsShowFlagMap[showFlag]);\n      }\n    }\n    return flow;\n  }, []);\n  return reduced;\n};\n\nconst shouldNavigateToAmendment = (updatedCompanyInfo, fieldInfo) => {\n  let flag = false;\n  if (typeof updatedCompanyInfo === 'object' && updatedCompanyInfo !== null) {\n    Object.keys(updatedCompanyInfo).forEach((fieldKey) => {\n      if (_get(fieldInfo[fieldKey], 'requiresAmendment')) {\n        flag = true;\n      }\n    });\n  }\n  return flag;\n};\n\nconst skipForeignStep = ({ annualReport, url, dispatch }) => {\n  const {\n    filingJurisdiction,\n    originalCompanyInfo,\n    complianceEventUuid\n  } = annualReport;\n  const foundJurisdiction = originalCompanyInfo.jurisdictions\n    .find(({ jurisdiction, stateId }) => {\n      return jurisdiction === filingJurisdiction && stateId?.length;\n    });\n  const isSkip = url === URLS.SELECT_JURISDICTION\n    && complianceEventUuid\n    && foundJurisdiction;\n\n  if (isSkip) {\n    setForeignJurisdictionStateId(dispatch, foundJurisdiction.stateId);\n  }\n  return isSkip;\n};\n\nconst reportMissingAdditionalQuestions = ({ additionalQuestions, annualReport, url }) => {\n  const foundQuestionsForWA = additionalQuestions.find((str) => {\n    return [URLS.ADDITIONAL_QUESTIONS.TRANSFER_OF_STOCK, URLS.ADDITIONAL_QUESTIONS.OWN_PROPERTY].includes(str);\n  });\n\n  if (url === URLS.MODIFY_COMPANY && annualReport?.filingJurisdiction === 'WA' && !foundQuestionsForWA) {\n    reportError(new Error('Annual Report: WA Additional Questions Not Found'),\n      {\n        metaData: {\n          additionalQuestions,\n          fieldInfo: annualReport.fieldInfo,\n          businessEntityUuid: annualReport.originalCompanyInfo.id,\n          complianceEventUuid: annualReport.complianceEventUuid\n        },\n        severity: 'warning'\n      }\n    );\n  }\n};\n\nconst getFlowOrder = (url, annualReport, ldFlags, dispatch) => {\n  if (url === URLS.ORDER_SUBMITTED) {\n    return [URLS.ORDER_SUBMITTED];\n  }\n  const { originalCompanyInfo, filingJurisdictionType, hasPurchasedWFC = false, fieldInfo, updatedCompanyInfo, complianceEventDueDate } = annualReport;\n  const { domesticJurisdiction, type: businessType } = originalCompanyInfo;\n  const flow = [URLS.SELECT_COMPANY, URLS.SELECT_JURISDICTION];\n\n  if (url !== URLS.MODIFY_COMPANY) {\n    if (filingJurisdictionType === 'foreign' && !skipForeignStep({ annualReport, url, dispatch })) {\n      flow.push(URLS.SELECT_FOREIGN_JURISDICTION);\n    }\n    flow.push(URLS.VALIDATE_COMPANY);\n  }\n\n  flow.push(URLS.MODIFY_COMPANY);\n\n  const additionalQuestions = getAdditionalQuestionsFlow(\n    updatedCompanyInfo || {},\n    fieldInfo || {},\n    ldFlags,\n    domesticJurisdiction,\n    businessType,\n    complianceEventDueDate\n  );\n\n  reportMissingAdditionalQuestions({ additionalQuestions, annualReport, url });\n  flow.push(...additionalQuestions);\n  if (shouldNavigateToAmendment(updatedCompanyInfo || {}, fieldInfo || {})) {\n    flow.push(URLS.ADD_AMENDMENT);\n  }\n  flow.push(URLS.CONFIRM_CHANGES);\n  if (!hasPurchasedWFC) {\n    flow.push(URLS.ADD_WFC);\n  }\n  flow.push(URLS.PAYMENT, URLS.ORDER_SUBMITTED);\n  return flow;\n};\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport { browserHistory } from 'react-router';\nimport _get from 'lodash/get';\nimport _indexOf from 'lodash/indexOf';\n\nimport { ACTIONS, URLS, ADDITIONAL_QUESTIONS_KEYS } from '../../constants/annual_report';\nimport { accountService, annualReportService, orderService, registrationService } from '../../services';\nimport logger from '../../utils/ClientLogger';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { setAppEntryPoint } from '../initialization';\nimport getFlowOrder from './flows';\nimport { storageKey } from '../../reducers/registration/annualReport';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { getAnnualReportPrice } from '../../utils/ProductService';\n\nconst defaultData = {\n  filingJurisdictionType: null,\n  fieldInfo: null,\n  updatedCompanyInfo: {},\n  originalCompanyInfo: {},\n  hasPurchasedWFC: false,\n  complianceEventUuid: ''\n};\nconst annualReportData = getReducerSnapshot(storageKey, defaultData);\n\nconst getCompanyUrl = () => {\n  if (annualReportData.originalCompanyInfo.id) {\n    return `/${COMPANY_URLS.BASE}/${annualReportData.originalCompanyInfo.id}`;\n  }\n  return `/${DASHBOARD_URLS.BASE}`;\n};\n\nconst go = (jump, ldFlags, dispatch) => {\n  const url = document.location.pathname.substring(URLS.BASE.length + 2),\n    flowOrder = getFlowOrder(url, getReducerSnapshot(storageKey, defaultData), ldFlags, dispatch),\n    index = _indexOf(flowOrder, url),\n    jumpIndex = index >= 0 ? index + jump : index;\n\n  if (jumpIndex < 0 || jumpIndex >= flowOrder.length) {\n    browserHistory.push(getCompanyUrl());\n  } else {\n    browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n  }\n};\n\nexport const fetchComplianceEvent = (dispatch, uuid ) => {\n  logger.logAction(ACTIONS.FETCH_COMPLIANCE_EVENT_REQ, { uuid });\n  dispatch({ type: ACTIONS.FETCH_COMPLIANCE_EVENT_REQ });\n\n  annualReportService.getComplianceEvent(uuid).then((data) => {\n    if (data) {\n      dispatch({\n        type: ACTIONS.FETCH_COMPLIANCE_EVENT_COMPLETE,\n        complianceEventDueDate: data.event_date\n      });\n    }\n  }).catch((error) => {\n    console.log('error', error);\n  });\n};\n\nconst createAnnualReportOrder = (dispatch, reducerData, accountId, filingFees, fieldInfo) => {\n  registrationService.createAnnualReport(reducerData, accountId, filingFees, fieldInfo).then((response) => {\n    const price = getAnnualReportPrice();\n    const addlData = createAdditionalData('annual_report', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'annual_report', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      browserHistory.push(`/${URLS.BASE}/${URLS.ORDER_SUBMITTED}`);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nconst formFieldInfo = (rules, companyType) => {\n  const fieldInfo = {\n    name: {\n      isEditable: Boolean(rules.amendment),\n      requiresAmendment: Boolean(rules.amendment)\n    },\n    business_purpose: {},\n    structure: {},\n    managers: {},\n    members: {},\n    directors: {},\n    officers: {},\n    addresses: {},\n    stock_info: {},\n    authorized_signatory: {},\n    showMakesLessThanAmount: false,\n    showHadGrossSales: false,\n    showHadGoodStanding: false,\n    showHadPersonalProperty: false,\n    showListGrossSales: false,\n    showUseProperty: false,\n    showMaintainLicense: false,\n    showDidDisposeOfProperty: false,\n    showTotalRevenue: false,\n    showOwnsAnyOtherBusiness: false,\n    showIsOwnedByAnyOtherBusiness: false,\n    showOwnsRealProperty: false,\n    showHasThereBeenATransferOfStock: false,\n    showHasControllingInterestTransferFiledDepartmentRevenue: false,\n    showHasTransferOfStockBeenOverEqualFiftyPercent: false,\n    showHasEnteredIntoContract: false,\n    showHoldsInterestInAgriculturalLand: false,\n    showIsFamilyFarmLLC: false,\n    showNaicsCode: false,\n    showNumberOfStateEmployees: false,\n    showNumberOfEmployees: false,\n    showScrapMetalDealer: false,\n    showExportMarkets: false,\n    showBeInterestedInExporting: false,\n    showIsMinorityOwnedBusiness: false,\n    showIsWomanOwnedBusiness: false,\n    showsOwnMoreThanOneBusiness: false,\n    showHowManyBusinesses: false,\n    showHowManyCounties: false,\n    showDoesEmployIndividualsWhoServeInForces: false,\n    showHowManyIndividuals: false,\n    showDoesOwnerServeInForces: false,\n    showGetSupportFromWVSBDC: false,\n    showIssuedSharesAndGrossAssets: false,\n    showWorkerCompensationInsurance: false,\n    showIsBusinessSelfInsured: false,\n    showSelfInsuranceDetails: false,\n    showChiefExecutiveOfficer: false,\n    showBusinessEntityPrincipalAddress: false,\n    showNumberOfDirectorsAndDirectorsAsWomen: false,\n    showOwnedUSMilitaryVeteran: false,\n    showOwnedUSDisabledMilitaryVeteran: false,\n    showNetReceiptsLessThanOneMillion: false,\n    showUpToDateStockInformation: false,\n    showIssuedShares: false,\n    showControllingMembers: false,\n    showControllingMembers1: false,\n    showControllingMembers2: false,\n    showControllingMembers3: false,\n    showControllingMembers3a: false,\n    showControllingMembers3b: false,\n    showControllingMembers3c: false,\n    showBankruptcy: false,\n    showIsCombinedGroup: false,\n    showIsCombinedGroupTempLossPreserved: false,\n    showIsTieredPartnerRevAdjusted: false,\n    showIsPassiveEntityTX: false,\n    showIsREITTX: false,\n    showIsNewVetOwnedTX: false,\n    showWebFileId: false\n  };\n\n  if (companyType === 'llc') {\n    fieldInfo.directors = null;\n    fieldInfo.officers = null;\n    fieldInfo.stock_info = null;\n  } else {\n    fieldInfo.structure = null;\n    fieldInfo.managers = null;\n    fieldInfo.members = null;\n  }\n\n  Object.keys(rules.annual_report).forEach((fieldKey) => {\n    switch (fieldKey) {\n      case 'makes_less_than_amount':\n        fieldInfo.showMakesLessThanAmount = rules.annual_report.makes_less_than_amount;\n        return null;\n      case 'had_good_standing':\n        fieldInfo.showHadGoodStanding = rules.annual_report.had_good_standing;\n        return null;\n      case 'had_personal_property':\n        fieldInfo.showHadPersonalProperty = rules.annual_report.had_personal_property;\n        return null;\n      case 'had_gross_sales':\n        fieldInfo.showHadGrossSales = rules.annual_report.had_gross_sales;\n        return null;\n      case 'list_gross_sales':\n        fieldInfo.showListGrossSales = rules.annual_report.list_gross_sales;\n        return null;\n      case 'own_or_lease_property':\n        fieldInfo.showUseProperty = rules.annual_report.own_or_lease_property;\n        return null;\n      case 'requires_license':\n        fieldInfo.showMaintainLicense = rules.annual_report.requires_license;\n        return null;\n      case 'sold_property':\n        fieldInfo.showDidDisposeOfProperty = rules.annual_report.sold_property;\n        return null;\n      case 'total_revenue':\n        fieldInfo.showTotalRevenue = rules.annual_report.total_revenue;\n        return null;\n      case 'owns_any_other_business':\n        fieldInfo.showOwnsAnyOtherBusiness = rules.annual_report.owns_any_other_business;\n        return null;\n      case 'company_data_owns':\n        fieldInfo.showCompanyDataOwns = rules.annual_report.company_data_owns;\n        return null;\n      case 'is_owned_by_any_other_business':\n        fieldInfo.showIsOwnedByAnyOtherBusiness = rules.annual_report.is_owned_by_any_other_business;\n        return null;\n      case 'company_data_owned_by':\n        fieldInfo.showCompanyDataOwnedBy = rules.annual_report.company_data_owned_by;\n        return null;\n      case 'owns_real_property':\n        fieldInfo.showOwnsRealProperty = rules.annual_report.owns_real_property;\n        return null;\n      case 'has_there_been_a_transfer_of_stock':\n        fieldInfo.showHasThereBeenATransferOfStock = rules.annual_report.has_there_been_a_transfer_of_stock;\n        return null;\n      case 'has_transfer_of_stock_been_over_equal_fifty_percent':\n        fieldInfo.showHasTransferOfStockBeenOverEqualFiftyPercent = rules.annual_report.has_transfer_of_stock_been_over_equal_fifty_percent;\n        return null;\n      case 'has_controlling_interest_transfer_filed_department_revenue':\n        fieldInfo.showHasControllingInterestTransferFiledDepartmentRevenue = rules.annual_report.has_controlling_interest_transfer_filed_department_revenue;\n        return null;\n      case 'has_entered_into_any_contract':\n        fieldInfo.showHasEnteredIntoContract = rules.annual_report.has_entered_into_any_contract;\n        return null;\n      case 'holds_interest_in_agricultural_land':\n        fieldInfo.showHoldsInterestInAgriculturalLand = rules.annual_report.holds_interest_in_agricultural_land;\n        return null;\n      case 'is_a_family_llc':\n        fieldInfo.showIsFamilyFarmLLC = rules.annual_report.is_a_family_llc;\n        return null;\n      case 'naics_code':\n        fieldInfo.showNaicsCode = rules.annual_report.naics_code;\n        return null;\n      case 'number_of_state_employees':\n        fieldInfo.showNumberOfStateEmployees = rules.annual_report.number_of_state_employees;\n        return null;\n      case 'number_of_employees':\n        fieldInfo.showNumberOfEmployees = rules.annual_report.number_of_employees;\n        return null;\n      case 'scrap_metal_dealer':\n        fieldInfo.showScrapMetalDealer = rules.annual_report.scrap_metal_dealer;\n        return null;\n      case 'currently_exporting':\n        fieldInfo.showCurrentlyExporting = rules.annual_report.currently_exporting;\n        return null;\n      case 'top_export_markets':\n        fieldInfo.showTopExportMarkets = rules.annual_report.top_export_markets;\n        return null;\n      case 'be_interested_in_exporting':\n        fieldInfo.showBeInterestedInExporting = rules.annual_report.be_interested_in_exporting;\n        return null;\n      case 'is_minority_owned_business':\n        fieldInfo.showIsMinorityOwnedBusiness = rules.annual_report.is_minority_owned_business;\n        return null;\n      case 'is_woman_owned_business':\n        fieldInfo.showIsWomanOwnedBusiness = rules.annual_report.is_woman_owned_business;\n        return null;\n      case 'own_more_than_one_business':\n        fieldInfo.showsOwnMoreThanOneBusiness = rules.annual_report.own_more_than_one_business;\n        return null;\n      case 'how_many_businesses':\n        fieldInfo.showHowManyBusinesses = rules.annual_report.how_many_businesses;\n        return null;\n      case 'how_many_counties':\n        fieldInfo.showHowManyCounties = rules.annual_report.how_many_counties;\n        return null;\n      case 'does_employ_individuals_who_serve_in_forces':\n        fieldInfo.showDoesEmployIndividualsWhoServeInForces = rules.annual_report.does_employ_individuals_who_serve_in_forces;\n        return null;\n      case 'how_many_individuals':\n        fieldInfo.showHowManyIndividuals = rules.annual_report.how_many_individuals;\n        return null;\n      case 'does_owner_serve_in_forces':\n        fieldInfo.showDoesOwnerServeInForces = rules.annual_report.does_owner_serve_in_forces;\n        return null;\n      case 'get_support_from_WVSBDC':\n        fieldInfo.showGetSupportFromWVSBDC = rules.annual_report.get_support_from_WVSBDC;\n        return null;\n      case 'issued_shares_and_gross_assets':\n        fieldInfo.showIssuedSharesAndGrossAssets = rules.annual_report.issued_shares_and_gross_assets;\n        return null;\n      case 'worker_compensation_insurance':\n        fieldInfo.showWorkerCompensationInsurance = rules.annual_report.worker_compensation_insurance;\n        return null;\n      case 'is_business_self_insured':\n        fieldInfo.showIsBusinessSelfInsured = rules.annual_report.is_business_self_insured;\n        return null;\n      case 'self_insurance_details':\n        fieldInfo.showSelfInsuranceDetails = rules.annual_report.self_insurance_details;\n        return null;\n      case 'chief_executive_officer':\n        fieldInfo.showChiefExecutiveOfficer = rules.annual_report.chief_executive_officer;\n        return null;\n      case 'business_entity_principal_address':\n        fieldInfo.showBusinessEntityPrincipalAddress = rules.annual_report.business_entity_principal_address;\n        return null;\n      case 'number_of_directors_and_directors_as_women':\n        fieldInfo.showNumberOfDirectorsAndDirectorsAsWomen = rules.annual_report.number_of_directors_and_directors_as_women;\n        return null;\n      case 'owned_us_military_veteran':\n        fieldInfo.showOwnedUSMilitaryVeteran = rules.annual_report.owned_us_military_veteran;\n        return null;\n      case 'owned_us_disabled_military_veteran':\n        fieldInfo.showOwnedUSDisabledMilitaryVeteran = rules.annual_report.owned_us_disabled_military_veteran;\n        return null;\n      case 'net_receipts_less_than_one_million':\n        fieldInfo.showNetReceiptsLessThanOneMillion = rules.annual_report.net_receipts_less_than_one_million;\n        return null;\n      case 'up_to_date_stock_information':\n        fieldInfo.showUpToDateStockInformation = rules.annual_report.up_to_date_stock_information;\n        return null;\n      case 'what_stock_was_added':\n        fieldInfo.showStockAdded = rules.annual_report.what_stock_was_added;\n        fieldInfo.showStockClass = rules.annual_report.what_stock_was_added;\n        return null;\n      case 'up_to_date_corp_information':\n        fieldInfo.showCorpTransacts = rules.annual_report.up_to_date_corp_information;\n        fieldInfo.showCorpOwnership = rules.annual_report.up_to_date_corp_information;\n        return null;\n      case 'issued_shares':\n        fieldInfo.showIssuedShares = rules.annual_report.issued_shares;\n        return null;\n      case 'controlling_members':\n        fieldInfo.showControllingMembers = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers1 = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers2 = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers3 = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers3a = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers3b = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers3c = rules.annual_report.controlling_members;\n        return null;\n      case 'bankruptcy':\n        fieldInfo.showBankruptcy = rules.annual_report.bankruptcy;\n        return null;\n      case 'is_combined_group':\n        fieldInfo.showIsCombinedGroup = rules.annual_report.is_combined_group;\n        return null;\n      case 'is_combined_group_temp_loss_preserved':\n        fieldInfo.showIsCombinedGroupTempLossPreserved = rules.annual_report.is_combined_group_temp_loss_preserved;\n        return null;\n      case 'is_tiered_partner_rev_adjusted':\n        fieldInfo.showIsTieredPartnerRevAdjusted = rules.annual_report.is_tiered_partner_rev_adjusted;\n        return null;\n      case 'is_passive_entity_tx':\n        fieldInfo.showIsPassiveEntityTX = rules.annual_report.is_passive_entity_tx;\n        return null;\n      case 'is_reit_tx':\n        fieldInfo.showIsREITTX = rules.annual_report.is_reit_tx;\n        return null;\n      case 'is_new_vet_owned_tx':\n        fieldInfo.showIsNewVetOwnedTX = rules.annual_report.is_new_vet_owned_tx;\n        return null;\n      case 'web_file_id':\n        fieldInfo.showWebFileId = rules.annual_report.web_file_id;\n        return null;\n      default:\n    }\n\n    if (!rules.amendment) {\n      fieldInfo[fieldKey] = {\n        canFileAmendment: false,\n        isEditable: rules.annual_report[fieldKey],\n        requiresAmendment: false\n      };\n      return null;\n    }\n    fieldInfo[fieldKey] = {\n      canFileAmendment: true,\n      isEditable: rules.annual_report[fieldKey] || rules.amendment[fieldKey],\n      requiresAmendment: !rules.annual_report[fieldKey] && rules.amendment[fieldKey]\n    };\n\n    return null;\n  });\n\n  return fieldInfo;\n};\n\nconst set = (dispatch, data, actionKey) => {\n  logger.logAction(actionKey, data);\n  dispatch({\n    type: actionKey,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees, fieldRules) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { annualReport } = reducerData,\n    { cardNumber, expMonth, expYear, cvc, cardToken, brand, last4 } = annualReport;\n\n  if (!cardToken) {\n    createAnnualReportOrder(dispatch, reducerData, accountId, filingFees, fieldRules);\n  } else {\n    const data = { cardNumber, expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createAnnualReportOrder(dispatch, reducerData, accountId, filingFees, fieldRules);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const fetchJurisdictionInfo = (dispatch, jurisdictionCode, companyInfo, jurisdictionType) => {\n  logger.logAction(ACTIONS.FETCH_JURISDICTION_REQ, { jurisdictionCode, companyInfo, jurisdictionType });\n\n  dispatch({ type: ACTIONS.FETCH_JURISDICTION_REQ });\n\n  annualReportService.getJurisdictionInfo(jurisdictionCode).then((response) => {\n    const rules = response[companyInfo.type === 'LLCX' ? 'llc' : 'corp'][jurisdictionType];\n    const fieldInfo = formFieldInfo(rules, companyInfo.type === 'LLCX' ? 'llc' : 'corp');\n    annualReportData.fieldInfo = fieldInfo;\n    dispatch({\n      type: ACTIONS.FETCH_JURISDICTION_COMPLETE,\n      jurisdictionRules: rules,\n      fieldInfo\n    });\n  }).catch((error) => {\n    console.log('error', error);\n  });\n};\n\nexport const handleDeepLink = (dispatch, allCompanies, allCompaniesItems, businessEntityId, jurisdictionCode, filingType) => {\n  logger.logAction(ACTIONS.INIT, {});\n  dispatch({\n    type: ACTIONS.INIT,\n    data: {}\n  });\n\n  const selectedCompany = allCompanies[businessEntityId];\n\n  const {\n    worryFree = [],\n    worry_free_service_basic: worryFreeServiceBasicId = [],\n    worry_free_service_advanced: worryFreeServiceAdvancedId = []\n  } = allCompaniesItems[businessEntityId];\n  const hasPurchasedWFC =\n    worryFree.length > 0 ||\n    worryFreeServiceBasicId.length > 0 ||\n    worryFreeServiceAdvancedId.length > 0;\n  const originalCompanyInfo = {\n    ...allCompanies[businessEntityId],\n    id: businessEntityId\n  };\n\n  annualReportData.originalCompanyInfo = originalCompanyInfo;\n  annualReportData.hasPurchasedWFC = hasPurchasedWFC;\n\n  logger.logAction(ACTIONS.SET_COMPANY, originalCompanyInfo);\n\n  dispatch({\n    type: ACTIONS.SET_COMPANY,\n    company: {\n      ...originalCompanyInfo,\n      hasPurchasedWFC\n    }\n  });\n\n  if (jurisdictionCode && filingType) {\n    if (jurisdictionCode === 'AR') {\n      logger.logAction(ACTIONS.SET_DEFAULT_TAX_PREPARER, { taxPreparer: selectedCompany.contact });\n      dispatch({\n        type: ACTIONS.SET_DEFAULT_TAX_PREPARER,\n        taxPreparer: selectedCompany.contact\n      });\n    }\n\n    const payload = {\n      jurisdictionType: (filingType.toLowerCase() === 'f' || filingType.toLowerCase() === 'foreign') ? 'foreign' : 'domestic',\n      filingJurisdiction: jurisdictionCode\n    };\n    annualReportData.filingJurisdictionType = payload.jurisdictionType;\n    logger.logAction(ACTIONS.SET_JURISDICTION_TYPE, payload);\n    dispatch({\n      type: ACTIONS.SET_JURISDICTION_TYPE,\n      ...payload\n    });\n  }\n};\n\nexport const goTo = (dispatch, actionKey, url) => {\n  logger.logAction(actionKey);\n  dispatch({\n    type: actionKey\n  });\n  browserHistory.push(`/${URLS.BASE}/${url}`);\n};\n\nexport const goBack = (dispatch, ldFlags) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, ldFlags);\n};\n\nexport const goNext = (dispatch, ldFlags) => {\n  go(1, ldFlags, dispatch);\n};\n\nexport const goToModifyCompany = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_BACK_TO_MODIFY_COMPANY, URLS.MODIFY_COMPANY);\n};\n\nexport const setAddAmendment = (dispatch, didAddAmendment) => {\n  logger.logAction(ACTIONS.SET_ADD_AMENDMENT, { didAddAmendment });\n  dispatch({\n    type: ACTIONS.SET_ADD_AMENDMENT,\n    didAddAmendment\n  });\n};\n\nexport const setAddWFC = (dispatch, didAddWFC) => {\n  logger.logAction(ACTIONS.SET_ADD_WFC, { didAddWFC });\n  dispatch({\n    type: ACTIONS.SET_ADD_WFC,\n    didAddWFC\n  });\n};\n\nexport const setCompanyToFile = (dispatch, company, sendToModifyPage) => {\n  logger.logAction(ACTIONS.SET_COMPANY, { company });\n  annualReportData.hasPurchasedWFC = company.hasPurchasedWFC;\n  annualReportData.originalCompanyInfo = company;\n  dispatch({\n    type: ACTIONS.SET_COMPANY,\n    company\n  });\n  logger.logAction(ACTIONS.ADVANCE_IN_FLOW, { newRouteName: sendToModifyPage ? URLS.MODIFY_COMPANY : URLS.SELECT_JURISDICTION });\n  dispatch({\n    type: ACTIONS.ADVANCE_IN_FLOW,\n    newRouteName: sendToModifyPage ? URLS.MODIFY_COMPANY : URLS.SELECT_JURISDICTION\n  });\n};\n\nexport const setForeignJurisdictionType = (dispatch, data) => {\n  logger.logAction(ACTIONS.SET_FOREIGN_JURISDICTION, data);\n  dispatch({\n    type: ACTIONS.SET_FOREIGN_JURISDICTION,\n    data\n  });\n  logger.logAction(ACTIONS.ADVANCE_IN_FLOW, { newRouteName: URLS.MODIFY_COMPANY });\n  dispatch({\n    type: ACTIONS.ADVANCE_IN_FLOW,\n    newRouteName: URLS.MODIFY_COMPANY\n  });\n};\n\nexport const setForeignJurisdictionStateId = (dispatch, stateId) => {\n  logger.logAction(ACTIONS.SET_FOREIGN_JURISDICTION_STATE_ID, stateId);\n  dispatch({\n    type: ACTIONS.SET_FOREIGN_JURISDICTION_STATE_ID,\n    stateId\n  });\n};\n\nexport const setJurisdictionType = (dispatch, jurisdictionType, originalCompanyInfo) => {\n  annualReportData.filingJurisdictionType = jurisdictionType;\n  if (originalCompanyInfo.domesticJurisdiction === 'AR') {\n    logger.logAction(ACTIONS.SET_DEFAULT_TAX_PREPARER, { taxPreparer: originalCompanyInfo.contact });\n    dispatch({\n      type: ACTIONS.SET_DEFAULT_TAX_PREPARER,\n      taxPreparer: originalCompanyInfo.contact\n    });\n  }\n\n  logger.logAction(ACTIONS.SET_JURISDICTION_TYPE, { jurisdictionType, filingJurisdiction: jurisdictionType === 'domestic' ? originalCompanyInfo.domesticJurisdiction : null });\n  dispatch({\n    type: ACTIONS.SET_JURISDICTION_TYPE,\n    jurisdictionType,\n    filingJurisdiction: jurisdictionType === 'domestic' ? originalCompanyInfo.domesticJurisdiction : null\n  });\n  logger.logAction(ACTIONS.ADVANCE_IN_FLOW, { type: ACTIONS.ADVANCE_IN_FLOW, newRouteName: jurisdictionType === 'foreign' ? URLS.SELECT_FOREIGN_JURISDICTION : URLS.MODIFY_COMPANY });\n  dispatch({\n    type: ACTIONS.ADVANCE_IN_FLOW,\n    newRouteName: jurisdictionType === 'foreign' ? URLS.SELECT_FOREIGN_JURISDICTION : URLS.MODIFY_COMPANY\n  });\n};\n\nexport const setInit = (dispatch) => {\n  setAppEntryPoint(dispatch, true);\n  logger.logAction(ACTIONS.INIT, {});\n  dispatch({\n    type: ACTIONS.INIT,\n    data: {}\n  });\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setPurchaseWFG = (dispatch, isPurchasing) => {\n  logger.logAction(ACTIONS.SET_PURCHASE_WFG, { isPurchasing });\n  dispatch({\n    type: ACTIONS.SET_PURCHASE_WFG,\n    isPurchasing\n  });\n};\n\nexport const setHasWFG = (dispatch, hasWFG) => {\n  logger.logAction(ACTIONS.SET_HAS_WFG, { hasWFG });\n  dispatch({ type: ACTIONS.SET_HAS_WFG, hasWFG });\n};\n\nexport const setUseCredit = (dispatch, useCredit, creditUUID, hasWFG) => {\n  logger.logAction(ACTIONS.SET_USE_CREDIT, { useCredit, creditUUID, hasWFG });\n  dispatch({\n    type: ACTIONS.SET_USE_CREDIT,\n    useCredit,\n    creditUUID,\n    hasWFG\n  });\n};\n\nexport const setUseARS = (dispatch, hasARS) => {\n  logger.logAction(ACTIONS.SET_USE_ARS, { hasARS });\n  dispatch({\n    type: ACTIONS.SET_USE_ARS,\n    hasARS\n  });\n};\n\nconst dispatchUpdateField = (dispatch, fieldName, newValue) => {\n  logger.logAction(ACTIONS.SET_FIELD, { fieldName, updatedFieldValue: newValue });\n  annualReportData.updatedCompanyInfo[fieldName] = newValue;\n  return dispatch({\n    type: ACTIONS.SET_FIELD,\n    fieldName,\n    updatedFieldValue: newValue\n  });\n};\n\nconst dispatchResetField = (dispatch, fieldName) => {\n  logger.logAction(ACTIONS.RESET_FIELD, { fieldName });\n  delete annualReportData.updatedCompanyInfo[fieldName];\n  return dispatch({\n    type: ACTIONS.RESET_FIELD,\n    fieldName\n  });\n};\n\n/* eslint-disable max-statements */\nexport const updateField = (dispatch, fieldName, newValue, originalValue) => {\n  let hasChanges = false;\n\n  switch (fieldName) {\n    case 'name':\n    case 'description':\n    case 'structure':\n      if (newValue !== originalValue) {\n        return dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      return dispatchResetField(dispatch, fieldName);\n\n    case 'members':\n    case 'managers':\n      if (newValue.length !== originalValue.length) {\n        const updatedContacts = [];\n        newValue.forEach((contact) => {\n          if (\n            ((_get(contact, 'firstName') &&\n              _get(contact, 'lastName')) ||\n              _get(contact, 'companyName')) &&\n            _get(contact, 'addressLine1') &&\n            _get(contact, 'city') &&\n            _get(contact, 'state') &&\n            _get(contact, 'zipCode')\n          ) {\n            hasChanges = true;\n            updatedContacts.push(contact);\n          }\n        });\n\n        hasChanges = true;\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      } else {\n        const updatedContacts = [];\n        originalValue.forEach((contact, index) => {\n          if (((_get(contact, 'firstName') &&\n            _get(contact, 'lastName')) ||\n            _get(contact, 'companyName')) &&\n            (contact.firstName !== _get(newValue[index], 'firstName') ||\n              contact.middleName !== _get(newValue[index], 'middleName') ||\n              contact.lastName !== _get(newValue[index], 'lastName') ||\n              contact.companyName !== _get(newValue[index], 'companyName') ||\n              contact.suffix !== _get(newValue[index], 'suffix') ||\n              contact.email !== _get(newValue[index], 'email') ||\n              contact.phoneNumber !== _get(newValue[index], 'phoneNumber') ||\n              contact.addressLine1 !== _get(newValue[index], 'addressLine1') ||\n              contact.addressLine2 !== _get(newValue[index], 'addressLine2') ||\n              contact.city !== _get(newValue[index], 'city') ||\n              contact.state !== _get(newValue[index], 'state') ||\n              contact.zipCode !== _get(newValue[index], 'zipCode') ||\n              contact.outstandingJudgments !== _get(newValue[index], 'outstandingJudgments'))\n          ) {\n            hasChanges = true;\n            updatedContacts.push(newValue[index]);\n          } else {\n            updatedContacts.push(contact);\n          }\n        });\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      }\n\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'directors':\n    case 'officers':\n      if (newValue.length !== originalValue.length) {\n        const updatedContacts = [];\n        newValue.forEach((contact) => {\n          if (\n            ((_get(contact, 'firstName') &&\n              _get(contact, 'lastName')) ||\n              _get(contact, 'companyName')) &&\n            _get(contact, 'addressLine1') &&\n            _get(contact, 'city') &&\n            _get(contact, 'state') &&\n            _get(contact, 'zipCode')\n          ) {\n            hasChanges = true;\n            updatedContacts.push(contact);\n          }\n        });\n\n        hasChanges = true;\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      } else {\n        const updatedContacts = [];\n\n        originalValue.forEach((contact, index) => {\n\n          if (\n            !originalValue[index] ||\n            (((_get(contact, 'firstName') &&\n              _get(contact, 'lastName')) ||\n              _get(contact, 'companyName')) &&\n              (_get(contact, 'firstName') !== _get(newValue[index], 'firstName') ||\n                _get(contact, 'middleName') !== _get(newValue[index], 'middleName') ||\n                _get(contact, 'lastName') !== _get(newValue[index], 'lastName') ||\n                _get(contact, 'companyName') !== _get(newValue[index], 'companyName') ||\n                _get(contact, 'suffix') !== _get(newValue[index], 'suffix') ||\n                _get(contact, 'email') !== _get(newValue[index], 'email') ||\n                _get(contact, 'phoneNumber') !== _get(newValue[index], 'phoneNumber') ||\n                _get(contact, 'addressLine1') !== _get(newValue[index], 'addressLine1') ||\n                _get(contact, 'addressLine2') !== _get(newValue[index], 'addressLine2') ||\n                _get(contact, 'city') !== _get(newValue[index], 'city') ||\n                _get(contact, 'state') !== _get(newValue[index], 'state') ||\n                _get(contact, 'title') !== _get(newValue[index], 'title') ||\n                _get(contact, 'zipCode') !== _get(newValue[index], 'zipCode') ||\n                _get(contact, 'outstandingJudgments') !== _get(newValue[index], 'outstandingJudgments')\n              ))) {\n            hasChanges = true;\n            updatedContacts.push(newValue[index]);\n          } else {\n            updatedContacts.push(contact);\n          }\n        });\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      }\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'stockInfo':\n      if (newValue.authorizedShares !== originalValue.authorizedShares ||\n        newValue.valuePerShare !== originalValue.valuePerShare\n      ) {\n        return dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      return dispatchResetField(dispatch, fieldName);\n\n    case 'taxPreparer':\n      if (newValue.firstName !== originalValue.firstName ||\n        newValue.middleName !== originalValue.middleName ||\n        newValue.lastName !== originalValue.lastName ||\n        newValue.phoneNumber !== originalValue.phoneNumber\n      ) {\n        return dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      return dispatchResetField(dispatch, fieldName);\n\n    case 'addresses':\n      Object.keys(newValue).forEach((addressType) => {\n        if (\n          !hasChanges &&\n          (newValue[addressType].addressLine1 !== originalValue[addressType].addressLine1 ||\n            newValue[addressType].addressLine2 !== originalValue[addressType].addressLine2 ||\n            newValue[addressType].city !== originalValue[addressType].city ||\n            newValue[addressType].state !== originalValue[addressType].state ||\n            newValue[addressType].zipCode !== originalValue[addressType].zipCode)\n        ) {\n          hasChanges = true;\n          dispatchUpdateField(dispatch, fieldName, newValue);\n        }\n      });\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'authorizedSignatory':\n      if (\n        newValue.firstName !== _get(originalValue, 'firstName') ||\n        newValue.middleName !== _get(originalValue, 'middleName') ||\n        newValue.lastName !== _get(originalValue, 'lastName') ||\n        newValue.companyName !== _get(originalValue, 'companyName') ||\n        newValue.suffix !== _get(originalValue, 'suffix') ||\n        newValue.email !== _get(originalValue, 'email') ||\n        newValue.phoneNumber !== _get(originalValue, 'phoneNumber') ||\n        newValue.addressLine1 !== _get(originalValue, 'addressLine1') ||\n        newValue.addressLine2 !== _get(originalValue, 'addressLine2') ||\n        newValue.city !== _get(originalValue, 'city') ||\n        newValue.state !== _get(originalValue, 'state') ||\n        newValue.title !== _get(originalValue, 'title') ||\n        newValue.zipCode !== _get(originalValue, 'zipCode') ||\n        newValue.outstandingJudgments !== _get(originalValue, 'outstandingJudgments')\n      ) {\n        hasChanges = true;\n        dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n    case 'doesEmployIndividualsWhoServeInForces':\n      dispatchUpdateField(dispatch, fieldName, newValue);\n      // If answer is no then set 'HOW_MANY_INDIVIDUALS' to 0 be default\n      if (newValue === 'no') {\n        dispatchUpdateField(dispatch, ADDITIONAL_QUESTIONS_KEYS.HOW_MANY_INDIVIDUALS, 0);\n      }\n      break;\n    default:\n      // rely on the constant keys to check for additional questions\n      if (Object.values(ADDITIONAL_QUESTIONS_KEYS).includes(fieldName)) {\n        dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      break;\n  }\n\n  return null;\n};\n\nexport const checkEligibility = (dispatch, entityType, jurisdictionCode) => {\n  logger.logAction(ACTIONS.CHECK_ELIGIBILITY, { entityType, jurisdictionCode });\n  return annualReportService.checkEligibility(entityType, jurisdictionCode);\n};\n\n/* eslint-enable max-statements */\n","import { URLS } from '../../../constants/register_nypub';\nimport { isLoggedIn } from '../../../utils/AuthService';\n\nconst\n  getNewCustomerFlowOrder = (url) => {\n    if (url === URLS.LOGIN_POST) {\n      return [URLS.LOGIN_POST];\n    }\n    const items = [ URLS.ACCOWN_NAME, URLS.ACCOWN_CONTACT, URLS.DOM_JUR, URLS.HAS_FORMATION_NY_PUB, URLS.PUB_COUNTY, URLS.BUS_NAME, URLS.DATA_CONFIRM, URLS.PAYMENT, URLS.LOGIN_POST ];\n    return items;\n  },\n  getNewCompanyFlowOrder = (url, registration) => {\n    const { business } = registration,\n      { hasCompanies } = business;\n\n    const items = [];\n    if (hasCompanies || url === URLS.BUS_ID) {\n      items.push(URLS.BUS_ID);\n    }\n    items.push(URLS.DOM_JUR, URLS.PUB_COUNTY, URLS.BUS_NAME, URLS.DATA_CONFIRM, URLS.PAYMENT);\n\n    return items;\n  },\n  getExistingCompanyFlowOrder = () => {\n    return [URLS.BUS_ID, URLS.PUB_COUNTY, URLS.PAYMENT];\n  },\n  getFlowOrder = (url, registration) => {\n    const { business, page } = registration;\n    const { id } = business;\n    const { fromDashboard } = page;\n    const loggedIn = isLoggedIn();\n\n    if (!loggedIn) {\n      return getNewCustomerFlowOrder(url, registration);\n    }\n    if (fromDashboard) {\n      if (id) {\n        return [URLS.START, ...getExistingCompanyFlowOrder(url, registration)];\n      }\n      return [URLS.START, ...getNewCompanyFlowOrder(url, registration)];\n    }\n    if (id) {\n      return getExistingCompanyFlowOrder(url, registration);\n    }\n    return getNewCompanyFlowOrder(url, registration);\n  };\n\nexport default {\n  getNewCustomerFlowOrder,\n  getExistingCompanyFlowOrder,\n  getNewCompanyFlowOrder,\n  getFlowOrder\n};\n","import { getRegisterNYPubFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterNYPubFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getStateFees as getInitStateFees, setAppEntryPoint } from '../initialization';\nimport { ACTIONS, URLS } from '../../constants/register_nypub';\nimport { URLS as COMP_NYPUB_URLS } from '../../constants/complete_nypub';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { accountService, registrationService } from '../../services';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { OrderTypes } from '../../utils/OrderUtils';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport { getNYPubPrice } from '../../utils/ProductService';\n\nconst\n  defaultBusinessData = { id: '', businessOrderType: '', domesticJurisdiction: '' },\n  businessData = _assign(getReducerSnapshot(businessKey, defaultBusinessData, { hasCompanies: true })),\n  defaultPageData = { fromDashboard: false },\n  pageData = getReducerSnapshot(pageKey, defaultPageData);\n\n// This is a reduced flow for analyzing the data confirmation.\n\nconst getFlowOrder = (url) => {\n  const registration = {\n    business: businessData,\n    page: pageData\n  };\n\n  return getFlow(url, registration);\n};\n\nconst go = (jump, dispatch, doReplace) => {\n  const url = document.location.pathname.substring(URLS.BASE.length + 2),\n    { id, businessOrderType } = businessData,\n    flowOrder = getFlowOrder(url),\n    index = _indexOf(flowOrder, url),\n    jumpIndex = index >= 0 ? index + jump : index,\n    method = doReplace ? browserHistory.replace : browserHistory.push;\n\n  if (jumpIndex < 0) {\n    document.location = getAppEntryPoint();\n  } else if (jumpIndex >= flowOrder.length) {\n    if (id) {\n      if (businessOrderType === OrderTypes.LLC || businessOrderType === OrderTypes.CORP || businessOrderType === OrderTypes.NY_PUBLICATION) {\n        browserHistory.push(`/${COMP_NYPUB_URLS.BASE}/${COMP_NYPUB_URLS.SHARE}`);\n        return;\n      }\n    }\n    browserHistory.push(`/${COMP_NYPUB_URLS.BASE}/${COMP_NYPUB_URLS.START}`);\n  } else {\n    method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n  }\n};\n\nconst set = (dispatch, data, actionKey, moveUrl, doReplace) => {\n  logger.logAction(actionKey, data);\n  dispatch({\n    type: actionKey,\n    payload: {\n      data\n    }\n  });\n  if (moveUrl) {\n    go(1, dispatch, doReplace);\n  }\n};\n\nconst doReset = () => {\n  _assign(businessData, defaultBusinessData);\n  _assign(pageData, defaultPageData);\n};\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n  _assign(businessData, getReducerSnapshot(businessKey, { id: '', type: 'LLCX', businessOrderType: '' }));\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      browserHistory.push(`/${COMP_NYPUB_URLS.BASE}/${COMP_NYPUB_URLS.START}`);\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const setAccountOwnerContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_CONTACT, true);\n};\n\nexport const setAccountOwnerModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_MODAL, false);\n};\n\nexport const setAccountOwnerName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_NAME, true);\n};\n\nexport const setBusinessId = (dispatch, data) => {\n  const { business } = data,\n    { domesticJurisdiction, hasCompanies } = business || data;\n\n  businessData.businessOrderType = data.businessOrderType;\n  businessData.id = data.id;\n  businessData.domesticJurisdiction = domesticJurisdiction;\n\n  set(dispatch, data, ACTIONS.BUS_ID, true, !hasCompanies);\n  businessData.hasCompanies = hasCompanies;\n};\n\nexport const setBusinessModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_MODAL, false);\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME, true);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, true);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  businessData.domesticJurisdiction = data.domesticJurisdiction;\n  set(dispatch, data, ACTIONS.DOM_JUR, true);\n};\n\nexport const setHasFormationNYPub = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.HAS_FORMATION_NY_PUB, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const\n    { fromDashboard = false } = data;\n\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  businessData.id = data.id;\n  pageData.fromDashboard = fromDashboard;\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(getEntryPoint());\n};\n\nexport const setLogin = (dispatch) => {\n  set(dispatch, { flow: 'ny' }, ACTIONS.LOGIN, false);\n};\n\nexport const setLoginPostPurchase = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LOGIN_POST, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setPubCounty = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PUB_COUNTY, true);\n};\n\nexport const setPubState = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PUB_STATE, false);\n};\n\nexport const setPubCountyModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PUB_COUNTY_MODAL, false);\n};\n\nexport const setPubCountyPF = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PUB_COUNTY, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nexport const setBackFromCompleteBusiness = () => {\n  browserHistory.push(getEntryPoint());\n};\n\nexport const orderAlreadyCreated = (dispatch) => {\n  go(1, dispatch);\n};\n\nconst createNYPubOrder = (dispatch, reducerData, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n  registrationService.createNyPubLLC(reducerData, filingFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    const price = getNYPubPrice();\n    const addlData = createAdditionalData('ny_pub', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'ny_publication', price, addlData);\n    go(1, dispatch);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // eslint-disable-next-line camelcase\n  const { customer: { cardToken, expMonth, expYear, cvc, brand, last4 } } = reducerData;\n  if (!isLoggedIn() || !cardToken) {\n    createNYPubOrder(dispatch, reducerData, filingFees);\n  } else {\n    const paymentData = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(paymentData).then((response) => {\n      const mergedData = _assign({}, response.data, paymentData);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createNYPubOrder(dispatch, reducerData, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const createLead = (dispatch, lead) => {\n  logger.logAction(ACTIONS.CREATE_LEAD);\n  dispatch({\n    type: ACTIONS.CREATE_LEAD\n  });\n  registrationService.createLead(lead).then((response) => {\n    logger.logAction(ACTIONS.CREATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const getStateFees = (dispatch, data, filingFees) => {\n  if (!filingFees[data.domesticJurisdiction] || !filingFees[data.domesticJurisdiction].ny_publication) {\n    getInitStateFees(dispatch, data.domesticJurisdiction);\n  }\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  goToNextUncompletedPage,\n  orderAlreadyCreated,\n  setAccountOwnerContact,\n  setAccountOwnerModal,\n  setAccountOwnerName,\n  setBusinessId,\n  setBusinessModal,\n  setBusinessName,\n  setDataConfirmation,\n  setDomesticJurisdiction,\n  setHasFormationNYPub,\n  setInit,\n  setLogin,\n  setLoginPostPurchase,\n  setPayment,\n  setPubCounty,\n  setPubState,\n  setPubCountyModal,\n  setStart,\n  setBackFromCompleteBusiness,\n  createOrder,\n  createLead,\n  getStateFees,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_dbaentity_pf';\nimport { isLoggedIn } from '../../../utils/AuthService';\n\nconst\n  getFlowOrder = () => {\n    if (isLoggedIn()) {\n      return [ URLS.QUESTIONNAIRE, URLS.CONGRATS];\n    }\n    return [ URLS.QUESTIONNAIRE, URLS.CONGRATS, URLS.LOGIN_POST ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegistrationFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegistrationFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","/* eslint-disable max-statements */\n/* eslint-disable no-undef */\nimport { STEPS, BUS_SELECTION_VALUE_OPTIONS, BUS_TYPES } from '../../constants/register_dbaentity_pf';\nimport { isLoggedIn } from '../../utils/AuthService';\n\nconst getStepsForDBAName = () => {\n  return [STEPS.DBA_NAME, STEPS.POST_DBA_NAME];\n};\n\nconst getStepsWhenCompanyStateIsNotSupported = () => {\n  const stepOrder = [STEPS.JURISDICTION_NOT_SUPPORTED];\n  // if (!dbaEntityData.companyHasForeignQualification) {\n  //   stepOrder.push(STEPS.REQ_JUR_NO_CHECK);\n  //   return stepOrder;\n  // }\n  // stepOrder.push(STEPS.CHECK_OTHER_JURS);\n  // if (!dbaEntityData.checkOtherDomJurs) {\n  //   stepOrder.push(STEPS.REQ_JUR_NO_CHECK);\n  //   return stepOrder;\n  // }\n  // stepOrder.push(STEPS.JURS_ZB_SUPPORT);\n  // stepOrder.push(STEPS.BUS_REGISTERED, STEPS.POST_BUS_REGISTERED);\n  // if (!dbaEntityData.businessIsRegistered) return stepOrder;\n  // stepOrder.push(...getStepsForDBAName(), STEPS.BEFORE_CART, STEPS.CART, STEPS.PAYMENT);\n  return stepOrder;\n};\n\nconst getStepsWhenCompanyIsSelected = (dbaEntityData) => {\n  const stepOrder = [...getStepsForDBAName(), STEPS.DBA_IN_SAME_STATE];\n    // when user doesn't want to register in the same state\n  if (!dbaEntityData.registerDBAInSameState) {\n    stepOrder.push(STEPS.FORM_IN_HOME_STATE);\n    if (!dbaEntityData.formInHomeState) {\n      stepOrder.push(STEPS.POST_FORM_IN_HOME_STATE);\n      return stepOrder;\n    }\n  }\n  stepOrder.push(STEPS.BEFORE_CART, STEPS.CART, STEPS.PAYMENT);\n  return stepOrder;\n};\n\nconst getFlowToRegisterBusinessAndDBA = (isNewAccount, dbaEntityData) => {\n  const stepOrder = [...getStepsForDBAName()];\n  if (isNewAccount) {\n    stepOrder.push(STEPS.ACCOWN_FIRST_NAME);\n  }\n  stepOrder.push(STEPS.INIT_REQ_JUR, STEPS.POST_REQ_JUR);\n  // State is not supported by the system\n  if (!dbaEntityData.isInitialJurSupported) {\n    stepOrder.push(STEPS.CHECK_OTHER_JURS);\n    if (!dbaEntityData.checkOtherDomJurs) {\n      stepOrder.push(STEPS.REQ_JUR_NO_CHECK);\n      return stepOrder;\n    }\n    stepOrder.push(STEPS.JURS_ZB_SUPPORT);\n  }\n\n  stepOrder.push(STEPS.BUS_TYPE);\n  // Biz hasn't been formed yet\n  if (dbaEntityData.businessType === BUS_TYPES.NOT_FORMED_YET) {\n    stepOrder.push(STEPS.BUS_TYPE_NOT_FORMED, STEPS.BUS_TYPE_FORM_WITH_ZB);\n    return stepOrder;\n  }\n  stepOrder.push(STEPS.POST_BUS_TYPE);\n  // Biz type is not supported by the system\n  if (!dbaEntityData.isTypeSupported) { return stepOrder; }\n  stepOrder.push(STEPS.HOME_STATE);\n  // State is not the business's home state.\n  if (!dbaEntityData.homeState) {\n    stepOrder.push(STEPS.FORM_IN_HOME_STATE);\n    if (!dbaEntityData.formInHomeState) {\n      stepOrder.push( STEPS.POST_FORM_IN_HOME_STATE);\n      return stepOrder;\n    }\n    stepOrder.push(STEPS.DOMESTIC_JUR, STEPS.DOMESTIC_JUR_CONFIRMATION);\n\n    if (dbaEntityData.confirmDomesticJurisdiction) {\n      stepOrder.push(STEPS.POST_DOMESTIC_JUR_CONFIRMATION);\n    } else {\n      stepOrder.push(STEPS.JURISDICTION_NOT_SUPPORTED);\n      return stepOrder;\n    }\n  }\n\n  stepOrder.push(STEPS.BUS_NAME);\n  if (isNewAccount) {\n    stepOrder.push(STEPS.CHECKPOINT);\n    if (dbaEntityData.saveData) {\n      stepOrder.push(STEPS.ACCOWN_LAST_NAME, STEPS.ACCOWN_EMAIL, STEPS.ACCOWN_PHONE);\n    }\n  }\n  stepOrder.push(STEPS.START_UPSELLS, STEPS.PURCH_WEBSITE, STEPS.PURCH_EIN, STEPS.CART, STEPS.PAYMENT);\n  return stepOrder;\n};\n\nconst getDefaultFlowForLoggedInUser = (dbaEntityData) => {\n  const stepOrder = [STEPS.BUS_SELECTION];\n  if (dbaEntityData.loggedInBusSelection === BUS_SELECTION_VALUE_OPTIONS.NEW) {\n    stepOrder.push(...getFlowToRegisterBusinessAndDBA(false, dbaEntityData));\n    return stepOrder;\n  }\n  if (dbaEntityData.loggedInBusSelection === BUS_SELECTION_VALUE_OPTIONS.EXISTING) {\n    stepOrder.push(STEPS.BUS_ID);\n  }\n\n  if (!dbaEntityData.isCompanyStateSupported) {\n    stepOrder.push(...getStepsWhenCompanyStateIsNotSupported(dbaEntityData));\n    return stepOrder;\n  }\n  stepOrder.push(...getStepsWhenCompanyIsSelected(dbaEntityData));\n  return stepOrder;\n};\n\nconst getFlowWhenCompanyIdIsInUrl = (dbaEntityData) => {\n  const stepOrder = [STEPS.BUS_USAGE_CONFIRM];\n\n  // if user says no to use the initial company and it only has 1 company goes to register business and DBA flow.\n  if (!dbaEntityData.confirmCompanyUsage && dbaEntityData.loggedInUserNumberOfBusinesses === 1) {\n    stepOrder.push(...getFlowToRegisterBusinessAndDBA(false, dbaEntityData));\n    return stepOrder;\n  }\n\n  if (!dbaEntityData.confirmCompanyUsage) {\n    stepOrder.push(STEPS.BUS_SELECTION);\n    if (dbaEntityData.loggedInBusSelection === BUS_SELECTION_VALUE_OPTIONS.NEW) {\n      stepOrder.push(...getFlowToRegisterBusinessAndDBA(false, dbaEntityData));\n      return stepOrder;\n    }\n    if (dbaEntityData.loggedInBusSelection === BUS_SELECTION_VALUE_OPTIONS.EXISTING) {\n      stepOrder.push(STEPS.BUS_ID);\n    }\n  }\n\n  if (!dbaEntityData.isCompanyStateSupported) {\n    stepOrder.push(...getStepsWhenCompanyStateIsNotSupported(dbaEntityData));\n    return stepOrder;\n  }\n  stepOrder.push(...getStepsWhenCompanyIsSelected(dbaEntityData));\n  return stepOrder;\n};\n\nconst getFlowForFreeDashboardUser = (dbaEntityData) => {\n  return getFlowToRegisterBusinessAndDBA(false, dbaEntityData);\n};\n\nconst getFlowForNewAccount = (dbaEntityData) => {\n  return getFlowToRegisterBusinessAndDBA(true, dbaEntityData);\n};\n\nconst getFlowForLoggedInUser = (dbaEntityData) => {\n  if (dbaEntityData.simulatedCompanyId) {\n    return getFlowForFreeDashboardUser(dbaEntityData);\n  }\n  if (dbaEntityData.useCompanyConfirmation) {\n    return getFlowWhenCompanyIdIsInUrl(dbaEntityData);\n  }\n  return getDefaultFlowForLoggedInUser(dbaEntityData);\n};\n\nconst getStepsFlow = (dbaEntityData) => {\n  const steps = [STEPS.WELCOME, STEPS.DBA];\n  if (isLoggedIn()) {\n    steps.push(...getFlowForLoggedInUser(dbaEntityData));\n  } else {\n    steps.push(...getFlowForNewAccount(dbaEntityData));\n  }\n  return steps;\n};\n\nconst noScrollingSteps = () => {\n  return [STEPS.CART, STEPS.PAYMENT];\n};\n\nexport { getStepsFlow, noScrollingSteps };\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport _isEmpty from 'lodash/isEmpty';\nimport { browserHistory } from 'react-router';\n\nimport getFlow from './flows';\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPLETE_DBA_URLS } from '../../constants/complete_dbaentity';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { ACTIONS, STEPS, URLS } from '../../constants/register_dbaentity_pf';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { DBA_IGNORE_STATES } from '../../constants/ui';\nimport { URLS as WEBSITE_URLS } from '../../constants/website';\nimport { storageKey as dbaKey } from '../../reducers/registration/dbaEntity';\nimport { storageKey as customerKey } from '../../reducers/registration/customer';\nimport { accountService, registrationService } from '../../services';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport logger from '../../utils/ClientLogger';\nimport { setGlobalProgressBar } from '../../utils/ProgressBar';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getStepsFlow, noScrollingSteps } from './stepsFlowFactory';\nimport LeadManager from '../Lead';\nimport { getDBAEntityPrice } from '../../utils/ProductService';\n\nconst defaultDbaEntityData = { isInitialJurSupported: null, requestedJurisdiction: '', isRegisteringABusiness: true };\n\nlet dbaEntityData = getReducerSnapshot(dbaKey, defaultDbaEntityData);\n\nconst getFlowOrder = (url) => {\n  const\n    flow = getFlow(url);\n\n  return flow;\n};\n\nexport const getStepOrder = () => {\n  return getStepsFlow(dbaEntityData);\n};\n\nexport const getEntityType = () => {\n  return dbaEntityData.businessType;\n};\n\nexport const getNoScrollSteps = () => {\n  return noScrollingSteps() || [];\n};\n\nexport const getStepIndex = (step) => {\n  const order = getStepOrder(),\n    index = _indexOf(order, step);\n\n  return index === -1 ? order.length : index;\n};\n\nexport const getNextStep = (step, resetStep) => {\n  const\n    stepOrder = getStepOrder(),\n    requestedStepIndex = step ? _indexOf(stepOrder, step) : -1,\n    currentStepIndex = dbaEntityData.step ? _indexOf(stepOrder, dbaEntityData.step) : -2,\n    nextStep = resetStep || requestedStepIndex >= currentStepIndex ? stepOrder[requestedStepIndex + 1] : dbaEntityData.step;\n  dbaEntityData.step = nextStep;\n  return nextStep;\n};\n\nconst getCompanyUrl = () => {\n  if (dbaEntityData.companyId) {\n    return `/${COMPANY_URLS.BASE}/${dbaEntityData.companyId}`;\n  }\n  return `/${DASHBOARD_URLS.BASE}`;\n};\n\n\nconst\n  go = (jump, doReplace) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      setGlobalProgressBar(flowOrder, '');\n      if (!isLoggedIn()) {\n        document.location = getAppEntryPoint();\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      let urlGoTo = getCompanyUrl();\n      if (dbaEntityData.isRegisteringABusiness) {\n        setGlobalProgressBar(flowOrder, COMPLETE_DBA_URLS.START);\n        urlGoTo = `/${COMPLETE_DBA_URLS.BASE}/${COMPLETE_DBA_URLS.START}`;\n        browserHistory.push(urlGoTo);\n      } else {\n        document.location = urlGoTo;\n      }\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n      return flowOrder[jumpIndex];\n    }\n    return '';\n  },\n  dispatchNextStep = (dispatch, step, resetStep) => {\n    const nextStep = getNextStep(step, resetStep);\n    if (nextStep) {\n      dispatch({\n        type: ACTIONS.NEXT_STEP,\n        payload: {\n          data: { nextStep }\n        }\n      });\n    }\n  },\n  set = (dispatch, data, actionKey, step, moveUrl, doReplace) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (step) {\n      dispatchNextStep(dispatch, step);\n    }\n    if (moveUrl) {\n      go(1, doReplace);\n    }\n  },\n\n  setStep = (dispatch, data, actionKey, step, resetStep, includeStepInDispatch = false) => {\n    logger.logAction(actionKey, data);\n    const nextStep = includeStepInDispatch ? getNextStep(step, resetStep) : null;\n    dispatch({\n      type: actionKey,\n      payload: {\n        data: { ...data, nextStep }\n      }\n    });\n    if (step && !includeStepInDispatch) {\n      dispatchNextStep(dispatch, step, resetStep);\n    }\n  },\n\n  cartUpdate = (dispatch, data, actionKey) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n  },\n\n  doReset = () => {\n    _assign(dbaEntityData, defaultDbaEntityData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  setGlobalProgressBar(flowOrder, flowOrder[0]);\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const setBackFromCompleteBusiness = () => {\n  browserHistory.push(getEntryPoint());\n};\n\nexport const resetAllData = (dispatch, data) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET,\n    payload: {\n      data: data || {}\n    }\n  });\n};\n\nexport const setSpecificStep = (dispatch, nextStep) => {\n  cartUpdate(dispatch, { nextStep }, ACTIONS.NEXT_STEP);\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      setGlobalProgressBar(flowOrder, COMPLETE_DBA_URLS.START);\n      browserHistory.push(`/${COMPLETE_DBA_URLS.BASE}/${COMPLETE_DBA_URLS.START}`);\n    } else {\n      setGlobalProgressBar(flowOrder, flowOrder[jumpIndex]);\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const setLead = (dispatch, createOrUpdateLead) => {\n  const customerSnapshotData = getReducerSnapshot(customerKey, {});\n\n  const leadManager = new LeadManager(ACTIONS);\n  leadManager.setLead(dispatch, createOrUpdateLead, {\n    firstName: customerSnapshotData.firstName,\n    lastName: customerSnapshotData.lastName,\n    phone: customerSnapshotData.phoneNumber || '',\n    email: customerSnapshotData.email,\n    searchstate: dbaEntityData.requestedJurisdiction,\n    selectedState: dbaEntityData.requestedJurisdiction,\n    entityName: dbaEntityData.businessName,\n    entityType: getEntityType(),\n    purchase_flow: 'dba_pf'\n  });\n};\n\nexport const setAccountOwnerEmail = (dispatch, data, createOrUpdateLead) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_EMAIL, STEPS.ACCOWN_EMAIL, false);\n  setLead(dispatch, createOrUpdateLead);\n};\n\nexport const setAccountOwnerFirstName = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_FIRST_NAME, STEPS.ACCOWN_FIRST_NAME, false);\n};\n\nexport const setAccountOwnerLastName = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_LAST_NAME, STEPS.ACCOWN_LAST_NAME, false);\n};\n\nexport const setAccountOwnerPhone = (dispatch, data, createOrUpdateLead) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_PHONE, STEPS.ACCOWN_PHONE, false);\n  setLead(dispatch, createOrUpdateLead);\n};\n\nexport const setBusinessId = (dispatch, data) => {\n  dbaEntityData.isRegisteringABusiness = !data.companyId;\n  // I have to handle this flag since I need to verify if we support the Bus' jurisdiction\n  dbaEntityData.isCompanyStateSupported = data.isCompanyStateSupported;\n  const { move = false, ...theRest } = data;\n  _assign(dbaEntityData, theRest);\n  if (!move) {\n    cartUpdate(dispatch, theRest, ACTIONS.BUS_ID);\n    return;\n  }\n  setStep(dispatch, theRest, ACTIONS.BUS_ID, STEPS.BUS_ID, true);\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.BUS_NAME);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.BUS_NAME, STEPS.BUS_NAME, false);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.BUS_TYPE);\n    return;\n  }\n  dbaEntityData.businessType = data.businessType;\n  dbaEntityData.isTypeSupported = data.isTypeSupported;\n  setStep(dispatch, data, ACTIONS.BUS_TYPE, STEPS.BUS_TYPE, true, true);\n};\n\nexport const setFormWithZB = (dispatch, data) => {\n  dbaEntityData.formWithZB = data.formWithZB;\n  setStep(dispatch, data, ACTIONS.BUS_TYPE_NOT_FORMED, STEPS.BUS_TYPE_NOT_FORMED, true);\n};\n\nexport const setHomeState = (dispatch, data) => {\n  dbaEntityData.homeState = data.homeState;\n  setStep(dispatch, data, ACTIONS.HOME_STATE, STEPS.HOME_STATE, true);\n};\n\nexport const setFormInHomeState = (dispatch, data) => {\n  dbaEntityData.formInHomeState = data.formInHomeState;\n  setStep(dispatch, data, ACTIONS.FORM_IN_HOME_STATE, STEPS.FORM_IN_HOME_STATE, true, true);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  dbaEntityData.domesticJurisdiction = data.domesticJurisdiction;\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.DOMESTIC_JUR);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.DOMESTIC_JUR, STEPS.DOMESTIC_JUR, true);\n};\n\nexport const setDomesticJurisdictionConfirmation = (dispatch, data) => {\n  dbaEntityData.confirmDomesticJurisdiction = data.confirmDomesticJurisdiction;\n  setStep(dispatch, data, ACTIONS.DOMESTIC_JUR_CONFIRMATION, STEPS.DOMESTIC_JUR_CONFIRMATION, true);\n};\n\nexport const setBusinessIsRegistered = (dispatch, data) => {\n  dbaEntityData.businessIsRegistered = data.businessIsRegistered;\n  setStep(dispatch, data, ACTIONS.BUS_REGISTERED, STEPS.BUS_REGISTERED, true, true);\n};\n\nexport const setCompanyHasForeignQualification = (dispatch, data) => {\n  dbaEntityData.companyHasForeignQualification = data.companyHasForeignQualification;\n  setStep(dispatch, data, ACTIONS.BUS_HAS_FOREIGN_QUALIFICATION, STEPS.BUS_HAS_FOREIGN_QUALIFICATION, true);\n};\n\nexport const setCompanyUsageConfirmation = (dispatch, data) => {\n  dbaEntityData.confirmCompanyUsage = data.confirmCompanyUsage;\n  setStep(dispatch, data, ACTIONS.BUS_USAGE_CONFIRM, STEPS.BUS_USAGE_CONFIRM, true);\n};\n\nexport const setCheckOtherJurisdictions = (dispatch, data) => {\n  dbaEntityData.checkOtherDomJurs = data.checkOtherDomJurs;\n  setStep(dispatch, data, ACTIONS.CHECK_OTHER_JURS, STEPS.CHECK_OTHER_JURS, true);\n};\n\nexport const setBusinessSelection = (dispatch, data) => {\n  dbaEntityData.loggedInBusSelection = data.loggedInBusSelection;\n  setStep(dispatch, data, ACTIONS.BUS_SELECTION, STEPS.BUS_SELECTION, true);\n};\n\nexport const setRegisterDBAInSameState = (dispatch, data) => {\n  dbaEntityData.registerDBAInSameState = data.registerDBAInSameState;\n  setStep(dispatch, data, ACTIONS.DBA_IN_SAME_STATE, STEPS.DBA_IN_SAME_STATE, true);\n};\n\nexport const setStaticWebsite = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.PURCH_WEBSITE);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.PURCH_WEBSITE, STEPS.PURCH_WEBSITE, false);\n};\nexport const setPurchaseEIN = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.PURCH_EIN);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.PURCH_EIN, STEPS.PURCH_EIN, false);\n};\nexport const setBusinessTypeAndName = (dispatch, data) => {\n  dbaEntityData.entityType = data.type;\n  cartUpdate(dispatch, data, ACTIONS.BUS_TYPE_NAME_CART);\n};\n\nexport const setCart = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.CART, STEPS.CART, true);\n};\n\nexport const setCheckpoint = (dispatch, data) => {\n  dbaEntityData.saveData = data.saveData;\n  setStep(dispatch, data, ACTIONS.CHECKPOINT, STEPS.CHECKPOINT, true);\n};\n\nexport const setCreateOrder = (dispatch) => {\n  dispatch({ type: ACTIONS.FLOW_COMPLETE });\n  go(1);\n};\n\nexport const setInitJurisdiction = (dispatch, data) => {\n  const { isInitialJurSupported, requestedJurisdiction } = data;\n  dbaEntityData.isInitialJurSupported = isInitialJurSupported;\n  dbaEntityData.requestedJurisdiction = isInitialJurSupported ? requestedJurisdiction : '';\n\n  setStep(dispatch, data, ACTIONS.INIT_REQ_JUR, STEPS.INIT_REQ_JUR, true, true);\n};\n\nexport const setRequestedJurisdiction = (dispatch, data) => {\n  const { requestedJurisdiction } = data;\n  dbaEntityData.requestedJurisdiction = requestedJurisdiction;\n\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.REQ_JUR);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.REQ_JUR, STEPS.JURS_ZB_SUPPORT, true);\n};\n\nexport const checkIfDomJurIsSupported = (domJur) => {\n  return DBA_IGNORE_STATES[domJur] !== true;\n};\n\nexport const setInit = (dispatch, data) => {\n  const {\n    initJurDom = '',\n    skipInititialDomJur = false,\n    useCompanyConfirmation = false,\n    simulatedCompanyId = '',\n    isRegisteringABusiness = true,\n    loggedInUserNumberOfBusinesses = 0\n  } = data;\n\n  doReset();\n\n  dbaEntityData.initJurDom = initJurDom;\n  dbaEntityData.useCompanyConfirmation = useCompanyConfirmation;\n  dbaEntityData.skipInititialDomJur = skipInititialDomJur;\n  dbaEntityData.simulatedCompanyId = simulatedCompanyId;\n  dbaEntityData.isRegisteringABusiness = isRegisteringABusiness;\n  dbaEntityData.loggedInUserNumberOfBusinesses = loggedInUserNumberOfBusinesses;\n\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.INIT, false);\n\n  browserHistory.replace(getEntryPoint());\n};\n\nexport const setLogin = (dispatch) => {\n  setStep(dispatch, { flow: 'truic' }, ACTIONS.LOGIN, '', false);\n};\n\nexport const setLoginPostPurchase = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LOGIN_POST, '', false);\n};\n\nexport const setNextStep = (dispatch, { step, ...therest }) => {\n  setStep(dispatch, therest, ACTIONS.PRE_NEXT_STEP, step, true);\n};\n\nexport const setDBAName = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.DBA_NAME);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.DBA_NAME, STEPS.DBA_NAME, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  cartUpdate(dispatch, data, ACTIONS.PAYMENT);\n};\n\nexport const setPricing = (dispatch, data) => {\n  logger.logAction(ACTIONS.PRICES, data);\n\n  dispatch({\n    type: ACTIONS.PRICES,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const takeUserToExternalLinks = (data) => {\n  const { status } = data;\n  if (status === 'formation') {\n    document.location = '/shop/';\n    return true;\n  }\n  if (status === 'dashboard') {\n    document.location = `/${DASHBOARD_URLS.BASE}`;\n    return true;\n  }\n  if (status === 'home') {\n    document.location = '/';\n    return true;\n  }\n  if (status === 'showMore') {\n    document.location = `/${WEBSITE_URLS.PRICING}`;\n    return true;\n  }\n  return false;\n};\n\nexport const setDBA = (dispatch, data) => {\n  if (!takeUserToExternalLinks(data)) {\n    setStep(dispatch, data, ACTIONS.DBA, STEPS.DBA, true);\n  } else {\n    setSpecificStep(dispatch, STEPS.DBA);\n  }\n};\n\nexport const setWelcome = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.WELCOME, STEPS.WELCOME, true);\n};\n\nconst createDBAOrder = (dispatch, reducerData, fees, accountId) => {\n  const { dbaEntity: { companyId } } = reducerData;\n  const creationMethod = companyId ? 'createDBAEntityForExistingBus' : 'createDBAEntity';\n  registrationService[creationMethod](reducerData, fees, accountId).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData,\n        fees\n      }\n    });\n\n    const price = getDBAEntityPrice();\n    const addlData = createAdditionalData('dba_entity', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'dba', price, addlData);\n    go(1, true);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, fees, accountId) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { customer } = reducerData,\n    { cardToken, expMonth, expYear, cvc } = customer;\n\n  if (!isLoggedIn() || !cardToken) {\n    createDBAOrder(dispatch, reducerData, fees, accountId);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createDBAOrder(dispatch, reducerData, fees, accountId);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const resetData = (dispatch, data) => {\n  if (_isEmpty(data)) return;\n  cartUpdate(dispatch, data, ACTIONS.RESET_DATA);\n  dbaEntityData = getReducerSnapshot(dbaKey, dbaEntityData);\n};\n\nexport default {\n  createOrder,\n  getEntryPoint,\n  getFlowOrder,\n  getNextStep,\n  getStepIndex,\n  getStepOrder,\n  goToNextUncompletedPage,\n  resetAllData,\n  setAccountOwnerEmail,\n  setAccountOwnerFirstName,\n  setAccountOwnerLastName,\n  setAccountOwnerPhone,\n  setBusinessId,\n  setBusinessName,\n  setBusinessType,\n  setFormWithZB,\n  setBusinessTypeAndName,\n  setCart,\n  setCheckpoint,\n  setRequestedJurisdiction,\n  setInitJurisdiction,\n  setNextStep,\n  setInit,\n  setLogin,\n  setLoginPostPurchase,\n  setPayment,\n  setDBA,\n  takeUserToExternalLinks,\n  setHomeState,\n  setFormInHomeState,\n  setStaticWebsite,\n  setPurchaseEIN,\n  setBusinessIsRegistered,\n  setCompanyHasForeignQualification,\n  setCompanyUsageConfirmation,\n  setCheckOtherJurisdictions,\n  setBusinessSelection,\n  setSpecificStep,\n  setRegisterDBAInSameState,\n  resetData\n};\n","\nimport { URLS } from '../../../constants/complete_ein';\n\nconst\n  /* eslint-disable max-statements */\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing } = registration.businessAddresses,\n      { mailingAddressRequired, physicalAddressRequired } = registration.ein,\n      flowItems = [];\n\n    if (physicalAddressRequired || url === URLS.PHYS_ADDR) {\n      flowItems.push(URLS.PHYS_ADDR);\n      if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n        flowItems.push(URLS.MAIL_ADDR);\n      }\n    } else if (mailingAddressRequired || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n    return flowItems;\n  },\n  getEINFromRegistrationFlow = (url, registration) => {\n    const\n      { business, member, ein } = registration,\n      { type } = business,\n      { hasTwo } = member,\n      { llcMarried, motorVehicle, responsibleParty, hasSSN, hasDBAs, employeesW2 } = ein,\n      { collectDataFromUser = false } = responsibleParty || {},\n      flow = [ URLS.START_EIN ];\n\n    if (type === 'CORP') {\n      flow.push(URLS.CORP_TAXED);\n    } else if (hasTwo) {\n      flow.push(URLS.LLC_ARE_MARRIED);\n      if (llcMarried) {\n        flow.push(URLS.LLC_MARRIED_TAXED);\n      }\n    }\n\n    // TODO: HAS_SSN accepts both SSN and ITIN (the page and field are labeled \"SSN or ITIN\"),\n    // but we collect no signal about which the user has. Investigate adding a tax_identifier_type\n    // question (ssn vs itin) so the BFF can forward the correct type to the ein_creation OrderTask.\n    flow.push(URLS.CHOOSE_RESP, URLS.HAS_SSN);\n    if (hasSSN === false) {\n      flow.push(URLS.NO_SSN);\n    }\n    if (!collectDataFromUser) {\n      flow.push(URLS.RESP_INFO);\n    }\n    flow.push(URLS.HAS_DBAS);\n    if (hasDBAs) {\n      flow.push(URLS.DBA_NAMES);\n    }\n    flow.push(...getAddressFlow(url, registration));\n\n    if (type === 'CORP') {\n      flow.push(URLS.CORP_INFO);\n    }\n    flow.push(URLS.BUS_QUEST_START, URLS.GAMBLING, URLS.ATF, URLS.HAS_EMPL_W2);\n\n    if (employeesW2) {\n      flow.push(URLS.EMPL_W2);\n    }\n\n    flow.push(URLS.VEHICLE);\n    if (motorVehicle) {\n      flow.push(URLS.VEHICLE_WEIGHT);\n    }\n    flow.push(URLS.BUS_720, URLS.BUS_ACT, URLS.DATA_CONFIRM);\n    return flow;\n  },\n  /* eslint-enable max-statements */\n\n  // eslint-disable-next-line max-statements\n  getEINFromRegisterEINFlow = (url, registration) => {\n    const\n      { business, member, ein } = registration,\n      { type } = business,\n      { hasTwo } = member,\n      { llcMarried, motorVehicle, hasSSN, hasDBAs, employeesW2 } = ein,\n      flow = [ URLS.START_EIN, URLS.EIN_REASON ];\n\n    if (type !== 'CORP' && type !== 'SOLE') {\n      flow.push(URLS.LLC_MBR_COUNT);\n      if (hasTwo) {\n        flow.push(URLS.LLC_ARE_MARRIED);\n        if (llcMarried) {\n          flow.push(URLS.LLC_MARRIED_TAXED);\n        }\n      }\n    }\n    flow.push(URLS.RESP_PARTY, URLS.HAS_SSN);\n    if (!hasSSN) {\n      flow.push(URLS.NO_SSN);\n    }\n    flow.push(URLS.RESP_INFO, URLS.HAS_DBAS);\n    if (hasDBAs) {\n      flow.push(URLS.DBA_NAMES);\n    }\n    flow.push(...getAddressFlow(url, registration));\n    if (type === 'CORP') {\n      flow.push(URLS.CORP_INFO);\n    }\n    flow.push(URLS.BUS_QUEST_START, URLS.GAMBLING, URLS.ATF, URLS.HAS_EMPL_W2);\n\n    if (employeesW2) {\n      flow.push(URLS.EMPL_W2);\n    }\n\n    flow.push(URLS.VEHICLE);\n    if (motorVehicle) {\n      flow.push(URLS.VEHICLE_WEIGHT);\n    }\n    flow.push(URLS.BUS_720, URLS.BUS_ACT, URLS.DATA_CONFIRM, URLS.SHARE, URLS.COMPLETE);\n    return flow;\n  },\n\n  getFlowOrder = (url, registration) => {\n    const\n      { page } = registration,\n      { registrationFlow } = page;\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    if (registrationFlow === 'ein') {\n      return getEINFromRegisterEINFlow(url, registration);\n    }\n    return getEINFromRegistrationFlow(url, registration);\n  };\n\nexport default {\n  getEINFromRegisterEINFlow,\n  getEINFromRegistrationFlow,\n  getFlowOrder\n};\n","import { getCompleteEINFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteEINFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getEntryPoint as getCorpEntryPoint } from '../complete_corp';\nimport { getEntryPoint as getDBAEntityEntryPoint, getCompleteEntryPoint as getDBACompleteEntryPoint } from '../complete_dbaentity';\nimport { getEntryPoint as getLLCEntryPoint } from '../complete_llc';\nimport { getEntryPoint as getPostPurchaseEntryPoint } from '../purchase_post_addons';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/complete_ein';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as einKey } from '../../reducers/registration/ein';\nimport { storageKey as memberKey } from '../../reducers/registration/members';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\n\nconst\n  defaultBusinessData = { type: 'LLCX', id: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultPageData = { registrationFlow: '' },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  defaultEINData = {\n    mailingAddressRequired: true,\n    principalAddressRequired: true,\n    physicalAddressRequired: true,\n    hasDBA: null,\n    llcMarried: null,\n    motorVehicle: null,\n    memberCount: null,\n    responsibleParty: { collectDataFromUser: false },\n    skipEIN: false\n  },\n  einData = getReducerSnapshot(einKey, defaultEINData),\n  defaultPurchaseData = { ein: null },\n  purchaseData = getReducerSnapshot(purchaseKey, defaultPurchaseData),\n  defaultMemberData = { members: [] },\n  memberData = getReducerSnapshot(memberKey, defaultMemberData);\n\nmemberData.hasTwo = pageData.registrationFlow === 'ein' ? einData.memberCount === 2 : memberData.members.length === 2;\n\nconst\n  getFlowOrder = (url) => {\n    const\n      registration = {\n        business: businessData,\n        businessAddresses: businessAddressesData,\n        page: pageData,\n        ein: einData,\n        purchase: purchaseData,\n        member: memberData\n      },\n      flow = getFlow(url, registration);\n\n    return flow;\n  },\n\n  go = (jump) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      { registrationFlow } = pageData,\n      { type } = businessData;\n    if (jumpIndex < 0) {\n      if (registrationFlow === 'ein' || registrationFlow === 'bl') {\n        browserHistory.push(`/${URLS.BASE}/${flowOrder[0]}`);\n      } else if (registrationFlow === 'dba') {\n        browserHistory.push(getDBAEntityEntryPoint(true));\n      } else if (type === 'CORP') {\n        browserHistory.push(getCorpEntryPoint(true));\n      } else {\n        browserHistory.push(getLLCEntryPoint(true));\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'ein' || registrationFlow === 'bl') {\n        if (businessData.id) {\n          document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n        } else {\n          document.location = `/${DASHBOARD_URLS.BASE}`;\n        }\n      } else if (registrationFlow === 'dba') {\n        browserHistory.push(getDBACompleteEntryPoint());\n      } else {\n        browserHistory.push(getPostPurchaseEntryPoint());\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n\n  set = (dispatch, data, actionKey, jump) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (jump) {\n      go(1);\n    }\n  },\n  getServiceEndpoint = (reducerData) => {\n    const { business: { type }, page: { registrationFlow } } = reducerData;\n\n    if (registrationFlow === 'ein') {\n      return 'updateEIN';\n    }\n    if (registrationFlow === 'dba') {\n      return 'updateDBAEntity';\n    }\n    if (type === 'CORP') {\n      return 'updateCorp';\n    }\n    return 'updateLLC';\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(einData, getReducerSnapshot(einKey, defaultEINData));\n    _assign(memberData, getReducerSnapshot(memberKey, defaultMemberData));\n    _assign(purchaseData, getReducerSnapshot(purchaseKey, defaultPurchaseData));\n    _assign(pageData, getReducerSnapshot(pageKey, defaultPageData));\n  };\n\nexport const getEntryPoint = (fromBack) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index = (fromBack && !einData.skipEIN) ? flow.length - 1 : 0;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const getNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n  const\n    { registrationFlow } = pageData,\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'ein' || registrationFlow === 'bl') {\n        if (businessData.id) {\n          return { isDashboard: true, url: `/${COMPANY_URLS.BASE}/${businessData.id}` };\n        }\n        return { isDashboard: true, url: `/${DASHBOARD_URLS.BASE}` };\n      }\n      if (registrationFlow === 'dba') {\n        return { isDashboard: false, url: getDBACompleteEntryPoint() };\n      }\n      return { isDashboard: false, url: getPostPurchaseEntryPoint() };\n    }\n    return { isDashboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n  const\n    { registrationFlow } = pageData,\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'ein' || registrationFlow === 'bl') {\n        if (businessData.id) {\n          document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n        } else {\n          document.location = `/${DASHBOARD_URLS.BASE}`;\n        }\n      } else if (registrationFlow === 'dba') {\n        browserHistory.push(getDBACompleteEntryPoint());\n      } else {\n        browserHistory.push(getPostPurchaseEntryPoint());\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const setATF = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ATF, false);\n};\n\nexport const setBusinessActivity = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_ACT, false);\n};\n\nexport const setBusinessForm720 = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_720, false);\n};\n\nexport const setBusinessQuestionsStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_QUEST_START, false);\n};\n\nexport const setChooseResponsible = (dispatch, data) => {\n  if (!einData.responsibleParty) {\n    einData.responsibleParty = {};\n  }\n  einData.responsibleParty.collectDataFromUser = data.collectDataFromUser || false;\n  set(dispatch, data, ACTIONS.CHOOSE_RESP, false);\n};\n\nexport const setCorpInfo = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_INFO, false);\n};\n\nexport const setCorpTaxed = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_TAXED, false);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, data, URLS.COMPLETE, false);\n  if (businessData.id) {\n    document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n  } else {\n    document.location = `/${DASHBOARD_URLS.BASE}`;\n  }\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  const { registrationFlow, ...dataConfirm } = data;\n  set(dispatch, dataConfirm, ACTIONS.DATA_CONFIRM, false);\n  if (registrationFlow === 'dba') {\n    set(dispatch, dataConfirm, ACTIONS.DATA_DBA_CONFIRM, false);\n  }\n};\n\nexport const setEINReason = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EIN_REASON, false);\n};\n\nexport const setEmployeesW2 = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMPL_W2, false);\n};\n\nexport const setHasEmployeesW2 = (dispatch, data) => {\n  einData.employeesW2 =  data.employeesW2;\n  set(dispatch, data, ACTIONS.HAS_EMPL_W2, false);\n};\n\nexport const setGambling = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.GAMBLING, false);\n};\n\nexport const setHasSSN = (dispatch, data) => {\n  einData.hasSSN = data.hasSSN;\n  set(dispatch, data, ACTIONS.HAS_SSN, false);\n};\n\nexport const setLLCAreMarried = (dispatch, data) => {\n  einData.llcMarried = data.llcMarried;\n  set(dispatch, data, ACTIONS.LLC_ARE_MARRIED, false);\n};\n\nexport const setLLCMarriedTaxed = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MARRIED_TAXED, false);\n};\n\nexport const setLLCMemberCount = (dispatch, data) => {\n  memberData.hasTwo = data.memberCount === 2;\n  set(dispatch, data, ACTIONS.LLC_MBR_COUNT, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setMailingAddressModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR_MODAL, false);\n};\n\nexport const setMotorVehicle = (dispatch, data) => {\n  einData.motorVehicle = data.motorVehicle;\n  set(dispatch, data, ACTIONS.VEHICLE, false);\n};\n\nexport const setMotorVehicleWeight = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.VEHICLE_WEIGHT, false);\n};\n\nexport const setNoSSN = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.NO_SSN, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPhysicalAddressModal = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR_MODAL, false);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, false);\n};\n\nexport const setPrincipalAddressModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR_MODAL, false);\n};\n\nexport const setResponsibleInfo = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.RESP_INFO, false);\n};\n\nexport const setResponsibleParty = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.RESP_PARTY, false);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n};\n\nexport const setStartEIN = (dispatch, data) => {\n  updateSnapshots();\n  einData.principalAddressRequired = data.principalAddressRequired;\n  einData.mailingAddressRequired = data.mailingAddressRequired;\n  einData.physicalAddressRequired = data.physicalAddressRequired;\n  memberData.hasTwo = pageData.registrationFlow === 'ein' ? einData.memberCount === 2 : memberData.members.length === 2;\n  set(dispatch, data, ACTIONS.START_EIN, data.forward);\n};\n\nexport const setDBAs = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DBA_NAMES, false);\n};\n\nexport const setHasDBAs = (dispatch, data) => {\n  einData.hasDBAs = data.hasDBAs;\n  set(dispatch, data, ACTIONS.HAS_DBAS, false);\n};\n\nexport const setBusinessData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DATA, false);\n};\n\nexport const setCorpData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DATA, false);\n};\n\nexport const setEINData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EIN_DATA, false);\n};\n\nexport const setMemberData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.MBR_DATA, false);\n};\n\nexport const setResponsibleData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.RESP_DATA, false);\n};\n\nexport const setEstimatedFormationDate = (dispatch, data) => {\n  logger.logAction(ACTIONS.EST_DATE, data);\n  dispatch({\n    type: ACTIONS.EST_DATE,\n    payload: {\n      data\n    }\n  });\n};\n\nconst updateOrderTaskStatus = (dispatch, einOrderTaskUuid, status, subStatus, skip) => {\n  orderService.updateOrderTaskStatus(\n    einOrderTaskUuid,\n    status,\n    subStatus\n  ).then(() => {\n    set(dispatch, ACTIONS.SKIP_EIN, skip);\n  }).catch((err) => {\n    set(dispatch, {\n      error: err && err.error ? err.error : 'Server Error',\n      errorCode: err && err.errorCode ? err.errorCode : 500\n    }, ACTIONS.SKIP_EIN, !skip);\n  });\n};\n\nexport const setSkipEIN = (dispatch, data) => {\n  const { einOrderTaskUuid, skipEIN } = data;\n  let status = '';\n  let subStatus = '';\n  logger.logAction(ACTIONS.SKIP_EIN, data);\n  dispatch({\n    type: ACTIONS.SKIP_EIN\n  });\n  if (skipEIN) {\n    status = 'pending';\n    subStatus = 'fulfillment hold';\n    updateOrderTaskStatus(dispatch, einOrderTaskUuid, status, subStatus, true);\n    browserHistory.push(getPostPurchaseEntryPoint());\n  } else {\n    if (einData.skipEIN) {\n      status = 'incomplete';\n      subStatus = '';\n      updateOrderTaskStatus(dispatch, einOrderTaskUuid, status, subStatus, false);\n    }\n    set(dispatch, ACTIONS.SKIP_EIN, false);\n  }\n};\n\n\nexport const updateOrder = (dispatch, reducerData, filingFees, expediteFees, advance) => {\n  const\n    serviceEndpoint = getServiceEndpoint(reducerData);\n\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService[serviceEndpoint](reducerData, filingFees, expediteFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\n\nexport default {\n  getEntryPoint,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  setATF,\n  setBusinessActivity,\n  setBusinessForm720,\n  setBusinessQuestionsStart,\n  setChooseResponsible,\n  setComplete,\n  setCorpInfo,\n  setCorpTaxed,\n  setDataConfirmation,\n  setEINReason,\n  setEmployeesW2,\n  setGambling,\n  setHasSSN,\n  setLLCAreMarried,\n  setLLCMarriedTaxed,\n  setLLCMemberCount,\n  setMailingAddress,\n  setMailingAddressModal,\n  setMotorVehicle,\n  setMotorVehicleWeight,\n  setNoSSN,\n  setPhysicalAddress,\n  setPhysicalAddressModal,\n  setPrincipalAddress,\n  setPrincipalAddressModal,\n  setResponsibleInfo,\n  setResponsibleParty,\n  setShare,\n  setStartEIN,\n  setDBAs,\n  setBusinessData,\n  setCorpData,\n  setEINData,\n  setMemberData,\n  setResponsibleData,\n  setEstimatedFormationDate,\n  updateOrder,\n  setSkipEIN\n};\n","import { URLS } from '../../../constants/register_nameres';\nimport { isLoggedIn } from '../../../utils/AuthService';\n\nconst\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing } = registration.businessAddresses,\n      flowItems = [];\n\n    flowItems.push(URLS.PHYS_ADDR);\n    if (!usePhysicalAsMailing) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n    return flowItems;\n  },\n\n  getNewCustomerFlowOrder = (url, registration) => {\n    if (url === URLS.SHARE || url === URLS.COMPLETE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n\n    const flowItems = [\n      URLS.DOM_JUR,\n      URLS.BUS_NAME,\n      URLS.BUS_TYPE,\n      ...getAddressFlow(url, registration),\n      URLS.ACC_OWN_INFO,\n      URLS.PRIM_CONTACT,\n      URLS.PAYMENT,\n      URLS.SHARE,\n      URLS.COMPLETE\n    ];\n\n    return flowItems;\n  },\n  getNewCompanyFlowOrder = (url, registration) => {\n    if (url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    const\n      flowItems = [\n        URLS.DOM_JUR,\n        URLS.BUS_NAME,\n        URLS.BUS_TYPE,\n        ...getAddressFlow(url, registration)\n      ];\n\n    if (url === URLS.ACC_OWN_INFO) { // For logged-in transition\n      flowItems.push(URLS.ACC_OWN_INFO);\n    }\n    flowItems.push(URLS.PRIM_CONTACT, URLS.PAYMENT, URLS.SHARE, URLS.COMPLETE);\n    return flowItems;\n  },\n  getFlowOrder = (url, registration) => {\n    if (isLoggedIn()) {\n      return getNewCompanyFlowOrder(url, registration);\n    }\n    return getNewCustomerFlowOrder(url, registration);\n  };\n\nexport default {\n  getNewCompanyFlowOrder,\n  getNewCustomerFlowOrder,\n  getFlowOrder\n};\n","import { getRegisterNameresFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterNameresFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getStateFees as getInitStateFees, setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { ACTIONS, URLS } from '../../constants/register_nameres';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, registrationService } from '../../services';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport { getNameResPrice } from '../../utils/ProductService';\n\nconst\n  defaultBusinessData = { type: 'LLCX' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultPageData = { skipBusinessName: false, skipDomesticJurisdiction: false  },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  getFlowOrder = (url) => {\n    const registration = { business: businessData, businessAddresses: businessAddressesData };\n\n    return getFlow(url, registration);\n  },\n  goInFlow = (flowOrder, jumpIndex) => {\n    if (jumpIndex < 0) {\n      document.location = getAppEntryPoint();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = `/${DASHBOARD_URLS.BASE}`;\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  go = (jump) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    goInFlow(flowOrder, jumpIndex);\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1);\n    }\n  },\n  doReset = () => {\n    _assign(businessData, defaultBusinessData);\n    _assign(businessAddressesData, defaultBusinessAddressesData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  let initialFlowOrder = 0;\n\n  if (pageData.skipDomesticJurisdiction) {\n    initialFlowOrder += 1;\n\n    if (pageData.skipBusinessName) {\n      initialFlowOrder += 1;\n    }\n  }\n\n  return `/${URLS.BASE}/${flowOrder[initialFlowOrder]}`;\n};\n\nexport const getStateFees = (dispatch, data, filingFees) => {\n  if (filingFees && (!filingFees[data.domesticJurisdiction] || !filingFees[data.domesticJurisdiction].entity_name_reservation)) {\n    getInitStateFees(dispatch, data.domesticJurisdiction);\n  }\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    goInFlow(flowOrder, jumpIndex);\n    return true;\n  }\n\n  return false;\n};\n\nexport const setAccountOwnerContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_CONTACT, true);\n};\n\nexport const setAccountOwnerName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_NAME, true);\n};\n\nexport const setAccountOwnerInformation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACC_OWN_INFO, true);\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME, true);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  businessData.type = data.type;\n  set(dispatch, data, ACTIONS.BUS_TYPE, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.COMPLETE, false);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data, filingFees) => {\n  set(dispatch, data, ACTIONS.DOM_JUR, true);\n  getStateFees(dispatch, data, filingFees);\n};\n\nexport const setInit = (dispatch, data) => {\n  setIsFreeAccount(data.isSimulated);\n  doReset();\n  setAppEntryPoint(dispatch, true);\n\n  const {\n    id = '',\n    fromDashboard = false,\n    domesticJurisdiction = '',\n    name = ''\n  } = data;\n  _assign(\n    pageData,\n    {\n      fromDashboard,\n      skipDomesticJurisdiction: !!domesticJurisdiction,\n      skipBusinessName: !!name,\n      id\n    });\n  _assign(businessData, { domesticJurisdiction, name });\n\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.INIT, false);\n\n  if (pageData.skipBusinessName) {\n    set(dispatch, data, ACTIONS.BUS_NAME, false);\n  }\n\n  if (pageData.skipDomesticJurisdiction) {\n    set(dispatch, data, ACTIONS.DOM_JUR, false);\n  }\n\n  if (id) {\n    set(dispatch, data, ACTIONS.BUS_ID, false);\n  }\n\n  browserHistory.replace(getEntryPoint());\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.MAIL_ADDR, true);\n};\n\nexport const setMailingAddressModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.MAIL_ADDR_MODAL, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, true);\n};\n\nexport const setPhysicalAddressModal = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  set(dispatch, data, ACTIONS.PHYS_ADDR_MODAL, false);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, true);\n};\n\nexport const setPrimaryContactModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT_MODAL, false);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n};\n\nconst createNameResOrder = (dispatch, reducerData, filingFees) => {\n  const serviceEndpoint = 'createNameReservation';\n  registrationService[serviceEndpoint](reducerData, filingFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    const price = getNameResPrice();\n    const addlData = createAdditionalData('name_res', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'name_reservation', price, addlData);\n    browserHistory.push(`/${URLS.BASE}/${URLS.SHARE}`);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n  const { registration } = reducerData,\n    { customer: { cardToken, expMonth, expYear, cvc, brand, last4 } } = registration,\n    paymentData = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n\n  if (!isLoggedIn() || !cardToken) {\n    createNameResOrder(dispatch, registration, filingFees);\n  } else {\n    accountService.addPaymentMethodV2(paymentData).then((response) => {\n      const mergedData = _assign({}, response.data, paymentData);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createNameResOrder(dispatch, registration, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const createLead = (dispatch, lead) => {\n  logger.logAction(ACTIONS.CREATE_LEAD);\n  dispatch({\n    type: ACTIONS.CREATE_LEAD\n  });\n  registrationService.createLead(lead).then((response) => {\n    logger.logAction(ACTIONS.CREATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const setBusinessData = (dispatch, data, filingFees) => {\n  set(dispatch, data, ACTIONS.BUS_DATA, false);\n  getStateFees(dispatch, data, filingFees);\n};\n\nexport const setContactData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_MODAL, false);\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  getStateFees,\n  goBack,\n  goToNextUncompletedPage,\n  orderAlreadyCreated,\n  setAccountOwnerContact,\n  setAccountOwnerName,\n  setBusinessName,\n  setBusinessType,\n  setComplete,\n  setDomesticJurisdiction,\n  setInit,\n  setMailingAddress,\n  setMailingAddressModal,\n  setPayment,\n  setPhysicalAddress,\n  setPhysicalAddressModal,\n  setPrimaryContact,\n  setShare,\n  createOrder,\n  createLead,\n  setBusinessData,\n  setContactData,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_zb_banking_preferred';\n\nconst\n  getFlowOrder = () => {\n    return [ URLS.PAYMENT ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_zb_banking_preferred';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as zbBankingPreferredKey } from '../../reducers/registration/zbBankingPreferred';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport { getZbBankingPreferredMonthlyPrice } from '../../utils/ProductService';\n\nconst defaultBusinessData = { isSimulated: false };\n\nconst\n  defaultData = { companyId: '', companyCount: 0 },\n  zbBankingPreferredData = getReducerSnapshot(zbBankingPreferredKey, defaultData),\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  getFlowOrder = (url) => {\n    const registration = {\n      zbBankingPreferred: zbBankingPreferredData,\n      business: businessData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (zbBankingPreferredData.companyId) {\n      return `/${URLS.BANKING_BASE}/${zbBankingPreferredData.companyId}/dashboard`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.INIT,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = zbBankingPreferredData.returnTo ? zbBankingPreferredData.returnTo : getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(zbBankingPreferredData, defaultData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(zbBankingPreferredData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  const { companyId } = data;\n\n  set(dispatch, { companyId }, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount } = data;\n  businessData.isSimulated = data.isSimulated;\n  setIsFreeAccount(data.isSimulated);\n  zbBankingPreferredData.returnTo = data.returnTo;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(zbBankingPreferredData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.PAYMENT}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createZbBankingPreferredOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createZbBankingPreferred(reducerData, accountId, filingFees).then((response) => {\n    const price = getZbBankingPreferredMonthlyPrice();\n    const addlData = createAdditionalData('zb_banking_preferred', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'zb_banking_preferred', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      // previous functionality\n      // go(1);\n\n      // Customized: Redirect to banking-ui awaiting verification state\n      window.location.replace(`/dashboard/${zbBankingPreferredData.companyId}/banking/dashboard?modal=application-received`);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { zbBankingPreferred } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = zbBankingPreferred;\n  if (!cardToken) {\n    createZbBankingPreferredOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createZbBankingPreferredOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n  // previous functionality\n  // go(1);\n\n  // Customized: Redirect to banking-ui dashboard\n  window.location.replace(`/dashboard/${zbBankingPreferredData.companyId}/banking/dashboard`);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setChooseCompany,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_onlinetools';\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [URLS.COMPLETE];\n    }\n\n    const\n      { domainName, business } = registration,\n      { companyCount, skip } = domainName,\n      { isSimulated } = business,\n      flow = [URLS.START];\n    if (companyCount > 1 && !isSimulated) {\n      flow.push(URLS.CHOOSE_COMPANY);\n    }\n    flow.push(URLS.DOMAIN_NAME);\n    if (!skip) {\n      flow.push(URLS.EMAIL_ADDRESS);\n    }\n    flow.push(URLS.PAYMENT, URLS.COMPLETE);\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_onlinetools';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as domainNameKey } from '../../reducers/registration/domainName';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport { getWebsiteToolsBundleYearlyPrice } from '../../utils/PlanService';\n\nconst\n  defaultDomainNameData = { companyId: '', companyCount: 0 },\n  domainNameData = getReducerSnapshot(domainNameKey, defaultDomainNameData),\n  businessData = getReducerSnapshot(businessKey, { isSimulated: false }),\n  getFlowOrder = (url) => {\n    const registration = {\n      domainName: domainNameData,\n      business: businessData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (domainNameData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${domainNameData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(domainNameData, defaultDomainNameData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setBasicEmailAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMAIL_ADDRESS, true);\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(domainNameData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setDomainNamePrimary = (dispatch, data) => {\n  const { domainName, skip } = data;\n  _assign(domainNameData, { domainName, skip });\n  if (skip) {\n    _assign(domainNameData, { emailUserName: '', emailSkip: true });\n  } else {\n    _assign(domainNameData, { emailSkip: false });\n  }\n  set(dispatch, data, ACTIONS.DOMAIN_NAME, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount, isSimulated, contact } = data;\n  businessData.isSimulated = isSimulated;\n  setIsFreeAccount(isSimulated);\n  businessData.contact = contact;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(domainNameData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setProductConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRODUCT_CONFIRM, true);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createOnlineToolsOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createWebsiteToolsBundle(reducerData, accountId, filingFees).then((response) => {\n    const price = getWebsiteToolsBundleYearlyPrice();\n    const addlData = createAdditionalData('web_tools_bundle', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'website_tools', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { domainName } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = domainName;\n\n  if (!cardToken) {\n    createOnlineToolsOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createOnlineToolsOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setBasicEmailAddress,\n  setChooseCompany,\n  setComplete,\n  setDomainNamePrimary,\n  setInit,\n  setPayment,\n  setProductConfirmation,\n  setStart,\n  resetAllData\n};\n","import { browserHistory } from 'react-router';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\n\nimport { goToNextUncompletedPage as blrGoToNextUncompletedPage } from '../complete_blr';\nimport { goToNextUncompletedPage as coraGoToNextUncompletedPage, setStart as setStartCompleteCoRA } from '../complete_cora';\nimport { goToNextUncompletedPage as corpGoToNextUncompletedPage } from '../complete_corp';\nimport { goToNextUncompletedPage as dbaGoToNextUncompletedPage } from '../complete_dbaentity';\nimport { goToNextUncompletedPage as einGoToNextUncompletedPage } from '../complete_ein';\nimport { goToNextUncompletedPage as llcGoToNextUncompletedPage } from '../complete_llc';\nimport { goToNextUncompletedPage as wfgGoToNextUncompletedPage } from '../complete_wfg';\nimport { goToNextUncompletedPage as nypubGoToNextUncompletedPage } from '../complete_nypub';\n\nimport { goToNextUncompletedPage as postpurchaseGoToNextUncompletedPage } from '../purchase_post_addons';\n\nimport { goToNextUncompletedPage as regBLRGoToNextUncompletedPage } from '../register_blr';\nimport { goToNextUncompletedPage as regCoRAPFGoToNextUncompletedPage } from '../register_cora_pf';\nimport { goToNextUncompletedPage as regDBAPFGoToNextUncompletedPage } from '../register_dbaentity_pf';\nimport { goToNextUncompletedPage as regEinGoToNextUncompletedPage } from '../register_ein';\nimport { goToNextUncompletedPage as regNameResGoToNextUncompletedPage } from '../register_nameres';\nimport { goToNextUncompletedPage as regNYPubGoToNextUncompletedPage } from '../register_nypub';\nimport { goToNextUncompletedPage as regWFGGoToNextUncompletedPage } from '../register_wfg';\nimport { goToNextUncompletedPage as regGoToNextUncompletedPage } from '../registration';\n\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\n\n/* eslint-disable max-statements */\nexport const goToNextRegistration = (dispatch, completedUrl, completedActionIndex, forceBusinessId) => {\n  if (forceBusinessId === 'reg') {\n    regGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n    return true;\n  }\n  if (forceBusinessId === 'bl') {\n    regBLRGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n    return true;\n  }\n  if (forceBusinessId === 'ein') {\n    regEinGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n    return true;\n  }\n  if (forceBusinessId === 'ra' || forceBusinessId === 'cora') {\n    regCoRAPFGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n    return true;\n  }\n  if (forceBusinessId === 'wfg') {\n    regWFGGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n    return true;\n  }\n  if (forceBusinessId === 'nypub') {\n    regNYPubGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n    return true;\n  }\n  if (completedActionIndex <= 0 || completedActionIndex >= 1000) {\n    return false;\n  }\n\n  if (completedActionIndex <= 99) {\n    regGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n  } else if (completedActionIndex <= 299) {\n    regEinGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n  } else if (completedActionIndex <= 399) {\n    regNameResGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n  } else if (completedActionIndex <= 499) {\n    regNYPubGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n  } else if (completedActionIndex <= 599) {\n    regWFGGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n  } else if (completedActionIndex <= 999) {\n    regDBAPFGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n  } else if (completedActionIndex <= 1199) {\n    regBLRGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n  } else if (completedActionIndex <= 1399) {\n    regCoRAPFGoToNextUncompletedPage(dispatch, completedUrl, forceBusinessId);\n  } else {\n    return false;\n  }\n  return true;\n};\n\nexport const goToNextCompletion = (dispatch, completedUrl, completedActionIndex, ldFlags) => {\n  // In all of these cases, a purchase has been done but the process is not completed. Force to completion.\n  if (completedActionIndex >= 10100 && completedActionIndex <= 10199) {\n    postpurchaseGoToNextUncompletedPage(dispatch, completedUrl);\n    return true;\n  }\n  if (completedActionIndex >= 5900 && completedActionIndex <= 5999) {\n    blrGoToNextUncompletedPage(dispatch, completedUrl);\n    return true;\n  }\n  if (completedActionIndex >= 5800 && completedActionIndex <= 5899) {\n    dbaGoToNextUncompletedPage(dispatch, completedUrl);\n    return true;\n  }\n  if (completedActionIndex >= 5700 && completedActionIndex <= 5799) {\n    nypubGoToNextUncompletedPage(dispatch, completedUrl);\n    return true;\n  }\n  if (completedActionIndex >= 5600 && completedActionIndex <= 5699) {\n    setStartCompleteCoRA(dispatch, {});\n    return true;\n  }\n  if (completedActionIndex >= 5500 && completedActionIndex <= 5599) {\n    coraGoToNextUncompletedPage(dispatch, completedUrl);\n    return true;\n  }\n  if (completedActionIndex >= 5400 && completedActionIndex <= 5499) {\n    wfgGoToNextUncompletedPage(dispatch, completedUrl);\n    return true;\n  }\n  if (completedActionIndex >= 5200 && completedActionIndex <= 5299) {\n    einGoToNextUncompletedPage(dispatch, completedUrl);\n    return true;\n  }\n  if (completedActionIndex >= 5100 && completedActionIndex <= 5199) {\n    corpGoToNextUncompletedPage(dispatch, completedUrl, ldFlags);\n    return true;\n  }\n  if (completedActionIndex >= 5000 && completedActionIndex <= 5099) {\n    llcGoToNextUncompletedPage(dispatch, completedUrl, ldFlags);\n    return true;\n  }\n  return false;\n};\n\nexport const goToNextRegOrComplete = (dispatch, completedUrl, completedActionIndex, skipLoginCheck, forceBusinessId) => {\n  const loggedIn = isLoggedIn(),\n    forceBus = loggedIn ? forceBusinessId : '';\n\n  if (forceBus === 'reg') {\n    regGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if (forceBus === 'ein') {\n    regEinGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if (forceBus === 'bl') {\n    regBLRGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if ((completedActionIndex > 0 && completedActionIndex <= 99)) {\n    regGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if (completedActionIndex >= 200 && completedActionIndex <= 299) {\n    regEinGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if (completedActionIndex >= 300 && completedActionIndex <= 399) {\n    regNameResGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if (completedActionIndex >= 400 && completedActionIndex <= 499) {\n    regNYPubGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if (completedActionIndex >= 500 && completedActionIndex <= 599) {\n    regWFGGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if (completedActionIndex >= 1100 && completedActionIndex <= 1199) {\n    regBLRGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if (completedActionIndex >= 1300 && completedActionIndex <= 1399) {\n    regCoRAPFGoToNextUncompletedPage(dispatch, completedUrl, forceBus);\n  } else if (completedActionIndex >= 5000 && completedActionIndex <= 5099) {\n    llcGoToNextUncompletedPage(dispatch, completedUrl);\n  } else if (completedActionIndex >= 5100 && completedActionIndex <= 5199) {\n    corpGoToNextUncompletedPage(dispatch, completedUrl);\n  } else if (completedActionIndex >= 5200 && completedActionIndex <= 5299) {\n    einGoToNextUncompletedPage(dispatch, completedUrl);\n  } else if (completedActionIndex >= 5400 && completedActionIndex <= 5499) {\n    wfgGoToNextUncompletedPage(dispatch, completedUrl);\n  } else if (completedActionIndex >= 5500 && completedActionIndex <= 5599) {\n    coraGoToNextUncompletedPage(dispatch, completedUrl);\n  } else if (completedActionIndex >= 5600 && completedActionIndex <= 5699) {\n    setStartCompleteCoRA(dispatch, {});\n  } else if (completedActionIndex >= 5700 && completedActionIndex <= 5799) {\n    nypubGoToNextUncompletedPage(dispatch, completedUrl);\n  } else if (completedActionIndex >= 5800 && completedActionIndex <= 5899) {\n    dbaGoToNextUncompletedPage(dispatch, completedUrl);\n  } else if (completedActionIndex >= 5900 && completedActionIndex <= 5999) {\n    blrGoToNextUncompletedPage(dispatch, completedUrl);\n  } else if (completedActionIndex >= 10100 && completedActionIndex <= 10199) {\n    postpurchaseGoToNextUncompletedPage(dispatch, completedUrl);\n  } else if (skipLoginCheck || loggedIn) {\n    document.location = `/${DASHBOARD_URLS.BASE}`;\n  } else {\n    browserHistory.replace(getAppEntryPoint());\n  }\n};\n\nlet beenHere = false;\nexport const isHereThisSession = (key) => {\n  if (beenHere) {\n    return true;\n  }\n  beenHere = true;\n  if (window.sessionStorage) {\n    const beenHereSession = window.sessionStorage.getItem(key) === 'true';\n    if (!beenHereSession) {\n      window.sessionStorage.setItem(key, 'true');\n      return false;\n    }\n    return true;\n  }\n  return false;\n};\n\nexport default {\n  goToNextRegistration,\n  goToNextCompletion,\n  goToNextRegOrComplete,\n  isHereThisSession\n};\n\n","import { URLS } from '../../../constants/register_smb_website_ecomm';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n\n    const { smbWebsiteEcomm } = registration,\n      { alreadyPurchased } = smbWebsiteEcomm;\n\n    return alreadyPurchased ? [ URLS.ALREADY_PURCHASED ] : [ URLS.CHOOSE_INTERVAL, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterSMBWebsiteEcommFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterSMBWebsiteEcommFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_smb_website_ecomm';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as smbWebsiteEcommKey } from '../../reducers/registration/smbWebsiteEcomm';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackClick, trackEvent } from '../../utils/ThirdPartyTracking';\nimport {\n  getSMBWebsiteEcommMonthlyPrice,\n  getSMBWebsiteEcommYearlyPrice\n} from '../../utils/ProductService';\n\nconst\n  defaultSMBWebsiteEcommData = { companyId: '', companyCount: 0 },\n  smbWebsiteEcommData = getReducerSnapshot(smbWebsiteEcommKey, defaultSMBWebsiteEcommData),\n  getFlowOrder = (url) => {\n    const registration = {\n      smbWebsiteEcomm: smbWebsiteEcommData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    return smbWebsiteEcommData.companyId ?\n      `/${COMPANY_URLS.BASE}/${smbWebsiteEcommData.companyId}` :  `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  trackClickEvent = (pageTitle, clickText, inputValue) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + 1 : index,\n      nextUrl = jumpIndex >= 0 && jumpIndex <= flowOrder.length ? flowOrder[jumpIndex] : '',\n\n      pageDetails = {\n        activeFlow: URLS.BASE,\n        pageTitle,\n        pageType: 'standalone - SMB Website + Ecomm'\n      },\n      clickDetails = {\n        clickType: 'button',\n        clickText,\n        inputValue\n      };\n    if (nextUrl) {\n      clickDetails.nextUrl = nextUrl;\n    }\n    trackClick(pageDetails, clickDetails);\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(smbWebsiteEcommData, defaultSMBWebsiteEcommData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\n\nexport const setAlreadyPurchased = (dispatch, data) => {\n  const { redirect } = data;\n  if (redirect) {\n    trackClickEvent(URLS.ALREADY_PURCHASED, 'Go to Dashboard', 'true');\n    setTimeout(() => {\n      set(dispatch, {}, ACTIONS.ALREADY_PURCHASED, false);\n      document.location = getCompanyUrl();\n    }, 1000);\n  } else {\n    set(dispatch, {}, ACTIONS.ALREADY_PURCHASED, false);\n  }\n};\n\nexport const setChooseInterval = (dispatch, data) => {\n  const { yearlyInterval } = data;\n  _assign(smbWebsiteEcommData, { yearlyInterval });\n  trackClickEvent(URLS.CHOOSE_INTERVAL, yearlyInterval ? 'Pay yearly' : 'Pay monthly', yearlyInterval ? 'true' : 'false');\n  set(dispatch, data, ACTIONS.CHOOSE_INTERVAL, true);\n};\n\n\nexport const setComplete = (dispatch, data) => {\n  const { redirect } = data;\n  if (smbWebsiteEcommData.fromPublish) {\n    set(dispatch, {}, ACTIONS.COMPLETE, true);\n    document.location = `/mfe/websites/postpublish?external_uid=${smbWebsiteEcommData.externalUid}&accountname=${smbWebsiteEcommData.accountName}&sitename=${smbWebsiteEcommData.siteName}&planid=${smbWebsiteEcommData.planId}`;\n  } else if (redirect) {\n    trackClickEvent(URLS.COMPLETE, 'Go to Dashboard', 'true');\n    setTimeout(() => {\n      set(dispatch, {}, ACTIONS.COMPLETE, true);\n      document.location = getCompanyUrl();\n    }, 2000);\n  } else {\n    set(dispatch, {}, ACTIONS.COMPLETE, false);\n  }\n};\n\n\nexport const setInit = (dispatch, data) => {\n  const { alreadyPurchased, companyId, fromPublish, externalUid, accountName, siteName, planId } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(smbWebsiteEcommData, { companyId, alreadyPurchased, fromPublish, externalUid, accountName, siteName, planId });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${alreadyPurchased ? URLS.ALREADY_PURCHASED : URLS.CHOOSE_INTERVAL}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  trackClickEvent(URLS.PAYMENT, 'Place Your Order', 'true');\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nconst createSMBWebsiteEcommOrder = (dispatch, reducerData, accountId) => {\n  registrationService.createSMBWebsiteEcomm(reducerData, accountId).then((response) => {\n    const { smbWebsiteEcomm: { yearlyInterval } } = reducerData;\n    const price = yearlyInterval ? getSMBWebsiteEcommYearlyPrice() : getSMBWebsiteEcommMonthlyPrice();\n    const addlData = createAdditionalData('smb_website_ecomm', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'smb_website_ecomm', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\n\nexport const createOrder = (dispatch, reducerData, accountId) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { smbWebsiteEcomm } = reducerData,\n    { cardToken, expMonth, expYear, cvc, brand, last4 } = smbWebsiteEcomm;\n\n  if (!cardToken) {\n    createSMBWebsiteEcommOrder(dispatch, reducerData, accountId);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createSMBWebsiteEcommOrder(dispatch, reducerData, accountId);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setAlreadyPurchased,\n  setChooseInterval,\n  setComplete,\n  setInit,\n  setPayment,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_expense_tracker_n_tax_filing';\nimport { isExpenseTrackingWithTaxFilingEnabled } from '../../../utils/ProductService';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = () => {\n    if (isExpenseTrackingWithTaxFilingEnabled()) {\n      return [ URLS.START, URLS.PAYMENT, URLS.COMPLETE ];\n    }\n    return [];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = () => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder();\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_expense_tracker_n_tax_filing';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as ETNTFKey } from '../../reducers/registration/expenseTrackerNTaxFiling';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { setReducerProgressBar, resetReducerProgressBar } from '../../utils/ProgressBar';\n\nconst setProgressBar = (dispatch, flowOrder, currentStep) => {\n    setReducerProgressBar(\n      dispatch,\n      {\n        flowOrder,\n        currentStep,\n        activeFlow: URLS.BASE\n      }\n    );\n  },\n  resetProgressBar = (dispatch) => {\n    resetReducerProgressBar(dispatch);\n  };\n\nconst\n  defaultETNTFData = { companyId: '', companyCount: 0 },\n  ETNTFData = getReducerSnapshot(ETNTFKey, defaultETNTFData),\n  getCompanyUrl = () => {\n    if (ETNTFData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${ETNTFData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlow(),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      resetProgressBar(dispatch);\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      resetProgressBar(dispatch);\n      document.location = getCompanyUrl();\n    } else {\n      setProgressBar(dispatch, flowOrder, flowOrder[jumpIndex]);\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(defaultETNTFData, ETNTFData);\n  };\n\nexport const getEntryPoint = (dispatch) => {\n  const flowOrder = getFlow();\n  setProgressBar(dispatch, flowOrder, flowOrder[0]);\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(ETNTFData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(getEntryPoint(dispatch));\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createETNTF = (dispatch, reducerData, accountId) => {\n  registrationService.createExpenseTrackerNTaxFiling(reducerData, accountId).then((response) => {\n    const price = 0;\n    const addlData = createAdditionalData('expense_tracker_and_tax_filing', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'expense_tracker_and_tax_filing', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n\n      go(1, dispatch);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { expenseTrackerNTaxFiling } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4  } = expenseTrackerNTaxFiling;\n\n  if (!cardToken) {\n    createETNTF(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createETNTF(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import { ACTIONS } from '../../constants/companies';\nimport logger from '../../utils/ClientLogger';\nimport { companyService } from '../../services';\n\nexport const getCompanies = (dispatch) => {\n  logger.logAction(ACTIONS.GET_COMPANIES);\n  dispatch({\n    type: ACTIONS.GET_COMPANIES\n  });\n  companyService.getCompanies().then((response) => {\n    logger.logAction(ACTIONS.GET_COMPANIES_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.GET_COMPANIES_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_COMPANIES_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_COMPANIES_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 3000\n      }\n    });\n  });\n};\n\nexport default {\n  getCompanies\n};\n","import _assign from 'lodash/assign';\n\nimport { resetAllData as resetAllAccountData } from '../register_account';\nimport { resetAllData } from '../registration';\nimport { ACTIONS } from '../../constants/account';\nimport { ACTIONS as REG_ACTIONS } from '../../constants/register_account';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, initializationService } from '../../services';\nimport { setInitialization } from '../initialization';\nimport { processLogIn, getPartner, getEntryPointGroup } from '../../utils/PartnerUtils';\nimport { logout } from '../../utils/AuthService';\n\nexport const getAccountHasZBMoneyProSubscription = (dispatch) => {\n  accountService.hasZBMoneyProSubscription().then((hasZBMoneyProSubscription) => {\n    dispatch({\n      type: ACTIONS.GET_ACCOUNT_HAS_ZB_MONEY_PRO,\n      payload: {\n        data: { hasZBMoneyProSubscription }\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_ACCOUNT_HAS_ZB_MONEY_PRO, err);\n    dispatch({\n      type: ACTIONS.GET_ACCOUNT_HAS_ZB_MONEY_PRO,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 3000\n      }\n    });\n  });\n};\n\n/* eslint-disable max-statements */\nexport const getAccount = (dispatch) => {\n  logger.logAction(ACTIONS.GET_ACCOUNT);\n  dispatch({\n    type: ACTIONS.GET_ACCOUNT\n  });\n  accountService.get().then((response) => {\n    const reInit = processLogIn(response);\n    if (reInit) {\n      const initPayload = { setVisit: false, partner: getPartner() || '', entry_point_group: getEntryPointGroup() || '' };\n      initializationService.initialize(initPayload).then((responseInit) => {\n        setInitialization(dispatch, responseInit);\n        logger.logAction(ACTIONS.GET_ACCOUNT_COMPLETE, response);\n        dispatch({\n          type: ACTIONS.GET_ACCOUNT_COMPLETE,\n          payload: {\n            data: response\n          }\n        });\n      });\n    } else {\n      logger.logAction(ACTIONS.GET_ACCOUNT_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.GET_ACCOUNT_COMPLETE,\n        payload: {\n          data: response\n        }\n      });\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_ACCOUNT_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_ACCOUNT_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 3000\n      }\n    });\n  });\n  getAccountHasZBMoneyProSubscription(dispatch);\n};\n\nexport const getPaymentMethods = (dispatch) => {\n  logger.logAction(ACTIONS.GET_PAYMENT_METHODS);\n  dispatch({\n    type: ACTIONS.GET_PAYMENT_METHODS\n  });\n  accountService.getPaymentMethods().then((response) => {\n    logger.logAction(ACTIONS.GET_PAYMENT_METHODS_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.GET_PAYMENT_METHODS_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_PAYMENT_METHODS_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_PAYMENT_METHODS_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 3000\n      }\n    });\n  });\n};\n\nexport const addPaymentMethod = (dispatch, data) => {\n  logger.logAction(ACTIONS.ADD_PAYMENT_METHOD, data);\n  dispatch({\n    type: ACTIONS.ADD_PAYMENT_METHOD,\n    payload: {\n      data\n    }\n  });\n  accountService.addPaymentMethod(data).then((response) => {\n    const mergedData = _assign({}, response.data, data);\n    logger.logAction(ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n    dispatch({\n      type: ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n      payload: {\n        data: mergedData\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 2000\n      }\n    });\n  });\n};\n\nexport const setPaymentMethodDefault = (dispatch, data) => {\n  logger.logAction(ACTIONS.SET_PAYMENT_METHOD_DEFAULT, data);\n  dispatch({\n    type: ACTIONS.SET_PAYMENT_METHOD_DEFAULT,\n    payload: {\n      data\n    }\n  });\n  accountService.setPaymentMethodDefault(data.id).then((response) => {\n    const mergedData = _assign({}, response.data, data);\n    logger.logAction(ACTIONS.SET_PAYMENT_METHOD_DEFAULT_COMPLETE, mergedData);\n    dispatch({\n      type: ACTIONS.SET_PAYMENT_METHOD_DEFAULT_COMPLETE,\n      payload: {\n        data: mergedData\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.SET_PAYMENT_METHOD_DEFAULT_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.SET_PAYMENT_METHOD_DEFAULT_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 2000\n      }\n    });\n  });\n};\n\nexport const acceptTOS = (dispatch) => {\n  logger.logAction(ACTIONS.ACCEPT_TOS, {});\n  dispatch({\n    type: ACTIONS.ACCEPT_TOS\n  });\n  accountService.acceptTOS().then(() => {\n    logger.logAction(ACTIONS.ACCEPT_TOS_COMPLETE, {});\n    dispatch({\n      type: ACTIONS.ACCEPT_TOS_COMPLETE\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.ACCEPT_TOS_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.ACCEPT_TOS_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 2000\n      }\n    });\n  });\n};\n\nexport const setLogout = (dispatch) => {\n  logger.logAction(ACTIONS.SET_LOGOUT);\n  dispatch({\n    type: ACTIONS.SET_LOGOUT\n  });\n  dispatch({\n    type: REG_ACTIONS.RESET\n  });\n  resetAllData(dispatch);\n  resetAllAccountData(dispatch);\n  logout();\n};\n\nexport default {\n  addPaymentMethod,\n  getAccount,\n  getPaymentMethods,\n  setPaymentMethodDefault,\n  setLogout,\n  acceptTOS\n};\n","import _concat from 'lodash/concat';\n\nimport { URLS } from '../../../constants/registration';\nimport { isLoggedIn } from '../../../utils/AuthService';\nimport { getPlanLevel, isAutoIncludedInPlan } from '../../../utils/PlanService';\nimport {\n  isBasicEmailEnabled,\n  isBankingResolutionEnabled,\n  isCorporateDocsEnabled,\n  isDomainNameEnabled,\n  isDomainNamePrivacyEnabled,\n  isEINEnabled,\n  isNYPubEnabled,\n  isNYPubUpsellEnabled,\n  isOpAgreementEnabled,\n  isStaticWebsiteEnabled,\n  isWFGEnabled,\n  isUpsellEnabled,\n  isRAOfferEnabled\n} from '../../../utils/ProductService';\n\nconst\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing } = registration.businessAddresses,\n      { planLevel } = registration.purchase,\n      flowItems = [];\n\n    if (planLevel) {\n      return flowItems;\n    }\n\n    flowItems.push(URLS.PHYS_ADDR);\n    if (!usePhysicalAsMailing) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getPlanPurchaseFlow = (url, registration) => {\n    const flowItems = [],\n      { business, initialization, purchase } = registration,\n      { domesticJurisdiction, type } = business,\n      { expediteFees } = initialization,\n      {\n        bankingResolutionAddOn,\n        bankingResolutionUpsellSkip,\n        basicEmailAddOn,\n        basicEmailUpsellSkip,\n        corporateDocsAddOn,\n        corporateDocsUpsellSkip,\n        domainName,\n        domainNameAddOn,\n        domainNameUpsellSkip,\n        domainNamePrivacyAddOn,\n        domainNamePrivacyUpsellSkip,\n        einAddOn,\n        einUpsellSkip,\n        expediteAddOn,\n        expediteUpsellSkip,\n        nyPublicationAddOn,\n        nyPublicationUpsellSkip,\n        operatingAgreementAddOn,\n        operatingAgreementUpsellSkip,\n        staticWebsiteAddOn,\n        staticWebsiteUpsellSkip,\n        worryFreeAddOn,\n        worryFreeUpsellSkip,\n        planLevel\n      } = purchase,\n      isStateClosed = domesticJurisdiction ? (expediteFees[domesticJurisdiction] || { standard: { delayed: false } }).standard.delayed : false,\n      addStaticWebsiteToflow = isStaticWebsiteEnabled() && staticWebsiteAddOn && !staticWebsiteUpsellSkip;\n    if (!planLevel || !isUpsellEnabled()) {\n      return [];\n    }\n\n    if (isRAOfferEnabled()) {\n      flowItems.push(URLS.PURCH_RAS);\n    }\n\n    if (!isStateClosed && expediteAddOn && !expediteUpsellSkip) {\n      flowItems.push(URLS.PURCH_EXP);\n    }\n    if (isEINEnabled() && einAddOn && !einUpsellSkip) {\n      flowItems.push(URLS.PURCH_EIN);\n    }\n    if (isWFGEnabled() && worryFreeAddOn && !worryFreeUpsellSkip) {\n      flowItems.push(URLS.PURCH_WF);\n    }\n    if (isOpAgreementEnabled() && operatingAgreementAddOn && !operatingAgreementUpsellSkip) {\n      flowItems.push(URLS.PURCH_OP_AGREE);\n    }\n    if (isBankingResolutionEnabled() && bankingResolutionAddOn && !bankingResolutionUpsellSkip) {\n      flowItems.push(URLS.PURCH_BANK_RES);\n    }\n    if (isCorporateDocsEnabled() && corporateDocsAddOn && !corporateDocsUpsellSkip) {\n      flowItems.push(URLS.PURCH_CORP_DOCS);\n    }\n    if (isNYPubEnabled() && isNYPubUpsellEnabled() && domesticJurisdiction === 'NY' && type === 'LLCX' && nyPublicationAddOn && !nyPublicationUpsellSkip) {\n      flowItems.push(URLS.PURCH_NYPUB);\n    }\n    if (isNYPubEnabled() && isNYPubUpsellEnabled() && domesticJurisdiction === 'NY' && type === 'LLCX') {\n      flowItems.push(URLS.PUB_COUNTY_NY);\n    }\n    if (isDomainNameEnabled() && domainNameAddOn && !domainNameUpsellSkip) {\n      flowItems.push(URLS.PURCH_DOMAIN);\n    }\n    if (domainName === false && !isAutoIncludedInPlan(getPlanLevel(planLevel, domesticJurisdiction), 'domain_name_reg')) {\n      if (addStaticWebsiteToflow) {\n        flowItems.push(URLS.PURCH_WEBSITE);\n      }\n      return flowItems;\n    }\n    if (isDomainNamePrivacyEnabled() && domainNamePrivacyAddOn && !domainNamePrivacyUpsellSkip) {\n      flowItems.push(URLS.PURCH_DOMAIN_PRIV);\n    }\n    if (addStaticWebsiteToflow) {\n      flowItems.push(URLS.PURCH_WEBSITE);\n    }\n    if (isBasicEmailEnabled() && basicEmailAddOn && !basicEmailUpsellSkip) {\n      flowItems.push(URLS.PURCH_EMAIL);\n    }\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getPurchaseFlow = (url, registration) => {\n    const flowItems = [URLS.PURCH_START],\n      { page, purchase, business, initialization } = registration,\n      { domesticJurisdiction, type } = business,\n      { expediteFees } = initialization,\n      { forceToDataConfirmation } = page,\n      {\n        bankingResolutionAddOn,\n        bankingResolutionUpsellSkip,\n        basicEmailAddOn,\n        basicEmailUpsellSkip,\n        corporateDocsAddOn,\n        corporateDocsUpsellSkip,\n        domainName,\n        domainNameAddOn,\n        domainNameUpsellSkip,\n        domainNamePrivacyAddOn,\n        domainNamePrivacyUpsellSkip,\n        einAddOn,\n        einUpsellSkip,\n        expediteUpsellSkip,\n        nyPublicationAddOn,\n        nyPublicationUpsellSkip,\n        operatingAgreementAddOn,\n        operatingAgreementUpsellSkip,\n        staticWebsiteAddOn,\n        staticWebsiteUpsellSkip,\n        worryFreeAddOn,\n        worryFreeUpsellSkip,\n        planLevel\n      } = purchase,\n      isStateClosed = domesticJurisdiction ? (expediteFees[domesticJurisdiction] || { standard: { delayed: false } }).standard.delayed : false,\n      addStaticWebsiteToflow = isStaticWebsiteEnabled() && staticWebsiteAddOn && !staticWebsiteUpsellSkip;\n\n    if (planLevel) {\n      return [];\n    }\n\n    if (!isStateClosed && !expediteUpsellSkip) {\n      flowItems.push(URLS.PURCH_EXP);\n    }\n    if (isEINEnabled() && einAddOn && !einUpsellSkip) {\n      flowItems.push(URLS.PURCH_EIN);\n    }\n    if (forceToDataConfirmation) {\n      return flowItems;\n    }\n    if (isWFGEnabled() && worryFreeAddOn && !worryFreeUpsellSkip) {\n      flowItems.push(URLS.PURCH_WF);\n    }\n    if (isOpAgreementEnabled() && operatingAgreementAddOn && !operatingAgreementUpsellSkip) {\n      flowItems.push(URLS.PURCH_OP_AGREE);\n    }\n    if (isBankingResolutionEnabled() && bankingResolutionAddOn && !bankingResolutionUpsellSkip) {\n      flowItems.push(URLS.PURCH_BANK_RES);\n    }\n    if (isCorporateDocsEnabled() && corporateDocsAddOn && !corporateDocsUpsellSkip) {\n      flowItems.push(URLS.PURCH_CORP_DOCS);\n    }\n    if (isNYPubEnabled() && isNYPubUpsellEnabled() && domesticJurisdiction === 'NY' && type === 'LLCX' && nyPublicationAddOn && !nyPublicationUpsellSkip) {\n      flowItems.push(URLS.PURCH_NYPUB);\n    }\n    if (isDomainNameEnabled() && domainNameAddOn && !domainNameUpsellSkip) {\n      flowItems.push(URLS.PURCH_DOMAIN);\n    }\n    if (domainName === false) {\n      if (addStaticWebsiteToflow) {\n        flowItems.push(URLS.PURCH_WEBSITE);\n      }\n      return flowItems;\n    }\n    if (isDomainNamePrivacyEnabled() && domainNamePrivacyAddOn && !domainNamePrivacyUpsellSkip) {\n      flowItems.push(URLS.PURCH_DOMAIN_PRIV);\n    }\n    if (addStaticWebsiteToflow) {\n      flowItems.push(URLS.PURCH_WEBSITE);\n    }\n    if (isBasicEmailEnabled() && basicEmailAddOn && !basicEmailUpsellSkip) {\n      flowItems.push(URLS.PURCH_EMAIL);\n    }\n    return flowItems;\n  },\n  /* eslint-enable max-statements */\n\n  getPaymentFlow = (url, registration) => { // eslint-disable-line no-unused-vars\n    const flowItems = [URLS.DATA_CONFIRM, URLS.PRODUCT_CONFIRM];\n\n    flowItems.push(URLS.PAYMENT);\n\n    return flowItems;\n  },\n\n  getSCorpQuestionFlow = (url, registration) => {\n    const\n      flowItems = [],\n      { hasSCorp, scorpAllUSOwners, scorpOperateLoss, scorpPaySalary } = registration.business;\n\n    if (!hasSCorp) {\n      return flowItems;\n    }\n\n    flowItems.push(URLS.SCORP_ALL_US_OWNERS, URLS.SCORP_LOSS);\n    if (scorpAllUSOwners) {\n      if (!scorpOperateLoss) {\n        flowItems.push(URLS.SCORP_SALARY);\n        if (!scorpPaySalary) {\n          flowItems.push(URLS.SCORP_INVESTORS);\n        }\n      }\n    } else if (!scorpOperateLoss) {\n      flowItems.push(URLS.SCORP_INVESTORS);\n    } else {\n      flowItems.push(URLS.SCORP_SALARY);\n      if (!scorpPaySalary) {\n        flowItems.push(URLS.SCORP_INVESTORS);\n      }\n    }\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getNewCustomerFlowOrder = (url, registration) => {\n    if (url === URLS.LOGIN_POST) {\n      return [URLS.LOGIN_POST];\n    }\n\n    const\n      { business, page, purchase } = registration,\n      { skipBusinessName, skipPlansPage, skipToDomesticJurisdiction, fromBNG } = page,\n      { planLevel } = purchase,\n      { domesticJurisdiction, type } = business,\n      flowItems = getSCorpQuestionFlow(url, registration);\n\n    if (!skipToDomesticJurisdiction) {\n      if ((skipBusinessName || url === URLS.BUS_NAME_CONFIRM) && !fromBNG) {\n        flowItems.push(URLS.BUS_NAME_CONFIRM);\n      }\n    }\n    if (!skipPlansPage && !skipToDomesticJurisdiction) {\n      flowItems.push(URLS.PURCH_PLAN);\n    }\n    if (planLevel) {\n      flowItems.push(URLS.ACCOWN_NAME);\n      flowItems.push(URLS.ACCOWN_CONTACT);\n    }\n    if (!domesticJurisdiction || url === URLS.DOM_JUR) {\n      flowItems.push(URLS.DOM_JUR);\n    }\n    if (!type || url === URLS.BUS_TYPE) {\n      flowItems.push(URLS.BUS_TYPE);\n    }\n    if (planLevel) {\n      if (!skipBusinessName || url === URLS.BUS_NAME) {\n        flowItems.push(URLS.BUS_NAME);\n      }\n      flowItems.push(...getPlanPurchaseFlow(url, registration));\n    } else {\n      flowItems.push(URLS.ACCOWN_NAME);\n      flowItems.push(...getAddressFlow(url, registration));\n      if (!skipBusinessName || url === URLS.BUS_NAME) {\n        flowItems.push(URLS.BUS_NAME);\n      }\n      flowItems.push(URLS.ACCOWN_CONTACT);\n    }\n    return _concat(flowItems, getPurchaseFlow(url, registration), getPaymentFlow(url, registration), URLS.LOGIN_POST);\n  },\n\n  getNewCompanyFlowOrder = (url, registration) => {\n    if (url === URLS.LOGIN_POST) {\n      return [URLS.LOGIN_POST];\n    }\n\n    const\n      { business, page } = registration,\n      { skipBusinessName, skipPlansPage, skipToDomesticJurisdiction, fromBNG } = page,\n      { noIdMatches, hasCompanies, domesticJurisdiction, type, isSimulated } = business,\n      flowItems = [];\n\n    if (!skipToDomesticJurisdiction) {\n      if (((skipBusinessName || url === URLS.BUS_NAME_CONFIRM) && !fromBNG) && !isSimulated) {\n        flowItems.push(URLS.BUS_NAME_CONFIRM);\n      } else if (!noIdMatches && hasCompanies && !isSimulated) {\n        flowItems.push(URLS.BUS_ID);\n      }\n    }\n    flowItems.push(...getSCorpQuestionFlow(url, registration));\n    if (!skipPlansPage && !skipToDomesticJurisdiction) {\n      flowItems.push(URLS.PURCH_PLAN);\n    }\n    if (!domesticJurisdiction || url === URLS.DOM_JUR || skipToDomesticJurisdiction) {\n      flowItems.push(URLS.DOM_JUR);\n    }\n    if (!type || url === URLS.BUS_TYPE) {\n      flowItems.push(URLS.BUS_TYPE);\n    }\n    flowItems.push(...getAddressFlow(url, registration));\n    if (!skipBusinessName || url === URLS.BUS_NAME || isSimulated) {\n      flowItems.push(URLS.BUS_NAME);\n    }\n    flowItems.push(...getPlanPurchaseFlow(url, registration));\n\n    return _concat(flowItems, getPurchaseFlow(url, registration), getPaymentFlow(url, registration), URLS.LOGIN_POST);\n  },\n\n  getExistingCompanyFlowOrder = (url, registration) => {\n    return _concat([URLS.BUS_ID], registration.page.skipPlansPage ? [] : [URLS.PURCH_PLAN], getPlanPurchaseFlow(url, registration), getPurchaseFlow(url, registration), getPaymentFlow(url, registration));\n  },\n\n  getFlowOrder = (url, registration) => {\n    const { business } = registration,\n      { id, isSimulated } = business;\n    if (isLoggedIn()) {\n      if (id && !isSimulated) {\n        return getExistingCompanyFlowOrder(url, registration);\n      }\n      return getNewCompanyFlowOrder(url, registration);\n    }\n    return getNewCustomerFlowOrder(url, registration);\n  };\n\nexport default {\n  getAddressFlow,\n  getPlanPurchaseFlow,\n  getPurchaseFlow,\n  getPaymentFlow,\n  getNewCustomerFlowOrder,\n  getNewCompanyFlowOrder,\n  getExistingCompanyFlowOrder,\n  getFlowOrder\n};\n","import { getRegistrationFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => { // eslint-disable-line no-unused-vars\n    return (flowTestMap[getRegistrationFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\nimport { getStateFees as getInitStateFees, getExpediteFees as getInitExpediteFees, setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as CORP_URLS } from '../../constants/complete_corp';\nimport { URLS as LLC_URLS } from '../../constants/complete_llc';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS, PLAN_LEVEL_MAP, getPageDetails } from '../../constants/registration';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, registrationService } from '../../services';\nimport { storageKey as initializationKey } from '../../reducers/initialization/fees';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { storageKey as registeredAgentKey } from '../../reducers/registration/registeredAgent';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport { isPF, getPartner, getEntryPointGroup } from '../../utils/PartnerUtils';\nimport { parseBoolToString } from '../../utils/DataCleaningUtils';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { trackClick, trackEvent, getButtonClickDetails, getArrowClickDetails, getClickDetails } from '../../utils/ThirdPartyTracking';\nimport { setReducerProgressBar, resetReducerProgressBar } from '../../utils/ProgressBar';\nimport { parseUrl } from '../../utils/UrlUtils';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\n\nconst\n  defaultInitializationData = { expediteFees: {} },\n  defaultBusinessData = {\n    id: '',\n    type: '',\n    addressMatch: false,\n    addressIsGoogle: false,\n    domesticJurisdiction: '',\n    state: '',\n    hasSCorp: false,\n    scorpAllUSOwners: null,\n    scorpOutsideInvestors: null,\n    scorpOperateLoss: null,\n    scorpPaySalary: null\n  },\n  businessData = _assign(getReducerSnapshot(businessKey, defaultBusinessData), { noIdMatches: false, hasCompanies: true }),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultPageData = { forceToRegisteredAgent: false, forceToDataConfirmation: false, skipBusinessName: false, skipPlansPage: false, skipToDomesticJurisdiction: false },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  defaultRegisteredAgentData = { type: 'AccountOwner' },\n  registeredAgentData = getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData),\n  defaultPurchaseData = {\n    bankingResolutionAddOn: false,\n    bankingResolutionUpsellSkip: false,\n    basicEmailAddOn: false,\n    basicEmailUpsellSkip: false,\n    corporateDocsAddOn: false,\n    corporateDocsUpsellSkip: false,\n    domainName: null,\n    domainNameAddOn: false,\n    domainNameUpsellSkip: false,\n    domainNamePrivacyAddOn: false,\n    domainNamePrivacyUpsellSkip: false,\n    ein: false,\n    einAddOn: false,\n    einUpsellSkip: false,\n    expediteAddOn: false,\n    expediteUpsellSkip: false,\n    nyPublicationAddOn: false,\n    nyPublicationUpsellSkip: false,\n    operatingAgreementAddOn: false,\n    operatingAgreementUpsellSkip: false,\n    staticWebsiteAddOn: false,\n    staticWebsiteUpsellSkip: false,\n    worryFreeAddOn: false,\n    worryFreeUpsellSkip: false,\n    planLevel: '',\n    registeredAgentService: true\n  },\n  purchaseData = getReducerSnapshot(purchaseKey, defaultPurchaseData),\n  getFlowOrder = (url) => {\n    const\n      registration = {\n        business: businessData,\n        businessAddresses: businessAddressesData,\n        initialization: getReducerSnapshot(initializationKey, defaultInitializationData),\n        page: pageData,\n        registeredAgent: registeredAgentData,\n        purchase: purchaseData\n      },\n      flow = getFlow(url, registration);\n\n    return flow;\n  },\n  setProgressBar = (dispatch, flowOrder, currentStep) => {\n    setReducerProgressBar(\n      dispatch,\n      {\n        flowOrder,\n        currentStep,\n        activeFlow: URLS.BASE\n      }\n    );\n  },\n  resetProgressBar = (dispatch) => {\n    resetReducerProgressBar(dispatch);\n  },\n  makeUrlMovement = (movement) => {\n    const { useLocation, url, method } = movement;\n    if (useLocation) {\n      document.location = url;\n    } else {\n      method(url);\n    }\n  },\n  go = (dispatch, jump, doReplace, executeMovement) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      { type } = businessData,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n    const urlMovement = {\n      method\n    };\n    if (jumpIndex < 0) {\n      resetProgressBar(dispatch);\n      if (!isLoggedIn()) {\n        urlMovement.url = getAppEntryPoint();\n        urlMovement.useLocation = true;\n      } else {\n        urlMovement.url = `/${DASHBOARD_URLS.BASE}`;\n        urlMovement.useLocation = true;\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      const urlsSet = type === 'CORP' ? CORP_URLS : LLC_URLS;\n      resetProgressBar(dispatch);\n      urlMovement.url = `/${urlsSet.BASE}/${urlsSet.START_COMP}`;\n      urlMovement.method = browserHistory.push;\n    } else {\n      setProgressBar(dispatch, flowOrder, flowOrder[jumpIndex]);\n      urlMovement.url = `/${URLS.BASE}/${flowOrder[jumpIndex]}`;\n    }\n    if (executeMovement) {\n      makeUrlMovement(urlMovement);\n    }\n    return urlMovement;\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  set = (dispatch, data, actionKey, moveUrl, doReplace, clickEvent) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    const urlMovement = moveUrl ? go(dispatch, 1, doReplace) : {};\n    if (clickEvent) {\n      trackClick(\n        getPageDetails(parseUrl(location.pathname, URLS.BASE)),\n        { nextUrl: urlMovement.url || '', ...clickEvent }\n      );\n    }\n    if (moveUrl) {\n      makeUrlMovement(urlMovement);\n    }\n  },\n  doReset = () => {\n    _assign(businessData, defaultBusinessData, { noIdMatches: false, hasCompanies: true });\n    _assign(businessAddressesData, defaultBusinessAddressesData);\n    _assign(pageData, defaultPageData);\n    _assign(registeredAgentData, defaultRegisteredAgentData);\n    _assign(purchaseData, defaultPurchaseData);\n  };\n\nexport const getEntryPoint = (dispatch) => {\n  const flowOrder = getFlowOrder('');\n  setProgressBar(dispatch, flowOrder, flowOrder[0]);\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: parseUrl(document.location.pathname, URLS.BASE) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  const urlMovement = go(dispatch, -1, false);\n  trackClick(\n    getPageDetails(parseUrl(location.pathname, URLS.BASE)),\n    { nextUrl: urlMovement.url || '', ...getArrowClickDetails('', 'back') }\n  );\n  makeUrlMovement(urlMovement);\n};\n\nexport const resetAllData = (dispatch, data) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET,\n    payload: {\n      data: data || {}\n    }\n  });\n  doReset();\n};\n\nexport const goToNextUncompletedPage = (dispatch, location, forceBusinessId) => {\n  if (forceBusinessId === 'reg') {\n    browserHistory.push(`/${URLS.BASE}/${URLS.BUS_ID}`);\n    return true;\n  }\n\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1,\n    { type } = businessData;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      const urlsSet = type === 'CORP' ? CORP_URLS : LLC_URLS;\n      resetProgressBar(dispatch);\n      browserHistory.push(`/${urlsSet.BASE}/${urlsSet.START_COMP}`);\n    } else {\n      setProgressBar(dispatch, flowOrder, flowOrder[jumpIndex]);\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\n/* The next two are used to get fees - they need to be at the top as they are referenced elsewhere in the code */\nexport const getExpediteFees = (dispatch, data, expediteFees) => {\n  if (!expediteFees || !expediteFees[data.domesticJurisdiction]) {\n    getInitExpediteFees(dispatch, data.domesticJurisdiction);\n  }\n};\n\nexport const getStateFees = (dispatch, data, filingFees) => {\n  if (!filingFees[data.domesticJurisdiction]) {\n    getInitStateFees(dispatch, data.domesticJurisdiction);\n  }\n};\n\n/* Regular Actions */\n\nexport const setAccountOwnerContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_CONTACT, true, false, getButtonClickDetails('next'));\n\n};\n\nexport const setAccountOwnerName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_NAME, true, false, getButtonClickDetails('next'));\n};\n\nexport const setBusinessId = (dispatch, data) => {\n  businessData.id = data.id;\n  pageData.skipBusinessName = !data.reset ? pageData.skipBusinessName : false;\n  set(dispatch, data, ACTIONS.BUS_ID, true, !data.hasCompanies);\n  businessData.hasCompanies = data.hasCompanies;\n  businessData.noIdMatches = data.noIdMatches; // Do this after to make sure things more correctly.\n};\n\nexport const setBusinessName = (dispatch, data) => {\n\n  pageData.skipBusinessName = data.skipBusinessName || false;\n  set(dispatch, data, ACTIONS.BUS_NAME, !pageData.skipBusinessName, false,\n    getButtonClickDetails('next', data.name));\n\n  if (pageData.skipBusinessName) {\n    browserHistory.push(`/${URLS.BASE}/business-name-confirm`);\n  }\n};\n\nexport const setBusinessNameConfirm = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME_CONFIRM, true, false, getButtonClickDetails('next'));\n};\n\nexport const setBusinessNameModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME_MODAL, false);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  businessData.type = data.type;\n  set(dispatch, data, ACTIONS.BUS_TYPE, true, false, getButtonClickDetails('next', data.type));\n};\n\nexport const setBusinessTypeModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_TYPE_MODAL, false);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data, filingFees, expediteFees) => {\n  businessData.domesticJurisdiction = data.domesticJurisdiction;\n  set(dispatch, data, ACTIONS.DOM_JUR, !data.fromHomePage, false, getButtonClickDetails('next', data.domesticJurisdiction));\n  getStateFees(dispatch, data, filingFees);\n  getExpediteFees(dispatch, data, expediteFees);\n};\n\nexport const setDomesticJurisdictionModal = (dispatch, data, filingFees, expediteFees) => {\n  businessData.domesticJurisdiction = data.domesticJurisdiction;\n  set(dispatch, data, ACTIONS.DOM_JUR_MODAL, false);\n  getStateFees(dispatch, data, filingFees);\n  getExpediteFees(dispatch, data, expediteFees);\n};\n\nexport const setFormationCounty = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.FORM_COUNTY, true);\n};\n\nexport const setFormationCountyPF = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.FORM_COUNTY_PF, false);\n};\n\nexport const setInfoConfirmation = (dispatch, data) => {\n  pageData.forceToDataConfirmation = data.forceToDataConfirmation;\n  pageData.forceToPrivacy = data.forceToPrivacy;\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, true, false, getClickDetails('next'));\n};\n\nexport const goToInfoConfirmation = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_DATA_CONFIRM, URLS.DATA_CONFIRM);\n};\n\nexport const setLogin = (dispatch) => {\n  set(dispatch, { flow: 'reg' }, ACTIONS.LOGIN, false);\n};\n\nexport const setLoginPostPurchase = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LOGIN_POST, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, true, false, getButtonClickDetails('next'));\n};\n\nexport const setMailingAddressModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR_MODAL, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  pageData.forceToPrivacy = data.forceToPrivacy;\n  pageData.forceToDataConfirmation = data.forceToDataConfirmation;\n  set(dispatch, data, ACTIONS.PAYMENT, data.forceToPrivacy);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, true, false, getButtonClickDetails('next'));\n};\n\nexport const setPhysicalAddressModal = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR_MODAL, false);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, true, false, getButtonClickDetails('next'));\n};\n\nexport const setPrincipalAddressModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR_MODAL, false);\n};\n\nexport const setProductConfirmation = (dispatch, data) => {\n  pageData.forceToDataConfirmation = data.forceToDataConfirmation;\n  pageData.forceToPrivacy = data.forceToPrivacy;\n  set(dispatch, data, ACTIONS.PRODUCT_CONFIRM, true, false, getButtonClickDetails('next'));\n};\n\nexport const setPurchaseBanking = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PURCH_BANK, true);\n};\n\nexport const setPurchaseBankingResolution = (dispatch, data) => {\n  const boolAsStr = parseBoolToString(data.bankingResolution);\n  set(dispatch, data, ACTIONS.PURCH_BANK_RES, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseBasicEmail = (dispatch, data) => {\n  const boolAsStr = parseBoolToString(data.basicEmail);\n  set(dispatch, data, ACTIONS.PURCH_EMAIL, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseCorporateDocs = (dispatch, data) => {\n  const boolAsStr = parseBoolToString(data.corporateDocs);\n  set(dispatch, data, ACTIONS.PURCH_CORP_DOCS, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseDomainName = (dispatch, data) => {\n  purchaseData.domainName = data.domainName;\n  const boolAsStr = parseBoolToString(data.domainName);\n  set(dispatch, data, ACTIONS.PURCH_DOMAIN, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseDomainNamePrivacy = (dispatch, data) => {\n  const boolAsStr = parseBoolToString(data.domainNamePrivacy);\n  set(dispatch, data, ACTIONS.PURCH_DOMAIN_PRIV, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseEIN = (dispatch, data) => {\n  purchaseData.ein = data.ein;\n  const boolAsString = parseBoolToString(data.ein);\n  set(dispatch, data, ACTIONS.PURCH_EIN, true, false,\n    getButtonClickDetails(boolAsString, boolAsString));\n};\n\nexport const setPurchaseExp = (dispatch, data) => {\n  purchaseData.expedite = data.expedite;\n  set(dispatch, data, ACTIONS.PURCH_EXP, true, false,\n    getButtonClickDetails(data.expedite));\n};\n\nexport const setPubCounty = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PUB_COUNTY, true);\n};\n\nexport const setPurchaseNYPub = (dispatch, data) => {\n  const boolAsStr = parseBoolToString(data.nyPublication);\n  set(dispatch, data, ACTIONS.PURCH_NYPUB, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseNYPubPF = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PURCH_NYPUB_PF, false, false, false);\n};\n\nexport const setPurchaseOperatingAgreement = (dispatch, data) => {\n  const boolAsStr = parseBoolToString(data.operatingAgreement);\n  set(dispatch, data, ACTIONS.PURCH_OP_AGREE, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseRAS = (dispatch, data) => {\n  purchaseData.registeredAgentService = data.registeredAgentService;\n  set(dispatch, data, ACTIONS.PURCH_RAS, true);\n};\n\n/* eslint-disable max-statements */\nexport const setPurchasePlan = (dispatch, data) => {\n  const\n    { planLevel, bankingResolutionAddOn, basicEmailAddOn, corporateDocsAddOn, domainNameAddOn, domainNamePrivacyAddOn, einAddOn, expediteAddOn,\n      nyPublicationAddOn, operatingAgreementAddOn, privacyAddOn, staticWebsiteAddOn, worryFreeAddOn } = data,\n    { bankingResolutionUpsellSkip, basicEmailUpsellSkip, corporateDocsUpsellSkip, domainNameUpsellSkip, domainNamePrivacyUpsellSkip, einUpsellSkip, expediteUpsellSkip } = data,\n    { nyPublicationUpsellSkip, operatingAgreementUpsellSkip, privacyUpsellSkip, staticWebsiteUpsellSkip, worryFreeUpsellSkip } = data,\n    { pricingProductLandingPageUrl = '', business = {} } = data;\n\n  purchaseData.planLevel = planLevel;\n  purchaseData.bankingResolutionAddOn = bankingResolutionAddOn;\n  purchaseData.basicEmailAddOn = basicEmailAddOn;\n  purchaseData.corporateDocsAddOn = corporateDocsAddOn;\n  purchaseData.domainNameAddOn = domainNameAddOn;\n  purchaseData.domainNamePrivacyAddOn = domainNamePrivacyAddOn;\n  purchaseData.einAddOn = einAddOn;\n  purchaseData.expediteAddOn = expediteAddOn;\n  purchaseData.nyPublicationAddOn = nyPublicationAddOn;\n  purchaseData.operatingAgreementAddOn = operatingAgreementAddOn;\n  purchaseData.privacyAddOn = privacyAddOn;\n  purchaseData.staticWebsiteAddOn = staticWebsiteAddOn;\n  purchaseData.worryFreeAddOn = worryFreeAddOn;\n  purchaseData.bankingResolutionUpsellSkip = bankingResolutionUpsellSkip;\n  purchaseData.basicEmailUpsellSkip = basicEmailUpsellSkip;\n  purchaseData.domainNameUpsellSkip = domainNameUpsellSkip;\n  purchaseData.domainNamePrivacyUpsellSkip = domainNamePrivacyUpsellSkip;\n  purchaseData.corporateDocsUpsellSkip = corporateDocsUpsellSkip;\n  purchaseData.einUpsellSkip = einUpsellSkip;\n  purchaseData.expediteUpsellSkip = expediteUpsellSkip;\n  purchaseData.nyPublicationUpsellSkip = nyPublicationUpsellSkip;\n  purchaseData.operatingAgreementUpsellSkip = operatingAgreementUpsellSkip;\n  purchaseData.privacyUpsellSkip = privacyUpsellSkip;\n  purchaseData.staticWebsiteUpsellSkip = staticWebsiteUpsellSkip;\n  purchaseData.worryFreeUpsellSkip = worryFreeUpsellSkip;\n\n  if (business.domesticJurisdiction) {\n    businessData.domesticJurisdiction = business.domesticJurisdiction;\n  }\n\n  if (business.type) {\n    businessData.type = business.type;\n  }\n  const levelMap = PLAN_LEVEL_MAP[planLevel];\n  set(dispatch, data, ACTIONS.PURCH_PLAN, !pricingProductLandingPageUrl, false,\n    getButtonClickDetails(levelMap, levelMap));\n\n  if (pricingProductLandingPageUrl) {\n    browserHistory.push(`/${URLS.BASE}/domestic-jurisdiction`);\n  }\n};\n\nexport const setPurchasePlanFromNewPricingPage = (dispatch, data) => {\n  const\n    { planLevel, bankingResolutionAddOn, basicEmailAddOn, corporateDocsAddOn, domainNameAddOn, domainNamePrivacyAddOn, einAddOn,\n      expediteAddOn, nyPublicationAddOn, operatingAgreementAddOn, privacyAddOn, staticWebsiteAddOn, worryFreeAddOn, bankOfAmericaOffer } = data;\n\n\n  purchaseData.planLevel = planLevel;\n  purchaseData.bankingResolutionAddOn = bankingResolutionAddOn;\n  purchaseData.basicEmailAddOn = basicEmailAddOn;\n  purchaseData.corporateDocsAddOn = corporateDocsAddOn;\n  purchaseData.domainNameAddOn = domainNameAddOn;\n  purchaseData.domainNamePrivacyAddOn = domainNamePrivacyAddOn;\n  purchaseData.einAddOn = einAddOn;\n  purchaseData.expediteAddOn = expediteAddOn;\n  purchaseData.nyPublicationAddOn = nyPublicationAddOn;\n  purchaseData.operatingAgreementAddOn = operatingAgreementAddOn;\n  purchaseData.privacyAddOn = privacyAddOn;\n  purchaseData.staticWebsiteAddOn = staticWebsiteAddOn;\n  purchaseData.worryFreeAddOn = worryFreeAddOn;\n  purchaseData.bankingResolutionUpsellSkip = false;\n  purchaseData.basicEmailUpsellSkip = false;\n  purchaseData.corporateDocsUpsellSkip = false;\n  purchaseData.domainNameUpsellSkip = false;\n  purchaseData.domainNamePrivacyUpsellSkip = false;\n  purchaseData.einUpsellSkip = false;\n  purchaseData.expediteUpsellSkip = false;\n  purchaseData.nyPublicationUpsellSkip = false;\n  purchaseData.operatingAgreementUpsellSkip = false;\n  purchaseData.privacyUpsellSkip = false;\n  purchaseData.staticWebsiteUpsellSkip = false;\n  purchaseData.worryFreeUpsellSkip = false;\n  purchaseData.bankOfAmericaOffer = bankOfAmericaOffer;\n\n  pageData.skipToDomesticJurisdiction = true;\n  set(dispatch, data, ACTIONS.PURCH_PLAN, false);\n  browserHistory.push(`/${URLS.BASE}/domestic-jurisdiction`);\n};\n/* eslint-enable max-statements */\n\nexport const setPurchasePrivacy = (dispatch, data, filingFees, expediteFees) => {\n  pageData.forceToRegisteredAgent = data.forceToRegisteredAgent;\n  pageData.forceToPrivacy = false;\n  registeredAgentData.type = data.registeredAgentType;\n  businessData.domesticJurisdiction = data.domesticJurisdiction;\n  set(dispatch, data, ACTIONS.PURCH_PRIV, true, false, getButtonClickDetails('next'));\n  getStateFees(dispatch, data, filingFees);\n  getExpediteFees(dispatch, data, expediteFees);\n};\n\nexport const setPurchaseStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PURCH_START, true, false, getButtonClickDetails('next'));\n};\n\nexport const setPurchaseStaticWebsite = (dispatch, data) => {\n  const boolAsStr = parseBoolToString(data.staticWebsite);\n  set(dispatch, data, ACTIONS.PURCH_WEBSITE, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseWorryFree = (dispatch, data) => {\n  const boolAsString = parseBoolToString(data.worryFree);\n  set(dispatch, data, ACTIONS.PURCH_WF, true, false, getButtonClickDetails(boolAsString, boolAsString));\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  pageData.forceToRegisteredAgent = false;\n  registeredAgentData.type = 'RA';\n  set(dispatch, data, ACTIONS.REG_AGT, true, false, getButtonClickDetails('next'));\n};\n\nexport const setRegisteredAgentModal = (dispatch, data) => {\n  pageData.forceToRegisteredAgent = false;\n  registeredAgentData.type = 'RA';\n  set(dispatch, data, ACTIONS.REG_AGT_MODAL, true);\n};\n\nexport const setSCorpAllUSOwners = (dispatch, data) => {\n  businessData.scorpAllUSOwners = data.scorpAllUSOwners;\n  const boolAsStr = parseBoolToString(data.scorpAllUSOwners);\n  set(dispatch, data, ACTIONS.SCORP_ALL_US_OWNERS, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setSCorpOutsideInvestors = (dispatch, data) => {\n  businessData.scorpInvestors = data.scorpInvestors;\n  const boolAsStr = parseBoolToString(data.scorpInvestors);\n  set(dispatch, data, ACTIONS.SCORP_INVESTORS, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setSCorpOperateLoss = (dispatch, data) => {\n  businessData.scorpOperateLoss = data.scorpOperateLoss;\n  const boolAsStr = parseBoolToString(data.scorpOperateLoss);\n  set(dispatch, data, ACTIONS.SCORP_LOSS, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setSCorpPaySalary = (dispatch, data) => {\n  businessData.scorpPaySalary = data.scorpPaySalary;\n  const boolAsStr = parseBoolToString(data.scorpPaySalary);\n  set(dispatch, data, ACTIONS.SCORP_SALARY, true, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setStateRequirements = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.STATE_REQ, true);\n};\n\n/* eslint-disable max-statements */\nexport const setInit = (dispatch, data) => {\n  const {\n    type = '',\n    hasSCorp = false\n  } = data;\n\n  setIsFreeAccount(data.isSimulated);\n  if (isPF() || (!getPartner() && !getEntryPointGroup())) {\n    document.location = '/shop/';\n    return;\n  }\n\n  doReset();\n  setAppEntryPoint(dispatch, true);\n\n  const {\n    id = '',\n    domesticJurisdiction = '',\n    name = '',\n    fromDashboard = false,\n    fromBNG = false,\n    skipToDomesticJurisdiction = false,\n    skipPlansPage = false,\n    skipBusinessName = false,\n    isSimulated,\n    purchaseData: pd = {\n      planLevel: '',\n      bankingResolutionAddOn: false,\n      basicEmailAddOn: false,\n      corporateDocsAddOn: false,\n      domainNameAddOn: false,\n      domainNamePrivacyAddOn: false,\n      einAddOn: false,\n      expediteAddOn: false,\n      nyPublicationAddOn: false,\n      operatingAgreementAddOn: false,\n      privacyAddOn: false,\n      staticWebsiteAddOn: false,\n      worryFreeAddOn: false\n    }\n  } = data;\n\n  _assign(pageData, { fromDashboard, fromBNG, skipToDomesticJurisdiction, skipPlansPage, skipBusinessName });\n  _assign(businessData, { id, type: type === 'none' ? '' : type, domesticJurisdiction: domesticJurisdiction === 'none' ? '' : domesticJurisdiction, name, hasSCorp, isSimulated });\n  _assign(purchaseData, pd);\n  if (purchaseData.planLevel === 'alaCarte') {\n    purchaseData.planLevel = '';\n  }\n\n  set(dispatch, {}, ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(getEntryPoint(dispatch));\n};\n/* eslint-enable max-statements */\n\nconst createFormationOrder = async (dispatch, reducerData, fees, expediteFees) => {\n  const serviceMethod = reducerData.business.type === 'LLCX' ? 'createLLC' : 'createCorp';\n  try {\n    const formationOrder = await registrationService[serviceMethod](reducerData, fees, expediteFees);\n    const { data } = formationOrder;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, formationOrder);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData,\n        fees,\n        expediteFees\n      }\n    });\n    trackEvent('Purchase', 'complete', 'domestic');\n    go(dispatch, 1, false, true);\n    // registrationService[serviceMethod](reducerData, fees, expediteFees).then((response) => {\n  } catch (err) {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n\n  }\n\n};\n\nexport const createOrder = (dispatch, reducerData, fees, expediteFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { customer } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = customer;\n\n  if (!isLoggedIn() || !cardToken) {\n    createFormationOrder(dispatch, reducerData, fees, expediteFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createFormationOrder(dispatch, reducerData, fees, expediteFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const createLead = (dispatch, lead) => {\n  logger.logAction(ACTIONS.CREATE_LEAD);\n  dispatch({\n    type: ACTIONS.CREATE_LEAD\n  });\n  registrationService.createLead(lead).then((response) => {\n    logger.logAction(ACTIONS.CREATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const setBusinessData = (dispatch, data, filingFees, expediteFees) => {\n  businessData.domesticJurisdiction = data.domesticJurisdiction;\n  set(dispatch, data, ACTIONS.BUS_DATA, false);\n  getStateFees(dispatch, data, filingFees);\n  getExpediteFees(dispatch, data, expediteFees);\n};\n\nexport const setContactData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_MODAL, false);\n};\n\nexport const setRegisteredAgentData = (dispatch, data) => {\n  registeredAgentData.type = data.type;\n  set(dispatch, data, ACTIONS.RA_DATA, false);\n};\n\nexport const orderAlreadyCreated = (dispatch) => {\n  go(dispatch, 1, false, true);\n};\n\nexport const setCompanyDetails = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EDIT_CHECKOUT, false);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  goToNextUncompletedPage,\n  goToInfoConfirmation,\n  orderAlreadyCreated,\n  getStateFees,\n  getExpediteFees,\n  setAccountOwnerContact,\n  setAccountOwnerName,\n  setBusinessId,\n  setBusinessName,\n  setBusinessNameConfirm,\n  setBusinessType,\n  setDomesticJurisdiction,\n  setInfoConfirmation,\n  setLogin,\n  setLoginPostPurchase,\n  setMailingAddress,\n  setPayment,\n  setPhysicalAddress,\n  setPrincipalAddress,\n  setProductConfirmation,\n  setPurchaseStart,\n  setPurchaseBanking,\n  setPurchaseBankingResolution,\n  setPurchaseBasicEmail,\n  setPurchaseCorporateDocs,\n  setPurchaseDomainName,\n  setPurchaseDomainNamePrivacy,\n  setPurchaseEIN,\n  setPurchaseExp,\n  setPurchaseNYPub,\n  setPurchaseNYPubPF,\n  setPurchaseOperatingAgreement,\n  setPurchaseRAS,\n  setPurchasePlan,\n  setPurchasePrivacy,\n  setPurchaseStaticWebsite,\n  setPurchaseWorryFree,\n  setRegisteredAgent,\n  setSCorpAllUSOwners,\n  setSCorpOutsideInvestors,\n  setSCorpOperateLoss,\n  setSCorpPaySalary,\n  setInit,\n  setStateRequirements,\n  createOrder,\n  createLead,\n  setBusinessTypeModal,\n  setDomesticJurisdictionModal,\n  setMailingAddressModal,\n  setPhysicalAddressModal,\n  setPrincipalAddressModal,\n  setRegisteredAgentModal,\n  setBusinessData,\n  setContactData,\n  setRegisteredAgentData,\n  setCompanyDetails,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_gs';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n    return [ URLS.START, URLS.CHOOSE_COMPANY, URLS.CHOOSE_STATE, URLS.DATA_CONFIRM, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterGSFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterGSFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_gs';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as goodStandingKey } from '../../reducers/registration/goodStanding';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getGoodStandingPrice } from '../../utils/ProductService';\n\nconst\n  defaultFlowData = { companyId: '' },\n  flowData = getReducerSnapshot(goodStandingKey, defaultFlowData),\n  getFlowOrder = (url) => {\n    return getFlow(url);\n  },\n  getCompanyUrl = () => {\n    if (flowData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${flowData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(flowData, defaultFlowData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setBackFromCompleteBusiness = () => {\n  document.location = getCompanyUrl();\n};\n\nexport const goToChooseCompany = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CHOOSE_COMPANY, URLS.CHOOSE_COMPANY);\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(flowData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const goToChooseState = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CHOOSE_STATE, URLS.CHOOSE_STATE);\n};\n\nexport const setChooseState = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_STATE, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, fromDashboard = false } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(flowData, { companyId });\n  set(dispatch, data, ACTIONS.INIT, false);\n   /*\n  * achieves? ~> preserve and expose is_dashboard to the query params as well\n  * why? ~> pageData.fromDashboard only makes it accessible to sub-sequent utlity functions\n  */\n  const url = `/${URLS.BASE}/${URLS.START}?fromDashboard=${fromDashboard}`;\n  browserHistory.replace(url);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createGSOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createGoodStanding(reducerData, accountId, filingFees).then((response) => {\n    const price = getGoodStandingPrice();\n    const addlData = createAdditionalData('good_standing', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'good_standing', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { goodStanding } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = goodStanding;\n\n  if (!cardToken) {\n    createGSOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createGSOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport const setUseCredit = (dispatch, useCredit, creditUUID) => {\n  logger.logAction(ACTIONS.SET_USE_CREDIT, { useCredit, creditUUID });\n  dispatch({\n    type: ACTIONS.SET_USE_CREDIT,\n    useCredit,\n    creditUUID\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  setStart,\n  setBackFromCompleteBusiness,\n  orderAlreadyCreated,\n  setChooseCompany,\n  goToChooseCompany,\n  setChooseState,\n  goToChooseState,\n  setDataConfirmation,\n  setInit,\n  setPayment,\n  setComplete,\n  setUseCredit,\n  resetAllData\n};\n","import { URLS } from '../../../constants/complete_business';\n\nconst\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing, usePhysicalAsPrincipal, useMailingAsPrincipal } = registration.businessAddresses,\n      flowItems = [];\n\n    flowItems.push(URLS.PHYS_ADDR);\n    if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n      if ((!useMailingAsPrincipal && !usePhysicalAsPrincipal) || url === URLS.PRIN_ADDR) {\n        flowItems.push(URLS.PRIN_ADDR);\n      }\n    } else if (!usePhysicalAsPrincipal || url === URLS.PRIN_ADDR) {\n      flowItems.push(URLS.PRIN_ADDR);\n    }\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getPostPrincipalsFlowOrder = (url, registration) => {\n    const\n      { page, purchase } = registration,\n      { forceToContact, forceToMembers, forceToManagers, forceToDirectors, forceToOfficers, forceToRegisteredAgent, registrationFlow } = page,\n      { privacy } = purchase,\n//      { forceCompany, forcePerson } = registeredAgent,\n      flowItems = [];\n\n    if (forceToMembers || forceToManagers || forceToDirectors || forceToOfficers) {\n      flowItems.push(URLS.DATA_CONFIRM);\n    } else {\n      if (registrationFlow === '') {\n        flowItems.push(URLS.REG_AGT);\n      }\n      if (forceToRegisteredAgent) {\n        flowItems.push(URLS.DATA_CONFIRM);\n        if (registrationFlow !== 'stockSetup') {\n          flowItems.push(URLS.SHARE, URLS.COMPLETE);\n        }\n      } else if (url === URLS.PRIM_CONTACT) {\n        flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.PRIM_CONTACT, URLS.DATA_CONFIRM);\n      } else {\n        flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.DATA_CONFIRM);\n      }\n    }\n\n    if (forceToContact) {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    } else if (forceToMembers) {\n      flowItems.push(URLS.LLC_MBR_COUNT);\n    } else if (forceToManagers) {\n      flowItems.push(URLS.LLC_MGR_OPT);\n    } else if (forceToDirectors) {\n      flowItems.push(URLS.CORP_DIR_COUNT);\n    } else if (forceToOfficers) {\n      flowItems.push(URLS.CORP_CHOOSE_PRES);\n    } else if (forceToRegisteredAgent) {\n      flowItems.push(URLS.REG_AGT);\n    } else if (privacy) {\n      flowItems.push(URLS.PAYMENT);\n    }\n    // ECOMM-2496: share/complete have no routes in this flow (Routes.js has no Share or Complete\n    // component) — navigating to them hits the '*' catch-all, remounts Init with no companyId in\n    // the query string, and hard-redirects to the dashboard. The stockSetup diversion must end at\n    // data-confirmation so go() reaches its end-of-flow arm and hands off to /register-stock-setup.\n    if (registrationFlow !== 'stockSetup') {\n      flowItems.push(URLS.SHARE, URLS.COMPLETE);\n    }\n    return flowItems;\n  },\n  /* esline-enable max-statements */\n\n  /* eslint-disable max-statements */\n  getCorpFlowOrder = (url, registration) => {\n    const\n      { officer, page } = registration,\n      flowItems = [ URLS.CORP_DIR_COUNT, URLS.CORP_DIR_LIST ],\n      { hasAsstSecretary, hasVicePresident } = officer,\n      { forceToDirectors } = page;\n\n    if (forceToDirectors) {\n      flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n      return flowItems;\n    }\n    flowItems.push(URLS.CORP_CHOOSE_PRES);\n    if (url === URLS.CORP_PRES) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_PRES);\n    }\n    flowItems.push(URLS.CORP_HAS_VP);\n    if (hasVicePresident) {\n      flowItems.push(URLS.CORP_CHOOSE_VP);\n      if (url === URLS.CORP_VP) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_VP);\n      }\n    }\n    flowItems.push(URLS.CORP_CHOOSE_TRSR);\n    if (url === URLS.CORP_TRSR) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_TRSR);\n    }\n    flowItems.push(URLS.CORP_CHOOSE_SEC);\n    if (url === URLS.CORP_SEC) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_SEC);\n    }\n    flowItems.push(URLS.CORP_HAS_ASST_SEC);\n    if (hasAsstSecretary) {\n      flowItems.push(URLS.CORP_CHOOSE_ASST_SEC);\n      if (url === URLS.CORP_ASST_SEC) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_ASST_SEC);\n      }\n    }\n    flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n    return flowItems;\n  },\n  /* eslint-enable max-statements */\n  getLLCFlowOrder = (url, registration) => {\n    const\n      { manager, page } = registration,\n      flowItems = [ URLS.LLC_MBR_COUNT, URLS.LLC_MBR_LIST ],\n      { managerType } = manager,\n      { forceToMembers } = page;\n\n    if (url === URLS.LLC_MBR_LIST && forceToMembers) {\n      flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n      return flowItems;\n    }\n\n    flowItems.push(URLS.LLC_MGR_OPT);\n    if (managerType === 'SomeOwners' || managerType === 'SomeManagers') {\n      flowItems.push(URLS.LLC_BUS_RUN);\n    }\n    if (managerType === 'SomeManagers' || managerType === 'AllManagers') {\n      flowItems.push(URLS.LLC_MGR_COUNT, URLS.LLC_MGR_LIST);\n    }\n    flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n    return flowItems;\n  },\n  /* eslint-disable max-statements */\n  getFlowOrder = (url, registration) => {\n    const\n      { business } = registration,\n      { type } = business;\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    const\n      flowItems = [ URLS.BUS_DESC, ...getAddressFlow(url, registration) ];\n\n    if (type === 'CORP') {\n      flowItems.push(...getCorpFlowOrder(url, registration));\n    } else {\n      flowItems.push(...getLLCFlowOrder(url, registration));\n    }\n    return flowItems;\n  };\n  /* eslint-enable max-statements */\n\nexport default {\n  getPostPrincipalsFlowOrder,\n  getCorpFlowOrder,\n  getLLCFlowOrder,\n  getFlowOrder\n};\n","import { getCompleteWFGFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteWFGFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _find from 'lodash/find';\nimport _indexOf from 'lodash/indexOf';\nimport _map from 'lodash/map';\nimport { browserHistory } from 'react-router';\n\nimport { getStateFees as getInitStateFees } from '../initialization';\nimport { setInit as setInitAccounting, setBackFromCompleteBusiness as setReturnAccounting } from '../register_accounting';\nimport { setInit as setInitEIN, setBackFromCompleteBusiness as setReturnEIN } from '../register_ein';\nimport { setInit as setInitDBAEntity, setBackFromCompleteBusiness as setReturnDBAEntity } from '../register_dbaentity_pf';\nimport { setInit as setInitGS, setBackFromCompleteBusiness as setReturnGS } from '../register_gs';\nimport { setInit as setInitNYPub, setBackFromCompleteBusiness as setReturnNYPub } from '../register_nypub';\nimport { setInit as setInitStockSetup } from '../register_stock_setup';\nimport { setInit as setInitWFG, setBackFromCompleteBusiness as setReturnWFG } from '../register_wfg';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { ACTIONS, URLS } from '../../constants/complete_business';\nimport { DOM_JURS } from '../../constants/ui';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as directorKey } from '../../reducers/registration/directors';\nimport { storageKey as managerKey } from '../../reducers/registration/managers';\nimport { storageKey as memberKey } from '../../reducers/registration/members';\nimport { storageKey as officerKey } from '../../reducers/registration/officers';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { storageKey as registeredAgentKey } from '../../reducers/registration/registeredAgent';\nimport { accountService, businessEntityService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlows from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getRegisteredAgentServicePrice } from '../../utils/ProductService';\n\nconst\n  defaultBusinessData = { type: 'LLCX', id: '', businessOrderType: '', addressMatch: false, addressIsGoogle: false, domesticJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultManagerData = { managerType: '' },\n  managerData = getReducerSnapshot(managerKey, defaultManagerData),\n  defaultOfficerData = { hasAsstSecretary: false, hasVicePresident: false },\n  officerData = getReducerSnapshot(officerKey, defaultOfficerData),\n  defaultPageData = { forceToMembers: false, forceToManagers: false, forceToDirectors: false, forceToOfficers: false, forceToPayment: false, forceToContact: false, registrationFlow: '' },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  defaultPurchaseData = { privacy: false },\n  purchaseData = getReducerSnapshot(purchaseKey, defaultPurchaseData),\n  defaultRegisteredAgentData = { forceContact: false, forcePerson: false },\n  registeredAgentData = getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData),\n  // This is a reduced flow for analyzing the data confirmation.\n  /* eslint-disable max-statements */\n  getFlowOrder = (url) => {\n    const registration = {\n      business: businessData,\n      businessAddresses: businessAddressesData,\n      manager: managerData,\n      officer: officerData,\n      page: pageData,\n      purchase: purchaseData,\n      registeredAgent: registeredAgentData\n    };\n    return getFlows(url, registration);\n  },\n  getCompanyUrl = () => {\n    return `/${COMPANY_URLS.BASE}/${businessData.id}`;\n  },\n  go = (jump, dispatch) => {\n    const\n      { registrationFlow = '' } = pageData,\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    if (jumpIndex < 0) {\n      if (registrationFlow === 'bl' || registrationFlow === 'ein') {\n        setReturnEIN(dispatch, {});\n      } else if (registrationFlow === 'wfg') {\n        setReturnWFG(dispatch, {});\n      } else if (registrationFlow === 'acct') {\n        setReturnAccounting(dispatch, {});\n      } else if (registrationFlow === 'dbaEntity') {\n        setReturnDBAEntity(dispatch, {});\n      } else if (registrationFlow === 'gs') {\n        setReturnGS(dispatch, {});\n      } else if (registrationFlow === 'ny') {\n        setReturnNYPub(dispatch, {});\n      } else {\n        document.location = getCompanyUrl();\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      const\n        business = getReducerSnapshot(businessKey, {}),\n        membersSnap = getReducerSnapshot(memberKey, {}),\n        directorsSnap = getReducerSnapshot(directorKey, {}),\n        { id, name, type, description, domesticJurisdiction, addressLine1, addressLine2, city, county, state, country, zipCode } = business,\n        { phoneNumber } = business,\n        { members } = membersSnap,\n        { directors } = directorsSnap,\n        owners = _map((type === 'CORP' ? directors : members), (owner) => {\n          return _assign({ percent: '', percentFloat: 0, accountOwner: false }, owner);\n        }),\n        data = {\n          id,\n          companyId: id,\n          type,\n          businessType: type,\n          name,\n          description,\n          domesticJurisdiction,\n          phoneNumber,\n          addressLine1,\n          addressLine2,\n          city,\n          county,\n          state,\n          country,\n          zipCode,\n          mailingAddressLine1: addressLine1,\n          mailingAddressLine2: addressLine2,\n          mailingCity: city,\n          mailingCounty: county,\n          mailingState: state,\n          mailingCountry: country,\n          mailingZipCode: zipCode,\n          owners\n        };\n\n      if (registrationFlow === 'bl') {\n        setInitEIN(dispatch, { companyId: id, id, registrationFlow: 'bl' });\n      } else if (registrationFlow === 'ein') {\n        setInitEIN(dispatch, { companyId: id, id });\n      } else if (registrationFlow === 'wfg') {\n        setInitWFG(dispatch, { companyId: id });\n      } else if (registrationFlow === 'acct') {\n        setInitAccounting(dispatch, data);\n      } else if (registrationFlow === 'dbaEntity') {\n        setInitDBAEntity(dispatch, data);\n      } else if (registrationFlow === 'gs') {\n        setInitGS(dispatch, data);\n      } else if (registrationFlow === 'ny') {\n        setInitNYPub(dispatch, data);\n      } else if (registrationFlow === 'stockSetup') {\n        // ECOMM-2496: the stock-setup init diverts to this flow when the entity is missing\n        // formation data. Hand the customer back to stock setup once the data is confirmed,\n        // instead of stranding them on the company page with shares still uncollected.\n        setInitStockSetup(dispatch, { id, companyId: id, companyCount: 1, name, domesticJurisdiction, type, fromDashboard: false });\n      } else {\n        document.location = getCompanyUrl();\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(managerData, getReducerSnapshot(managerKey, defaultManagerData));\n    _assign(officerData, getReducerSnapshot(officerKey, defaultOfficerData));\n    _assign(pageData, getReducerSnapshot(pageKey, defaultPageData));\n    _assign(purchaseData, getReducerSnapshot(purchaseKey, defaultPurchaseData));\n    _assign(registeredAgentData, getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData));\n  };\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const goToCorpAsstSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_ASST_SEC, URLS.CORP_ASST_SEC);\n};\n\nexport const goToCorpPresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_PRES, URLS.CORP_PRES);\n};\n\nexport const goToCorpSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_SEC, URLS.CORP_SEC);\n};\n\nexport const goToCorpTreasurer = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_TRSR, URLS.CORP_TRSR);\n};\n\nexport const goToCorpVicePresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_VP, URLS.CORP_VP);\n};\n\nexport const goToPrimaryContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRIM_CONTACT, URLS.PRIM_CONTACT);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, true);\n};\n\nexport const setChoosePrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRIM_CONTACT, true);\n};\n\nexport const setCorpAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_ASST_SEC, true);\n};\n\nexport const setCorpChooseAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_ASST_SEC, true);\n};\n\nexport const setCorpChoosePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_PRES, true);\n};\n\nexport const setCorpChooseSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_SEC, true);\n};\n\nexport const setCorpChooseTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_TRSR, true);\n};\n\nexport const setCorpChooseVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_VP, true);\n};\n\nexport const setCorpDirectorCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_COUNT, true);\n};\n\nexport const setCorpDirectorList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_LIST, true);\n};\n\nexport const setCorpHasAsstSecretary = (dispatch, data) => {\n  officerData.hasAsstSecretary = data.hasAsstSecretary;\n  set(dispatch, data, ACTIONS.CORP_HAS_ASST_SEC, true);\n};\n\nexport const setCorpHasVicePresident = (dispatch, data) => {\n  officerData.hasVicePresident = data.hasVicePresident;\n  set(dispatch, data, ACTIONS.CORP_HAS_VP, true);\n};\n\nexport const setCorpPresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_PRES, true);\n};\n\nexport const setCorpSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_SEC, true);\n};\n\nexport const setCorpTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_TRSR, true);\n};\n\nexport const setCorpVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_VP, true);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  pageData.forceToDataConfirmation = data.forceToDataConfirmation;\n  pageData.forceToMembers = data.forceToMembers;\n  pageData.forceToManagers = data.forceToManagers;\n  pageData.forceToDirectors = data.forceToDirectors;\n  pageData.forceToOfficers = data.forceToOfficers;\n  pageData.forceToContact = data.forceToContact;\n  pageData.forceToRegisteredAgent = data.forceToRegisteredAgent;\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, false);\n};\n\nexport const setLLCBusinessRunners = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_BUS_RUN, true);\n};\n\nexport const setLLCManagerCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_COUNT, true);\n};\n\nexport const setLLCManagerList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST, true);\n};\n\nexport const setLLCManagerOption = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT, true);\n};\n\nexport const setLLCMemberCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_COUNT, true);\n};\n\nexport const setLLCMemberList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST, true);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, true);\n};\n\nexport const setMailingAddressModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR_MODAL, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, true);\n};\n\nexport const setPhysicalAddressModal = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR_MODAL, false);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, true);\n};\n\nexport const setPrimaryContactModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT_MODAL, false);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, true);\n};\n\nexport const setPrincipalAddressModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR_MODAL, false);\n};\n\nexport const setPurchaseRegisteredAgent = (dispatch, data) => {\n  const { privacy, forceCompany, forcePerson } = data;\n  purchaseData.privacy = privacy;\n  registeredAgentData.forceCompany = forceCompany;\n  registeredAgentData.forcePerson = forcePerson;\n  set(dispatch, data, ACTIONS.PURCH_REG_AGT, true);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT, true);\n};\n\nexport const setRegisteredAgentModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT_MODAL, false);\n};\n\nconst createRAOrder = (dispatch, reducerData, fees) => {\n  const serviceMethod = 'createRA';\n\n  registrationService[serviceMethod](reducerData, fees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    const price = getRegisteredAgentServicePrice();\n    const addlData = createAdditionalData('registered_agent_service', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'registered_agent', price, addlData);\n    go(1, dispatch);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, fees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { customer } = reducerData,\n    { cardNumber, expMonth, expYear, cvc } = customer;\n\n  if (!cardNumber) {\n    createRAOrder(dispatch, reducerData, fees);\n  } else {\n    const data = { cardNumber, expMonth, expYear, cvc, isDefault: true };\n    accountService.addPaymentMethod(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createRAOrder(dispatch, reducerData, fees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = (dispatch) => {\n  go(1, dispatch);\n};\n\nexport const getStateFees = (dispatch, data, filingFees) => {\n  if (!filingFees[data.domesticJurisdiction] || !filingFees[data.domesticJurisdiction].registered_agent_service) {\n    getInitStateFees(dispatch, data.domesticJurisdiction);\n  }\n};\n\nexport const updateBusiness = (dispatch, reducerData, businessEntityId) => {\n  logger.logAction(ACTIONS.UPDATE_BUSINESS);\n  dispatch({\n    type: ACTIONS.UPDATE_BUSINESS\n  });\n  businessEntityService.update(reducerData, businessEntityId).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_BUSINESS_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_BUSINESS_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    go(1, dispatch);\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_BUSINESS_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_BUSINESS_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const updateContacts = (dispatch, data) => {\n  const { contactType } = data;\n  const type = {\n    member: 'UPDATE_MBR',\n    manager: 'UPDATE_MGR',\n    director: 'UPDATE_DIR',\n    officer: 'UPDATE_OFC'\n  };\n  const action = type[contactType || ''];\n  if (action) set(dispatch, data, ACTIONS[action], false);\n};\n\nexport const setBusinessModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_MODAL, false);\n};\n\nexport const getEntryPoint = (companyId, fromBack) => {\n  const flowOrder = getFlowOrder(''),\n    index = fromBack ? flowOrder.length - 1 : 0;\n  return `/${URLS.BASE}/${flowOrder[index]}`;\n};\n\nexport const setInit = (dispatch, data) => {\n  updateSnapshots();\n  const { type, domesticJurisdiction, registrationFlow = '' } = data;\n  businessData.type = type;\n  businessData.domesticJurisdiction = domesticJurisdiction;\n  pageData.registrationFlow = registrationFlow;\n\n  const match = _find(DOM_JURS, (option) => {\n    return option.value === data.domesticJurisdiction;\n  });\n  data.domesticJurisdictionName = match ? match.label : '';\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.push(getEntryPoint(data.id || null));\n};\n\nexport const businessAlreadyUpdated = (dispatch) => {\n  go(1, dispatch);\n};\n\nexport default {\n  goBack,\n  getEntryPoint,\n  goToCorpAsstSecretary,\n  goToCorpPresident,\n  goToCorpSecretary,\n  goToCorpTreasurer,\n  goToCorpVicePresident,\n  goToPrimaryContact,\n  setBusinessModal,\n  setChoosePrimaryContact,\n  setCorpAsstSecretary,\n  setCorpChooseAsstSecretary,\n  setCorpChoosePresident,\n  setCorpChooseSecretary,\n  setCorpChooseTreasurer,\n  setCorpChooseVicePresident,\n  setCorpDirectorCount,\n  setCorpDirectorList,\n  setCorpHasAsstSecretary,\n  setCorpHasVicePresident,\n  setCorpPresident,\n  setCorpSecretary,\n  setCorpTreasurer,\n  setCorpVicePresident,\n  setDataConfirmation,\n  setLLCBusinessRunners,\n  setLLCManagerCount,\n  setLLCManagerList,\n  setLLCManagerOption,\n  setLLCMemberCount,\n  setLLCMemberList,\n  setMailingAddress,\n  setMailingAddressModal,\n  setPayment,\n  setPhysicalAddress,\n  setPhysicalAddressModal,\n  setPrimaryContact,\n  setPrimaryContactModal,\n  setPrincipalAddress,\n  setPrincipalAddressModal,\n  setPurchaseRegisteredAgent,\n  setRegisteredAgent,\n  setRegisteredAgentModal,\n  setInit,\n  updateBusiness,\n  updateContacts,\n  businessAlreadyUpdated,\n  createOrder,\n  getStateFees,\n  orderAlreadyCreated,\n  resetAllData\n};\n","import _some from 'lodash/some';\nimport _flattenDeep from 'lodash/flattenDeep';\nimport { URLS } from '../../../constants/purchase_post_addons';\nimport {\n  isBusinessLicenseEnabled, isFutureFileDateEnabled, isCorporateDocsEnabled, isWFGInitialReportEnabled,\n  isBusinessKitEnabled, getPostPurchaseVanityProduct, getTaxTestVariant, getBOFTestVariant\n} from '../../../utils/ProductService';\n\nconst\n  getBLRFlow = (url, registration) => {\n    const\n      { blr, purchase, postpurchase } = registration,\n      { ein: purchaseEIN } = purchase,\n      { purchaseBLR } = postpurchase,\n      flowItems = !purchase.blr ? [URLS.PURCHASE_BLR] : [];\n\n    if (!purchase.blr && !purchaseBLR) {\n      return flowItems;\n    }\n\n    const\n      { hasEmployees } = blr;\n\n    flowItems.push(\n      URLS.BLR_START,\n      URLS.BLR_BUS_AT_HOME,\n      URLS.BLR_BUS_INDUSTRY\n    );\n\n    if (!purchaseEIN) {\n      flowItems.push(URLS.BLR_HAS_EMPLOYEES);\n      if (url === URLS.BLR_EMPL_COUNT || hasEmployees) {\n        flowItems.push(URLS.BLR_EMPL_COUNT);\n      }\n      flowItems.push(URLS.BLR_HAS_DBAS);\n    }\n    flowItems.push(URLS.BLR_DATA_CONFIRM);\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getFlowOrder = (url, registration) => {\n    const { lead, postpurchase, business, initialization, purchase } = registration,\n      { feedbackSource, purchaseBLR, purchaseRA, purchaseBOF, purchaseBusinessKit, purchaseFFD, purchaseCD, purchaseWFGIR, purchaseDBAEntity,\n        purchaseVBA, purchaseVanityProduct, showCD, purchaseBankOfAmericaOffer, purchaseZBMPro, purchaseZbBankingPreferredOffer,\n        purchaseTaxAdviceBizTaxPrep, purchaseTaxAdvice } = postpurchase,\n      { zbBankingPreferred: hasPurchasedBankingPreferred } = purchase,\n      { requestedJurisdiction, type } = business,\n      { filingFees, expediteFees } = initialization,\n      isStateClosed = expediteFees[requestedJurisdiction] ? expediteFees[requestedJurisdiction].standard.delayed : false,\n      wfgirData = filingFees[requestedJurisdiction] ? filingFees[requestedJurisdiction].wfg_initial_report : null,\n      showWFGIR = !!wfgirData && !!wfgirData[type === 'CORP' ? 'corp' : 'llc'],\n      stackedFlowItems = [];\n\n    const vanityProduct = getPostPurchaseVanityProduct(requestedJurisdiction);\n\n    const potentialAfterPaymentUrls = [\n      vanityProduct && purchaseVanityProduct && URLS.VANITY_PRODUCT_NOTICE,\n      URLS.SHARE,\n      URLS.COMPLETE\n    ].filter((el) => { return el; });\n    if (potentialAfterPaymentUrls.includes(url)) {\n      return potentialAfterPaymentUrls;\n    }\n\n    let vanityForward = 0;\n    if ((!isStateClosed && isFutureFileDateEnabled()) || url === URLS.PURCHASE_FFD || url === URLS.FUTURE_FILING_DATE) {\n      stackedFlowItems.push(URLS.PURCHASE_FFD);\n      if (purchaseFFD) {\n        vanityForward += 1;\n        stackedFlowItems.push(URLS.FUTURE_FILING_DATE);\n      }\n    }\n\n    const bofTestVariant = getBOFTestVariant();\n    const taxTestVariant = getTaxTestVariant();\n    if (bofTestVariant === 'A') {\n      stackedFlowItems.push(URLS.PURCHASE_BOF);\n    }\n    if (taxTestVariant === 'B') {\n      stackedFlowItems.push(URLS.PURCHASE_TAX_ADVICE_BUNDLE);\n    }\n    if (isBusinessKitEnabled()) {\n      stackedFlowItems.push(URLS.PURCHASE_BUSINESSKIT);\n    }\n    if (isBusinessLicenseEnabled()) {\n      const blrItems = getBLRFlow(url, registration);\n      if (blrItems) {\n        vanityForward += 1;\n      }\n      stackedFlowItems.push(blrItems);\n    }\n    if (!hasPurchasedBankingPreferred) {\n      stackedFlowItems.push(URLS.PURCHASE_BANKING_OFFER);\n    }\n    if (isCorporateDocsEnabled() && showCD) {\n      stackedFlowItems.push(URLS.PURCHASE_CD);\n    }\n    if (isWFGInitialReportEnabled() && showWFGIR) {\n      stackedFlowItems.push(URLS.PURCHASE_WFGIR);\n    }\n\n    if (vanityProduct) {\n      stackedFlowItems.splice(vanityProduct.flowPosition + vanityForward, 0, URLS.VANITY_PRODUCT_OFFER);\n    }\n\n    if (!feedbackSource && !lead.feedbackSource && lead.leadUUID) {\n      stackedFlowItems.push(URLS.PURCHASE_FEEDBACK);\n    }\n\n    const addedAnything = _some([\n      purchaseRA,\n      purchaseBLR,\n      purchaseBOF,\n      purchaseBusinessKit,\n      purchaseDBAEntity,\n      purchaseFFD,\n      purchaseCD,\n      purchaseWFGIR,\n      purchaseZBMPro,\n      purchaseVBA,\n      vanityProduct && purchaseVanityProduct,\n      purchaseBankOfAmericaOffer,\n      purchaseTaxAdviceBizTaxPrep,\n      purchaseTaxAdvice,\n      purchaseZbBankingPreferredOffer\n    ], Boolean);\n\n    if (addedAnything || url === URLS.PAYMENT) {\n      stackedFlowItems.push(URLS.PAYMENT);\n    } else {\n      stackedFlowItems.push(URLS.MARK_COMPLETE);\n    }\n\n    if (vanityProduct && purchaseVanityProduct) {\n      stackedFlowItems.push(URLS.VANITY_PRODUCT_NOTICE);\n    }\n\n    stackedFlowItems.push(URLS.COMPLETE);\n    const flowItems = _flattenDeep(stackedFlowItems);\n    return flowItems;\n  };\n/* eslint-enable max-statements */\n\nexport default {\n  getFlowOrder\n};\n","import { getRegistrationFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegistrationFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport getFlow from './flows';\nimport { getEntryPoint as getCorpEntryPoint } from '../complete_corp';\nimport { getEntryPoint as getEINEntryPoint } from '../complete_ein';\nimport { getEntryPoint as getLLCEntryPoint } from '../complete_llc';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/purchase_post_addons';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { storageKey as initializationKey } from '../../reducers/initialization/fees';\nimport { storageKey as leadKey } from '../../reducers/registration/lead';\nimport { storageKey as blrKey } from '../../reducers/registration/blr';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as postpurchaseKey } from '../../reducers/registration/postpurchase';\nimport { storageKey as feedbackKey } from '../../reducers/registration/feedback';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport { trackEvent } from '../../utils/ThirdPartyTracking';\nimport { updateLead } from '../register_ein';\nimport { getPostPurchaseVanityProduct } from '../../utils/ProductService';\n\nconst\n  defaultInitializationData = { expediteFees: {} },\n  initializationData = getReducerSnapshot(initializationKey, defaultInitializationData),\n  defaultBlrData = { existingCompany: false, skipBLR: false },\n  blrData = getReducerSnapshot(blrKey, defaultBlrData),\n  defaultBusinessData = { requestedJurisdiction: '', type: 'LLCX', id: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultLeadData = {},\n  leadData = getReducerSnapshot(leadKey, defaultLeadData),\n  //add purchase BLR\n  defaultPostpurchaseData = {\n    purchaseBOF: false,\n    bofOngoing: false,\n    purchaseZbBankingPreferredOffer: false,\n    purchaseBankOfAmericaOffer: null,\n    purchaseFFD: false,\n    purchaseCD: false,\n    purchaseWFGIR: false,\n    purchaseDBAEntity: false,\n    purchaseExpenseTrackerAndTaxFiling: false,\n    purchaseZBMPro: false,\n    purchaseVBA: false,\n    purchaseTaxAdvice: false,\n    taxAdviceMonthly: false,\n    purchaseTaxAdviceBizTaxPrep: false,\n    taxAdviceBizTaxPrepMonthly: false,\n    showCD: true,\n    showZBMPro: false,\n    flowType: ''\n  },\n  postpurchaseData = getReducerSnapshot(postpurchaseKey, defaultPostpurchaseData),\n  defaultFeedbackData = { feedbackSource: '', feedbackOther: '' },\n  feedbackData = getReducerSnapshot(feedbackKey, defaultFeedbackData),\n  purchaseData = getReducerSnapshot(purchaseKey, { ein: null, domainName: null }),\n\n  getFlowOrder = (url, lead) => {\n    const\n      registration = {\n        lead: lead || leadData,\n        initialization: initializationData,\n        blr: blrData,\n        business: businessData,\n        purchase: purchaseData,\n        postpurchase: postpurchaseData\n      },\n      flow = getFlow(url, registration);\n\n    return flow;\n  },\n\n  /* eslint-disable max-statements */\n  getBackUrl = () => {\n    _assign(purchaseData, getReducerSnapshot(purchaseKey, { ein: null, domainName: null }));\n\n    const\n      { ein } = purchaseData,\n      { type } = businessData;\n\n    if (ein) {\n      return getEINEntryPoint(true);\n    }\n    if (type === 'LLCX') {\n      return getLLCEntryPoint(true);\n    }\n    return getCorpEntryPoint();\n  },\n  /* eslint-enable max-statements */\n\n  go = (jump, doReplace, lead) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url, lead),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n    if (jumpIndex < 0) {\n      browserHistory.push(getBackUrl());\n    } else if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        // Redirect to zb banking preferred application initialization if\n        // customer has purchased the zb banking preferred offer\n        if (postpurchaseData.purchaseZbBankingPreferredOffer || purchaseData.zbBankingPreferred) {\n          document.location = `/dashboard/${businessData.id}/banking/dashboard?modal=application-init`;\n          return;\n        }\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n\n  set = (dispatch, data, actionKey, moveUrl, doReplace) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, doReplace);\n    }\n  };\n\nexport const getEntryPoint = () => {\n  _assign(blrData, getReducerSnapshot(blrKey, defaultBlrData));\n  _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n  _assign(initializationData, getReducerSnapshot(initializationKey, defaultInitializationData));\n  _assign(purchaseData, getReducerSnapshot(purchaseKey, { ein: null, domainName: null }));\n  _assign(postpurchaseData, getReducerSnapshot(postpurchaseKey, defaultPostpurchaseData));\n\n  const flowOrder = getFlowOrder('');\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const { skipBLR } = getReducerSnapshot(blrKey, defaultBlrData);\n  const location = document.location.pathname.substring(URLS.BASE.length + 2);\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  if (skipBLR && location === URLS.PURCHASE_FFD) {\n    const flowOrder = getFlowOrder(location);\n    const index = _indexOf(flowOrder, location);\n    const lastToBack = _indexOf(flowOrder, URLS.BLR_START);\n    go(lastToBack - index);\n  } else {\n    go(-1);\n  }\n};\n\nexport const goNext = (lead) => {\n  go(1, undefined, lead);\n};\n\nexport const resetAllData = (dispatch, data) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET,\n    payload: {\n      data: data || {}\n    }\n  });\n};\n\nexport const getNextUncompletedPage = (dispatch, location) => {\n  _assign(blrData, getReducerSnapshot(blrKey, defaultBlrData));\n  _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n  _assign(initializationData, getReducerSnapshot(initializationKey, defaultInitializationData));\n  _assign(postpurchaseData, getReducerSnapshot(postpurchaseKey, defaultPostpurchaseData));\n  _assign(purchaseData, getReducerSnapshot(purchaseKey, { ein: null, domainName: null }));\n\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        return { isDashboard: true, url: `/${COMPANY_URLS.BASE}/${businessData.id}` };\n      }\n      return { isDashboard: true, url: `/${DASHBOARD_URLS.BASE}` };\n    }\n    return { isDasboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  _assign(blrData, getReducerSnapshot(blrKey, defaultBlrData));\n  _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n  _assign(initializationData, getReducerSnapshot(initializationKey, defaultInitializationData));\n  _assign(postpurchaseData, getReducerSnapshot(postpurchaseKey, defaultPostpurchaseData));\n  _assign(purchaseData, getReducerSnapshot(purchaseKey, { ein: null, domainName: null }));\n\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const goToShare = () => {\n  browserHistory.push(`/${URLS.BASE}/${URLS.SHARE}`);\n};\n\nexport const setBLRBusinessIndustry = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BLR_BUS_INDUSTRY, false);\n};\n\nexport const setBLRBusinessOutOfHome = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BLR_BUS_AT_HOME, false);\n};\n\nexport const setBLRDataConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BLR_DATA_CONFIRM, false);\n};\n\nexport const setBLREmployeesCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BLR_EMPL_COUNT, false);\n};\n\nexport const setBLRHasDBAs = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BLR_HAS_DBAS, false);\n};\n\nexport const setBLRHasEmployees = (dispatch, data) => {\n  blrData.hasEmployees = data.hasEmployees;\n  set(dispatch, data, ACTIONS.BLR_HAS_EMPLOYEES, false);\n};\n\nexport const setBLRLicenseDataModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BLR_LIC_DATA_MODAL, false);\n};\n\nexport const setBLRStart = (dispatch, data) => {\n  _assign(purchaseData, getReducerSnapshot(purchaseKey, { ein: null, domainName: null }));\n  set(dispatch, data, ACTIONS.BLR_START, false);\n};\n\nexport const setPurchaseBLR = (dispatch, data) => {\n  postpurchaseData.purchaseBLR = data.purchaseBLR;\n  set(dispatch, data, ACTIONS.PURCHASE_BLR, false, data.doReplace || false);\n};\n\nexport const setPurchaseRA = (dispatch, data) => {\n  postpurchaseData.purchaseRA = data.purchaseRA;\n  set(dispatch, data, ACTIONS.PURCHASE_RA, false, data.doReplace || false);\n};\n\nconst updateOrderTaskStatus = (dispatch, blrOrderTaskUuid, status, subStatus, skip) => {\n  orderService.updateOrderTaskStatus(\n    blrOrderTaskUuid,\n    status,\n    subStatus\n  ).then(() => {\n    set(dispatch, ACTIONS.BLR_SKIP, skip);\n  }).catch((err) => {\n    set(dispatch, {\n      error: err && err.error ? err.error : 'Server Error',\n      errorCode: err && err.errorCode ? err.errorCode : 500\n    }, ACTIONS.BLR_SKIP, !skip);\n  });\n};\n\nexport const setSkipBLR = (dispatch, data) => {\n  const { blrOrderTaskUuid, skipBLR } = data;\n  let status = '';\n  let subStatus = '';\n  logger.logAction(ACTIONS.BLR_SKIP, data);\n  dispatch({\n    type: ACTIONS.BLR_SKIP\n  });\n  if (skipBLR) {\n    status = 'pending';\n    subStatus = 'fulfillment hold';\n    updateOrderTaskStatus(dispatch, blrOrderTaskUuid, status, subStatus, true);\n    const ffdURL = `/${URLS.BASE}/purchase-ffd`;\n    browserHistory.push(ffdURL);\n  } else {\n    if (blrData.skipBLR) {\n      status = 'incomplete';\n      subStatus = '';\n      updateOrderTaskStatus(dispatch, blrOrderTaskUuid, status, subStatus, false);\n    }\n    set(dispatch, ACTIONS.BLR_SKIP, false);\n  }\n};\n\nexport const setPurchaseBOF = (dispatch, data) => {\n  postpurchaseData.purchaseBOF = data.purchaseBOF;\n  postpurchaseData.bofOngoing = data.bofOngoing;\n  set(dispatch, data, ACTIONS.PURCHASE_BOF, false, data.doReplace || false);\n};\n\nexport const setPurchaseBusinessKit = (dispatch, data) => {\n  postpurchaseData.purchaseBusinessKit = data.purchaseBusinessKit;\n  set(dispatch, data, ACTIONS.PURCHASE_BUSINESSKIT, false, data.doReplace || false);\n};\n\nexport const setPurchaseFFD = (dispatch, data) => {\n  postpurchaseData.purchaseFFD = data.purchaseFFD;\n  set(dispatch, data, ACTIONS.PURCHASE_FFD, false, data.doReplace || false);\n};\n\nexport const setZbBankingPreferred = ( dispatch, data ) => {\n  postpurchaseData.purchaseZbBankingPreferredOffer = data.purchaseZbBankingPreferredOffer;\n  set(dispatch, data, ACTIONS.PURCHASE_BANKING_PREFERRED_OFFER, false);\n};\n\nexport const setBankOfAmericaOffer = ( dispatch, data ) => {\n  postpurchaseData.purchaseBankOfAmericaOffer = data.purchaseBankOfAmericaOffer;\n  set(dispatch, data, ACTIONS.PURCHASE_BOA_OFFER, false);\n};\n\nexport const setPurchaseCD = (dispatch, data) => {\n  postpurchaseData.purchaseCD = data.purchaseCD;\n  set(dispatch, data, ACTIONS.PURCHASE_CD, false, data.doReplace || false);\n};\n\n\nexport const setPurchaseWFGIR = (dispatch, data) => {\n  postpurchaseData.purchaseWFGIR = data.purchaseWFGIR;\n  set(dispatch, data, ACTIONS.PURCHASE_WFGIR, false, data.doReplace || false);\n};\n\nexport const setPurchaseExpenseTrackerAndTaxFiling = (dispatch, data) => {\n  postpurchaseData.purchaseExpenseTrackerAndTaxFiling = data.purchaseExpenseTrackerAndTaxFiling;\n  set(dispatch, data, ACTIONS.PURCHASE_EXPENSE_TRACKING_AND_TAX_FILING, true, data.doReplace || false);\n};\n\nexport const setPurchaseTaxAdviceBundle = (dispatch, data) => {\n  postpurchaseData.purchaseTaxAdvice = data.purchaseTaxAdvice;\n  postpurchaseData.taxAdviceMonthly = data.taxAdviceMonthly;\n  postpurchaseData.purchaseTaxAdviceBizTaxPrep = data.purchaseTaxAdviceBizTaxPrep;\n  postpurchaseData.taxAdviceBizTaxPrepMonthly = data.taxAdviceBizTaxPrepMonthly;\n  set(dispatch, data, ACTIONS.PURCHASE_TAX_ADVICE_BUNDLE, false, data.doReplace || false);\n};\n\nexport const setFeedback = (dispatch, data, leadSourceData) => {\n  const { industry, ...removeIndustry } = leadSourceData;\n  updateLead(dispatch, {\n    ...(industry ? leadSourceData : removeIndustry),\n    how_did_you_hear_about_us: data.feedbackSource,\n    how_did_you_hear_about_us_other: data.feedbackOther\n  }, leadSourceData.lead_uuid);\n\n  feedbackData.feedbackSource = data.feedbackSource;\n  feedbackData.feedbackOther = data.feedbackOther;\n  set(dispatch, data, ACTIONS.PURCHASE_FEEDBACK, false, data.doReplace || false);\n};\n\nexport const setFutureFilingDate = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.FUTURE_FILING_DATE, false);\n};\n\nexport const setFFDDataModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.FFD_DATA_MODAL, false);\n};\n\nexport const setPurchaseVanityProduct = (dispatch, data) => {\n  postpurchaseData.purchaseVanityProduct = data.purchaseVanityProduct;\n  set(dispatch, data, ACTIONS.VANITY_PRODUCT_OFFER, false);\n};\n\nexport const setMarkComplete = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.MARK_COMPLETE, data.forward || false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  const {\n    purchaseBankOfAmericaOffer,\n    purchaseBOF,\n    bofOngoing,\n    purchaseBLR,\n    purchaseRA,\n    purchaseBusinessKit,\n    purchaseCD,\n    purchaseExpenseTrackerAndTaxFiling,\n    purchaseFFD,\n    purchaseVanityProduct,\n    purchaseVBA,\n    purchaseWFGIR,\n    purchaseTaxAdvice,\n    taxAdviceMonthly,\n    purchaseTaxAdviceBizTaxPrep,\n    taxAdviceBizTaxPrepMonthly,\n    purchaseZbBankingPreferredOffer,\n    purchaseZBMPro\n  } = data;\n\n  postpurchaseData.purchaseBLR = purchaseBLR;\n  postpurchaseData.purchaseRA = purchaseRA;\n  postpurchaseData.purchaseBusinessKit = purchaseBusinessKit;\n  postpurchaseData.purchaseBOF = purchaseBOF;\n  postpurchaseData.bofOngoing = bofOngoing;\n  postpurchaseData.purchaseFFD = purchaseFFD;\n  postpurchaseData.purchaseCD = purchaseCD;\n  postpurchaseData.purchaseWFGIR = purchaseWFGIR;\n  postpurchaseData.purchaseExpenseTrackerAndTaxFiling = purchaseExpenseTrackerAndTaxFiling;\n  postpurchaseData.purchaseZBMPro = purchaseZBMPro;\n  postpurchaseData.purchaseVBA = purchaseVBA;\n  postpurchaseData.purchaseVanityProduct = getPostPurchaseVanityProduct() && purchaseVanityProduct;\n  postpurchaseData.purchaseBankOfAmericaOffer = purchaseBankOfAmericaOffer;\n  postpurchaseData.purchaseZbBankingPreferredOffer = purchaseZbBankingPreferredOffer;\n  postpurchaseData.purchaseTaxAdvice = purchaseTaxAdvice;\n  postpurchaseData.taxAdviceMonthly = taxAdviceMonthly;\n  postpurchaseData.purchaseTaxAdviceBizTaxPrep = purchaseTaxAdviceBizTaxPrep;\n  postpurchaseData.taxAdviceBizTaxPrepMonthly = taxAdviceBizTaxPrepMonthly;\n\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setPaymentComplete = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT_COMPLETE, true);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n  logger.logAction(REGISTRATION_ACTIONS.PURCHASE_SUCCESS, data);\n  dispatch({\n    type: REGISTRATION_ACTIONS.PURCHASE_SUCCESS,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.COMPLETE, true);\n};\n\nexport const setEstimatedFormationDate = (dispatch, data) => {\n  logger.logAction(ACTIONS.EST_DATE, data);\n  dispatch({\n    type: ACTIONS.EST_DATE,\n    payload: {\n      data\n    }\n  });\n};\n\nconst createPostPurchaseOrder = (dispatch, reducerData, fees, advance, ldClient, vanityLegalPurchased, needsBOFStandalone) => {\n  const { postpurchase } = reducerData,\n    { purchaseBOF } = postpurchase;\n\n  registrationService.createPostPurchase(reducerData, fees).then((response) => {\n    const { data } = response;\n\n    if (needsBOFStandalone) {\n      registrationService.createPostPurchaseBOF(reducerData).then(() => {\n        logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n        dispatch({\n          type: ACTIONS.CREATE_ORDER_COMPLETE,\n          payload: {\n            data,\n            reducerData\n          }\n        });\n\n        if (ldClient && vanityLegalPurchased) {\n          ldClient.track('Vanity Product Purchased');\n        }\n        if (ldClient && purchaseBOF) {\n          ldClient.track('BOF Purchased');\n        }\n        trackEvent('Purchase', 'complete', 'post_purchase');\n        if (advance) {\n          go(1);\n        }\n      }).catch((err2) => {\n        logger.error(ACTIONS.CREATE_ORDER_BOF_FAILED, err2);\n        dispatch({\n          type: ACTIONS.CREATE_ORDER_BOF_FAILED,\n          payload: {\n            data,\n            reducerData,\n            error: err2 && err2.error ? err2.error : 'Server Error',\n            errorCode: err2 && err2.errorCode ? err2.errorCode : 500              }\n        });\n        if (ldClient && vanityLegalPurchased) {\n          ldClient.track('Vanity Product Purchased');\n        }\n        trackEvent('Purchase', 'complete', 'post_purchase');\n        if (advance) {\n          go(1);\n        }\n      });\n    } else {\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      if (ldClient && vanityLegalPurchased) {\n        ldClient.track('Vanity Product Purchased');\n      }\n      if (ldClient && purchaseBOF) {\n        ldClient.track('BOF Purchased');\n      }\n      trackEvent('Purchase', 'complete', 'post_purchase');\n      if (advance) {\n        go(1);\n      }\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, fees, advance, ldClient, vanityLegalPurchased, needsBOFStandalone) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { postpurchase } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = postpurchase;\n\n  if (!cardToken) {\n    createPostPurchaseOrder(dispatch, reducerData, fees, advance, ldClient, vanityLegalPurchased, needsBOFStandalone);\n  } else {\n    const data = { card_token: cardToken, expMonth, expYear, cvc, isDefault: true, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createPostPurchaseOrder(dispatch, reducerData, fees, advance, ldClient, vanityLegalPurchased, needsBOFStandalone);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, advance) => {\n  const { lead } = reducerData;\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService[reducerData.business.type === 'CORP' ? 'updateCorp' : 'updateLLC'](reducerData, filingFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1, undefined, lead);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  goNext,\n  goToNextUncompletedPage,\n  goToShare,\n  orderAlreadyCreated,\n  setBankOfAmericaOffer,\n  setPurchaseBOF,\n  setBLRBusinessIndustry,\n  setBLRBusinessOutOfHome,\n  setBLRDataConfirmation,\n  setBLREmployeesCount,\n  setBLRHasDBAs,\n  setBLRHasEmployees,\n  setBLRLicenseDataModal,\n  setBLRStart,\n  setSkipBLR,\n  setComplete,\n  setEstimatedFormationDate,\n  setFeedback,\n  setFFDDataModal,\n  setFutureFilingDate,\n  setMarkComplete,\n  setPayment,\n  setPaymentComplete,\n  setPurchaseBLR,\n  setPurchaseRA,\n  setPurchaseBusinessKit,\n  setPurchaseFFD,\n  setPurchaseCD,\n  setPurchaseWFGIR,\n  setPurchaseTaxAdviceBundle,\n  createOrder,\n  updateOrder,\n  resetAllData\n};\n","import _assign from 'lodash/assign';\nimport { URLS, NEW_CORP_STOCK_FEES_CALCULATOR } from '../../../constants/complete_corp';\nimport { DBA_IGNORE_STATES } from '../../../constants/ui';\nimport { isDBAEntityEnabled, isDBAComplianceEnabled } from '../../../utils/ProductService';\nimport { isVmaJurisdiction } from '../../../utils/VmaUtils';\nimport featureFlags from '../../../featureFlags';\n\nconst DBA_IGNORE_STATES_WITH_DELAWARE = _assign({ AZ: true, CA: true, CT: true, DE: true, FL: true, NE: true, NY: true, PA: true, WY: true }, DBA_IGNORE_STATES);\nconst HAS_MORE_THAN_ONE_SHARE_STATES = { CA: true };\n\n/* eslint-disable max-statements */\nconst\n  getAddressFlow = (url, registration) => {\n    const { business, businessAddresses, purchase } = registration;\n    const flowItems = [];\n\n    if (!purchase.planLevel) {\n      return flowItems;\n    }\n\n    flowItems.push(URLS.PHYS_ADDR);\n\n    if (!businessAddresses.usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n\n    if (isVmaJurisdiction(business.requestedJurisdiction)) {\n      flowItems.push(URLS.PURCHASE_VBA);\n    }\n\n    return flowItems;\n  },\n\n  getDBAEntityFlow = (url, registration) => {\n    const { purchaseDBAEntity } = registration.postpurchase,\n      { requestedJurisdiction } = registration.business;\n\n    if (DBA_IGNORE_STATES_WITH_DELAWARE[requestedJurisdiction]) {\n      if (url === URLS.PURCHASE_DBA_ENTITY) {\n        return [ URLS.PURCHASE_DBA_ENTITY ];\n      }\n      if (url === URLS.DBA_ENTITIES) {\n        return [ URLS.DBA_ENTITIES ];\n      }\n      if (url === URLS.PURCHASE_DBA_COMPLIANCE) {\n        return [ URLS.PURCHASE_DBA_COMPLIANCE ];\n      }\n      return [];\n    }\n\n    if (isDBAEntityEnabled()) {\n      if (purchaseDBAEntity) {\n        if (isDBAComplianceEnabled()) {\n          return [ URLS.PURCHASE_DBA_ENTITY, URLS.DBA_ENTITIES, URLS.PURCHASE_DBA_COMPLIANCE ];\n        }\n        return [ URLS.PURCHASE_DBA_ENTITY, URLS.DBA_ENTITIES ];\n      }\n      return [ URLS.PURCHASE_DBA_ENTITY ];\n    }\n    return [];\n  },\n\n  getRegisteredAgentFlow = (registration) => {\n    const { registeredAgentService } = registration.purchase;\n\n    if (!registeredAgentService) {\n      return [URLS.PURCHASE_REGISTERED_AGENT];\n    }\n\n    return [];\n  },\n\n  getHasMoreThanOneShareFlow = (registration) => {\n    const { requestedJurisdiction } = registration.business;\n\n    if (HAS_MORE_THAN_ONE_SHARE_STATES[requestedJurisdiction]) {\n      return [URLS.HAS_MORE_THAN_ONE_SHARE];\n    }\n\n    return [];\n  },\n\n  getFlowOrder = (url, registration, ldFlags) => {\n    const\n      { officer, domainName: domainNameData, purchase, business } = registration,\n      { requestedJurisdiction } = business,\n      flowItems = [\n        URLS.START_COMP,\n        URLS.BUS_NAME,\n        ...getDBAEntityFlow(url, registration),\n        URLS.BUS_DESC,\n        ...getAddressFlow(url, registration),\n        ...getRegisteredAgentFlow(registration, ldFlags),\n        ...getHasMoreThanOneShareFlow(registration)\n      ],\n      { skip } = domainNameData,\n      { hasAsstSecretary, hasVicePresident } = officer,\n      { domainName, basicEmail } = purchase;\n\n    if (ldFlags?.[NEW_CORP_STOCK_FEES_CALCULATOR]) {\n      // order_task_data-driven stock branch. Guards come from the corpStockFlow snapshot\n      // hydrated on init; the fee gate reads the calculated amount on registration.stockSetup\n      // (written by the CORP_STOCK_CALCULATED page). Hierarchy is keyed on feePaid — NOT\n      // sharesCollected — so writing shares can never route the customer past an unpaid checkout.\n      // The decision inputs are logged once at init via SET_CORP_STOCK_FLOW (actions/complete_corp),\n      // so a misroute after the flag is flipped is diagnosable from that event; this builder runs on\n      // every navigation, so it deliberately stays log-free to avoid hot-path noise.\n      const\n        { hasVariableFee, sharesCollected, feePaid } = registration.corpStockFlow || {},\n        { stockTotalAdjusted } = registration.stockSetup || {},\n        adjustedFee = Number(stockTotalAdjusted),\n        feeOwed = Number.isFinite(adjustedFee) && adjustedFee > 0;\n\n      if (feePaid) {\n        // paid (or $0 state_fees recorded) — stock is done, skip every stock step\n      } else if (sharesCollected && feeOwed) {\n        // Shares already collected but the fee is still owed — straight to checkout. This sits above\n        // the hasVariableFee check intentionally: a fee can only be owed on a variable-fee corp, so\n        // routing here without re-checking hasVariableFee is correct (and billing-safe).\n        flowItems.push(URLS.STOCK_CHECKOUT);\n      } else if (hasVariableFee) {\n        flowItems.push(URLS.CORP_STOCK_CALCULATED);\n        if (feeOwed) {\n          flowItems.push(URLS.STOCK_CHECKOUT);\n        }\n      } else {\n        flowItems.push(URLS.CORP_STOCK);\n      }\n    } else {\n      // Flag OFF: preserve the existing static stockSetup behavior exactly.\n      if (featureFlags.features.stockSetup && requestedJurisdiction !== 'DE') {\n        flowItems.push(URLS.CORP_STOCK);\n      }\n\n      if (!featureFlags.features.stockSetup) {\n        flowItems.push(URLS.CORP_STOCK);\n      }\n    }\n\n    flowItems.push(URLS.DIR_COUNT);\n    flowItems.push(URLS.DIR_LIST);\n    flowItems.push(URLS.CHOOSE_PRES);\n\n    if (url === URLS.PRES) { // PRES is a direct-to-page link and is only in the flow if you go there directly\n      flowItems.push(URLS.PRES);\n    }\n    flowItems.push(URLS.HAS_VP);\n    if (hasVicePresident) {\n      flowItems.push(URLS.CHOOSE_VP);\n      if (url === URLS.VP) { // VP is a direct-to-page link and is only in the flow if you go there directly\n        flowItems.push(URLS.VP);\n      }\n    }\n    flowItems.push(URLS.CHOOSE_TRSR);\n    if (url === URLS.TRSR) { // TRSR is a direct-to-page link and is only in the flow if you go there directly\n      flowItems.push(URLS.TRSR);\n    }\n    flowItems.push(URLS.CHOOSE_SEC);\n    if (url === URLS.SEC) { // SEC is a direct-to-page link and is only in the flow if you go there directly\n      flowItems.push(URLS.SEC);\n    }\n    flowItems.push(URLS.HAS_ASST_SEC);\n    if (hasAsstSecretary) {\n      flowItems.push(URLS.CHOOSE_ASST_SEC);\n      if (url === URLS.ASST_SEC) { // ASST_SEC is a direct-to-page link and is only in the flow if you go there directly\n        flowItems.push(URLS.ASST_SEC);\n      }\n    }\n    flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    if (url === URLS.PRIM_CONTACT) { // PRIM_CONTACT is a direct-to-page link and is only in the flow if you go there directly\n      flowItems.push(URLS.PRIM_CONTACT);\n    }\n\n    flowItems.push(URLS.AUTH_SIG);\n\n    if (domainName) {\n      flowItems.push(URLS.DOMAIN_NAME);\n      if (basicEmail && !skip) {\n        flowItems.push(URLS.EMAIL_ADDRESS);\n      }\n    }\n    return flowItems;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getCompleteCorpFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration, ldFlags) => {\n    return (flowTestMap[getCompleteCorpFlowId()] || DefaultFlows).getFlowOrder(url, registration, ldFlags);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getEntryPoint as getEINEntryPoint } from '../complete_ein';\nimport { getEntryPoint as getPostPurchaseEntryPoint } from '../purchase_post_addons';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { ACTIONS, URLS, getPageDetails, NEW_CORP_STOCK_FEES_CALCULATOR } from '../../constants/complete_corp';\nimport { ACTIONS as VP_ACTIONS } from '../../constants/vanity_products';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { CORP_STOCK_FEE_STATES } from '../../constants/ui';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as corpStockFlowKey } from '../../reducers/registration/corpStockFlow';\nimport { storageKey as domainNameKey } from '../../reducers/registration/domainName';\nimport { storageKey as officerKey } from '../../reducers/registration/officers';\nimport { storageKey as postpurchaseKey } from '../../reducers/registration/postpurchase';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { storageKey as stockSetupKey } from '../../reducers/registration/stockSetup';\nimport { accountService, corpStockService, orderService, registrationService } from '../../services';\nimport { getOrderTasks } from '../orders';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport { parseBoolToString } from '../../utils/DataCleaningUtils';\nimport getFlow from './flows';\nimport { getButtonClickDetails, trackClick } from '../../utils/ThirdPartyTracking';\nimport { parseUrl } from '../../utils/UrlUtils';\nimport featureFlags from '../../featureFlags';\n\n// The flow builder runs on every navigation, but only goNext/goBack thread `ldFlags`;\n// the legacy steps navigate via set()/getEntryPoint, which don't. Cache the flags captured at flow\n// start (Header → initCorpStockFlow) so getFlowOrder can fall back to them and the flag-ON stock\n// branch is seen on every navigation, not just goNext. Flag-OFF stays byte-identical: a flag-OFF\n// session only ever caches a flags object whose key is falsy, so getFlowOrder still takes the OFF\n// branch. (Global env-wide flag, so a session-lifetime cache carries no per-user-targeting risk.)\nlet activeLdFlags = null;\n\nconst\n  defaultBusinessData = { requestedJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  domainNameData = getReducerSnapshot(domainNameKey, { skip: false }),\n  officerData = getReducerSnapshot(officerKey, { hasAsstSecretary: false, hasVicePresident: false }),\n  postpurchaseData = getReducerSnapshot(postpurchaseKey, { purchaseDBAEntity: false, purchaseVBA: false }),\n  purchaseData = getReducerSnapshot(purchaseKey, { ein: null, domainName: null, planLevel: '' }),\n  // Order-task-derived flow-guard booleans the stock branch reads.\n  defaultCorpStockFlowData = { hasVariableFee: false, sharesCollected: false, feePaid: false },\n  corpStockFlowData = getReducerSnapshot(corpStockFlowKey, defaultCorpStockFlowData),\n  // The calculated fee (stockTotalAdjusted) drives whether STOCK_CHECKOUT is in the flow.\n  // It lives on registration.stockSetup (written by the CORP_STOCK_CALCULATED page).\n  defaultStockSetupData = { stockTotalAdjusted: null },\n  stockSetupData = getReducerSnapshot(stockSetupKey, defaultStockSetupData),\n\n  getFlowOrder = (url, ldFlags) => {\n    const\n      registration = {\n        business: businessData,\n        businessAddresses: businessAddressesData,\n        corpStockFlow: corpStockFlowData,\n        domainName: domainNameData,\n        officer: officerData,\n        postpurchase: postpurchaseData,\n        purchase: purchaseData,\n        stockSetup: stockSetupData\n      },\n      // Fall back to the flags cached at flow start when a caller (set/getEntryPoint) didn't thread\n      // them — otherwise navigation through legacy steps would compute the flow flag-OFF.\n      flow = getFlow(url, registration, ldFlags || activeLdFlags);\n\n    return flow;\n  },\n\n  goInFlowOrder = (flowOrder, jumpIndex) => {\n    const\n      { ein } = purchaseData;\n\n    const urlMovement = {\n      method: browserHistory.push\n    };\n\n    const { disableEIN } = featureFlags.features;\n\n    if (jumpIndex < 0) {\n      urlMovement.url = `/${URLS.BASE}/${flowOrder[0]}`;\n    } else if (jumpIndex >= flowOrder.length) {\n      if (ein && !disableEIN) {\n        urlMovement.url = getEINEntryPoint();\n      } else {\n        urlMovement.url = getPostPurchaseEntryPoint();\n      }\n    } else {\n      urlMovement.url = `/${URLS.BASE}/${flowOrder[jumpIndex]}`;\n    }\n    return urlMovement;\n  },\n  makeUrlMovement = (movement) => {\n    const { useLocation, url, method } = movement;\n    if (useLocation) {\n      document.location = url;\n    } else {\n      method(url);\n    }\n  },\n  go = (jump, moveUrl, ldFlags) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url, ldFlags),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n    const urlMovement = goInFlowOrder(flowOrder, jumpIndex);\n    if (moveUrl) {\n      makeUrlMovement(urlMovement);\n    }\n    return urlMovement;\n  },\n  set = (dispatch, data, actionKey, moveUrl, clickEvent) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    const urlMovement = go(1, false);\n    if (clickEvent) {\n      trackClick(\n        getPageDetails(parseUrl(location.pathname, URLS.BASE)),\n        { nextUrl: urlMovement.url || '', ...clickEvent }\n      );\n    }\n    if (moveUrl) {\n      makeUrlMovement(urlMovement);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(domainNameData, getReducerSnapshot(domainNameKey, { skip: false }));\n    _assign(officerData, getReducerSnapshot(officerKey, { hasAsstSecretary: false, hasVicePresident: false }));\n    _assign(postpurchaseData, getReducerSnapshot(postpurchaseKey, { purchaseDBAEntity: false, purchaseVBA: false }));\n    _assign(purchaseData, getReducerSnapshot(purchaseKey, { ein: null, domainName: null, planLevel: '' }));\n    _assign(corpStockFlowData, getReducerSnapshot(corpStockFlowKey, defaultCorpStockFlowData));\n    _assign(stockSetupData, getReducerSnapshot(stockSetupKey, defaultStockSetupData));\n  };\n\n// After the stock fee settles (charged, $0-recorded, or 409 already-recorded), mirror feePaid into the\n// flow snapshot so the guard drops every stock step. MUST run AFTER goNext, else it bounces to start.\nconst markStockFeePaid = (dispatch) => {\n  dispatch({ type: ACTIONS.SET_CORP_STOCK_FLOW, payload: { data: { feePaid: true } } });\n  updateSnapshots();\n};\n\nexport const getEntryPoint = (fromBack) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index = fromBack ? flow.length - 1 : 0;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nconst hasValue = (val) => {\n  if (val === undefined || val === null || val === '') {\n    return false;\n  }\n  if (Array.isArray(val)) {\n    return val.length > 0;\n  }\n  return true;\n};\n\n// One-shot init for the new corp stock-fee flow. Flag-gated (OFF = zero calls). When ON it probes the\n// jurisdiction's variable-fee calculator and derives the flow-guard booleans from the order task.\nexport const initCorpStockFlow = (dispatch, registration, ldFlags) => {\n  // Capture the flags for the flow builder's fallback (see activeLdFlags note at module top). Header\n  // calls this once at flow start with the live LD flags, before any step navigation. Cache before\n  // the flag-gate bail so flag-OFF sessions also seed the (falsy-keyed) flags and stay byte-identical.\n  if (ldFlags) {\n    activeLdFlags = ldFlags;\n  }\n\n  if (!ldFlags || !ldFlags[NEW_CORP_STOCK_FEES_CALCULATOR]) {\n    return Promise.resolve();\n  }\n\n  const { business: { id: companyId, requestedJurisdiction: jurisdiction } } = registration;\n\n  // No companyId means registration.business hasn't loaded — bail rather than write a confident-wrong\n  // guard (init is one-shot, so a partial snapshot would mis-route a re-entering paid corp).\n  if (!companyId) {\n    logger.error(ACTIONS.SET_CORP_STOCK_FLOW, { message: 'corp stock init skipped: no companyId', jurisdiction });\n    return Promise.resolve();\n  }\n\n  const probe = corpStockService.getVariableFeeExistence(jurisdiction)\n    .then((result) => { return !!(result && result.hasVariableFee); })\n    .catch((err) => {\n      // Never route a known variable-fee jurisdiction to the feeless path on a probe failure —\n      // fall back to the known variable-fee set.\n      const fallback = CORP_STOCK_FEE_STATES.includes(jurisdiction);\n      logger.error(ACTIONS.SET_CORP_STOCK_FLOW, { message: 'corp stock calculator probe failed', jurisdiction, fallback, err });\n      return fallback;\n    });\n\n  // getOrderTasks never rejects (resolves undefined on failure); fail open so the stock steps still\n  // show, and log so the failure stays observable.\n  const tasks = getOrderTasks(dispatch, companyId)\n    .then((tasksArray) => {\n      if (!tasksArray) {\n        logger.error(ACTIONS.SET_CORP_STOCK_FLOW, { message: 'order task fetch failed on init', companyId });\n        return { sharesCollected: false, feePaid: false };\n      }\n      const\n        formation = tasksArray.find((task) => { return task.order_task_type === 'corp_formation'; }),\n        orderTaskData = (formation && formation.order_task_data) || {};\n      return {\n        sharesCollected: hasValue(orderTaskData.authorized_shares),\n        feePaid: hasValue(orderTaskData.state_fees)\n      };\n    });\n\n  return Promise.all([probe, tasks]).then(([hasVariableFee, { sharesCollected, feePaid }]) => {\n    const data = { hasVariableFee, sharesCollected, feePaid };\n    logger.logAction(ACTIONS.SET_CORP_STOCK_FLOW, data);\n    dispatch({\n      type: ACTIONS.SET_CORP_STOCK_FLOW,\n      payload: { data }\n    });\n    updateSnapshots();\n  }).catch((err) => {\n    // Header invokes this fire-and-forget; keep a throw in dispatch/updateSnapshots from\n    // surfacing as an unhandled rejection.\n    logger.error(ACTIONS.SET_CORP_STOCK_FLOW, { message: 'corp stock init failed', err });\n  });\n};\n\nexport const goBack = (dispatch, ldFlags) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, true, ldFlags);\n};\n\nexport const goNext = (dispatch, ldFlags) => {\n  logger.logAction(ACTIONS.GO_NEXT, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_NEXT\n  });\n  go(1, true, ldFlags);\n};\n\n// Cache the v4 calculator's live fee preview into registration.stockSetup as the customer types.\nexport const setStockFee = (dispatch, feeResponse) => {\n  dispatch({\n    type: ACTIONS.SET_STOCK_FEE,\n    payload: { data: feeResponse }\n  });\n};\n\n// CORP_STOCK_CALCULATED submit. Writes the collected shares to the formation order task (never to\n// registration.business), writes a $0.00 state_fees when nothing is owed now, then advances.\nexport const submitCorpStockCalculated = (dispatch, params, ldFlags) => {\n  const { orderTaskUuid, accountId, authorizedShares, valuePerShare, netTotal } = params;\n  const owedNow = Number(netTotal);\n  const isZeroFee = Number.isFinite(owedNow) && owedNow === 0;\n  logger.logAction(ACTIONS.SUBMIT_CORP_STOCK_CALCULATED, { orderTaskUuid });\n  return orderService.patchOrderTaskData(orderTaskUuid, {\n    authorized_shares: authorizedShares,\n    par_value: valuePerShare\n  }).then(() => {\n    if (isZeroFee) {\n      return corpStockService.addFeeCorpCalculator(orderTaskUuid, { account_uuid: accountId, fee_amount: '0.00' });\n    }\n    return null;\n  }).then(() => {\n    updateSnapshots();\n    goNext(dispatch, ldFlags);\n    // $0 owed → a $0 state_fees was just written, so the fee is settled: lock the stock steps against\n    // back-nav. (Non-$0 advances to STOCK_CHECKOUT, which flips feePaid when the charge succeeds.)\n    if (isZeroFee) {\n      markStockFeePaid(dispatch);\n    }\n  }).catch((err) => {\n    // Surface the billing/order-task failure (the page also shows a retry modal). Re-reject so the\n    // page's .catch keeps the customer on the step — the order task was not advanced.\n    logger.error(ACTIONS.SUBMIT_CORP_STOCK_CALCULATED, { orderTaskUuid, err });\n    return Promise.reject(err);\n  });\n};\n\n// Simple CORP_STOCK step submit (flag-ON, non-variable-fee jurisdictions): write the shares to the\n// formation order task (never registration.business) and advance. No fee on this step.\nexport const submitCorpStock = (dispatch, params, ldFlags) => {\n  const { orderTaskUuid, authorizedShares, valuePerShare } = params;\n  logger.logAction(ACTIONS.CORP_STOCK, { orderTaskUuid, orderTask: true });\n  return orderService.patchOrderTaskData(orderTaskUuid, {\n    authorized_shares: authorizedShares,\n    par_value: valuePerShare\n  }).then(() => {\n    updateSnapshots();\n    goNext(dispatch, ldFlags);\n  }).catch((err) => {\n    logger.error(ACTIONS.CORP_STOCK, { orderTaskUuid, err });\n    return Promise.reject(err);\n  });\n};\n\n// STOCK_CHECKOUT confirm: persist a new card as default first (the v4 add-fee charges the account\n// server-side, takes no card), then POST the fee. 200/409 advance; 422 → {mismatch}; other → {payment}.\nexport const submitStockCheckout = (dispatch, params, ldFlags) => {\n  const { orderTaskUuid, accountId, feeAmount, payment = {} } = params;\n  logger.logAction(ACTIONS.SUBMIT_STOCK_CHECKOUT, { orderTaskUuid });\n\n  const ensurePaymentMethod = payment.cardToken\n    ? accountService.addPaymentMethodV2({\n      expMonth: payment.expMonth,\n      expYear: payment.expYear,\n      cvc: payment.cvc,\n      isDefault: true,\n      card_token: payment.cardToken,\n      brand: payment.brand,\n      last4: payment.last4\n    }).then((response) => {\n      const mergedData = _assign({}, response.data, payment);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: { data: mergedData }\n      });\n    })\n    : Promise.resolve();\n\n  return ensurePaymentMethod\n    .then(() => { return corpStockService.addFeeCorpCalculator(orderTaskUuid, { account_uuid: accountId, fee_amount: feeAmount }); })\n    .then(() => {\n      updateSnapshots();\n      goNext(dispatch, ldFlags);\n      // Charged → settle: lock shares edit + checkout against back-navigation.\n      markStockFeePaid(dispatch);\n    })\n    .catch((err) => {\n      const status = err && err.status;\n      if (status === 409) {\n        // Different fee already recorded — backend holds it at action_required for CS. Don't block\n        // the customer, but log a breadcrumb so the divergent-fee volume is observable client-side.\n        logger.logAction(ACTIONS.SUBMIT_STOCK_CHECKOUT, { orderTaskUuid, conflict: true });\n        updateSnapshots();\n        goNext(dispatch, ldFlags);\n        // A (different) fee is already recorded for this task — treat as settled so the customer\n        // can't loop back into shares/checkout.\n        markStockFeePaid(dispatch);\n        return Promise.resolve();\n      }\n      logger.error(ACTIONS.SUBMIT_STOCK_CHECKOUT, { orderTaskUuid, status, err });\n      return Promise.reject({ kind: status === 422 ? 'mismatch' : 'payment', status });\n    });\n};\n\nexport const getNextUncompletedPage = (dispatch, location, ldFlags) => {\n  updateSnapshots();\n  const\n    flowOrder = getFlowOrder(location, ldFlags),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1,\n    { ein } = purchaseData;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (ein) {\n        return { isDashboard: false, url: getEINEntryPoint() };\n      }\n      return { isDashboard: false, url: getPostPurchaseEntryPoint() };\n    }\n    return { isDashboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location, ldFlags) => {\n  updateSnapshots();\n  const\n    flowOrder = getFlowOrder(location, ldFlags),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    const urlMovement = goInFlowOrder(flowOrder, jumpIndex, ldFlags);\n    makeUrlMovement(urlMovement);\n    return true;\n  }\n  return false;\n};\n\nexport const setAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ASST_SEC, false);\n};\n\nexport const goToAsstSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_ASST_SEC, URLS.ASST_SEC);\n};\n\nexport const setBasicEmailAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMAIL_ADDRESS, false);\n};\n\nexport const setBusinessAlternates = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_ALT, false);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, false);\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME, false);\n};\n\nexport const setChooseAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_ASST_SEC, false);\n};\n\nexport const setChoosePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRES, false);\n};\n\nexport const setChoosePrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRIM_CONTACT, false);\n};\n\nexport const setChooseSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_SEC, false);\n};\n\nexport const setChooseTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_TRSR, false);\n};\n\nexport const setChooseVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_VP, false);\n};\n\nexport const setCorpStock = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_STOCK, false);\n};\n\nexport const setHasMoreThanOneShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.HAS_MORE_THAN_ONE_SHARE, false);\n};\n\nexport const setDBAEntities = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DBA_ENTITIES, false);\n};\n\nexport const setDirectorCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DIR_COUNT, false);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGENT, false);\n};\n\nexport const setDirectorList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DIR_LIST, false);\n};\n\nexport const setDomainNamePrimary = (dispatch, data) => {\n  domainNameData.skip = data.skip || false;\n  set(dispatch, data, ACTIONS.DOMAIN_NAME, false);\n};\n\nexport const setEstimatedFormationDate = (dispatch, data) => {\n  logger.logAction(ACTIONS.EST_DATE, data);\n  dispatch({\n    type: ACTIONS.EST_DATE,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setHasAsstSecretary = (dispatch, data) => {\n  officerData.hasAsstSecretary = data.hasAsstSecretary;\n  set(dispatch, data, ACTIONS.HAS_ASST_SEC, false);\n};\n\nexport const setHasVicePresident = (dispatch, data) => {\n  officerData.hasVicePresident = data.hasVicePresident;\n  set(dispatch, data, ACTIONS.HAS_VP, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRES, false);\n};\n\nexport const goToPresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRES, URLS.PRES);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, false);\n};\n\nexport const goToPrimaryContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRIM_CONTACT, URLS.PRIM_CONTACT);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, false);\n};\n\nexport const setPurchaseDBACompliance = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PURCHASE_DBA_COMPLIANCE, false);\n};\n\nexport const setPurchaseDBAEntity = (dispatch, data) => {\n  postpurchaseData.purchaseDBAEntity = data.purchaseDBAEntity;\n  set(dispatch, data, ACTIONS.PURCHASE_DBA_ENTITY, false);\n};\n\nexport const setPurchaseRA = (dispatch, data) => {\n  postpurchaseData.purchaseRA = data.purchaseRA;\n  set(dispatch, data, ACTIONS.PURCHASE_REGISTERED_AGENT, false, data.doReplace || false);\n};\n\nexport const setPurchaseVBA = (dispatch, data) => {\n  postpurchaseData.purchaseVBA = data.purchaseVBA;\n  const boolAsStr = parseBoolToString(data.purchaseVBA);\n  set(dispatch, data, ACTIONS.PURCHASE_VBA, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseVanityProduct = (dispatch, data) => {\n  postpurchaseData.purchaseVanityProduct = data.purchaseVanityProduct;\n  set(dispatch, data, VP_ACTIONS.VANITY_PRODUCT_OFFER, false);\n};\n\nexport const setSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SEC, false);\n};\n\nexport const goToSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_SEC, URLS.SEC);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n  logger.logAction(REGISTRATION_ACTIONS.PURCHASE_SUCCESS, data);\n  dispatch({\n    type: REGISTRATION_ACTIONS.PURCHASE_SUCCESS,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setStartComplete = (dispatch, data) => {\n  updateSnapshots();\n  set(dispatch, data, ACTIONS.START_COMP, data.forward);\n};\n\nexport const setTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.TRSR, false);\n};\n\nexport const goToTreasurer = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_TRSR, URLS.TRSR);\n};\n\nexport const setVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.VP, false);\n};\n\nexport const goToVicePresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_VP, URLS.VP);\n};\n\nexport const setAuthorizedSignatory = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG, false);\n};\n\nexport const updateContacts = (dispatch, data) => {\n  const { contactType } = data;\n  const type = {\n    member: 'UPDATE_MBR',\n    manager: 'UPDATE_MGR',\n    director: 'UPDATE_DIR',\n    officer: 'UPDATE_OFC'\n  };\n  const action = type[contactType || ''];\n  if (action) set(dispatch, data, ACTIONS[action], false);\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, expediteFees, advance, ldFlags) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER, { advance });\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService.updateCorp(reducerData, filingFees, expediteFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1, true, ldFlags);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport default {\n  getEntryPoint,\n  initCorpStockFlow,\n  setStockFee,\n  submitCorpStockCalculated,\n  submitCorpStock,\n  submitStockCheckout,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  goToAsstSecretary,\n  goToPresident,\n  goToPrimaryContact,\n  goToSecretary,\n  goToTreasurer,\n  goToVicePresident,\n  setAsstSecretary,\n  setBasicEmailAddress,\n  setBusinessAlternates,\n  setBusinessDescription,\n  setBusinessName,\n  setChooseAsstSecretary,\n  setChoosePresident,\n  setChoosePrimaryContact,\n  setChooseSecretary,\n  setChooseTreasurer,\n  setChooseVicePresident,\n  setCorpStock,\n  setHasMoreThanOneShare,\n  setDBAEntities,\n  setDirectorCount,\n  setDirectorList,\n  setDomainNamePrimary,\n  setHasAsstSecretary,\n  setHasVicePresident,\n  setMailingAddress,\n  setPhysicalAddress,\n  setPresident,\n  setPrimaryContact,\n  setPrincipalAddress,\n  setPurchaseDBACompliance,\n  setPurchaseDBAEntity,\n  setPurchaseRA,\n  setPurchaseVBA,\n  setSecretary,\n  setShare,\n  setStartComplete,\n  setTreasurer,\n  setVicePresident,\n  setEstimatedFormationDate,\n  setAuthorizedSignatory,\n  updateContacts,\n  updateOrder\n};\n","import { URLS } from '../../../constants/register_tax_services';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n    return [ URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_tax_services';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as taxServicesKey } from '../../reducers/registration/taxServices';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\n\nconst\n  defaultTaxServicesData = { companyId: '' },\n  taxServicesData = getReducerSnapshot(taxServicesKey, defaultTaxServicesData),\n  getFlowOrder = (url) => {\n    const registration = {\n      taxServices: taxServicesData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (taxServicesData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${taxServicesData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = taxServicesData.returnTo ? taxServicesData.returnTo : getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(taxServicesData, defaultTaxServicesData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n  if (data.redirectToDashboard) {\n    set(dispatch, {}, ACTIONS.COMPLETE_RETURN_TO_DASH, data.redirectToDashboard);\n    go(-1);\n  }\n  if (data.redirectToTaxServices) {\n    if (taxServicesData.companyId) {\n      document.location = `${getCompanyUrl()}/money/tax-services`;\n    } else {\n      document.location = DASHBOARD_URLS.BASE;\n    }\n  }\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId } = data;\n  taxServicesData.returnTo = data.returnTo;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(taxServicesData, { companyId });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.PAYMENT}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createTaxServicesOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createTaxServices(reducerData, accountId, filingFees).then((response) => {\n    const price = 0;\n    const addlData = createAdditionalData('tax_service', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'tax_services', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { taxServices } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = taxServices;\n\n  if (!cardToken) {\n    createTaxServicesOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createTaxServicesOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_zbmpro';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n    return [ URLS.START, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_zbmpro';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as zbmProKey } from '../../reducers/registration/zbmPro';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackClick, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getZBMProMonthlyPrice } from '../../utils/ProductService';\n\nconst\n  defaultZBMProData = { companyId: '' },\n  zbmProData = getReducerSnapshot(zbmProKey, defaultZBMProData),\n  getFlowOrder = (url) => {\n    const registration = {\n      zbmPro: zbmProData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (zbmProData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${zbmProData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = zbmProData.returnTo ? zbmProData.returnTo : getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  trackClickEvent = (pageTitle, clickText, inputValue) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + 1 : index,\n      nextUrl = jumpIndex >= 0 && jumpIndex <= flowOrder.length ? flowOrder[jumpIndex] : '',\n\n      pageDetails = {\n        activeFlow: URLS.BASE,\n        pageTitle,\n        pageType: 'standalone - Money Pro'\n      },\n      clickDetails = {\n        clickType: 'button',\n        clickText,\n        inputValue\n      };\n    if (nextUrl) {\n      clickDetails.nextUrl = nextUrl;\n    }\n    trackClick(pageDetails, clickDetails);\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(zbmProData, defaultZBMProData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n  if (data.redirect) {\n    const url = zbmProData.companyId ? `/dashboard/${zbmProData.companyId}/money/onboarding` : '/dashboard';\n    trackClickEvent(url, 'Link account', 'true');\n    set(dispatch, {}, ACTIONS.COMPLETE_LINK_WITH_PLAID, data.redirect);\n    document.location = url;\n  }\n  if (data.redirectToDashboard) {\n    trackClickEvent(DASHBOARD_URLS.BASE, 'Skip for now', 'true');\n    set(dispatch, {}, ACTIONS.COMPLETE_RETURN_TO_DASH, data.redirectToDashboard);\n    go(-1);\n  }\n  if (data.redirectToMoneyDashboard) {\n    const url = zbmProData.companyId ? `${getCompanyUrl()}/money` : DASHBOARD_URLS.BASE;\n    trackClickEvent(url, 'Skip', 'true');\n    set(dispatch, {}, ACTIONS.COMPLETE_RETURN_TO_MONEY_DASH, data.redirectToMoneyDashboard);\n    document.location = url;\n  }\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId } = data;\n  zbmProData.returnTo = data.returnTo;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(zbmProData, { companyId });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.PAYMENT}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createZBMProOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createZBMPro(reducerData, accountId, filingFees).then((response) => {\n    const price = getZBMProMonthlyPrice();\n    const addlData = createAdditionalData('zbm_pro', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'zbm_pro', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { zbmPro } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = zbmPro;\n\n  if (!cardToken) {\n    createZBMProOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createZBMProOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_wfgir';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n    return [ URLS.START, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_wfgir';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getWFGInitialReportPrice } from '../../utils/ProductService';\n\nconst\n  defaultBusinessData = { id: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  getFlowOrder = (url) => {\n    const registration = {\n      business: businessData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (businessData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${businessData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(defaultBusinessData, businessData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setBusinessId = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(businessData, { id: companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, worryFree, annualReportService } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(businessData, { id: companyId, worryFree });\n  _assign(businessData, { id: companyId, annualReportService });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createWFGIROrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createWFGInitialReport(reducerData, accountId, filingFees).then((response) => {\n    const price = getWFGInitialReportPrice();\n    const addlData = createAdditionalData('wfg_initial_report', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'initial_report', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { wfgir } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = wfgir;\n\n  if (!cardToken) {\n    createWFGIROrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createWFGIROrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setStart,\n  setInit,\n  setBusinessId,\n  setPayment,\n  setComplete,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_bof';\n\nconst\n  getFlowOrder = (url) => {\n    return url === URLS.COMPLETE ? [URLS.COMPLETE] : [URLS.PAYMENT, URLS.COMPLETE];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getBeneficialOwnershipFilingId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getBeneficialOwnershipFilingId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_bof';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as boiKey } from '../../reducers/registration/beneficialOwnershipFiling';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport {\n  getBeneficialOwnershipFilingPrice,\n  getOngoingBofCompliancePrice,\n  getBofModificationPrice\n} from '../../utils/ProductService';\n\nconst\n  defaultBoiData = { companyId: '' },\n  boiData = getReducerSnapshot(boiKey, defaultBoiData),\n  getFlowOrder = (url) => {\n    const registration = {\n      businessKit: boiData\n    };\n\n    return getFlow(url, registration);\n  },\n  getBofUrl = () => {\n    if (boiData.companyId) {\n      return `/f/go/complete_beneficial_ownership_filing?businessEntityUuid=${boiData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  getDashUrl = () => {\n    if (boiData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${boiData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getDashUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getBofUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(boiData, defaultBoiData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(boiData, { companyId });\n  set(dispatch, data, ACTIONS.INIT, false);\n\n  const url = `/${URLS.BASE}/${URLS.PAYMENT}`;\n  browserHistory.replace(url);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nconst createBeneficialOwnershipFilingOrder = (\n  dispatch, reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing\n) => {\n  registrationService.createBeneficialOwnershipFiling(\n    reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing\n  ).then((response) => {\n    const price = getBeneficialOwnershipFilingPrice();\n    const ongoingPrice = getOngoingBofCompliancePrice();\n    const bofModPrice = getBofModificationPrice();\n    const addlData = createAdditionalData('beneficial_ownership_filing', price, response.data.id);\n    const ongoingAddlData = createAdditionalData('ongoing_bof_compliance', ongoingPrice, response.data.id);\n    const bofModAddlData = createAdditionalData('bof_modification', bofModPrice, response.data.id);\n\n    if (isMod) {\n      trackEvent('Purchase', 'complete', 'bof_modification', bofModPrice, bofModAddlData);\n    } else {\n      trackEvent('Purchase', 'complete', 'beneficial_ownership_filing', price, addlData);\n      if (isOngoing) {\n        trackEvent('Purchase', 'complete', 'ongoing_bof_compliance', ongoingPrice, ongoingAddlData);\n      }\n    }\n\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { beneficialOwnershipFiling } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = beneficialOwnershipFiling;\n\n  if (!cardToken) {\n    createBeneficialOwnershipFilingOrder(\n      dispatch, reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing\n    );\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createBeneficialOwnershipFilingOrder(\n        dispatch, reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing\n      );\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setComplete,\n  setInit,\n  setPayment,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_business';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = () => {\n    const flow = [ URLS.BUS_TYPE, URLS.BUS_NAME, URLS.DOM_JUR ];\n\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterGSFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterGSFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/register_business';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { businessEntityService } from '../../services';\nimport logger from '../../utils/ClientLogger';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\n\nimport getFlow from './flows';\n\nconst\n  defaultBusinessData = { id: '', type: 'LLCX', addressMatch: false, addressIsGoogle: false, domesticJurisdiction: '', state: '', noIdMatches: false },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  getFlowOrder = (url) => {\n    const\n      registration = {\n        business: businessData\n      },\n      flow = getFlow(url, registration);\n\n    return flow;\n  },\n  go = (jump) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    if (jumpIndex < 0) {\n      document.location = getAppEntryPoint();\n    } else if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`; // Do this to refresh the data.\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      const flowOrderItem = flowOrder[jumpIndex],\n        nextUrl = /pricing/.test(flowOrderItem) ? flowOrderItem : `${URLS.BASE}/${flowOrderItem}`;\n\n      browserHistory.push(`/${nextUrl}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1);\n    }\n  },\n  doReset = () => {\n    _assign(businessData, defaultBusinessData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setInit = (dispatch, data) => {\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(getEntryPoint());\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME, true);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_TYPE, true);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DOM_JUR, false);\n};\n\nexport const createBusiness = (dispatch, reducerData) => {\n  logger.logAction(ACTIONS.CREATE_BUSINESS);\n  dispatch({\n    type: ACTIONS.CREATE_BUSINESS\n  });\n  businessEntityService.create(reducerData).then((response) => {\n    const { data } = response;\n\n    logger.logAction(ACTIONS.CREATE_BUSINESS_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_BUSINESS_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    go(1);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_BUSINESS_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_BUSINESS_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const businessAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  goBack,\n  setInit,\n  businessAlreadyCreated,\n  setBusinessName,\n  setBusinessType,\n  setDomesticJurisdiction,\n  resetAllData\n};\n","import { URLS } from '../../../constants/complete_cora';\n\nconst\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing, usePhysicalAsPrincipal, useMailingAsPrincipal } = registration.businessAddresses,\n      { needsAddresses, needsPrincipalAddress } = registration.cora,\n      flowItems = [];\n\n    if (!needsAddresses && needsPrincipalAddress) {\n      flowItems.push(URLS.PRIN_ADDR);\n    } else if (needsAddresses) {\n      flowItems.push(URLS.PHYS_ADDR);\n      if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n        flowItems.push(URLS.MAIL_ADDR);\n        if ((!useMailingAsPrincipal && !usePhysicalAsPrincipal) || url === URLS.PRIN_ADDR) {\n          flowItems.push(URLS.PRIN_ADDR);\n        }\n      } else if (!usePhysicalAsPrincipal || url === URLS.PRIN_ADDR) {\n        flowItems.push(URLS.PRIN_ADDR);\n      }\n    }\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getPostPrincipalsFlowOrder = (url, registration) => {\n    const\n      { cora, business } = registration,\n      { type } = business,\n      { jurisdictionOrder, hasElectiveCEO, pendingStates, needsContact, needsCoraContacts } = cora,\n      jurisdictionOrderCount = jurisdictionOrder.length,\n      flowItems = [];\n\n    if (needsContact) {\n      if (url === URLS.OFF_STATE_CONTACT) {\n        flowItems.push(URLS.CHOOSE_OFF_STATE_CONTACT, URLS.OFF_STATE_CONTACT);\n      } else {\n        flowItems.push(URLS.CHOOSE_OFF_STATE_CONTACT);\n      }\n    } else if (url === URLS.OFF_STATE_CONTACT) {\n      flowItems.push(URLS.OFF_STATE_CONTACT);\n    }\n\n    if (needsCoraContacts) {\n      flowItems.push(URLS.CHOOSE_SOP_CONTACT);\n      if (url === URLS.SOP_CONTACT) {\n        flowItems.push(URLS.SOP_CONTACT);\n      }\n      flowItems.push(URLS.AUTH_SIG);\n    } else if (url === URLS.SOP_CONTACT) {\n      flowItems.push(URLS.SOP_CONTACT);\n    }\n\n    for (let i = 1; i < jurisdictionOrderCount; i += 1) {\n      if (!pendingStates[jurisdictionOrder[i]]) {\n        flowItems.push(`${URLS.STATE_FILING}/${jurisdictionOrder[i]}`);\n      }\n      if (jurisdictionOrder[i] === 'CA' && type === 'LLCX') {\n        flowItems.push(URLS.HAS_ELECTIVE_CEO);\n        if (hasElectiveCEO) {\n          flowItems.push(URLS.CHOOSE_ELECTIVE_CEO);\n          if (url === URLS.ELECTIVE_CEO) {\n            flowItems.push(URLS.ELECTIVE_CEO);\n          }\n        }\n      }\n    }\n    flowItems.push(URLS.DATA_CONFIRM, URLS.SHARE, URLS.COMPLETE);\n    return flowItems;\n  },\n  /* esline-enable max-statements */\n\n  /* eslint-disable max-statements */\n  getCorpFlowOrder = (url, registration) => {\n    const\n      { cora, officer } = registration,\n      { needsPrincipals } = cora,\n      flowItems = [ URLS.CORP_DIR_COUNT, URLS.CORP_DIR_LIST ],\n      { hasAsstSecretary, hasVicePresident } = officer;\n\n    if (!needsPrincipals) {\n      return getPostPrincipalsFlowOrder(url, registration);\n    }\n\n    flowItems.push(URLS.CORP_CHOOSE_PRES);\n    if (url === URLS.CORP_PRES) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_PRES);\n    }\n    flowItems.push(URLS.CORP_HAS_VP);\n    if (hasVicePresident) {\n      flowItems.push(URLS.CORP_CHOOSE_VP);\n      if (url === URLS.CORP_VP) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_VP);\n      }\n    }\n    flowItems.push(URLS.CORP_CHOOSE_TRSR);\n    if (url === URLS.CORP_TRSR) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_TRSR);\n    }\n    flowItems.push(URLS.CORP_CHOOSE_SEC);\n    if (url === URLS.CORP_SEC) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_SEC);\n    }\n    flowItems.push(URLS.CORP_HAS_ASST_SEC);\n    if (hasAsstSecretary) {\n      flowItems.push(URLS.CORP_CHOOSE_ASST_SEC);\n      if (url === URLS.CORP_ASST_SEC) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_ASST_SEC);\n      }\n    }\n    flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n    return flowItems;\n  },\n\n  /* eslint-enable max-statements */\n  getLLCFlowOrder = (url, registration) => {\n    const\n      { cora, manager } = registration,\n      { needsPrincipals } = cora,\n      flowItems = [ URLS.LLC_MBR_COUNT, URLS.LLC_MBR_LIST ],\n      { managerType } = manager;\n\n    if (!needsPrincipals) {\n      return getPostPrincipalsFlowOrder(url, registration);\n    }\n\n    flowItems.push(URLS.LLC_MGR_OPT);\n    if (managerType === 'SomeOwners' || managerType === 'SomeManagers' || managerType === '') {\n      flowItems.push(URLS.LLC_BUS_RUN);\n    }\n    if (managerType === 'SomeManagers' || managerType === 'AllManagers' || managerType === '') {\n      flowItems.push(URLS.LLC_MGR_COUNT, URLS.LLC_MGR_LIST);\n    }\n    flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getFlowOrder = (url, registration) => {\n    const\n      { business, cora } = registration,\n      { type } = business,\n      { jurisdictionOrder, hasFormation, pendingStates, hasElectiveCEO, needsBusinessData, needsBusinessIndustry, needsDomesticJurisdictionData } = cora,\n      flowItems = [ URLS.START ];\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    if (needsDomesticJurisdictionData || pendingStates[jurisdictionOrder[0]] === false) {\n      flowItems.push(`${URLS.STATE_FILING}/${jurisdictionOrder[0]}`);\n    }\n\n    if (needsBusinessData || needsBusinessIndustry) {\n      flowItems.push(URLS.BUS_DESC);\n    }\n\n    if (jurisdictionOrder.length > 1 || hasFormation) {\n      if (jurisdictionOrder[0] === 'CA' && type === 'LLCX') {\n        flowItems.push(URLS.HAS_ELECTIVE_CEO);\n        if (hasElectiveCEO) {\n          flowItems.push(URLS.CHOOSE_ELECTIVE_CEO);\n          if (url === URLS.ELECTIVE_CEO) {\n            flowItems.push(URLS.ELECTIVE_CEO);\n          }\n        }\n      }\n    }\n\n    flowItems.push(...getAddressFlow(url, registration));\n    if (type === 'CORP') {\n      flowItems.push(...getCorpFlowOrder(url, registration));\n    } else {\n      flowItems.push(...getLLCFlowOrder(url, registration));\n    }\n    return flowItems;\n  };\n  /* eslint-enable max-statements */\n\nexport default {\n  getPostPrincipalsFlowOrder,\n  getCorpFlowOrder,\n  getLLCFlowOrder,\n  getFlowOrder\n};\n","import { getCompleteWFGFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteWFGFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _filter from 'lodash/filter';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/complete_cora';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as coraKey } from '../../reducers/registration/cora';\nimport { storageKey as managerKey } from '../../reducers/registration/managers';\nimport { storageKey as officerKey } from '../../reducers/registration/officers';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlows from './flows';\n\nconst\n  defaultBusinessData = { type: 'LLCX', id: '', businessOrderType: '', addressMatch: false, addressIsGoogle: false, domesticJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultCoraData = {\n    jurisdictionOrder: [],\n    requestedJurisdictions: [],\n    pendingStates: {},\n    domesticJurisdiction: '',\n    hasFormation: false,\n    domesticEntity: false,\n    hasElectiveCEO: null,\n    needsAddresses: true,\n    needsBusinessData: true,\n    needsBusinessIndustry: true,\n    needsContact: true,\n    needsCoraContacts: true,\n    needsDomesticJurisdictionData: true,\n    needsPrincipalAddress: true,\n    needsPrincipalAddresses: true\n  },\n  coraData = getReducerSnapshot(coraKey, defaultCoraData),\n  defaultManagerData = { managerType: '' },\n  managerData = getReducerSnapshot(managerKey, defaultManagerData),\n  defaultOfficerData = { hasAsstSecretary: false, hasVicePresident: false },\n  officerData = getReducerSnapshot(officerKey, defaultOfficerData),\n  defaultPageData = { forceToMembers: false, forceToManagers: false, forceToDirectors: false, forceToOfficers: false, forceToPayment: false, forceToContact: false, registrationFlow: '' },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n\n// This is a reduced flow for analyzing the data confirmation.\n  /* eslint-disable max-statements */\n  getFlowOrder = (url) => {\n    const registration = {\n      business: businessData,\n      businessAddresses: businessAddressesData,\n      cora: coraData,\n      manager: managerData,\n      officer: officerData,\n      page: pageData\n    };\n    return getFlows(url, registration);\n  },\n  go = (jump) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    if (jumpIndex < 0) {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[0]}`);\n    } else if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(coraData, getReducerSnapshot(coraKey, defaultCoraData));\n    _assign(managerData, getReducerSnapshot(managerKey, defaultManagerData));\n    _assign(officerData, getReducerSnapshot(officerKey, defaultOfficerData));\n    _assign(pageData, getReducerSnapshot(pageKey, defaultPageData));\n  };\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const getNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        return { isDashboard: true, url: `/${COMPANY_URLS.BASE}/${businessData.id}` };\n      }\n      return { isDashboard: true, url: `/${DASHBOARD_URLS.BASE}` };\n    }\n    return { isDashboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  const results = getNextUncompletedPage(dispatch, location);\n  if (results.isDashboard) {\n    document.location = results.url;\n    return true;\n  }\n  if (results.url) {\n    browserHistory.push(results.url);\n    return true;\n  }\n  return false;\n};\n\nexport const getEntryPoint = (fromBack) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index = fromBack ? flow.length - 1 : 0;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nexport const goToCorpAsstSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_ASST_SEC, URLS.CORP_ASST_SEC);\n};\n\nexport const goToCorpPresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_PRES, URLS.CORP_PRES);\n};\n\nexport const goToCorpSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_SEC, URLS.CORP_SEC);\n};\n\nexport const goToCorpTreasurer = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_TRSR, URLS.CORP_TRSR);\n};\n\nexport const goToCorpVicePresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_VP, URLS.CORP_VP);\n};\n\nexport const goToElectiveCEO = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_ELECTIVE_CEO, URLS.ELECTIVE_CEO);\n};\n\nexport const goToOfficialStateContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_OFF_STATE_CONTACT, URLS.OFF_STATE_CONTACT);\n};\n\nexport const goToSOPContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_SOP_CONTACT, URLS.SOP_CONTACT);\n};\n\nexport const setAddressesModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.ADDR_MODAL, false);\n};\n\nexport const setAuthorizedSignatory = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG, false);\n};\n\nexport const setAuthorizedSignatoryModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG_MODAL, false);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, false);\n};\n\nexport const setBusinessDescriptionModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC_MODAL, false);\n};\n\nexport const setBusinessInfoModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_INFO_MODAL, false);\n};\n\nexport const setBusinessNameModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME_MODAL, false);\n};\n\nexport const setChooseElectiveCEO = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_ELECTIVE_CEO, false);\n};\n\nexport const setChooseOfficialStateContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_OFF_STATE_CONTACT, false);\n};\n\nexport const setChooseSOPContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_SOP_CONTACT, false);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.COMPLETE, true);\n};\n\nexport const setCorpAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_ASST_SEC, false);\n};\n\nexport const setCorpChooseAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_ASST_SEC, false);\n};\n\nexport const setCorpChoosePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_PRES, false);\n};\n\nexport const setCorpChooseSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_SEC, false);\n};\n\nexport const setCorpChooseTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_TRSR, false);\n};\n\nexport const setCorpChooseVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_VP, false);\n};\n\nexport const setCorpDirectorCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_COUNT, false);\n};\n\nexport const setCorpDirectorList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_LIST, false);\n};\n\nexport const setCorpDirectorListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_LIST_MODAL, false);\n};\n\nexport const setCorpHasAsstSecretary = (dispatch, data) => {\n  officerData.hasAsstSecretary = data.hasAsstSecretary;\n  set(dispatch, data, ACTIONS.CORP_HAS_ASST_SEC, false);\n};\n\nexport const setCorpHasVicePresident = (dispatch, data) => {\n  officerData.hasVicePresident = data.hasVicePresident;\n  set(dispatch, data, ACTIONS.CORP_HAS_VP, false);\n};\n\nexport const setCorpOfficerListModal = (dispatch, data) => {\n  officerData.hasAsstSecretary = data.hasAsstSecretary;\n  officerData.hasVicePresident = data.hasVicePresident;\n  set(dispatch, data, ACTIONS.CORP_OFF_LIST_MODAL, false);\n};\n\nexport const setCorpPresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_PRES, false);\n};\n\nexport const setCorpSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_SEC, false);\n};\n\nexport const setCorpTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_TRSR, false);\n};\n\nexport const setCorpVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_VP, false);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, false);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  const { domesticJurisdiction } = data,\n    jurisdictionOrder = _filter(coraData.requestedJurisdictions, (reqJur) => {\n      return reqJur !== domesticJurisdiction;\n    }).sort((a, b) => {\n      return a < b;\n    });\n\n  coraData.domesticJurisdiction = domesticJurisdiction;\n  if (domesticJurisdiction && !coraData.needsDomesticJurisdictionData) {\n    jurisdictionOrder.unshift(domesticJurisdiction);\n  }\n  coraData.jurisdictionOrder = jurisdictionOrder;\n\n  set(dispatch, data, ACTIONS.DOM_JUR, false);\n};\n\nexport const setElectiveCEO = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ELECTIVE_CEO, false);\n};\n\nexport const setElectiveCEOModal = (dispatch, data) => {\n  coraData.hasElectiveCEO = data.hasElectiveCEO;\n  set(dispatch, data, ACTIONS.ELECTIVE_CEO_MODAL, false);\n};\n\nexport const setHasElectiveCEO = (dispatch, data) => {\n  coraData.hasElectiveCEO = data.hasElectiveCEO;\n  set(dispatch, data, ACTIONS.HAS_ELECTIVE_CEO, false);\n};\n\nexport const setLLCBusinessRunners = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_BUS_RUN, false);\n};\n\nexport const setLLCManagerCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_COUNT, false);\n};\n\nexport const setLLCManagerList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST, false);\n};\n\nexport const setLLCManagerListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST_MODAL, false);\n};\n\nexport const setLLCManagerOption = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT, false);\n};\n\nexport const setLLCManagerOptionModal = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT_MODAL, false);\n};\n\nexport const setLLCMemberCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_COUNT, false);\n};\n\nexport const setLLCMemberList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST, false);\n};\n\nexport const setLLCMemberListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST_MODAL, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setOfficialStateContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.OFF_STATE_CONTACT, false);\n};\n\nexport const setOfficialStateContactModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.OFF_STATE_CONTACT_MODAL, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, false);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n};\n\nexport const setSOPContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SOP_CONTACT, false);\n};\n\nexport const setSOPContactModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SOP_CONTACT_MODAL, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  updateSnapshots();\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nexport const setStateFiling = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.STATE_FILING, false);\n};\n\nexport const setStateFilingModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.STATE_FILING_MODAL, false);\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, advance) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService.updateCoRA(reducerData, filingFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  goToCorpAsstSecretary,\n  goToCorpPresident,\n  goToCorpSecretary,\n  goToCorpTreasurer,\n  goToCorpVicePresident,\n  goToElectiveCEO,\n  goToOfficialStateContact,\n  goToSOPContact,\n  setAddressesModal,\n  setAuthorizedSignatory,\n  setAuthorizedSignatoryModal,\n  setBusinessDescription,\n  setBusinessDescriptionModal,\n  setBusinessInfoModal,\n  setBusinessNameModal,\n  setChooseElectiveCEO,\n  setChooseOfficialStateContact,\n  setChooseSOPContact,\n  setComplete,\n  setCorpAsstSecretary,\n  setCorpChooseAsstSecretary,\n  setCorpChoosePresident,\n  setCorpChooseSecretary,\n  setCorpChooseTreasurer,\n  setCorpChooseVicePresident,\n  setCorpDirectorCount,\n  setCorpDirectorList,\n  setCorpDirectorListModal,\n  setCorpHasAsstSecretary,\n  setCorpHasVicePresident,\n  setCorpOfficerListModal,\n  setCorpPresident,\n  setCorpSecretary,\n  setCorpTreasurer,\n  setCorpVicePresident,\n  setDataConfirmation,\n  setDomesticJurisdiction,\n  setElectiveCEO,\n  setElectiveCEOModal,\n  setHasElectiveCEO,\n  setLLCBusinessRunners,\n  setLLCManagerCount,\n  setLLCManagerList,\n  setLLCManagerListModal,\n  setLLCManagerOption,\n  setLLCManagerOptionModal,\n  setLLCMemberCount,\n  setLLCMemberList,\n  setLLCMemberListModal,\n  setMailingAddress,\n  setOfficialStateContact,\n  setOfficialStateContactModal,\n  setPhysicalAddress,\n  setPrincipalAddress,\n  setShare,\n  setSOPContact,\n  setSOPContactModal,\n  setStart,\n  setStateFiling,\n  setStateFilingModal,\n  updateOrder,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_corpdocs';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n    if (registration.corpDocs.companyCount > 1 && !registration.business.isSimulated) {\n      return [ URLS.START, URLS.CHOOSE_COMPANY, URLS.PAYMENT, URLS.COMPLETE ];\n    }\n    return [ URLS.START, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_corpdocs';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as corpDocsKey } from '../../reducers/registration/corpDocs';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport { getCorporateDocsPrice } from '../../utils/ProductService';\n\nconst defaultBusinessData = { isSimulated: false };\n\nconst\n  defaultCorpDocsData = { companyId: '', companyCount: 0 },\n  corpDocsData = getReducerSnapshot(corpDocsKey, defaultCorpDocsData),\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  getFlowOrder = (url) => {\n    const registration = {\n      corpDocs: corpDocsData,\n      business: businessData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (corpDocsData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${corpDocsData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = corpDocsData.returnTo ? corpDocsData.returnTo : getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(corpDocsData, defaultCorpDocsData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(corpDocsData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount, fromDashboard = false } = data;\n  businessData.isSimulated = data.isSimulated;\n  setIsFreeAccount(data.isSimulated);\n  corpDocsData.returnTo = data.returnTo;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(corpDocsData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  /*\n  * achieves? ~> preserve and expose is_dashboard to the query params as well\n  * why? ~> pageData.fromDashboard only makes it accessible to sub-sequent utlity functions\n  */\n  const url = `/${URLS.BASE}/${URLS.START}?fromDashboard=${fromDashboard}`;\n  browserHistory.replace(url);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createCorpDocsOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createCorpDocs(reducerData, accountId, filingFees).then((response) => {\n    const price = getCorporateDocsPrice();\n    const addlData = createAdditionalData('corporate_docs', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'corporate_docs', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { corpDocs } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = corpDocs;\n\n  if (!cardToken) {\n    createCorpDocsOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createCorpDocsOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setChooseCompany,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_ein';\nimport { isLoggedIn } from '../../../utils/AuthService';\n\n/* eslint-disable max-statements */\nconst\n  getNewCustomerFlowOrder = (url, registration) => {\n    if (url === URLS.LOGIN_POST) {\n      return [ URLS.LOGIN_POST ];\n    }\n\n    const\n      { business, page } = registration,\n      flowItems = [ URLS.ACCOWN_NAME, URLS.ACCOWN_CONTACT, URLS.BUS_TYPE, URLS.BUS_NAME, URLS.DOM_JUR ],\n      { type } = business,\n      { registrationFlow } = page;\n\n    if (registrationFlow === 'bl') {\n      flowItems.push(URLS.BUS_DESC);\n    }\n    if (registrationFlow === 'ein' && type === 'CORP') {\n      flowItems.push(URLS.CORP_TAXED);\n    }\n    flowItems.push(URLS.PAYMENT, URLS.LOGIN_POST);\n    return flowItems;\n  },\n  getNewCompanyFlowOrder = (url, registration) => {\n    if (url === URLS.NO_COMPANY) {\n      return [ URLS.BUS_NAME, URLS.NO_COMPANY, URLS.BUS_NAME ];\n    }\n\n    const\n      { business, page } = registration,\n      { type, hasCompanies, isSimulated } = business,\n      { registrationFlow, id } = page,\n      flowItems = [ ...isSimulated && id ? [] : [URLS.BUS_ID], /* for simulated entities dont display the pick entity */\n        URLS.BUS_TYPE,\n        URLS.BUS_NAME, URLS.DOM_JUR\n      ];\n    if (!hasCompanies) {\n      flowItems.shift();\n    }\n    if (registrationFlow === 'bl') {\n      flowItems.push(URLS.BUS_DESC);\n    }\n    if (registrationFlow === 'ein' && type === 'CORP') {\n      flowItems.push(URLS.CORP_TAXED);\n    }\n    flowItems.push(URLS.PAYMENT);\n    if (url === URLS.ACCOWN_NAME) { // For the logged-in transition\n      flowItems.unshift(URLS.ACCOWN_NAME);\n    }\n    if (url === URLS.ACCOWN_CONTACT) {\n      flowItems.unshift(URLS.ACCOWN_CONTACT);\n    }\n    return flowItems;\n  },\n  getExistingCompanyFlowOrder = (url, registration) => {\n    const\n      { business, page } = registration,\n      { registrationFlow } = page,\n      { type, isSimulated } = business,\n      flowItems = [ ...(!isSimulated ? [URLS.BUS_ID] : [])];\n\n    if (registrationFlow === 'ein' && type === 'CORP') {\n      flowItems.push(URLS.CORP_TAXED);\n    }\n    flowItems.push(URLS.PAYMENT);\n    return flowItems;\n  },\n  getFlowOrder = (url, registration) => {\n    const\n      { business, page } = registration,\n      { id } = business,\n      { fromDashboard } = page,\n      startConfirm = URLS.START_EIN,\n      loggedIn = isLoggedIn();\n    if (!loggedIn) {\n      return getNewCustomerFlowOrder(url, registration);\n    }\n    if (fromDashboard) {\n      if (id) {\n        return [ startConfirm, ...getExistingCompanyFlowOrder(url, registration) ];\n      }\n      return [ startConfirm, ...getNewCompanyFlowOrder(url, registration) ];\n    }\n    if (id) {\n      return getExistingCompanyFlowOrder(url, registration);\n    }\n    return getNewCompanyFlowOrder(url, registration);\n  };\n\nexport default {\n  getExistingCompanyFlowOrder,\n  getNewCompanyFlowOrder,\n  getNewCustomerFlowOrder,\n  getFlowOrder\n};\n","import { getRegisterEINFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterEINFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMP_EIN_URLS } from '../../constants/complete_ein';\nimport { ACTIONS, URLS } from '../../constants/register_ein';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, registrationService } from '../../services';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { isOrderCompleteByType } from '../../utils/OrderUtils';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport { getEINPrice } from '../../utils/ProductService';\n\nconst\n  defaultBusinessData = { id: '', type: 'LLCX' },\n  businessData = _assign(getReducerSnapshot(businessKey, defaultBusinessData, { hasCompanies: true })),\n  defaultPageData = { registrationFlow: '', fromDashboard: false },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  getFlowOrder = (url) => {\n    const registration = { business: businessData, page: pageData };\n    return getFlow(url, registration);\n  },\n  goInFlow = (flowOrder, jumpIndex, dispatch, doReplace) => {\n    const\n      { id, businessOrderType } = businessData,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getAppEntryPoint();\n    } else if (jumpIndex >= flowOrder.length) {\n      if (id) {\n        if (isOrderCompleteByType(businessOrderType)) {\n          browserHistory.push(`/${COMP_EIN_URLS.BASE}/${COMP_EIN_URLS.START_EIN}`);\n          return;\n        }\n      }\n      browserHistory.push(`/${COMP_EIN_URLS.BASE}/${COMP_EIN_URLS.START_EIN}`);\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  go = (jump, dispatch, doReplace) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    goInFlow(flowOrder, jumpIndex, dispatch, doReplace);\n  },\n  set = (dispatch, data, actionKey, moveUrl, doReplace) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch, doReplace);\n    }\n  },\n  doReset = () => {\n    _assign(businessData, defaultBusinessData, { hasCompanies: true });\n    _assign(pageData, defaultPageData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n  _assign(businessData, getReducerSnapshot(businessKey, { id: '', type: 'LLCX', businessOrderType: '' }));\n};\n\nexport const goToNextUncompletedPage = (dispatch, location, forceBusinessId) => {\n  if (forceBusinessId === 'ein') {\n    browserHistory.push(`/${URLS.BASE}/${URLS.BUS_ID}`);\n    return true;\n  }\n\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index >= 0 ? index + 1 : index;\n\n  if (index >= 0) {\n    goInFlow(flowOrder, jumpIndex, dispatch, false);\n    return true;\n  }\n  return false;\n};\n\nexport const setAccountOwnerContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_CONTACT, true);\n};\n\nexport const setAccountOwnerName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_NAME, true);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, true);\n};\n\nexport const setBusinessId = (dispatch, data) => {\n  const { business } = data,\n    { domesticJurisdiction, name, type, hasCompanies } = business || data;\n\n  businessData.businessOrderType = data.businessOrderType;\n  businessData.id = data.id;\n  businessData.domesticJurisdiction = domesticJurisdiction;\n  businessData.name = name;\n  businessData.type = type;\n\n  set(dispatch, data, ACTIONS.BUS_ID, true, !hasCompanies);\n  businessData.hasCompanies = hasCompanies;\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  businessData.name = data.name;\n  set(dispatch, data, ACTIONS.BUS_NAME, true);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  businessData.type = data.type;\n  set(dispatch, data, ACTIONS.BUS_TYPE, true);\n};\n\nexport const setCorpTaxed = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_TAXED, true);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  businessData.domesticJurisdiction = data.domesticJurisdiction;\n  set(dispatch, data, ACTIONS.DOM_JUR, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const\n    { fromDashboard = false, registrationFlow = 'ein', id, isSimulated } = data;\n\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  pageData.fromDashboard = fromDashboard;\n  pageData.registrationFlow = registrationFlow;\n  pageData.id = id;\n  businessData.isSimulated = isSimulated;\n  setIsFreeAccount(data.isSimulated);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.INIT, false);\n    /*\n  * achieves? ~> preserve and expose is_dashboard to the query params as well\n  * why? ~> pageData.fromDashboard only makes it accessible to sub-sequent utlity functions\n  */\n  const url = `${getEntryPoint()}?fromDashboard=${fromDashboard}`;\n  browserHistory.replace(url);\n};\n\nexport const setLogin = (dispatch) => {\n  set(dispatch, { flow: 'ein' }, ACTIONS.LOGIN, false);\n};\n\nexport const setLoginPostPurchase = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LOGIN_POST, false);\n};\n\nexport const setNoCompany = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.NO_COMPANY, false);\n  browserHistory.push(`/${URLS.BASE}/${URLS.NO_COMPANY}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nconst createEINOrder = (dispatch, reducerData) => {\n  const serviceEndpoint = 'createEIN';\n\n  registrationService[serviceEndpoint](reducerData).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n\n    const price = getEINPrice();\n    const addlData = createAdditionalData('ein', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'ein', price, addlData);\n    go(1);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { customer } = reducerData,\n    { cardNumber, expMonth, expYear, cvc, cardToken, brand, last4 } = customer;\n\n  if (!isLoggedIn() || !cardToken) {\n    createEINOrder(dispatch, reducerData);\n  } else {\n    const data = { cardNumber, expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createEINOrder(dispatch, reducerData);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const createLead = (dispatch, lead) => {\n  logger.logAction(ACTIONS.CREATE_LEAD);\n  dispatch({\n    type: ACTIONS.CREATE_LEAD\n  });\n  registrationService.createLead(lead).then((response) => {\n    logger.logAction(ACTIONS.CREATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const updateLead = (dispatch, lead, leadUuid) => {\n  logger.logAction(ACTIONS.UPDATE_LEAD);\n  dispatch({\n    type: ACTIONS.UPDATE_LEAD\n  });\n  registrationService.updateLead(leadUuid, lead).then((response) => {\n    logger.logAction(ACTIONS.UPDATE_LEAD_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_LEAD_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    console.error('ERROR! The following content was not sufficient to update a lead: ', lead);\n    logger.error(ACTIONS.UPDATE_LEAD_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_LEAD_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const setBusinessData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DATA, false);\n};\n\nexport const setContactData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_MODAL, false);\n};\n\nexport const setCorpData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DATA, false);\n};\n\nexport const setStartEIN = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START_EIN, true);\n};\n\nexport const setBackFromCompleteBusiness = () => {\n  browserHistory.push(getEntryPoint());\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  goToNextUncompletedPage,\n  orderAlreadyCreated,\n  setAccountOwnerContact,\n  setAccountOwnerName,\n  setBusinessDescription,\n  setBusinessId,\n  setBusinessName,\n  setBusinessType,\n  setCorpTaxed,\n  setDomesticJurisdiction,\n  setInit,\n  setLogin,\n  setLoginPostPurchase,\n  setNoCompany,\n  setPayment,\n  createOrder,\n  createLead,\n  setBusinessData,\n  setContactData,\n  setCorpData,\n  setStartEIN,\n  setBackFromCompleteBusiness,\n  resetAllData\n};\n","import _assign from 'lodash/assign';\nimport _compact from 'lodash/compact';\nimport { URLS } from '../../../constants/complete_llc';\nimport { DBA_IGNORE_STATES } from '../../../constants/ui';\nimport {\n  isDBAEntityEnabled,\n  isDBAComplianceEnabled\n} from '../../../utils/ProductService';\nimport { isVmaJurisdiction } from '../../../utils/VmaUtils';\n\nconst DBA_IGNORE_STATES_WITH_DELAWARE = _assign({ AZ: true, CA: true, CT: true, DE: true, FL: true, NE: true, NY: true, PA: true, WY: true }, DBA_IGNORE_STATES);\n\nconst\n  getAddressFlow = (url, registration) => {\n    const { business, businessAddresses, purchase } = registration;\n    const flowItems = [];\n\n    if (!purchase.planLevel) {\n      return flowItems;\n    }\n\n    flowItems.push(URLS.PHYS_ADDR);\n\n    if (!businessAddresses.usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n\n    if (isVmaJurisdiction(business.requestedJurisdiction)) {\n      flowItems.push(URLS.PURCHASE_VBA);\n    }\n\n    return flowItems;\n  },\n\n  getDBAEntityFlow = (url, registration) => {\n    const { purchaseDBAEntity } = registration.postpurchase,\n      { requestedJurisdiction } = registration.business;\n\n    if (DBA_IGNORE_STATES_WITH_DELAWARE[requestedJurisdiction]) {\n      if (url === URLS.PURCHASE_DBA_ENTITY) {\n        return [ URLS.PURCHASE_DBA_ENTITY ];\n      }\n      if (url === URLS.DBA_ENTITIES) {\n        return [ URLS.DBA_ENTITIES ];\n      }\n      if (url === URLS.PURCHASE_DBA_COMPLIANCE) {\n        return [ URLS.PURCHASE_DBA_COMPLIANCE ];\n      }\n      return [];\n    }\n\n    if (isDBAEntityEnabled()) {\n      if (purchaseDBAEntity) {\n        if (isDBAComplianceEnabled()) {\n          return [ URLS.PURCHASE_DBA_ENTITY, URLS.DBA_ENTITIES, URLS.PURCHASE_DBA_COMPLIANCE ];\n        }\n        return [ URLS.PURCHASE_DBA_ENTITY, URLS.DBA_ENTITIES ];\n      }\n      return [ URLS.PURCHASE_DBA_ENTITY ];\n    }\n    return [];\n  },\n\n  getRegisteredAgentFlow = (registration) => {\n\n    const { registeredAgentService } = registration.purchase;\n\n    if (!registeredAgentService) {\n      return [URLS.PURCHASE_REGISTERED_AGENT];\n    }\n\n    return [];\n\n  },\n\n  getFlowOrder = (url, registration, ldFlags) => {\n    const\n      { manager, domainName: domainNameData, purchase, business } = registration,\n      { isDAO, daoMemberManaged, domesticJurisdiction } = business,\n      // if we are looking at a DAO that is not member managed (smart contract managed)\n      // then don't show member manged options\n      showMemberOptions = !(isDAO && !daoMemberManaged),\n      flowItems = _compact([\n        URLS.START_COMP,\n        !isDAO && URLS.BUS_NAME,   // skipping indicator and alternative business names for DAOs\n        ...getDBAEntityFlow(url, registration),\n        URLS.BUS_DESC,\n        ...getAddressFlow(url, registration),\n        ...getRegisteredAgentFlow(registration, ldFlags),\n        showMemberOptions && URLS.MBR_COUNT,\n        showMemberOptions && URLS.MBR_LIST\n      ]),\n      { managerType } = manager,\n      { skip } = domainNameData,\n      { domainName, basicEmail } = purchase;\n\n    if (showMemberOptions) {\n      flowItems.push(URLS.MGR_OPT);\n      if (managerType === 'SomeOwners' || managerType === 'SomeManagers') {\n        flowItems.push(URLS.BUS_RUN);\n      }\n      if (managerType === 'SomeManagers' || managerType === 'AllManagers') {\n        flowItems.push(URLS.MGR_COUNT);\n        flowItems.push(URLS.MGR_LIST);\n      }\n    }\n\n    // CA LLC Formation Flow DoL question\n    if (domesticJurisdiction === 'CA') {\n      flowItems.push(URLS.CA_DOL);\n    }\n\n    flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    if (url === URLS.PRIM_CONTACT) { // PRIM_CONTACT is a direct-to-page link and is only in the flow if you go there directly\n      flowItems.push(URLS.PRIM_CONTACT);\n    }\n\n    flowItems.push(URLS.AUTH_SIG);\n\n    if (domainName) {\n      flowItems.push(URLS.DOMAIN_NAME);\n      if (basicEmail && !skip) {\n        flowItems.push(URLS.EMAIL_ADDRESS);\n      }\n    }\n    return flowItems;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getCompleteLLCFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration, ldFlags) => {\n    return (flowTestMap[getCompleteLLCFlowId()] || DefaultFlows).getFlowOrder(url, registration, ldFlags);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getEntryPoint as getEINEntryPoint } from '../complete_ein';\nimport { getEntryPoint as getPostPurchaseEntryPoint } from '../purchase_post_addons';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { ACTIONS, URLS, getPageDetails } from '../../constants/complete_llc';\nimport { ACTIONS as VP_ACTIONS } from '../../constants/vanity_products';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as domainNameKey } from '../../reducers/registration/domainName';\nimport { storageKey as managerKey } from '../../reducers/registration/managers';\nimport { storageKey as postpurchaseKey } from '../../reducers/registration/postpurchase';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { registrationService } from '../../services';\nimport { parseBoolToString } from '../../utils/DataCleaningUtils';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { getButtonClickDetails, trackClick } from '../../utils/ThirdPartyTracking';\nimport { parseUrl } from '../../utils/UrlUtils';\nimport featureFlags from '../../featureFlags';\n\nconst\n  defaultBusinessData = { requestedJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  domainNameData = getReducerSnapshot(domainNameKey, { skip: false }),\n  managerData = getReducerSnapshot(managerKey, { managerType: '' }),\n  postpurchaseData = getReducerSnapshot(postpurchaseKey, { purchaseDBAEntity: false, purchaseVBA: false }),\n  purchaseData = getReducerSnapshot(purchaseKey, { ein: null, domainName: null, basicEmail: null, planLevel: '' }),\n\n  getFlowOrder = (url, ldFlags) => {\n    const\n      registration = {\n        business: businessData,\n        businessAddresses: businessAddressesData,\n        domainName: domainNameData,\n        manager: managerData,\n        postpurchase: postpurchaseData,\n        purchase: purchaseData\n      },\n      flow = getFlow(url, registration, ldFlags);\n\n    return flow;\n  },\n  goInFlowOrder = (flowOrder, jumpIndex) => {\n    const\n      { ein } = purchaseData;\n    const urlMovement = {\n      method: browserHistory.push\n    };\n\n    const { disableEIN } = featureFlags.features;\n\n    if (jumpIndex < 0) {\n      urlMovement.url = `/${URLS.BASE}/${flowOrder[0]}`;\n    } else if (jumpIndex >= flowOrder.length) {\n      if (ein && !disableEIN) {\n        urlMovement.url = getEINEntryPoint();\n      } else {\n        urlMovement.url = getPostPurchaseEntryPoint();\n      }\n    } else {\n      urlMovement.url = `/${URLS.BASE}/${flowOrder[jumpIndex]}`;\n    }\n    return urlMovement;\n  },\n  makeUrlMovement = (movement) => {\n    const {  url, method } = movement;\n    method(url);\n  },\n  go = (jump, executeUrlMovement, ldFlags) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url, ldFlags),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    const urlMovement = goInFlowOrder(flowOrder, jumpIndex);\n    if (executeUrlMovement) {\n      makeUrlMovement(urlMovement);\n    }\n    return urlMovement;\n  },\n  set = (dispatch, data, actionKey, moveUrl, clickEvent) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    const urlMovement = go(1, false);\n    if (clickEvent) {\n      trackClick(\n        getPageDetails(parseUrl(location.pathname, URLS.BASE)),\n        { nextUrl: urlMovement.url || '', ...clickEvent }\n      );\n    }\n    if (moveUrl) {\n      makeUrlMovement(urlMovement);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(domainNameData, getReducerSnapshot(domainNameKey, { skip: false }));\n    _assign(managerData, getReducerSnapshot(managerKey, { managerType: '' }));\n    _assign(postpurchaseData, getReducerSnapshot(postpurchaseKey, { purchaseDBAEntity: false, purchaseVBA: false }));\n    _assign(purchaseData, getReducerSnapshot(purchaseKey, { ein: null, domainName: null, basicEmail: null, planLevel: '' }));\n  };\n\nexport const getEntryPoint = (fromBack) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index = fromBack ? flow.length - 1 : 0;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nexport const goBack = (dispatch, ldFlags) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, true, ldFlags);\n};\n\nexport const goNext = (dispatch, ldFlags) => {\n  logger.logAction(ACTIONS.GO_NEXT, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_NEXT\n  });\n  go(1, true, ldFlags);\n};\n\nexport const getNextUncompletedPage = (dispatch, location, ldFlags) => {\n  updateSnapshots();\n  const\n    flowOrder = getFlowOrder(location, ldFlags),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1,\n    { ein } = purchaseData;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (ein) {\n        return { isDashboard: false, url: getEINEntryPoint() };\n      }\n      return { isDashboard: false, url: getPostPurchaseEntryPoint() };\n    }\n    return { isDashboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location, ldFlags) => {\n  updateSnapshots();\n  const\n    flowOrder = getFlowOrder(location, ldFlags),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    const urlMovement = goInFlowOrder(flowOrder, jumpIndex, ldFlags);\n    makeUrlMovement(urlMovement);\n    return true;\n  }\n  return false;\n};\n\nexport const setBasicEmailAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMAIL_ADDRESS, false);\n};\n\nexport const setBusinessAlternates = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_ALT, false);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, false);\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME, false);\n};\n\nexport const setBusinessRunners = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SET_BUS_RUN, false);\n};\n\nexport const setChoosePrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRIM_CONTACT, false);\n};\n\nexport const setDBAEntities = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DBA_ENTITIES, false);\n};\n\nexport const setDomainNamePrimary = (dispatch, data) => {\n  domainNameData.skip = data.skip || false;\n  set(dispatch, data, ACTIONS.DOMAIN_NAME, false);\n};\n\nexport const setManagerCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.MGR_COUNT, false);\n};\n\nexport const setManagerList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SET_MGR_LIST, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setManagerOption = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.SET_MGR_OPT, false);\n};\n\nexport const setMemberList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SET_MBR_LIST, false);\n};\n\nexport const setMemberCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.MBR_COUNT, false);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SET_REG_AGENT, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, false);\n};\n\nexport const goToPrimaryContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRIM_CONTACT, URLS.PRIM_CONTACT);\n};\n\nexport const goToMemberCount = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_MBR_COUNT, URLS.MBR_COUNT);\n};\n\nexport const goToManagerSelect = (dispatch, action, page) => {\n  goTo(dispatch, ACTIONS[action], URLS[page]);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, false);\n};\n\nexport const setPurchaseDBACompliance = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PURCHASE_DBA_COMPLIANCE, false);\n};\n\nexport const setPurchaseDBAEntity = (dispatch, data) => {\n  postpurchaseData.purchaseDBAEntity = data.purchaseDBAEntity;\n  set(dispatch, data, ACTIONS.PURCHASE_DBA_ENTITY, false);\n};\n\nexport const setPurchaseRA = (dispatch, data) => {\n  postpurchaseData.purchaseRA = data.purchaseRA;\n  set(dispatch, data, ACTIONS.PURCHASE_REGISTERED_AGENT, false, data.doReplace || false);\n};\n\nexport const setPurchaseVBA = (dispatch, data) => {\n  postpurchaseData.purchaseVBA = data.purchaseVBA;\n  const boolAsStr = parseBoolToString(data.purchaseVBA);\n  set(dispatch, data, ACTIONS.PURCHASE_VBA, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseVanityProduct = (dispatch, data) => {\n  postpurchaseData.purchaseVanityProduct = data.purchaseVanityProduct;\n  set(dispatch, data, VP_ACTIONS.VANITY_PRODUCT_OFFER, false);\n};\n\nexport const setShareNewLLC = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n  logger.logAction(REGISTRATION_ACTIONS.PURCHASE_SUCCESS, data);\n  dispatch({\n    type: REGISTRATION_ACTIONS.PURCHASE_SUCCESS,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setStartComplete = (dispatch, data) => {\n  updateSnapshots();\n  set(dispatch, data, ACTIONS.START_COMP, data.forward);\n};\n\nexport const setAuthorizedSignatory = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG, false);\n};\n\nexport const setEstimatedFormationDate = (dispatch, data) => {\n  logger.logAction(ACTIONS.EST_DATE, data);\n  dispatch({\n    type: ACTIONS.EST_DATE,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const updateContacts = (dispatch, data) => {\n  const { contactType } = data;\n  const type = {\n    member: 'UPDATE_MBR',\n    manager: 'UPDATE_MGR',\n    director: 'UPDATE_DIR',\n    officer: 'UPDATE_OFC'\n  };\n  const action = type[contactType || ''];\n  if (action) set(dispatch, data, ACTIONS[action], false);\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, expediteFees, advance, ldFlags) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER, { advance });\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService.updateLLC(reducerData, filingFees, expediteFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1, true, ldFlags);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  setBasicEmailAddress,\n  setBusinessAlternates,\n  setBusinessDescription,\n  setBusinessName,\n  setBusinessRunners,\n  setChoosePrimaryContact,\n  setDBAEntities,\n  setDomainNamePrimary,\n  setMailingAddress,\n  setManagerCount,\n  setManagerList,\n  setManagerOption,\n  setMemberCount,\n  setMemberList,\n  setPhysicalAddress,\n  setPrimaryContact,\n  goToPrimaryContact,\n  setPrincipalAddress,\n  setPurchaseDBACompliance,\n  setPurchaseDBAEntity,\n  setPurchaseVBA,\n  setPurchaseRA,\n  setShareNewLLC,\n  setStartComplete,\n  setEstimatedFormationDate,\n  setAuthorizedSignatory,\n  updateContacts,\n  updateOrder\n};\n","import { URLS } from '../../../constants/register_smb_website_or_ecomm';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n\n    const { smbWebsiteOrEcomm } = registration,\n      { alreadyPurchased } = smbWebsiteOrEcomm;\n\n    return alreadyPurchased ? [ URLS.ALREADY_PURCHASED ] : [ URLS.CHOOSE_PACKAGE, URLS.CHOOSE_INTERVAL, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterSMBWebsiteOrEcommFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterSMBWebsiteOrEcommFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_smb_website_or_ecomm';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as smbWebsiteOrEcommKey } from '../../reducers/registration/smbWebsiteOrEcomm';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackClick, trackEvent } from '../../utils/ThirdPartyTracking';\nimport {\n  getSMBWebsiteMonthlyPrice,\n  getSMBWebsiteYearlyPrice,\n  getSMBWebsiteEcommMonthlyPrice,\n  getSMBWebsiteEcommYearlyPrice\n} from '../../utils/ProductService';\n\nconst\n  defaultSMBWebsiteOrEcommData = { companyId: '', companyCount: 0 },\n  smbWebsiteOrEcommData = getReducerSnapshot(smbWebsiteOrEcommKey, defaultSMBWebsiteOrEcommData),\n  getFlowOrder = (url) => {\n    const registration = {\n      smbWebsiteOrEcomm: smbWebsiteOrEcommData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    return smbWebsiteOrEcommData.companyId ?\n      `/${COMPANY_URLS.BASE}/${smbWebsiteOrEcommData.companyId}` :  `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  trackClickEvent = (pageTitle, clickText, inputValue, _clickDetails = {}) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + 1 : index,\n      nextUrl = jumpIndex >= 0 && jumpIndex <= flowOrder.length ? flowOrder[jumpIndex] : '',\n\n      pageDetails = {\n        activeFlow: URLS.BASE,\n        pageTitle,\n        pageType: 'standalone - SMB Website Or Ecomm',\n        pageCategory: 'dashboard',\n        pageSection: 'growth'\n      },\n      clickDetails = {\n        ..._clickDetails,\n        clickType: 'button',\n        clickText,\n        inputValue\n      };\n    if (nextUrl) {\n      clickDetails.nextUrl = nextUrl;\n    }\n    trackClick(pageDetails, clickDetails);\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(smbWebsiteOrEcommData, defaultSMBWebsiteOrEcommData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\n\nexport const setAlreadyPurchased = (dispatch, data) => {\n  const { redirect } = data;\n  if (redirect) {\n    trackClickEvent(URLS.ALREADY_PURCHASED, 'Go to Dashboard', 'true');\n    setTimeout(() => {\n      set(dispatch, {}, ACTIONS.ALREADY_PURCHASED, false);\n      document.location = getCompanyUrl();\n    }, 1000);\n  } else {\n    set(dispatch, {}, ACTIONS.ALREADY_PURCHASED, false);\n  }\n};\n\nexport const setChooseInterval = (dispatch, data) => {\n  const { yearlyInterval } = data;\n  _assign(smbWebsiteOrEcommData, { yearlyInterval });\n  trackClickEvent(URLS.CHOOSE_INTERVAL, 'Next', yearlyInterval ? 'yearly' : 'monthly',  {\n    elementName: 'next'\n  });\n  set(dispatch, data, ACTIONS.CHOOSE_INTERVAL, true);\n};\n\nexport const setChoosePackage = (dispatch, data) => {\n  const { chooseEcomm } = data;\n  _assign(smbWebsiteOrEcommData, { chooseEcomm });\n  trackClickEvent(URLS.CHOOSE_PACKAGE, 'Next', chooseEcomm ? 'SMB Website + Ecomm' : 'SMB Website', {\n    elementName: 'next'\n  });\n  set(dispatch, data, ACTIONS.CHOOSE_PACKAGE, true);\n};\n\n\nexport const setComplete = (dispatch, data) => {\n  const { redirect } = data;\n  if (smbWebsiteOrEcommData.isUpgrade) {\n    set(dispatch, {}, ACTIONS.COMPLETE, true);\n    document.location = `/mfe/websites/postpublish?external_uid=${smbWebsiteOrEcommData.externalUid}&accountname=${smbWebsiteOrEcommData.accountName}\n    &sitename=${smbWebsiteOrEcommData.siteName}&planid=${smbWebsiteOrEcommData.planId}&choose_ecomm=${smbWebsiteOrEcommData.chooseEcomm}&can_upgrade=true`;\n  } else if (smbWebsiteOrEcommData.fromPublish) {\n    set(dispatch, {}, ACTIONS.COMPLETE, true);\n    document.location = `/mfe/websites/postpublish?external_uid=${smbWebsiteOrEcommData.externalUid}&accountname=${smbWebsiteOrEcommData.accountName}\n    &sitename=${smbWebsiteOrEcommData.siteName}&planid=${smbWebsiteOrEcommData.planId}&choose_ecomm=${smbWebsiteOrEcommData.chooseEcomm}`;\n  } else if (redirect) {\n    trackClickEvent(URLS.COMPLETE, 'Go to Dashboard', 'true');\n    setTimeout(() => {\n      set(dispatch, {}, ACTIONS.COMPLETE, true);\n      document.location = getCompanyUrl();\n    }, 2000);\n  } else {\n    set(dispatch, {}, ACTIONS.COMPLETE, false);\n  }\n};\n\n\nexport const setInit = (dispatch, data) => {\n  const { alreadyPurchased, companyId, fromPublish, isUpgrade, externalUid, accountName, siteName, planId, hasDemoStore } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(smbWebsiteOrEcommData, { companyId, alreadyPurchased, fromPublish, isUpgrade, externalUid, accountName, siteName, planId, hasDemoStore });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${alreadyPurchased ? URLS.ALREADY_PURCHASED : URLS.CHOOSE_PACKAGE}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  trackClickEvent(URLS.PAYMENT, 'Place Your Order', 'true');\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nconst createSMBWebsiteOrEcommOrder = (dispatch, reducerData, accountId) => {\n  registrationService.createSMBWebsiteOrEcomm(reducerData, accountId).then((response) => {\n    let price = 0;\n    const { smbWebsiteOrEcomm: { chooseEcomm, yearlyInterval } } = reducerData;\n    if (chooseEcomm) {\n      price = yearlyInterval ? getSMBWebsiteEcommYearlyPrice() : getSMBWebsiteEcommMonthlyPrice();\n    } else {\n      price = yearlyInterval ? getSMBWebsiteYearlyPrice() : getSMBWebsiteMonthlyPrice();\n    }\n    const addlData = createAdditionalData('smb_website_or_ecomm', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'smb_website_or_ecomm', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\n\nexport const createOrder = (dispatch, reducerData, accountId) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { smbWebsiteOrEcomm } = reducerData,\n    { cardToken, expMonth, expYear, cvc, brand, last4 } = smbWebsiteOrEcomm;\n\n  if (!cardToken) {\n    createSMBWebsiteOrEcommOrder(dispatch, reducerData, accountId);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createSMBWebsiteOrEcommOrder(dispatch, reducerData, accountId);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setAlreadyPurchased,\n  setChooseInterval,\n  setChoosePackage,\n  setComplete,\n  setInit,\n  setPayment,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_bof_modification';\n\nconst\n  getFlowOrder = (url) => {\n    return url === URLS.COMPLETE ? [URLS.COMPLETE] : [URLS.PAYMENT, URLS.COMPLETE];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getBeneficialOwnershipFilingId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getBeneficialOwnershipFilingId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_bof_modification';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as boiKey } from '../../reducers/registration/beneficialOwnershipModification';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getBeneficialOwnershipFilingPrice, getOngoingBofCompliancePrice, getBofModificationPrice } from '../../utils/ProductService';\nimport WebAssemblyFormUrl from '../../components/register_bof/modification/Constants';\n\nconst\n  defaultBoiData = { companyId: '' },\n  boiData = getReducerSnapshot(boiKey, defaultBoiData),\n  getFlowOrder = (url) => {\n    const registration = {\n      businessKit: boiData\n    };\n\n    return getFlow(url, registration);\n  },\n  getBofUrl = () => {\n    if (boiData.companyId) {\n      return `/f/go/complete_beneficial_ownership_filing?businessEntityUuid=${boiData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  getDashUrl = () => {\n    if (boiData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${boiData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getDashUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getBofUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(boiData, defaultBoiData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const redirectToWebAssemblyForm = (dispatch, companyId) => {\n  set(dispatch, {}, ACTIONS.COMPLETE);\n  window.location.href = `${WebAssemblyFormUrl}${companyId}`;\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(boiData, { companyId });\n  set(dispatch, data, ACTIONS.INIT, false);\n  set(dispatch, true, ACTIONS.CHECK_BOF_SUBSCRIPTION, false);\n\n  const url = `/${URLS.BASE}/${URLS.PAYMENT}`;\n  browserHistory.replace(url);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nconst createBeneficialOwnershipFilingOrder = (\n  dispatch, reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing\n) => {\n  registrationService.createBeneficialOwnershipFiling(\n    reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing\n  ).then((response) => {\n    const price = getBeneficialOwnershipFilingPrice();\n    const ongoingPrice = getOngoingBofCompliancePrice();\n    const bofModPrice = getBofModificationPrice();\n    const addlData = createAdditionalData('beneficial_ownership_filing', price, response.data.id);\n    const ongoingAddlData = createAdditionalData('ongoing_bof_compliance', ongoingPrice, response.data.id);\n    const bofModAddlData = createAdditionalData('bof_modification', bofModPrice, response.data.id);\n\n    if (isMod) {\n      trackEvent('Purchase', 'complete', 'bof_modification', bofModPrice, bofModAddlData);\n    } else {\n      trackEvent('Purchase', 'complete', 'beneficial_ownership_filing', price, addlData);\n      if (isOngoing) {\n        trackEvent('Purchase', 'complete', 'ongoing_bof_compliance', ongoingPrice, ongoingAddlData);\n      }\n    }\n\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { beneficialOwnershipFiling } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = beneficialOwnershipFiling;\n\n  if (!cardToken) {\n    createBeneficialOwnershipFilingOrder(\n      dispatch, reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing\n    );\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createBeneficialOwnershipFilingOrder(\n        dispatch, reducerData, accountId, filingFees, isOngoing, isMod, hasOngoing\n      );\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setComplete,\n  setInit,\n  setPayment,\n  redirectToWebAssemblyForm,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_business_kit';\n\nconst\n  getFlowOrder = (url) => {\n    if (url === URLS.COMPLETE) {\n      return [URLS.COMPLETE];\n    }\n\n    // gurbina: Remomve Choose Company page for now\n    // const { businessKit } = registration;\n    // const { companyCount } = businessKit;\n    const flow = [URLS.START];\n\n    // if (companyCount > 1) {\n    //   flow.push(URLS.CHOOSE_COMPANY);\n    // }\n    flow.push(URLS.PAYMENT, URLS.COMPLETE);\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterBusinessKitFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterBusinessKitFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_business_kit';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as businessKitKey } from '../../reducers/registration/businessKit';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getBusinessKitPrice } from '../../utils/ProductService';\n\nconst\n  defaultBusinessKitData = { companyId: '', companyCount: 0 },\n  businessKitData = getReducerSnapshot(businessKitKey, defaultBusinessKitData),\n  getFlowOrder = (url) => {\n    const registration = {\n      businessKit: businessKitData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (businessKitData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${businessKitData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(businessKitData, defaultBusinessKitData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(businessKitData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount, fromDashboard = false } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(businessKitData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  /*\n  * achieves? ~> preserve and expose is_dashboard to the query params as well\n  * why? ~> pageData.fromDashboard only makes it accessible to sub-sequent utlity functions\n  */\n  const url = `/${URLS.BASE}/${URLS.START}?fromDashboard=${fromDashboard}`;\n  browserHistory.replace(url);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createBusinessKitOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createBusinessKit(reducerData, accountId, filingFees).then((response) => {\n    const price = getBusinessKitPrice();\n    const addlData = createAdditionalData('business_kit', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'business_kit', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { businessKit } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = businessKit;\n\n  if (!cardToken) {\n    createBusinessKitOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createBusinessKitOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setChooseCompany,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_email_v2';\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = () => {\n    const flow = [URLS.EMAILS];\n\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterEmailV2Id } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterEmailV2Id()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_email_v2';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as emailKey } from '../../reducers/registration/emailV2';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\n\nconst EMAIL_SUCCESS_URL = '/mfe/websites/email-registration-V2/success';\n\nconst\n  defaultDomainNameData = { companyId: '', companyCount: 0 },\n  domainNameData = getReducerSnapshot(emailKey, defaultDomainNameData),\n  defaultPurchaseData = { domainNamePrivacy: null, basicEmail: null },\n  purchaseData = getReducerSnapshot(purchaseKey, defaultPurchaseData),\n  businessData = getReducerSnapshot(businessKey, { isSimulated: false }),\n  getFlowOrder = (url) => {\n    const registration = {\n      domainName: domainNameData,\n      purchase: purchaseData,\n      business: businessData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (domainNameData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${domainNameData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.DOMAIN_NAMES,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(domainNameData, defaultDomainNameData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(domainNameData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.EMAILS}`);\n};\n\nexport const setProductConfirmation = (dispatch, data) => {\n  purchaseData.basicEmail = data.basicEmail;\n  purchaseData.domainNamePrivacy = data.domainNamePrivacy;\n  set(dispatch, data, ACTIONS.PRODUCT_CONFIRM, true);\n};\n\nexport const createEmailV2 = (data) => {\n  registrationService.createEmail(data).then(() => {\n    // Pass the email to the email success page so we can display it\n    const [email] = data.emailAddresses; /* get the first email */\n    window.location.href = `${EMAIL_SUCCESS_URL}?email=${encodeURIComponent(email)}`;\n  }).catch((err) => {\n    logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  setComplete,\n  setInit,\n  createEmailV2,\n  setProductConfirmation,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_cora_pf';\nimport { isLoggedIn } from '../../../utils/AuthService';\n\nconst\n  getFlowOrder = () => {\n    if (isLoggedIn()) {\n      return [ URLS.QUESTIONNAIRE, URLS.CONGRATS];\n    }\n    return [ URLS.QUESTIONNAIRE, URLS.CONGRATS, URLS.LOGIN_POST ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegistrationFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegistrationFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","/* eslint-disable max-statements */\n/* eslint-disable no-undef */\nimport _get from 'lodash/get';\nimport { STEPS, VARIANTS } from '../../constants/register_cora_pf';\nimport { getTestVariant } from '../../utils/pfUtils';\nimport { isLoggedIn } from '../../utils/AuthService';\n\nconst getNewBusinessStepOrder = (coraData) => {\n  const\n    { requestedJurisdictionCount, domesticEntity, domJurNotReqJurs, foreignQualFiling, foreignRegistration, formWithZen, hasFormation, saveData, selfFile } = coraData,\n    stepOrder = [ STEPS.WELCOME, STEPS.REG_AGENT ];\n\n  if (isLoggedIn()) {\n    stepOrder.push(STEPS.BUS_ID);\n  } else {\n    stepOrder.push(STEPS.ACCOWN_FIRST_NAME);\n  }\n  stepOrder.push(STEPS.HAS_FORMATION);\n  if (!hasFormation) {\n    stepOrder.push(STEPS.FORM_WITH_ZEN);\n    if (formWithZen) {\n      stepOrder.push(STEPS.GO_TO_FORMATION);\n      return stepOrder;\n    }\n  }\n\n  stepOrder.push(STEPS.REQ_JURS);\n  if (requestedJurisdictionCount === 1) {\n    stepOrder.push(STEPS.DOM_ENTITY);\n    if (!domesticEntity) {\n      stepOrder.push(STEPS.DOM_JUR);\n      stepOrder.push(STEPS.UPSELL_DOM_JUR);\n      if (hasFormation) {\n        stepOrder.push(STEPS.FOREIGN_REG);\n        if (!foreignRegistration) {\n          stepOrder.push(STEPS.FOREIGN_QUAL_FILING);\n          if (!foreignQualFiling) {\n            stepOrder.push(STEPS.HOW_TO_FILE);\n            if (selfFile === 'do-not-know') {\n              stepOrder.push(STEPS.RETURN_TO_LANDING);\n              return stepOrder;\n            }\n          }\n        }\n      }\n    }\n  } else {\n    stepOrder.push(STEPS.CHOOSE_DOM_JUR);\n    if (domJurNotReqJurs) {\n      stepOrder.push(STEPS.DOM_JUR);\n      stepOrder.push(STEPS.UPSELL_DOM_JUR);\n    }\n    if (hasFormation) {\n      if (!domJurNotReqJurs && requestedJurisdictionCount === 2) {\n        stepOrder.push(STEPS.FOREIGN_REG);\n      } else {\n        stepOrder.push(STEPS.CHOOSE_HAS_FORMATION);\n      }\n      if (!foreignRegistration) {\n        stepOrder.push(STEPS.FOREIGN_QUAL_FILING);\n        if (!foreignQualFiling) {\n          stepOrder.push(STEPS.HOW_TO_FILE);\n          if (selfFile === 'do-not-know') {\n            stepOrder.push(STEPS.RETURN_TO_LANDING);\n            return stepOrder;\n          }\n        }\n      }\n    }\n  }\n  stepOrder.push(STEPS.BUS_TYPE, STEPS.BUS_NAME);\n  if (!isLoggedIn()) {\n    stepOrder.push(STEPS.CHECKPOINT);\n    if (saveData) {\n      stepOrder.push(STEPS.ACCOWN_LAST_NAME, STEPS.ACCOWN_EMAIL, STEPS.ACCOWN_PHONE);\n    }\n  }\n  stepOrder.push(STEPS.PLAN, STEPS.CART, STEPS.PAYMENT);\n\n  return stepOrder;\n\n};\n\nconst getExistingBusinessStepOrder = (coraData) => {\n  const\n    { requestedJurisdictionCount, foreignQualFiling, foreignRegistration, selfFile } = coraData,\n    stepOrder = [ STEPS.WELCOME, STEPS.REG_AGENT, STEPS.BUS_ID, STEPS.REQ_JURS ];\n\n  if (requestedJurisdictionCount === 1) {\n    stepOrder.push(STEPS.FOREIGN_REG);\n    if (!foreignRegistration) {\n      stepOrder.push(STEPS.FOREIGN_QUAL_FILING);\n      if (!foreignQualFiling) {\n        stepOrder.push(STEPS.HOW_TO_FILE);\n        if (selfFile === 'do-not-know') {\n          stepOrder.push(STEPS.RETURN_TO_LANDING);\n          return stepOrder;\n        }\n      }\n    }\n  } else {\n    stepOrder.push(STEPS.CHOOSE_HAS_FORMATION);\n    if (!foreignRegistration) {\n      stepOrder.push(STEPS.FOREIGN_QUAL_FILING);\n      if (!foreignQualFiling) {\n        stepOrder.push(STEPS.HOW_TO_FILE);\n        if (selfFile === 'do-not-know') {\n          stepOrder.push(STEPS.RETURN_TO_LANDING);\n          return stepOrder;\n        }\n      }\n    }\n  }\n  stepOrder.push(STEPS.PLAN, STEPS.CART, STEPS.PAYMENT);\n\n  return stepOrder;\n};\n\nconst getStepOrderMobileMVP = (coraData) => {\n  const\n    { busDetailsLocked } = coraData;\n\n  if (busDetailsLocked) {\n    return getExistingBusinessStepOrder(coraData);\n  }\n  return getNewBusinessStepOrder(coraData);\n};\n\n//// Variant t3 flow\nconst getStepOrderMobileMaxLTV = () => { return []; };\n//const getStepOrderDesktopMaxLTV = () => { return []; };\n\nconst variantMap = {\n  [VARIANTS.MVP]: {\n    mobile: getStepOrderMobileMVP,\n    desktop: getStepOrderMobileMVP\n  },\n  [VARIANTS.MAX_LTV]: {\n    mobile: getStepOrderMobileMaxLTV,\n    desktop: getStepOrderMobileMaxLTV\n  }\n};\n\nconst noScrollingMap = {\n  [VARIANTS.MVP]: [STEPS.CART, STEPS.PAYMENT],\n  [VARIANTS.MAX_LTV]: [STEPS.CART, STEPS.PAYMENT]\n};\n\nconst provideFallbackFlowFunction = () => {\n  return getStepOrderMobileMVP;\n  //return window.zenIsMobile ? getStepOrderMobileMVP : getStepOrderDesktopMVP;\n};\n\nconst getStepsFlow = (coraData) => {\n  const variant = getTestVariant() || VARIANTS.MVP || 'mvp';\n  const device = window.zenIsMobile ? 'mobile' : 'desktop';\n  const flowFunction = _get(variantMap, `${variant}.${device}`, provideFallbackFlowFunction());\n  return flowFunction(coraData);\n};\n\nconst noScrollingSteps = () => {\n  const variant = getTestVariant() || VARIANTS.MVP || 'mvp';\n  return _get(noScrollingMap, variant, []);\n};\n\nexport { getStepsFlow, noScrollingSteps };\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport _isEmpty from 'lodash/isEmpty';\nimport { browserHistory } from 'react-router';\n\nimport getFlow from './flows';\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPLETE_CORA_URLS } from '../../constants/complete_cora';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, STEPS, URLS } from '../../constants/register_cora_pf';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { URLS as WEBSITE_URLS } from '../../constants/website';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as coraKey } from '../../reducers/registration/cora';\nimport { accountService, registrationService } from '../../services';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport logger from '../../utils/ClientLogger';\nimport { setGlobalProgressBar } from '../../utils/ProgressBar';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getStepsFlow, noScrollingSteps } from './stepsFlowFactory';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport LeadManager from '../Lead';\n\nlet currentStep = STEPS.WELCOME;\n\nexport const resetActionError = (dispatch) => {\n  logger.logAction(ACTIONS.RESET_ACTION_ERROR);\n  dispatch({\n    type: ACTIONS.RESET_ACTION_ERROR\n  });\n};\n\nconst\n  defaultBusinessData = { id: '' },\n  businessData = _assign(getReducerSnapshot(businessKey, defaultBusinessData), { noIdMatches: false, hasCompanies: true, needsFormation: null }),\n  defaultCoraData = {\n    busDetailsLocked: false,\n    businessTypeOnParam: false,\n    domJurNotReqJurs: false,\n    foreignRegistration: false,\n    foreignQualFiling: false,\n    formationOnParam: false,\n    formWithZen: false,\n    hasFormation: false,\n    idOnParam: false,\n    requestedJurisdictionOnParam: false,\n    requestedJurisdictionCount: 0,\n    selfFile: false,\n    step: ''\n  },\n  coraData = getReducerSnapshot(coraKey, defaultCoraData),\n\n  getFlowOrder = (url) => {\n    const\n      flow = getFlow(url);\n\n    return flow;\n  };\n\nexport const getStepOrder = () => {\n  return getStepsFlow(coraData);\n};\n\nexport const getEntityType = () => {\n  return businessData.type;\n};\n\nexport const getNoScrollSteps = () => {\n  return noScrollingSteps() || [];\n};\n\nexport const getStepIndex = (step) => {\n  const order = getStepOrder(),\n    index = _indexOf(order, step);\n\n  return index === -1 ? order.length : index;\n};\n\n// A step can only be re-answered from behind its own position in the flow via the\n// \"reset back to this point\" modal, so this is a reliable signal that the customer just\n// confirmed a reset - any stale checkout error no longer applies. Shared by every step\n// that passes resetStep: true, not just Plan.\nexport const isResettingBackToStep = (stepOrder, requestedStep, previousStep, resetStep) => {\n  const\n    requestedStepIndex = requestedStep ? _indexOf(stepOrder, requestedStep) : -1,\n    previousStepIndex = previousStep ? _indexOf(stepOrder, previousStep) : -2;\n\n  return !!resetStep && requestedStepIndex !== -1 && requestedStepIndex < previousStepIndex;\n};\n\nexport const getNextStep = (step, resetStep) => {\n  const\n    stepOrder = getStepOrder(),\n    requestedStepIndex = step ? _indexOf(stepOrder, step) : -1,\n    currentStepIndex = coraData.step ? _indexOf(stepOrder, coraData.step) : -2,\n    nextStep = resetStep || requestedStepIndex >= currentStepIndex ? stepOrder[requestedStepIndex + 1] : coraData.step;\n\n  coraData.step = nextStep;\n  return nextStep;\n};\n\nconst\n  go = (jump, doReplace) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      setGlobalProgressBar(flowOrder, '');\n      if (!isLoggedIn()) {\n        document.location = getAppEntryPoint();\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      setGlobalProgressBar(flowOrder, COMPLETE_CORA_URLS.START);\n      browserHistory.push(`/${COMPLETE_CORA_URLS.BASE}/${COMPLETE_CORA_URLS.START}`);\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n      return flowOrder[jumpIndex];\n    }\n    return '';\n  },\n  set = (dispatch, data, actionKey, step, moveUrl, doReplace) => {\n    currentStep = getNextStep(step);\n\n    const d = step ? _assign({ nextStep: currentStep }, data) : data;\n    logger.logAction(actionKey, d);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data: d\n      }\n    });\n    if (moveUrl) {\n      go(1, doReplace);\n    }\n  },\n\n  setStep = (dispatch, data, actionKey, step, resetStep) => {\n    const resettingBackToStep = isResettingBackToStep(getStepOrder(), step, coraData.step, resetStep);\n\n    currentStep = getNextStep(step, resetStep);\n    const d = step ? _assign({ nextStep: currentStep }, data) : data;\n    logger.logAction(actionKey, d);\n\n    if (resettingBackToStep) {\n      resetActionError(dispatch);\n    }\n\n    dispatch({\n      type: actionKey,\n      payload: {\n        data: d\n      }\n    });\n  },\n\n  cartUpdate = (dispatch, data, actionKey) => {\n    const d = _assign({ nextStep: STEPS.CART }, data);\n    logger.logAction(actionKey, d);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data: d\n      }\n    });\n  },\n\n  doReset = () => {\n    _assign(businessData, defaultBusinessData);\n    _assign(coraData, defaultCoraData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  setGlobalProgressBar(flowOrder, flowOrder[0]);\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const resetAllData = (dispatch, data) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET,\n    payload: {\n      data: data || {}\n    }\n  });\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      setGlobalProgressBar(flowOrder, COMPLETE_CORA_URLS.START);\n      browserHistory.push(`/${COMPLETE_CORA_URLS.BASE}/${COMPLETE_CORA_URLS.START}`);\n    } else {\n      setGlobalProgressBar(flowOrder, flowOrder[jumpIndex]);\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const setLead = (dispatch, createOrUpdateLead) => {\n  const snapshotData = getReducerSnapshot(coraKey, defaultCoraData);\n\n  const leadManager = new LeadManager(ACTIONS);\n  leadManager.setLead(dispatch, createOrUpdateLead, {\n    firstName: snapshotData.firstName,\n    lastName: snapshotData.lastName,\n    phone: snapshotData.phoneNumber || '',\n    email: snapshotData.email,\n    searchstate: snapshotData.domesticJurisdiction,\n    selectedState: snapshotData.domesticJurisdiction,\n    entityName: snapshotData.name,\n    entityType: getEntityType(),\n    purchase_flow: 'cora_pf'\n  });\n};\n\nexport const setAccountOwnerEmail = (dispatch, data, createOrUpdateLead) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_EMAIL, STEPS.ACCOWN_EMAIL, false);\n  setLead(dispatch, createOrUpdateLead);\n};\n\nexport const setAccountOwnerFirstName = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_FIRST_NAME, STEPS.ACCOWN_FIRST_NAME, false);\n};\n\nexport const setAccountOwnerLastName = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_LAST_NAME, STEPS.ACCOWN_LAST_NAME, false);\n};\n\nexport const setAccountOwnerMiddleName = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_MIDDLE_NAME, STEPS.ACCOWN_MIDDLE_NAME, false);\n};\n\nexport const setAccountOwnerPhone = (dispatch, data, createOrUpdateLead) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_PHONE, STEPS.ACCOWN_PHONE, false);\n  setLead(dispatch, createOrUpdateLead);\n};\n\nexport const setAccountOwnerSuffix = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_SUFFIX, STEPS.ACCOWN_SUFFIX, false);\n};\n\nexport const setBusinessId = (dispatch, data) => {\n  businessData.id = data.id;\n  coraData.busDetailsLocked = !!data.id;\n  setStep(dispatch, data, ACTIONS.BUS_ID, STEPS.BUS_ID, true);\n  businessData.hasCompanies = data.hasCompanies;\n  businessData.noIdMatches = data.noIdMatches; // Do this after to make sure things move correctly.\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.BUS_NAME);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.BUS_NAME, STEPS.BUS_NAME, false);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.BUS_TYPE);\n    return;\n  }\n\n  businessData.type = data.type;\n  setStep(dispatch, data, ACTIONS.BUS_TYPE, STEPS.BUS_TYPE, true);\n};\n\nexport const setBusinessTypeAndName = (dispatch, data) => {\n  businessData.type = data.type;\n  cartUpdate(dispatch, data, ACTIONS.BUS_TYPE_NAME_CART);\n};\n\nexport const setCart = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.CART, STEPS.CART, false);\n};\n\nexport const setCheckpoint = (dispatch, data) => {\n  coraData.saveData = data.saveData;\n  setStep(dispatch, data, ACTIONS.CHECKPOINT, STEPS.CHECKPOINT, true);\n};\n\nexport const setChooseDomesticJurisdiction = (dispatch, data) => {\n  coraData.domJurNotReqJurs = data.domJurNotReqJurs;\n  setStep(dispatch, data, ACTIONS.CHOOSE_DOM_JUR, STEPS.CHOOSE_DOM_JUR, true);\n};\n\nexport const setChooseHasFormation = (dispatch, data) => {\n  coraData.foreignRegistration = data.foreignRegistration;\n  setStep(dispatch, data, ACTIONS.CHOOSE_HAS_FORMATION, STEPS.CHOOSE_HAS_FORMATION, true);\n};\n\nexport const setCreateOrder = (dispatch) => {\n  dispatch({ type: ACTIONS.FLOW_COMPLETE });\n  go(1);\n};\n\nexport const setDomesticEntity = (dispatch, data) => {\n  coraData.domesticEntity = data.domesticEntity;\n  setStep(dispatch, data, ACTIONS.DOM_ENTITY, STEPS.DOM_ENTITY, true);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.DOM_JUR);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.DOM_JUR, STEPS.DOM_JUR, true);\n};\n\nexport const setFlowComplete = (dispatch) => {\n  logger.logAction(ACTIONS.FLOW_COMPLETE, null);\n  dispatch({ type: ACTIONS.FLOW_COMPLETE });\n};\n\nexport const setForeignQualFiling = (dispatch, data) => {\n  coraData.foreignQualFiling = data.foreignQualFiling;\n  setStep(dispatch, data, ACTIONS.FOREIGN_QUAL_FILING, STEPS.FOREIGN_QUAL_FILING, true);\n};\n\nexport const setForeignRegistration = (dispatch, data) => {\n  coraData.foreignRegistration = data.foreignRegistration;\n  setStep(dispatch, data, ACTIONS.FOREIGN_REG, STEPS.FOREIGN_REG, true);\n};\n\nexport const setFormWithZen = (dispatch, data) => {\n  coraData.formWithZen = data.formWithZen;\n  setStep(dispatch, data, ACTIONS.FORM_WITH_ZEN, STEPS.FORM_WITH_ZEN, true);\n};\n\nexport const setHasFormation = (dispatch, data) => {\n  coraData.hasFormation = data.hasFormation;\n  setStep(dispatch, data, ACTIONS.HAS_FORMATION, STEPS.HAS_FORMATION, true);\n};\n\nexport const setHowToFile = (dispatch, data) => {\n  coraData.selfFile = data.selfFile;\n  setStep(dispatch, data, ACTIONS.HOW_TO_FILE, STEPS.HOW_TO_FILE, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const {\n    requestedJurisdictionsOnParam,\n    businessTypeOnParam,\n    idOnParam,\n    formationOnParam,\n    hasFormation\n  } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  coraData.step = null;\n  coraData.requestedJurisdictionsOnParam = requestedJurisdictionsOnParam;\n  coraData.businessTypeOnParam = businessTypeOnParam;\n  coraData.idOnParam = idOnParam;\n  coraData.formationOnParam = formationOnParam;\n  coraData.hasFormation = hasFormation;\n  coraData.requestedJurisdictionsCount = requestedJurisdictionsOnParam ? 1 : 0;\n  coraData.id = data.id;\n\n  businessData.isSimulated = data.isSimulated;\n  setIsFreeAccount(data.isSimulated);\n\n  const entryPoint = getEntryPoint();\n  const page = entryPoint.substring(URLS.BASE.length + 2);\n\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, '', false);\n  set(dispatch, _assign({}, data, { page }), ACTIONS.INIT, '', false);\n  browserHistory.replace(entryPoint);\n};\n\nexport const setLogin = (dispatch) => {\n  setStep(dispatch, { flow: 'truic' }, ACTIONS.LOGIN, '', false);\n};\n\nexport const setLoginPostPurchase = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LOGIN_POST, '', false);\n};\n\nexport const setNextStep = (dispatch, { step, ...therest }) => {\n  setStep(dispatch, therest, ACTIONS.NEXT_STEP, step, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.PAYMENT, STEPS.PAYMENT, false);\n};\n\nexport const setPlan = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.PLAN);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.PLAN, STEPS.PLAN, true);\n};\n\nexport const setPricing = (dispatch, data) => {\n  logger.logAction(ACTIONS.PRICES, data);\n\n  dispatch({\n    type: ACTIONS.PRICES,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setPurchaseSuccess = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PURCHASE_SUCCESS, '', true);\n};\n\nexport const setRequestedJurisdictions = (dispatch, data) => {\n  coraData.requestedJurisdictionCount = data.requestedJurisdictions.length;\n  setStep(dispatch, data, ACTIONS.REQ_JURS, STEPS.REQ_JURS, true);\n};\n\nexport const setRegAgent = (dispatch, data) => {\n  const { status } = data;\n\n  if (status === 'home') {\n    document.location = '/';\n    return;\n  }\n  if (status === 'showMore') {\n    document.location = `/${WEBSITE_URLS.PRICING}`;\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.REG_AGENT, STEPS.REG_AGENT, true);\n};\n\nexport const setRegisteredStatesFromCart = (dispatch, data) => {\n  cartUpdate(dispatch, data, ACTIONS.REG_STATES_FROM_CART);\n};\n\nexport const setReturnToLanding = (dispatch, data) => {\n  const { status } = data;\n\n  if (status === 'showMore') {\n    document.location = `/${WEBSITE_URLS.PRICING}`;\n    return;\n  }\n  document.location = '/';\n};\n\nexport const setUnregisteredStatesFromCart = (dispatch, data) => {\n  cartUpdate(dispatch, data, ACTIONS.UNREG_STATES_FROM_CART);\n};\n\nexport const setUpsellDomJur = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.UPSELL_DOM_JUR);\n    return;\n  }\n\n  coraData.upsellDomJur = data.upsellDomJur;\n  setStep(dispatch, data, ACTIONS.UPSELL_DOM_JUR, STEPS.UPSELL_DOM_JUR, true);\n};\n\nexport const setWelcome = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.WELCOME, STEPS.WELCOME, false);\n};\n\nconst createRAOrder = (dispatch, reducerData, fees, expediteFees) => {\n  const serviceMethod = 'createCoRA';\n\n  registrationService[serviceMethod](reducerData, fees, expediteFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData,\n        fees,\n        expediteFees\n      }\n    });\n    const price = 0;\n    const addlData = createAdditionalData('cora_pf', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'cora_pf', price, addlData);\n\n    go(1, true);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, fees, expediteFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { customer } = reducerData,\n    { cardToken, expMonth, expYear, cvc, brand, last4 } = customer;\n\n  if (!isLoggedIn() || !cardToken) {\n    createRAOrder(dispatch, reducerData, fees, expediteFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createRAOrder(dispatch, reducerData, fees, expediteFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const verifyEmail = (dispatch, email) => {\n  logger.logAction(ACTIONS.VERIFY_EMAIL, email);\n  dispatch({\n    type: ACTIONS.VERIFY_EMAIL\n  });\n\n  accountService.exists(email).then((result) => {\n    const { status = false } = result;\n    if (!status) {\n      dispatch({\n        type: ACTIONS.VERIFY_EMAIL_COMPLETE,\n        payload: {\n          data: { nextStep: getNextStep(STEPS.VERIFY_EMAIL) }\n        }\n      });\n    } else {\n      logger.error(ACTIONS.VERIFY_EMAIL_COMPLETE, { error: 'emailExists', errorCode: 1001 });\n      dispatch({\n        type: ACTIONS.VERIFY_EMAIL_COMPLETE,\n        error: true,\n        payload: {\n          error: 'emailExists',\n          errorCode: 1001\n        }\n      });\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.VERIFY_EMAIL_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.VERIFY_EMAIL_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport const setCompanyDetailsFromCart = (dispatch, data) => {\n  const { type, isSCorp = false } = data;\n\n  setBusinessType(dispatch, { value: type, isSCorp });\n\n};\n\nexport const resetData = (dispatch, data) => {\n  if (_isEmpty(data)) return;\n  set(dispatch, data, ACTIONS.RESET_DATA, '', false, false);\n};\n\nexport default {\n  createOrder,\n  getEntryPoint,\n  getFlowOrder,\n  getNextStep,\n  getStepIndex,\n  getStepOrder,\n  goToNextUncompletedPage,\n  resetActionError,\n  resetAllData,\n  setAccountOwnerEmail,\n  setAccountOwnerFirstName,\n  setAccountOwnerLastName,\n  setAccountOwnerMiddleName,\n  setAccountOwnerPhone,\n  setAccountOwnerSuffix,\n  setBusinessId,\n  setBusinessName,\n  setBusinessType,\n  setBusinessTypeAndName,\n  setCart,\n  setCheckpoint,\n  setDomesticEntity,\n  setDomesticJurisdiction,\n  setForeignQualFiling,\n  setForeignRegistration,\n  setFormWithZen,\n  setHasFormation,\n  setHowToFile,\n  setInit,\n  setLogin,\n  setLoginPostPurchase,\n  setPayment,\n  setPlan,\n  setPurchaseSuccess,\n  setRegAgent,\n  setRegisteredStatesFromCart,\n  setRequestedJurisdictions,\n  setReturnToLanding,\n  setUnregisteredStatesFromCart,\n  setUpsellDomJur,\n  verifyEmail,\n  setCompanyDetailsFromCart,\n  setLead\n};\n","import { URLS } from '../../../constants/register_logokit';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n    return [ URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterLogoKitFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterLogoKitFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_logokit';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as logoKitKey } from '../../reducers/registration/logoKit';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { getLogoKitPrice } from '../../utils/ProductService';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\n\nconst\n  defaultLogoKitData = { companyId: '', companyCount: 0 },\n  logoKitData = getReducerSnapshot(logoKitKey, defaultLogoKitData),\n  getFlowOrder = (url) => {\n    const registration = {\n      logoKit: logoKitData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (logoKitData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${logoKitData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.PAYMENT,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(defaultLogoKitData, logoKitData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(logoKitData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  if (logoKitData?.fromUpgrade && logoKitData?.nextUrl?.includes('/lb/')) {\n    set(dispatch, {}, ACTIONS.COMPLETE, true);\n    document.location = `${logoKitData.nextUrl}`;\n  }\n  if (logoKitData?.fromUpgrade) {\n    document.location = `/lb/entry/?be=${logoKitData.companyId}`;\n  }\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount, isSimulated, nextUrl, fromUpgrade } = data;\n  setIsFreeAccount(isSimulated);\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(logoKitData, { companyId, companyCount, nextUrl, fromUpgrade });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.PAYMENT}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createLogoKitOrder = (dispatch, reducerData, accountId) => {\n  registrationService.createLogoKit(reducerData, accountId).then((response) => {\n    const price = getLogoKitPrice();\n    const addlData = createAdditionalData('logo_kit', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'logo_kit', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { logoKit } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = logoKit;\n\n  if (!cardToken) {\n    createLogoKitOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createLogoKitOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setChooseCompany,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import { URLS } from '../../../constants/business_name_generator';\n\nconst getFlowOrder = (url, registration) => {\n  const flowItems = [ URLS.RESULTS ];\n  const { business: { skipDomesticJurisdiction } } = registration;\n  if (!skipDomesticJurisdiction) {\n    flowItems.push(URLS.DOM_JUR);\n  }\n  flowItems.push(URLS.GREAT_NEWS);\n  flowItems.push(URLS.BUS_NAME_REDIRECT);\n  return flowItems;\n};\n\nexport default {\n  getFlowOrder\n};\n","import { getBusinessNameGeneratorFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst flowTestMap = {\n  default: DefaultFlows\n};\n\nconst getFlowOrder = (url, registration) => {\n  return (flowTestMap[getBusinessNameGeneratorFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n};\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport _capitalize from 'lodash/capitalize';\nimport _trim from 'lodash/trim';\nimport { browserHistory } from 'react-router';\n\n\nimport { getStateFees as getInitStateFees, setAppEntryPoint } from '../initialization';\nimport { ACTIONS, URLS } from '../../constants/business_name_generator';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { domainNameService } from '../../services';\n\nconst defaultBusinessData = {\n  skipDomesticJurisdiction: false\n};\nconst businessData = getReducerSnapshot(businessKey, defaultBusinessData);\n\nconst getFlowOrder = (url) => {\n  const registration = { business: businessData };\n\n  return getFlow(url, registration);\n};\n\nconst dotComReg = /\\.com$/g;\nconst wordsRegex = /[A-Za-z0-9]+/g;\nconst SPECIAL_CHARACTERS = ['`', '‘', '’', '\\'', '&', '+', '-'];\nconst HYPHEN = '-';\n\nconst applyPeculiarities = (name, peculiarities) => {\n  if (!peculiarities) { return name; }\n  let transformedName = name;\n  peculiarities.forEach((pec) => {\n    const { searchableWord, charAfterWord } = pec;\n    const trimSearchableWord = _capitalize(_trim(searchableWord));\n    if (transformedName.includes(trimSearchableWord)) {\n      transformedName = transformedName.replace(trimSearchableWord, `${_capitalize(searchableWord)}${charAfterWord}`);\n    }\n  });\n  return transformedName;\n};\n\nconst mapDomainsToNames = (domainInfo, keywords, peculiarities) => {\n  let { domain = '' } = domainInfo;\n  const nameRegEx = new RegExp(`(${keywords.join('|')})`);\n  domain = domain.replace(dotComReg, '');\n  const domainIncludesHyphen = domain.includes(HYPHEN);\n  const domainSplitted = domain.split(domainIncludesHyphen ? HYPHEN : nameRegEx);\n  const name = domainSplitted.filter((word) => {\n    return !!word;\n  })\n    .map((word) => {\n      return _capitalize(word);\n    }).join(' ');\n\n  return ({\n    name: applyPeculiarities(name, peculiarities),\n    domain: domainInfo.domain\n  });\n};\n\nconst getSuggestions = (rawSuggestions) => {\n  const pageSize = 10;\n  const suggestions = [];\n  const totalPages = Math.ceil(rawSuggestions.length / pageSize);\n  for (let index = 0; index < totalPages; index += 1) {\n    suggestions.push(rawSuggestions.slice(index * pageSize, (index + 1) * pageSize));\n  }\n  return suggestions;\n};\n\nconst getPeculiarities = (keySearch) => {\n  const filteredChars = SPECIAL_CHARACTERS.filter((char) => { return keySearch.includes(char); });\n  if (!filteredChars.length) {\n    return {\n      searchBy: keySearch,\n      peculiarities: null\n    };\n  }\n  let searchBy = keySearch;\n  const peculiarities = filteredChars.map((char) => {\n    searchBy = searchBy.replace(char, '');\n    const specialWord = keySearch.match(new RegExp(`[A-Za-z0-9]+[\\\\s]*[${char}]{1}[\\\\s]*[A-Za-z0-9]*`));\n    const [searchableWord] = specialWord[0].split(char);\n    return {\n      searchableWord,\n      charAfterWord: char\n    };\n  });\n\n  return {\n    searchBy,\n    peculiarities\n  };\n};\n\nconst processDomains = (domains = [], words = [], peculiarities) => {\n  return domains\n    .filter((domainInfo) => {\n      return domainInfo.status === 'available' &&\n        dotComReg.test(domainInfo.domain);\n    })\n    .map((domainInfo) => {\n      return mapDomainsToNames(domainInfo, words, peculiarities);\n    });\n};\n\nconst goInFlow = (flowOrder, jumpIndex) => {\n  if (jumpIndex < 0) {\n    document.location = URLS.LANDING_PAGE;\n  } else if (jumpIndex >= flowOrder.length) {\n    document.location = `/${URLS.BASE}/${URLS.INIT}`;\n  } else {\n    browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n  }\n};\n\nconst go = (jump) => {\n  const url = document.location.pathname.substring(URLS.BASE.length + 2);\n  const flowOrder = getFlowOrder(url);\n  const index = _indexOf(flowOrder, url);\n  const jumpIndex = index >= 0 ? index + jump : index;\n  goInFlow(flowOrder, jumpIndex);\n};\n\nconst set = (dispatch, data, actionKey, moveUrl) => {\n  logger.logAction(actionKey, data);\n  dispatch({\n    type: actionKey,\n    payload: {\n      data\n    }\n  });\n  if (moveUrl) {\n    go(1, dispatch);\n  }\n};\n\nconst doReset = () => {\n  _assign(businessData, defaultBusinessData);\n};\n\nexport const getDomainSuggestions = (dispatch, data) => {\n  logger.logAction(ACTIONS.SEARCH_BUSINESS_NAMES);\n  const { searchKey } = data;\n\n  const { searchBy, peculiarities } = getPeculiarities(searchKey);\n\n  dispatch({\n    type: ACTIONS.SEARCH_BUSINESS_NAMES,\n    payload: {\n      searchKey\n    }\n  });\n\n  domainNameService\n    .suggest(searchBy)\n    .then((response) => {\n      const { lookup = [], suggestion = [] } = response;\n      const words = searchBy.match(wordsRegex);\n\n      const matches = processDomains(lookup, words, peculiarities);\n      const mappedSuggestions = processDomains(suggestion, words, peculiarities);\n      const suggestions = getSuggestions([...matches, ...mappedSuggestions]);\n      logger.logAction(ACTIONS.SEARCH_BUSINESS_NAMES_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.SEARCH_BUSINESS_NAMES_COMPLETE,\n        payload: {\n          matches,\n          suggestions,\n          matched: !!suggestions.length\n        }\n      });\n    })\n    .catch((err) => {\n      logger.error(ACTIONS.SEARCH_BUSINESS_NAMES_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.SEARCH_BUSINESS_NAMES_COMPLETE,\n        error: true,\n        payload: {\n          matches: [],\n          suggestions: [],\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n};\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const getStateFees = (dispatch, data, filingFees) => {\n  if (filingFees && (!filingFees[data.domesticJurisdiction] || !filingFees[data.domesticJurisdiction].entity_name_reservation)) {\n    getInitStateFees(dispatch, data.domesticJurisdiction);\n  }\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setInit = (dispatch, data) => {\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, {}, ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.INIT, false);\n\n  if (data.searchKey) {\n    getDomainSuggestions(dispatch, data);\n  }\n\n  browserHistory.replace(getEntryPoint());\n};\n\nexport const setDomesticJurisdiction = (dispatch, data, filingFees) => {\n  set(dispatch, data, ACTIONS.DOM_JUR, true);\n  getStateFees(dispatch, data, filingFees);\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME, true);\n};\n\nexport const setBusinessInformation = (dispatch, data) => {\n  _assign(\n    businessData,\n    { skipDomesticJurisdiction: !!data.domesticJurisdiction }\n  );\n  set(dispatch, data, ACTIONS.BUS_NAME, false);\n  set(dispatch, data, ACTIONS.SEL_BUS_NAME_SUGGES, false);\n  set(dispatch, data, ACTIONS.DOM_JUR, true);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  setInit,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_account';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.STEP_1 || url === URLS.STEP_2 || url === URLS.STEP_3) {\n      return [ URLS.STEP_1, URLS.STEP_2, URLS.STEP_3 ];\n    }\n\n    const { business } = registration,\n      { hasExistingBusiness } = business,\n      flow = [ URLS.ACCOWN_NAME, URLS.HAS_EX_BUS ];\n\n    if (hasExistingBusiness) {\n      flow.push(URLS.BUS_TYPE, URLS.BUS_NAME, URLS.DOM_JUR);\n    }\n\n    flow.push(URLS.ACCOWN_CONTACT, URLS.STEP_1, URLS.STEP_2, URLS.STEP_3);\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterGSFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterGSFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/register_account';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport logger from '../../utils/ClientLogger';\nimport { accountService } from '../../services';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\n\nconst\n  defaultBusinessData = { id: '', type: 'LLCX', addressMatch: false, addressIsGoogle: false, domesticJurisdiction: '', state: '', noIdMatches: false },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  getFlowOrder = (url) => {\n    const\n      registration = {\n        business: businessData\n      },\n      flow = getFlow(url, registration);\n\n    return flow;\n  },\n  go = (jump) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    if (jumpIndex < 0) {\n      document.location = getAppEntryPoint();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = `/${DASHBOARD_URLS.BASE}`;\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1);\n    }\n  },\n  doReset = () => {\n    _assign(businessData, defaultBusinessData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setAccountOwnerContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_CONTACT, false);\n};\n\nexport const setAccountOwnerName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ACCOWN_NAME, true);\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME, true);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_TYPE, true);\n};\n\nexport const setCompleteStep1 = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.STEP_1, true);\n};\n\nexport const setCompleteStep2 = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.STEP_2, true);\n};\n\nexport const setCompleteStep3 = (dispatch, data) => {\n  doReset();\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.STEP_3, false);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DOM_JUR, true);\n};\n\nexport const setHasExistingBusiness = (dispatch, data) => {\n  businessData.hasExistingBusiness = data.hasExistingBusiness;\n  set(dispatch, data, ACTIONS.HAS_EX_BUS, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(getEntryPoint());\n};\n\nexport const createAccount = (dispatch, reducerData) => {\n  logger.logAction(ACTIONS.CREATE_ACCOUNT);\n  dispatch({\n    type: ACTIONS.CREATE_ACCOUNT\n  });\n  accountService.create(reducerData).then((response) => {\n    const { data } = response;\n\n    logger.logAction(ACTIONS.CREATE_ACCOUNT_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ACCOUNT_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    go(1);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ACCOUNT_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ACCOUNT_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const accountAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  goBack,\n  setAccountOwnerName,\n  accountAlreadyCreated,\n  setAccountOwnerContact,\n  setBusinessName,\n  setBusinessType,\n  setHasExistingBusiness,\n  setDomesticJurisdiction,\n  setInit,\n  setCompleteStep1,\n  setCompleteStep2,\n  setCompleteStep3,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_stock_setup';\n\nconst\n  getFlowOrder = () => {\n    const flow = [URLS.START];\n\n    flow.push(URLS.PAYMENT, URLS.COMPLETE);\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterStockSetupFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterStockSetupFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_stock_setup';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as stockSetupKey } from '../../reducers/registration/stockSetup';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, corpStockService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { trackEvent } from '../../utils/ThirdPartyTracking';\n\nconst\n  defaultStockSetupData = { companyId: '', companyCount: 0 },\n  stockSetupData = getReducerSnapshot(stockSetupKey, defaultStockSetupData),\n  getFlowOrder = (url) => {\n    const registration = {\n      stockSetup: stockSetupData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (stockSetupData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${stockSetupData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(stockSetupData, stockSetupData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(stockSetupData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(stockSetupData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nexport const setCorpStock = (dispatch, data) => {\n  corpStockService.getStockFeeTotal(data).then((response) => {\n    logger.logAction(ACTIONS.START, response);\n    const newData = { ...data, ...response };\n    dispatch({\n      type: ACTIONS.START,\n      payload: {\n        newData\n      }\n    });\n    go(1, dispatch);\n\n  }).catch((error) => {\n    console.log('error', error);\n  });\n};\n\nconst createStockSetupOrder = (dispatch, reducerData, companyId, stockInfo, corpFormationId) => {\n  // make sure to check registrationSErvice for proper stock setup setup\n  registrationService.updateStockSetup(reducerData, companyId, stockInfo, corpFormationId).then((response) => {\n    trackEvent('Purchase', 'complete', 'stock_setup');\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, companyId, stockInfo, corpFormationId) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { stockSetup } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = stockSetup;\n\n  if (!cardToken) {\n    createStockSetupOrder(dispatch, reducerData, companyId, stockInfo, corpFormationId);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createStockSetupOrder(dispatch, reducerData, companyId, stockInfo, corpFormationId);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setChooseCompany,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import { URLS } from '../../../constants/complete_wfg';\nimport { OrderTypes, isOrderCompleteByType } from '../../../utils/OrderUtils';\n\nconst\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing, usePhysicalAsPrincipal, useMailingAsPrincipal } = registration.businessAddresses,\n      flowItems = [];\n\n    flowItems.push(URLS.PHYS_ADDR);\n    if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n      if ((!useMailingAsPrincipal && !usePhysicalAsPrincipal) || url === URLS.PRIN_ADDR) {\n        flowItems.push(URLS.PRIN_ADDR);\n      }\n    } else if (!usePhysicalAsPrincipal || url === URLS.PRIN_ADDR) {\n      flowItems.push(URLS.PRIN_ADDR);\n    }\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getPostPrincipalsFlowOrder = (url, registration) => {\n    const\n      { page } = registration,\n      { forceToContact, forceToMembers, forceToManagers, forceToDirectors, forceToOfficers, forceToRegisteredAgent } = page,\n      flowItems = [];\n\n    if (forceToMembers || forceToManagers || forceToDirectors || forceToOfficers) {\n      flowItems.push(URLS.DATA_CONFIRM);\n    } else {\n      flowItems.push(URLS.REG_AGT);\n      if (forceToRegisteredAgent) {\n        flowItems.push(URLS.DATA_CONFIRM);\n      } else if (url === URLS.PRIM_CONTACT) {\n        flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.PRIM_CONTACT, URLS.DATA_CONFIRM);\n      } else {\n        flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.DATA_CONFIRM);\n      }\n    }\n\n    if (forceToContact) {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    } else if (forceToMembers) {\n      flowItems.push(URLS.LLC_MBR_COUNT);\n    } else if (forceToManagers) {\n      flowItems.push(URLS.LLC_MGR_OPT);\n    } else if (forceToDirectors) {\n      flowItems.push(URLS.CORP_DIR_COUNT);\n    } else if (forceToOfficers) {\n      flowItems.push(URLS.CORP_CHOOSE_PRES);\n    } else if (forceToRegisteredAgent) {\n      flowItems.push(URLS.REG_AGT);\n    }\n    flowItems.push(URLS.SHARE, URLS.COMPLETE);\n    return flowItems;\n  },\n  /* esline-enable max-statements */\n\n  /* eslint-disable max-statements */\n  getCorpFlowOrder = (url, registration) => {\n    const\n      { officer, page } = registration,\n      flowItems = [ URLS.CORP_DIR_COUNT, URLS.CORP_DIR_LIST ],\n      { hasAsstSecretary, hasVicePresident } = officer,\n      { forceToDirectors } = page;\n\n    if (forceToDirectors) {\n      flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n      return flowItems;\n    }\n    flowItems.push(URLS.CORP_CHOOSE_PRES);\n    if (url === URLS.CORP_PRES) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_PRES);\n    }\n    flowItems.push(URLS.CORP_HAS_VP);\n    if (hasVicePresident) {\n      flowItems.push(URLS.CORP_CHOOSE_VP);\n      if (url === URLS.CORP_VP) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_VP);\n      }\n    }\n    flowItems.push(URLS.CORP_CHOOSE_TRSR);\n    if (url === URLS.CORP_TRSR) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_TRSR);\n    }\n    flowItems.push(URLS.CORP_CHOOSE_SEC);\n    if (url === URLS.CORP_SEC) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_SEC);\n    }\n    flowItems.push(URLS.CORP_HAS_ASST_SEC);\n    if (hasAsstSecretary) {\n      flowItems.push(URLS.CORP_CHOOSE_ASST_SEC);\n      if (url === URLS.CORP_ASST_SEC) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_ASST_SEC);\n      }\n    }\n    flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n    return flowItems;\n  },\n\n  /* eslint-enable max-statements */\n  getLLCFlowOrder = (url, registration) => {\n    const\n      { manager, page } = registration,\n      flowItems = [ URLS.LLC_MBR_COUNT, URLS.LLC_MBR_LIST ],\n      { managerType } = manager,\n      { forceToMembers } = page;\n\n    if (url === URLS.LLC_MBR_LIST && forceToMembers) {\n      flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n      return flowItems;\n    }\n\n    flowItems.push(URLS.LLC_MGR_OPT);\n    if (managerType === 'SomeOwners' || managerType === 'SomeManagers' || managerType === '') {\n      flowItems.push(URLS.LLC_BUS_RUN);\n    }\n    if (managerType === 'SomeManagers' || managerType === 'AllManagers' || managerType === '') {\n      flowItems.push(URLS.LLC_MGR_COUNT, URLS.LLC_MGR_LIST);\n    }\n    flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getFlowOrder = (url, registration) => {\n    const\n      { business } = registration,\n      { businessOrderType, type } = business;\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    if (isOrderCompleteByType(businessOrderType, OrderTypes.WORRY_FREE)) {\n      return [ URLS.START ];\n    }\n    if (businessOrderType === OrderTypes.EIN || businessOrderType === OrderTypes.BUSINESS_LICENSE_REPORT) {\n      if (type === 'CORP') {\n        return [ URLS.START, ...getCorpFlowOrder(url, registration)];\n      }\n      return [ URLS.START, ...getLLCFlowOrder(url, registration)];\n    }\n    if (businessOrderType === OrderTypes.NAME_RESERVATION) {\n      if (type === 'CORP') {\n        return [ URLS.START, URLS.BUS_DESC, URLS.PHYS_ADDR, ...getCorpFlowOrder(url, registration)];\n      }\n      return [ URLS.START, URLS.BUS_DESC, URLS.PHYS_ADDR, ...getLLCFlowOrder(url)];\n    }\n\n    const\n      flowItems = [ URLS.START, URLS.BUS_DESC, ...getAddressFlow(url, registration) ];\n\n    if (type === 'CORP') {\n      flowItems.push(...getCorpFlowOrder(url, registration));\n    } else {\n      flowItems.push(...getLLCFlowOrder(url, registration));\n    }\n    return flowItems;\n  };\n  /* eslint-enable max-statements */\n\nexport default {\n  getPostPrincipalsFlowOrder,\n  getCorpFlowOrder,\n  getLLCFlowOrder,\n  getFlowOrder\n};\n","import { getCompleteWFGFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteWFGFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/complete_wfg';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as managerKey } from '../../reducers/registration/managers';\nimport { storageKey as officerKey } from '../../reducers/registration/officers';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { storageKey as registeredAgentKey } from '../../reducers/registration/registeredAgent';\nimport { registrationService } from '../../services';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlows from './flows';\n\nconst\n  defaultBusinessData = { type: 'LLCX', id: '', businessOrderType: '', addressMatch: false, addressIsGoogle: false, domesticJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultManagerData = { managerType: '' },\n  managerData = getReducerSnapshot(managerKey, defaultManagerData),\n  defaultOfficerData = { hasAsstSecretary: false, hasVicePresident: false },\n  officerData = getReducerSnapshot(officerKey, defaultOfficerData),\n  defaultPageData = { forceToMembers: false, forceToManagers: false, forceToDirectors: false, forceToOfficers: false, forceToPayment: false, forceToContact: false, registrationFlow: '' },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  defaultRegisteredAgentData = { forceContact: false, forcePerson: false },\n  registeredAgentData = getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData),\n\n// This is a reduced flow for analyzing the data confirmation.\n  /* eslint-disable max-statements */\n  getFlowOrder = (url) => {\n    const registration = {\n      business: businessData,\n      businessAddresses: businessAddressesData,\n      manager: managerData,\n      officer: officerData,\n      page: pageData,\n      registeredAgent: registeredAgentData\n    };\n    return getFlows(url, registration);\n  },\n  go = (jump) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    if (jumpIndex < 0) {\n      if (!isLoggedIn()) {\n        document.location = getAppEntryPoint();\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(managerData, getReducerSnapshot(managerKey, defaultManagerData));\n    _assign(officerData, getReducerSnapshot(officerKey, defaultOfficerData));\n    _assign(pageData, getReducerSnapshot(pageKey, defaultPageData));\n    _assign(registeredAgentData, getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData));\n  };\n\nexport const getEntryPoint = (fromBack) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index = fromBack ? flow.length - 1 : 0;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const getNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n\n  const flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        return { isDashboard: true, url: `/${COMPANY_URLS.BASE}/${businessData.id}` };\n      }\n      return { isDashboard: true, url: `/${DASHBOARD_URLS.BASE}` };\n    }\n    return { isDasboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const goToCorpAsstSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_ASST_SEC, URLS.CORP_ASST_SEC);\n};\n\nexport const goToCorpPresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_PRES, URLS.CORP_PRES);\n};\n\nexport const goToCorpSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_SEC, URLS.CORP_SEC);\n};\n\nexport const goToCorpTreasurer = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_TRSR, URLS.CORP_TRSR);\n};\n\nexport const goToCorpVicePresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_VP, URLS.CORP_VP);\n};\n\nexport const goToPrimaryContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRIM_CONTACT, URLS.PRIM_CONTACT);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, false);\n};\n\nexport const setBusinessModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_MODAL, false);\n};\n\nexport const setChoosePrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRIM_CONTACT, false);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.COMPLETE, true);\n};\n\nexport const setCorpAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_ASST_SEC, false);\n};\n\nexport const setCorpChooseAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_ASST_SEC, false);\n};\n\nexport const setCorpChoosePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_PRES, false);\n};\n\nexport const setCorpChooseSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_SEC, false);\n};\n\nexport const setCorpChooseTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_TRSR, false);\n};\n\nexport const setCorpChooseVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_VP, false);\n};\n\nexport const setCorpDirectorCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_COUNT, false);\n};\n\nexport const setCorpDirectorList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_LIST, false);\n};\n\nexport const setCorpHasAsstSecretary = (dispatch, data) => {\n  officerData.hasAsstSecretary = data.hasAsstSecretary;\n  set(dispatch, data, ACTIONS.CORP_HAS_ASST_SEC, false);\n};\n\nexport const setCorpHasVicePresident = (dispatch, data) => {\n  officerData.hasVicePresident = data.hasVicePresident;\n  set(dispatch, data, ACTIONS.CORP_HAS_VP, false);\n};\n\nexport const setCorpPresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_PRES, false);\n};\n\nexport const setCorpSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_SEC, false);\n};\n\nexport const setCorpTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_TRSR, false);\n};\n\nexport const setCorpVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_VP, false);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  pageData.forceToDataConfirmation = data.forceToDataConfirmation;\n  pageData.forceToMembers = data.forceToMembers;\n  pageData.forceToManagers = data.forceToManagers;\n  pageData.forceToDirectors = data.forceToDirectors;\n  pageData.forceToOfficers = data.forceToOfficers;\n  pageData.forceToContact = data.forceToContact;\n  pageData.forceToRegisteredAgent = data.forceToRegisteredAgent;\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, false);\n};\n\nexport const setLLCBusinessRunners = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_BUS_RUN, false);\n};\n\nexport const setLLCManagerCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_COUNT, false);\n};\n\nexport const setLLCManagerList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST, false);\n};\n\nexport const setLLCManagerOption = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT, false);\n};\n\nexport const setLLCMemberCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_COUNT, false);\n};\n\nexport const setLLCMemberList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setMailingAddressModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR_MODAL, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPhysicalAddressModal = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR_MODAL, false);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, false);\n};\n\nexport const setPrimaryContactModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT_MODAL, false);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, false);\n};\n\nexport const setPrincipalAddressModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR_MODAL, false);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT, false);\n};\n\nexport const setRegisteredAgentModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT_MODAL, false);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n};\n\nexport const setStart = (dispatch, data) => {\n  updateSnapshots();\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nexport const updateContacts = (dispatch, data) => {\n  const { contactType } = data;\n  const type = {\n    member: 'UPDATE_MBR',\n    manager: 'UPDATE_MGR',\n    director: 'UPDATE_DIR',\n    officer: 'UPDATE_OFC'\n  };\n  const action = type[contactType || ''];\n  if (action) set(dispatch, data, ACTIONS[action], false);\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, advance) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService.updateWFG(reducerData, filingFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  goToCorpAsstSecretary,\n  goToCorpPresident,\n  goToCorpSecretary,\n  goToCorpTreasurer,\n  goToCorpVicePresident,\n  goToPrimaryContact,\n  setBusinessDescription,\n  setBusinessModal,\n  setChoosePrimaryContact,\n  setComplete,\n  setCorpAsstSecretary,\n  setCorpChooseAsstSecretary,\n  setCorpChoosePresident,\n  setCorpChooseSecretary,\n  setCorpChooseTreasurer,\n  setCorpChooseVicePresident,\n  setCorpDirectorCount,\n  setCorpDirectorList,\n  setCorpHasAsstSecretary,\n  setCorpHasVicePresident,\n  setCorpPresident,\n  setCorpSecretary,\n  setCorpTreasurer,\n  setCorpVicePresident,\n  setDataConfirmation,\n  setLLCBusinessRunners,\n  setLLCManagerCount,\n  setLLCManagerList,\n  setLLCManagerOption,\n  setLLCMemberCount,\n  setLLCMemberList,\n  setMailingAddress,\n  setMailingAddressModal,\n  setPhysicalAddress,\n  setPhysicalAddressModal,\n  setPrimaryContact,\n  setPrimaryContactModal,\n  setPrincipalAddress,\n  setPrincipalAddressModal,\n  setRegisteredAgent,\n  setRegisteredAgentModal,\n  setShare,\n  setStart,\n  updateContacts,\n  updateOrder,\n  resetAllData\n};\n","import { URLS } from '../../../constants/register_opagreement';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url, registration) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n\n    const\n      { operatingAgreement } = registration,\n      { companyCount } = operatingAgreement,\n      flow = [ URLS.START ];\n\n    if (companyCount > 1) {\n      flow.push(URLS.CHOOSE_COMPANY);\n    }\n    flow.push(URLS.PAYMENT, URLS.COMPLETE);\n    return flow;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_opagreement';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as operatingAgreementKey } from '../../reducers/registration/operatingAgreement';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getOpAgreementPrice } from '../../utils/ProductService';\n\nconst\n  defaultOperatingAgreementData = { companyId: '', companyCount: 0 },\n  operatingAgreementData = getReducerSnapshot(operatingAgreementKey, defaultOperatingAgreementData),\n  getFlowOrder = (url) => {\n    const registration = {\n      operatingAgreement: operatingAgreementData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    return operatingAgreementData.companyId ?\n      `/${COMPANY_URLS.BASE}/${operatingAgreementData.companyId}` :  `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(operatingAgreementData, defaultOperatingAgreementData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setChooseCompany = (dispatch, data) => {\n  const { companyId } = data;\n  _assign(operatingAgreementData, { companyId });\n  set(dispatch, data, ACTIONS.CHOOSE_COMPANY, true);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId, companyCount, fromDashboard = false } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(operatingAgreementData, { companyId, companyCount });\n  set(dispatch, data, ACTIONS.INIT, false);\n  const url = `/${URLS.BASE}/${URLS.START}?fromDashboard=${fromDashboard}`;\n  browserHistory.replace(url);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createOperatingAgreementOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createOperatingAgreement(reducerData, accountId, filingFees).then((response) => {\n    const price = getOpAgreementPrice();\n    const addlData = createAdditionalData('op_agreement', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'operating_agreement', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { operatingAgreement } = reducerData,\n    { cardToken, expMonth, expYear, cvc, brand, last4 } = operatingAgreement;\n\n  if (!cardToken) {\n    createOperatingAgreementOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createOperatingAgreementOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setChooseCompany,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n"],"names":["getNewCustomerFlowOrder","url","URLS","LOGIN_POST","ACCOWN_NAME","ACCOWN_CONTACT","DOM_JUR","BUS_TYPE","BUS_NAME","DATA_CONFIRM","PAYMENT","getNewCompanyFlowOrder","registration","business","hasCompanies","BUS_ID","getExistingCompanyFlowOrder","getFlowOrder","page","id","fromDashboard","isLoggedIn","START","flowTestMap","default","DefaultFlows","defaultBusinessData","domesticJurisdiction","name","type","businessOrderType","businessData","getReducerSnapshot","businessKey","defaultPageData","pageData","pageKey","getRegisterWFGFlowId","getFlow","go","jump","dispatch","doReplace","document","location","pathname","substring","BASE","length","flowOrder","index","_indexOf","jumpIndex","method","browserHistory","replace","push","getAppEntryPoint","OrderTypes","LLC","CORP","NY_PUBLICATION","COMP_WFG_URLS","SHARE","set","data","actionKey","moveUrl","logger","logAction","payload","getEntryPoint","goBack","ACTIONS","GO_BACK","goToNextUncompletedPage","forceBusinessId","setAccountOwnerContact","setAccountOwnerModal","ACCOWN_MODAL","setAccountOwnerName","setBusinessId","setBusinessModal","BUS_MODAL","setBusinessName","setBusinessType","setDataConfirmation","setDomesticJurisdiction","setInit","fullData","_assign","worryFree","setAppEntryPoint","REGISTRATION_ACTIONS","RESET","INIT","setLogin","flow","LOGIN","setLoginPostPurchase","setPayment","setStart","createWFGOrder","reducerData","fees","registrationService","then","response","CREATE_ORDER_COMPLETE","price","getWFGYearlyPrice","addlData","createAdditionalData","trackEvent","catch","err","error","errorCode","createOrder","filingFees","CREATE_ORDER","customer","cardToken","expMonth","expYear","cvc","brand","last4","isDefault","card_token","accountService","addPaymentMethodV2","mergedData","ACCOUNT_ACTIONS","ADD_PAYMENT_METHOD_COMPLETE","createLead","lead","CREATE_LEAD","CREATE_LEAD_COMPLETE","setBackFromCompleteBusiness","orderAlreadyCreated","COMPLETE","smbWebsite","alreadyPurchased","ALREADY_PURCHASED","CHOOSE_INTERVAL","defaultSMBWebsiteData","companyId","companyCount","smbWebsiteData","smbWebsiteKey","getRegisterSMBWebsiteFlowId","getCompanyUrl","COMPANY_URLS","DASHBOARD_URLS","trackClickEvent","pageTitle","clickText","inputValue","nextUrl","pageDetails","activeFlow","pageType","clickDetails","clickType","trackClick","path","idx2","indexOf","setAlreadyPurchased","redirect","setTimeout","setChooseInterval","yearlyInterval","setComplete","fromPublish","externalUid","accountName","siteName","planId","createSMBWebsiteOrder","accountId","createSMBWebsite","getSMBWebsiteYearlyPrice","getSMBWebsiteMonthlyPrice","orderService","getOrders","response1","ORDER_ACTIONS","GET_ORDERS_COMPLETE","domainName","purchase","basicEmail","isSimulated","contact","CHOOSE_COMPANY","_isEmpty","PRIM_CONTACT","DOMAIN_NAMES","isDomainNamePrivacyEnabled","PURCH_DOMAIN_PRIV","isBasicEmailEnabled","PURCH_EMAIL","EMAIL_ADDRESSES","PRODUCT_CONFIRM","defaultDomainNameData","domainNameData","domainNameKey","defaultPurchaseData","domainNamePrivacy","purchaseData","purchaseKey","getRegisterAccountingFlowId","setBasicEmailAddress","EMAIL_ADDRESS","setBasicEmailAddresses","setBasicEmailAddressModal","setChooseCompany","setDomainNamePrimary","DOMAIN_NAME","setDomainNames","setIsFreeAccount","setPrimaryContact","setProductConfirmation","setPurchaseBasicEmail","setPurchaseDomainNamePrivacy","createDomainNameOrder","createDomainName","getDomainNameYearlyPrice","updateOrder","advance","UPDATE_ORDER","businessEntityService","updateContacts","UPDATE_ORDER_COMPLETE","isFromWebView","WebView","isWebView","setInitialization","SET_INITIALIZATION","useReferrer","SET_APP_ENTRY_POINT","referrer","window","entryPoint","getStateFees","stateCode","GET_STATE_FEES","initializationService","stateFeeResponse","GET_STATE_FEES_COMPLETE","getExpediteFees","GET_EXPEDITE_FEES","expediteFeeResponse","GET_EXPEDITE_FEES_COMPLETE","initializeData","INITIALIZE_PRICING_DATA","GET_ORDERS","message","getOrderTasks","businessEntityUuid","GET_ORDER_TASKS","getOrderTasksByCompany","GET_ORDER_TASKS_COMPLETE","tasksArray","Array","isArray","Object","values","filter","task","order_task_uuid","orderTasks","BUS_EXIST","BUS_DESC","flowItems","shift","unshift","startConfirm","getRegisterEINFlowId","goInFlow","getCompleteEntryPoint","setBusinessDataModal","BUS_DATA_MODAL","setBusinessDescription","setBusinessExist","setContactDataModal","createBLROrder","createBusinessLicense","getBusinessLicensePrice","smbEcommAddon","defaultSMBEcommAddonData","smbEcommAddonData","smbEcommAddonKey","getRegisterSMBEcommAddonFlowId","setWebsiteNotPurchased","WEBSITE_NOT_PURCHASED","isUpgrade","fromEntitled","websiteNotPurchased","selectBrowserUrl","createSMBEcommAddonOrder","createSMBEcommAddon","getSMBEcommAddonYearlyPrice","getSMBEcommAddonMonthlyPrice","getAddressFlow","usePhysicalAsMailing","businessAddresses","PHYS_ADDR","MAIL_ADDR","getPostPrincipalsFlowOrder","forceToMembers","forceToManagers","REG_AGT","CHOOSE_PRIM_CONTACT","LLC_MBR_COUNT","LLC_MGR_OPT","getLLCFlowOrder","manager","managerType","LLC_MBR_LIST","LLC_BUS_RUN","LLC_MGR_COUNT","LLC_MGR_LIST","isOrderCompleteByType","EIN","BUSINESS_LICENSE_REPORT","defaultBusinessAddressesData","usePhysicalAsPrincipal","useMailingAsPrincipal","businessAddressesData","businessAddressesKey","defaultManagerData","managerData","managerKey","forceToPayment","forceToContact","getCompleteNYPubFlowId","getFlows","updateSnapshots","fromBack","getNextUncompletedPage","isDashboard","isDasboard","goToPrimaryContact","goTo","GO_TO_PRIM_CONTACT","setChoosePrimaryContact","forceToDataConfirmation","setLLCBusinessRunners","setLLCManagerCount","setLLCManagerList","setLLCManagerOption","setLLCMemberCount","setLLCMemberList","setMailingAddress","setMailingAddressModal","MAIL_ADDR_MODAL","setPhysicalAddress","setPhysicalAddressModal","PHYS_ADDR_MODAL","setPrimaryContactModal","PRIM_CONTACT_MODAL","setPrincipalAddress","PRIN_ADDR","setRegisteredAgent","setRegisteredAgentModal","REG_AGT_MODAL","setShare","contactType","action","member","director","officer","updateNyPubLLC","getBLRDataFlowOrder","blr","hasEmployees","BUS_AT_HOME","BUS_INDUSTRY","HAS_EMPLOYEES","EMPL_COUNT","HAS_DBAS","existingCompany","getDashboardFlow","START_BLR_DATA","getNewCompanyFlow","START_BUS_DATA","getCorpFlowOrder","CORP_DIR_COUNT","CORP_DIR_LIST","hasAsstSecretary","hasVicePresident","CORP_CHOOSE_PRES","CORP_PRES","CORP_HAS_VP","CORP_CHOOSE_VP","CORP_VP","CORP_CHOOSE_TRSR","CORP_TRSR","CORP_CHOOSE_SEC","CORP_SEC","CORP_HAS_ASST_SEC","CORP_CHOOSE_ASST_SEC","CORP_ASST_SEC","AUTH_SIG","defaultBlrData","skipBlr","blrData","blrKey","addressMatch","addressIsGoogle","defaultOfficerData","officerData","officerKey","forceToDirectors","forceToOfficers","registrationFlow","defaultRegisteredAgentData","forceContact","forcePerson","registeredAgentData","registeredAgentKey","getCompleteWFGFlowId","registeredAgent","forLogin","index1","getPostPurchaseEntryPoint","goToCorpAsstSecretary","GO_TO_CORP_ASST_SEC","goToCorpPresident","GO_TO_CORP_PRES","goToCorpSecretary","GO_TO_CORP_SEC","goToCorpTreasurer","GO_TO_CORP_TRSR","goToCorpVicePresident","GO_TO_CORP_VP","setAddressesModal","ADDR_MODAL","setAuthorizedSignatory","setAuthorizedSignatoryModal","AUTH_SIG_MODAL","setBusinessIndustry","setBusinessOutOfHome","setCorpAsstSecretary","setCorpChooseAsstSecretary","setCorpChoosePresident","setCorpChooseSecretary","setCorpChooseTreasurer","setCorpChooseVicePresident","setCorpDirectorCount","setCorpDirectorList","setCorpDirectorListModal","CORP_DIR_LIST_MODAL","setCorpHasAsstSecretary","setCorpHasVicePresident","setCorpOfficerListModal","CORP_OFF_LIST_MODAL","setCorpPresident","setCorpSecretary","setCorpTreasurer","setCorpVicePresident","setEmployeesCount","setHasDBAs","hasDBAs","setHasEmployees","setLLCManagerListModal","LLC_MGR_LIST_MODAL","setLLCManagerOptionModal","LLC_MGR_OPT_MODAL","setLLCMemberListModal","LLC_MBR_LIST_MODAL","setLicenseDataModal","LIC_DATA_MODAL","setStartBlrData","setStartBusData","blrOrderTaskUuid","handleCatchError","handleUpdateResponse","updateBusinessLicense","updateOrderTaskStatus","setWillMarkOrderCompleted","WILL_MARK_ORDER_COMPLETED","jurisdiction","returnTo","createInitialCPAScreening","getRegisterDomainV2Id","createDomainNameOrderV2","createDomainNameV2","primary","orderUuid","href","dbaEntity","hasEIN","parentType","ein","OWNER_COUNT","OWNERS","STATE_FILING","HAS_EIN","defaultDBAEntityData","domesticEntity","dbaEntityData","dbaEntityKey","getCompleteLLCFlowId","goInFlowOrder","getEINEntryPoint","setAllAddressesModal","setDBAModal","DBA_MODAL","setDomesticEntity","DOM_ENTITY","setEIN","setHasEIN","setOwnerCount","setOwnersModal","OWNER_MODAL","setOwners","setRegistrationModal","REG_MODAL","forward","setStateFiling","updateDBAEntity","emailInPlan","createBasicEmailOrder","createBasicEmail","getBasicEmailYearlyPrice","constructor","actions","this","visit_uuid","getVisitUUID","keys","reduce","current","key","_snakeCase","lead_source","zenIsMobile","frontEndLead","leadUUID","UPDATE_LEAD","lead_phone","phone","lead_email","email","lead_first_name","first_name","lead_last_name","last_name","updateLead","UPDATE_LEAD_COMPLETE","console","setLead","createOrUpdateLead","createAmendmentOrder","fieldInfo","createAmendment","getAmendmentPrice","ORDER_SUBMITTED","formFieldInfo","rules","companyType","isEditable","Boolean","amendment","requiresAmendment","business_purpose","structure","managers","members","directors","officers","addresses","stock_info","authorized_signatory","showWebFileId","showMakesLessThanAmount","annual_report","forEach","fieldKey","makes_less_than_amount","canFileAnnualReport","fieldRules","cardNumber","fetchComplianceEvents","companyInfo","FETCH_JURISDICTION_REQ","FETCH_COMPLIANCE_EVENTS_REQ","getComplianceEvents","_ref","results","FETCH_COMPLIANCE_EVENTS_COMPLETE","upcomingEventDate","event_date","log","fetchJurisdictionInfo","jurisdictionCode","jurisdictionType","amendmentService","getJurisdictionInfo","FETCH_JURISDICTION_COMPLETE","jurisdictionRules","handleDeepLink","allCompanies","businessEntityId","selectedCompany","SET_COMPANY","company","SET_DEFAULT_TAX_PREPARER","taxPreparer","SET_JURISDICTION_TYPE","filingJurisdiction","setSelectOnlyAnnualReport","didSelectOnlyAnnualReport","SET_SELECT_ONLY_ANNUAL_REPORT","setAddWFC","didAddWFC","SET_ADD_WFC","setCompanyToFile","sendToModifyPage","ADVANCE_IN_FLOW","newRouteName","MODIFY_COMPANY","SELECT_JURISDICTION","setPurchaseWFG","isPurchasing","SET_PURCHASE_WFG","setUseCredit","useCredit","creditUUID","hasWFG","SET_USE_CREDIT","setUseARS","hasARS","SET_USE_ARS","setChangingOwnership","changingOwnership","SET_CHANGING_OWNERSHIP","dispatchUpdateField","fieldName","newValue","SET_FIELD","updatedFieldValue","dispatchResetField","RESET_FIELD","updateField","originalValue","hasChanges","updatedContacts","_get","firstName","middleName","lastName","companyName","suffix","phoneNumber","addressLine1","addressLine2","city","state","zipCode","authorizedShares","valuePerShare","addressType","showSelectDomain","SELECT_DOMAIN","setDomainName","arguments","undefined","createDomainNamePrivacyOrder","createDomainNamePrivacy","getDomainNamePrivacyYearlyPrice","CHOOSE_PLAN","CONFIRMATION","defaultEttfRenewalData","ettfRenewalData","ettfRenewalKey","async","paymentResponse","getPaymentMethods","orderTaskMigrationServicesResponse","fintechService","getOrderTaskMigrationServices","lastFour","default_source","defaultSource","sources","find","source","termEndDate","planData","Date","toDateString","MIGRATE_MONEY_PLAN_COMPLETE","migrateMoneyPlan","couponUuid","orderTaskUuid","plan","term","MIGRATE_MONEY_PLAN","createAccountingOrder","createAccounting","accounting","addPaymentMethod","questionsShowFlagMap","ADDITIONAL_QUESTIONS","MAKES_LESS_THAN","showHadGoodStanding","GOOD_STANDING_IN_MD","showHadPersonalProperty","PERSONAL_PROPERTY_IN_MD","showUseProperty","PROPERTY_IN_MD","showMaintainLicense","MAINTAIN_LICENSE","showHadGrossSales","GROSS_SALES_IN_MD","showListGrossSales","LIST_GROSS_SALES","showDidDisposeOfProperty","DISPOSE_OF_PROPERTY","WEB_FILE_ID","showTotalRevenue","TOTAL_REVENUE","showOwnsAnyOtherBusiness","OWNS_ANY_OTHER_BUSINESS","showCompanyDataOwns","COMPANY_DATA_OWNS","showIsOwnedByAnyOtherBusiness","IS_OWNED_BY_ANY_OTHER_BUSINESS","showCompanyDataOwnedBy","COMPANY_DATA_OWNED_BY","showOwnsRealProperty","OWN_PROPERTY","showHasThereBeenATransferOfStock","TRANSFER_OF_STOCK","showHasTransferOfStockBeenOverEqualFiftyPercent","TRANSFER_OF_STOCK_OVER_EQUAL_FIFTY_PERCENT","showHasControllingInterestTransferFiledDepartmentRevenue","HAS_CONTROLLING_INTEREST_TRANSFER_FILED_DEPARTMENT_REVENUE","showHasEnteredIntoContract","HAS_ENTERED_INTO_CONTRACT","showHoldsInterestInAgriculturalLand","INTEREST_AGRICULTURAL_LAND","showIsFamilyFarmLLC","FAMILY_FARM_LLC","showNaicsCode","NAICS_CODE","showNumberOfStateEmployees","NUMBER_OF_STATE_EMPLOYEES","showNumberOfEmployees","NUMBER_OF_EMPLOYEES","showScrapMetalDealer","SCRAP_METAL_DEALER","showCurrentlyExporting","CURRENTLY_EXPORTING","showTopExportMarkets","TOP_EXPORT_MARKETS","showBeInterestedInExporting","BE_INTERESTED_IN_EXPORTING","showIsMinorityOwnedBusiness","IS_MINORITY_OWNED_BUSINESS","showIsWomanOwnedBusiness","IS_WOMAN_OWNED_BUSINESS","showsOwnMoreThanOneBusiness","OWN_MORE_THAN_ONE_BUSINESS","showHowManyBusinesses","HOW_MANY_BUSINESSES","showHowManyCounties","HOW_MANY_COUNTIES","showDoesEmployIndividualsWhoServeInForces","DOES_EMPLOY_INDIVIDUALS_WHO_SERVE_IN_FORCES","showHowManyIndividuals","HOW_MANY_INDIVIDUALS","showDoesOwnerServeInForces","DOES_OWNER_SERVE_IN_FORCES","showGetSupportFromWVSBDC","GET_SUPPORT_FROM_WVSBDC","showIssuedSharesAndGrossAssets","ISSUED_SHARES_AND_GROSS_ASSETS","showWorkerCompensationInsurance","WORKER_COMPENSATION_INSURANCE","showIsBusinessSelfInsured","IS_BUSINESS_SELF_INSURED","showSelfInsuranceDetails","SELF_INSURANCE_DETAILS","showChiefExecutiveOfficer","CHIEF_EXECUTIVE_OFFICER","showBusinessEntityPrincipalAddress","BUSINESS_ENTITY_PRINCIPAL_ADDRESS","showNumberOfDirectorsAndDirectorsAsWomen","NUMBER_OF_DIRECTORS_AND_DIRECTORS_AS_WOMEN","showOwnedUSMilitaryVeteran","OWNED_US_MILITARY_VETERAN","showOwnedUSDisabledMilitaryVeteran","OWNED_US_DISABLED_MILITARY_VETERAN","showNetReceiptsLessThanOneMillion","NET_RECEIPTS_LESS_THAN_ONE_MILLION","showUpToDateStockInformation","UP_TO_DATE_STOCK_INFORMATION","showStockClass","STOCK_CLASS","showStockAdded","STOCK_ADDED","showCorpTransacts","CORP_TRANSACTS","showCorpOwnership","CORP_OWNERSHIP","showIssuedShares","ISSUED_SHARES","showControllingMembers","CONTROLLING_MEMBERS","showControllingMembers1","CONTROLLING_MEMBERS1","showControllingMembers2","CONTROLLING_MEMBERS2","showControllingMembers3","CONTROLLING_MEMBERS3","showControllingMembers3a","CONTROLLING_MEMBERS3a","showControllingMembers3b","CONTROLLING_MEMBERS3b","showControllingMembers3c","CONTROLLING_MEMBERS3c","showBankruptcy","BANKRUPTCY","showIsCombinedGroup","IS_COMBINED_GROUP","showIsCombinedGroupTempLossPreserved","IS_COMBINED_GROUP_TEMP_LOSS_PRESERVED","showIsTieredPartnerRevAdjusted","IS_TIERED_PARTNER_REV_ADJUSTED","showIsPassiveEntityTX","IS_PASSIVE_ENTITY_TX","showIsREITTX","IS_REIT_TX","showIsNewVetOwnedTX","IS_NEW_VET_OWNED_TX","updatedCompanyInfoRestrictions","updatedCompanyInfo","KEYS","HAD_GROSS_SALES","HAS_THERE_BEEN_A_TRANSFER_OF_STOCK","HAS_TRANSFER_OF_STOCK_BEEN_OVER_EQUAL_FIFTY_PERCENT","annualReport","ldFlags","originalCompanyInfo","filingJurisdictionType","hasPurchasedWFC","complianceEventDueDate","businessType","SELECT_COMPANY","_ref3","complianceEventUuid","foundJurisdiction","jurisdictions","_ref4","stateId","isSkip","setForeignJurisdictionStateId","skipForeignStep","SELECT_FOREIGN_JURISDICTION","VALIDATE_COMPANY","additionalQuestions","getAdditionalQuestionsFlow","originalFieldInfo","fieldInfoClone","_cloneDeep","match","modifyQuestionsFlowForMdLlc","txFlowChangesEnabled","flags","_ref2","fieldsToDisable","includes","modifyQuestionsFlowForTx","showFlag","hasToCheckUpdatedCompanyInfo","_ref5","foundQuestionsForWA","str","reportError","Error","metaData","severity","reportMissingAdditionalQuestions","shouldNavigateToAmendment","flag","ADD_AMENDMENT","CONFIRM_CHANGES","ADD_WFC","defaultData","annualReportData","storageKey","fetchComplianceEvent","uuid","FETCH_COMPLIANCE_EVENT_REQ","annualReportService","getComplianceEvent","FETCH_COMPLIANCE_EVENT_COMPLETE","createAnnualReportOrder","createAnnualReport","getAnnualReportPrice","showExportMarkets","had_good_standing","had_personal_property","had_gross_sales","list_gross_sales","own_or_lease_property","requires_license","sold_property","total_revenue","owns_any_other_business","company_data_owns","is_owned_by_any_other_business","company_data_owned_by","owns_real_property","has_there_been_a_transfer_of_stock","has_transfer_of_stock_been_over_equal_fifty_percent","has_controlling_interest_transfer_filed_department_revenue","has_entered_into_any_contract","holds_interest_in_agricultural_land","is_a_family_llc","naics_code","number_of_state_employees","number_of_employees","scrap_metal_dealer","currently_exporting","top_export_markets","be_interested_in_exporting","is_minority_owned_business","is_woman_owned_business","own_more_than_one_business","how_many_businesses","how_many_counties","does_employ_individuals_who_serve_in_forces","how_many_individuals","does_owner_serve_in_forces","get_support_from_WVSBDC","issued_shares_and_gross_assets","worker_compensation_insurance","is_business_self_insured","self_insurance_details","chief_executive_officer","business_entity_principal_address","number_of_directors_and_directors_as_women","owned_us_military_veteran","owned_us_disabled_military_veteran","net_receipts_less_than_one_million","up_to_date_stock_information","what_stock_was_added","up_to_date_corp_information","issued_shares","controlling_members","bankruptcy","is_combined_group","is_combined_group_temp_loss_preserved","is_tiered_partner_rev_adjusted","is_passive_entity_tx","is_reit_tx","is_new_vet_owned_tx","web_file_id","canFileAmendment","allCompaniesItems","filingType","worry_free_service_basic","worryFreeServiceBasicId","worry_free_service_advanced","worryFreeServiceAdvancedId","toLowerCase","goNext","goToModifyCompany","GO_BACK_TO_MODIFY_COMPANY","setAddAmendment","didAddAmendment","SET_ADD_AMENDMENT","setForeignJurisdictionType","SET_FOREIGN_JURISDICTION","SET_FOREIGN_JURISDICTION_STATE_ID","setJurisdictionType","setHasWFG","SET_HAS_WFG","outstandingJudgments","title","ADDITIONAL_QUESTIONS_KEYS","checkEligibility","entityType","CHECK_ELIGIBILITY","HAS_FORMATION_NY_PUB","PUB_COUNTY","items","getRegisterNYPubFlowId","COMP_NYPUB_URLS","setHasFormationNYPub","setPubCounty","setPubCountyModal","PUB_COUNTY_MODAL","createNYPubOrder","createNyPubLLC","getNYPubPrice","paymentData","QUESTIONNAIRE","CONGRATS","getStepsForDBAName","STEPS","DBA_NAME","POST_DBA_NAME","getStepsWhenCompanyStateIsNotSupported","JURISDICTION_NOT_SUPPORTED","getStepsWhenCompanyIsSelected","stepOrder","DBA_IN_SAME_STATE","registerDBAInSameState","FORM_IN_HOME_STATE","formInHomeState","BEFORE_CART","CART","POST_FORM_IN_HOME_STATE","getFlowToRegisterBusinessAndDBA","isNewAccount","ACCOWN_FIRST_NAME","INIT_REQ_JUR","POST_REQ_JUR","isInitialJurSupported","CHECK_OTHER_JURS","checkOtherDomJurs","REQ_JUR_NO_CHECK","JURS_ZB_SUPPORT","BUS_TYPES","NOT_FORMED_YET","BUS_TYPE_NOT_FORMED","BUS_TYPE_FORM_WITH_ZB","POST_BUS_TYPE","isTypeSupported","HOME_STATE","homeState","DOMESTIC_JUR","DOMESTIC_JUR_CONFIRMATION","confirmDomesticJurisdiction","POST_DOMESTIC_JUR_CONFIRMATION","CHECKPOINT","saveData","ACCOWN_LAST_NAME","ACCOWN_EMAIL","ACCOWN_PHONE","START_UPSELLS","PURCH_WEBSITE","PURCH_EIN","getStepsFlow","steps","WELCOME","DBA","simulatedCompanyId","getFlowForFreeDashboardUser","useCompanyConfirmation","BUS_USAGE_CONFIRM","confirmCompanyUsage","loggedInUserNumberOfBusinesses","BUS_SELECTION","loggedInBusSelection","BUS_SELECTION_VALUE_OPTIONS","NEW","EXISTING","isCompanyStateSupported","getFlowWhenCompanyIdIsInUrl","getDefaultFlowForLoggedInUser","getFlowForLoggedInUser","getFlowForNewAccount","defaultDbaEntityData","requestedJurisdiction","isRegisteringABusiness","dbaKey","getRegistrationFlowId","getStepOrder","getNoScrollSteps","getStepIndex","step","order","getNextStep","resetStep","requestedStepIndex","currentStepIndex","nextStep","setGlobalProgressBar","urlGoTo","COMPLETE_DBA_URLS","dispatchNextStep","NEXT_STEP","setStep","includeStepInDispatch","cartUpdate","customerSnapshotData","customerKey","LeadManager","searchstate","selectedState","entityName","businessName","purchase_flow","setAccountOwnerEmail","setAccountOwnerFirstName","setAccountOwnerLastName","setAccountOwnerPhone","move","theRest","fromCart","setFormWithZB","formWithZB","setHomeState","setFormInHomeState","setDomesticJurisdictionConfirmation","setBusinessIsRegistered","businessIsRegistered","BUS_REGISTERED","setCompanyHasForeignQualification","companyHasForeignQualification","BUS_HAS_FOREIGN_QUALIFICATION","setCompanyUsageConfirmation","setCheckOtherJurisdictions","setBusinessSelection","setRegisterDBAInSameState","setStaticWebsite","setPurchaseEIN","setBusinessTypeAndName","BUS_TYPE_NAME_CART","setCart","setCheckpoint","setCreateOrder","FLOW_COMPLETE","setInitJurisdiction","setRequestedJurisdiction","REQ_JUR","checkIfDomJurIsSupported","domJur","DBA_IGNORE_STATES","initJurDom","skipInititialDomJur","setNextStep","therest","PRE_NEXT_STEP","setDBAName","setPricing","PRICES","takeUserToExternalLinks","status","WEBSITE_URLS","PRICING","setDBA","setSpecificStep","setWelcome","createDBAOrder","creationMethod","getDBAEntityPrice","resetData","RESET_DATA","mailingAddressRequired","physicalAddressRequired","getEINFromRegistrationFlow","hasTwo","llcMarried","motorVehicle","responsibleParty","hasSSN","employeesW2","collectDataFromUser","START_EIN","CORP_TAXED","LLC_ARE_MARRIED","LLC_MARRIED_TAXED","CHOOSE_RESP","HAS_SSN","NO_SSN","RESP_INFO","DBA_NAMES","CORP_INFO","BUS_QUEST_START","GAMBLING","ATF","HAS_EMPL_W2","EMPL_W2","VEHICLE","VEHICLE_WEIGHT","BUS_720","BUS_ACT","getEINFromRegisterEINFlow","EIN_REASON","RESP_PARTY","defaultEINData","principalAddressRequired","hasDBA","memberCount","skipEIN","einData","einKey","defaultMemberData","memberData","memberKey","getCompleteEINFlowId","getDBAEntityEntryPoint","getCorpEntryPoint","getLLCEntryPoint","getDBACompleteEntryPoint","setATF","setBusinessActivity","setBusinessForm720","setBusinessQuestionsStart","setChooseResponsible","setCorpInfo","setCorpTaxed","dataConfirm","DATA_DBA_CONFIRM","setEINReason","setEmployeesW2","setHasEmployeesW2","setGambling","setHasSSN","setLLCAreMarried","setLLCMarriedTaxed","setMotorVehicle","setMotorVehicleWeight","setNoSSN","setResponsibleInfo","setResponsibleParty","setStartEIN","setDBAs","setBusinessData","BUS_DATA","setCorpData","CORP_DATA","setEINData","EIN_DATA","setMemberData","MBR_DATA","setResponsibleData","RESP_DATA","setEstimatedFormationDate","EST_DATE","einOrderTaskUuid","subStatus","skip","SKIP_EIN","setSkipEIN","expediteFees","serviceEndpoint","getServiceEndpoint","ACC_OWN_INFO","skipBusinessName","skipDomesticJurisdiction","getRegisterNameresFlowId","entity_name_reservation","getInitStateFees","setAccountOwnerInformation","initialFlowOrder","createNameResOrder","getNameResPrice","zbBankingPreferredData","zbBankingPreferredKey","zbBankingPreferred","BANKING_BASE","createZbBankingPreferredOrder","createZbBankingPreferred","getZbBankingPreferredMonthlyPrice","emailUserName","emailSkip","createOnlineToolsOrder","createWebsiteToolsBundle","getWebsiteToolsBundleYearlyPrice","goToNextCompletion","completedUrl","completedActionIndex","postpurchaseGoToNextUncompletedPage","blrGoToNextUncompletedPage","dbaGoToNextUncompletedPage","nypubGoToNextUncompletedPage","setStartCompleteCoRA","coraGoToNextUncompletedPage","wfgGoToNextUncompletedPage","einGoToNextUncompletedPage","corpGoToNextUncompletedPage","llcGoToNextUncompletedPage","goToNextRegOrComplete","skipLoginCheck","loggedIn","forceBus","regGoToNextUncompletedPage","regEinGoToNextUncompletedPage","regBLRGoToNextUncompletedPage","regNameResGoToNextUncompletedPage","regNYPubGoToNextUncompletedPage","regWFGGoToNextUncompletedPage","regCoRAPFGoToNextUncompletedPage","smbWebsiteEcomm","defaultSMBWebsiteEcommData","smbWebsiteEcommData","smbWebsiteEcommKey","getRegisterSMBWebsiteEcommFlowId","createSMBWebsiteEcommOrder","createSMBWebsiteEcomm","getSMBWebsiteEcommYearlyPrice","getSMBWebsiteEcommMonthlyPrice","isExpenseTrackingWithTaxFilingEnabled","setProgressBar","currentStep","setReducerProgressBar","defaultETNTFData","ETNTFData","ETNTFKey","resetReducerProgressBar","resetProgressBar","createETNTF","createExpenseTrackerNTaxFiling","expenseTrackerNTaxFiling","getCompanies","GET_COMPANIES","companyService","GET_COMPANIES_COMPLETE","getAccountHasZBMoneyProSubscription","hasZBMoneyProSubscription","GET_ACCOUNT_HAS_ZB_MONEY_PRO","getAccount","GET_ACCOUNT","get","processLogIn","initPayload","setVisit","partner","getPartner","entry_point_group","getEntryPointGroup","initialize","responseInit","GET_ACCOUNT_COMPLETE","GET_PAYMENT_METHODS","GET_PAYMENT_METHODS_COMPLETE","ADD_PAYMENT_METHOD","setPaymentMethodDefault","SET_PAYMENT_METHOD_DEFAULT","SET_PAYMENT_METHOD_DEFAULT_COMPLETE","setLogout","SET_LOGOUT","REG_ACTIONS","resetAllData","resetAllAccountData","logout","planLevel","getPlanPurchaseFlow","initialization","bankingResolutionAddOn","bankingResolutionUpsellSkip","basicEmailAddOn","basicEmailUpsellSkip","corporateDocsAddOn","corporateDocsUpsellSkip","domainNameAddOn","domainNameUpsellSkip","domainNamePrivacyAddOn","domainNamePrivacyUpsellSkip","einAddOn","einUpsellSkip","expediteAddOn","expediteUpsellSkip","nyPublicationAddOn","nyPublicationUpsellSkip","operatingAgreementAddOn","operatingAgreementUpsellSkip","staticWebsiteAddOn","staticWebsiteUpsellSkip","worryFreeAddOn","worryFreeUpsellSkip","isStateClosed","standard","delayed","addStaticWebsiteToflow","isStaticWebsiteEnabled","isUpsellEnabled","isRAOfferEnabled","PURCH_RAS","PURCH_EXP","isEINEnabled","isWFGEnabled","PURCH_WF","isOpAgreementEnabled","PURCH_OP_AGREE","isBankingResolutionEnabled","PURCH_BANK_RES","isCorporateDocsEnabled","PURCH_CORP_DOCS","isNYPubEnabled","isNYPubUpsellEnabled","PURCH_NYPUB","PUB_COUNTY_NY","isDomainNameEnabled","PURCH_DOMAIN","isAutoIncludedInPlan","getPlanLevel","getPurchaseFlow","PURCH_START","getPaymentFlow","getSCorpQuestionFlow","hasSCorp","scorpAllUSOwners","scorpOperateLoss","scorpPaySalary","SCORP_ALL_US_OWNERS","SCORP_LOSS","SCORP_SALARY","SCORP_INVESTORS","skipPlansPage","skipToDomesticJurisdiction","fromBNG","BUS_NAME_CONFIRM","PURCH_PLAN","_concat","noIdMatches","defaultInitializationData","scorpOutsideInvestors","forceToRegisteredAgent","registeredAgentService","initializationKey","makeUrlMovement","movement","useLocation","executeMovement","urlMovement","urlsSet","CORP_URLS","LLC_URLS","START_COMP","clickEvent","getPageDetails","parseUrl","doReset","getArrowClickDetails","getInitExpediteFees","getButtonClickDetails","reset","setBusinessNameConfirm","setBusinessNameModal","BUS_NAME_MODAL","setBusinessTypeModal","BUS_TYPE_MODAL","fromHomePage","setDomesticJurisdictionModal","DOM_JUR_MODAL","setFormationCounty","FORM_COUNTY","setInfoConfirmation","forceToPrivacy","getClickDetails","setPrincipalAddressModal","PRIN_ADDR_MODAL","setPurchaseBankingResolution","boolAsStr","parseBoolToString","bankingResolution","setPurchaseCorporateDocs","corporateDocs","setPurchaseDomainName","boolAsString","setPurchaseExp","expedite","setPurchaseNYPub","nyPublication","setPurchaseOperatingAgreement","operatingAgreement","setPurchaseRAS","setPurchasePlan","privacyAddOn","privacyUpsellSkip","pricingProductLandingPageUrl","levelMap","PLAN_LEVEL_MAP","setPurchaseStart","setPurchaseStaticWebsite","staticWebsite","setPurchaseWorryFree","setSCorpAllUSOwners","setSCorpOutsideInvestors","scorpInvestors","setSCorpOperateLoss","setSCorpPaySalary","setStateRequirements","STATE_REQ","isPF","pd","createFormationOrder","serviceMethod","formationOrder","setContactData","setRegisteredAgentData","RA_DATA","setCompanyDetails","EDIT_CHECKOUT","CHOOSE_STATE","defaultFlowData","flowData","goodStandingKey","getRegisterGSFlowId","goToChooseCompany","GO_TO_CHOOSE_COMPANY","goToChooseState","GO_TO_CHOOSE_STATE","setChooseState","createGSOrder","createGoodStanding","getGoodStandingPrice","goodStanding","privacy","setReturnEIN","setReturnWFG","setReturnAccounting","setReturnDBAEntity","setReturnGS","setReturnNYPub","membersSnap","directorsSnap","directorKey","description","county","country","mailingAddressLine1","mailingAddressLine2","mailingCity","mailingCounty","mailingState","mailingCountry","mailingZipCode","owners","_map","owner","percent","percentFloat","accountOwner","setInitEIN","setInitWFG","setInitAccounting","setInitDBAEntity","setInitGS","setInitNYPub","setInitStockSetup","setPurchaseRegisteredAgent","forceCompany","PURCH_REG_AGT","createRAOrder","getRegisteredAgentServicePrice","registered_agent_service","updateBusiness","UPDATE_BUSINESS","update","UPDATE_BUSINESS_COMPLETE","_find","DOM_JURS","option","value","domesticJurisdictionName","label","businessAlreadyUpdated","postpurchase","feedbackSource","purchaseBLR","purchaseRA","purchaseBOF","purchaseBusinessKit","purchaseFFD","purchaseCD","purchaseWFGIR","purchaseDBAEntity","purchaseVBA","purchaseVanityProduct","showCD","purchaseBankOfAmericaOffer","purchaseZBMPro","purchaseZbBankingPreferredOffer","purchaseTaxAdviceBizTaxPrep","purchaseTaxAdvice","hasPurchasedBankingPreferred","wfgirData","wfg_initial_report","showWFGIR","stackedFlowItems","vanityProduct","getPostPurchaseVanityProduct","potentialAfterPaymentUrls","VANITY_PRODUCT_NOTICE","el","vanityForward","isFutureFileDateEnabled","PURCHASE_FFD","FUTURE_FILING_DATE","bofTestVariant","getBOFTestVariant","taxTestVariant","getTaxTestVariant","PURCHASE_BOF","PURCHASE_TAX_ADVICE_BUNDLE","isBusinessKitEnabled","PURCHASE_BUSINESSKIT","isBusinessLicenseEnabled","blrItems","getBLRFlow","purchaseEIN","PURCHASE_BLR","BLR_START","BLR_BUS_AT_HOME","BLR_BUS_INDUSTRY","BLR_HAS_EMPLOYEES","BLR_EMPL_COUNT","BLR_HAS_DBAS","BLR_DATA_CONFIRM","PURCHASE_BANKING_OFFER","PURCHASE_CD","isWFGInitialReportEnabled","PURCHASE_WFGIR","splice","flowPosition","VANITY_PRODUCT_OFFER","PURCHASE_FEEDBACK","_some","MARK_COMPLETE","_flattenDeep","initializationData","skipBLR","leadData","leadKey","defaultPostpurchaseData","bofOngoing","purchaseExpenseTrackerAndTaxFiling","taxAdviceMonthly","taxAdviceBizTaxPrepMonthly","showZBMPro","flowType","postpurchaseData","postpurchaseKey","feedbackData","feedbackKey","feedbackOther","getBackUrl","lastToBack","setBLRBusinessIndustry","setBLRBusinessOutOfHome","setBLRDataConfirmation","setBLREmployeesCount","setBLRHasDBAs","setBLRHasEmployees","setBLRLicenseDataModal","BLR_LIC_DATA_MODAL","setBLRStart","setPurchaseBLR","setPurchaseRA","PURCHASE_RA","BLR_SKIP","setSkipBLR","ffdURL","setPurchaseBOF","setPurchaseBusinessKit","setPurchaseFFD","setBankOfAmericaOffer","PURCHASE_BOA_OFFER","setPurchaseCD","setPurchaseWFGIR","setPurchaseTaxAdviceBundle","setFeedback","leadSourceData","industry","removeIndustry","how_did_you_hear_about_us","how_did_you_hear_about_us_other","lead_uuid","setFutureFilingDate","setFFDDataModal","FFD_DATA_MODAL","setPurchaseVanityProduct","setMarkComplete","setPaymentComplete","PAYMENT_COMPLETE","PURCHASE_SUCCESS","createPostPurchaseOrder","ldClient","vanityLegalPurchased","needsBOFStandalone","createPostPurchase","createPostPurchaseBOF","track","err2","CREATE_ORDER_BOF_FAILED","DBA_IGNORE_STATES_WITH_DELAWARE","AZ","CA","CT","DE","FL","NE","NY","PA","WY","HAS_MORE_THAN_ONE_SHARE_STATES","isVmaJurisdiction","PURCHASE_VBA","getDBAEntityFlow","PURCHASE_DBA_ENTITY","DBA_ENTITIES","PURCHASE_DBA_COMPLIANCE","isDBAEntityEnabled","isDBAComplianceEnabled","getRegisteredAgentFlow","PURCHASE_REGISTERED_AGENT","getHasMoreThanOneShareFlow","HAS_MORE_THAN_ONE_SHARE","NEW_CORP_STOCK_FEES_CALCULATOR","hasVariableFee","sharesCollected","feePaid","corpStockFlow","stockTotalAdjusted","stockSetup","adjustedFee","Number","feeOwed","isFinite","STOCK_CHECKOUT","CORP_STOCK_CALCULATED","CORP_STOCK","featureFlags","features","DIR_COUNT","DIR_LIST","CHOOSE_PRES","PRES","HAS_VP","CHOOSE_VP","VP","CHOOSE_TRSR","TRSR","CHOOSE_SEC","SEC","HAS_ASST_SEC","CHOOSE_ASST_SEC","ASST_SEC","activeLdFlags","defaultCorpStockFlowData","corpStockFlowData","corpStockFlowKey","defaultStockSetupData","stockSetupData","stockSetupKey","getCompleteCorpFlowId","disableEIN","markStockFeePaid","SET_CORP_STOCK_FLOW","hasValue","val","initCorpStockFlow","Promise","resolve","probe","corpStockService","getVariableFeeExistence","result","fallback","CORP_STOCK_FEE_STATES","tasks","formation","order_task_type","orderTaskData","order_task_data","authorized_shares","state_fees","all","GO_NEXT","setStockFee","feeResponse","SET_STOCK_FEE","submitCorpStockCalculated","params","netTotal","owedNow","isZeroFee","SUBMIT_CORP_STOCK_CALCULATED","patchOrderTaskData","par_value","addFeeCorpCalculator","account_uuid","fee_amount","reject","submitCorpStock","orderTask","submitStockCheckout","feeAmount","payment","SUBMIT_STOCK_CHECKOUT","conflict","kind","setAsstSecretary","goToAsstSecretary","GO_TO_ASST_SEC","setChooseAsstSecretary","setChoosePresident","setChooseSecretary","setChooseTreasurer","setChooseVicePresident","setCorpStock","setHasMoreThanOneShare","setDBAEntities","setDirectorCount","REG_AGENT","setDirectorList","setHasAsstSecretary","setHasVicePresident","setPresident","goToPresident","GO_TO_PRES","setPurchaseDBACompliance","setPurchaseDBAEntity","setPurchaseVBA","setSecretary","goToSecretary","GO_TO_SEC","setStartComplete","setTreasurer","goToTreasurer","GO_TO_TRSR","setVicePresident","goToVicePresident","GO_TO_VP","updateCorp","defaultTaxServicesData","taxServicesData","taxServicesKey","taxServices","redirectToDashboard","COMPLETE_RETURN_TO_DASH","redirectToTaxServices","createTaxServicesOrder","createTaxServices","defaultZBMProData","zbmProData","zbmProKey","zbmPro","COMPLETE_LINK_WITH_PLAID","redirectToMoneyDashboard","COMPLETE_RETURN_TO_MONEY_DASH","createZBMProOrder","createZBMPro","getZBMProMonthlyPrice","createWFGIROrder","createWFGInitialReport","getWFGInitialReportPrice","wfgir","defaultBoiData","boiData","boiKey","getBeneficialOwnershipFilingId","businessKit","createBeneficialOwnershipFilingOrder","isOngoing","isMod","hasOngoing","createBeneficialOwnershipFiling","getBeneficialOwnershipFilingPrice","ongoingPrice","getOngoingBofCompliancePrice","bofModPrice","getBofModificationPrice","ongoingAddlData","bofModAddlData","beneficialOwnershipFiling","flowOrderItem","test","createBusiness","CREATE_BUSINESS","create","CREATE_BUSINESS_COMPLETE","businessAlreadyCreated","cora","jurisdictionOrder","hasElectiveCEO","pendingStates","needsContact","needsCoraContacts","jurisdictionOrderCount","OFF_STATE_CONTACT","CHOOSE_OFF_STATE_CONTACT","CHOOSE_SOP_CONTACT","SOP_CONTACT","i","HAS_ELECTIVE_CEO","CHOOSE_ELECTIVE_CEO","ELECTIVE_CEO","needsPrincipals","hasFormation","needsBusinessData","needsBusinessIndustry","needsDomesticJurisdictionData","needsAddresses","needsPrincipalAddress","defaultCoraData","requestedJurisdictions","needsPrincipalAddresses","coraData","coraKey","goToElectiveCEO","GO_TO_ELECTIVE_CEO","goToOfficialStateContact","GO_TO_OFF_STATE_CONTACT","goToSOPContact","GO_TO_SOP_CONTACT","setBusinessDescriptionModal","BUS_DESC_MODAL","setBusinessInfoModal","BUS_INFO_MODAL","setChooseElectiveCEO","setChooseOfficialStateContact","setChooseSOPContact","_filter","reqJur","sort","a","b","setElectiveCEO","setElectiveCEOModal","ELECTIVE_CEO_MODAL","setHasElectiveCEO","setOfficialStateContact","setOfficialStateContactModal","OFF_STATE_CONTACT_MODAL","setSOPContact","setSOPContactModal","SOP_CONTACT_MODAL","setStateFilingModal","STATE_FILING_MODAL","updateCoRA","corpDocs","defaultCorpDocsData","corpDocsData","corpDocsKey","createCorpDocsOrder","createCorpDocs","getCorporateDocsPrice","NO_COMPANY","COMP_EIN_URLS","setNoCompany","createEINOrder","getEINPrice","leadUuid","isDAO","daoMemberManaged","showMemberOptions","_compact","MBR_COUNT","MBR_LIST","MGR_OPT","BUS_RUN","MGR_COUNT","MGR_LIST","CA_DOL","executeUrlMovement","setBusinessRunners","SET_BUS_RUN","setManagerCount","setManagerList","SET_MGR_LIST","setManagerOption","SET_MGR_OPT","setMemberList","SET_MBR_LIST","setMemberCount","SET_REG_AGENT","goToMemberCount","GO_TO_MBR_COUNT","goToManagerSelect","setShareNewLLC","updateLLC","smbWebsiteOrEcomm","CHOOSE_PACKAGE","defaultSMBWebsiteOrEcommData","smbWebsiteOrEcommData","smbWebsiteOrEcommKey","getRegisterSMBWebsiteOrEcommFlowId","_clickDetails","pageCategory","pageSection","elementName","setChoosePackage","chooseEcomm","hasDemoStore","createSMBWebsiteOrEcommOrder","createSMBWebsiteOrEcomm","redirectToWebAssemblyForm","WebAssemblyFormUrl","CHECK_BOF_SUBSCRIPTION","defaultBusinessKitData","businessKitData","businessKitKey","getRegisterBusinessKitFlowId","createBusinessKitOrder","createBusinessKit","getBusinessKitPrice","EMAILS","emailKey","getRegisterEmailV2Id","createEmailV2","createEmail","emailAddresses","encodeURIComponent","getStepOrderMobileMVP","busDetailsLocked","requestedJurisdictionCount","foreignQualFiling","foreignRegistration","selfFile","REQ_JURS","FOREIGN_REG","FOREIGN_QUAL_FILING","HOW_TO_FILE","RETURN_TO_LANDING","CHOOSE_HAS_FORMATION","PLAN","getExistingBusinessStepOrder","domJurNotReqJurs","formWithZen","HAS_FORMATION","FORM_WITH_ZEN","GO_TO_FORMATION","UPSELL_DOM_JUR","CHOOSE_DOM_JUR","getNewBusinessStepOrder","getStepOrderMobileMaxLTV","variantMap","VARIANTS","MVP","mobile","desktop","MAX_LTV","noScrollingMap","needsFormation","businessTypeOnParam","formationOnParam","idOnParam","requestedJurisdictionOnParam","variant","getTestVariant","device","flowFunction","noScrollingSteps","COMPLETE_CORA_URLS","d","resettingBackToStep","isResettingBackToStep","requestedStep","previousStep","previousStepIndex","RESET_ACTION_ERROR","resetActionError","snapshotData","setChooseDomesticJurisdiction","setChooseHasFormation","setForeignQualFiling","setForeignRegistration","setFormWithZen","setHasFormation","setHowToFile","requestedJurisdictionsOnParam","requestedJurisdictionsCount","setPlan","setRequestedJurisdictions","setRegAgent","setRegisteredStatesFromCart","REG_STATES_FROM_CART","setReturnToLanding","setUnregisteredStatesFromCart","UNREG_STATES_FROM_CART","setUpsellDomJur","upsellDomJur","defaultLogoKitData","logoKitData","logoKitKey","getRegisterLogoKitFlowId","logoKit","fromUpgrade","createLogoKitOrder","createLogoKit","getLogoKitPrice","RESULTS","GREAT_NEWS","BUS_NAME_REDIRECT","getBusinessNameGeneratorFlowId","dotComReg","wordsRegex","SPECIAL_CHARACTERS","applyPeculiarities","peculiarities","transformedName","pec","searchableWord","charAfterWord","trimSearchableWord","_capitalize","_trim","processDomains","words","domainInfo","domain","map","mapDomainsToNames","keywords","nameRegEx","RegExp","join","domainIncludesHyphen","split","word","LANDING_PAGE","getDomainSuggestions","SEARCH_BUSINESS_NAMES","searchKey","searchBy","keySearch","filteredChars","char","specialWord","getPeculiarities","domainNameService","suggest","lookup","suggestion","matches","mappedSuggestions","suggestions","rawSuggestions","totalPages","Math","ceil","slice","getSuggestions","SEARCH_BUSINESS_NAMES_COMPLETE","matched","setBusinessInformation","SEL_BUS_NAME_SUGGES","STEP_1","STEP_2","STEP_3","hasExistingBusiness","HAS_EX_BUS","setCompleteStep1","setCompleteStep2","setCompleteStep3","setHasExistingBusiness","createAccount","CREATE_ACCOUNT","CREATE_ACCOUNT_COMPLETE","accountAlreadyCreated","getRegisterStockSetupFlowId","getStockFeeTotal","newData","createStockSetupOrder","stockInfo","corpFormationId","updateStockSetup","WORRY_FREE","NAME_RESERVATION","updateWFG","defaultOperatingAgreementData","operatingAgreementData","operatingAgreementKey","createOperatingAgreementOrder","createOperatingAgreement","getOpAgreementPrice"],"sourceRoot":""}