{"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, data) => {\n  const { releaseBLRTeaser } = data;\n\n  set(dispatch, data, ACTIONS.COMPLETE, false);\n\n  document.location = releaseBLRTeaser && 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 { SKIP_FOREIGN_SELECTION_FLAG } from '../../../constants/complete_llc';\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, ldFlags, 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    && ldFlags?.[SKIP_FOREIGN_SELECTION_FLAG];\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, ldFlags, 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    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","releaseBLRTeaser","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","SKIP_FOREIGN_SELECTION_FLAG","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":""}