{"version":3,"file":"step1-bundle.js","sources":["../../ClientApp/js/persist-ibo-info.js","../../ClientApp/css/step1.css?raw","../../ClientApp/css/legal.css?raw","../../ClientApp/js/step1.js"],"sourcesContent":["// const iboInfoToPersist = {\n// iboNumber: 123,\n// isSponsorNumberProvided: false,\n// sponsorNumber: undefined\n// };\n\nconst IBO_INFO_key = \"LTD_iboInfo\"\n\n// write an exported function which takes IBO info to persist and persists it to local storage\nconst persistIboInfo = (iboInfo) => {\n // persist the IBO info to local storage\n const infoKey = `${IBO_INFO_key}`;\n localStorage.setItem(infoKey, JSON.stringify(iboInfo));\n}\n\n// write an exported function which takes IBO number and determines if the IBO info is persisted\nconst isIboInfoPersisted = () => {\n // determine if the IBO info is persisted\n const infoKey = `${IBO_INFO_key}`;\n return localStorage.getItem(infoKey) !== null;\n}\n\n// write an exported function which takes IBO number and retrieves the persisted IBO info\nconst getIboInfo = () => {\n // retrieve the persisted IBO info\n const infoKey = `${IBO_INFO_key}`;\n return JSON.parse(localStorage.getItem(infoKey));\n}\n\n// write an exported function which takes IBO number and removes the persisted IBO info\nconst removeIboInfo = () => {\n // remove the persisted IBO info\n const infoKey = `${IBO_INFO_key}`;\n localStorage.removeItem(infoKey);\n}\n\nconst sponsorNumberCheckedId = 'SponsorNumberChecked';\nconst sponsorNumberElemId = 'SponsorNumber';\nconst iboNumberElemId = 'IboNumber';\nconst iboNumberCheckedId = 'IboNumberChecked';\n\nconst getIboInfoToPersist = () => {\n const iboNumber = document.getElementById(iboNumberElemId).value;\n const sponsorNumberCheckedElem = $(`#${sponsorNumberCheckedId}`);\n const isSponsorNumberProvided = sponsorNumberCheckedElem.is(':checked');\n if (isSponsorNumberProvided) {\n const sponsorNumber = document.getElementById(sponsorNumberElemId).value;\n return { iboNumber, isSponsorNumberProvided, sponsorNumber };\n }\n return { iboNumber, isSponsorNumberProvided };\n}\n\nconst setIboInfoFromPersisted = (iboInfo) => {\n document.getElementById(iboNumberElemId).value = iboInfo.iboNumber;\n document.getElementById(sponsorNumberCheckedId).checked = iboInfo.isSponsorNumberProvided;\n if (iboInfo.isSponsorNumberProvided) {\n // set the sponsor number checked to checked\n document.getElementById(iboNumberCheckedId).checked = true;\n document.getElementById(sponsorNumberElemId).value = iboInfo.sponsorNumber;\n } else {\n document.getElementById(sponsorNumberElemId).value = '';\n }\n}\n\nexport const navigateToAmwayConsent = () => {\n let urlObj = new URL(window.location.href);\n const mainSite = `${urlObj.protocol}//${urlObj.hostname}`;\n const url = `https://account.amway.com/my-account/approved-provider/LTD?redirectURL=${mainSite}`;\n const iboInfoToPersist = getIboInfoToPersist();\n \n persistIboInfo(iboInfoToPersist);\n window.location.href = url;\n}\n\nexport const setIboInfoOnReturnToRegistration = async (fnAction) => {\n const bodyElem = $('body');\n bodyElem.addClass('waiting');\n if (isIboInfoPersisted()) {\n const iboInfo = getIboInfo();\n setIboInfoFromPersisted(iboInfo);\n removeIboInfo();\n await fnAction(iboInfo.iboNumber);\n }\n bodyElem.removeClass('waiting');\n}","export default \".column-checkbox {\\n padding-left: 1em;\\n padding-right: 0;\\n}\\n\\n.column-agreement, .agreement-input {\\n margin-top: 0;\\n}\\n\\n.agreement-input {\\n margin-bottom: 0.5em;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.agreement-input input {\\n width: 9.3em;\\n box-shadow: none;\\n}\\n\\n.agreement-input div {\\n margin-left: 0.1em;\\n}\\n\\n.no-margin {\\n margin: 0;\\n}\\n\\n.hidden {\\n display: none;\\n}\\n\\n.pointer {\\n cursor: pointer;\\n}\\n\\n#agreementModal {\\n overflow-y: visible;\\n}\\n\\n@media(max-width: 410px) {\\n .column-checkbox {\\n padding-left: 0.3em;\\n padding-right: 0.3em;\\n }\\n .column-agreement {\\n padding-left: 0;\\n padding-right: 0.2em;\\n }\\n}\"","export default \".legal-main-heading {\\n margin-bottom: 0.5em;\\n margin-top: 1em;\\n}\\n\\n.legal-paragraph, .legal-paragraph-indent {\\n margin: 0;\\n padding: 0.5em 0.5em;\\n}\\n\\n.legal-paragraph-indent {\\n margin-left: 1em;\\n}\\n\\ndiv.legal-heading {\\n margin: 0;\\n margin-top: 0.5em;\\n padding: 0.5em 0.5em;\\n text-transform: uppercase;\\n font-weight: bold;\\n}\\n\\n.legal-heading h4 {\\n margin: 0;\\n margin-top: 0.5em;\\n}\\n\\n.legal-section {\\n overflow-y: auto;\\n}\\n\\n.bold-clause {\\n font-weight: bold;\\n text-transform: uppercase;\\n}\\n\\n.underline-clause {\\n text-decoration: underline;\\n}\\n\\n.center-clause {\\n text-align: center;\\n}\"","import {useLogRocket, currentDateString, extraCallInterval, fetchIboStatusFromV2} from './common';\nimport {navigateToAmwayConsent, setIboInfoOnReturnToRegistration} from './persist-ibo-info';\nimport {debounce, memoize} from \"underscore\";\nimport styleInject from 'style-inject';\nimport stepCss from '../css/step1.css?raw';\nimport legalCss from '../css/legal.css?raw';\nimport log from 'loglevel';\n\nlet logRocket;\nuseLogRocket((lr) => { logRocket = lr; }).then(() => {});\n\nstyleInject(stepCss);\nstyleInject(legalCss);\n\nwindow.step1module = {\n isComplimentary: false,\n isIboSet: false,\n isIboError: false,\n isIboInactive: false,\n isIboNumberInUse: false,\n iboMessages: {amway: '', duplicate: '', wasComplimentaryNotEligible: ''},\n consentProvided: false\n};\n\nconst clearIboMessages = () => {\n const iboStatus = window.step1module;\n iboStatus.iboMessages = {amway: '', duplicate: '', wasComplimentaryNotEligible: ''};\n};\n\nconst iboNumberId = 'IboNumber';\n\nwindow.step1module.setIboVerified = async (isSet, userAction) => {\n window.step1module.isIboSet = isSet;\n if (isSet) {\n // clear the IBO eligibility cache if we are marking the IBO number as set\n const iboNumber = document.getElementById(iboNumberId).value;\n await clearIboEligibilityCache(iboNumber, () => {\n enableDisableAgreementButton();\n lookupIboQualifies(userAction);\n });\n } else {\n enableDisableAgreementButton();\n lookupIboQualifies(userAction);\n }\n}\n\nwindow.step1module.navigateToAmwayConsent = () => {\n $('body').addClass('waiting');\n navigateToAmwayConsent();\n}\n\nwindow.step1module.agreeNextPage = () => {\n $('body').addClass('waiting');\n setTimeout(() => {\n document.getElementById('frmSubmit').submit();\n }, 300);\n};\n\nwindow.step1module.goToLandingPage = () => {\n document.getElementById('frmLanding').submit();\n};\n\nconst onChkSponsorChange = window.step1module.onChkSponsorChange = (elem) => {\n lookupSponsor();\n if (elem.checked) {\n document.getElementById('SponsorNumber').disabled = false;\n $('#SponsorNumber').select();\n } else {\n document.getElementById('SponsorNumber').disabled = true;\n }\n enableDisableAgreementButton();\n};\n\nconst onChkIboChange = window.step1module.onChkIboChange = (elem) => {\n if (elem.checked) {\n document.getElementById('IboNumber').disabled = false;\n $('#IboNumber').select();\n } else {\n document.getElementById('IboNumber').disabled = true;\n }\n enableDisableAgreementButton();\n};\n\nconst getTerms = (fnCreateReq, url) => {\n log.info('getting terms and conditions');\n return new Promise((resolve, reject) => {\n const req = fnCreateReq();\n req.open('GET', url, true);\n\n req.onload = () => {\n if (req.status >= 200 && req.status < 400) {\n resolve(req.responseText);\n } else {\n reject({\n success: false,\n message: `${req.status}: ${req.statusText}`\n });\n }\n };\n\n req.onerror = () => {\n reject({\n success: false,\n message: `${req.status}: ${req.statusText}`\n });\n };\n\n req.send();\n });\n};\n\nconst callController = async (fnCreateReq, url, reqBody) => {\n log.info(`calling controller: ${url} -- ${reqBody}`);\n const req = fnCreateReq();\n req.open('POST', url, true);\n req.setRequestHeader('Content-Type', 'application/json');\n\n return new Promise((resolve, reject) => {\n req.onload = () => {\n if (req.status >= 200 && req.status < 400) {\n resolve(JSON.parse(req.responseText));\n } else {\n reject({\n success: false,\n message: `${req.status}: ${req.statusText}`\n });\n }\n };\n\n req.onerror = () => {\n reject({\n success: false,\n message: `${req.status}: ${req.statusText}`\n });\n };\n\n const data = JSON.stringify(reqBody);\n req.send(data);\n });\n};\n\nconst createHttpRequestFn = () => {\n return new XMLHttpRequest();\n};\nconst lookupSponsorUrlId = 'lookupSponsorUrl';\nconst termsUrlId = 'termsUrl';\nconst sponsorNumId = 'SponsorNumber';\nconst hasError = 'has-error';\nconst iboQualifiesUrl = 'IboQualifiesUrl';\nconst iboNumberErrorId = 'iboNumberError';\nconst clearIboCacheUrl = 'ClearIboCacheUrl';\n\nconst jumpToEndOfPage = () => {\n // jump to end of page\n log.info('jumping to end of page');\n $('html,body').animate({scrollTop: document.body.scrollHeight}, 500);\n setTimeout(() => {\n document.getElementById('agreementButton').focus();\n }, 400);\n};\n\nwindow.step1module.onAgreementChange = () => {\n if (enableDisableAgreementButton()) {\n jumpToEndOfPage();\n }\n};\n\nconst enableDisableAgreementButton = () => {\n const isComplimentary = window.step1module.isComplimentary;\n const nonDecoratedChecked = $('input[type=\"checkbox\"]:not([data-non-complimentary]):not([data-complimentary])').not(':checked').length === 0;\n const nonComplimentaryChecked = $('input[type=\"checkbox\"][data-non-complimentary]').not(':checked').length === 0;\n const complimentaryChecked = $('input[type=\"checkbox\"][data-complimentary]').not(':checked').length === 0;\n const requiredChecked = nonDecoratedChecked && (isComplimentary ? complimentaryChecked : nonComplimentaryChecked);\n const sponsorNumInvalid = document.getElementById(sponsorNumId).classList.contains(hasError);\n const iboNumInvalid = document.getElementById(iboNumberId).classList.contains(hasError);\n const isIboSet = window.step1module.isIboSet;\n const iboStatus = window.step1module;\n const isIboIssue = iboStatus.isIboError || iboStatus.isIboInactive;\n const consentProvided = iboStatus.consentProvided;\n\n if (requiredChecked && !sponsorNumInvalid && !iboNumInvalid && isIboSet && !isIboIssue && consentProvided) {\n document.getElementById('agreementButton').disabled = false;\n return true;\n } else {\n document.getElementById('agreementButton').disabled = true;\n return false;\n }\n};\n\nconst defaultCheckboxes = () => {\n const nonComplimentaryElems = document.querySelectorAll('[data-non-complimentary]');\n const complimentaryElems = document.querySelectorAll('[data-complimentary]');\n nonComplimentaryElems.forEach(e => e.style.display = 'none');\n complimentaryElems.forEach(e => e.style.display = 'block');\n}\n\nconst hideShowBasedOnComplimentary = () => {\n const iboStatus = window.step1module;\n const isIboIssue = iboStatus.isIboError || iboStatus.isIboInactive;\n if (!window.step1module.isIboSet || isIboIssue) {\n defaultCheckboxes();\n return;\n }\n const isComplimentary = window.step1module.isComplimentary;\n const consentProvided = window.step1module.consentProvided;\n const nonComplimentaryElems = document.querySelectorAll('[data-non-complimentary]');\n const complimentaryElems = document.querySelectorAll('[data-complimentary]');\n if (isComplimentary || !consentProvided) {\n nonComplimentaryElems.forEach(e => e.style.display = 'none');\n complimentaryElems.forEach(e => e.style.display = 'block');\n } else {\n nonComplimentaryElems.forEach(e => e.style.display = 'block');\n complimentaryElems.forEach(e => e.style.display = 'none');\n }\n};\n\nconst setAmwayRegistrationDate = (date) => {\n let formattedDate = currentDateString();\n if (date) {\n formattedDate = new Date(date);\n let dd = String(formattedDate.getDate()).padStart(2, '0');\n let mm = String(formattedDate.getMonth() + 1).padStart(2, '0'); //January is 0!\n let yyyy = formattedDate.getFullYear();\n\n formattedDate = yyyy + '-' + mm + '-' + dd;\n }\n\n document.getElementById('AmwayRegistrationDate').disabled = false;\n document.getElementById('AmwayRegistrationDate').value = formattedDate;\n document.getElementById('AmwayRegistrationDate').disabled = true;\n}\n\nconst processAmwayIboEligibilityResult = (d, isError = false) => {\n const iboStatus = window.step1module;\n iboStatus.iboMessages = {...iboStatus.iboMessages, amway: d.message};\n iboStatus.isIboError = isError || d.status.toLowerCase() === 'error';\n iboStatus.isIboInactive = !isError && d.status.toLowerCase() === 'inactive';\n\n if (!iboStatus.isIboError) {\n const isComplimentary = !d.paymentEligible;\n iboStatus.isComplimentary = !iboStatus.isIboError && !iboStatus.isIboInactive && isComplimentary;\n const consentProvided = d.consentProvided\n iboStatus.consentProvided = !iboStatus.isIboError && !iboStatus.isIboInactive && consentProvided;\n if (iboStatus.consentProvided) {\n setAmwayRegistrationDate(d.applicationDate)\n } else {\n setAmwayRegistrationDate();\n }\n } else {\n iboStatus.isComplimentary = false;\n iboStatus.consentProvided = false;\n }\n\n const amwayConsentDiv = $('#amwayConsentDiv');\n if (!iboStatus.consentProvided) {\n amwayConsentDiv.css('display', 'block'); // Show the div\n } else {\n amwayConsentDiv.css('display', 'none'); // Hide the div \n }\n}\n\nconst resetAmwayIboEligibility = () => {\n const iboStatus = window.step1module;\n iboStatus.isComplimentary = false;\n iboStatus.isIboError = false;\n iboStatus.isIboNumberInUse = false;\n iboStatus.isIboInactive = false;\n iboStatus.consentProvided = false;\n clearIboMessages();\n}\n\nconst lookupIboQualifies = debounce(async (userAction) => {\n const confirmIboSpan = $('#confirmIboSpan');\n clearIboMessages();\n if (!window.step1module.isIboSet) {\n confirmIboSpan.removeClass('hidden');\n defaultCheckboxes();\n return;\n }\n confirmIboSpan.addClass('hidden');\n log.info('lookup IBO qualifies');\n const url = document.getElementById(iboQualifiesUrl).value;\n const iboNumber = document.getElementById(iboNumberId).value;\n const req = {\n \"IboNumber\": iboNumber,\n \"MemberJoinDate\": currentDateString()\n };\n try {\n const iboQualifiesStatus = await callController(createHttpRequestFn, url, req);\n if (iboQualifiesStatus.success) {\n processAmwayIboEligibilityResult(iboQualifiesStatus.data);\n hideShowBasedOnComplimentary();\n if (await validateIboNumber() && userAction) {\n $('#IboNumberConfirmedModal').modal('show');\n }\n } else {\n log.error(iboQualifiesStatus.message);\n processAmwayIboEligibilityResult(iboQualifiesStatus.data);\n hideShowBasedOnComplimentary();\n await validateIboNumber();\n }\n } catch (err) {\n log.error(err);\n resetAmwayIboEligibility();\n hideShowBasedOnComplimentary();\n await validateIboNumber();\n }\n}, 300);\n\nconst clearIboEligibilityCache = async (iboNumber, fnSuccess) => {\n const url = document.getElementById(clearIboCacheUrl).value;\n const req = {\"IboNumber\": iboNumber};\n try {\n const clearIboCacheStatus = await callController(createHttpRequestFn, url, req);\n if (clearIboCacheStatus.success) {\n fnSuccess();\n } else {\n log.error(clearIboCacheStatus.message);\n }\n } catch (err) {\n log.error(err);\n }\n};\n\nconst lookupSponsor = debounce(async () => {\n log.info('lookup sponsor debounce called');\n const url = document.getElementById(lookupSponsorUrlId).value;\n const sponsorNumber = parseInt(document.getElementById(sponsorNumId).value);\n const req = {\"SponsorNumber\": sponsorNumber};\n const sponsorElem = document.getElementById(sponsorNumId);\n const sponsorNameElem = document.getElementById('sponsorName');\n const verifySponsorElem = document.getElementById('verifySponsor');\n try {\n const lookupSponsorStatus = await callController(createHttpRequestFn, url, req);\n if (lookupSponsorStatus.success) {\n const sponsorName = lookupSponsorStatus.data;\n const message = `Is '${sponsorName}' Your Sponsor? If not, re-type the sponsor number`;\n sponsorNameElem.innerHTML = message;\n sponsorElem.classList.remove(hasError);\n if (verifySponsorElem) {\n verifySponsorElem.textContent = `${sponsorName} (${sponsorNumber})`;\n }\n } else {\n sponsorNameElem.textContent = '';\n log.error(lookupSponsorStatus.message);\n sponsorElem.classList.add(hasError);\n if (verifySponsorElem) {\n verifySponsorElem.textContent = '';\n }\n }\n enableDisableAgreementButton();\n } catch (err) {\n log.error(err);\n sponsorElem.classList.add(hasError);\n sponsorNameElem.textContent = '';\n enableDisableAgreementButton();\n }\n}, 300);\n\nconst validateIboNumber = async () => {\n const iboNumElem = document.getElementById(iboNumberId);\n const iboNumber = parseInt(iboNumElem.value);\n const iboStatus = window.step1module;\n const iboNumberIsInUse = await checkForActiveIboNumberDuplicates(iboNumber);\n const wasComplimentaryNotPaymentEligible = await checkWasComplimentaryNotPaymentEligible(iboNumber);\n const isIboIssue = iboStatus.isIboError || iboStatus.isIboInactive || iboNumberIsInUse ||\n wasComplimentaryNotPaymentEligible;\n if (iboNumber > 0 && !isIboIssue) {\n iboNumElem.classList.remove(hasError);\n } else {\n iboNumElem.classList.add(hasError);\n }\n const iboErrorElem = document.getElementById(iboNumberErrorId);\n iboErrorElem.innerHTML = GetIboMessageHtml();\n iboErrorElem.style.display = isIboIssue ? 'block' : 'none';\n\n enableDisableAgreementButton();\n return iboNumber > 0 && !isIboIssue;\n};\n\nconst GetIboMessageHtml = () => {\n // combine the messages use a
tag to separate them\n const iboStatus = window.step1module;\n if (iboStatus.isIboInactive || iboStatus.isIboError) {\n iboStatus.iboMessages = { amway: iboStatus.iboMessages.amway };\n }\n const messageValues = Object.values(iboStatus.iboMessages);\n return messageValues\n .filter(m => (m ?? '').length > 0)\n .join('
');\n}\n\nconst checkForActiveIboNumberDuplicates = async (iboNumber) => {\n if (!iboNumber || Number.isNaN(iboNumber)) {\n log.debug('NOT checking for active IBO number duplicates: invalid IBO number');\n return false\n }\n log.info(`checking for active IBO number duplicates: [${iboNumber}]`);\n\n const iboStatus = window.step1module;\n const errorMessageHtml = `The IBO Number you entered is associated with another Member's account. ` +\n `Enter your correct IBO Number or contact support@ltdhq.com.`;\n\n iboStatus.isIboNumberInUse = false;\n iboStatus.iboMessages = {...iboStatus.iboMessages, duplicate: ''};\n try {\n const data = await fetchIboStatusFromV2(iboNumber);\n iboStatus.isIboNumberInUse = data.inUseWithActiveMember;\n iboStatus.iboMessages = {\n ...iboStatus.iboMessages,\n duplicate: data.inUseWithActiveMember ? errorMessageHtml : ''\n };\n return iboStatus.isIboNumberInUse;\n } catch (err) {\n // TODO: If there is an exception, should we return true or false? ... do we want to block the user from registering?\n log.error(err);\n return false;\n }\n};\n\nconst checkWasComplimentaryNotPaymentEligible = async (iboNumber) => {\n if (!iboNumber || Number.isNaN(iboNumber)) {\n log.debug('NOT checking for past complimentary status and payment eligibility: invalid IBO number');\n return false;\n }\n log.info(`checking for past complimentary status and payment eligibility: [${iboNumber}]`);\n \n const iboStatus = window.step1module;\n const errorMessageHtml = \n 'Your IBO Number is affiliated with an inactive LTD account with an Apprentice Subscription and ' +\n 'is not eligible to receive Apprentice again. Please register with LTD once your First ' +\n 'Complimentary Membership term has ended with Amway.';\n \n iboStatus.notEligibleWasComplimentary = false;\n iboStatus.iboMessages = {...iboStatus.iboMessages, wasComplimentaryNotEligible: ''};\n try {\n const data = await fetchIboStatusFromV2(iboNumber);\n iboStatus.notEligibleWasComplimentary = data.notEligibleWasComplimentary;\n iboStatus.iboMessages = {\n ...iboStatus.iboMessages,\n wasComplimentaryNotEligible: data.notEligibleWasComplimentary && !data.inUseWithActiveMember ? errorMessageHtml : ''\n };\n return iboStatus.notEligibleWasComplimentary;\n } catch (err) {\n // TODO: If there is an exception, should we return true or false? ... do we want to block the user from registering?\n log.error(err);\n return false;\n }\n};\n\nconst showIfChecked = (isCheckedId, checkBoxId, fnChkBoxChange) => {\n const isCheckedElem = document.getElementById(isCheckedId);\n const checkBoxElem = document.getElementById(checkBoxId);\n if (isCheckedElem && checkBoxElem) {\n if (isCheckedElem.value === 'True') {\n checkBoxElem.checked = true;\n fnChkBoxChange(checkBoxElem);\n }\n }\n};\n\nwindow.addEventListener('load', async () => {\n await setIboInfoOnReturnToRegistration(async (iboNumber) => {\n await clearIboEligibilityCache(iboNumber, () => {\n // this is where the call to the controller should be made to clear the IBO DynamoDB record\n step1module.setIboVerified(true);\n log.info('clearing IBO DynamoDB record');\n });\n });\n\n showIfChecked('SponsorNumberChecked', 'SponsorNumberChecked', onChkSponsorChange);\n showIfChecked('IboNumberChecked', 'IboNumberChecked', onChkIboChange);\n\n validateIboNumber().then(); // ignore the promise\n lookupSponsor();\n lookupIboQualifies();\n\n if ($('input[type=\"checkbox\"]').not(':checked').length === 0) {\n document.getElementById('SponsorNumber').disabled = false;\n document.getElementById('IboNumber').disabled = false;\n }\n\n window.step1module.showSubscribeAgreement = () => {\n $('body').addClass('waiting');\n $('#termLink').addClass('waiting');\n const url = document.getElementById(termsUrlId).value;\n getTerms(createHttpRequestFn, url)\n .then(txt => {\n $('#termLink').removeClass('waiting');\n $('body').removeClass('waiting');\n $('#subscribeAgreeContainer').html(txt);\n $('#subscribeAgreeModel').modal({show: true});\n })\n .catch(err => {\n $('#termLink').removeClass('waiting');\n $('body').removeClass('waiting');\n log.error(err);\n });\n }\n\n // lookup sponsor\n document.getElementById(sponsorNumId).addEventListener('keyup', lookupSponsor);\n // validate IBO number\n document.getElementById(iboNumberId).addEventListener('keyup', lookupIboQualifies);\n\n // to avoid times when debounce does not work\n setInterval(() => {\n lookupSponsor();\n lookupIboQualifies();\n }, extraCallInterval);\n});\n\n// -------- Log Rocket ---------\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const identityUpdater = memoize((iboNumber) => {\n // there is a limit of calling identify 10 times per page; memoize() to reduce calls\n log.debug(`Identifying user: ${iboNumber} | logRocket is set:`, !!logRocket);\n logRocket?.identify(\n `${iboNumber}`.toLocaleLowerCase().trim(),\n );\n }, (iboNumber) => `${iboNumber}`.toLocaleLowerCase().trim());\n const iboNumberInput = () => document.getElementById('IboNumber');\n iboNumberInput()?.addEventListener('blur', () => {\n const iboNumber = iboNumberInput()?.value;\n identityUpdater(iboNumber);\n });\n})\n// -------- End Log Rocket ---------"],"names":["IBO_INFO_key","persistIboInfo","iboInfo","infoKey","isIboInfoPersisted","getIboInfo","removeIboInfo","sponsorNumberCheckedId","sponsorNumberElemId","iboNumberElemId","iboNumberCheckedId","getIboInfoToPersist","iboNumber","isSponsorNumberProvided","sponsorNumber","setIboInfoFromPersisted","navigateToAmwayConsent","urlObj","url","iboInfoToPersist","setIboInfoOnReturnToRegistration","fnAction","bodyElem","stepCss","legalCss","logRocket","useLogRocket","lr","styleInject","clearIboMessages","iboStatus","iboNumberId","isSet","userAction","clearIboEligibilityCache","enableDisableAgreementButton","lookupIboQualifies","onChkSponsorChange","elem","lookupSponsor","onChkIboChange","getTerms","fnCreateReq","log","resolve","reject","req","callController","reqBody","data","createHttpRequestFn","lookupSponsorUrlId","termsUrlId","sponsorNumId","hasError","iboQualifiesUrl","iboNumberErrorId","clearIboCacheUrl","jumpToEndOfPage","isComplimentary","nonDecoratedChecked","nonComplimentaryChecked","complimentaryChecked","requiredChecked","sponsorNumInvalid","iboNumInvalid","isIboSet","isIboIssue","consentProvided","defaultCheckboxes","nonComplimentaryElems","complimentaryElems","e","hideShowBasedOnComplimentary","setAmwayRegistrationDate","date","formattedDate","currentDateString","dd","mm","processAmwayIboEligibilityResult","d","isError","amwayConsentDiv","resetAmwayIboEligibility","debounce","confirmIboSpan","iboQualifiesStatus","validateIboNumber","err","fnSuccess","clearIboCacheStatus","sponsorElem","sponsorNameElem","verifySponsorElem","lookupSponsorStatus","sponsorName","message","iboNumElem","iboNumberIsInUse","checkForActiveIboNumberDuplicates","wasComplimentaryNotPaymentEligible","checkWasComplimentaryNotPaymentEligible","iboErrorElem","GetIboMessageHtml","m","errorMessageHtml","fetchIboStatusFromV2","showIfChecked","isCheckedId","checkBoxId","fnChkBoxChange","isCheckedElem","checkBoxElem","txt","extraCallInterval","identityUpdater","memoize","iboNumberInput","_a"],"mappings":"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"}