{"version":3,"file":"js/event-handlers-pphTracker.js","mappings":"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","sources":["webpack://bizsignupnodeweb/./lib/flow-bundles/event-handlers/pphTracker.js"],"sourcesContent":["const _ = require('lodash'),\n $ = require('jquery'),\n DEVICE_ID = 'pphTrackingDeviceId',\n SESSION_ID = 'pphTrackingSessionId',\n AMPLITUDE_KEY = 'pphAmplitudeKey',\n AMPLITUDE_HTTP_URL = 'https://api.amplitude.com/httpapi',\n AMPLITUDE_IDENTIFY_URL = 'https://api.amplitude.com/identify',\n appConst = require('../../../lib/constants');\n\nconst decisionMap = {\n approvalEmailConfirm: 'Approved',\n approval: 'Approved',\n denied: 'Denied',\n additionalInformation: 'Need More Info',\n review: 'Manual Review',\n territories: 'Unsupported Territory',\n cardReaderOrder: 'Approved',\n COMPLETE: 'Approved',\n DECLINED: 'Denied',\n MANUAL_REVIEW: 'Manual Review'\n};\n\nconst userCohortMap = {\n checkAccount: 'Net New User',\n createNewAccount: 'Net New User',\n upgradeExistingBusinessAccount: 'Existing Business Account',\n personalInfoReview: 'Existing Business Account',\n businessUpgradeMissingInfo: 'Existing Business Account',\n upgradeBusinessAccount: 'Consumer Upgrade',\n consumerUpgradeBizInfo: 'Consumer Upgrade',\n specialPrice: '1.99% pricing campaign'\n};\n\nconst promoCodeMap = {\n 'pphtiles': 'Hawk Tiles',\n 'pphbanner': 'Hawk Banner',\n '37mail': 'March 7 Email',\n '312mail': 'March 12 Email'\n};\n\nconst pageNameMap = {\n signupStart: 'Onboarding - Step 0 - PPH Landing Screen',\n checkAccount: 'Onboarding - Step 1 - Sign Up',\n checkAccountSDK: 'Onboarding - Step 1 - Sign Up',\n createPassword: 'Onboarding - Step 2 - Password',\n create: 'Onboarding - Step 3 - Business Info Page 1',\n businessInfo: 'Onboarding - Step 3 - Business Info Page 2',\n personalInfo: 'Onboarding - Step 4 - Personal Info',\n denied: 'Onboarding - Decline Page',\n review: 'Onboarding - Manual Review Page',\n approval: 'Onboarding - Approval Page',\n territories: 'Onboarding - Unsupported Territories Page',\n additionalInformation: 'Onboarding - Need More Info Page',\n upgradeExistingBusinessAccount: 'Onboarding - Business Account Upgrade - Apply Page',\n upgradeBusinessAccount: 'Onboarding - Consumer Account Upgrade - Apply Page',\n personalInfoReview: 'Onboarding - Review Screen',\n personalInfoEdit: 'Onboarding - Edit Screen',\n upgradeConsumerAccountLandingPage: 'Onboarding - Consumer Account Upgrade - CFPB Page',\n consumerUpgradeBizInfo: 'Onboarding - Consumer Account Upgrade Single Page',\n createNewAccount: 'Onboarding - Net New User Credential Page',\n newUserInfo: 'Onboarding - Net New User Single Page',\n specialPrice: 'Onboarding - 1.99 Pricing Initiative - Opt-In Page',\n specialPriceNotEligible: 'Onboarding - 1.99 Pricing Initiative - Not Eligible',\n specialPriceMissingInfo: 'Onboarding - 1.99 Pricing Initiative - Collect Missing Info Page',\n businessUpgradeMissingInfo: 'Onboarding - Business Account Upgrade - Intelligent Info Collection Page',\n redirectSDKPage: 'Onboarding - SDK Partner ReturnURL page',\n redirectGiftPage: 'Onboarding - Gift Card ReturnURL page',\n maintenance: 'Onboarding - Maintenance Page - AU Ramp Call to Apply',\n deprecated: 'Onboarding - Deprecation Page - AU',\n cardReaderOrder: 'Onboarding - Choose Reader Web',\n approvalEmailConfirm: 'Onboarding - Confirm Email Screen',\n landingPageWithReader: 'Onboarding - New Landing Page'\n};\n\nconst approvalExperimentPageMap = {\n cardReaderOrder: 'Onboarding - Choose Reader Web - Reader on its Way',\n withoutIcon: 'Onboarding - Approval Page Test No Check Mark',\n withoutCards: 'Onboarding - Approval Page Test No Check Mark No Cross Sell'\n};\n\nconst clickEventMap = {\n landingPageLogin: 'Onboarding - Step 0 - PPH Landing Screen - Login Clicked',\n landingPageSignUp: 'Onboarding - Step 0 - PPH Landing Screen - Sign Up Clicked',\n signupContinue: 'Onboarding - Step 1 - Sign Up - Continue Clicked',\n passwordContinue: 'Onboarding - Step 2 - Password - Continue Clicked',\n createContinue: 'Onboarding - Step 3 - Business Info Page 1 - Agree and Create Account Clicked',\n businessInfoContinue: 'Onboarding - Step 3 - Business Info Page 2 - Continue Clicked',\n personalInfoContinue: 'Onboarding - Step 4 - Personal Info - Submit Clicked',\n textMeApproval: 'Onboarding - Approval Page - Text Me Clicked',\n shopNowApproval: 'Onboarding - Approval Page - Shop Now Clicked',\n moreWaysDenied: 'Onboarding - Decline - More Ways to Get Paid Clicked',\n moreWaysReview: 'Onboarding - Review - More Ways to Get Paid Clicked',\n learnMoreReview: 'Onboarding - Review - Learn More Clicked',\n resCenterAdditionalInfo: 'Onboarding - Need More Data Page - Go to Resolution Center Clicked',\n continueBusinessUpgrade: 'Onboarding - Business Account Upgrade - Apply Page - Agree and Apply for PayPal Here Clicked',\n continueConsumerUpgrade: 'Onboarding - Consumer Account Upgrade - Apply Page - Agree and Apply for PayPal Here Clicked',\n approvalShopNow: 'Onboarding - Approval Page - Shop Now Clicked',\n approvalApplyNow: 'Onboarding - Approval Page - Apply for Debit Card Clicked',\n approvalAppStore: 'Onboarding - Approval Page - App Store Icon Clicked',\n approvalGooglePlay: 'Onboarding - Approval Page - Google Play Store Icon Clicked',\n personalReviewEditButton: 'Onboarding - Review Screen - Edit Information Clicked',\n personalReviewSubmitButton: 'Onboarding - Review Screen - Continue Clicked',\n personalEditSubmitButton: 'Onboarding - Edit Screen - Done Clicked',\n continueUpgradeOnConsumerUpgradeLanding: 'Onboarding - Consumer Account Upgrade - CFPB - Upgrade Clicked',\n createNewAccountOnConsumerUpgradeLanding: 'Onboarding - Consumer Account Upgrade - CFPB - Create New Account Clicked',\n trackSubmitClickOnUpgradePage: 'Onboarding - Consumer Account Upgrade Single Page - Submit Clicked',\n trackNewAccountCreateOnUpgradePage: 'Onboarding - Consumer Account Upgrade Single Page - Create a New Business Account Clicked',\n trackAgreementClickOnUpgradePage: 'Onboarding - Consumer Account Upgrade Single Page - PayPal Here Agreement Clicked',\n trackBusinessAddressAgreementCheckBox: 'Onboarding - Consumer Account Upgrade Single Page - About You - Home Address is Same as Business checkbox clicked',\n trackAddrSuggest: 'Onboarding - Step 4 - Personal Info - Address Suggestion Begin',\n createNewAccountContinue: 'Onboarding - Net New User Credential Page - Continue Clicked',\n trackSubmitClickOnNewUserPage: 'Onboarding - Net New User Single Page - Submit Clicked',\n trackAgreementClickOnNewUserPage: 'Onboarding - Net New User Single Page - PayPal Here Agreement Clicked',\n trackHomeBusinessAddressCheckBox: 'Onboarding - Net New User Single Page - About You - Home Address is Same as Business checkbox clicked',\n newUserInfoCharityCheckBox: 'Onboarding - Net New User Single Page - Business Info - Non-profit Charity checkbox clicked',\n consumerUpgradeBizInfoCharityCheckBox: 'Onboarding - Consumer Account Upgrade Single Page - Business Info - Non-profit Charity checkbox clicked',\n trackSpecialPriceAgreementCheckBox: 'Onboarding - 1.99 Pricing Initiative - Opt-In Page - Terms and Conditions Checkbox Clicked',\n specialPriceContinue: 'Onboarding - 1.99 Pricing Initiative - Opt-In Page - Agree & Continue Clicked',\n specialPriceNotEligibleUpgrade: 'Onboarding - 1.99 Pricing Initiative - Not Eligible - Upgrade Account Clicked',\n specialPriceNotEligibleCreateNew: 'Onboarding - 1.99 Pricing Initiative - Not Eligible - Create New Account Clicked',\n specialPriceMissingInfoSubmit: 'Onboarding - 1.99 Pricing Initiative - Collect Missing Info Page - Submit Clicked',\n trackUpgradeExistingBizAgreementCheckBox: 'Onboarding - Business Account Upgrade - Intelligent Info Collection Page - Terms Checkbox Clicked',\n trackUpgradeExistingBizSubmitButton: 'Onboarding - Business Account Upgrade - Intelligent Info Collection Page - Agree & Continue Clicked',\n trackAgreementBusinessUpgrade: 'Onboarding - Business Account Upgrade - Apply Page - PayPal Here Agreement Checkbox Checked',\n continueReview: 'Onboarding - Manual Review Page - Continue to PayPal Account Clicked',\n shopNowReview: 'Onboarding - Manual Review Page - Order a Card Reader Clicked',\n continueToPPH: 'Onboarding - Confirm Email Screen - Continue to PayPal Here',\n trackRadioMagtek: 'Onboarding - Choose Reader Web - Audio Swiper Clicked',\n trackRadioChipAndSwipe: 'Onboarding - Choose Reader Web - Chip & Swipe Clicked',\n trackCardReaderOrderSubmitButton: 'Onboarding - Choose Reader Web - Order Card Reader Clicked​​​​​​​​​​​​​​​​​​​​​',\n trackSubmitClickOnCFPBPage: 'Onboarding - Consumer Account Upgrade - CFPB - Next Clicked',\n trackLoginFromLandingPageWithReader: 'Onboarding - New Landing Page - Login Clicked',\n trackContinueFromLandingPageWithReader: 'Onboarding - New Landing Page - Continue Clicked',\n trackBdmcOfferCard: 'BDMC Terms and Conditions Clicked'\n};\n\nconst approvalClickEventMap = {\n textMeApproval: 'Text Me Clicked',\n approvalAppStore: 'App Store Icon Clicked',\n approvalGooglePlay: 'Google Play Store Icon Clicked',\n approvalShopNow: 'Shop Now Clicked',\n approvalApplyNow: 'Apply for Debit Card Clicked'\n};\n\nconst cardReaderOrderRadioMap = {\n MAGTEK: 'trackRadioMagtek',\n CHIP_AND_SWIPE: 'trackRadioChipAndSwipe'\n};\n\nconst eventNamePrefix = {\n consumerUpgradeBizInfo: {\n bizInfoEvents: 'Onboarding - Consumer Account Upgrade Single Page - Business Info - ',\n personalInfoEvents: 'Onboarding - Consumer Account Upgrade Single Page - About You - '\n },\n newUserInfo: {\n bizInfoEvents: 'Onboarding - Net New User Single Page - Business Info - ',\n personalInfoEvents: 'Onboarding - Net New User Single Page - About You - '\n },\n createNewAccount: {\n credentialsInfoEvents: 'Onboarding - Net New User Credential Page - '\n },\n upgradeExistingBusinessAccount: {\n personalInfoEvents: 'Onboarding - Business Account Upgrade - Apply Page - '\n }\n};\n\nconst blurEventCollection = {\n bizInfoEvents: [\n 'trackBusinessType',\n 'trackBusinessName',\n 'trackMerchantCode',\n 'trackAverageMonthlyVolume',\n 'trackBusinessAddressStreet1',\n 'trackBusinessAddressStreet2',\n 'trackBusinessAddressCity',\n 'trackBusinessAddressState',\n 'trackBusinessAddressZip',\n 'trackBusinessAddress',\n 'trackBusinessPhoneNumber',\n 'trackEmployerIdentificationNumber'\n ],\n personalInfoEvents: [\n 'trackHomeAddressStreet1',\n 'trackHomeAddressStreet2',\n 'trackHomeAddressCity',\n 'trackHomeAddressState',\n 'trackHomeAddressZip',\n 'trackHomeAddressZipAU',\n 'trackHomeAddress',\n 'trackMobilePhoneNumber',\n 'trackDateOfBirth',\n 'trackSSN'\n ],\n credentialsInfoEvents: [\n 'trackFirstName',\n 'trackLastName',\n 'trackEmail',\n 'trackPassword'\n ]\n};\n\nconst blurEventMap = {\n trackBusinessType: {\n fieldPath: 'data.fields.businessType.value',\n eventName: 'Business Type Completed'\n },\n trackBusinessName: {\n fieldPath: 'data.fields.businessLegalName.value',\n eventName: 'Business Name Completed'\n },\n trackMerchantCode: {\n fieldPath: 'data.fields.merchantCategoryCode.value',\n eventName: 'Business Keyword Search Completed'\n },\n trackAverageMonthlyVolume: {\n fieldPath: 'data.fields.businessAverageMonthlyVolume.value',\n eventName: 'Monthly sales Estimate completed'\n },\n trackBusinessAddressStreet1: {\n fieldPath: 'data.fields[\"businessAddress[businessAddressStreet1]\"].value',\n eventName: 'Business Address - Street Address Completed'\n },\n trackBusinessAddressStreet2: {\n fieldPath: 'data.fields[\"businessAddress[businessAddressStreet2]\"].value',\n eventName: 'Business Address - Street Address Line 2 Completed'\n },\n trackBusinessAddressCity: {\n fieldPath: 'data.fields[\"businessAddress[businessAddressCity]\"].value',\n eventName: 'Business Address - City Completed'\n },\n trackBusinessAddressState: {\n fieldPath: 'data.fields[\"businessAddress[businessAddressState]\"].value',\n eventName: 'Business Address - State Completed'\n },\n trackBusinessAddressZip: {\n fieldPath: 'data.fields[\"businessAddress[businessAddressZip]\"].value',\n eventName: 'Business Address - Zip Code Completed'\n },\n trackBusinessAddress: {\n fieldPath: 'data.fields.businessAddress.value',\n eventName: 'Business Address Completed'\n },\n trackBusinessPhoneNumber: {\n fieldPath: 'data.fields.businessPhoneNumber.value',\n eventName: 'Business Phone Completed'\n },\n trackEmployerIdentificationNumber: {\n fieldPath: 'data.fields.employerIdentificationNumber.value',\n eventName: 'EIN completed'\n },\n trackHomeAddressStreet1: {\n fieldPath: 'data.fields[\"homeAddress[homeAddressStreet1]\"].value',\n eventName: 'Home Address - Street Address Completed'\n },\n trackHomeAddressStreet2: {\n fieldPath: 'data.fields[\"homeAddress[homeAddressStreet2]\"].value',\n eventName: 'Home Address - Street Address Line 2 Completed'\n },\n trackHomeAddressCity: {\n fieldPath: 'data.fields[\"homeAddress[homeAddressCity]\"].value',\n eventName: 'Home Address - City Completed'\n },\n trackHomeAddressState: {\n fieldPath: 'data.fields[\"homeAddress[homeAddressState]\"].value',\n eventName: 'Home Address - State Completed'\n },\n trackHomeAddressZip: {\n fieldPath: 'data.fields[\"homeAddress[homeAddressZip]\"].value',\n eventName: 'Home Address - Zip Code Completed'\n },\n trackHomeAddress: {\n fieldPath: 'data.fields.homeAddress.value',\n eventName: 'Home Address Completed'\n },\n trackHomeAddressZipAU: {\n fieldPath: 'data.fields.homeAddressZip.value',\n eventName: 'Home Address - Zip Code Completed'\n },\n trackDateOfBirth: {\n fieldPath: 'data.fields.dateOfBirth.value',\n eventName: 'Date of Birth Completed'\n },\n trackMobilePhoneNumber: {\n fieldPath: 'data.fields.mobilePhoneNumber.value',\n eventName: 'Mobile Number Completed'\n },\n trackSSN: {\n fieldPath: 'data.fields.ssn.value',\n eventName: 'SSN Completed'\n },\n trackFirstName: {\n fieldPath: 'data.fields.firstName.value',\n eventName: 'First Name Completed'\n },\n trackLastName: {\n fieldPath: 'data.fields.lastName.value',\n eventName: 'Last Name Completed'\n },\n trackEmail: {\n fieldPath: 'data.fields.email.value',\n eventName: 'Email Completed'\n },\n trackPassword: {\n fieldPath: 'data.fields.password.value',\n eventName: 'Password Completed'\n }\n};\n\nconst _logEvent = (eventPayload, deviceInfo, product, userId, ctx) => {\n const payload = [{\n ...eventPayload,\n device_id: sessionStorage.getItem(DEVICE_ID),\n session_id: sessionStorage.getItem(SESSION_ID),\n platform: _getPlatform(product, deviceInfo),\n os_name: _.get(deviceInfo, 'browserName'),\n os_version: _.get(deviceInfo, 'browserVersion'),\n user_id: userId\n }];\n const countryCode = _.get(ctx, 'content.countryCode');\n const locale = _.get(ctx, 'content.locale');\n\n $.ajax({\n url: AMPLITUDE_HTTP_URL,\n type: 'GET',\n data: {\n api_key: sessionStorage.getItem(AMPLITUDE_KEY),\n event: JSON.stringify(payload),\n 'country.x': countryCode,\n 'locale.x': locale\n }\n });\n};\nconst _logIdentifyEvent = (userId, ctx) => {\n\n // associate device id with user id so amplitude ties user sessions\n const payload = [{\n device_id: sessionStorage.getItem(DEVICE_ID),\n user_id: userId\n }];\n\n const countryCode = _.get(ctx, 'content.countryCode');\n const locale = _.get(ctx, 'content.locale');\n\n $.ajax({\n url: AMPLITUDE_IDENTIFY_URL,\n type: 'GET',\n data: {\n api_key: sessionStorage.getItem(AMPLITUDE_KEY),\n identification: JSON.stringify(payload),\n 'country.x': countryCode,\n 'locale.x': locale\n }\n });\n};\n\nconst _getPlatform = (product, deviceInfo) => {\n if (!product || !deviceInfo) {\n return;\n }\n if (product === 'pphmobile' && deviceInfo) {\n return _.get(deviceInfo, 'deviceOS');\n }\n return 'WEB';\n};\n\nconst _getSDKPartnerData = (ctx) => {\n const pphSDKPartnerData = _.get(ctx, 'data.fields.pphSDKPartnerData.value');\n if (pphSDKPartnerData) {\n return {\n 'SDK Partner': 'Y',\n 'Partner Onboarding BN code': pphSDKPartnerData.partnerId,\n 'Partner Onboarding Name': pphSDKPartnerData.partnerName\n };\n }\n};\n\nconst _setDeviceAndSessionId = () => {\n // generate a random device id for amplitude\n // this unique id is to be maintained in further events to tie the events together in amplitude dashboard\n if (sessionStorage.getItem(DEVICE_ID) && sessionStorage.getItem(SESSION_ID)) {\n return;\n }\n\n const uniqueDeviceId = 'PPH_TRACKING_ID_' + new Date().getTime() + '_' + Math.floor(Math.random() * 20);\n sessionStorage.setItem(DEVICE_ID, uniqueDeviceId);\n sessionStorage.setItem(SESSION_ID, new Date().getTime().toString());\n};\n\nconst _setAmplitudeKey = (amplitudeKey) => {\n if (sessionStorage.getItem(AMPLITUDE_KEY)) {\n return;\n }\n sessionStorage.setItem(AMPLITUDE_KEY, amplitudeKey);\n};\n\nconst _getSourceURLData = () => {\n const referrerURL = _.get(window, 'document.referrer');\n // Below regex separates out different parts of the URL\n // ex. https://www.paypal.com/bizsignup => [0]:://www.paypal.com [1]:www. [2] paypal.com\n const parsedURL = (/:\\/\\/(www[0-9]?\\.)?(.[^/:]+)/i).exec(referrerURL);\n return {\n 'Onboarding Source URL': referrerURL,\n 'Onboarding Source Domain': _.get(parsedURL, 2)\n };\n};\n\nconst _findEventType = data => {\n for (let [key, value] of Object.entries(blurEventCollection)) {\n if (value.includes(data)) {\n return key;\n }\n }\n};\n\nconst EventHandlers = {\n logPageView(ev, elementName, ctx) {\n // if sessionStorage isn't present i.e older browsers, simply return\n /* istanbul ignore if */\n if (!window.sessionStorage) {\n return;\n }\n\n const terminalPages = ['denied', 'review', 'approval', 'territories', 'additionalInformation', 'redirectSDKPage', 'redirectGiftPage', 'approvalEmailConfirm', 'cardReaderOrder'];\n const startPages = [\n 'checkAccount',\n 'checkAccountSDK',\n 'upgradeExistingBusinessAccount',\n 'upgradeBusinessAccount',\n 'consumerUpgradeBizInfo',\n 'personalInfoReview',\n 'createNewAccount',\n 'specialPrice',\n 'specialPriceNotEligible',\n 'businessUpgradeMissingInfo',\n 'maintenance',\n 'landingPageWithReader',\n 'deprecated'\n ];\n\n const activePage = ctx.form.activePage;\n const countryCode = ctx.content.countryCode;\n const product = _.get(ctx, 'data.fields.product.value');\n const deviceInfo = _.get(ctx, 'data.fields.deviceInfo');\n let pageName = pageNameMap[activePage];\n\n if (!pageName) {\n return;\n }\n\n // US Approval page added 2 elmo experimentation and like to log the page name according to\n // experiment type\n const approvalExperimentType = _.get(ctx, 'data.fields.approvalTypeExp.value');\n if (activePage === appConst.PPH_APPROVED_PAGE &&\n approvalExperimentPageMap[approvalExperimentType]) {\n pageName = approvalExperimentPageMap[approvalExperimentType];\n }\n // US added an elmo exp that includes a cardReaderOrder page on user approval. We are changing the name\n // of the log, if approval page is directed from cardReaderOrder page.\n if (activePage === appConst.PPH_APPROVED_PAGE && _.get(ctx, 'data.fields.isCardReaderOrder.value')) {\n pageName = approvalExperimentPageMap[appConst.PPH_CARD_READER_ORDER_PAGE];\n }\n\n const amplitudeKey = _.get(ctx, 'data.fields.amplitudeKey.value');\n _setAmplitudeKey(amplitudeKey);\n _setDeviceAndSessionId();\n\n const shouldLogStartEvent = _.includes(startPages, activePage);\n // AU starts the flow on signupStart not checkAccount this is to allow AU flow gets properly logged without\n // adding signupStart to startPages and repeated for other flows\n const AUStartEvent = activePage === 'signupStart' && countryCode === 'AU';\n\n if (shouldLogStartEvent || AUStartEvent) {\n\n const promo = promoCodeMap[_.get(ctx, 'data.fields.promo.value')];\n const sourceURLData = _getSourceURLData();\n const sdkPartnerData = _getSDKPartnerData(ctx);\n const eventPayload = {\n event_type: 'Onboarding - Start',\n user_properties: {\n 'Market': countryCode,\n 'Onboarding User Type': userCohortMap[activePage],\n 'Onboarding Platform': _getPlatform(product, deviceInfo),\n 'Promo Type': promo,\n ...sourceURLData,\n ...sdkPartnerData\n },\n event_properties: {\n ...sourceURLData\n }\n };\n _logEvent(eventPayload, deviceInfo, product, undefined, ctx);\n\n }\n\n const userId = _.get(ctx, 'data.fields.userId.value');\n if (userId) {\n _logIdentifyEvent(userId, ctx);\n }\n\n _logEvent({ event_type: pageName }, deviceInfo, product, userId, ctx);\n\n const shouldLogAggregateEvent = _.includes(terminalPages, activePage);\n // If user came from cardReaderOrder page, we should skip logging aggregate event on approval page.\n const shouldSkipAggregateEvent = activePage === appConst.PPH_APPROVED_PAGE &&\n _.get(ctx, 'data.fields.isCardReaderOrder.value');\n if (shouldLogAggregateEvent && !shouldSkipAggregateEvent) {\n const decisionType = decisionMap[activePage] || _.get(ctx, 'data.fields.pphSDKPartnerData.value.partnerSDKDecisionStatus') ||\n decisionMap[_.get(ctx, 'data.fields.pphGiftCardData.value.pphGiftCardDecision')];\n\n const eventPayload = {\n event_type: 'Onboarding - Sign Up Complete - Aggregate Event',\n user_properties: {\n 'Market': countryCode,\n 'Onboarding Platform': _getPlatform(product, deviceInfo),\n 'Decision Type': decisionType,\n ...(activePage === appConst.PPH_CARD_READER_ORDER_PAGE ? { 'Onboarding Test Variation': 'Choose Reader Web' } : {}),\n 'Gifting Flow': !!_.get(ctx, 'data.fields.pphGiftCardData.value.pphGiftCardDecision'),\n 'Dexter Status': _.get(ctx, 'data.fields.pphDexterStatus.value.status'),\n 'Dexter Status Code': _.get(ctx, 'data.fields.pphDexterStatus.value.statusCode'),\n 'Swiper Requested': ['Approved', appConst.PPH_PRODUCT_STATUS_APPROVED].includes(decisionType) && _.get(ctx, 'data.fields.pphSDKPartnerData.value').isSwiperRequested\n }\n };\n _logEvent(eventPayload, deviceInfo, product, userId, ctx);\n }\n\n },\n logClickAction(ev, element, ctx) {\n /* istanbul ignore if */\n if (!window.sessionStorage) {\n return;\n }\n\n // if there is a field error, don't log click event\n if (document.getElementsByClassName('error').length !== 0) {\n return;\n }\n\n let userAttributes = {},\n eventAttributes = {},\n clickSource = '';\n let trackingData = _.get(element, 'attributes.data-tracking');\n\n // For charity checkbox, since it's created inside customized React component, SearchDropdown, tracking data\n // will get a object instead of a single string value, so need to extract tracking data from itself.\n if (trackingData && trackingData.value) {\n trackingData = trackingData.value;\n }\n const eventClassName = _.get(ev, 'target.className');\n const eventID = _.get(ev, 'target.id');\n\n if (!trackingData && eventClassName) {\n if ((eventClassName.includes('pphApprovedClass') || eventClassName.includes('pphSpecialPriceNotEligible')) && eventID) {\n trackingData = eventID;\n }\n }\n\n // Allow cardReaderOrder radio buttons to be logged with proper trackingData and userAttributes\n const activePage = ctx.form.activePage;\n if (activePage === appConst.PPH_CARD_READER_ORDER_PAGE && cardReaderOrderRadioMap[ev]) {\n userAttributes = {\n 'Card Reader Type': _.get(ctx, 'data.fields.cardReaderType.value')\n };\n trackingData = cardReaderOrderRadioMap[ev];\n }\n\n if (!trackingData) {\n return;\n }\n\n clickSource = clickEventMap[trackingData];\n if (!clickSource) {\n return;\n }\n\n if (trackingData === 'trackBdmcOfferCard') {\n switch (activePage) {\n case appConst.NEW_USER_INFO_PAGE:\n clickSource = 'Onboarding - Net New User Single Page - ' + clickSource;\n break;\n case appConst.UPGRADE_CONSUMER_ACCOUNT_BIZINFO:\n clickSource = 'Onboarding - Consumer Account Upgrade Single Page - ' + clickSource;\n break;\n case appConst.PPH_BUSINESS_UPGRADE_MISSING_INFO:\n clickSource = 'Onboarding - Business Account Upgrade - Intelligent Info Collection Page - ' + clickSource;\n break;\n default:\n return;\n }\n }\n\n // This override reference is there for variation of approval page (elmo experiment).\n // We want to log the click event, dynamically to the elmo treatments.\n const approvalExperimentType = _.get(ctx, 'data.fields.approvalTypeExp.value');\n if (activePage === appConst.PPH_APPROVED_PAGE &&\n approvalExperimentPageMap[approvalExperimentType] &&\n approvalClickEventMap[trackingData]) {\n clickSource = `${approvalExperimentPageMap[approvalExperimentType]} - ${approvalClickEventMap[trackingData]}`;\n }\n // This override reference if approval page is directed from cardReaderOrder page.\n // Dynamically logging click events.\n if (activePage === appConst.PPH_APPROVED_PAGE &&\n _.get(ctx, 'data.fields.isCardReaderOrder.value') &&\n approvalClickEventMap[trackingData]) {\n clickSource = `${approvalExperimentPageMap[appConst.PPH_CARD_READER_ORDER_PAGE]} - ${approvalClickEventMap[trackingData]}`;\n }\n if (['specialPriceContinue', 'specialPriceMissingInfoSubmit'].includes(trackingData)) {\n if (_.get(ctx, 'data.fields.eloquaRequestStatus.value') === 'done') {\n clickSource += ' - Eloqua Success';\n } else {\n clickSource += ' - Eloqua Fail';\n }\n }\n\n // set user attrs and event attrs for specific events\n switch (trackingData) {\n case 'businessInfoContinue':\n const avgMonthlyVol = _.get(ctx, 'data.fields.businessAverageMonthlyVolume.value');\n const bizCategory = _.get(ctx, 'data.fields.businessCategory.value');\n const bizSubCategory = _.get(ctx, 'data.fields.businessSubcategory.value');\n const bizType = _.get(ctx, 'data.fields.businessType.value');\n\n userAttributes = {\n 'Estimated Monthly Sales': avgMonthlyVol,\n 'Business Category': bizCategory,\n 'Business Subcategory': bizSubCategory,\n 'Business Type': bizType\n };\n\n break;\n case 'trackAddrSuggest':\n const pageName = pageNameMap[activePage];\n clickSource = `${pageName} - Address Suggestion Begin`;\n if (!ev) {\n const addrSelectedIndex = _.get(ctx, 'data.fields.addressIndex.value');\n eventAttributes = {\n 'Result Number': addrSelectedIndex\n };\n // overriding event name when event is for address result selected\n clickSource = `${pageName} - Address Suggestion Result Chosen`;\n }\n break;\n case 'trackSubmitClickOnCFPBPage':\n const cfpbSelection = _.get(ctx, 'data.fields.cfpbUpgradeDecision.value');\n eventAttributes = {\n 'CFPB Selection': cfpbSelection === 'newAccount' ? 'Create' : 'Upgrade'\n };\n break;\n case 'textMeApproval':\n let mobileNumberPrefilled = _.get(ctx, 'data.fields.mobilePhoneNumber.prefilled');\n if (mobileNumberPrefilled) {\n userAttributes = {\n 'Onboarding Test Variation': 'Prefilled Text Me'\n };\n }\n break;\n case 'trackSubmitClickOnNewUserPage':\n case 'trackSubmitClickOnUpgradePage':\n case 'trackUpgradeExistingBizSubmitButton':\n const bdmcExist = _.get(ctx, `form.pages.${activePage}.elements`, []).some(el => {\n return el.component === 'BDMCOfferCard';\n });\n if (bdmcExist) {\n userAttributes = {\n 'Onboarding Test Variation': 'BDMC Cross-Sell',\n 'Onboarding BDMC Choice': _.get(ctx, 'data.fields.bdmcOfferCard.value') ? 'Opt In' : 'Opt Out'\n };\n }\n break;\n default:\n // nothing to handle in default\n }\n\n const eventPayload = {\n event_type: clickSource,\n user_properties: {\n ...userAttributes\n },\n event_properties: {\n ...eventAttributes\n }\n };\n const deviceInfo = _.get(ctx, 'data.fields.deviceInfo');\n const product = _.get(ctx, 'data.fields.product.value');\n const userId = _.get(ctx, 'data.fields.userId.value');\n\n _logEvent(eventPayload, deviceInfo, product, userId, ctx);\n },\n\n logOnBlurEvent(ev, element, ctx) {\n /* istanbul ignore if */\n if (!window.sessionStorage) {\n return;\n }\n\n const pagesToCheck = [\n appConst.UPGRADE_CONSUMER_ACCOUNT_BIZINFO,\n appConst.NEW_USER_INFO_PAGE,\n appConst.CREATE_NEW_ACCOUNT\n ];\n\n const activePage = ctx.form.activePage;\n\n let userAttributes = {};\n const product = _.get(ctx, 'data.fields.product.value');\n const deviceInfo = _.get(ctx, 'data.fields.deviceInfo');\n const amplitudeKey = _.get(ctx, 'data.fields.amplitudeKey.value');\n _setAmplitudeKey(amplitudeKey);\n _setDeviceAndSessionId();\n\n let trackingData = _.get(element, 'attributes.data-tracking');\n let valueToLogOnAmplitude = '';\n\n if (!trackingData) {\n return;\n }\n\n switch (trackingData) {\n case 'trackBusinessType':\n if (_.get(ctx, 'data.fields.businessType.value')) {\n const bizType = _.get(ctx, 'data.fields.businessType.value');\n\n userAttributes = {\n 'Business Type': bizType\n };\n }\n break;\n case 'trackAverageMonthlyVolume':\n if (_.get(ctx, 'data.fields.businessAverageMonthlyVolume.value')) {\n const avgMonthlyVol = _.get(ctx, 'data.fields.businessAverageMonthlyVolume.value');\n\n userAttributes = {\n 'Estimated Monthly Sales': avgMonthlyVol\n };\n }\n break;\n default:\n // nothing to handle in default\n }\n\n const eventMetadata = blurEventMap[trackingData];\n let errors = _.get(ctx, `data.fields['${element.attributes.name}'].errors`) || [];\n\n if (eventMetadata && _.get(ctx, eventMetadata.fieldPath) && !errors.length) {\n if (pagesToCheck.includes(activePage)) {\n let eventType = _findEventType(trackingData);\n valueToLogOnAmplitude = _.get(eventNamePrefix, `${activePage}.${eventType}`) + eventMetadata.eventName;\n } else if (pageNameMap[activePage]) {\n valueToLogOnAmplitude = `${pageNameMap[activePage]} - ${eventMetadata.eventName}`;\n }\n }\n\n if (!valueToLogOnAmplitude) {\n return;\n }\n\n const eventPayload = {\n event_type: valueToLogOnAmplitude,\n user_properties: {\n ...userAttributes\n }\n };\n\n _logEvent(eventPayload, deviceInfo, product, undefined, ctx);\n\n }\n};\n\nmodule.exports = EventHandlers;\n"],"names":["_","require","$","DEVICE_ID","SESSION_ID","AMPLITUDE_KEY","appConst","decisionMap","approvalEmailConfirm","approval","denied","additionalInformation","review","territories","cardReaderOrder","COMPLETE","DECLINED","MANUAL_REVIEW","userCohortMap","checkAccount","createNewAccount","upgradeExistingBusinessAccount","personalInfoReview","businessUpgradeMissingInfo","upgradeBusinessAccount","consumerUpgradeBizInfo","specialPrice","promoCodeMap","pageNameMap","signupStart","checkAccountSDK","createPassword","create","businessInfo","personalInfo","personalInfoEdit","upgradeConsumerAccountLandingPage","newUserInfo","specialPriceNotEligible","specialPriceMissingInfo","redirectSDKPage","redirectGiftPage","maintenance","deprecated","landingPageWithReader","approvalExperimentPageMap","withoutIcon","withoutCards","clickEventMap","landingPageLogin","landingPageSignUp","signupContinue","passwordContinue","createContinue","businessInfoContinue","personalInfoContinue","textMeApproval","shopNowApproval","moreWaysDenied","moreWaysReview","learnMoreReview","resCenterAdditionalInfo","continueBusinessUpgrade","continueConsumerUpgrade","approvalShopNow","approvalApplyNow","approvalAppStore","approvalGooglePlay","personalReviewEditButton","personalReviewSubmitButton","personalEditSubmitButton","continueUpgradeOnConsumerUpgradeLanding","createNewAccountOnConsumerUpgradeLanding","trackSubmitClickOnUpgradePage","trackNewAccountCreateOnUpgradePage","trackAgreementClickOnUpgradePage","trackBusinessAddressAgreementCheckBox","trackAddrSuggest","createNewAccountContinue","trackSubmitClickOnNewUserPage","trackAgreementClickOnNewUserPage","trackHomeBusinessAddressCheckBox","newUserInfoCharityCheckBox","consumerUpgradeBizInfoCharityCheckBox","trackSpecialPriceAgreementCheckBox","specialPriceContinue","specialPriceNotEligibleUpgrade","specialPriceNotEligibleCreateNew","specialPriceMissingInfoSubmit","trackUpgradeExistingBizAgreementCheckBox","trackUpgradeExistingBizSubmitButton","trackAgreementBusinessUpgrade","continueReview","shopNowReview","continueToPPH","trackRadioMagtek","trackRadioChipAndSwipe","trackCardReaderOrderSubmitButton","trackSubmitClickOnCFPBPage","trackLoginFromLandingPageWithReader","trackContinueFromLandingPageWithReader","trackBdmcOfferCard","approvalClickEventMap","cardReaderOrderRadioMap","MAGTEK","CHIP_AND_SWIPE","eventNamePrefix","bizInfoEvents","personalInfoEvents","credentialsInfoEvents","blurEventCollection","blurEventMap","trackBusinessType","fieldPath","eventName","trackBusinessName","trackMerchantCode","trackAverageMonthlyVolume","trackBusinessAddressStreet1","trackBusinessAddressStreet2","trackBusinessAddressCity","trackBusinessAddressState","trackBusinessAddressZip","trackBusinessAddress","trackBusinessPhoneNumber","trackEmployerIdentificationNumber","trackHomeAddressStreet1","trackHomeAddressStreet2","trackHomeAddressCity","trackHomeAddressState","trackHomeAddressZip","trackHomeAddress","trackHomeAddressZipAU","trackDateOfBirth","trackMobilePhoneNumber","trackSSN","trackFirstName","trackLastName","trackEmail","trackPassword","_logEvent","eventPayload","deviceInfo","product","userId","ctx","payload","device_id","sessionStorage","getItem","session_id","platform","_getPlatform","os_name","get","os_version","user_id","countryCode","locale","ajax","url","type","data","api_key","event","JSON","stringify","_setDeviceAndSessionId","uniqueDeviceId","Date","getTime","Math","floor","random","setItem","toString","_setAmplitudeKey","amplitudeKey","EventHandlers","logPageView","ev","elementName","window","activePage","form","content","pageName","approvalExperimentType","PPH_APPROVED_PAGE","PPH_CARD_READER_ORDER_PAGE","includes","promo","sourceURLData","_getSourceURLData","referrerURL","parsedURL","exec","sdkPartnerData","pphSDKPartnerData","partnerId","partnerName","_getSDKPartnerData","event_type","user_properties","event_properties","undefined","_logIdentifyEvent","identification","shouldLogAggregateEvent","shouldSkipAggregateEvent","decisionType","PPH_PRODUCT_STATUS_APPROVED","isSwiperRequested","logClickAction","element","document","getElementsByClassName","length","userAttributes","eventAttributes","clickSource","trackingData","value","eventClassName","eventID","NEW_USER_INFO_PAGE","UPGRADE_CONSUMER_ACCOUNT_BIZINFO","PPH_BUSINESS_UPGRADE_MISSING_INFO","some","el","component","logOnBlurEvent","pagesToCheck","CREATE_NEW_ACCOUNT","valueToLogOnAmplitude","eventMetadata","errors","attributes","name","eventType","key","Object","entries","_findEventType","module","exports"],"sourceRoot":""}