{"version":3,"file":"js/actions.xxxxxxxxxxxxxxxxxxxx.js","mappings":"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","sources":["webpack://zenbusiness.com/./src/client/actions/Lead/index.js","webpack://zenbusiness.com/./src/client/actions/account/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/companies/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/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/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/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/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/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/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/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_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/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/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/initialization/index.js","webpack://zenbusiness.com/./src/client/actions/orders/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_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_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_amendment/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_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/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_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_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/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/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_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_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_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/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/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/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/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/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_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/register_initialcpascreening/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/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_nextpage/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_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_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","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/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_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/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_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/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_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_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_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_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/registration/flows/default.js","webpack://zenbusiness.com/./src/client/actions/registration/flows/index.js","webpack://zenbusiness.com/./src/client/actions/registration/index.js"],"sourcesContent":["/* 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';\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 { 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 { 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 { URLS } from '../../../constants/complete_blr';\n\nconst\n  getBLRDataFlowOrder = (url, registration) => {\n    const\n      { blr } = registration,\n      { hasEmployees } = blr,\n      flowItems = [\n        URLS.BUS_AT_HOME,\n        URLS.BUS_INDUSTRY,\n        URLS.HAS_EMPLOYEES\n      ];\n\n    if (url === URLS.EMPL_COUNT || hasEmployees) {\n      flowItems.push(URLS.EMPL_COUNT);\n    }\n    flowItems.push(URLS.HAS_DBAS);\n    return flowItems;\n  },\n\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing } = registration.businessAddresses,\n      flowItems = [];\n\n    flowItems.push(URLS.PHYS_ADDR);\n    if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getCorpFlowOrder = (url, registration) => {\n    const\n      { officer } = registration,\n      flowItems = [ URLS.CORP_DIR_COUNT, URLS.CORP_DIR_LIST ],\n      { hasAsstSecretary, hasVicePresident } = officer;\n\n    flowItems.push(URLS.CORP_CHOOSE_PRES);\n    if (url === URLS.CORP_PRES) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_PRES);\n    }\n    flowItems.push(URLS.CORP_HAS_VP);\n    if (hasVicePresident) {\n      flowItems.push(URLS.CORP_CHOOSE_VP);\n      if (url === URLS.CORP_VP) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_VP);\n      }\n    }\n    flowItems.push(URLS.CORP_CHOOSE_TRSR);\n    if (url === URLS.CORP_TRSR) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_TRSR);\n    }\n    flowItems.push(URLS.CORP_CHOOSE_SEC);\n    if (url === URLS.CORP_SEC) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_SEC);\n    }\n    flowItems.push(URLS.CORP_HAS_ASST_SEC);\n    if (hasAsstSecretary) {\n      flowItems.push(URLS.CORP_CHOOSE_ASST_SEC);\n      if (url === URLS.CORP_ASST_SEC) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_ASST_SEC);\n      }\n    }\n\n    flowItems.push(URLS.REG_AGT);\n    if (url === URLS.PRIM_CONTACT) {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.PRIM_CONTACT);\n    } else {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    }\n    flowItems.push(URLS.AUTH_SIG);\n\n    return flowItems;\n  },\n\n  /* eslint-enable max-statements */\n  getLLCFlowOrder = (url, registration) => {\n    const\n      { manager } = registration,\n      flowItems = [ URLS.LLC_MBR_COUNT, URLS.LLC_MBR_LIST ],\n      { managerType } = manager;\n\n    flowItems.push(URLS.LLC_MGR_OPT);\n    if (managerType === 'SomeOwners' || managerType === 'SomeManagers' || managerType === '') {\n      flowItems.push(URLS.LLC_BUS_RUN);\n    }\n    if (managerType === 'SomeManagers' || managerType === 'AllManagers' || managerType === '') {\n      flowItems.push(URLS.LLC_MGR_COUNT, URLS.LLC_MGR_LIST);\n    }\n\n    flowItems.push(URLS.REG_AGT);\n    if (url === URLS.PRIM_CONTACT) {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.PRIM_CONTACT);\n    } else {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    }\n    flowItems.push(URLS.AUTH_SIG);\n\n    return flowItems;\n  },\n\n  getNewCompanyFlow = (url, registration) => {\n    const\n      { business } = registration,\n      { type } = business,\n      flowItems = [];\n\n    if (type === 'CORP') {\n      flowItems.push(URLS.START_BUS_DATA, ...getAddressFlow(url, registration), ...getCorpFlowOrder(url, registration));\n    } else {\n      flowItems.push(URLS.START_BUS_DATA, ...getAddressFlow(url, registration), ...getLLCFlowOrder(url, registration));\n    }\n    flowItems.push(URLS.START_BLR_DATA, ...getBLRDataFlowOrder(url, registration), URLS.DATA_CONFIRM, URLS.SHARE, URLS.COMPLETE);\n    return flowItems;\n  },\n\n  getDashboardFlow = (url, registration) => {\n    return [ URLS.START_BLR_DATA, ...getBLRDataFlowOrder(url, registration), URLS.DATA_CONFIRM, URLS.SHARE, URLS.COMPLETE ];\n  },\n\n  /* eslint-disable max-statements */\n  getFlowOrder = (url, registration) => {\n    const\n      { blr } = registration,\n      { existingCompany } = blr;\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    if (existingCompany) {\n      return getDashboardFlow(url, registration);\n    }\n    return getNewCompanyFlow(url, registration);\n  };\n  /* eslint-enable max-statements */\n\nexport default {\n  getFlowOrder\n};\n","import { getCompleteWFGFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteWFGFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getEntryPoint as getPostPurchaseEntryPoint } from '../purchase_post_addons';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/complete_blr';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as blrKey } from '../../reducers/registration/blr';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as managerKey } from '../../reducers/registration/managers';\nimport { storageKey as officerKey } from '../../reducers/registration/officers';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { storageKey as registeredAgentKey } from '../../reducers/registration/registeredAgent';\nimport { registrationService, orderService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlows from './flows';\n\nconst\n  defaultBlrData = { existingCompany: false, skipBlr: false },\n  blrData = getReducerSnapshot(blrKey, defaultBlrData),\n  defaultBusinessData = { type: 'LLCX', id: '', businessOrderType: '', addressMatch: false, addressIsGoogle: false, domesticJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultManagerData = { managerType: '' },\n  managerData = getReducerSnapshot(managerKey, defaultManagerData),\n  defaultOfficerData = { hasAsstSecretary: false, hasVicePresident: false },\n  officerData = getReducerSnapshot(officerKey, defaultOfficerData),\n  defaultPageData = { forceToMembers: false, forceToManagers: false, forceToDirectors: false, forceToOfficers: false, forceToPayment: false, forceToContact: false, registrationFlow: '' },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  defaultRegisteredAgentData = { forceContact: false, forcePerson: false },\n  registeredAgentData = getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData),\n\n  getFlowOrder = (url) => {\n    const registration = {\n      blr: blrData,\n      business: businessData,\n      businessAddresses: businessAddressesData,\n      manager: managerData,\n      officer: officerData,\n      page: pageData,\n      registeredAgent: registeredAgentData\n    };\n    return getFlows(url, registration);\n  },\n  go = (jump) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    if (jumpIndex < 0) {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[0]}`);\n    } else if (jumpIndex >= flowOrder.length) {\n      if (businessData.id) {\n        document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(blrData, getReducerSnapshot(blrKey, defaultBlrData));\n    _assign(managerData, getReducerSnapshot(managerKey, defaultManagerData));\n    _assign(officerData, getReducerSnapshot(officerKey, defaultOfficerData));\n    _assign(pageData, getReducerSnapshot(pageKey, defaultPageData));\n    _assign(registeredAgentData, getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData));\n  };\n\nexport const getEntryPoint = (fromBack, forLogin) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index1 = (fromBack && !blrData.skipBlr) ? flow.length - 1 : 0,\n    index = forLogin ? 1 : index1;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const getNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n\n  const\n    { registrationFlow } = pageData,\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'bl') {\n        if (businessData.id) {\n          return { isDashboard: true, url: `/${COMPANY_URLS.BASE}/${businessData.id}` };\n        }\n        return { isDashboard: true, url: `/${DASHBOARD_URLS.BASE}` };\n      }\n      return { isDashboard: false, url: getPostPurchaseEntryPoint() };\n    }\n    return { isDasboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n\n  const\n    { registrationFlow } = pageData,\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'bl') {\n        if (businessData.id) {\n          document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n        } else {\n          document.location = `/${DASHBOARD_URLS.BASE}`;\n        }\n      } else {\n        browserHistory.push(getPostPurchaseEntryPoint());\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const goToCorpAsstSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_ASST_SEC, URLS.CORP_ASST_SEC);\n};\n\nexport const goToCorpPresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_PRES, URLS.CORP_PRES);\n};\n\nexport const goToCorpSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_SEC, URLS.CORP_SEC);\n};\n\nexport const goToCorpTreasurer = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_TRSR, URLS.CORP_TRSR);\n};\n\nexport const goToCorpVicePresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_VP, URLS.CORP_VP);\n};\n\nexport const goToPrimaryContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRIM_CONTACT, URLS.PRIM_CONTACT);\n};\n\nexport const setAddressesModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ADDR_MODAL, false);\n};\n\nexport const setAuthorizedSignatory = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG, false);\n};\n\nexport const setAuthorizedSignatoryModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG_MODAL, false);\n};\n\nexport const setBusinessIndustry = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_INDUSTRY, false);\n};\n\nexport const setBusinessOutOfHome = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_AT_HOME, false);\n};\n\nexport const setChoosePrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRIM_CONTACT, false);\n};\n\nexport const setComplete = (dispatch) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, false);\n\n  document.location = businessData?.id\n    ? `/${COMPANY_URLS.BASE}/${businessData.id}/compliance/business-licenses`\n    : `/${DASHBOARD_URLS.BASE}`;\n};\n\nexport const setCorpAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_ASST_SEC, false);\n};\n\nexport const setCorpChooseAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_ASST_SEC, false);\n};\n\nexport const setCorpChoosePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_PRES, false);\n};\n\nexport const setCorpChooseSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_SEC, false);\n};\n\nexport const setCorpChooseTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_TRSR, false);\n};\n\nexport const setCorpChooseVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_VP, false);\n};\n\nexport const setCorpDirectorCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_COUNT, false);\n};\n\nexport const setCorpDirectorList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_LIST, false);\n};\n\nexport const setCorpDirectorListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_LIST_MODAL, false);\n};\n\nexport const setCorpHasAsstSecretary = (dispatch, data) => {\n  officerData.hasAsstSecretary = data.hasAsstSecretary;\n  set(dispatch, data, ACTIONS.CORP_HAS_ASST_SEC, false);\n};\n\nexport const setCorpHasVicePresident = (dispatch, data) => {\n  officerData.hasVicePresident = data.hasVicePresident;\n  set(dispatch, data, ACTIONS.CORP_HAS_VP, false);\n};\n\nexport const setCorpOfficerListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_OFF_LIST_MODAL, false);\n};\n\nexport const setCorpPresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_PRES, false);\n};\n\nexport const setCorpSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_SEC, false);\n};\n\nexport const setCorpTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_TRSR, false);\n};\n\nexport const setCorpVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_VP, false);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, false);\n};\n\nexport const setEmployeesCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMPL_COUNT, false);\n};\n\nexport const setHasDBAs = (dispatch, data) => {\n  blrData.hasDBAs = data.hasDBAs;\n  set(dispatch, data, ACTIONS.HAS_DBAS, false);\n};\n\nexport const setHasEmployees = (dispatch, data) => {\n  blrData.hasEmployees = data.hasEmployees;\n  set(dispatch, data, ACTIONS.HAS_EMPLOYEES, false);\n};\n\nexport const setLLCBusinessRunners = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_BUS_RUN, false);\n};\n\nexport const setLLCManagerCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_COUNT, false);\n};\n\nexport const setLLCManagerList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST, false);\n};\n\nexport const setLLCManagerListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST_MODAL, false);\n};\n\nexport const setLLCManagerOption = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT, false);\n};\n\nexport const setLLCManagerOptionModal = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT_MODAL, false);\n};\n\nexport const setLLCMemberCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_COUNT, false);\n};\n\nexport const setLLCMemberList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST, false);\n};\n\nexport const setLLCMemberListModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST_MODAL, false);\n};\n\nexport const setLicenseDataModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LIC_DATA_MODAL, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, false);\n};\n\nexport const setPrimaryContactModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT_MODAL, false);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT, false);\n};\n\nexport const setRegisteredAgentModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT_MODAL, false);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n};\n\nexport const setStartBlrData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START_BLR_DATA, true);\n};\n\nexport const setStartBusData = (dispatch, data) => {\n  updateSnapshots();\n  set(dispatch, data, ACTIONS.START_BUS_DATA, true);\n};\n\nexport const updateContacts = (dispatch, data) => {\n  const { contactType } = data;\n  const type = {\n    member: 'UPDATE_MBR',\n    manager: 'UPDATE_MGR',\n    director: 'UPDATE_DIR',\n    officer: 'UPDATE_OFC'\n  };\n  const action = type[contactType || ''];\n  if (action) set(dispatch, data, ACTIONS[action], false);\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, advance, blrOrderTaskUuid) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n\n  const handleCatchError = (err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  };\n\n  const handleUpdateResponse = (response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1);\n    }\n  };\n\n  registrationService.updateBusinessLicense(reducerData, filingFees)\n    .then((response) => {\n      if (!blrOrderTaskUuid) {\n        handleUpdateResponse(response);\n        return;\n      }\n      orderService.updateOrderTaskStatus(blrOrderTaskUuid, 'pending')\n        .then(() => {\n          handleUpdateResponse(response);\n        }).catch(handleCatchError);\n    })\n    .catch(handleCatchError);\n\n};\n\nexport const setWillMarkOrderCompleted = (dispatch, payload) => {\n  dispatch({\n    type: ORDER_ACTIONS.WILL_MARK_ORDER_COMPLETED,\n    payload\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  goToCorpAsstSecretary,\n  goToCorpPresident,\n  goToCorpSecretary,\n  goToCorpTreasurer,\n  goToCorpVicePresident,\n  goToPrimaryContact,\n  setAddressesModal,\n  setAuthorizedSignatory,\n  setAuthorizedSignatoryModal,\n  setBusinessIndustry,\n  setBusinessOutOfHome,\n  setChoosePrimaryContact,\n  setComplete,\n  setCorpAsstSecretary,\n  setCorpChooseAsstSecretary,\n  setCorpChoosePresident,\n  setCorpChooseSecretary,\n  setCorpChooseTreasurer,\n  setCorpChooseVicePresident,\n  setCorpDirectorCount,\n  setCorpDirectorList,\n  setCorpDirectorListModal,\n  setCorpHasAsstSecretary,\n  setCorpHasVicePresident,\n  setCorpPresident,\n  setCorpSecretary,\n  setCorpTreasurer,\n  setCorpVicePresident,\n  setDataConfirmation,\n  setEmployeesCount,\n  setHasDBAs,\n  setHasEmployees,\n  setLLCBusinessRunners,\n  setLLCManagerCount,\n  setLLCManagerList,\n  setLLCManagerListModal,\n  setLLCManagerOption,\n  setLLCManagerOptionModal,\n  setLLCMemberCount,\n  setLLCMemberList,\n  setLLCMemberListModal,\n  setLicenseDataModal,\n  setMailingAddress,\n  setPhysicalAddress,\n  setPrimaryContact,\n  setPrimaryContactModal,\n  setRegisteredAgent,\n  setRegisteredAgentModal,\n  setShare,\n  setStartBlrData,\n  setStartBusData,\n  setWillMarkOrderCompleted,\n  updateContacts,\n  updateOrder,\n  resetAllData\n};\n","import { URLS } from '../../../constants/complete_business';\n\nconst\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing, usePhysicalAsPrincipal, useMailingAsPrincipal } = registration.businessAddresses,\n      flowItems = [];\n\n    flowItems.push(URLS.PHYS_ADDR);\n    if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n      if ((!useMailingAsPrincipal && !usePhysicalAsPrincipal) || url === URLS.PRIN_ADDR) {\n        flowItems.push(URLS.PRIN_ADDR);\n      }\n    } else if (!usePhysicalAsPrincipal || url === URLS.PRIN_ADDR) {\n      flowItems.push(URLS.PRIN_ADDR);\n    }\n    return flowItems;\n  },\n\n  /* eslint-disable max-statements */\n  getPostPrincipalsFlowOrder = (url, registration) => {\n    const\n      { page, purchase } = registration,\n      { forceToContact, forceToMembers, forceToManagers, forceToDirectors, forceToOfficers, forceToRegisteredAgent, registrationFlow } = page,\n      { privacy } = purchase,\n//      { forceCompany, forcePerson } = registeredAgent,\n      flowItems = [];\n\n    if (forceToMembers || forceToManagers || forceToDirectors || forceToOfficers) {\n      flowItems.push(URLS.DATA_CONFIRM);\n    } else {\n      if (registrationFlow === '') {\n        flowItems.push(URLS.REG_AGT);\n      }\n      if (forceToRegisteredAgent) {\n        flowItems.push(URLS.DATA_CONFIRM);\n        if (registrationFlow !== 'stockSetup') {\n          flowItems.push(URLS.SHARE, URLS.COMPLETE);\n        }\n      } else if (url === URLS.PRIM_CONTACT) {\n        flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.PRIM_CONTACT, URLS.DATA_CONFIRM);\n      } else {\n        flowItems.push(URLS.CHOOSE_PRIM_CONTACT, URLS.DATA_CONFIRM);\n      }\n    }\n\n    if (forceToContact) {\n      flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    } else if (forceToMembers) {\n      flowItems.push(URLS.LLC_MBR_COUNT);\n    } else if (forceToManagers) {\n      flowItems.push(URLS.LLC_MGR_OPT);\n    } else if (forceToDirectors) {\n      flowItems.push(URLS.CORP_DIR_COUNT);\n    } else if (forceToOfficers) {\n      flowItems.push(URLS.CORP_CHOOSE_PRES);\n    } else if (forceToRegisteredAgent) {\n      flowItems.push(URLS.REG_AGT);\n    } else if (privacy) {\n      flowItems.push(URLS.PAYMENT);\n    }\n    // ECOMM-2496: share/complete have no routes in this flow (Routes.js has no Share or Complete\n    // component) — navigating to them hits the '*' catch-all, remounts Init with no companyId in\n    // the query string, and hard-redirects to the dashboard. The stockSetup diversion must end at\n    // data-confirmation so go() reaches its end-of-flow arm and hands off to /register-stock-setup.\n    if (registrationFlow !== 'stockSetup') {\n      flowItems.push(URLS.SHARE, URLS.COMPLETE);\n    }\n    return flowItems;\n  },\n  /* esline-enable max-statements */\n\n  /* eslint-disable max-statements */\n  getCorpFlowOrder = (url, registration) => {\n    const\n      { officer, page } = registration,\n      flowItems = [ URLS.CORP_DIR_COUNT, URLS.CORP_DIR_LIST ],\n      { hasAsstSecretary, hasVicePresident } = officer,\n      { forceToDirectors } = page;\n\n    if (forceToDirectors) {\n      flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n      return flowItems;\n    }\n    flowItems.push(URLS.CORP_CHOOSE_PRES);\n    if (url === URLS.CORP_PRES) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_PRES);\n    }\n    flowItems.push(URLS.CORP_HAS_VP);\n    if (hasVicePresident) {\n      flowItems.push(URLS.CORP_CHOOSE_VP);\n      if (url === URLS.CORP_VP) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_VP);\n      }\n    }\n    flowItems.push(URLS.CORP_CHOOSE_TRSR);\n    if (url === URLS.CORP_TRSR) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_TRSR);\n    }\n    flowItems.push(URLS.CORP_CHOOSE_SEC);\n    if (url === URLS.CORP_SEC) { // This is only called directly, so if it is the URL, add it.\n      flowItems.push(URLS.CORP_SEC);\n    }\n    flowItems.push(URLS.CORP_HAS_ASST_SEC);\n    if (hasAsstSecretary) {\n      flowItems.push(URLS.CORP_CHOOSE_ASST_SEC);\n      if (url === URLS.CORP_ASST_SEC) { // This is only called directly, so if it is the URL, add it.\n        flowItems.push(URLS.CORP_ASST_SEC);\n      }\n    }\n    flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n    return flowItems;\n  },\n  /* eslint-enable max-statements */\n  getLLCFlowOrder = (url, registration) => {\n    const\n      { manager, page } = registration,\n      flowItems = [ URLS.LLC_MBR_COUNT, URLS.LLC_MBR_LIST ],\n      { managerType } = manager,\n      { forceToMembers } = page;\n\n    if (url === URLS.LLC_MBR_LIST && forceToMembers) {\n      flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n      return flowItems;\n    }\n\n    flowItems.push(URLS.LLC_MGR_OPT);\n    if (managerType === 'SomeOwners' || managerType === 'SomeManagers') {\n      flowItems.push(URLS.LLC_BUS_RUN);\n    }\n    if (managerType === 'SomeManagers' || managerType === 'AllManagers') {\n      flowItems.push(URLS.LLC_MGR_COUNT, URLS.LLC_MGR_LIST);\n    }\n    flowItems.push(...getPostPrincipalsFlowOrder(url, registration));\n    return flowItems;\n  },\n  /* eslint-disable max-statements */\n  getFlowOrder = (url, registration) => {\n    const\n      { business } = registration,\n      { type } = business;\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    const\n      flowItems = [ URLS.BUS_DESC, ...getAddressFlow(url, registration) ];\n\n    if (type === 'CORP') {\n      flowItems.push(...getCorpFlowOrder(url, registration));\n    } else {\n      flowItems.push(...getLLCFlowOrder(url, registration));\n    }\n    return flowItems;\n  };\n  /* eslint-enable max-statements */\n\nexport default {\n  getPostPrincipalsFlowOrder,\n  getCorpFlowOrder,\n  getLLCFlowOrder,\n  getFlowOrder\n};\n","import { getCompleteWFGFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteWFGFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _find from 'lodash/find';\nimport _indexOf from 'lodash/indexOf';\nimport _map from 'lodash/map';\nimport { browserHistory } from 'react-router';\n\nimport { getStateFees as getInitStateFees } from '../initialization';\nimport { setInit as setInitAccounting, setBackFromCompleteBusiness as setReturnAccounting } from '../register_accounting';\nimport { setInit as setInitEIN, setBackFromCompleteBusiness as setReturnEIN } from '../register_ein';\nimport { setInit as setInitDBAEntity, setBackFromCompleteBusiness as setReturnDBAEntity } from '../register_dbaentity_pf';\nimport { setInit as setInitGS, setBackFromCompleteBusiness as setReturnGS } from '../register_gs';\nimport { setInit as setInitNYPub, setBackFromCompleteBusiness as setReturnNYPub } from '../register_nypub';\nimport { setInit as setInitStockSetup } from '../register_stock_setup';\nimport { setInit as setInitWFG, setBackFromCompleteBusiness as setReturnWFG } from '../register_wfg';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { ACTIONS, URLS } from '../../constants/complete_business';\nimport { DOM_JURS } from '../../constants/ui';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as directorKey } from '../../reducers/registration/directors';\nimport { storageKey as managerKey } from '../../reducers/registration/managers';\nimport { storageKey as memberKey } from '../../reducers/registration/members';\nimport { storageKey as officerKey } from '../../reducers/registration/officers';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { storageKey as registeredAgentKey } from '../../reducers/registration/registeredAgent';\nimport { accountService, businessEntityService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlows from './flows';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getRegisteredAgentServicePrice } from '../../utils/ProductService';\n\nconst\n  defaultBusinessData = { type: 'LLCX', id: '', businessOrderType: '', addressMatch: false, addressIsGoogle: false, domesticJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultManagerData = { managerType: '' },\n  managerData = getReducerSnapshot(managerKey, defaultManagerData),\n  defaultOfficerData = { hasAsstSecretary: false, hasVicePresident: false },\n  officerData = getReducerSnapshot(officerKey, defaultOfficerData),\n  defaultPageData = { forceToMembers: false, forceToManagers: false, forceToDirectors: false, forceToOfficers: false, forceToPayment: false, forceToContact: false, registrationFlow: '' },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  defaultPurchaseData = { privacy: false },\n  purchaseData = getReducerSnapshot(purchaseKey, defaultPurchaseData),\n  defaultRegisteredAgentData = { forceContact: false, forcePerson: false },\n  registeredAgentData = getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData),\n  // This is a reduced flow for analyzing the data confirmation.\n  /* eslint-disable max-statements */\n  getFlowOrder = (url) => {\n    const registration = {\n      business: businessData,\n      businessAddresses: businessAddressesData,\n      manager: managerData,\n      officer: officerData,\n      page: pageData,\n      purchase: purchaseData,\n      registeredAgent: registeredAgentData\n    };\n    return getFlows(url, registration);\n  },\n  getCompanyUrl = () => {\n    return `/${COMPANY_URLS.BASE}/${businessData.id}`;\n  },\n  go = (jump, dispatch) => {\n    const\n      { registrationFlow = '' } = pageData,\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n\n    if (jumpIndex < 0) {\n      if (registrationFlow === 'bl' || registrationFlow === 'ein') {\n        setReturnEIN(dispatch, {});\n      } else if (registrationFlow === 'wfg') {\n        setReturnWFG(dispatch, {});\n      } else if (registrationFlow === 'acct') {\n        setReturnAccounting(dispatch, {});\n      } else if (registrationFlow === 'dbaEntity') {\n        setReturnDBAEntity(dispatch, {});\n      } else if (registrationFlow === 'gs') {\n        setReturnGS(dispatch, {});\n      } else if (registrationFlow === 'ny') {\n        setReturnNYPub(dispatch, {});\n      } else {\n        document.location = getCompanyUrl();\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      const\n        business = getReducerSnapshot(businessKey, {}),\n        membersSnap = getReducerSnapshot(memberKey, {}),\n        directorsSnap = getReducerSnapshot(directorKey, {}),\n        { id, name, type, description, domesticJurisdiction, addressLine1, addressLine2, city, county, state, country, zipCode } = business,\n        { phoneNumber } = business,\n        { members } = membersSnap,\n        { directors } = directorsSnap,\n        owners = _map((type === 'CORP' ? directors : members), (owner) => {\n          return _assign({ percent: '', percentFloat: 0, accountOwner: false }, owner);\n        }),\n        data = {\n          id,\n          companyId: id,\n          type,\n          businessType: type,\n          name,\n          description,\n          domesticJurisdiction,\n          phoneNumber,\n          addressLine1,\n          addressLine2,\n          city,\n          county,\n          state,\n          country,\n          zipCode,\n          mailingAddressLine1: addressLine1,\n          mailingAddressLine2: addressLine2,\n          mailingCity: city,\n          mailingCounty: county,\n          mailingState: state,\n          mailingCountry: country,\n          mailingZipCode: zipCode,\n          owners\n        };\n\n      if (registrationFlow === 'bl') {\n        setInitEIN(dispatch, { companyId: id, id, registrationFlow: 'bl' });\n      } else if (registrationFlow === 'ein') {\n        setInitEIN(dispatch, { companyId: id, id });\n      } else if (registrationFlow === 'wfg') {\n        setInitWFG(dispatch, { companyId: id });\n      } else if (registrationFlow === 'acct') {\n        setInitAccounting(dispatch, data);\n      } else if (registrationFlow === 'dbaEntity') {\n        setInitDBAEntity(dispatch, data);\n      } else if (registrationFlow === 'gs') {\n        setInitGS(dispatch, data);\n      } else if (registrationFlow === 'ny') {\n        setInitNYPub(dispatch, data);\n      } else if (registrationFlow === 'stockSetup') {\n        // ECOMM-2496: the stock-setup init diverts to this flow when the entity is missing\n        // formation data. Hand the customer back to stock setup once the data is confirmed,\n        // instead of stranding them on the company page with shares still uncollected.\n        setInitStockSetup(dispatch, { id, companyId: id, companyCount: 1, name, domesticJurisdiction, type, fromDashboard: false });\n      } else {\n        document.location = getCompanyUrl();\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(managerData, getReducerSnapshot(managerKey, defaultManagerData));\n    _assign(officerData, getReducerSnapshot(officerKey, defaultOfficerData));\n    _assign(pageData, getReducerSnapshot(pageKey, defaultPageData));\n    _assign(purchaseData, getReducerSnapshot(purchaseKey, defaultPurchaseData));\n    _assign(registeredAgentData, getReducerSnapshot(registeredAgentKey, defaultRegisteredAgentData));\n  };\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const goToCorpAsstSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_ASST_SEC, URLS.CORP_ASST_SEC);\n};\n\nexport const goToCorpPresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_PRES, URLS.CORP_PRES);\n};\n\nexport const goToCorpSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_SEC, URLS.CORP_SEC);\n};\n\nexport const goToCorpTreasurer = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_TRSR, URLS.CORP_TRSR);\n};\n\nexport const goToCorpVicePresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_CORP_VP, URLS.CORP_VP);\n};\n\nexport const goToPrimaryContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRIM_CONTACT, URLS.PRIM_CONTACT);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, true);\n};\n\nexport const setChoosePrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRIM_CONTACT, true);\n};\n\nexport const setCorpAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_ASST_SEC, true);\n};\n\nexport const setCorpChooseAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_ASST_SEC, true);\n};\n\nexport const setCorpChoosePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_PRES, true);\n};\n\nexport const setCorpChooseSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_SEC, true);\n};\n\nexport const setCorpChooseTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_TRSR, true);\n};\n\nexport const setCorpChooseVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_CHOOSE_VP, true);\n};\n\nexport const setCorpDirectorCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_COUNT, true);\n};\n\nexport const setCorpDirectorList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DIR_LIST, true);\n};\n\nexport const setCorpHasAsstSecretary = (dispatch, data) => {\n  officerData.hasAsstSecretary = data.hasAsstSecretary;\n  set(dispatch, data, ACTIONS.CORP_HAS_ASST_SEC, true);\n};\n\nexport const setCorpHasVicePresident = (dispatch, data) => {\n  officerData.hasVicePresident = data.hasVicePresident;\n  set(dispatch, data, ACTIONS.CORP_HAS_VP, true);\n};\n\nexport const setCorpPresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_PRES, true);\n};\n\nexport const setCorpSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_SEC, true);\n};\n\nexport const setCorpTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_TRSR, true);\n};\n\nexport const setCorpVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_VP, true);\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  pageData.forceToDataConfirmation = data.forceToDataConfirmation;\n  pageData.forceToMembers = data.forceToMembers;\n  pageData.forceToManagers = data.forceToManagers;\n  pageData.forceToDirectors = data.forceToDirectors;\n  pageData.forceToOfficers = data.forceToOfficers;\n  pageData.forceToContact = data.forceToContact;\n  pageData.forceToRegisteredAgent = data.forceToRegisteredAgent;\n  set(dispatch, data, ACTIONS.DATA_CONFIRM, false);\n};\n\nexport const setLLCBusinessRunners = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_BUS_RUN, true);\n};\n\nexport const setLLCManagerCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_COUNT, true);\n};\n\nexport const setLLCManagerList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MGR_LIST, true);\n};\n\nexport const setLLCManagerOption = (dispatch, data) => {\n  managerData.managerType = data.managerType;\n  set(dispatch, data, ACTIONS.LLC_MGR_OPT, true);\n};\n\nexport const setLLCMemberCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_COUNT, true);\n};\n\nexport const setLLCMemberList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MBR_LIST, true);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, true);\n};\n\nexport const setMailingAddressModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR_MODAL, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, true);\n};\n\nexport const setPhysicalAddressModal = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR_MODAL, false);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, true);\n};\n\nexport const setPrimaryContactModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT_MODAL, false);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, true);\n};\n\nexport const setPrincipalAddressModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR_MODAL, false);\n};\n\nexport const setPurchaseRegisteredAgent = (dispatch, data) => {\n  const { privacy, forceCompany, forcePerson } = data;\n  purchaseData.privacy = privacy;\n  registeredAgentData.forceCompany = forceCompany;\n  registeredAgentData.forcePerson = forcePerson;\n  set(dispatch, data, ACTIONS.PURCH_REG_AGT, true);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT, true);\n};\n\nexport const setRegisteredAgentModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGT_MODAL, false);\n};\n\nconst createRAOrder = (dispatch, reducerData, fees) => {\n  const serviceMethod = 'createRA';\n\n  registrationService[serviceMethod](reducerData, fees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    const price = getRegisteredAgentServicePrice();\n    const addlData = createAdditionalData('registered_agent_service', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'registered_agent', price, addlData);\n    go(1, dispatch);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, fees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { customer } = reducerData,\n    { cardNumber, expMonth, expYear, cvc } = customer;\n\n  if (!cardNumber) {\n    createRAOrder(dispatch, reducerData, fees);\n  } else {\n    const data = { cardNumber, expMonth, expYear, cvc, isDefault: true };\n    accountService.addPaymentMethod(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createRAOrder(dispatch, reducerData, fees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = (dispatch) => {\n  go(1, dispatch);\n};\n\nexport const getStateFees = (dispatch, data, filingFees) => {\n  if (!filingFees[data.domesticJurisdiction] || !filingFees[data.domesticJurisdiction].registered_agent_service) {\n    getInitStateFees(dispatch, data.domesticJurisdiction);\n  }\n};\n\nexport const updateBusiness = (dispatch, reducerData, businessEntityId) => {\n  logger.logAction(ACTIONS.UPDATE_BUSINESS);\n  dispatch({\n    type: ACTIONS.UPDATE_BUSINESS\n  });\n  businessEntityService.update(reducerData, businessEntityId).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_BUSINESS_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_BUSINESS_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    go(1, dispatch);\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_BUSINESS_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_BUSINESS_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const updateContacts = (dispatch, data) => {\n  const { contactType } = data;\n  const type = {\n    member: 'UPDATE_MBR',\n    manager: 'UPDATE_MGR',\n    director: 'UPDATE_DIR',\n    officer: 'UPDATE_OFC'\n  };\n  const action = type[contactType || ''];\n  if (action) set(dispatch, data, ACTIONS[action], false);\n};\n\nexport const setBusinessModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_MODAL, false);\n};\n\nexport const getEntryPoint = (companyId, fromBack) => {\n  const flowOrder = getFlowOrder(''),\n    index = fromBack ? flowOrder.length - 1 : 0;\n  return `/${URLS.BASE}/${flowOrder[index]}`;\n};\n\nexport const setInit = (dispatch, data) => {\n  updateSnapshots();\n  const { type, domesticJurisdiction, registrationFlow = '' } = data;\n  businessData.type = type;\n  businessData.domesticJurisdiction = domesticJurisdiction;\n  pageData.registrationFlow = registrationFlow;\n\n  const match = _find(DOM_JURS, (option) => {\n    return option.value === data.domesticJurisdiction;\n  });\n  data.domesticJurisdictionName = match ? match.label : '';\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.push(getEntryPoint(data.id || null));\n};\n\nexport const businessAlreadyUpdated = (dispatch) => {\n  go(1, dispatch);\n};\n\nexport default {\n  goBack,\n  getEntryPoint,\n  goToCorpAsstSecretary,\n  goToCorpPresident,\n  goToCorpSecretary,\n  goToCorpTreasurer,\n  goToCorpVicePresident,\n  goToPrimaryContact,\n  setBusinessModal,\n  setChoosePrimaryContact,\n  setCorpAsstSecretary,\n  setCorpChooseAsstSecretary,\n  setCorpChoosePresident,\n  setCorpChooseSecretary,\n  setCorpChooseTreasurer,\n  setCorpChooseVicePresident,\n  setCorpDirectorCount,\n  setCorpDirectorList,\n  setCorpHasAsstSecretary,\n  setCorpHasVicePresident,\n  setCorpPresident,\n  setCorpSecretary,\n  setCorpTreasurer,\n  setCorpVicePresident,\n  setDataConfirmation,\n  setLLCBusinessRunners,\n  setLLCManagerCount,\n  setLLCManagerList,\n  setLLCManagerOption,\n  setLLCMemberCount,\n  setLLCMemberList,\n  setMailingAddress,\n  setMailingAddressModal,\n  setPayment,\n  setPhysicalAddress,\n  setPhysicalAddressModal,\n  setPrimaryContact,\n  setPrimaryContactModal,\n  setPrincipalAddress,\n  setPrincipalAddressModal,\n  setPurchaseRegisteredAgent,\n  setRegisteredAgent,\n  setRegisteredAgentModal,\n  setInit,\n  updateBusiness,\n  updateContacts,\n  businessAlreadyUpdated,\n  createOrder,\n  getStateFees,\n  orderAlreadyCreated,\n  resetAllData\n};\n","import { 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 _assign from 'lodash/assign';\nimport { URLS, NEW_CORP_STOCK_FEES_CALCULATOR } from '../../../constants/complete_corp';\nimport { DBA_IGNORE_STATES } from '../../../constants/ui';\nimport { isDBAEntityEnabled, isDBAComplianceEnabled } from '../../../utils/ProductService';\nimport { isVmaJurisdiction } from '../../../utils/VmaUtils';\nimport featureFlags from '../../../featureFlags';\n\nconst DBA_IGNORE_STATES_WITH_DELAWARE = _assign({ AZ: true, CA: true, CT: true, DE: true, FL: true, NE: true, NY: true, PA: true, WY: true }, DBA_IGNORE_STATES);\nconst HAS_MORE_THAN_ONE_SHARE_STATES = { CA: true };\n\n/* eslint-disable max-statements */\nconst\n  getAddressFlow = (url, registration) => {\n    const { business, businessAddresses, purchase } = registration;\n    const flowItems = [];\n\n    if (!purchase.planLevel) {\n      return flowItems;\n    }\n\n    flowItems.push(URLS.PHYS_ADDR);\n\n    if (!businessAddresses.usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n\n    if (isVmaJurisdiction(business.requestedJurisdiction)) {\n      flowItems.push(URLS.PURCHASE_VBA);\n    }\n\n    return flowItems;\n  },\n\n  getDBAEntityFlow = (url, registration) => {\n    const { purchaseDBAEntity } = registration.postpurchase,\n      { requestedJurisdiction } = registration.business;\n\n    if (DBA_IGNORE_STATES_WITH_DELAWARE[requestedJurisdiction]) {\n      if (url === URLS.PURCHASE_DBA_ENTITY) {\n        return [ URLS.PURCHASE_DBA_ENTITY ];\n      }\n      if (url === URLS.DBA_ENTITIES) {\n        return [ URLS.DBA_ENTITIES ];\n      }\n      if (url === URLS.PURCHASE_DBA_COMPLIANCE) {\n        return [ URLS.PURCHASE_DBA_COMPLIANCE ];\n      }\n      return [];\n    }\n\n    if (isDBAEntityEnabled()) {\n      if (purchaseDBAEntity) {\n        if (isDBAComplianceEnabled()) {\n          return [ URLS.PURCHASE_DBA_ENTITY, URLS.DBA_ENTITIES, URLS.PURCHASE_DBA_COMPLIANCE ];\n        }\n        return [ URLS.PURCHASE_DBA_ENTITY, URLS.DBA_ENTITIES ];\n      }\n      return [ URLS.PURCHASE_DBA_ENTITY ];\n    }\n    return [];\n  },\n\n  getRegisteredAgentFlow = (registration) => {\n    const { registeredAgentService } = registration.purchase;\n\n    if (!registeredAgentService) {\n      return [URLS.PURCHASE_REGISTERED_AGENT];\n    }\n\n    return [];\n  },\n\n  getHasMoreThanOneShareFlow = (registration) => {\n    const { requestedJurisdiction } = registration.business;\n\n    if (HAS_MORE_THAN_ONE_SHARE_STATES[requestedJurisdiction]) {\n      return [URLS.HAS_MORE_THAN_ONE_SHARE];\n    }\n\n    return [];\n  },\n\n  getFlowOrder = (url, registration, ldFlags) => {\n    const\n      { officer, domainName: domainNameData, purchase, business } = registration,\n      { requestedJurisdiction } = business,\n      flowItems = [\n        URLS.START_COMP,\n        URLS.BUS_NAME,\n        ...getDBAEntityFlow(url, registration),\n        URLS.BUS_DESC,\n        ...getAddressFlow(url, registration),\n        ...getRegisteredAgentFlow(registration, ldFlags),\n        ...getHasMoreThanOneShareFlow(registration)\n      ],\n      { skip } = domainNameData,\n      { hasAsstSecretary, hasVicePresident } = officer,\n      { domainName, basicEmail } = purchase;\n\n    if (ldFlags?.[NEW_CORP_STOCK_FEES_CALCULATOR]) {\n      // order_task_data-driven stock branch. Guards come from the corpStockFlow snapshot\n      // hydrated on init; the fee gate reads the calculated amount on registration.stockSetup\n      // (written by the CORP_STOCK_CALCULATED page). Hierarchy is keyed on feePaid — NOT\n      // sharesCollected — so writing shares can never route the customer past an unpaid checkout.\n      // The decision inputs are logged once at init via SET_CORP_STOCK_FLOW (actions/complete_corp),\n      // so a misroute after the flag is flipped is diagnosable from that event; this builder runs on\n      // every navigation, so it deliberately stays log-free to avoid hot-path noise.\n      const\n        { hasVariableFee, sharesCollected, feePaid } = registration.corpStockFlow || {},\n        { stockTotalAdjusted } = registration.stockSetup || {},\n        adjustedFee = Number(stockTotalAdjusted),\n        feeOwed = Number.isFinite(adjustedFee) && adjustedFee > 0;\n\n      if (feePaid) {\n        // paid (or $0 state_fees recorded) — stock is done, skip every stock step\n      } else if (sharesCollected && feeOwed) {\n        // Shares already collected but the fee is still owed — straight to checkout. This sits above\n        // the hasVariableFee check intentionally: a fee can only be owed on a variable-fee corp, so\n        // routing here without re-checking hasVariableFee is correct (and billing-safe).\n        flowItems.push(URLS.STOCK_CHECKOUT);\n      } else if (hasVariableFee) {\n        flowItems.push(URLS.CORP_STOCK_CALCULATED);\n        if (feeOwed) {\n          flowItems.push(URLS.STOCK_CHECKOUT);\n        }\n      } else {\n        flowItems.push(URLS.CORP_STOCK);\n      }\n    } else {\n      // Flag OFF: preserve the existing static stockSetup behavior exactly.\n      if (featureFlags.features.stockSetup && requestedJurisdiction !== 'DE') {\n        flowItems.push(URLS.CORP_STOCK);\n      }\n\n      if (!featureFlags.features.stockSetup) {\n        flowItems.push(URLS.CORP_STOCK);\n      }\n    }\n\n    flowItems.push(URLS.DIR_COUNT);\n    flowItems.push(URLS.DIR_LIST);\n    flowItems.push(URLS.CHOOSE_PRES);\n\n    if (url === URLS.PRES) { // PRES is a direct-to-page link and is only in the flow if you go there directly\n      flowItems.push(URLS.PRES);\n    }\n    flowItems.push(URLS.HAS_VP);\n    if (hasVicePresident) {\n      flowItems.push(URLS.CHOOSE_VP);\n      if (url === URLS.VP) { // VP is a direct-to-page link and is only in the flow if you go there directly\n        flowItems.push(URLS.VP);\n      }\n    }\n    flowItems.push(URLS.CHOOSE_TRSR);\n    if (url === URLS.TRSR) { // TRSR is a direct-to-page link and is only in the flow if you go there directly\n      flowItems.push(URLS.TRSR);\n    }\n    flowItems.push(URLS.CHOOSE_SEC);\n    if (url === URLS.SEC) { // SEC is a direct-to-page link and is only in the flow if you go there directly\n      flowItems.push(URLS.SEC);\n    }\n    flowItems.push(URLS.HAS_ASST_SEC);\n    if (hasAsstSecretary) {\n      flowItems.push(URLS.CHOOSE_ASST_SEC);\n      if (url === URLS.ASST_SEC) { // ASST_SEC is a direct-to-page link and is only in the flow if you go there directly\n        flowItems.push(URLS.ASST_SEC);\n      }\n    }\n    flowItems.push(URLS.CHOOSE_PRIM_CONTACT);\n    if (url === URLS.PRIM_CONTACT) { // PRIM_CONTACT is a direct-to-page link and is only in the flow if you go there directly\n      flowItems.push(URLS.PRIM_CONTACT);\n    }\n\n    flowItems.push(URLS.AUTH_SIG);\n\n    if (domainName) {\n      flowItems.push(URLS.DOMAIN_NAME);\n      if (basicEmail && !skip) {\n        flowItems.push(URLS.EMAIL_ADDRESS);\n      }\n    }\n    return flowItems;\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getCompleteCorpFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration, ldFlags) => {\n    return (flowTestMap[getCompleteCorpFlowId()] || DefaultFlows).getFlowOrder(url, registration, ldFlags);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getEntryPoint as getEINEntryPoint } from '../complete_ein';\nimport { getEntryPoint as getPostPurchaseEntryPoint } from '../purchase_post_addons';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { ACTIONS, URLS, getPageDetails, NEW_CORP_STOCK_FEES_CALCULATOR } from '../../constants/complete_corp';\nimport { ACTIONS as VP_ACTIONS } from '../../constants/vanity_products';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { CORP_STOCK_FEE_STATES } from '../../constants/ui';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as corpStockFlowKey } from '../../reducers/registration/corpStockFlow';\nimport { storageKey as domainNameKey } from '../../reducers/registration/domainName';\nimport { storageKey as officerKey } from '../../reducers/registration/officers';\nimport { storageKey as postpurchaseKey } from '../../reducers/registration/postpurchase';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { storageKey as stockSetupKey } from '../../reducers/registration/stockSetup';\nimport { accountService, corpStockService, orderService, registrationService } from '../../services';\nimport { getOrderTasks } from '../orders';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport { parseBoolToString } from '../../utils/DataCleaningUtils';\nimport getFlow from './flows';\nimport { getButtonClickDetails, trackClick } from '../../utils/ThirdPartyTracking';\nimport { parseUrl } from '../../utils/UrlUtils';\nimport featureFlags from '../../featureFlags';\n\n// The flow builder runs on every navigation, but only goNext/goBack thread `ldFlags`;\n// the legacy steps navigate via set()/getEntryPoint, which don't. Cache the flags captured at flow\n// start (Header → initCorpStockFlow) so getFlowOrder can fall back to them and the flag-ON stock\n// branch is seen on every navigation, not just goNext. Flag-OFF stays byte-identical: a flag-OFF\n// session only ever caches a flags object whose key is falsy, so getFlowOrder still takes the OFF\n// branch. (Global env-wide flag, so a session-lifetime cache carries no per-user-targeting risk.)\nlet activeLdFlags = null;\n\nconst\n  defaultBusinessData = { requestedJurisdiction: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  domainNameData = getReducerSnapshot(domainNameKey, { skip: false }),\n  officerData = getReducerSnapshot(officerKey, { hasAsstSecretary: false, hasVicePresident: false }),\n  postpurchaseData = getReducerSnapshot(postpurchaseKey, { purchaseDBAEntity: false, purchaseVBA: false }),\n  purchaseData = getReducerSnapshot(purchaseKey, { ein: null, domainName: null, planLevel: '' }),\n  // Order-task-derived flow-guard booleans the stock branch reads.\n  defaultCorpStockFlowData = { hasVariableFee: false, sharesCollected: false, feePaid: false },\n  corpStockFlowData = getReducerSnapshot(corpStockFlowKey, defaultCorpStockFlowData),\n  // The calculated fee (stockTotalAdjusted) drives whether STOCK_CHECKOUT is in the flow.\n  // It lives on registration.stockSetup (written by the CORP_STOCK_CALCULATED page).\n  defaultStockSetupData = { stockTotalAdjusted: null },\n  stockSetupData = getReducerSnapshot(stockSetupKey, defaultStockSetupData),\n\n  getFlowOrder = (url, ldFlags) => {\n    const\n      registration = {\n        business: businessData,\n        businessAddresses: businessAddressesData,\n        corpStockFlow: corpStockFlowData,\n        domainName: domainNameData,\n        officer: officerData,\n        postpurchase: postpurchaseData,\n        purchase: purchaseData,\n        stockSetup: stockSetupData\n      },\n      // Fall back to the flags cached at flow start when a caller (set/getEntryPoint) didn't thread\n      // them — otherwise navigation through legacy steps would compute the flow flag-OFF.\n      flow = getFlow(url, registration, ldFlags || activeLdFlags);\n\n    return flow;\n  },\n\n  goInFlowOrder = (flowOrder, jumpIndex) => {\n    const\n      { ein } = purchaseData;\n\n    const urlMovement = {\n      method: browserHistory.push\n    };\n\n    const { disableEIN } = featureFlags.features;\n\n    if (jumpIndex < 0) {\n      urlMovement.url = `/${URLS.BASE}/${flowOrder[0]}`;\n    } else if (jumpIndex >= flowOrder.length) {\n      if (ein && !disableEIN) {\n        urlMovement.url = getEINEntryPoint();\n      } else {\n        urlMovement.url = getPostPurchaseEntryPoint();\n      }\n    } else {\n      urlMovement.url = `/${URLS.BASE}/${flowOrder[jumpIndex]}`;\n    }\n    return urlMovement;\n  },\n  makeUrlMovement = (movement) => {\n    const { useLocation, url, method } = movement;\n    if (useLocation) {\n      document.location = url;\n    } else {\n      method(url);\n    }\n  },\n  go = (jump, moveUrl, ldFlags) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url, ldFlags),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index;\n    const urlMovement = goInFlowOrder(flowOrder, jumpIndex);\n    if (moveUrl) {\n      makeUrlMovement(urlMovement);\n    }\n    return urlMovement;\n  },\n  set = (dispatch, data, actionKey, moveUrl, clickEvent) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    const urlMovement = go(1, false);\n    if (clickEvent) {\n      trackClick(\n        getPageDetails(parseUrl(location.pathname, URLS.BASE)),\n        { nextUrl: urlMovement.url || '', ...clickEvent }\n      );\n    }\n    if (moveUrl) {\n      makeUrlMovement(urlMovement);\n    }\n  },\n  goTo = (dispatch, actionKey, url) => {\n    logger.logAction(actionKey);\n    dispatch({\n      type: actionKey\n    });\n    browserHistory.push(`/${URLS.BASE}/${url}`);\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(domainNameData, getReducerSnapshot(domainNameKey, { skip: false }));\n    _assign(officerData, getReducerSnapshot(officerKey, { hasAsstSecretary: false, hasVicePresident: false }));\n    _assign(postpurchaseData, getReducerSnapshot(postpurchaseKey, { purchaseDBAEntity: false, purchaseVBA: false }));\n    _assign(purchaseData, getReducerSnapshot(purchaseKey, { ein: null, domainName: null, planLevel: '' }));\n    _assign(corpStockFlowData, getReducerSnapshot(corpStockFlowKey, defaultCorpStockFlowData));\n    _assign(stockSetupData, getReducerSnapshot(stockSetupKey, defaultStockSetupData));\n  };\n\n// After the stock fee settles (charged, $0-recorded, or 409 already-recorded), mirror feePaid into the\n// flow snapshot so the guard drops every stock step. MUST run AFTER goNext, else it bounces to start.\nconst markStockFeePaid = (dispatch) => {\n  dispatch({ type: ACTIONS.SET_CORP_STOCK_FLOW, payload: { data: { feePaid: true } } });\n  updateSnapshots();\n};\n\nexport const getEntryPoint = (fromBack) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index = fromBack ? flow.length - 1 : 0;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nconst hasValue = (val) => {\n  if (val === undefined || val === null || val === '') {\n    return false;\n  }\n  if (Array.isArray(val)) {\n    return val.length > 0;\n  }\n  return true;\n};\n\n// One-shot init for the new corp stock-fee flow. Flag-gated (OFF = zero calls). When ON it probes the\n// jurisdiction's variable-fee calculator and derives the flow-guard booleans from the order task.\nexport const initCorpStockFlow = (dispatch, registration, ldFlags) => {\n  // Capture the flags for the flow builder's fallback (see activeLdFlags note at module top). Header\n  // calls this once at flow start with the live LD flags, before any step navigation. Cache before\n  // the flag-gate bail so flag-OFF sessions also seed the (falsy-keyed) flags and stay byte-identical.\n  if (ldFlags) {\n    activeLdFlags = ldFlags;\n  }\n\n  if (!ldFlags || !ldFlags[NEW_CORP_STOCK_FEES_CALCULATOR]) {\n    return Promise.resolve();\n  }\n\n  const { business: { id: companyId, requestedJurisdiction: jurisdiction } } = registration;\n\n  // No companyId means registration.business hasn't loaded — bail rather than write a confident-wrong\n  // guard (init is one-shot, so a partial snapshot would mis-route a re-entering paid corp).\n  if (!companyId) {\n    logger.error(ACTIONS.SET_CORP_STOCK_FLOW, { message: 'corp stock init skipped: no companyId', jurisdiction });\n    return Promise.resolve();\n  }\n\n  const probe = corpStockService.getVariableFeeExistence(jurisdiction)\n    .then((result) => { return !!(result && result.hasVariableFee); })\n    .catch((err) => {\n      // Never route a known variable-fee jurisdiction to the feeless path on a probe failure —\n      // fall back to the known variable-fee set.\n      const fallback = CORP_STOCK_FEE_STATES.includes(jurisdiction);\n      logger.error(ACTIONS.SET_CORP_STOCK_FLOW, { message: 'corp stock calculator probe failed', jurisdiction, fallback, err });\n      return fallback;\n    });\n\n  // getOrderTasks never rejects (resolves undefined on failure); fail open so the stock steps still\n  // show, and log so the failure stays observable.\n  const tasks = getOrderTasks(dispatch, companyId)\n    .then((tasksArray) => {\n      if (!tasksArray) {\n        logger.error(ACTIONS.SET_CORP_STOCK_FLOW, { message: 'order task fetch failed on init', companyId });\n        return { sharesCollected: false, feePaid: false };\n      }\n      const\n        formation = tasksArray.find((task) => { return task.order_task_type === 'corp_formation'; }),\n        orderTaskData = (formation && formation.order_task_data) || {};\n      return {\n        sharesCollected: hasValue(orderTaskData.authorized_shares),\n        feePaid: hasValue(orderTaskData.state_fees)\n      };\n    });\n\n  return Promise.all([probe, tasks]).then(([hasVariableFee, { sharesCollected, feePaid }]) => {\n    const data = { hasVariableFee, sharesCollected, feePaid };\n    logger.logAction(ACTIONS.SET_CORP_STOCK_FLOW, data);\n    dispatch({\n      type: ACTIONS.SET_CORP_STOCK_FLOW,\n      payload: { data }\n    });\n    updateSnapshots();\n  }).catch((err) => {\n    // Header invokes this fire-and-forget; keep a throw in dispatch/updateSnapshots from\n    // surfacing as an unhandled rejection.\n    logger.error(ACTIONS.SET_CORP_STOCK_FLOW, { message: 'corp stock init failed', err });\n  });\n};\n\nexport const goBack = (dispatch, ldFlags) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, true, ldFlags);\n};\n\nexport const goNext = (dispatch, ldFlags) => {\n  logger.logAction(ACTIONS.GO_NEXT, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_NEXT\n  });\n  go(1, true, ldFlags);\n};\n\n// Cache the v4 calculator's live fee preview into registration.stockSetup as the customer types.\nexport const setStockFee = (dispatch, feeResponse) => {\n  dispatch({\n    type: ACTIONS.SET_STOCK_FEE,\n    payload: { data: feeResponse }\n  });\n};\n\n// CORP_STOCK_CALCULATED submit. Writes the collected shares to the formation order task (never to\n// registration.business), writes a $0.00 state_fees when nothing is owed now, then advances.\nexport const submitCorpStockCalculated = (dispatch, params, ldFlags) => {\n  const { orderTaskUuid, accountId, authorizedShares, valuePerShare, netTotal } = params;\n  const owedNow = Number(netTotal);\n  const isZeroFee = Number.isFinite(owedNow) && owedNow === 0;\n  logger.logAction(ACTIONS.SUBMIT_CORP_STOCK_CALCULATED, { orderTaskUuid });\n  return orderService.patchOrderTaskData(orderTaskUuid, {\n    authorized_shares: authorizedShares,\n    par_value: valuePerShare\n  }).then(() => {\n    if (isZeroFee) {\n      return corpStockService.addFeeCorpCalculator(orderTaskUuid, { account_uuid: accountId, fee_amount: '0.00' });\n    }\n    return null;\n  }).then(() => {\n    updateSnapshots();\n    goNext(dispatch, ldFlags);\n    // $0 owed → a $0 state_fees was just written, so the fee is settled: lock the stock steps against\n    // back-nav. (Non-$0 advances to STOCK_CHECKOUT, which flips feePaid when the charge succeeds.)\n    if (isZeroFee) {\n      markStockFeePaid(dispatch);\n    }\n  }).catch((err) => {\n    // Surface the billing/order-task failure (the page also shows a retry modal). Re-reject so the\n    // page's .catch keeps the customer on the step — the order task was not advanced.\n    logger.error(ACTIONS.SUBMIT_CORP_STOCK_CALCULATED, { orderTaskUuid, err });\n    return Promise.reject(err);\n  });\n};\n\n// Simple CORP_STOCK step submit (flag-ON, non-variable-fee jurisdictions): write the shares to the\n// formation order task (never registration.business) and advance. No fee on this step.\nexport const submitCorpStock = (dispatch, params, ldFlags) => {\n  const { orderTaskUuid, authorizedShares, valuePerShare } = params;\n  logger.logAction(ACTIONS.CORP_STOCK, { orderTaskUuid, orderTask: true });\n  return orderService.patchOrderTaskData(orderTaskUuid, {\n    authorized_shares: authorizedShares,\n    par_value: valuePerShare\n  }).then(() => {\n    updateSnapshots();\n    goNext(dispatch, ldFlags);\n  }).catch((err) => {\n    logger.error(ACTIONS.CORP_STOCK, { orderTaskUuid, err });\n    return Promise.reject(err);\n  });\n};\n\n// STOCK_CHECKOUT confirm: persist a new card as default first (the v4 add-fee charges the account\n// server-side, takes no card), then POST the fee. 200/409 advance; 422 → {mismatch}; other → {payment}.\nexport const submitStockCheckout = (dispatch, params, ldFlags) => {\n  const { orderTaskUuid, accountId, feeAmount, payment = {} } = params;\n  logger.logAction(ACTIONS.SUBMIT_STOCK_CHECKOUT, { orderTaskUuid });\n\n  const ensurePaymentMethod = payment.cardToken\n    ? accountService.addPaymentMethodV2({\n      expMonth: payment.expMonth,\n      expYear: payment.expYear,\n      cvc: payment.cvc,\n      isDefault: true,\n      card_token: payment.cardToken,\n      brand: payment.brand,\n      last4: payment.last4\n    }).then((response) => {\n      const mergedData = _assign({}, response.data, payment);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: { data: mergedData }\n      });\n    })\n    : Promise.resolve();\n\n  return ensurePaymentMethod\n    .then(() => { return corpStockService.addFeeCorpCalculator(orderTaskUuid, { account_uuid: accountId, fee_amount: feeAmount }); })\n    .then(() => {\n      updateSnapshots();\n      goNext(dispatch, ldFlags);\n      // Charged → settle: lock shares edit + checkout against back-navigation.\n      markStockFeePaid(dispatch);\n    })\n    .catch((err) => {\n      const status = err && err.status;\n      if (status === 409) {\n        // Different fee already recorded — backend holds it at action_required for CS. Don't block\n        // the customer, but log a breadcrumb so the divergent-fee volume is observable client-side.\n        logger.logAction(ACTIONS.SUBMIT_STOCK_CHECKOUT, { orderTaskUuid, conflict: true });\n        updateSnapshots();\n        goNext(dispatch, ldFlags);\n        // A (different) fee is already recorded for this task — treat as settled so the customer\n        // can't loop back into shares/checkout.\n        markStockFeePaid(dispatch);\n        return Promise.resolve();\n      }\n      logger.error(ACTIONS.SUBMIT_STOCK_CHECKOUT, { orderTaskUuid, status, err });\n      return Promise.reject({ kind: status === 422 ? 'mismatch' : 'payment', status });\n    });\n};\n\nexport const getNextUncompletedPage = (dispatch, location, ldFlags) => {\n  updateSnapshots();\n  const\n    flowOrder = getFlowOrder(location, ldFlags),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1,\n    { ein } = purchaseData;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (ein) {\n        return { isDashboard: false, url: getEINEntryPoint() };\n      }\n      return { isDashboard: false, url: getPostPurchaseEntryPoint() };\n    }\n    return { isDashboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location, ldFlags) => {\n  updateSnapshots();\n  const\n    flowOrder = getFlowOrder(location, ldFlags),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    const urlMovement = goInFlowOrder(flowOrder, jumpIndex, ldFlags);\n    makeUrlMovement(urlMovement);\n    return true;\n  }\n  return false;\n};\n\nexport const setAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ASST_SEC, false);\n};\n\nexport const goToAsstSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_ASST_SEC, URLS.ASST_SEC);\n};\n\nexport const setBasicEmailAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMAIL_ADDRESS, false);\n};\n\nexport const setBusinessAlternates = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_ALT, false);\n};\n\nexport const setBusinessDescription = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DESC, false);\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_NAME, false);\n};\n\nexport const setChooseAsstSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_ASST_SEC, false);\n};\n\nexport const setChoosePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRES, false);\n};\n\nexport const setChoosePrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_PRIM_CONTACT, false);\n};\n\nexport const setChooseSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_SEC, false);\n};\n\nexport const setChooseTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_TRSR, false);\n};\n\nexport const setChooseVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CHOOSE_VP, false);\n};\n\nexport const setCorpStock = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_STOCK, false);\n};\n\nexport const setHasMoreThanOneShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.HAS_MORE_THAN_ONE_SHARE, false);\n};\n\nexport const setDBAEntities = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DBA_ENTITIES, false);\n};\n\nexport const setDirectorCount = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DIR_COUNT, false);\n};\n\nexport const setRegisteredAgent = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.REG_AGENT, false);\n};\n\nexport const setDirectorList = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DIR_LIST, false);\n};\n\nexport const setDomainNamePrimary = (dispatch, data) => {\n  domainNameData.skip = data.skip || false;\n  set(dispatch, data, ACTIONS.DOMAIN_NAME, false);\n};\n\nexport const setEstimatedFormationDate = (dispatch, data) => {\n  logger.logAction(ACTIONS.EST_DATE, data);\n  dispatch({\n    type: ACTIONS.EST_DATE,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setHasAsstSecretary = (dispatch, data) => {\n  officerData.hasAsstSecretary = data.hasAsstSecretary;\n  set(dispatch, data, ACTIONS.HAS_ASST_SEC, false);\n};\n\nexport const setHasVicePresident = (dispatch, data) => {\n  officerData.hasVicePresident = data.hasVicePresident;\n  set(dispatch, data, ACTIONS.HAS_VP, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRES, false);\n};\n\nexport const goToPresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRES, URLS.PRES);\n};\n\nexport const setPrimaryContact = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIM_CONTACT, false);\n};\n\nexport const goToPrimaryContact = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_PRIM_CONTACT, URLS.PRIM_CONTACT);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, false);\n};\n\nexport const setPurchaseDBACompliance = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PURCHASE_DBA_COMPLIANCE, false);\n};\n\nexport const setPurchaseDBAEntity = (dispatch, data) => {\n  postpurchaseData.purchaseDBAEntity = data.purchaseDBAEntity;\n  set(dispatch, data, ACTIONS.PURCHASE_DBA_ENTITY, false);\n};\n\nexport const setPurchaseRA = (dispatch, data) => {\n  postpurchaseData.purchaseRA = data.purchaseRA;\n  set(dispatch, data, ACTIONS.PURCHASE_REGISTERED_AGENT, false, data.doReplace || false);\n};\n\nexport const setPurchaseVBA = (dispatch, data) => {\n  postpurchaseData.purchaseVBA = data.purchaseVBA;\n  const boolAsStr = parseBoolToString(data.purchaseVBA);\n  set(dispatch, data, ACTIONS.PURCHASE_VBA, false, getButtonClickDetails(boolAsStr, boolAsStr));\n};\n\nexport const setPurchaseVanityProduct = (dispatch, data) => {\n  postpurchaseData.purchaseVanityProduct = data.purchaseVanityProduct;\n  set(dispatch, data, VP_ACTIONS.VANITY_PRODUCT_OFFER, false);\n};\n\nexport const setSecretary = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SEC, false);\n};\n\nexport const goToSecretary = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_SEC, URLS.SEC);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n  logger.logAction(REGISTRATION_ACTIONS.PURCHASE_SUCCESS, data);\n  dispatch({\n    type: REGISTRATION_ACTIONS.PURCHASE_SUCCESS,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setStartComplete = (dispatch, data) => {\n  updateSnapshots();\n  set(dispatch, data, ACTIONS.START_COMP, data.forward);\n};\n\nexport const setTreasurer = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.TRSR, false);\n};\n\nexport const goToTreasurer = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_TRSR, URLS.TRSR);\n};\n\nexport const setVicePresident = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.VP, false);\n};\n\nexport const goToVicePresident = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_TO_VP, URLS.VP);\n};\n\nexport const setAuthorizedSignatory = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.AUTH_SIG, false);\n};\n\nexport const updateContacts = (dispatch, data) => {\n  const { contactType } = data;\n  const type = {\n    member: 'UPDATE_MBR',\n    manager: 'UPDATE_MGR',\n    director: 'UPDATE_DIR',\n    officer: 'UPDATE_OFC'\n  };\n  const action = type[contactType || ''];\n  if (action) set(dispatch, data, ACTIONS[action], false);\n};\n\nexport const updateOrder = (dispatch, reducerData, filingFees, expediteFees, advance, ldFlags) => {\n  logger.logAction(ACTIONS.UPDATE_ORDER, { advance });\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService.updateCorp(reducerData, filingFees, expediteFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1, true, ldFlags);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport default {\n  getEntryPoint,\n  initCorpStockFlow,\n  setStockFee,\n  submitCorpStockCalculated,\n  submitCorpStock,\n  submitStockCheckout,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  goToAsstSecretary,\n  goToPresident,\n  goToPrimaryContact,\n  goToSecretary,\n  goToTreasurer,\n  goToVicePresident,\n  setAsstSecretary,\n  setBasicEmailAddress,\n  setBusinessAlternates,\n  setBusinessDescription,\n  setBusinessName,\n  setChooseAsstSecretary,\n  setChoosePresident,\n  setChoosePrimaryContact,\n  setChooseSecretary,\n  setChooseTreasurer,\n  setChooseVicePresident,\n  setCorpStock,\n  setHasMoreThanOneShare,\n  setDBAEntities,\n  setDirectorCount,\n  setDirectorList,\n  setDomainNamePrimary,\n  setHasAsstSecretary,\n  setHasVicePresident,\n  setMailingAddress,\n  setPhysicalAddress,\n  setPresident,\n  setPrimaryContact,\n  setPrincipalAddress,\n  setPurchaseDBACompliance,\n  setPurchaseDBAEntity,\n  setPurchaseRA,\n  setPurchaseVBA,\n  setSecretary,\n  setShare,\n  setStartComplete,\n  setTreasurer,\n  setVicePresident,\n  setEstimatedFormationDate,\n  setAuthorizedSignatory,\n  updateContacts,\n  updateOrder\n};\n","import { URLS } from '../../../constants/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","\nimport { URLS } from '../../../constants/complete_ein';\n\nconst\n  /* eslint-disable max-statements */\n  getAddressFlow = (url, registration) => {\n    const { usePhysicalAsMailing } = registration.businessAddresses,\n      { mailingAddressRequired, physicalAddressRequired } = registration.ein,\n      flowItems = [];\n\n    if (physicalAddressRequired || url === URLS.PHYS_ADDR) {\n      flowItems.push(URLS.PHYS_ADDR);\n      if (!usePhysicalAsMailing || url === URLS.MAIL_ADDR) {\n        flowItems.push(URLS.MAIL_ADDR);\n      }\n    } else if (mailingAddressRequired || url === URLS.MAIL_ADDR) {\n      flowItems.push(URLS.MAIL_ADDR);\n    }\n    return flowItems;\n  },\n  getEINFromRegistrationFlow = (url, registration) => {\n    const\n      { business, member, ein } = registration,\n      { type } = business,\n      { hasTwo } = member,\n      { llcMarried, motorVehicle, responsibleParty, hasSSN, hasDBAs, employeesW2 } = ein,\n      { collectDataFromUser = false } = responsibleParty || {},\n      flow = [ URLS.START_EIN ];\n\n    if (type === 'CORP') {\n      flow.push(URLS.CORP_TAXED);\n    } else if (hasTwo) {\n      flow.push(URLS.LLC_ARE_MARRIED);\n      if (llcMarried) {\n        flow.push(URLS.LLC_MARRIED_TAXED);\n      }\n    }\n\n    // TODO: HAS_SSN accepts both SSN and ITIN (the page and field are labeled \"SSN or ITIN\"),\n    // but we collect no signal about which the user has. Investigate adding a tax_identifier_type\n    // question (ssn vs itin) so the BFF can forward the correct type to the ein_creation OrderTask.\n    flow.push(URLS.CHOOSE_RESP, URLS.HAS_SSN);\n    if (hasSSN === false) {\n      flow.push(URLS.NO_SSN);\n    }\n    if (!collectDataFromUser) {\n      flow.push(URLS.RESP_INFO);\n    }\n    flow.push(URLS.HAS_DBAS);\n    if (hasDBAs) {\n      flow.push(URLS.DBA_NAMES);\n    }\n    flow.push(...getAddressFlow(url, registration));\n\n    if (type === 'CORP') {\n      flow.push(URLS.CORP_INFO);\n    }\n    flow.push(URLS.BUS_QUEST_START, URLS.GAMBLING, URLS.ATF, URLS.HAS_EMPL_W2);\n\n    if (employeesW2) {\n      flow.push(URLS.EMPL_W2);\n    }\n\n    flow.push(URLS.VEHICLE);\n    if (motorVehicle) {\n      flow.push(URLS.VEHICLE_WEIGHT);\n    }\n    flow.push(URLS.BUS_720, URLS.BUS_ACT, URLS.DATA_CONFIRM);\n    return flow;\n  },\n  /* eslint-enable max-statements */\n\n  // eslint-disable-next-line max-statements\n  getEINFromRegisterEINFlow = (url, registration) => {\n    const\n      { business, member, ein } = registration,\n      { type } = business,\n      { hasTwo } = member,\n      { llcMarried, motorVehicle, hasSSN, hasDBAs, employeesW2 } = ein,\n      flow = [ URLS.START_EIN, URLS.EIN_REASON ];\n\n    if (type !== 'CORP' && type !== 'SOLE') {\n      flow.push(URLS.LLC_MBR_COUNT);\n      if (hasTwo) {\n        flow.push(URLS.LLC_ARE_MARRIED);\n        if (llcMarried) {\n          flow.push(URLS.LLC_MARRIED_TAXED);\n        }\n      }\n    }\n    flow.push(URLS.RESP_PARTY, URLS.HAS_SSN);\n    if (!hasSSN) {\n      flow.push(URLS.NO_SSN);\n    }\n    flow.push(URLS.RESP_INFO, URLS.HAS_DBAS);\n    if (hasDBAs) {\n      flow.push(URLS.DBA_NAMES);\n    }\n    flow.push(...getAddressFlow(url, registration));\n    if (type === 'CORP') {\n      flow.push(URLS.CORP_INFO);\n    }\n    flow.push(URLS.BUS_QUEST_START, URLS.GAMBLING, URLS.ATF, URLS.HAS_EMPL_W2);\n\n    if (employeesW2) {\n      flow.push(URLS.EMPL_W2);\n    }\n\n    flow.push(URLS.VEHICLE);\n    if (motorVehicle) {\n      flow.push(URLS.VEHICLE_WEIGHT);\n    }\n    flow.push(URLS.BUS_720, URLS.BUS_ACT, URLS.DATA_CONFIRM, URLS.SHARE, URLS.COMPLETE);\n    return flow;\n  },\n\n  getFlowOrder = (url, registration) => {\n    const\n      { page } = registration,\n      { registrationFlow } = page;\n\n    if (url === URLS.COMPLETE || url === URLS.SHARE) {\n      return [ URLS.SHARE, URLS.COMPLETE ];\n    }\n    if (registrationFlow === 'ein') {\n      return getEINFromRegisterEINFlow(url, registration);\n    }\n    return getEINFromRegistrationFlow(url, registration);\n  };\n\nexport default {\n  getEINFromRegisterEINFlow,\n  getEINFromRegistrationFlow,\n  getFlowOrder\n};\n","import { getCompleteEINFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getCompleteEINFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { getEntryPoint as getCorpEntryPoint } from '../complete_corp';\nimport { getEntryPoint as getDBAEntityEntryPoint, getCompleteEntryPoint as getDBACompleteEntryPoint } from '../complete_dbaentity';\nimport { getEntryPoint as getLLCEntryPoint } from '../complete_llc';\nimport { getEntryPoint as getPostPurchaseEntryPoint } from '../purchase_post_addons';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, URLS } from '../../constants/complete_ein';\nimport logger from '../../utils/ClientLogger';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as businessAddressesKey } from '../../reducers/registration/businessAddresses';\nimport { storageKey as einKey } from '../../reducers/registration/ein';\nimport { storageKey as memberKey } from '../../reducers/registration/members';\nimport { storageKey as pageKey } from '../../reducers/registration/page';\nimport { storageKey as purchaseKey } from '../../reducers/registration/purchase';\nimport { orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\n\nconst\n  defaultBusinessData = { type: 'LLCX', id: '' },\n  businessData = getReducerSnapshot(businessKey, defaultBusinessData),\n  defaultBusinessAddressesData = { usePhysicalAsPrincipal: false, usePhysicalAsMailing: false, useMailingAsPrincipal: false },\n  businessAddressesData = getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData),\n  defaultPageData = { registrationFlow: '' },\n  pageData = getReducerSnapshot(pageKey, defaultPageData),\n  defaultEINData = {\n    mailingAddressRequired: true,\n    principalAddressRequired: true,\n    physicalAddressRequired: true,\n    hasDBA: null,\n    llcMarried: null,\n    motorVehicle: null,\n    memberCount: null,\n    responsibleParty: { collectDataFromUser: false },\n    skipEIN: false\n  },\n  einData = getReducerSnapshot(einKey, defaultEINData),\n  defaultPurchaseData = { ein: null },\n  purchaseData = getReducerSnapshot(purchaseKey, defaultPurchaseData),\n  defaultMemberData = { members: [] },\n  memberData = getReducerSnapshot(memberKey, defaultMemberData);\n\nmemberData.hasTwo = pageData.registrationFlow === 'ein' ? einData.memberCount === 2 : memberData.members.length === 2;\n\nconst\n  getFlowOrder = (url) => {\n    const\n      registration = {\n        business: businessData,\n        businessAddresses: businessAddressesData,\n        page: pageData,\n        ein: einData,\n        purchase: purchaseData,\n        member: memberData\n      },\n      flow = getFlow(url, registration);\n\n    return flow;\n  },\n\n  go = (jump) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      { registrationFlow } = pageData,\n      { type } = businessData;\n    if (jumpIndex < 0) {\n      if (registrationFlow === 'ein' || registrationFlow === 'bl') {\n        browserHistory.push(`/${URLS.BASE}/${flowOrder[0]}`);\n      } else if (registrationFlow === 'dba') {\n        browserHistory.push(getDBAEntityEntryPoint(true));\n      } else if (type === 'CORP') {\n        browserHistory.push(getCorpEntryPoint(true));\n      } else {\n        browserHistory.push(getLLCEntryPoint(true));\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'ein' || registrationFlow === 'bl') {\n        if (businessData.id) {\n          document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n        } else {\n          document.location = `/${DASHBOARD_URLS.BASE}`;\n        }\n      } else if (registrationFlow === 'dba') {\n        browserHistory.push(getDBACompleteEntryPoint());\n      } else {\n        browserHistory.push(getPostPurchaseEntryPoint());\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n\n  set = (dispatch, data, actionKey, jump) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (jump) {\n      go(1);\n    }\n  },\n  getServiceEndpoint = (reducerData) => {\n    const { business: { type }, page: { registrationFlow } } = reducerData;\n\n    if (registrationFlow === 'ein') {\n      return 'updateEIN';\n    }\n    if (registrationFlow === 'dba') {\n      return 'updateDBAEntity';\n    }\n    if (type === 'CORP') {\n      return 'updateCorp';\n    }\n    return 'updateLLC';\n  },\n  updateSnapshots = () => {\n    _assign(businessData, getReducerSnapshot(businessKey, defaultBusinessData));\n    _assign(businessAddressesData, getReducerSnapshot(businessAddressesKey, defaultBusinessAddressesData));\n    _assign(einData, getReducerSnapshot(einKey, defaultEINData));\n    _assign(memberData, getReducerSnapshot(memberKey, defaultMemberData));\n    _assign(purchaseData, getReducerSnapshot(purchaseKey, defaultPurchaseData));\n    _assign(pageData, getReducerSnapshot(pageKey, defaultPageData));\n  };\n\nexport const getEntryPoint = (fromBack) => {\n  updateSnapshots();\n\n  const flow = getFlowOrder(),\n    index = (fromBack && !einData.skipEIN) ? flow.length - 1 : 0;\n\n  return `/${URLS.BASE}/${flow[index]}`;\n};\n\nexport const goBack = (dispatch) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1);\n};\n\nexport const getNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n  const\n    { registrationFlow } = pageData,\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'ein' || registrationFlow === 'bl') {\n        if (businessData.id) {\n          return { isDashboard: true, url: `/${COMPANY_URLS.BASE}/${businessData.id}` };\n        }\n        return { isDashboard: true, url: `/${DASHBOARD_URLS.BASE}` };\n      }\n      if (registrationFlow === 'dba') {\n        return { isDashboard: false, url: getDBACompleteEntryPoint() };\n      }\n      return { isDashboard: false, url: getPostPurchaseEntryPoint() };\n    }\n    return { isDashboard: false, url: `/${URLS.BASE}/${flowOrder[jumpIndex]}` };\n  }\n\n  return { isDashboard: false, url: '' };\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  updateSnapshots();\n  const\n    { registrationFlow } = pageData,\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      if (registrationFlow === 'ein' || registrationFlow === 'bl') {\n        if (businessData.id) {\n          document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n        } else {\n          document.location = `/${DASHBOARD_URLS.BASE}`;\n        }\n      } else if (registrationFlow === 'dba') {\n        browserHistory.push(getDBACompleteEntryPoint());\n      } else {\n        browserHistory.push(getPostPurchaseEntryPoint());\n      }\n    } else {\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const setATF = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.ATF, false);\n};\n\nexport const setBusinessActivity = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_ACT, false);\n};\n\nexport const setBusinessForm720 = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_720, false);\n};\n\nexport const setBusinessQuestionsStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_QUEST_START, false);\n};\n\nexport const setChooseResponsible = (dispatch, data) => {\n  if (!einData.responsibleParty) {\n    einData.responsibleParty = {};\n  }\n  einData.responsibleParty.collectDataFromUser = data.collectDataFromUser || false;\n  set(dispatch, data, ACTIONS.CHOOSE_RESP, false);\n};\n\nexport const setCorpInfo = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_INFO, false);\n};\n\nexport const setCorpTaxed = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_TAXED, false);\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, data, URLS.COMPLETE, false);\n  if (businessData.id) {\n    document.location = `/${COMPANY_URLS.BASE}/${businessData.id}`;\n  } else {\n    document.location = `/${DASHBOARD_URLS.BASE}`;\n  }\n};\n\nexport const setDataConfirmation = (dispatch, data) => {\n  const { registrationFlow, ...dataConfirm } = data;\n  set(dispatch, dataConfirm, ACTIONS.DATA_CONFIRM, false);\n  if (registrationFlow === 'dba') {\n    set(dispatch, dataConfirm, ACTIONS.DATA_DBA_CONFIRM, false);\n  }\n};\n\nexport const setEINReason = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EIN_REASON, false);\n};\n\nexport const setEmployeesW2 = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EMPL_W2, false);\n};\n\nexport const setHasEmployeesW2 = (dispatch, data) => {\n  einData.employeesW2 =  data.employeesW2;\n  set(dispatch, data, ACTIONS.HAS_EMPL_W2, false);\n};\n\nexport const setGambling = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.GAMBLING, false);\n};\n\nexport const setHasSSN = (dispatch, data) => {\n  einData.hasSSN = data.hasSSN;\n  set(dispatch, data, ACTIONS.HAS_SSN, false);\n};\n\nexport const setLLCAreMarried = (dispatch, data) => {\n  einData.llcMarried = data.llcMarried;\n  set(dispatch, data, ACTIONS.LLC_ARE_MARRIED, false);\n};\n\nexport const setLLCMarriedTaxed = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LLC_MARRIED_TAXED, false);\n};\n\nexport const setLLCMemberCount = (dispatch, data) => {\n  memberData.hasTwo = data.memberCount === 2;\n  set(dispatch, data, ACTIONS.LLC_MBR_COUNT, false);\n};\n\nexport const setMailingAddress = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR, false);\n};\n\nexport const setMailingAddressModal = (dispatch, data) => {\n  businessAddressesData.useMailingAsPrincipal = data.useMailingAsPrincipal;\n  set(dispatch, data, ACTIONS.MAIL_ADDR_MODAL, false);\n};\n\nexport const setMotorVehicle = (dispatch, data) => {\n  einData.motorVehicle = data.motorVehicle;\n  set(dispatch, data, ACTIONS.VEHICLE, false);\n};\n\nexport const setMotorVehicleWeight = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.VEHICLE_WEIGHT, false);\n};\n\nexport const setNoSSN = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.NO_SSN, false);\n};\n\nexport const setPhysicalAddress = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR, false);\n};\n\nexport const setPhysicalAddressModal = (dispatch, data) => {\n  businessAddressesData.usePhysicalAsMailing = data.usePhysicalAsMailing;\n  businessAddressesData.usePhysicalAsPrincipal = data.usePhysicalAsPrincipal;\n  set(dispatch, data, ACTIONS.PHYS_ADDR_MODAL, false);\n};\n\nexport const setPrincipalAddress = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR, false);\n};\n\nexport const setPrincipalAddressModal = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PRIN_ADDR_MODAL, false);\n};\n\nexport const setResponsibleInfo = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.RESP_INFO, false);\n};\n\nexport const setResponsibleParty = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.RESP_PARTY, false);\n};\n\nexport const setShare = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.SHARE, true);\n};\n\nexport const setStartEIN = (dispatch, data) => {\n  updateSnapshots();\n  einData.principalAddressRequired = data.principalAddressRequired;\n  einData.mailingAddressRequired = data.mailingAddressRequired;\n  einData.physicalAddressRequired = data.physicalAddressRequired;\n  memberData.hasTwo = pageData.registrationFlow === 'ein' ? einData.memberCount === 2 : memberData.members.length === 2;\n  set(dispatch, data, ACTIONS.START_EIN, data.forward);\n};\n\nexport const setDBAs = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.DBA_NAMES, false);\n};\n\nexport const setHasDBAs = (dispatch, data) => {\n  einData.hasDBAs = data.hasDBAs;\n  set(dispatch, data, ACTIONS.HAS_DBAS, false);\n};\n\nexport const setBusinessData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.BUS_DATA, false);\n};\n\nexport const setCorpData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.CORP_DATA, false);\n};\n\nexport const setEINData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.EIN_DATA, false);\n};\n\nexport const setMemberData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.MBR_DATA, false);\n};\n\nexport const setResponsibleData = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.RESP_DATA, false);\n};\n\nexport const setEstimatedFormationDate = (dispatch, data) => {\n  logger.logAction(ACTIONS.EST_DATE, data);\n  dispatch({\n    type: ACTIONS.EST_DATE,\n    payload: {\n      data\n    }\n  });\n};\n\nconst updateOrderTaskStatus = (dispatch, einOrderTaskUuid, status, subStatus, skip) => {\n  orderService.updateOrderTaskStatus(\n    einOrderTaskUuid,\n    status,\n    subStatus\n  ).then(() => {\n    set(dispatch, ACTIONS.SKIP_EIN, skip);\n  }).catch((err) => {\n    set(dispatch, {\n      error: err && err.error ? err.error : 'Server Error',\n      errorCode: err && err.errorCode ? err.errorCode : 500\n    }, ACTIONS.SKIP_EIN, !skip);\n  });\n};\n\nexport const setSkipEIN = (dispatch, data) => {\n  const { einOrderTaskUuid, skipEIN } = data;\n  let status = '';\n  let subStatus = '';\n  logger.logAction(ACTIONS.SKIP_EIN, data);\n  dispatch({\n    type: ACTIONS.SKIP_EIN\n  });\n  if (skipEIN) {\n    status = 'pending';\n    subStatus = 'fulfillment hold';\n    updateOrderTaskStatus(dispatch, einOrderTaskUuid, status, subStatus, true);\n    browserHistory.push(getPostPurchaseEntryPoint());\n  } else {\n    if (einData.skipEIN) {\n      status = 'incomplete';\n      subStatus = '';\n      updateOrderTaskStatus(dispatch, einOrderTaskUuid, status, subStatus, false);\n    }\n    set(dispatch, ACTIONS.SKIP_EIN, false);\n  }\n};\n\n\nexport const updateOrder = (dispatch, reducerData, filingFees, expediteFees, advance) => {\n  const\n    serviceEndpoint = getServiceEndpoint(reducerData);\n\n  logger.logAction(ACTIONS.UPDATE_ORDER);\n  dispatch({\n    type: ACTIONS.UPDATE_ORDER\n  });\n  registrationService[serviceEndpoint](reducerData, filingFees, expediteFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.UPDATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData\n      }\n    });\n    if (advance) {\n      go(1);\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.UPDATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.UPDATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\n\nexport default {\n  getEntryPoint,\n  goBack,\n  getNextUncompletedPage,\n  goToNextUncompletedPage,\n  setATF,\n  setBusinessActivity,\n  setBusinessForm720,\n  setBusinessQuestionsStart,\n  setChooseResponsible,\n  setComplete,\n  setCorpInfo,\n  setCorpTaxed,\n  setDataConfirmation,\n  setEINReason,\n  setEmployeesW2,\n  setGambling,\n  setHasSSN,\n  setLLCAreMarried,\n  setLLCMarriedTaxed,\n  setLLCMemberCount,\n  setMailingAddress,\n  setMailingAddressModal,\n  setMotorVehicle,\n  setMotorVehicleWeight,\n  setNoSSN,\n  setPhysicalAddress,\n  setPhysicalAddressModal,\n  setPrincipalAddress,\n  setPrincipalAddressModal,\n  setResponsibleInfo,\n  setResponsibleParty,\n  setShare,\n  setStartEIN,\n  setDBAs,\n  setBusinessData,\n  setCorpData,\n  setEINData,\n  setMemberData,\n  setResponsibleData,\n  setEstimatedFormationDate,\n  updateOrder,\n  setSkipEIN\n};\n","import _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/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_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/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_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/initialization';\nimport { initializationService } from '../../services';\nimport WebView from '../../utils/WebViewUtils';\nimport logger from '../../utils/ClientLogger';\n\n// Initialization Action Creators\nconst isFromWebView = WebView.isWebView;\n\nexport const setInitialization = (dispatch, data) => {\n  data.isWebView = isFromWebView;\n  logger.logAction(ACTIONS.SET_INITIALIZATION, data);\n  dispatch({\n    type: ACTIONS.SET_INITIALIZATION,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setAppEntryPoint = (dispatch, useReferrer) => {\n  logger.logAction(ACTIONS.SET_APP_ENTRY_POINT, useReferrer ? document.referrer : window.location.pathname);\n  dispatch({\n    type: ACTIONS.SET_APP_ENTRY_POINT,\n    payload: {\n      data: {\n        entryPoint: useReferrer ? document.referrer : window.location.pathname\n      }\n    }\n  });\n};\n\nexport const getStateFees = (dispatch, stateCode) => {\n  logger.logAction(ACTIONS.GET_STATE_FEES, { stateCode });\n  dispatch({\n    type: ACTIONS.GET_STATE_FEES\n  });\n  initializationService.getStateFees(stateCode).then((response) => {\n    const stateFeeResponse = (stateCode) ? { [stateCode]: response } : response;\n\n    logger.logAction(ACTIONS.GET_STATE_FEES_COMPLETE, stateFeeResponse);\n    dispatch({\n      type: ACTIONS.GET_STATE_FEES_COMPLETE,\n      payload: {\n        data: stateFeeResponse\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_STATE_FEES_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_STATE_FEES_COMPLETE,\n      error: true,\n      payload: {\n        data: err && err.errorCode ? err.errorCode : 2000\n      }\n    });\n  });\n};\n\nexport const getExpediteFees = (dispatch, stateCode) => {\n  logger.logAction(ACTIONS.GET_EXPEDITE_FEES, { stateCode });\n  dispatch({\n    type: ACTIONS.GET_EXPEDITE_FEES\n  });\n  initializationService.getExpediteFees(stateCode).then((response) => {\n    const expediteFeeResponse = (stateCode) ? { [stateCode]: response } : response;\n\n    logger.logAction(ACTIONS.GET_EXPEDITE_FEES_COMPLETE, expediteFeeResponse);\n    dispatch({\n      type: ACTIONS.GET_EXPEDITE_FEES_COMPLETE,\n      payload: {\n        data: expediteFeeResponse\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_EXPEDITE_FEES_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_EXPEDITE_FEES_COMPLETE,\n      error: true,\n      payload: {\n        data: err\n      }\n    });\n  });\n};\n\nexport const initializeData = (dispatch, data) => {\n  logger.logAction(ACTIONS.INITIALIZE_PRICING_DATA, data);\n  dispatch({\n    type: ACTIONS.INITIALIZE_PRICING_DATA,\n    payload: {\n      data\n    }\n  });\n};\n\nexport default {\n  setAppEntryPoint,\n  getStateFees,\n  getExpediteFees\n};\n","import { ACTIONS } from '../../constants/orders';\nimport logger from '../../utils/ClientLogger';\nimport { orderService } from '../../services';\n\nexport const getOrders = (dispatch) => {\n  logger.logAction(ACTIONS.GET_ORDERS);\n  dispatch({\n    type: ACTIONS.GET_ORDERS\n  });\n  orderService.getOrders().then((response) => {\n    logger.logAction(ACTIONS.GET_ORDERS_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.GET_ORDERS_COMPLETE,\n      payload: {\n        data: response\n      }\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_ORDERS_COMPLETE, err);\n    if (err.message === 'Order missing data and no existing data') {\n      dispatch({\n        type: ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: 3001\n        }\n      });\n      return;\n    }\n    dispatch({\n      type: ACTIONS.GET_ORDERS_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 3000\n      }\n    });\n  });\n};\n\nexport const getOrderTasks = (dispatch, businessEntityUuid) => {\n  logger.logAction(ACTIONS.GET_ORDER_TASKS, { businessEntityUuid });\n  dispatch({\n    type: ACTIONS.GET_ORDER_TASKS\n  });\n  return orderService.getOrderTasksByCompany(businessEntityUuid).then((response) => {\n    logger.logAction(ACTIONS.GET_ORDER_TASKS_COMPLETE, response);\n    // The BFF returns the task list as an index-keyed object with envelope fields, not the bare array\n    // the contract shows — so extract real task entries (objects with order_task_uuid) either way.\n    const tasksArray = (Array.isArray(response) ? response : Object.values(response || {}))\n      .filter((task) => { return task && typeof task === 'object' && task.order_task_uuid; });\n    if (tasksArray.length > 0) {\n      dispatch({\n        type: ACTIONS.GET_ORDER_TASKS_COMPLETE,\n        payload: { orderTasks: tasksArray }\n      });\n    }\n    return tasksArray;\n  }).catch((err) => {\n    logger.error(ACTIONS.GET_ORDER_TASKS_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.GET_ORDER_TASKS_COMPLETE,\n      error: true,\n      payload: {\n        errorCode: err && err.errorCode ? err.errorCode : 3000\n      }\n    });\n  });\n};\n\nexport default {\n  getOrders,\n  getOrderTasks\n};\n","import _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_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_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 _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 _get from 'lodash/get';\nimport _cloneDeep from 'lodash/cloneDeep';\nimport { URLS, ADDITIONAL_QUESTIONS_KEYS as KEYS } from '../../../constants/annual_report';\nimport { txFlowChangesEnabled } from '../../../components/register_compliance_reports/annual_report/utils/common';\nimport { setForeignJurisdictionStateId } from '../index';\nimport { reportError } from '../../../utils/ReportingUtils';\n\nconst questionsShowFlagMap = {\n  showMakesLessThanAmount: URLS.ADDITIONAL_QUESTIONS.MAKES_LESS_THAN,\n\n  showHadGoodStanding: URLS.ADDITIONAL_QUESTIONS.GOOD_STANDING_IN_MD,\n  showHadPersonalProperty: URLS.ADDITIONAL_QUESTIONS.PERSONAL_PROPERTY_IN_MD,\n  showUseProperty: URLS.ADDITIONAL_QUESTIONS.PROPERTY_IN_MD,\n  showMaintainLicense: URLS.ADDITIONAL_QUESTIONS.MAINTAIN_LICENSE,\n  showHadGrossSales: URLS.ADDITIONAL_QUESTIONS.GROSS_SALES_IN_MD,\n  showListGrossSales: URLS.ADDITIONAL_QUESTIONS.LIST_GROSS_SALES,\n  showDidDisposeOfProperty: URLS.ADDITIONAL_QUESTIONS.DISPOSE_OF_PROPERTY,\n\n  showWebFileId: URLS.ADDITIONAL_QUESTIONS.WEB_FILE_ID,\n  showTotalRevenue: URLS.ADDITIONAL_QUESTIONS.TOTAL_REVENUE,\n  showOwnsAnyOtherBusiness: URLS.ADDITIONAL_QUESTIONS.OWNS_ANY_OTHER_BUSINESS,\n  showCompanyDataOwns: URLS.ADDITIONAL_QUESTIONS.COMPANY_DATA_OWNS,\n  showIsOwnedByAnyOtherBusiness: URLS.ADDITIONAL_QUESTIONS.IS_OWNED_BY_ANY_OTHER_BUSINESS,\n  showCompanyDataOwnedBy: URLS.ADDITIONAL_QUESTIONS.COMPANY_DATA_OWNED_BY,\n\n  showOwnsRealProperty: URLS.ADDITIONAL_QUESTIONS.OWN_PROPERTY,\n  showHasThereBeenATransferOfStock: URLS.ADDITIONAL_QUESTIONS.TRANSFER_OF_STOCK,\n  showHasTransferOfStockBeenOverEqualFiftyPercent: URLS.ADDITIONAL_QUESTIONS.TRANSFER_OF_STOCK_OVER_EQUAL_FIFTY_PERCENT,\n  showHasControllingInterestTransferFiledDepartmentRevenue: URLS.ADDITIONAL_QUESTIONS.HAS_CONTROLLING_INTEREST_TRANSFER_FILED_DEPARTMENT_REVENUE,\n\n  showHasEnteredIntoContract: URLS.ADDITIONAL_QUESTIONS.HAS_ENTERED_INTO_CONTRACT,\n\n  showHoldsInterestInAgriculturalLand: URLS.ADDITIONAL_QUESTIONS.INTEREST_AGRICULTURAL_LAND,\n  showIsFamilyFarmLLC: URLS.ADDITIONAL_QUESTIONS.FAMILY_FARM_LLC,\n\n  showNaicsCode: URLS.ADDITIONAL_QUESTIONS.NAICS_CODE,\n  showNumberOfStateEmployees: URLS.ADDITIONAL_QUESTIONS.NUMBER_OF_STATE_EMPLOYEES,\n  showNumberOfEmployees: URLS.ADDITIONAL_QUESTIONS.NUMBER_OF_EMPLOYEES,\n  showScrapMetalDealer: URLS.ADDITIONAL_QUESTIONS.SCRAP_METAL_DEALER,\n  showCurrentlyExporting: URLS.ADDITIONAL_QUESTIONS.CURRENTLY_EXPORTING,\n  showTopExportMarkets: URLS.ADDITIONAL_QUESTIONS.TOP_EXPORT_MARKETS,\n  showBeInterestedInExporting: URLS.ADDITIONAL_QUESTIONS.BE_INTERESTED_IN_EXPORTING,\n  showIsMinorityOwnedBusiness: URLS.ADDITIONAL_QUESTIONS.IS_MINORITY_OWNED_BUSINESS,\n  showIsWomanOwnedBusiness: URLS.ADDITIONAL_QUESTIONS.IS_WOMAN_OWNED_BUSINESS,\n  showsOwnMoreThanOneBusiness: URLS.ADDITIONAL_QUESTIONS.OWN_MORE_THAN_ONE_BUSINESS,\n  showHowManyBusinesses: URLS.ADDITIONAL_QUESTIONS.HOW_MANY_BUSINESSES,\n  showHowManyCounties: URLS.ADDITIONAL_QUESTIONS.HOW_MANY_COUNTIES,\n  showDoesEmployIndividualsWhoServeInForces: URLS.ADDITIONAL_QUESTIONS.DOES_EMPLOY_INDIVIDUALS_WHO_SERVE_IN_FORCES,\n  showHowManyIndividuals: URLS.ADDITIONAL_QUESTIONS.HOW_MANY_INDIVIDUALS,\n  showDoesOwnerServeInForces: URLS.ADDITIONAL_QUESTIONS.DOES_OWNER_SERVE_IN_FORCES,\n  showGetSupportFromWVSBDC: URLS.ADDITIONAL_QUESTIONS.GET_SUPPORT_FROM_WVSBDC,\n  showIssuedSharesAndGrossAssets: URLS.ADDITIONAL_QUESTIONS.ISSUED_SHARES_AND_GROSS_ASSETS,\n  showWorkerCompensationInsurance: URLS.ADDITIONAL_QUESTIONS.WORKER_COMPENSATION_INSURANCE,\n  showIsBusinessSelfInsured: URLS.ADDITIONAL_QUESTIONS.IS_BUSINESS_SELF_INSURED,\n  showSelfInsuranceDetails: URLS.ADDITIONAL_QUESTIONS.SELF_INSURANCE_DETAILS,\n  showChiefExecutiveOfficer: URLS.ADDITIONAL_QUESTIONS.CHIEF_EXECUTIVE_OFFICER,\n  showBusinessEntityPrincipalAddress: URLS.ADDITIONAL_QUESTIONS.BUSINESS_ENTITY_PRINCIPAL_ADDRESS,\n  showNumberOfDirectorsAndDirectorsAsWomen: URLS.ADDITIONAL_QUESTIONS.NUMBER_OF_DIRECTORS_AND_DIRECTORS_AS_WOMEN,\n  showOwnedUSMilitaryVeteran: URLS.ADDITIONAL_QUESTIONS.OWNED_US_MILITARY_VETERAN,\n  showOwnedUSDisabledMilitaryVeteran: URLS.ADDITIONAL_QUESTIONS.OWNED_US_DISABLED_MILITARY_VETERAN,\n  showNetReceiptsLessThanOneMillion: URLS.ADDITIONAL_QUESTIONS.NET_RECEIPTS_LESS_THAN_ONE_MILLION,\n  showUpToDateStockInformation: URLS.ADDITIONAL_QUESTIONS.UP_TO_DATE_STOCK_INFORMATION,\n  showStockClass: URLS.ADDITIONAL_QUESTIONS.STOCK_CLASS,\n  showStockAdded: URLS.ADDITIONAL_QUESTIONS.STOCK_ADDED,\n  showCorpTransacts: URLS.ADDITIONAL_QUESTIONS.CORP_TRANSACTS,\n  showCorpOwnership: URLS.ADDITIONAL_QUESTIONS.CORP_OWNERSHIP,\n  showIssuedShares:URLS.ADDITIONAL_QUESTIONS.ISSUED_SHARES,\n  showControllingMembers: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS,\n  showControllingMembers1: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS1,\n  showControllingMembers2: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS2,\n  showControllingMembers3: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS3,\n  showControllingMembers3a: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS3a,\n  showControllingMembers3b: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS3b,\n  showControllingMembers3c: URLS.ADDITIONAL_QUESTIONS.CONTROLLING_MEMBERS3c,\n  showBankruptcy: URLS.ADDITIONAL_QUESTIONS.BANKRUPTCY,\n  showIsCombinedGroup: URLS.ADDITIONAL_QUESTIONS.IS_COMBINED_GROUP,\n  showIsCombinedGroupTempLossPreserved: URLS.ADDITIONAL_QUESTIONS.IS_COMBINED_GROUP_TEMP_LOSS_PRESERVED,\n  showIsTieredPartnerRevAdjusted: URLS.ADDITIONAL_QUESTIONS.IS_TIERED_PARTNER_REV_ADJUSTED,\n  showIsPassiveEntityTX: URLS.ADDITIONAL_QUESTIONS.IS_PASSIVE_ENTITY_TX,\n  showIsREITTX: URLS.ADDITIONAL_QUESTIONS.IS_REIT_TX,\n  showIsNewVetOwnedTX: URLS.ADDITIONAL_QUESTIONS.IS_NEW_VET_OWNED_TX\n};\n\nconst updatedCompanyInfoRestrictions = {\n  showListGrossSales: (updatedCompanyInfo) => {\n    return  updatedCompanyInfo[KEYS.HAD_GROSS_SALES] === 'yes';\n  },\n  showHasTransferOfStockBeenOverEqualFiftyPercent: (updatedCompanyInfo) => {\n    return  updatedCompanyInfo[KEYS.HAS_THERE_BEEN_A_TRANSFER_OF_STOCK] === 'yes';\n  },\n  showHasControllingInterestTransferFiledDepartmentRevenue: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.HAS_TRANSFER_OF_STOCK_BEEN_OVER_EQUAL_FIFTY_PERCENT] === 'yes';\n  },\n  showTopExportMarkets: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.CURRENTLY_EXPORTING] === 'yes';\n  },\n  showBeInterestedInExporting: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.CURRENTLY_EXPORTING] === 'no';\n  },\n  showHowManyBusinesses: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.OWN_MORE_THAN_ONE_BUSINESS] === 'yes';\n  },\n  showHowManyCounties: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.OWN_MORE_THAN_ONE_BUSINESS] === 'yes';\n  },\n  showHowManyIndividuals: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.DOES_EMPLOY_INDIVIDUALS_WHO_SERVE_IN_FORCES] === 'yes';\n  },\n  showIsBusinessSelfInsured: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.WORKER_COMPENSATION_INSURANCE] === 'yes';\n  },\n  showSelfInsuranceDetails: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.IS_BUSINESS_SELF_INSURED] === 'no';\n  },\n  showOwnedUSDisabledMilitaryVeteran: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.OWNED_US_MILITARY_VETERAN] === 'yes';\n  },\n  showStockClass: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.UP_TO_DATE_STOCK_INFORMATION] === 'yes';\n  },\n  showStockAdded: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.UP_TO_DATE_STOCK_INFORMATION] === 'yes';\n  },\n  showCorpTransacts: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.UP_TO_DATE_STOCK_INFORMATION] === 'no';\n  },\n  showCorpOwnership: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.UP_TO_DATE_STOCK_INFORMATION] === 'no';\n  },\n  showIsCombinedGroupTempLossPreserved: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.IS_COMBINED_GROUP] === 'yes';\n  },\n  showCompanyDataOwnedBy: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.IS_OWNED_BY_ANY_OTHER_BUSINESS] === 'yes';\n  },\n  showCompanyDataOwns: (updatedCompanyInfo) => {\n    return updatedCompanyInfo[KEYS.OWNS_ANY_OTHER_BUSINESS] === 'yes';\n  }\n};\n\nconst modifyQuestionsFlowForMdLlc = ({ originalFieldInfo }) => {\n  const fieldInfoClone = _cloneDeep(originalFieldInfo);\n\n  Object.keys(fieldInfoClone).forEach((key) => {\n    if (key.match(/^show/)) fieldInfoClone[key] = false;\n  });\n\n  return { ...fieldInfoClone, showHadGoodStanding: true, showHadPersonalProperty: true };\n};\n\nconst modifyQuestionsFlowForTx = ({ originalFieldInfo }) => {\n  const fieldsToDisable = ['showIsCombinedGroup', 'showIsCombinedGroupTempLossPreserved', 'showIsTieredPartnerRevAdjusted', 'showIsPassiveEntityTX', 'showIsREITTX', 'showIsNewVetOwnedTX'];\n  const fieldInfoClone = _cloneDeep(originalFieldInfo);\n\n  Object.keys(fieldInfoClone).forEach((key) => {\n    if (fieldsToDisable.includes(key)) fieldInfoClone[key] = false;\n  });\n\n  return fieldInfoClone;\n};\n\nconst getAdditionalQuestionsFlow = (updatedCompanyInfo, originalFieldInfo, ldFlags, domesticJurisdiction, businessType, complianceEventDueDate) => {\n  let fieldInfo = originalFieldInfo;\n\n  if (domesticJurisdiction === 'MD' && businessType === 'LLCX') {\n    fieldInfo = modifyQuestionsFlowForMdLlc({ businessType, domesticJurisdiction, originalFieldInfo, ldFlags });\n  } else if (txFlowChangesEnabled({ complianceEventDueDate, jurisdiction: domesticJurisdiction, flags: ldFlags })) {\n    fieldInfo = modifyQuestionsFlowForTx({ complianceEventDueDate, domesticJurisdiction, originalFieldInfo, ldFlags });\n  }\n\n  const reduced = Object.keys(questionsShowFlagMap).reduce((flow, showFlag) => {\n    if (fieldInfo[showFlag]) {\n      const hasToCheckUpdatedCompanyInfo = updatedCompanyInfoRestrictions[showFlag];\n      if (!hasToCheckUpdatedCompanyInfo) {\n        flow.push(questionsShowFlagMap[showFlag]);\n        return flow;\n      }\n      const canAddUrl = hasToCheckUpdatedCompanyInfo(updatedCompanyInfo);\n      if (canAddUrl) {\n        flow.push(questionsShowFlagMap[showFlag]);\n      }\n    }\n    return flow;\n  }, []);\n  return reduced;\n};\n\nconst shouldNavigateToAmendment = (updatedCompanyInfo, fieldInfo) => {\n  let flag = false;\n  if (typeof updatedCompanyInfo === 'object' && updatedCompanyInfo !== null) {\n    Object.keys(updatedCompanyInfo).forEach((fieldKey) => {\n      if (_get(fieldInfo[fieldKey], 'requiresAmendment')) {\n        flag = true;\n      }\n    });\n  }\n  return flag;\n};\n\nconst skipForeignStep = ({ annualReport, url, dispatch }) => {\n  const {\n    filingJurisdiction,\n    originalCompanyInfo,\n    complianceEventUuid\n  } = annualReport;\n  const foundJurisdiction = originalCompanyInfo.jurisdictions\n    .find(({ jurisdiction, stateId }) => {\n      return jurisdiction === filingJurisdiction && stateId?.length;\n    });\n  const isSkip = url === URLS.SELECT_JURISDICTION\n    && complianceEventUuid\n    && foundJurisdiction;\n\n  if (isSkip) {\n    setForeignJurisdictionStateId(dispatch, foundJurisdiction.stateId);\n  }\n  return isSkip;\n};\n\nconst reportMissingAdditionalQuestions = ({ additionalQuestions, annualReport, url }) => {\n  const foundQuestionsForWA = additionalQuestions.find((str) => {\n    return [URLS.ADDITIONAL_QUESTIONS.TRANSFER_OF_STOCK, URLS.ADDITIONAL_QUESTIONS.OWN_PROPERTY].includes(str);\n  });\n\n  if (url === URLS.MODIFY_COMPANY && annualReport?.filingJurisdiction === 'WA' && !foundQuestionsForWA) {\n    reportError(new Error('Annual Report: WA Additional Questions Not Found'),\n      {\n        metaData: {\n          additionalQuestions,\n          fieldInfo: annualReport.fieldInfo,\n          businessEntityUuid: annualReport.originalCompanyInfo.id,\n          complianceEventUuid: annualReport.complianceEventUuid\n        },\n        severity: 'warning'\n      }\n    );\n  }\n};\n\nconst getFlowOrder = (url, annualReport, ldFlags, dispatch) => {\n  if (url === URLS.ORDER_SUBMITTED) {\n    return [URLS.ORDER_SUBMITTED];\n  }\n  const { originalCompanyInfo, filingJurisdictionType, hasPurchasedWFC = false, fieldInfo, updatedCompanyInfo, complianceEventDueDate } = annualReport;\n  const { domesticJurisdiction, type: businessType } = originalCompanyInfo;\n  const flow = [URLS.SELECT_COMPANY, URLS.SELECT_JURISDICTION];\n\n  if (url !== URLS.MODIFY_COMPANY) {\n    if (filingJurisdictionType === 'foreign' && !skipForeignStep({ annualReport, url, dispatch })) {\n      flow.push(URLS.SELECT_FOREIGN_JURISDICTION);\n    }\n    flow.push(URLS.VALIDATE_COMPANY);\n  }\n\n  flow.push(URLS.MODIFY_COMPANY);\n\n  const additionalQuestions = getAdditionalQuestionsFlow(\n    updatedCompanyInfo || {},\n    fieldInfo || {},\n    ldFlags,\n    domesticJurisdiction,\n    businessType,\n    complianceEventDueDate\n  );\n\n  reportMissingAdditionalQuestions({ additionalQuestions, annualReport, url });\n  flow.push(...additionalQuestions);\n  if (shouldNavigateToAmendment(updatedCompanyInfo || {}, fieldInfo || {})) {\n    flow.push(URLS.ADD_AMENDMENT);\n  }\n  flow.push(URLS.CONFIRM_CHANGES);\n  if (!hasPurchasedWFC) {\n    flow.push(URLS.ADD_WFC);\n  }\n  flow.push(URLS.PAYMENT, URLS.ORDER_SUBMITTED);\n  return flow;\n};\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport { browserHistory } from 'react-router';\nimport _get from 'lodash/get';\nimport _indexOf from 'lodash/indexOf';\n\nimport { ACTIONS, URLS, ADDITIONAL_QUESTIONS_KEYS } from '../../constants/annual_report';\nimport { accountService, annualReportService, orderService, registrationService } from '../../services';\nimport logger from '../../utils/ClientLogger';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { setAppEntryPoint } from '../initialization';\nimport getFlowOrder from './flows';\nimport { storageKey } from '../../reducers/registration/annualReport';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { getAnnualReportPrice } from '../../utils/ProductService';\n\nconst defaultData = {\n  filingJurisdictionType: null,\n  fieldInfo: null,\n  updatedCompanyInfo: {},\n  originalCompanyInfo: {},\n  hasPurchasedWFC: false,\n  complianceEventUuid: ''\n};\nconst annualReportData = getReducerSnapshot(storageKey, defaultData);\n\nconst getCompanyUrl = () => {\n  if (annualReportData.originalCompanyInfo.id) {\n    return `/${COMPANY_URLS.BASE}/${annualReportData.originalCompanyInfo.id}`;\n  }\n  return `/${DASHBOARD_URLS.BASE}`;\n};\n\nconst go = (jump, ldFlags, dispatch) => {\n  const url = document.location.pathname.substring(URLS.BASE.length + 2),\n    flowOrder = getFlowOrder(url, getReducerSnapshot(storageKey, defaultData), ldFlags, dispatch),\n    index = _indexOf(flowOrder, url),\n    jumpIndex = index >= 0 ? index + jump : index;\n\n  if (jumpIndex < 0 || jumpIndex >= flowOrder.length) {\n    browserHistory.push(getCompanyUrl());\n  } else {\n    browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n  }\n};\n\nexport const fetchComplianceEvent = (dispatch, uuid ) => {\n  logger.logAction(ACTIONS.FETCH_COMPLIANCE_EVENT_REQ, { uuid });\n  dispatch({ type: ACTIONS.FETCH_COMPLIANCE_EVENT_REQ });\n\n  annualReportService.getComplianceEvent(uuid).then((data) => {\n    if (data) {\n      dispatch({\n        type: ACTIONS.FETCH_COMPLIANCE_EVENT_COMPLETE,\n        complianceEventDueDate: data.event_date\n      });\n    }\n  }).catch((error) => {\n    console.log('error', error);\n  });\n};\n\nconst createAnnualReportOrder = (dispatch, reducerData, accountId, filingFees, fieldInfo) => {\n  registrationService.createAnnualReport(reducerData, accountId, filingFees, fieldInfo).then((response) => {\n    const price = getAnnualReportPrice();\n    const addlData = createAdditionalData('annual_report', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'annual_report', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      browserHistory.push(`/${URLS.BASE}/${URLS.ORDER_SUBMITTED}`);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nconst formFieldInfo = (rules, companyType) => {\n  const fieldInfo = {\n    name: {\n      isEditable: Boolean(rules.amendment),\n      requiresAmendment: Boolean(rules.amendment)\n    },\n    business_purpose: {},\n    structure: {},\n    managers: {},\n    members: {},\n    directors: {},\n    officers: {},\n    addresses: {},\n    stock_info: {},\n    authorized_signatory: {},\n    showMakesLessThanAmount: false,\n    showHadGrossSales: false,\n    showHadGoodStanding: false,\n    showHadPersonalProperty: false,\n    showListGrossSales: false,\n    showUseProperty: false,\n    showMaintainLicense: false,\n    showDidDisposeOfProperty: false,\n    showTotalRevenue: false,\n    showOwnsAnyOtherBusiness: false,\n    showIsOwnedByAnyOtherBusiness: false,\n    showOwnsRealProperty: false,\n    showHasThereBeenATransferOfStock: false,\n    showHasControllingInterestTransferFiledDepartmentRevenue: false,\n    showHasTransferOfStockBeenOverEqualFiftyPercent: false,\n    showHasEnteredIntoContract: false,\n    showHoldsInterestInAgriculturalLand: false,\n    showIsFamilyFarmLLC: false,\n    showNaicsCode: false,\n    showNumberOfStateEmployees: false,\n    showNumberOfEmployees: false,\n    showScrapMetalDealer: false,\n    showExportMarkets: false,\n    showBeInterestedInExporting: false,\n    showIsMinorityOwnedBusiness: false,\n    showIsWomanOwnedBusiness: false,\n    showsOwnMoreThanOneBusiness: false,\n    showHowManyBusinesses: false,\n    showHowManyCounties: false,\n    showDoesEmployIndividualsWhoServeInForces: false,\n    showHowManyIndividuals: false,\n    showDoesOwnerServeInForces: false,\n    showGetSupportFromWVSBDC: false,\n    showIssuedSharesAndGrossAssets: false,\n    showWorkerCompensationInsurance: false,\n    showIsBusinessSelfInsured: false,\n    showSelfInsuranceDetails: false,\n    showChiefExecutiveOfficer: false,\n    showBusinessEntityPrincipalAddress: false,\n    showNumberOfDirectorsAndDirectorsAsWomen: false,\n    showOwnedUSMilitaryVeteran: false,\n    showOwnedUSDisabledMilitaryVeteran: false,\n    showNetReceiptsLessThanOneMillion: false,\n    showUpToDateStockInformation: false,\n    showIssuedShares: false,\n    showControllingMembers: false,\n    showControllingMembers1: false,\n    showControllingMembers2: false,\n    showControllingMembers3: false,\n    showControllingMembers3a: false,\n    showControllingMembers3b: false,\n    showControllingMembers3c: false,\n    showBankruptcy: false,\n    showIsCombinedGroup: false,\n    showIsCombinedGroupTempLossPreserved: false,\n    showIsTieredPartnerRevAdjusted: false,\n    showIsPassiveEntityTX: false,\n    showIsREITTX: false,\n    showIsNewVetOwnedTX: false,\n    showWebFileId: false\n  };\n\n  if (companyType === 'llc') {\n    fieldInfo.directors = null;\n    fieldInfo.officers = null;\n    fieldInfo.stock_info = null;\n  } else {\n    fieldInfo.structure = null;\n    fieldInfo.managers = null;\n    fieldInfo.members = null;\n  }\n\n  Object.keys(rules.annual_report).forEach((fieldKey) => {\n    switch (fieldKey) {\n      case 'makes_less_than_amount':\n        fieldInfo.showMakesLessThanAmount = rules.annual_report.makes_less_than_amount;\n        return null;\n      case 'had_good_standing':\n        fieldInfo.showHadGoodStanding = rules.annual_report.had_good_standing;\n        return null;\n      case 'had_personal_property':\n        fieldInfo.showHadPersonalProperty = rules.annual_report.had_personal_property;\n        return null;\n      case 'had_gross_sales':\n        fieldInfo.showHadGrossSales = rules.annual_report.had_gross_sales;\n        return null;\n      case 'list_gross_sales':\n        fieldInfo.showListGrossSales = rules.annual_report.list_gross_sales;\n        return null;\n      case 'own_or_lease_property':\n        fieldInfo.showUseProperty = rules.annual_report.own_or_lease_property;\n        return null;\n      case 'requires_license':\n        fieldInfo.showMaintainLicense = rules.annual_report.requires_license;\n        return null;\n      case 'sold_property':\n        fieldInfo.showDidDisposeOfProperty = rules.annual_report.sold_property;\n        return null;\n      case 'total_revenue':\n        fieldInfo.showTotalRevenue = rules.annual_report.total_revenue;\n        return null;\n      case 'owns_any_other_business':\n        fieldInfo.showOwnsAnyOtherBusiness = rules.annual_report.owns_any_other_business;\n        return null;\n      case 'company_data_owns':\n        fieldInfo.showCompanyDataOwns = rules.annual_report.company_data_owns;\n        return null;\n      case 'is_owned_by_any_other_business':\n        fieldInfo.showIsOwnedByAnyOtherBusiness = rules.annual_report.is_owned_by_any_other_business;\n        return null;\n      case 'company_data_owned_by':\n        fieldInfo.showCompanyDataOwnedBy = rules.annual_report.company_data_owned_by;\n        return null;\n      case 'owns_real_property':\n        fieldInfo.showOwnsRealProperty = rules.annual_report.owns_real_property;\n        return null;\n      case 'has_there_been_a_transfer_of_stock':\n        fieldInfo.showHasThereBeenATransferOfStock = rules.annual_report.has_there_been_a_transfer_of_stock;\n        return null;\n      case 'has_transfer_of_stock_been_over_equal_fifty_percent':\n        fieldInfo.showHasTransferOfStockBeenOverEqualFiftyPercent = rules.annual_report.has_transfer_of_stock_been_over_equal_fifty_percent;\n        return null;\n      case 'has_controlling_interest_transfer_filed_department_revenue':\n        fieldInfo.showHasControllingInterestTransferFiledDepartmentRevenue = rules.annual_report.has_controlling_interest_transfer_filed_department_revenue;\n        return null;\n      case 'has_entered_into_any_contract':\n        fieldInfo.showHasEnteredIntoContract = rules.annual_report.has_entered_into_any_contract;\n        return null;\n      case 'holds_interest_in_agricultural_land':\n        fieldInfo.showHoldsInterestInAgriculturalLand = rules.annual_report.holds_interest_in_agricultural_land;\n        return null;\n      case 'is_a_family_llc':\n        fieldInfo.showIsFamilyFarmLLC = rules.annual_report.is_a_family_llc;\n        return null;\n      case 'naics_code':\n        fieldInfo.showNaicsCode = rules.annual_report.naics_code;\n        return null;\n      case 'number_of_state_employees':\n        fieldInfo.showNumberOfStateEmployees = rules.annual_report.number_of_state_employees;\n        return null;\n      case 'number_of_employees':\n        fieldInfo.showNumberOfEmployees = rules.annual_report.number_of_employees;\n        return null;\n      case 'scrap_metal_dealer':\n        fieldInfo.showScrapMetalDealer = rules.annual_report.scrap_metal_dealer;\n        return null;\n      case 'currently_exporting':\n        fieldInfo.showCurrentlyExporting = rules.annual_report.currently_exporting;\n        return null;\n      case 'top_export_markets':\n        fieldInfo.showTopExportMarkets = rules.annual_report.top_export_markets;\n        return null;\n      case 'be_interested_in_exporting':\n        fieldInfo.showBeInterestedInExporting = rules.annual_report.be_interested_in_exporting;\n        return null;\n      case 'is_minority_owned_business':\n        fieldInfo.showIsMinorityOwnedBusiness = rules.annual_report.is_minority_owned_business;\n        return null;\n      case 'is_woman_owned_business':\n        fieldInfo.showIsWomanOwnedBusiness = rules.annual_report.is_woman_owned_business;\n        return null;\n      case 'own_more_than_one_business':\n        fieldInfo.showsOwnMoreThanOneBusiness = rules.annual_report.own_more_than_one_business;\n        return null;\n      case 'how_many_businesses':\n        fieldInfo.showHowManyBusinesses = rules.annual_report.how_many_businesses;\n        return null;\n      case 'how_many_counties':\n        fieldInfo.showHowManyCounties = rules.annual_report.how_many_counties;\n        return null;\n      case 'does_employ_individuals_who_serve_in_forces':\n        fieldInfo.showDoesEmployIndividualsWhoServeInForces = rules.annual_report.does_employ_individuals_who_serve_in_forces;\n        return null;\n      case 'how_many_individuals':\n        fieldInfo.showHowManyIndividuals = rules.annual_report.how_many_individuals;\n        return null;\n      case 'does_owner_serve_in_forces':\n        fieldInfo.showDoesOwnerServeInForces = rules.annual_report.does_owner_serve_in_forces;\n        return null;\n      case 'get_support_from_WVSBDC':\n        fieldInfo.showGetSupportFromWVSBDC = rules.annual_report.get_support_from_WVSBDC;\n        return null;\n      case 'issued_shares_and_gross_assets':\n        fieldInfo.showIssuedSharesAndGrossAssets = rules.annual_report.issued_shares_and_gross_assets;\n        return null;\n      case 'worker_compensation_insurance':\n        fieldInfo.showWorkerCompensationInsurance = rules.annual_report.worker_compensation_insurance;\n        return null;\n      case 'is_business_self_insured':\n        fieldInfo.showIsBusinessSelfInsured = rules.annual_report.is_business_self_insured;\n        return null;\n      case 'self_insurance_details':\n        fieldInfo.showSelfInsuranceDetails = rules.annual_report.self_insurance_details;\n        return null;\n      case 'chief_executive_officer':\n        fieldInfo.showChiefExecutiveOfficer = rules.annual_report.chief_executive_officer;\n        return null;\n      case 'business_entity_principal_address':\n        fieldInfo.showBusinessEntityPrincipalAddress = rules.annual_report.business_entity_principal_address;\n        return null;\n      case 'number_of_directors_and_directors_as_women':\n        fieldInfo.showNumberOfDirectorsAndDirectorsAsWomen = rules.annual_report.number_of_directors_and_directors_as_women;\n        return null;\n      case 'owned_us_military_veteran':\n        fieldInfo.showOwnedUSMilitaryVeteran = rules.annual_report.owned_us_military_veteran;\n        return null;\n      case 'owned_us_disabled_military_veteran':\n        fieldInfo.showOwnedUSDisabledMilitaryVeteran = rules.annual_report.owned_us_disabled_military_veteran;\n        return null;\n      case 'net_receipts_less_than_one_million':\n        fieldInfo.showNetReceiptsLessThanOneMillion = rules.annual_report.net_receipts_less_than_one_million;\n        return null;\n      case 'up_to_date_stock_information':\n        fieldInfo.showUpToDateStockInformation = rules.annual_report.up_to_date_stock_information;\n        return null;\n      case 'what_stock_was_added':\n        fieldInfo.showStockAdded = rules.annual_report.what_stock_was_added;\n        fieldInfo.showStockClass = rules.annual_report.what_stock_was_added;\n        return null;\n      case 'up_to_date_corp_information':\n        fieldInfo.showCorpTransacts = rules.annual_report.up_to_date_corp_information;\n        fieldInfo.showCorpOwnership = rules.annual_report.up_to_date_corp_information;\n        return null;\n      case 'issued_shares':\n        fieldInfo.showIssuedShares = rules.annual_report.issued_shares;\n        return null;\n      case 'controlling_members':\n        fieldInfo.showControllingMembers = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers1 = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers2 = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers3 = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers3a = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers3b = rules.annual_report.controlling_members;\n        fieldInfo.showControllingMembers3c = rules.annual_report.controlling_members;\n        return null;\n      case 'bankruptcy':\n        fieldInfo.showBankruptcy = rules.annual_report.bankruptcy;\n        return null;\n      case 'is_combined_group':\n        fieldInfo.showIsCombinedGroup = rules.annual_report.is_combined_group;\n        return null;\n      case 'is_combined_group_temp_loss_preserved':\n        fieldInfo.showIsCombinedGroupTempLossPreserved = rules.annual_report.is_combined_group_temp_loss_preserved;\n        return null;\n      case 'is_tiered_partner_rev_adjusted':\n        fieldInfo.showIsTieredPartnerRevAdjusted = rules.annual_report.is_tiered_partner_rev_adjusted;\n        return null;\n      case 'is_passive_entity_tx':\n        fieldInfo.showIsPassiveEntityTX = rules.annual_report.is_passive_entity_tx;\n        return null;\n      case 'is_reit_tx':\n        fieldInfo.showIsREITTX = rules.annual_report.is_reit_tx;\n        return null;\n      case 'is_new_vet_owned_tx':\n        fieldInfo.showIsNewVetOwnedTX = rules.annual_report.is_new_vet_owned_tx;\n        return null;\n      case 'web_file_id':\n        fieldInfo.showWebFileId = rules.annual_report.web_file_id;\n        return null;\n      default:\n    }\n\n    if (!rules.amendment) {\n      fieldInfo[fieldKey] = {\n        canFileAmendment: false,\n        isEditable: rules.annual_report[fieldKey],\n        requiresAmendment: false\n      };\n      return null;\n    }\n    fieldInfo[fieldKey] = {\n      canFileAmendment: true,\n      isEditable: rules.annual_report[fieldKey] || rules.amendment[fieldKey],\n      requiresAmendment: !rules.annual_report[fieldKey] && rules.amendment[fieldKey]\n    };\n\n    return null;\n  });\n\n  return fieldInfo;\n};\n\nconst set = (dispatch, data, actionKey) => {\n  logger.logAction(actionKey, data);\n  dispatch({\n    type: actionKey,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees, fieldRules) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { annualReport } = reducerData,\n    { cardNumber, expMonth, expYear, cvc, cardToken, brand, last4 } = annualReport;\n\n  if (!cardToken) {\n    createAnnualReportOrder(dispatch, reducerData, accountId, filingFees, fieldRules);\n  } else {\n    const data = { cardNumber, expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createAnnualReportOrder(dispatch, reducerData, accountId, filingFees, fieldRules);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const fetchJurisdictionInfo = (dispatch, jurisdictionCode, companyInfo, jurisdictionType) => {\n  logger.logAction(ACTIONS.FETCH_JURISDICTION_REQ, { jurisdictionCode, companyInfo, jurisdictionType });\n\n  dispatch({ type: ACTIONS.FETCH_JURISDICTION_REQ });\n\n  annualReportService.getJurisdictionInfo(jurisdictionCode).then((response) => {\n    const rules = response[companyInfo.type === 'LLCX' ? 'llc' : 'corp'][jurisdictionType];\n    const fieldInfo = formFieldInfo(rules, companyInfo.type === 'LLCX' ? 'llc' : 'corp');\n    annualReportData.fieldInfo = fieldInfo;\n    dispatch({\n      type: ACTIONS.FETCH_JURISDICTION_COMPLETE,\n      jurisdictionRules: rules,\n      fieldInfo\n    });\n  }).catch((error) => {\n    console.log('error', error);\n  });\n};\n\nexport const handleDeepLink = (dispatch, allCompanies, allCompaniesItems, businessEntityId, jurisdictionCode, filingType) => {\n  logger.logAction(ACTIONS.INIT, {});\n  dispatch({\n    type: ACTIONS.INIT,\n    data: {}\n  });\n\n  const selectedCompany = allCompanies[businessEntityId];\n\n  const {\n    worryFree = [],\n    worry_free_service_basic: worryFreeServiceBasicId = [],\n    worry_free_service_advanced: worryFreeServiceAdvancedId = []\n  } = allCompaniesItems[businessEntityId];\n  const hasPurchasedWFC =\n    worryFree.length > 0 ||\n    worryFreeServiceBasicId.length > 0 ||\n    worryFreeServiceAdvancedId.length > 0;\n  const originalCompanyInfo = {\n    ...allCompanies[businessEntityId],\n    id: businessEntityId\n  };\n\n  annualReportData.originalCompanyInfo = originalCompanyInfo;\n  annualReportData.hasPurchasedWFC = hasPurchasedWFC;\n\n  logger.logAction(ACTIONS.SET_COMPANY, originalCompanyInfo);\n\n  dispatch({\n    type: ACTIONS.SET_COMPANY,\n    company: {\n      ...originalCompanyInfo,\n      hasPurchasedWFC\n    }\n  });\n\n  if (jurisdictionCode && filingType) {\n    if (jurisdictionCode === 'AR') {\n      logger.logAction(ACTIONS.SET_DEFAULT_TAX_PREPARER, { taxPreparer: selectedCompany.contact });\n      dispatch({\n        type: ACTIONS.SET_DEFAULT_TAX_PREPARER,\n        taxPreparer: selectedCompany.contact\n      });\n    }\n\n    const payload = {\n      jurisdictionType: (filingType.toLowerCase() === 'f' || filingType.toLowerCase() === 'foreign') ? 'foreign' : 'domestic',\n      filingJurisdiction: jurisdictionCode\n    };\n    annualReportData.filingJurisdictionType = payload.jurisdictionType;\n    logger.logAction(ACTIONS.SET_JURISDICTION_TYPE, payload);\n    dispatch({\n      type: ACTIONS.SET_JURISDICTION_TYPE,\n      ...payload\n    });\n  }\n};\n\nexport const goTo = (dispatch, actionKey, url) => {\n  logger.logAction(actionKey);\n  dispatch({\n    type: actionKey\n  });\n  browserHistory.push(`/${URLS.BASE}/${url}`);\n};\n\nexport const goBack = (dispatch, ldFlags) => {\n  logger.logAction(ACTIONS.GO_BACK, { location: document.location.pathname.substring(URLS.BASE.length + 2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, ldFlags);\n};\n\nexport const goNext = (dispatch, ldFlags) => {\n  go(1, ldFlags, dispatch);\n};\n\nexport const goToModifyCompany = (dispatch) => {\n  goTo(dispatch, ACTIONS.GO_BACK_TO_MODIFY_COMPANY, URLS.MODIFY_COMPANY);\n};\n\nexport const setAddAmendment = (dispatch, didAddAmendment) => {\n  logger.logAction(ACTIONS.SET_ADD_AMENDMENT, { didAddAmendment });\n  dispatch({\n    type: ACTIONS.SET_ADD_AMENDMENT,\n    didAddAmendment\n  });\n};\n\nexport const setAddWFC = (dispatch, didAddWFC) => {\n  logger.logAction(ACTIONS.SET_ADD_WFC, { didAddWFC });\n  dispatch({\n    type: ACTIONS.SET_ADD_WFC,\n    didAddWFC\n  });\n};\n\nexport const setCompanyToFile = (dispatch, company, sendToModifyPage) => {\n  logger.logAction(ACTIONS.SET_COMPANY, { company });\n  annualReportData.hasPurchasedWFC = company.hasPurchasedWFC;\n  annualReportData.originalCompanyInfo = company;\n  dispatch({\n    type: ACTIONS.SET_COMPANY,\n    company\n  });\n  logger.logAction(ACTIONS.ADVANCE_IN_FLOW, { newRouteName: sendToModifyPage ? URLS.MODIFY_COMPANY : URLS.SELECT_JURISDICTION });\n  dispatch({\n    type: ACTIONS.ADVANCE_IN_FLOW,\n    newRouteName: sendToModifyPage ? URLS.MODIFY_COMPANY : URLS.SELECT_JURISDICTION\n  });\n};\n\nexport const setForeignJurisdictionType = (dispatch, data) => {\n  logger.logAction(ACTIONS.SET_FOREIGN_JURISDICTION, data);\n  dispatch({\n    type: ACTIONS.SET_FOREIGN_JURISDICTION,\n    data\n  });\n  logger.logAction(ACTIONS.ADVANCE_IN_FLOW, { newRouteName: URLS.MODIFY_COMPANY });\n  dispatch({\n    type: ACTIONS.ADVANCE_IN_FLOW,\n    newRouteName: URLS.MODIFY_COMPANY\n  });\n};\n\nexport const setForeignJurisdictionStateId = (dispatch, stateId) => {\n  logger.logAction(ACTIONS.SET_FOREIGN_JURISDICTION_STATE_ID, stateId);\n  dispatch({\n    type: ACTIONS.SET_FOREIGN_JURISDICTION_STATE_ID,\n    stateId\n  });\n};\n\nexport const setJurisdictionType = (dispatch, jurisdictionType, originalCompanyInfo) => {\n  annualReportData.filingJurisdictionType = jurisdictionType;\n  if (originalCompanyInfo.domesticJurisdiction === 'AR') {\n    logger.logAction(ACTIONS.SET_DEFAULT_TAX_PREPARER, { taxPreparer: originalCompanyInfo.contact });\n    dispatch({\n      type: ACTIONS.SET_DEFAULT_TAX_PREPARER,\n      taxPreparer: originalCompanyInfo.contact\n    });\n  }\n\n  logger.logAction(ACTIONS.SET_JURISDICTION_TYPE, { jurisdictionType, filingJurisdiction: jurisdictionType === 'domestic' ? originalCompanyInfo.domesticJurisdiction : null });\n  dispatch({\n    type: ACTIONS.SET_JURISDICTION_TYPE,\n    jurisdictionType,\n    filingJurisdiction: jurisdictionType === 'domestic' ? originalCompanyInfo.domesticJurisdiction : null\n  });\n  logger.logAction(ACTIONS.ADVANCE_IN_FLOW, { type: ACTIONS.ADVANCE_IN_FLOW, newRouteName: jurisdictionType === 'foreign' ? URLS.SELECT_FOREIGN_JURISDICTION : URLS.MODIFY_COMPANY });\n  dispatch({\n    type: ACTIONS.ADVANCE_IN_FLOW,\n    newRouteName: jurisdictionType === 'foreign' ? URLS.SELECT_FOREIGN_JURISDICTION : URLS.MODIFY_COMPANY\n  });\n};\n\nexport const setInit = (dispatch) => {\n  setAppEntryPoint(dispatch, true);\n  logger.logAction(ACTIONS.INIT, {});\n  dispatch({\n    type: ACTIONS.INIT,\n    data: {}\n  });\n  browserHistory.replace(`/${URLS.BASE}/${URLS.START}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setPurchaseWFG = (dispatch, isPurchasing) => {\n  logger.logAction(ACTIONS.SET_PURCHASE_WFG, { isPurchasing });\n  dispatch({\n    type: ACTIONS.SET_PURCHASE_WFG,\n    isPurchasing\n  });\n};\n\nexport const setHasWFG = (dispatch, hasWFG) => {\n  logger.logAction(ACTIONS.SET_HAS_WFG, { hasWFG });\n  dispatch({ type: ACTIONS.SET_HAS_WFG, hasWFG });\n};\n\nexport const setUseCredit = (dispatch, useCredit, creditUUID, hasWFG) => {\n  logger.logAction(ACTIONS.SET_USE_CREDIT, { useCredit, creditUUID, hasWFG });\n  dispatch({\n    type: ACTIONS.SET_USE_CREDIT,\n    useCredit,\n    creditUUID,\n    hasWFG\n  });\n};\n\nexport const setUseARS = (dispatch, hasARS) => {\n  logger.logAction(ACTIONS.SET_USE_ARS, { hasARS });\n  dispatch({\n    type: ACTIONS.SET_USE_ARS,\n    hasARS\n  });\n};\n\nconst dispatchUpdateField = (dispatch, fieldName, newValue) => {\n  logger.logAction(ACTIONS.SET_FIELD, { fieldName, updatedFieldValue: newValue });\n  annualReportData.updatedCompanyInfo[fieldName] = newValue;\n  return dispatch({\n    type: ACTIONS.SET_FIELD,\n    fieldName,\n    updatedFieldValue: newValue\n  });\n};\n\nconst dispatchResetField = (dispatch, fieldName) => {\n  logger.logAction(ACTIONS.RESET_FIELD, { fieldName });\n  delete annualReportData.updatedCompanyInfo[fieldName];\n  return dispatch({\n    type: ACTIONS.RESET_FIELD,\n    fieldName\n  });\n};\n\n/* eslint-disable max-statements */\nexport const updateField = (dispatch, fieldName, newValue, originalValue) => {\n  let hasChanges = false;\n\n  switch (fieldName) {\n    case 'name':\n    case 'description':\n    case 'structure':\n      if (newValue !== originalValue) {\n        return dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      return dispatchResetField(dispatch, fieldName);\n\n    case 'members':\n    case 'managers':\n      if (newValue.length !== originalValue.length) {\n        const updatedContacts = [];\n        newValue.forEach((contact) => {\n          if (\n            ((_get(contact, 'firstName') &&\n              _get(contact, 'lastName')) ||\n              _get(contact, 'companyName')) &&\n            _get(contact, 'addressLine1') &&\n            _get(contact, 'city') &&\n            _get(contact, 'state') &&\n            _get(contact, 'zipCode')\n          ) {\n            hasChanges = true;\n            updatedContacts.push(contact);\n          }\n        });\n\n        hasChanges = true;\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      } else {\n        const updatedContacts = [];\n        originalValue.forEach((contact, index) => {\n          if (((_get(contact, 'firstName') &&\n            _get(contact, 'lastName')) ||\n            _get(contact, 'companyName')) &&\n            (contact.firstName !== _get(newValue[index], 'firstName') ||\n              contact.middleName !== _get(newValue[index], 'middleName') ||\n              contact.lastName !== _get(newValue[index], 'lastName') ||\n              contact.companyName !== _get(newValue[index], 'companyName') ||\n              contact.suffix !== _get(newValue[index], 'suffix') ||\n              contact.email !== _get(newValue[index], 'email') ||\n              contact.phoneNumber !== _get(newValue[index], 'phoneNumber') ||\n              contact.addressLine1 !== _get(newValue[index], 'addressLine1') ||\n              contact.addressLine2 !== _get(newValue[index], 'addressLine2') ||\n              contact.city !== _get(newValue[index], 'city') ||\n              contact.state !== _get(newValue[index], 'state') ||\n              contact.zipCode !== _get(newValue[index], 'zipCode') ||\n              contact.outstandingJudgments !== _get(newValue[index], 'outstandingJudgments'))\n          ) {\n            hasChanges = true;\n            updatedContacts.push(newValue[index]);\n          } else {\n            updatedContacts.push(contact);\n          }\n        });\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      }\n\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'directors':\n    case 'officers':\n      if (newValue.length !== originalValue.length) {\n        const updatedContacts = [];\n        newValue.forEach((contact) => {\n          if (\n            ((_get(contact, 'firstName') &&\n              _get(contact, 'lastName')) ||\n              _get(contact, 'companyName')) &&\n            _get(contact, 'addressLine1') &&\n            _get(contact, 'city') &&\n            _get(contact, 'state') &&\n            _get(contact, 'zipCode')\n          ) {\n            hasChanges = true;\n            updatedContacts.push(contact);\n          }\n        });\n\n        hasChanges = true;\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      } else {\n        const updatedContacts = [];\n\n        originalValue.forEach((contact, index) => {\n\n          if (\n            !originalValue[index] ||\n            (((_get(contact, 'firstName') &&\n              _get(contact, 'lastName')) ||\n              _get(contact, 'companyName')) &&\n              (_get(contact, 'firstName') !== _get(newValue[index], 'firstName') ||\n                _get(contact, 'middleName') !== _get(newValue[index], 'middleName') ||\n                _get(contact, 'lastName') !== _get(newValue[index], 'lastName') ||\n                _get(contact, 'companyName') !== _get(newValue[index], 'companyName') ||\n                _get(contact, 'suffix') !== _get(newValue[index], 'suffix') ||\n                _get(contact, 'email') !== _get(newValue[index], 'email') ||\n                _get(contact, 'phoneNumber') !== _get(newValue[index], 'phoneNumber') ||\n                _get(contact, 'addressLine1') !== _get(newValue[index], 'addressLine1') ||\n                _get(contact, 'addressLine2') !== _get(newValue[index], 'addressLine2') ||\n                _get(contact, 'city') !== _get(newValue[index], 'city') ||\n                _get(contact, 'state') !== _get(newValue[index], 'state') ||\n                _get(contact, 'title') !== _get(newValue[index], 'title') ||\n                _get(contact, 'zipCode') !== _get(newValue[index], 'zipCode') ||\n                _get(contact, 'outstandingJudgments') !== _get(newValue[index], 'outstandingJudgments')\n              ))) {\n            hasChanges = true;\n            updatedContacts.push(newValue[index]);\n          } else {\n            updatedContacts.push(contact);\n          }\n        });\n        dispatchUpdateField(dispatch, fieldName, updatedContacts);\n      }\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'stockInfo':\n      if (newValue.authorizedShares !== originalValue.authorizedShares ||\n        newValue.valuePerShare !== originalValue.valuePerShare\n      ) {\n        return dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      return dispatchResetField(dispatch, fieldName);\n\n    case 'taxPreparer':\n      if (newValue.firstName !== originalValue.firstName ||\n        newValue.middleName !== originalValue.middleName ||\n        newValue.lastName !== originalValue.lastName ||\n        newValue.phoneNumber !== originalValue.phoneNumber\n      ) {\n        return dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      return dispatchResetField(dispatch, fieldName);\n\n    case 'addresses':\n      Object.keys(newValue).forEach((addressType) => {\n        if (\n          !hasChanges &&\n          (newValue[addressType].addressLine1 !== originalValue[addressType].addressLine1 ||\n            newValue[addressType].addressLine2 !== originalValue[addressType].addressLine2 ||\n            newValue[addressType].city !== originalValue[addressType].city ||\n            newValue[addressType].state !== originalValue[addressType].state ||\n            newValue[addressType].zipCode !== originalValue[addressType].zipCode)\n        ) {\n          hasChanges = true;\n          dispatchUpdateField(dispatch, fieldName, newValue);\n        }\n      });\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n\n    case 'authorizedSignatory':\n      if (\n        newValue.firstName !== _get(originalValue, 'firstName') ||\n        newValue.middleName !== _get(originalValue, 'middleName') ||\n        newValue.lastName !== _get(originalValue, 'lastName') ||\n        newValue.companyName !== _get(originalValue, 'companyName') ||\n        newValue.suffix !== _get(originalValue, 'suffix') ||\n        newValue.email !== _get(originalValue, 'email') ||\n        newValue.phoneNumber !== _get(originalValue, 'phoneNumber') ||\n        newValue.addressLine1 !== _get(originalValue, 'addressLine1') ||\n        newValue.addressLine2 !== _get(originalValue, 'addressLine2') ||\n        newValue.city !== _get(originalValue, 'city') ||\n        newValue.state !== _get(originalValue, 'state') ||\n        newValue.title !== _get(originalValue, 'title') ||\n        newValue.zipCode !== _get(originalValue, 'zipCode') ||\n        newValue.outstandingJudgments !== _get(originalValue, 'outstandingJudgments')\n      ) {\n        hasChanges = true;\n        dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      if (!hasChanges) {\n        dispatchResetField(dispatch, fieldName);\n      }\n      break;\n    case 'doesEmployIndividualsWhoServeInForces':\n      dispatchUpdateField(dispatch, fieldName, newValue);\n      // If answer is no then set 'HOW_MANY_INDIVIDUALS' to 0 be default\n      if (newValue === 'no') {\n        dispatchUpdateField(dispatch, ADDITIONAL_QUESTIONS_KEYS.HOW_MANY_INDIVIDUALS, 0);\n      }\n      break;\n    default:\n      // rely on the constant keys to check for additional questions\n      if (Object.values(ADDITIONAL_QUESTIONS_KEYS).includes(fieldName)) {\n        dispatchUpdateField(dispatch, fieldName, newValue);\n      }\n      break;\n  }\n\n  return null;\n};\n\nexport const checkEligibility = (dispatch, entityType, jurisdictionCode) => {\n  logger.logAction(ACTIONS.CHECK_ELIGIBILITY, { entityType, jurisdictionCode });\n  return annualReportService.checkEligibility(entityType, jurisdictionCode);\n};\n\n/* eslint-enable max-statements */\n","import { URLS } from '../../../constants/register_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","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_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_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';\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/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_cora_pf';\nimport { isLoggedIn } from '../../../utils/AuthService';\n\nconst\n  getFlowOrder = () => {\n    if (isLoggedIn()) {\n      return [ URLS.QUESTIONNAIRE, URLS.CONGRATS];\n    }\n    return [ URLS.QUESTIONNAIRE, URLS.CONGRATS, URLS.LOGIN_POST ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegistrationFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegistrationFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","/* eslint-disable max-statements */\n/* eslint-disable no-undef */\nimport _get from 'lodash/get';\nimport { STEPS, VARIANTS } from '../../constants/register_cora_pf';\nimport { getTestVariant } from '../../utils/pfUtils';\nimport { isLoggedIn } from '../../utils/AuthService';\n\nconst getNewBusinessStepOrder = (coraData) => {\n  const\n    { requestedJurisdictionCount, domesticEntity, domJurNotReqJurs, foreignQualFiling, foreignRegistration, formWithZen, hasFormation, saveData, selfFile } = coraData,\n    stepOrder = [ STEPS.WELCOME, STEPS.REG_AGENT ];\n\n  if (isLoggedIn()) {\n    stepOrder.push(STEPS.BUS_ID);\n  } else {\n    stepOrder.push(STEPS.ACCOWN_FIRST_NAME);\n  }\n  stepOrder.push(STEPS.HAS_FORMATION);\n  if (!hasFormation) {\n    stepOrder.push(STEPS.FORM_WITH_ZEN);\n    if (formWithZen) {\n      stepOrder.push(STEPS.GO_TO_FORMATION);\n      return stepOrder;\n    }\n  }\n\n  stepOrder.push(STEPS.REQ_JURS);\n  if (requestedJurisdictionCount === 1) {\n    stepOrder.push(STEPS.DOM_ENTITY);\n    if (!domesticEntity) {\n      stepOrder.push(STEPS.DOM_JUR);\n      stepOrder.push(STEPS.UPSELL_DOM_JUR);\n      if (hasFormation) {\n        stepOrder.push(STEPS.FOREIGN_REG);\n        if (!foreignRegistration) {\n          stepOrder.push(STEPS.FOREIGN_QUAL_FILING);\n          if (!foreignQualFiling) {\n            stepOrder.push(STEPS.HOW_TO_FILE);\n            if (selfFile === 'do-not-know') {\n              stepOrder.push(STEPS.RETURN_TO_LANDING);\n              return stepOrder;\n            }\n          }\n        }\n      }\n    }\n  } else {\n    stepOrder.push(STEPS.CHOOSE_DOM_JUR);\n    if (domJurNotReqJurs) {\n      stepOrder.push(STEPS.DOM_JUR);\n      stepOrder.push(STEPS.UPSELL_DOM_JUR);\n    }\n    if (hasFormation) {\n      if (!domJurNotReqJurs && requestedJurisdictionCount === 2) {\n        stepOrder.push(STEPS.FOREIGN_REG);\n      } else {\n        stepOrder.push(STEPS.CHOOSE_HAS_FORMATION);\n      }\n      if (!foreignRegistration) {\n        stepOrder.push(STEPS.FOREIGN_QUAL_FILING);\n        if (!foreignQualFiling) {\n          stepOrder.push(STEPS.HOW_TO_FILE);\n          if (selfFile === 'do-not-know') {\n            stepOrder.push(STEPS.RETURN_TO_LANDING);\n            return stepOrder;\n          }\n        }\n      }\n    }\n  }\n  stepOrder.push(STEPS.BUS_TYPE, STEPS.BUS_NAME);\n  if (!isLoggedIn()) {\n    stepOrder.push(STEPS.CHECKPOINT);\n    if (saveData) {\n      stepOrder.push(STEPS.ACCOWN_LAST_NAME, STEPS.ACCOWN_EMAIL, STEPS.ACCOWN_PHONE);\n    }\n  }\n  stepOrder.push(STEPS.PLAN, STEPS.CART, STEPS.PAYMENT);\n\n  return stepOrder;\n\n};\n\nconst getExistingBusinessStepOrder = (coraData) => {\n  const\n    { requestedJurisdictionCount, foreignQualFiling, foreignRegistration, selfFile } = coraData,\n    stepOrder = [ STEPS.WELCOME, STEPS.REG_AGENT, STEPS.BUS_ID, STEPS.REQ_JURS ];\n\n  if (requestedJurisdictionCount === 1) {\n    stepOrder.push(STEPS.FOREIGN_REG);\n    if (!foreignRegistration) {\n      stepOrder.push(STEPS.FOREIGN_QUAL_FILING);\n      if (!foreignQualFiling) {\n        stepOrder.push(STEPS.HOW_TO_FILE);\n        if (selfFile === 'do-not-know') {\n          stepOrder.push(STEPS.RETURN_TO_LANDING);\n          return stepOrder;\n        }\n      }\n    }\n  } else {\n    stepOrder.push(STEPS.CHOOSE_HAS_FORMATION);\n    if (!foreignRegistration) {\n      stepOrder.push(STEPS.FOREIGN_QUAL_FILING);\n      if (!foreignQualFiling) {\n        stepOrder.push(STEPS.HOW_TO_FILE);\n        if (selfFile === 'do-not-know') {\n          stepOrder.push(STEPS.RETURN_TO_LANDING);\n          return stepOrder;\n        }\n      }\n    }\n  }\n  stepOrder.push(STEPS.PLAN, STEPS.CART, STEPS.PAYMENT);\n\n  return stepOrder;\n};\n\nconst getStepOrderMobileMVP = (coraData) => {\n  const\n    { busDetailsLocked } = coraData;\n\n  if (busDetailsLocked) {\n    return getExistingBusinessStepOrder(coraData);\n  }\n  return getNewBusinessStepOrder(coraData);\n};\n\n//// Variant t3 flow\nconst getStepOrderMobileMaxLTV = () => { return []; };\n//const getStepOrderDesktopMaxLTV = () => { return []; };\n\nconst variantMap = {\n  [VARIANTS.MVP]: {\n    mobile: getStepOrderMobileMVP,\n    desktop: getStepOrderMobileMVP\n  },\n  [VARIANTS.MAX_LTV]: {\n    mobile: getStepOrderMobileMaxLTV,\n    desktop: getStepOrderMobileMaxLTV\n  }\n};\n\nconst noScrollingMap = {\n  [VARIANTS.MVP]: [STEPS.CART, STEPS.PAYMENT],\n  [VARIANTS.MAX_LTV]: [STEPS.CART, STEPS.PAYMENT]\n};\n\nconst provideFallbackFlowFunction = () => {\n  return getStepOrderMobileMVP;\n  //return window.zenIsMobile ? getStepOrderMobileMVP : getStepOrderDesktopMVP;\n};\n\nconst getStepsFlow = (coraData) => {\n  const variant = getTestVariant() || VARIANTS.MVP || 'mvp';\n  const device = window.zenIsMobile ? 'mobile' : 'desktop';\n  const flowFunction = _get(variantMap, `${variant}.${device}`, provideFallbackFlowFunction());\n  return flowFunction(coraData);\n};\n\nconst noScrollingSteps = () => {\n  const variant = getTestVariant() || VARIANTS.MVP || 'mvp';\n  return _get(noScrollingMap, variant, []);\n};\n\nexport { getStepsFlow, noScrollingSteps };\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport _isEmpty from 'lodash/isEmpty';\nimport { browserHistory } from 'react-router';\n\nimport getFlow from './flows';\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPLETE_CORA_URLS } from '../../constants/complete_cora';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS, STEPS, URLS } from '../../constants/register_cora_pf';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { URLS as WEBSITE_URLS } from '../../constants/website';\nimport { storageKey as businessKey } from '../../reducers/registration/business';\nimport { storageKey as coraKey } from '../../reducers/registration/cora';\nimport { accountService, registrationService } from '../../services';\nimport { getAppEntryPoint } from '../../utils/AppEntryPoint';\nimport { isLoggedIn } from '../../utils/AuthService';\nimport logger from '../../utils/ClientLogger';\nimport { setGlobalProgressBar } from '../../utils/ProgressBar';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport { createAdditionalData, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getStepsFlow, noScrollingSteps } from './stepsFlowFactory';\nimport { setIsFreeAccount } from '../../utils/FreeAccountUtils';\nimport LeadManager from '../Lead';\n\nlet currentStep = STEPS.WELCOME;\n\nexport const resetActionError = (dispatch) => {\n  logger.logAction(ACTIONS.RESET_ACTION_ERROR);\n  dispatch({\n    type: ACTIONS.RESET_ACTION_ERROR\n  });\n};\n\nconst\n  defaultBusinessData = { id: '' },\n  businessData = _assign(getReducerSnapshot(businessKey, defaultBusinessData), { noIdMatches: false, hasCompanies: true, needsFormation: null }),\n  defaultCoraData = {\n    busDetailsLocked: false,\n    businessTypeOnParam: false,\n    domJurNotReqJurs: false,\n    foreignRegistration: false,\n    foreignQualFiling: false,\n    formationOnParam: false,\n    formWithZen: false,\n    hasFormation: false,\n    idOnParam: false,\n    requestedJurisdictionOnParam: false,\n    requestedJurisdictionCount: 0,\n    selfFile: false,\n    step: ''\n  },\n  coraData = getReducerSnapshot(coraKey, defaultCoraData),\n\n  getFlowOrder = (url) => {\n    const\n      flow = getFlow(url);\n\n    return flow;\n  };\n\nexport const getStepOrder = () => {\n  return getStepsFlow(coraData);\n};\n\nexport const getEntityType = () => {\n  return businessData.type;\n};\n\nexport const getNoScrollSteps = () => {\n  return noScrollingSteps() || [];\n};\n\nexport const getStepIndex = (step) => {\n  const order = getStepOrder(),\n    index = _indexOf(order, step);\n\n  return index === -1 ? order.length : index;\n};\n\n// A step can only be re-answered from behind its own position in the flow via the\n// \"reset back to this point\" modal, so this is a reliable signal that the customer just\n// confirmed a reset - any stale checkout error no longer applies. Shared by every step\n// that passes resetStep: true, not just Plan.\nexport const isResettingBackToStep = (stepOrder, requestedStep, previousStep, resetStep) => {\n  const\n    requestedStepIndex = requestedStep ? _indexOf(stepOrder, requestedStep) : -1,\n    previousStepIndex = previousStep ? _indexOf(stepOrder, previousStep) : -2;\n\n  return !!resetStep && requestedStepIndex !== -1 && requestedStepIndex < previousStepIndex;\n};\n\nexport const getNextStep = (step, resetStep) => {\n  const\n    stepOrder = getStepOrder(),\n    requestedStepIndex = step ? _indexOf(stepOrder, step) : -1,\n    currentStepIndex = coraData.step ? _indexOf(stepOrder, coraData.step) : -2,\n    nextStep = resetStep || requestedStepIndex >= currentStepIndex ? stepOrder[requestedStepIndex + 1] : coraData.step;\n\n  coraData.step = nextStep;\n  return nextStep;\n};\n\nconst\n  go = (jump, doReplace) => {\n    const url = document.location.pathname.substring(URLS.BASE.length + 2),\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      setGlobalProgressBar(flowOrder, '');\n      if (!isLoggedIn()) {\n        document.location = getAppEntryPoint();\n      } else {\n        document.location = `/${DASHBOARD_URLS.BASE}`;\n      }\n    } else if (jumpIndex >= flowOrder.length) {\n      setGlobalProgressBar(flowOrder, COMPLETE_CORA_URLS.START);\n      browserHistory.push(`/${COMPLETE_CORA_URLS.BASE}/${COMPLETE_CORA_URLS.START}`);\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n      return flowOrder[jumpIndex];\n    }\n    return '';\n  },\n  set = (dispatch, data, actionKey, step, moveUrl, doReplace) => {\n    currentStep = getNextStep(step);\n\n    const d = step ? _assign({ nextStep: currentStep }, data) : data;\n    logger.logAction(actionKey, d);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data: d\n      }\n    });\n    if (moveUrl) {\n      go(1, doReplace);\n    }\n  },\n\n  setStep = (dispatch, data, actionKey, step, resetStep) => {\n    const resettingBackToStep = isResettingBackToStep(getStepOrder(), step, coraData.step, resetStep);\n\n    currentStep = getNextStep(step, resetStep);\n    const d = step ? _assign({ nextStep: currentStep }, data) : data;\n    logger.logAction(actionKey, d);\n\n    if (resettingBackToStep) {\n      resetActionError(dispatch);\n    }\n\n    dispatch({\n      type: actionKey,\n      payload: {\n        data: d\n      }\n    });\n  },\n\n  cartUpdate = (dispatch, data, actionKey) => {\n    const d = _assign({ nextStep: STEPS.CART }, data);\n    logger.logAction(actionKey, d);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data: d\n      }\n    });\n  },\n\n  doReset = () => {\n    _assign(businessData, defaultBusinessData);\n    _assign(coraData, defaultCoraData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n  setGlobalProgressBar(flowOrder, flowOrder[0]);\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const resetAllData = (dispatch, data) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET,\n    payload: {\n      data: data || {}\n    }\n  });\n};\n\nexport const goToNextUncompletedPage = (dispatch, location) => {\n  const\n    flowOrder = getFlowOrder(location),\n    index = _indexOf(flowOrder, location),\n    jumpIndex = index + 1;\n\n  if (index >= 0) {\n    if (jumpIndex >= flowOrder.length) {\n      setGlobalProgressBar(flowOrder, COMPLETE_CORA_URLS.START);\n      browserHistory.push(`/${COMPLETE_CORA_URLS.BASE}/${COMPLETE_CORA_URLS.START}`);\n    } else {\n      setGlobalProgressBar(flowOrder, flowOrder[jumpIndex]);\n      browserHistory.push(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const setLead = (dispatch, createOrUpdateLead) => {\n  const snapshotData = getReducerSnapshot(coraKey, defaultCoraData);\n\n  const leadManager = new LeadManager(ACTIONS);\n  leadManager.setLead(dispatch, createOrUpdateLead, {\n    firstName: snapshotData.firstName,\n    lastName: snapshotData.lastName,\n    phone: snapshotData.phoneNumber || '',\n    email: snapshotData.email,\n    searchstate: snapshotData.domesticJurisdiction,\n    selectedState: snapshotData.domesticJurisdiction,\n    entityName: snapshotData.name,\n    entityType: getEntityType(),\n    purchase_flow: 'cora_pf'\n  });\n};\n\nexport const setAccountOwnerEmail = (dispatch, data, createOrUpdateLead) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_EMAIL, STEPS.ACCOWN_EMAIL, false);\n  setLead(dispatch, createOrUpdateLead);\n};\n\nexport const setAccountOwnerFirstName = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_FIRST_NAME, STEPS.ACCOWN_FIRST_NAME, false);\n};\n\nexport const setAccountOwnerLastName = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_LAST_NAME, STEPS.ACCOWN_LAST_NAME, false);\n};\n\nexport const setAccountOwnerMiddleName = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_MIDDLE_NAME, STEPS.ACCOWN_MIDDLE_NAME, false);\n};\n\nexport const setAccountOwnerPhone = (dispatch, data, createOrUpdateLead) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_PHONE, STEPS.ACCOWN_PHONE, false);\n  setLead(dispatch, createOrUpdateLead);\n};\n\nexport const setAccountOwnerSuffix = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.ACCOWN_SUFFIX, STEPS.ACCOWN_SUFFIX, false);\n};\n\nexport const setBusinessId = (dispatch, data) => {\n  businessData.id = data.id;\n  coraData.busDetailsLocked = !!data.id;\n  setStep(dispatch, data, ACTIONS.BUS_ID, STEPS.BUS_ID, true);\n  businessData.hasCompanies = data.hasCompanies;\n  businessData.noIdMatches = data.noIdMatches; // Do this after to make sure things move correctly.\n};\n\nexport const setBusinessName = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.BUS_NAME);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.BUS_NAME, STEPS.BUS_NAME, false);\n};\n\nexport const setBusinessType = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.BUS_TYPE);\n    return;\n  }\n\n  businessData.type = data.type;\n  setStep(dispatch, data, ACTIONS.BUS_TYPE, STEPS.BUS_TYPE, true);\n};\n\nexport const setBusinessTypeAndName = (dispatch, data) => {\n  businessData.type = data.type;\n  cartUpdate(dispatch, data, ACTIONS.BUS_TYPE_NAME_CART);\n};\n\nexport const setCart = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.CART, STEPS.CART, false);\n};\n\nexport const setCheckpoint = (dispatch, data) => {\n  coraData.saveData = data.saveData;\n  setStep(dispatch, data, ACTIONS.CHECKPOINT, STEPS.CHECKPOINT, true);\n};\n\nexport const setChooseDomesticJurisdiction = (dispatch, data) => {\n  coraData.domJurNotReqJurs = data.domJurNotReqJurs;\n  setStep(dispatch, data, ACTIONS.CHOOSE_DOM_JUR, STEPS.CHOOSE_DOM_JUR, true);\n};\n\nexport const setChooseHasFormation = (dispatch, data) => {\n  coraData.foreignRegistration = data.foreignRegistration;\n  setStep(dispatch, data, ACTIONS.CHOOSE_HAS_FORMATION, STEPS.CHOOSE_HAS_FORMATION, true);\n};\n\nexport const setCreateOrder = (dispatch) => {\n  dispatch({ type: ACTIONS.FLOW_COMPLETE });\n  go(1);\n};\n\nexport const setDomesticEntity = (dispatch, data) => {\n  coraData.domesticEntity = data.domesticEntity;\n  setStep(dispatch, data, ACTIONS.DOM_ENTITY, STEPS.DOM_ENTITY, true);\n};\n\nexport const setDomesticJurisdiction = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.DOM_JUR);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.DOM_JUR, STEPS.DOM_JUR, true);\n};\n\nexport const setFlowComplete = (dispatch) => {\n  logger.logAction(ACTIONS.FLOW_COMPLETE, null);\n  dispatch({ type: ACTIONS.FLOW_COMPLETE });\n};\n\nexport const setForeignQualFiling = (dispatch, data) => {\n  coraData.foreignQualFiling = data.foreignQualFiling;\n  setStep(dispatch, data, ACTIONS.FOREIGN_QUAL_FILING, STEPS.FOREIGN_QUAL_FILING, true);\n};\n\nexport const setForeignRegistration = (dispatch, data) => {\n  coraData.foreignRegistration = data.foreignRegistration;\n  setStep(dispatch, data, ACTIONS.FOREIGN_REG, STEPS.FOREIGN_REG, true);\n};\n\nexport const setFormWithZen = (dispatch, data) => {\n  coraData.formWithZen = data.formWithZen;\n  setStep(dispatch, data, ACTIONS.FORM_WITH_ZEN, STEPS.FORM_WITH_ZEN, true);\n};\n\nexport const setHasFormation = (dispatch, data) => {\n  coraData.hasFormation = data.hasFormation;\n  setStep(dispatch, data, ACTIONS.HAS_FORMATION, STEPS.HAS_FORMATION, true);\n};\n\nexport const setHowToFile = (dispatch, data) => {\n  coraData.selfFile = data.selfFile;\n  setStep(dispatch, data, ACTIONS.HOW_TO_FILE, STEPS.HOW_TO_FILE, true);\n};\n\nexport const setInit = (dispatch, data) => {\n  const {\n    requestedJurisdictionsOnParam,\n    businessTypeOnParam,\n    idOnParam,\n    formationOnParam,\n    hasFormation\n  } = data;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  coraData.step = null;\n  coraData.requestedJurisdictionsOnParam = requestedJurisdictionsOnParam;\n  coraData.businessTypeOnParam = businessTypeOnParam;\n  coraData.idOnParam = idOnParam;\n  coraData.formationOnParam = formationOnParam;\n  coraData.hasFormation = hasFormation;\n  coraData.requestedJurisdictionsCount = requestedJurisdictionsOnParam ? 1 : 0;\n  coraData.id = data.id;\n\n  businessData.isSimulated = data.isSimulated;\n  setIsFreeAccount(data.isSimulated);\n\n  const entryPoint = getEntryPoint();\n  const page = entryPoint.substring(URLS.BASE.length + 2);\n\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, '', false);\n  set(dispatch, _assign({}, data, { page }), ACTIONS.INIT, '', false);\n  browserHistory.replace(entryPoint);\n};\n\nexport const setLogin = (dispatch) => {\n  setStep(dispatch, { flow: 'truic' }, ACTIONS.LOGIN, '', false);\n};\n\nexport const setLoginPostPurchase = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.LOGIN_POST, '', false);\n};\n\nexport const setNextStep = (dispatch, { step, ...therest }) => {\n  setStep(dispatch, therest, ACTIONS.NEXT_STEP, step, false);\n};\n\nexport const setPayment = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.PAYMENT, STEPS.PAYMENT, false);\n};\n\nexport const setPlan = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.PLAN);\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.PLAN, STEPS.PLAN, true);\n};\n\nexport const setPricing = (dispatch, data) => {\n  logger.logAction(ACTIONS.PRICES, data);\n\n  dispatch({\n    type: ACTIONS.PRICES,\n    payload: {\n      data\n    }\n  });\n};\n\nexport const setPurchaseSuccess = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PURCHASE_SUCCESS, '', true);\n};\n\nexport const setRequestedJurisdictions = (dispatch, data) => {\n  coraData.requestedJurisdictionCount = data.requestedJurisdictions.length;\n  setStep(dispatch, data, ACTIONS.REQ_JURS, STEPS.REQ_JURS, true);\n};\n\nexport const setRegAgent = (dispatch, data) => {\n  const { status } = data;\n\n  if (status === 'home') {\n    document.location = '/';\n    return;\n  }\n  if (status === 'showMore') {\n    document.location = `/${WEBSITE_URLS.PRICING}`;\n    return;\n  }\n  setStep(dispatch, data, ACTIONS.REG_AGENT, STEPS.REG_AGENT, true);\n};\n\nexport const setRegisteredStatesFromCart = (dispatch, data) => {\n  cartUpdate(dispatch, data, ACTIONS.REG_STATES_FROM_CART);\n};\n\nexport const setReturnToLanding = (dispatch, data) => {\n  const { status } = data;\n\n  if (status === 'showMore') {\n    document.location = `/${WEBSITE_URLS.PRICING}`;\n    return;\n  }\n  document.location = '/';\n};\n\nexport const setUnregisteredStatesFromCart = (dispatch, data) => {\n  cartUpdate(dispatch, data, ACTIONS.UNREG_STATES_FROM_CART);\n};\n\nexport const setUpsellDomJur = (dispatch, data) => {\n  if (data.fromCart) {\n    cartUpdate(dispatch, data, ACTIONS.UPSELL_DOM_JUR);\n    return;\n  }\n\n  coraData.upsellDomJur = data.upsellDomJur;\n  setStep(dispatch, data, ACTIONS.UPSELL_DOM_JUR, STEPS.UPSELL_DOM_JUR, true);\n};\n\nexport const setWelcome = (dispatch, data) => {\n  setStep(dispatch, data, ACTIONS.WELCOME, STEPS.WELCOME, false);\n};\n\nconst createRAOrder = (dispatch, reducerData, fees, expediteFees) => {\n  const serviceMethod = 'createCoRA';\n\n  registrationService[serviceMethod](reducerData, fees, expediteFees).then((response) => {\n    const { data } = response;\n    logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      payload: {\n        data,\n        reducerData,\n        fees,\n        expediteFees\n      }\n    });\n    const price = 0;\n    const addlData = createAdditionalData('cora_pf', price, data.id);\n\n    trackEvent('Purchase', 'complete', 'cora_pf', price, addlData);\n\n    go(1, true);\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, fees, expediteFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { customer } = reducerData,\n    { cardToken, expMonth, expYear, cvc, brand, last4 } = customer;\n\n  if (!isLoggedIn() || !cardToken) {\n    createRAOrder(dispatch, reducerData, fees, expediteFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createRAOrder(dispatch, reducerData, fees, expediteFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const verifyEmail = (dispatch, email) => {\n  logger.logAction(ACTIONS.VERIFY_EMAIL, email);\n  dispatch({\n    type: ACTIONS.VERIFY_EMAIL\n  });\n\n  accountService.exists(email).then((result) => {\n    const { status = false } = result;\n    if (!status) {\n      dispatch({\n        type: ACTIONS.VERIFY_EMAIL_COMPLETE,\n        payload: {\n          data: { nextStep: getNextStep(STEPS.VERIFY_EMAIL) }\n        }\n      });\n    } else {\n      logger.error(ACTIONS.VERIFY_EMAIL_COMPLETE, { error: 'emailExists', errorCode: 1001 });\n      dispatch({\n        type: ACTIONS.VERIFY_EMAIL_COMPLETE,\n        error: true,\n        payload: {\n          error: 'emailExists',\n          errorCode: 1001\n        }\n      });\n    }\n  }).catch((err) => {\n    logger.error(ACTIONS.VERIFY_EMAIL_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.VERIFY_EMAIL_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport const setCompanyDetailsFromCart = (dispatch, data) => {\n  const { type, isSCorp = false } = data;\n\n  setBusinessType(dispatch, { value: type, isSCorp });\n\n};\n\nexport const resetData = (dispatch, data) => {\n  if (_isEmpty(data)) return;\n  set(dispatch, data, ACTIONS.RESET_DATA, '', false, false);\n};\n\nexport default {\n  createOrder,\n  getEntryPoint,\n  getFlowOrder,\n  getNextStep,\n  getStepIndex,\n  getStepOrder,\n  goToNextUncompletedPage,\n  resetActionError,\n  resetAllData,\n  setAccountOwnerEmail,\n  setAccountOwnerFirstName,\n  setAccountOwnerLastName,\n  setAccountOwnerMiddleName,\n  setAccountOwnerPhone,\n  setAccountOwnerSuffix,\n  setBusinessId,\n  setBusinessName,\n  setBusinessType,\n  setBusinessTypeAndName,\n  setCart,\n  setCheckpoint,\n  setDomesticEntity,\n  setDomesticJurisdiction,\n  setForeignQualFiling,\n  setForeignRegistration,\n  setFormWithZen,\n  setHasFormation,\n  setHowToFile,\n  setInit,\n  setLogin,\n  setLoginPostPurchase,\n  setPayment,\n  setPlan,\n  setPurchaseSuccess,\n  setRegAgent,\n  setRegisteredStatesFromCart,\n  setRequestedJurisdictions,\n  setReturnToLanding,\n  setUnregisteredStatesFromCart,\n  setUpsellDomJur,\n  verifyEmail,\n  setCompanyDetailsFromCart,\n  setLead\n};\n","import { URLS } from '../../../constants/register_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_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","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 { trackEvent as clickstreamTrackEvent } from '../../utils/clickstreamDestination';\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  return 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    const errorCode = err?.errorCode || 500;\n    clickstreamTrackEvent('claimFailed', { errorCode, businessEntityUuid: domainNameData.companyId });\n    // Rethrow so the claim page can show the error state\n    return Promise.reject({ errorCode, error: err?.error });\n  });\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  setComplete,\n  setDomainNamePrimary,\n  setInit,\n  createDomainNameOrderV2,\n  setProductConfirmation,\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 { 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/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 { 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_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 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_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/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 { 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_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_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 { 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","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/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 { 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_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_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/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_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_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_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_zbmpro';\n\n/* eslint-disable max-statements */\nconst\n  getFlowOrder = (url) => {\n    if (url === URLS.COMPLETE) {\n      return [ URLS.COMPLETE ];\n    }\n    return [ URLS.START, URLS.PAYMENT, URLS.COMPLETE ];\n  };\n\nexport default {\n  getFlowOrder\n};\n","import { getRegisterAccountingFlowId } from '../../../utils/FlowService';\n\nimport DefaultFlows from './default';\n\nconst\n  flowTestMap = {\n    default: DefaultFlows\n  },\n  getFlowOrder = (url, registration) => {\n    return (flowTestMap[getRegisterAccountingFlowId()] || DefaultFlows).getFlowOrder(url, registration);\n  };\n\nexport default getFlowOrder;\n","import _assign from 'lodash/assign';\nimport _indexOf from 'lodash/indexOf';\nimport { browserHistory } from 'react-router';\n\nimport { setAppEntryPoint } from '../initialization';\nimport { ACTIONS as ACCOUNT_ACTIONS } from '../../constants/account';\nimport { URLS as COMPANY_URLS } from '../../constants/companies';\nimport { URLS as DASHBOARD_URLS } from '../../constants/dashboard';\nimport { ACTIONS as ORDER_ACTIONS } from '../../constants/orders';\nimport { ACTIONS, URLS } from '../../constants/register_zbmpro';\nimport { ACTIONS as REGISTRATION_ACTIONS } from '../../constants/registration';\nimport { storageKey as zbmProKey } from '../../reducers/registration/zbmPro';\nimport logger from '../../utils/ClientLogger';\nimport { accountService, orderService, registrationService } from '../../services';\nimport { getReducerSnapshot } from '../../utils/ReducerStorage';\nimport getFlow from './flows';\nimport { createAdditionalData, trackClick, trackEvent } from '../../utils/ThirdPartyTracking';\nimport { getZBMProMonthlyPrice } from '../../utils/ProductService';\n\nconst\n  defaultZBMProData = { companyId: '' },\n  zbmProData = getReducerSnapshot(zbmProKey, defaultZBMProData),\n  getFlowOrder = (url) => {\n    const registration = {\n      zbmPro: zbmProData\n    };\n\n    return getFlow(url, registration);\n  },\n  getCompanyUrl = () => {\n    if (zbmProData.companyId) {\n      return `/${COMPANY_URLS.BASE}/${zbmProData.companyId}`;\n    }\n    return `/${DASHBOARD_URLS.BASE}`;\n  },\n  go = (jump, dispatch, doReplace) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + jump : index,\n      method = doReplace ? browserHistory.replace : browserHistory.push;\n\n    if (jumpIndex < 0) {\n      document.location = getCompanyUrl();\n    } else if (jumpIndex >= flowOrder.length) {\n      document.location = zbmProData.returnTo ? zbmProData.returnTo : getCompanyUrl();\n    } else {\n      method(`/${URLS.BASE}/${flowOrder[jumpIndex]}`);\n    }\n  },\n  trackClickEvent = (pageTitle, clickText, inputValue) => {\n    const\n      url = document.location.pathname.substring(URLS.BASE.length + 2) || URLS.START,\n      flowOrder = getFlowOrder(url),\n      index = _indexOf(flowOrder, url),\n      jumpIndex = index >= 0 ? index + 1 : index,\n      nextUrl = jumpIndex >= 0 && jumpIndex <= flowOrder.length ? flowOrder[jumpIndex] : '',\n\n      pageDetails = {\n        activeFlow: URLS.BASE,\n        pageTitle,\n        pageType: 'standalone - Money Pro'\n      },\n      clickDetails = {\n        clickType: 'button',\n        clickText,\n        inputValue\n      };\n    if (nextUrl) {\n      clickDetails.nextUrl = nextUrl;\n    }\n    trackClick(pageDetails, clickDetails);\n  },\n  set = (dispatch, data, actionKey, moveUrl) => {\n    logger.logAction(actionKey, data);\n    dispatch({\n      type: actionKey,\n      payload: {\n        data\n      }\n    });\n    if (moveUrl) {\n      go(1, dispatch);\n    }\n  },\n  doReset = () => {\n    _assign(zbmProData, defaultZBMProData);\n  };\n\nexport const getEntryPoint = () => {\n  const flowOrder = getFlowOrder('');\n\n  return `/${URLS.BASE}/${flowOrder[0]}`;\n};\n\nexport const goBack = (dispatch) => {\n  const path = document.location.pathname,\n    idx = path.indexOf(URLS.BASE),\n    idx2 = idx + URLS.BASE.length + 2;\n\n  logger.logAction(ACTIONS.GO_BACK, { location: path.substring(idx2) });\n  dispatch({\n    type: ACTIONS.GO_BACK\n  });\n  go(-1, dispatch);\n};\n\nexport const resetAllData = (dispatch) => {\n  logger.logAction(ACTIONS.RESET);\n\n  dispatch({\n    type: ACTIONS.RESET\n  });\n};\n\nexport const setComplete = (dispatch, data) => {\n  set(dispatch, {}, ACTIONS.COMPLETE, data.redirect);\n  if (data.redirect) {\n    const url = zbmProData.companyId ? `/dashboard/${zbmProData.companyId}/money/onboarding` : '/dashboard';\n    trackClickEvent(url, 'Link account', 'true');\n    set(dispatch, {}, ACTIONS.COMPLETE_LINK_WITH_PLAID, data.redirect);\n    document.location = url;\n  }\n  if (data.redirectToDashboard) {\n    trackClickEvent(DASHBOARD_URLS.BASE, 'Skip for now', 'true');\n    set(dispatch, {}, ACTIONS.COMPLETE_RETURN_TO_DASH, data.redirectToDashboard);\n    go(-1);\n  }\n  if (data.redirectToMoneyDashboard) {\n    const url = zbmProData.companyId ? `${getCompanyUrl()}/money` : DASHBOARD_URLS.BASE;\n    trackClickEvent(url, 'Skip', 'true');\n    set(dispatch, {}, ACTIONS.COMPLETE_RETURN_TO_MONEY_DASH, data.redirectToMoneyDashboard);\n    document.location = url;\n  }\n};\n\nexport const setInit = (dispatch, data) => {\n  const { companyId } = data;\n  zbmProData.returnTo = data.returnTo;\n  doReset();\n  setAppEntryPoint(dispatch, true);\n  set(dispatch, {}, REGISTRATION_ACTIONS.RESET, false);\n  _assign(zbmProData, { companyId });\n  set(dispatch, data, ACTIONS.INIT, false);\n  browserHistory.replace(`/${URLS.BASE}/${URLS.PAYMENT}`);\n};\n\nexport const setPayment = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.PAYMENT, false);\n};\n\nexport const setStart = (dispatch, data) => {\n  set(dispatch, data, ACTIONS.START, true);\n};\n\nconst createZBMProOrder = (dispatch, reducerData, accountId, filingFees) => {\n  registrationService.createZBMPro(reducerData, accountId, filingFees).then((response) => {\n    const price = getZBMProMonthlyPrice();\n    const addlData = createAdditionalData('zbm_pro', price, response.data.id);\n\n    trackEvent('Purchase', 'complete', 'zbm_pro', price, addlData);\n    orderService.getOrders().then((response1) => {\n      const { data } = response;\n      logger.logAction(ACTIONS.CREATE_ORDER_COMPLETE, response);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        payload: {\n          data,\n          reducerData\n        }\n      });\n\n      logger.logAction(ORDER_ACTIONS.GET_ORDERS_COMPLETE, response1);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        payload: {\n          data: response1\n        }\n      });\n      go(1);\n    }).catch((err) => {\n      logger.error(ORDER_ACTIONS.GET_ORDERS_COMPLETE, err);\n      dispatch({\n        type: ORDER_ACTIONS.GET_ORDERS_COMPLETE,\n        error: true,\n        payload: {\n          errorCode: err && err.errorCode ? err.errorCode : 3000\n        }\n      });\n    });\n  }).catch((err) => {\n    logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n    dispatch({\n      type: ACTIONS.CREATE_ORDER_COMPLETE,\n      error: true,\n      payload: {\n        error: err && err.error ? err.error : 'Server Error',\n        errorCode: err && err.errorCode ? err.errorCode : 500\n      }\n    });\n  });\n};\n\nexport const createOrder = (dispatch, reducerData, accountId, filingFees) => {\n  logger.logAction(ACTIONS.CREATE_ORDER);\n  dispatch({\n    type: ACTIONS.CREATE_ORDER\n  });\n\n  // Here, determine if a new card needs to be created. If so, create the new card.\n  const { zbmPro } = reducerData,\n    { expMonth, expYear, cvc, cardToken, brand, last4 } = zbmPro;\n\n  if (!cardToken) {\n    createZBMProOrder(dispatch, reducerData, accountId, filingFees);\n  } else {\n    const data = { expMonth, expYear, cvc, isDefault: true, card_token: cardToken, brand, last4 };\n    accountService.addPaymentMethodV2(data).then((response) => {\n      const mergedData = _assign({}, response.data, data);\n      logger.logAction(ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE, mergedData);\n      dispatch({\n        type: ACCOUNT_ACTIONS.ADD_PAYMENT_METHOD_COMPLETE,\n        payload: {\n          data: mergedData\n        }\n      });\n      createZBMProOrder(dispatch, reducerData, accountId, filingFees);\n    }).catch((err) => {\n      logger.error(ACTIONS.CREATE_ORDER_COMPLETE, err);\n      dispatch({\n        type: ACTIONS.CREATE_ORDER_COMPLETE,\n        error: true,\n        payload: {\n          error: err && err.error ? err.error : 'Server Error',\n          errorCode: err && err.errorCode ? err.errorCode : 500\n        }\n      });\n    });\n  }\n};\n\nexport const orderAlreadyCreated = () => {\n  go(1);\n};\n\nexport default {\n  getEntryPoint,\n  goBack,\n  orderAlreadyCreated,\n  setComplete,\n  setInit,\n  setPayment,\n  setStart,\n  resetAllData\n};\n","import _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"],"names":["constructor","actions","this","visit_uuid","getVisitUUID","data","Object","keys","reduce","current","key","_snakeCase","lead_source","window","zenIsMobile","dispatch","lead","registrationService","createLead","then","response","logger","logAction","CREATE_LEAD_COMPLETE","type","payload","catch","err","error","errorCode","frontEndLead","leadUUID","getReducerSnapshot","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","getAccountHasZBMoneyProSubscription","accountService","hasZBMoneyProSubscription","ACTIONS","GET_ACCOUNT_HAS_ZB_MONEY_PRO","GET_PAYMENT_METHODS","getPaymentMethods","GET_PAYMENT_METHODS_COMPLETE","setPaymentMethodDefault","SET_PAYMENT_METHOD_DEFAULT","id","mergedData","_assign","SET_PAYMENT_METHOD_DEFAULT_COMPLETE","addPaymentMethod","ADD_PAYMENT_METHOD","ADD_PAYMENT_METHOD_COMPLETE","SET_LOGOUT","REG_ACTIONS","RESET","resetAllData","resetAllAccountData","logout","GET_ACCOUNT","get","processLogIn","initPayload","setVisit","partner","getPartner","entry_point_group","getEntryPointGroup","initializationService","initialize","responseInit","setInitialization","GET_ACCOUNT_COMPLETE","getFlowOrder","url","registration","flowItems","URLS","RESULTS","business","skipDomesticJurisdiction","push","DOM_JUR","GREAT_NEWS","BUS_NAME_REDIRECT","flowTestMap","default","DefaultFlows","defaultBusinessData","businessData","businessKey","getBusinessNameGeneratorFlowId","getFlow","dotComReg","wordsRegex","SPECIAL_CHARACTERS","applyPeculiarities","name","peculiarities","transformedName","forEach","pec","searchableWord","charAfterWord","trimSearchableWord","_capitalize","_trim","includes","replace","processDomains","domains","words","filter","domainInfo","status","test","domain","map","mapDomainsToNames","keywords","nameRegEx","RegExp","join","domainIncludesHyphen","split","word","go","jump","document","location","pathname","substring","BASE","length","flowOrder","index","_indexOf","goInFlow","jumpIndex","LANDING_PAGE","INIT","browserHistory","set","actionKey","moveUrl","getDomainSuggestions","SEARCH_BUSINESS_NAMES","searchKey","searchBy","keySearch","filteredChars","char","specialWord","match","getPeculiarities","domainNameService","suggest","lookup","suggestion","matches","mappedSuggestions","suggestions","rawSuggestions","totalPages","Math","ceil","slice","getSuggestions","SEARCH_BUSINESS_NAMES_COMPLETE","matched","goBack","GO_BACK","setInit","setAppEntryPoint","REGISTRATION_ACTIONS","getEntryPoint","setDomesticJurisdiction","filingFees","getStateFees","domesticJurisdiction","entity_name_reservation","getInitStateFees","setBusinessName","BUS_NAME","setBusinessInformation","SEL_BUS_NAME_SUGGES","GET_COMPANIES","companyService","getCompanies","GET_COMPANIES_COMPLETE","getBLRDataFlowOrder","blr","hasEmployees","BUS_AT_HOME","BUS_INDUSTRY","HAS_EMPLOYEES","EMPL_COUNT","HAS_DBAS","getAddressFlow","usePhysicalAsMailing","businessAddresses","PHYS_ADDR","MAIL_ADDR","existingCompany","COMPLETE","SHARE","getDashboardFlow","START_BLR_DATA","DATA_CONFIRM","getNewCompanyFlow","START_BUS_DATA","getCorpFlowOrder","officer","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","REG_AGT","PRIM_CONTACT","CHOOSE_PRIM_CONTACT","AUTH_SIG","getLLCFlowOrder","manager","LLC_MBR_COUNT","LLC_MBR_LIST","managerType","LLC_MGR_OPT","LLC_BUS_RUN","LLC_MGR_COUNT","LLC_MGR_LIST","defaultBlrData","skipBlr","blrData","blrKey","businessOrderType","addressMatch","addressIsGoogle","defaultBusinessAddressesData","usePhysicalAsPrincipal","useMailingAsPrincipal","businessAddressesData","businessAddressesKey","defaultManagerData","managerData","managerKey","defaultOfficerData","officerData","officerKey","defaultPageData","forceToMembers","forceToManagers","forceToDirectors","forceToOfficers","forceToPayment","forceToContact","registrationFlow","pageData","pageKey","defaultRegisteredAgentData","forceContact","forcePerson","registeredAgentData","registeredAgentKey","getCompleteWFGFlowId","getFlows","page","registeredAgent","COMPANY_URLS","DASHBOARD_URLS","goTo","updateSnapshots","fromBack","forLogin","flow","index1","goToNextUncompletedPage","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","goToPrimaryContact","GO_TO_PRIM_CONTACT","setAddressesModal","ADDR_MODAL","setAuthorizedSignatory","setAuthorizedSignatoryModal","AUTH_SIG_MODAL","setBusinessIndustry","setBusinessOutOfHome","setChoosePrimaryContact","setComplete","setCorpAsstSecretary","setCorpChooseAsstSecretary","setCorpChoosePresident","setCorpChooseSecretary","setCorpChooseTreasurer","setCorpChooseVicePresident","setCorpDirectorCount","setCorpDirectorList","setCorpDirectorListModal","CORP_DIR_LIST_MODAL","setCorpHasAsstSecretary","setCorpHasVicePresident","setCorpOfficerListModal","CORP_OFF_LIST_MODAL","setCorpPresident","setCorpSecretary","setCorpTreasurer","setCorpVicePresident","setDataConfirmation","setEmployeesCount","setHasDBAs","hasDBAs","setHasEmployees","setLLCBusinessRunners","setLLCManagerCount","setLLCManagerList","setLLCManagerListModal","LLC_MGR_LIST_MODAL","setLLCManagerOption","setLLCManagerOptionModal","LLC_MGR_OPT_MODAL","setLLCMemberCount","setLLCMemberList","setLLCMemberListModal","LLC_MBR_LIST_MODAL","setLicenseDataModal","LIC_DATA_MODAL","setMailingAddress","setPhysicalAddress","setPrimaryContact","setPrimaryContactModal","PRIM_CONTACT_MODAL","setRegisteredAgent","setRegisteredAgentModal","REG_AGT_MODAL","setShare","setStartBlrData","setStartBusData","updateContacts","contactType","action","member","director","updateOrder","reducerData","advance","blrOrderTaskUuid","UPDATE_ORDER","handleCatchError","UPDATE_ORDER_COMPLETE","handleUpdateResponse","updateBusinessLicense","orderService","updateOrderTaskStatus","setWillMarkOrderCompleted","ORDER_ACTIONS","WILL_MARK_ORDER_COMPLETED","PRIN_ADDR","getPostPrincipalsFlowOrder","purchase","forceToRegisteredAgent","privacy","PAYMENT","BUS_DESC","defaultPurchaseData","purchaseData","purchaseKey","getCompanyUrl","START","setReturnEIN","setReturnWFG","setReturnAccounting","setReturnDBAEntity","setReturnGS","setReturnNYPub","membersSnap","memberKey","directorsSnap","directorKey","description","addressLine1","addressLine2","city","county","state","country","zipCode","phoneNumber","members","directors","companyId","businessType","mailingAddressLine1","mailingAddressLine2","mailingCity","mailingCounty","mailingState","mailingCountry","mailingZipCode","owners","_map","owner","percent","percentFloat","accountOwner","setInitEIN","setInitWFG","setInitAccounting","setInitDBAEntity","setInitGS","setInitNYPub","setInitStockSetup","companyCount","fromDashboard","setBusinessDescription","forceToDataConfirmation","setMailingAddressModal","MAIL_ADDR_MODAL","setPayment","setPhysicalAddressModal","PHYS_ADDR_MODAL","setPrincipalAddress","setPrincipalAddressModal","PRIN_ADDR_MODAL","setPurchaseRegisteredAgent","forceCompany","PURCH_REG_AGT","createRAOrder","fees","CREATE_ORDER_COMPLETE","price","getRegisteredAgentServicePrice","addlData","createAdditionalData","trackEvent","createOrder","CREATE_ORDER","customer","cardNumber","expMonth","expYear","cvc","isDefault","ACCOUNT_ACTIONS","orderAlreadyCreated","registered_agent_service","updateBusiness","businessEntityId","UPDATE_BUSINESS","businessEntityService","update","UPDATE_BUSINESS_COMPLETE","setBusinessModal","BUS_MODAL","_find","DOM_JURS","option","value","domesticJurisdictionName","label","businessAlreadyUpdated","cora","jurisdictionOrder","hasElectiveCEO","pendingStates","needsContact","needsCoraContacts","jurisdictionOrderCount","OFF_STATE_CONTACT","CHOOSE_OFF_STATE_CONTACT","CHOOSE_SOP_CONTACT","SOP_CONTACT","i","STATE_FILING","HAS_ELECTIVE_CEO","CHOOSE_ELECTIVE_CEO","ELECTIVE_CEO","needsPrincipals","hasFormation","needsBusinessData","needsBusinessIndustry","needsDomesticJurisdictionData","needsAddresses","needsPrincipalAddress","defaultCoraData","requestedJurisdictions","domesticEntity","needsPrincipalAddresses","coraData","coraKey","getNextUncompletedPage","isDashboard","results","goToElectiveCEO","GO_TO_ELECTIVE_CEO","goToOfficialStateContact","GO_TO_OFF_STATE_CONTACT","goToSOPContact","GO_TO_SOP_CONTACT","setBusinessDescriptionModal","BUS_DESC_MODAL","setBusinessInfoModal","BUS_INFO_MODAL","setBusinessNameModal","BUS_NAME_MODAL","setChooseElectiveCEO","setChooseOfficialStateContact","setChooseSOPContact","_filter","reqJur","sort","a","b","unshift","setElectiveCEO","setElectiveCEOModal","ELECTIVE_CEO_MODAL","setHasElectiveCEO","setOfficialStateContact","setOfficialStateContactModal","OFF_STATE_CONTACT_MODAL","setSOPContact","setSOPContactModal","SOP_CONTACT_MODAL","setStart","setStateFiling","setStateFilingModal","STATE_FILING_MODAL","updateCoRA","DBA_IGNORE_STATES_WITH_DELAWARE","AZ","CA","CT","DE","FL","NE","NY","PA","WY","DBA_IGNORE_STATES","HAS_MORE_THAN_ONE_SHARE_STATES","planLevel","isVmaJurisdiction","requestedJurisdiction","PURCHASE_VBA","getDBAEntityFlow","purchaseDBAEntity","postpurchase","PURCHASE_DBA_ENTITY","DBA_ENTITIES","PURCHASE_DBA_COMPLIANCE","isDBAEntityEnabled","isDBAComplianceEnabled","getRegisteredAgentFlow","registeredAgentService","PURCHASE_REGISTERED_AGENT","getHasMoreThanOneShareFlow","HAS_MORE_THAN_ONE_SHARE","ldFlags","domainName","domainNameData","START_COMP","skip","basicEmail","NEW_CORP_STOCK_FEES_CALCULATOR","hasVariableFee","sharesCollected","feePaid","corpStockFlow","stockTotalAdjusted","stockSetup","adjustedFee","Number","feeOwed","isFinite","STOCK_CHECKOUT","CORP_STOCK_CALCULATED","CORP_STOCK","featureFlags","features","DIR_COUNT","DIR_LIST","CHOOSE_PRES","PRES","HAS_VP","CHOOSE_VP","VP","CHOOSE_TRSR","TRSR","CHOOSE_SEC","SEC","HAS_ASST_SEC","CHOOSE_ASST_SEC","ASST_SEC","DOMAIN_NAME","EMAIL_ADDRESS","activeLdFlags","domainNameKey","postpurchaseData","postpurchaseKey","purchaseVBA","ein","defaultCorpStockFlowData","corpStockFlowData","corpStockFlowKey","defaultStockSetupData","stockSetupData","stockSetupKey","getCompleteCorpFlowId","goInFlowOrder","urlMovement","method","disableEIN","getEINEntryPoint","makeUrlMovement","movement","useLocation","clickEvent","trackClick","getPageDetails","parseUrl","nextUrl","markStockFeePaid","SET_CORP_STOCK_FLOW","hasValue","val","Array","isArray","initCorpStockFlow","Promise","resolve","jurisdiction","message","probe","corpStockService","getVariableFeeExistence","result","fallback","CORP_STOCK_FEE_STATES","tasks","getOrderTasks","tasksArray","formation","find","task","order_task_type","orderTaskData","order_task_data","authorized_shares","state_fees","all","goNext","GO_NEXT","setStockFee","feeResponse","SET_STOCK_FEE","submitCorpStockCalculated","params","orderTaskUuid","accountId","authorizedShares","valuePerShare","netTotal","owedNow","isZeroFee","SUBMIT_CORP_STOCK_CALCULATED","patchOrderTaskData","par_value","addFeeCorpCalculator","account_uuid","fee_amount","reject","submitCorpStock","orderTask","submitStockCheckout","feeAmount","payment","SUBMIT_STOCK_CHECKOUT","cardToken","addPaymentMethodV2","card_token","brand","last4","conflict","kind","setAsstSecretary","goToAsstSecretary","GO_TO_ASST_SEC","setBasicEmailAddress","setChooseAsstSecretary","setChoosePresident","setChooseSecretary","setChooseTreasurer","setChooseVicePresident","setCorpStock","setHasMoreThanOneShare","setDBAEntities","setDirectorCount","REG_AGENT","setDirectorList","setDomainNamePrimary","setEstimatedFormationDate","EST_DATE","setHasAsstSecretary","setHasVicePresident","setPresident","goToPresident","GO_TO_PRES","setPurchaseDBACompliance","setPurchaseDBAEntity","setPurchaseRA","purchaseRA","doReplace","setPurchaseVBA","boolAsStr","parseBoolToString","getButtonClickDetails","setSecretary","goToSecretary","GO_TO_SEC","PURCHASE_SUCCESS","setStartComplete","forward","setTreasurer","goToTreasurer","GO_TO_TRSR","setVicePresident","goToVicePresident","GO_TO_VP","expediteFees","updateCorp","dbaEntity","hasEIN","parentType","OWNER_COUNT","OWNERS","HAS_EIN","EIN","defaultDBAEntityData","dbaEntityData","dbaEntityKey","getCompleteLLCFlowId","getCompleteEntryPoint","setAllAddressesModal","setDBAModal","DBA_MODAL","setDomesticEntity","DOM_ENTITY","setEIN","setHasEIN","setOwnerCount","setOwnersModal","OWNER_MODAL","setOwners","setRegistrationModal","REG_MODAL","updateDBAEntity","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","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","einOrderTaskUuid","subStatus","SKIP_EIN","setSkipEIN","serviceEndpoint","getServiceEndpoint","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","isOrderCompleteByType","OrderTypes","NY_PUBLICATION","BUSINESS_LICENSE_REPORT","getCompleteNYPubFlowId","isLoggedIn","getAppEntryPoint","isDasboard","updateNyPubLLC","WORRY_FREE","NAME_RESERVATION","updateWFG","CHOOSE_PLAN","CONFIRMATION","getRegisterAccountingFlowId","defaultEttfRenewalData","ettfRenewalData","ettfRenewalKey","async","paymentResponse","orderTaskMigrationServicesResponse","fintechService","getOrderTaskMigrationServices","lastFour","default_source","defaultSource","sources","source","termEndDate","planData","Date","toDateString","MIGRATE_MONEY_PLAN_COMPLETE","migrateMoneyPlan","couponUuid","plan","term","MIGRATE_MONEY_PLAN","redirect","isExpenseTrackingWithTaxFilingEnabled","setProgressBar","currentStep","setReducerProgressBar","activeFlow","defaultETNTFData","ETNTFData","ETNTFKey","resetReducerProgressBar","resetProgressBar","path","idx2","indexOf","createETNTF","createExpenseTrackerNTaxFiling","getOrders","response1","GET_ORDERS_COMPLETE","expenseTrackerNTaxFiling","isFromWebView","WebView","isWebView","stateCode","GET_STATE_FEES","stateFeeResponse","GET_STATE_FEES_COMPLETE","useReferrer","SET_APP_ENTRY_POINT","referrer","entryPoint","initializeData","INITIALIZE_PRICING_DATA","SET_INITIALIZATION","getExpediteFees","GET_EXPEDITE_FEES","expediteFeeResponse","GET_EXPEDITE_FEES_COMPLETE","businessEntityUuid","GET_ORDER_TASKS","getOrderTasksByCompany","GET_ORDER_TASKS_COMPLETE","values","order_task_uuid","orderTasks","GET_ORDERS","initialization","feedbackSource","purchaseBLR","purchaseBOF","purchaseBusinessKit","purchaseFFD","purchaseCD","purchaseWFGIR","purchaseVanityProduct","showCD","purchaseBankOfAmericaOffer","purchaseZBMPro","purchaseZbBankingPreferredOffer","purchaseTaxAdviceBizTaxPrep","purchaseTaxAdvice","zbBankingPreferred","hasPurchasedBankingPreferred","isStateClosed","standard","delayed","wfgirData","wfg_initial_report","showWFGIR","stackedFlowItems","vanityProduct","getPostPurchaseVanityProduct","potentialAfterPaymentUrls","VANITY_PRODUCT_NOTICE","el","vanityForward","isFutureFileDateEnabled","PURCHASE_FFD","FUTURE_FILING_DATE","bofTestVariant","getBOFTestVariant","taxTestVariant","getTaxTestVariant","PURCHASE_BOF","PURCHASE_TAX_ADVICE_BUNDLE","isBusinessKitEnabled","PURCHASE_BUSINESSKIT","isBusinessLicenseEnabled","blrItems","getBLRFlow","purchaseEIN","PURCHASE_BLR","BLR_START","BLR_BUS_AT_HOME","BLR_BUS_INDUSTRY","BLR_HAS_EMPLOYEES","BLR_EMPL_COUNT","BLR_HAS_DBAS","BLR_DATA_CONFIRM","PURCHASE_BANKING_OFFER","isCorporateDocsEnabled","PURCHASE_CD","isWFGInitialReportEnabled","PURCHASE_WFGIR","splice","flowPosition","VANITY_PRODUCT_OFFER","PURCHASE_FEEDBACK","_some","Boolean","MARK_COMPLETE","_flattenDeep","defaultInitializationData","initializationData","initializationKey","skipBLR","leadData","leadKey","defaultPostpurchaseData","bofOngoing","purchaseExpenseTrackerAndTaxFiling","taxAdviceMonthly","taxAdviceBizTaxPrepMonthly","showZBMPro","flowType","feedbackData","feedbackKey","feedbackOther","getRegistrationFlowId","getBackUrl","lastToBack","undefined","setBLRBusinessIndustry","setBLRBusinessOutOfHome","setBLRDataConfirmation","setBLREmployeesCount","setBLRHasDBAs","setBLRHasEmployees","setBLRLicenseDataModal","BLR_LIC_DATA_MODAL","setBLRStart","setPurchaseBLR","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","createPostPurchaseOrder","ldClient","vanityLegalPurchased","needsBOFStandalone","createPostPurchase","createPostPurchaseBOF","track","err2","CREATE_ORDER_BOF_FAILED","STEP_1","STEP_2","STEP_3","hasExistingBusiness","ACCOWN_NAME","HAS_EX_BUS","BUS_TYPE","ACCOWN_CONTACT","noIdMatches","getRegisterGSFlowId","doReset","setAccountOwnerContact","setAccountOwnerName","setBusinessType","setCompleteStep1","setCompleteStep2","setCompleteStep3","setHasExistingBusiness","createAccount","CREATE_ACCOUNT","create","CREATE_ACCOUNT_COMPLETE","accountAlreadyCreated","setBackFromCompleteBusiness","createAccountingOrder","createAccounting","accounting","createAmendmentOrder","fieldInfo","createAmendment","getAmendmentPrice","ORDER_SUBMITTED","formFieldInfo","rules","companyType","isEditable","amendment","requiresAmendment","business_purpose","structure","managers","officers","addresses","stock_info","authorized_signatory","showWebFileId","showMakesLessThanAmount","annual_report","fieldKey","makes_less_than_amount","canFileAnnualReport","dispatchUpdateField","fieldName","newValue","SET_FIELD","updatedFieldValue","dispatchResetField","RESET_FIELD","fetchComplianceEvents","companyInfo","FETCH_JURISDICTION_REQ","FETCH_COMPLIANCE_EVENTS_REQ","getComplianceEvents","FETCH_COMPLIANCE_EVENTS_COMPLETE","upcomingEventDate","event_date","log","handleDeepLink","allCompanies","selectedCompany","SET_COMPANY","company","SET_DEFAULT_TAX_PREPARER","taxPreparer","contact","SET_JURISDICTION_TYPE","jurisdictionType","filingJurisdiction","setUseCredit","useCredit","creditUUID","hasWFG","SET_USE_CREDIT","setAddWFC","didAddWFC","SET_ADD_WFC","setSelectOnlyAnnualReport","didSelectOnlyAnnualReport","SET_SELECT_ONLY_ANNUAL_REPORT","setCompanyToFile","sendToModifyPage","ADVANCE_IN_FLOW","newRouteName","MODIFY_COMPANY","SELECT_JURISDICTION","updateField","originalValue","hasChanges","updatedContacts","_get","firstName","middleName","lastName","companyName","suffix","addressType","fetchJurisdictionInfo","jurisdictionCode","amendmentService","getJurisdictionInfo","FETCH_JURISDICTION_COMPLETE","jurisdictionRules","fieldRules","setChangingOwnership","changingOwnership","SET_CHANGING_OWNERSHIP","setUseARS","hasARS","SET_USE_ARS","setPurchaseWFG","isPurchasing","SET_PURCHASE_WFG","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","originalCompanyInfo","filingJurisdictionType","hasPurchasedWFC","complianceEventDueDate","SELECT_COMPANY","skipForeignStep","complianceEventUuid","foundJurisdiction","jurisdictions","stateId","isSkip","setForeignJurisdictionStateId","SELECT_FOREIGN_JURISDICTION","VALIDATE_COMPANY","additionalQuestions","getAdditionalQuestionsFlow","originalFieldInfo","modifyQuestionsFlowForMdLlc","fieldInfoClone","_cloneDeep","txFlowChangesEnabled","flags","modifyQuestionsFlowForTx","fieldsToDisable","showFlag","hasToCheckUpdatedCompanyInfo","reportMissingAdditionalQuestions","foundQuestionsForWA","str","reportError","Error","metaData","severity","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","worryFree","worry_free_service_basic","worryFreeServiceBasicId","worry_free_service_advanced","worryFreeServiceAdvancedId","toLowerCase","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","emailInPlan","CHOOSE_COMPANY","defaultDomainNameData","setChooseCompany","createBasicEmailOrder","createBasicEmail","getBasicEmailYearlyPrice","getNewCustomerFlowOrder","LOGIN_POST","BUS_EXIST","getNewCompanyFlowOrder","isSimulated","BUS_ID","hasCompanies","shift","getExistingCompanyFlowOrder","startConfirm","getRegisterEINFlowId","forceBusinessId","setBusinessDataModal","BUS_DATA_MODAL","setBusinessExist","setBusinessId","setContactDataModal","ACCOWN_MODAL","setIsFreeAccount","setLogin","LOGIN","setLoginPostPurchase","createBLROrder","createBusinessLicense","getBusinessLicensePrice","CREATE_LEAD","defaultBoiData","boiData","boiKey","getBeneficialOwnershipFilingId","businessKit","createBeneficialOwnershipFilingOrder","isOngoing","isMod","hasOngoing","createBeneficialOwnershipFiling","getBeneficialOwnershipFilingPrice","ongoingPrice","getOngoingBofCompliancePrice","bofModPrice","getBofModificationPrice","ongoingAddlData","bofModAddlData","beneficialOwnershipFiling","redirectToWebAssemblyForm","href","WebAssemblyFormUrl","CHECK_BOF_SUBSCRIPTION","flowOrderItem","createBusiness","CREATE_BUSINESS","CREATE_BUSINESS_COMPLETE","businessAlreadyCreated","defaultBusinessKitData","businessKitData","businessKitKey","getRegisterBusinessKitFlowId","createBusinessKitOrder","createBusinessKit","getBusinessKitPrice","QUESTIONNAIRE","CONGRATS","getStepOrderMobileMVP","busDetailsLocked","requestedJurisdictionCount","foreignQualFiling","foreignRegistration","selfFile","stepOrder","STEPS","WELCOME","REQ_JURS","FOREIGN_REG","FOREIGN_QUAL_FILING","HOW_TO_FILE","RETURN_TO_LANDING","CHOOSE_HAS_FORMATION","PLAN","CART","getExistingBusinessStepOrder","domJurNotReqJurs","formWithZen","saveData","ACCOWN_FIRST_NAME","HAS_FORMATION","FORM_WITH_ZEN","GO_TO_FORMATION","UPSELL_DOM_JUR","CHOOSE_DOM_JUR","CHECKPOINT","ACCOWN_LAST_NAME","ACCOWN_EMAIL","ACCOWN_PHONE","getNewBusinessStepOrder","getStepOrderMobileMaxLTV","variantMap","VARIANTS","MVP","mobile","desktop","MAX_LTV","noScrollingMap","needsFormation","businessTypeOnParam","formationOnParam","idOnParam","requestedJurisdictionOnParam","step","getStepOrder","variant","getTestVariant","device","flowFunction","getStepsFlow","getNoScrollSteps","noScrollingSteps","getStepIndex","order","getNextStep","resetStep","requestedStepIndex","currentStepIndex","nextStep","setGlobalProgressBar","COMPLETE_CORA_URLS","d","setStep","resettingBackToStep","isResettingBackToStep","requestedStep","previousStep","previousStepIndex","RESET_ACTION_ERROR","resetActionError","cartUpdate","snapshotData","LeadManager","searchstate","selectedState","entityName","purchase_flow","setAccountOwnerEmail","setAccountOwnerFirstName","setAccountOwnerLastName","setAccountOwnerPhone","fromCart","setBusinessTypeAndName","BUS_TYPE_NAME_CART","setCart","setCheckpoint","setChooseDomesticJurisdiction","setChooseHasFormation","setCreateOrder","FLOW_COMPLETE","setForeignQualFiling","setForeignRegistration","setFormWithZen","setHasFormation","setHowToFile","requestedJurisdictionsOnParam","requestedJurisdictionsCount","setNextStep","therest","NEXT_STEP","setPlan","setPricing","PRICES","setRequestedJurisdictions","setRegAgent","WEBSITE_URLS","PRICING","setRegisteredStatesFromCart","REG_STATES_FROM_CART","setReturnToLanding","setUnregisteredStatesFromCart","UNREG_STATES_FROM_CART","setUpsellDomJur","upsellDomJur","setWelcome","corpDocs","defaultCorpDocsData","corpDocsData","corpDocsKey","returnTo","createCorpDocsOrder","createCorpDocs","getCorporateDocsPrice","getStepsForDBAName","DBA_NAME","POST_DBA_NAME","getStepsWhenCompanyStateIsNotSupported","JURISDICTION_NOT_SUPPORTED","getStepsWhenCompanyIsSelected","DBA_IN_SAME_STATE","registerDBAInSameState","FORM_IN_HOME_STATE","formInHomeState","BEFORE_CART","POST_FORM_IN_HOME_STATE","getFlowToRegisterBusinessAndDBA","isNewAccount","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","START_UPSELLS","PURCH_WEBSITE","PURCH_EIN","steps","DBA","simulatedCompanyId","getFlowForFreeDashboardUser","useCompanyConfirmation","BUS_USAGE_CONFIRM","confirmCompanyUsage","loggedInUserNumberOfBusinesses","BUS_SELECTION","loggedInBusSelection","BUS_SELECTION_VALUE_OPTIONS","NEW","EXISTING","isCompanyStateSupported","getFlowWhenCompanyIdIsInUrl","getDefaultFlowForLoggedInUser","getFlowForLoggedInUser","getFlowForNewAccount","defaultDbaEntityData","isRegisteringABusiness","dbaKey","urlGoTo","COMPLETE_DBA_URLS","dispatchNextStep","includeStepInDispatch","customerSnapshotData","customerKey","businessName","move","theRest","setFormWithZB","formWithZB","setHomeState","setFormInHomeState","setDomesticJurisdictionConfirmation","setBusinessIsRegistered","businessIsRegistered","BUS_REGISTERED","setCompanyHasForeignQualification","companyHasForeignQualification","BUS_HAS_FOREIGN_QUALIFICATION","setCompanyUsageConfirmation","setCheckOtherJurisdictions","setBusinessSelection","setRegisterDBAInSameState","setStaticWebsite","setPurchaseEIN","setInitJurisdiction","setRequestedJurisdiction","REQ_JUR","checkIfDomJurIsSupported","domJur","initJurDom","skipInititialDomJur","PRE_NEXT_STEP","setDBAName","takeUserToExternalLinks","setDBA","setSpecificStep","createDBAOrder","creationMethod","getDBAEntityPrice","resetData","_isEmpty","RESET_DATA","DOMAIN_NAMES","domainNamePrivacy","getRegisterDomainV2Id","createDomainNameOrderV2","createDomainNameV2","primary","orderUuid","clickstreamTrackEvent","isDomainNamePrivacyEnabled","PURCH_DOMAIN_PRIV","isBasicEmailEnabled","PURCH_EMAIL","EMAIL_ADDRESSES","PRODUCT_CONFIRM","setBasicEmailAddresses","setBasicEmailAddressModal","setDomainNames","setProductConfirmation","setPurchaseBasicEmail","setPurchaseDomainNamePrivacy","createDomainNameOrder","createDomainName","getDomainNameYearlyPrice","showSelectDomain","SELECT_DOMAIN","setDomainName","createDomainNamePrivacyOrder","createDomainNamePrivacy","getDomainNamePrivacyYearlyPrice","NO_COMPANY","COMP_EIN_URLS","setNoCompany","createEINOrder","getEINPrice","leadUuid","setContactData","EMAILS","emailKey","getRegisterEmailV2Id","createEmailV2","createEmail","emailAddresses","encodeURIComponent","CHOOSE_STATE","defaultFlowData","flowData","goodStandingKey","goToChooseCompany","GO_TO_CHOOSE_COMPANY","goToChooseState","GO_TO_CHOOSE_STATE","setChooseState","createGSOrder","createGoodStanding","getGoodStandingPrice","goodStanding","createInitialCPAScreening","defaultLogoKitData","logoKitData","logoKitKey","getRegisterLogoKitFlowId","logoKit","fromUpgrade","createLogoKitOrder","createLogoKit","getLogoKitPrice","ACC_OWN_INFO","skipBusinessName","getRegisterNameresFlowId","setAccountOwnerInformation","initialFlowOrder","createNameResOrder","getNameResPrice","paymentData","goToNextCompletion","completedUrl","completedActionIndex","postpurchaseGoToNextUncompletedPage","blrGoToNextUncompletedPage","dbaGoToNextUncompletedPage","nypubGoToNextUncompletedPage","setStartCompleteCoRA","coraGoToNextUncompletedPage","wfgGoToNextUncompletedPage","einGoToNextUncompletedPage","corpGoToNextUncompletedPage","llcGoToNextUncompletedPage","goToNextRegOrComplete","skipLoginCheck","loggedIn","forceBus","regGoToNextUncompletedPage","regEinGoToNextUncompletedPage","regBLRGoToNextUncompletedPage","regNameResGoToNextUncompletedPage","regNYPubGoToNextUncompletedPage","regWFGGoToNextUncompletedPage","regCoRAPFGoToNextUncompletedPage","HAS_FORMATION_NY_PUB","PUB_COUNTY","items","getRegisterNYPubFlowId","LLC","CORP","COMP_NYPUB_URLS","setAccountOwnerModal","setHasFormationNYPub","setPubCounty","setPubCountyModal","PUB_COUNTY_MODAL","createNYPubOrder","createNyPubLLC","getNYPubPrice","emailUserName","emailSkip","createOnlineToolsOrder","createWebsiteToolsBundle","getWebsiteToolsBundleYearlyPrice","operatingAgreement","defaultOperatingAgreementData","operatingAgreementData","operatingAgreementKey","createOperatingAgreementOrder","createOperatingAgreement","getOpAgreementPrice","smbEcommAddon","alreadyPurchased","ALREADY_PURCHASED","CHOOSE_INTERVAL","defaultSMBEcommAddonData","smbEcommAddonData","smbEcommAddonKey","getRegisterSMBEcommAddonFlowId","trackClickEvent","pageTitle","clickText","inputValue","pageDetails","pageType","clickDetails","clickType","setAlreadyPurchased","setTimeout","setWebsiteNotPurchased","WEBSITE_NOT_PURCHASED","setChooseInterval","yearlyInterval","isUpgrade","externalUid","accountName","siteName","planId","fromEntitled","fromPublish","websiteNotPurchased","selectBrowserUrl","createSMBEcommAddonOrder","createSMBEcommAddon","getSMBEcommAddonYearlyPrice","getSMBEcommAddonMonthlyPrice","smbWebsite","defaultSMBWebsiteData","smbWebsiteData","smbWebsiteKey","getRegisterSMBWebsiteFlowId","createSMBWebsiteOrder","createSMBWebsite","getSMBWebsiteYearlyPrice","getSMBWebsiteMonthlyPrice","smbWebsiteEcomm","defaultSMBWebsiteEcommData","smbWebsiteEcommData","smbWebsiteEcommKey","getRegisterSMBWebsiteEcommFlowId","createSMBWebsiteEcommOrder","createSMBWebsiteEcomm","getSMBWebsiteEcommYearlyPrice","getSMBWebsiteEcommMonthlyPrice","smbWebsiteOrEcomm","CHOOSE_PACKAGE","defaultSMBWebsiteOrEcommData","smbWebsiteOrEcommData","smbWebsiteOrEcommKey","getRegisterSMBWebsiteOrEcommFlowId","_clickDetails","pageCategory","pageSection","elementName","setChoosePackage","chooseEcomm","hasDemoStore","createSMBWebsiteOrEcommOrder","createSMBWebsiteOrEcomm","getRegisterStockSetupFlowId","getStockFeeTotal","newData","createStockSetupOrder","stockInfo","corpFormationId","updateStockSetup","defaultTaxServicesData","taxServicesData","taxServicesKey","taxServices","redirectToDashboard","COMPLETE_RETURN_TO_DASH","redirectToTaxServices","createTaxServicesOrder","createTaxServices","getRegisterWFGFlowId","COMP_WFG_URLS","fullData","createWFGOrder","getWFGYearlyPrice","createWFGIROrder","createWFGInitialReport","getWFGInitialReportPrice","wfgir","zbBankingPreferredData","zbBankingPreferredKey","BANKING_BASE","createZbBankingPreferredOrder","createZbBankingPreferred","getZbBankingPreferredMonthlyPrice","defaultZBMProData","zbmProData","zbmProKey","zbmPro","COMPLETE_LINK_WITH_PLAID","redirectToMoneyDashboard","COMPLETE_RETURN_TO_MONEY_DASH","createZBMProOrder","createZBMPro","getZBMProMonthlyPrice","getPlanPurchaseFlow","bankingResolutionAddOn","bankingResolutionUpsellSkip","basicEmailAddOn","basicEmailUpsellSkip","corporateDocsAddOn","corporateDocsUpsellSkip","domainNameAddOn","domainNameUpsellSkip","domainNamePrivacyAddOn","domainNamePrivacyUpsellSkip","einAddOn","einUpsellSkip","expediteAddOn","expediteUpsellSkip","nyPublicationAddOn","nyPublicationUpsellSkip","operatingAgreementAddOn","operatingAgreementUpsellSkip","staticWebsiteAddOn","staticWebsiteUpsellSkip","worryFreeAddOn","worryFreeUpsellSkip","addStaticWebsiteToflow","isStaticWebsiteEnabled","isUpsellEnabled","isRAOfferEnabled","PURCH_RAS","PURCH_EXP","isEINEnabled","isWFGEnabled","PURCH_WF","isOpAgreementEnabled","PURCH_OP_AGREE","isBankingResolutionEnabled","PURCH_BANK_RES","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","scorpOutsideInvestors","executeMovement","urlsSet","CORP_URLS","LLC_URLS","getArrowClickDetails","getInitExpediteFees","reset","setBusinessNameConfirm","setBusinessTypeModal","BUS_TYPE_MODAL","fromHomePage","setDomesticJurisdictionModal","DOM_JUR_MODAL","setFormationCounty","FORM_COUNTY","setInfoConfirmation","forceToPrivacy","getClickDetails","setPurchaseBankingResolution","bankingResolution","setPurchaseCorporateDocs","corporateDocs","setPurchaseDomainName","boolAsString","setPurchaseExp","expedite","setPurchaseNYPub","nyPublication","setPurchaseOperatingAgreement","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","setRegisteredAgentData","RA_DATA","setCompanyDetails","EDIT_CHECKOUT"],"sourceRoot":""}