{"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/register_zbm_plaid/flows/default.js","webpack://zenbusiness.com/./src/client/actions/register_zbm_plaid/flows/index.js","webpack://zenbusiness.com/./src/client/actions/register_zbm_plaid/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    const tasksArray = Object.values(response);\n    if (response.length > 0) {\n      dispatch({\n        type: ACTIONS.GET_ORDER_TASKS_COMPLETE,\n        payload: { orderTasks: response }\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, URLS.SHARE, URLS.COMPLETE);\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    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  /* 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 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, registrationFlow: 'bl' });\n      } else if (registrationFlow === 'ein') {\n        setInitEIN(dispatch, { companyId: 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 {\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);\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 = () => {\n  go(1);\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 = () => {\n  go(1);\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 { URLS } from '../../../constants/register_zbm_plaid';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = () => {\n    return [ URLS.LINK_PLAID ];\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 as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_zbm_plaid';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as ZBMPlaidKey } from '../../reducers/registration/zbmPlaid';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, fintechService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { trackClick, trackEvent } from '../../utils/ThirdPartyTracking';\n\nconst\n  defaultZBMPlaidData = { companyId: '' },\n  ZBMPlaidData = getReducerSnapshot(ZBMPlaidKey, defaultZBMPlaidData),\n  getFlowOrder = (url) => {\n    const registration = {\n      zbmPlaid: ZBMPlaidData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (ZBMPlaidData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${ZBMPlaidData.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      browserHistory.goBack();\n    } else if (jumpIndex >= flowOrder.length) {\n      const plaidFrom = window.localStorage.getItem('plaidFrom');\n      const page = plaidFrom === 'incomeDash' ? 'income' : 'expenses';\n      document.location = `${getCompanyUrl()}/money/${page}`;\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(defaultZBMPlaidData, ZBMPlaidData);\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 storePublicTokens = (dispatch, data, moveUrl = false) => {\n  set(dispatch, data, ACTIONS.SET_PLAID_PUBLIC_TOKENS, moveUrl);\n};\n\nexport const createHurdrlrOrder = (dispatch, data) => {\n  storePublicTokens(dispatch, data);\n  set(dispatch, data, ACTIONS.CREATE_HURDLR_ORDER, false);\n};\n\nexport const successLinking = (dispatch) => {\n  go(1, dispatch);\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(ZBMPlaidData, { companyId });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(getEntryPoint());\n};\n\n\nexport const getPlaidLinkToken = (dispatch, plaidConfigLink, useFinancialAccountsV2) => {\n  logger.logAction(ACTIONS.GET_PLAID_LINK_TOKEN);\n  dispatch({\n    type: ACTIONS.GET_PLAID_LINK_TOKEN\n  });\n  accountService.getPlaidLinkToken(plaidConfigLink, useFinancialAccountsV2).then((response) => {\n    const { linkToken } = response;\n    logger.logAction(ACTIONS.GET_PLAID_LINK_TOKEN_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.GET_PLAID_LINK_TOKEN_COMPLETE,\n      payload: {\n        data: {\n          linkToken\n        }\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_PLAID_LINK_TOKEN_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_PLAID_LINK_TOKEN_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\nconst createZBMPlaidOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createZBMPlaid(reducerData, accountId, filingFees).then((response) => {\n    trackEvent('Purchase', 'complete', 'zbm_plaid');\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  createZBMPlaidOrder(dispatch, reducerData, accountId, filingFees);\n};\n\n\nexport const getHurdlrSubscriptionTier = (dispatch) => {\n  logger.logAction(ACTIONS.GET_HURDLR_SUBSCRIPTION_TIER);\n  dispatch({\n    type: ACTIONS.GET_HURDLR_SUBSCRIPTION_TIER\n  });\n  fintechService.getHurdlrSubscriptionTier().then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.GET_HURDLR_SUBSCRIPTION_TIER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.GET_HURDLR_SUBSCRIPTION_TIER_COMPLETE,\n      payload: {\n        data\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_HURDLR_SUBSCRIPTION_TIER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_HURDLR_SUBSCRIPTION_TIER_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 setPlaidHurdlrLink = (dispatch, payload) => {\n  logger.logAction(ACTIONS.SET_PLAID_HURDLR_LINK);\n  dispatch({\n    type: ACTIONS.SET_PLAID_HURDLR_LINK\n  });\n  fintechService.setPlaidHurdlrLink(payload).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.SET_PLAID_HURDLR_LINK_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.SET_PLAID_HURDLR_LINK_COMPLETE,\n      payload: {\n        data\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.SET_PLAID_HURDLR_LINK_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.SET_PLAID_HURDLR_LINK_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 syncPlaidAccounts = (dispatch, payload) => {\n  logger.logAction(ACTIONS.SYNC_PLAID_ACCOUNTS);\n  dispatch({\n    type: ACTIONS.SYNC_PLAID_ACCOUNTS\n  });\n  fintechService.syncPlaidAccounts(payload).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.SYNC_PLAID_ACCOUNTS_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.SYNC_PLAID_ACCOUNTS_COMPLETE,\n      payload: {\n        data\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.SYNC_PLAID_ACCOUNTS_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.SYNC_PLAID_ACCOUNTS_COMPLETE,\n      error: true,\n      payload: {\n        error: err?.error || 'Server Error',\n        errorCode: err?.errorCode || 500\n      }\n    });\n  });\n};\n\nexport const resetPlaidLink = (dispatch, params) => {\n  logger.logAction(ACTIONS.RESET_PLAID_LINK);\n  dispatch({\n    type: ACTIONS.RESET_PLAID_LINK\n  });\n  fintechService.resetPlaidLink(params).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.RESET_PLAID_LINK_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.RESET_PLAID_LINK_COMPLETE,\n      payload: {\n        data\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.RESET_PLAID_LINK_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.RESET_PLAID_LINK_COMPLETE,\n      error: true,\n      payload: {\n        error: err?.error || 'Server Error',\n        errorCode: err?.errorCode || 500\n      }\n    });\n  });\n};\n\nexport const plaidLinkRelink = (dispatch, payload) => {\n  logger.logAction(ACTIONS.PLAID_RELINK_LINK);\n  dispatch({\n    type: ACTIONS.PLAID_RELINK_LINK\n  });\n  fintechService.plaidLinkRelink(payload).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.PLAID_RELINK_LINK_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.PLAID_RELINK_LINK_COMPLETE,\n      payload: {\n        data\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.PLAID_RELINK_LINK_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.PLAID_RELINK_LINK_COMPLETE,\n      error: true,\n      payload: {\n        error: err?.error || 'Server Error',\n        errorCode: err?.errorCode ||  500\n      }\n    });\n  });\n};\n\nexport const 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 - Link Plaid Account'\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\nexport default {\n  getEntryPoint,\n  goBack,\n  setInit,\n  storePublicTokens,\n  resetAllData,\n  getPlaidLinkToken\n};\n","import _assign from 'lodash/assign';\nimport { URLS } 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 (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    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 } from '../../constants/complete_corp';\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 officerKey } from '../../reducers/registration/officers';\nimport { storageKey as postpurchaseKey } from '../../reducers/registration/postpurchase';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { registrationService } from '../../services';\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\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\n  getFlowOrder = (url, ldFlags) => {\n    const\n      registration = {\n        business: businessData,\n        businessAddresses: businessAddressesData,\n        domainName: domainNameData,\n        officer: officerData,\n        postpurchase: postpurchaseData,\n        purchase: purchaseData\n      },\n      flow = getFlow(url, registration, ldFlags);\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  };\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 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  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 { URLS as ZBM_PLAID_URLS } from '../../constants/register_zbm_plaid';\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    trackClickEvent(`${ZBM_PLAID_URLS.BASE}/${ZBM_PLAID_URLS.INIT}`, 'Link account', 'true');\n    set(dispatch, {}, ACTIONS.COMPLETE_LINK_WITH_PLAID, data.redirect);\n    document.location = `/${ZBM_PLAID_URLS.BASE}/${ZBM_PLAID_URLS.INIT}?companyId=${zbmProData.companyId}`;\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\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\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    currentStep = getNextStep(step, resetStep);\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  },\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.PAYMEHT, 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, false);\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 resetActionError = (dispatch) => {\n  logger.logAction(ACTIONS.RESET_ACTION_ERROR);\n  dispatch({\n    type: ACTIONS.RESET_ACTION_ERROR\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","Object","values","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","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","filter","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","LINK_PLAID","defaultZBMPlaidData","ZBMPlaidData","ZBMPlaidKey","localStorage","getItem","storePublicTokens","SET_PLAID_PUBLIC_TOKENS","successLinking","getPlaidLinkToken","plaidConfigLink","useFinancialAccountsV2","GET_PLAID_LINK_TOKEN","linkToken","GET_PLAID_LINK_TOKEN_COMPLETE","getHurdlrSubscriptionTier","GET_HURDLR_SUBSCRIPTION_TIER","GET_HURDLR_SUBSCRIPTION_TIER_COMPLETE","setPlaidHurdlrLink","SET_PLAID_HURDLR_LINK","SET_PLAID_HURDLR_LINK_COMPLETE","syncPlaidAccounts","SYNC_PLAID_ACCOUNTS","SYNC_PLAID_ACCOUNTS_COMPLETE","resetPlaidLink","params","RESET_PLAID_LINK","RESET_PLAID_LINK_COMPLETE","plaidLinkRelink","PLAID_RELINK_LINK","PLAID_RELINK_LINK_COMPLETE","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","featureFlags","features","stockSetup","CORP_STOCK","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","getCompleteCorpFlowId","disableEIN","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","ZBM_PLAID_URLS","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","snapshotData","setChooseDomesticJurisdiction","setChooseHasFormation","setForeignQualFiling","setForeignRegistration","setFormWithZen","setHasFormation","setHowToFile","requestedJurisdictionsOnParam","requestedJurisdictionsCount","PAYMEHT","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","stockSetupData","stockSetupKey","getRegisterStockSetupFlowId","corpStockService","getStockFeeTotal","newData","createStockSetupOrder","stockInfo","corpFormationId","updateStockSetup","WORRY_FREE","NAME_RESERVATION","updateWFG","defaultOperatingAgreementData","operatingAgreementData","operatingAgreementKey","createOperatingAgreementOrder","createOperatingAgreement","getOpAgreementPrice"],"ignoreList":[],"sourceRoot":""}