{"version":3,"sources":["components/WPSDonePage/lib/WPSDonePageBnplHelper.js","components/WPSDonePage/lib/utils.js","components/WPSDonePage/query.gql.js","components/WPSDonePage/hooks.js","shared/components/Divider/styles.css","shared/utilities/arrayToObject.js","components/WPSDonePage/index.js","experiences/Hermione/styles.css","experiences/Hermione/index.js","lib/contextProvider.js","lib/userAction.js","shared/components/Divider/index.js"],"names":["mapBnplDetailsProps","selectedFundingOption","cart","incentives","fundingInstrument","name","type","isCreditWithAdditionalData","isGermanyPayLater","includes","getCountry","creditFiDetails","getCreditFIDetails","creditFields","paymentSchedule","getInstallmentNodes","creditOffer","creditPayLater","installmentsSchedule","installmentLabel","uiElements","creditOnlyFI","headlineText","repaymentsFIName","repaymentFILastDigits","lastDigits","gplAmountDueToday","gplAmountDueTodayDetails","incentivesLabel","getContent","incentiveType","currencyCode","amounts","total","incentivesAmount","incentiveAmount","installments","creditFI","label","firstPaymentWithCurrencyCode","currencyFormatSymbolISOCurrency","fundingSource","BULLETS","paidToday","scheduleLabel","returnToMerchantViaPost","url","postbackData","form","document","createElement","method","action","style","Object","keys","forEach","key","input","value","appendChild","window","body","submit","autoReturnMessageProps","merchant","onReturnToMerchant","paymentCompletedContent","redirectMessage","merchantName","clickHereLink","href","onClick","data-testid","getFormattedCurrency","currencyFormat","replacementRegex","RegExp","replace","getPaidFrom","headerProps","totalAmountObj","details","toMerchant","totalWithCurrencyCode","youPaid","detailsButtonCallback","logger","fpti","DONE_PAGE_PAYLOAD","flow","itemDetailsProps","handlingFeeAmount","handlingFee","insuranceAmount","insurance","shippingAmount","shipping","subtotalAmount","subtotal","taxAmount","tax","totalAmount","items","map","item","number","sku","price","unitPrice","quantity","options","itemOptionSelections","select","description","option","numberLabel","receipt","handling","getFIName","purchaseDetailsProps","completedPaymentInfo","shippingAddresses","buyer","shippedToInfo","fullAddress","formattedAddress","fullName","merchantDetails","messengerContent","bnplPaymentDetails","paidWith","disclaimer","softDescriptor","purchaseDetails","receiptLabel","receiptNumber","transactionId","emailLabel","email","stringValue","shippedTo","WPS_DONE_PAGE_QUERY","definitions","names","filter","definition","kind","ShippingAddressesFragment","useWPSDonePage","useFeature","data","shipToData","usePayContext","useIncentiveContext","amount","selectedAddressId","userSelectedAddressId","useQuery","variables","token","getToken","fetchPolicy","checkoutSession","selectedShippingAddress","address","addressId","returnMethod","params","rm","autoReturnToMerchant","preferences","enablePaymentDataTransfer","returnUrl","parseMerchantPreferences","returnToMerchant","useCallback","cal","info","urlParams","clean","st","payment_status","tx","txn_id","cc","mc_currency","amt","mc_gross","cm","custom","redirectUrl","buildURL","redirect","isRegulatoryReview","pending_reason","autoReturnEnabled","Boolean","donePageProps","useMemo","header","itemDetails","regulatoryReviewContent","reduce","contentStr","tag","trim","autoReturnMessage","buttonLabel","buttonCallback","isPaymentCompleted","module","exports","arrayToObject","array","keyFn","object","WPSDonePage","lazyComponent","id","WPSDonePageContainer","visible","Providers","Child","props","acc","Provider","composeProviders","EligibilityProvider","PayLaterProvider","PayProvider","fundingOptions","className","cx","AppStyles","pageWrapper","MerchantLogo","Header","Divider","styles","dividerClass","CartDropdown","SplitTenderErrors","role","container","DolphinBanner","PersonalizedBanner","ReviewPageAlert","Notifications","notifications","MerchantDescription","DonationShareAddress","ShipTo","CipDisclaimer","PaymentOptions","CreditOfferAsFi","CreditOfferAsFiDE","CreditSingleFIDisplay","BillingAgreement","CreditOffer","placement","LANDING_PAGE","REVIEW","GiveAtCheckout","PolicyAgreement","CheckoutButtonContainer","CancelLink","cancelLink","RedirectToCredit","ReturnFromCredit","Footer","Spinner","selectedFI","Sca","Econsent","AddFI","AddShipping","SelectShippingInterstitial","AddNormalizedAddress","CryptoTermsInterstitial","CurrencyConversion","CvvConfirmation","ThreeDSConfirmation","SharedCardConsent","SharedCardWait","OpenBanking","DolphinInterstitial","CreditApplyPortable","SelectFi","SepaConfirmation","Rewards","OTPConfirmation","RestrictedAccount","SplitTenderGate","SplitTenderBackup","ThreeDSTwoConfirmation","ShippingAndTaxInterstitial","InventorySoldOut","CHECKOUT_USER_ACTION_FLOWS","getCheckoutUserActionFlow","checkoutSessionUserAction","getUserAction","getIsPayNowUserActionFlow","getIsContinueUserActionFlow","children","dividerClasses","React","Children","child","isValidElement","cloneElement","Content","rest","contentClasses","contentContainer","as"],"mappings":"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","file":"js/experiences/Hermione~21833f8f.cfb65022.js","sourcesContent":["import getContent from '@/lib/content';\nimport { isCreditWithAdditionalData, getCreditFIDetails } from '@/lib/creditInstallmentsHelper';\nimport { gplAmountDueTodayDetails } from '@/lib/utils';\nimport getInstallmentNodes from '@/components/CreditSingleFIDisplay/Utils/CreditSingleFIScheduleHelper';\nimport { BULLETS } from '@/components/CreditSingleFIDisplay/GplFIDisplay/GplFIDisplayConstants';\nimport { getCountry } from '@paypalcorp/c3-shared-globals/src';\n\n/**\n * Returns object of props for rendering Payment with BNPL\n * @param {Object} selectedFundingOption\n * @param {Object} cart\n */\nexport const mapBnplDetailsProps = (selectedFundingOption, cart, incentives) => {\n const fundingInstrument = selectedFundingOption?.fundingInstrument;\n\n if (!fundingInstrument) {\n return null;\n }\n\n const { name, type } = fundingInstrument;\n\n // Not applicable if not paid with BNPL\n if (!isCreditWithAdditionalData(name, type)) {\n return null;\n }\n const isGermanyPayLater =\n fundingInstrument?.name?.includes('PAY_LATER_DE') && getCountry() === 'DE';\n const creditFiDetails = getCreditFIDetails(fundingInstrument?.creditFields);\n const paymentSchedule = !isGermanyPayLater\n ? getInstallmentNodes(\n fundingInstrument?.creditFields?.creditOffer?.creditPayLater?.installmentsSchedule,\n true\n )\n : false;\n const installmentLabel = isGermanyPayLater\n ? fundingInstrument?.creditFields?.creditOffer?.uiElements?.creditOnlyFI?.headlineText\n : null;\n const repaymentsFIName = creditFiDetails?.repaymentsFIName;\n const repaymentFILastDigits = creditFiDetails?.lastDigits;\n const gplAmountDueToday = gplAmountDueTodayDetails(fundingInstrument);\n const incentivesLabel = getContent(`incentives.${incentives?.incentiveType}.capitalizedHeading`);\n\n // passing in default props to react-component\n // will then conditional render elements based on the returned props\n const props = {\n currencyCode: cart?.amounts?.total?.currencyCode,\n incentivesLabel,\n incentivesAmount: incentives?.incentiveAmount,\n // This field should be changed later for a dynamic field to work for all countries\n installments: isGermanyPayLater\n ? fundingInstrument?.creditFields?.creditOffer?.uiElements?.creditFI?.headlineText\n : getContent('paymentOptions.gplProductName'),\n label: getContent('donePage.paidWith'),\n firstPaymentWithCurrencyCode: gplAmountDueToday?.currencyFormatSymbolISOCurrency,\n fundingSource:\n repaymentsFIName && repaymentFILastDigits\n ? `${repaymentsFIName} ${BULLETS}${repaymentFILastDigits}`\n : null,\n paidToday: getContent('donePage.paidToday'),\n paymentSchedule,\n scheduleLabel: !isGermanyPayLater ? getContent('gplFIDisplay.seeSchedule') : null,\n installmentLabel,\n };\n\n return props;\n};\n","import React from 'react';\nimport { DONE_PAGE_PAYLOAD } from '@paypalcorp/c3-util-logger';\nimport { logger } from '@paypalcorp/c3-util-logger';\nimport getContent from '@/lib/content';\nimport { params } from '@/lib/utils';\nimport { isCreditWithAdditionalData } from '@/lib/creditInstallmentsHelper';\nimport { mapBnplDetailsProps } from './WPSDonePageBnplHelper';\n\nexport const returnToMerchantViaPost = (url, postbackData) => {\n const form = document.createElement('form');\n\n form.method = 'POST';\n form.action = url;\n form.style = 'display:none;';\n\n Object.keys(postbackData).forEach((key) => {\n var input = document.createElement('input');\n input.name = key;\n input.value = postbackData[key];\n form.appendChild(input);\n });\n\n window.document.body.appendChild(form);\n form.submit();\n\n return true;\n};\n\nexport const parseMerchantPreferences = (merchant, cart) => ({\n returnMethod: params().rm === '2' ? 'POST' : 'GET',\n autoReturnToMerchant: merchant?.preferences?.autoReturnToMerchant ?? false,\n enablePaymentDataTransfer: merchant?.preferences?.enablePaymentDataTransfer ?? false,\n returnUrl: cart?.returnUrl?.href ?? merchant?.preferences?.returnUrl ?? '',\n});\n\nexport const autoReturnMessageProps = (merchant, onReturnToMerchant) => {\n return {\n paymentCompletedContent: getContent('donePage.paymentCompleted'),\n redirectMessage: getContent('donePage.redirectMessage', {\n merchantName: merchant?.name,\n // TODO: Replace with a button styled as a link\n clickHereLink: (\n \n {getContent('donePage.clickHereText')}\n \n ),\n }),\n };\n};\n\n/**\n * Return formatted currency value | 10,00 USD | 10,00\n * @param {String} currencyCode | USD\n * @param {Object} amountType\n * For crossborder transactions, currencyFormat returns `100,00 USD`\n * compared to `$100.00`, we need to differentiate those two on render\n * on UI, we need to display <>{$100.00}{USD}>\n */\nexport const getFormattedCurrency = (currencyCode = '', { currencyFormat } = {}) => {\n if (!currencyFormat) {\n return '';\n }\n if (currencyFormat.includes(currencyCode)) {\n const replacementRegex = new RegExp(`\\\\s*${currencyCode}\\\\s*`);\n return currencyFormat.replace(replacementRegex, '');\n }\n return currencyFormat;\n};\n\n/**\n * Return string for header content | You paid | PayPal paid\n * @param {Object} selectedFundingOption\n */\nexport const getPaidFrom = ({ fundingInstrument } = {}) => {\n if (!fundingInstrument) {\n return '';\n }\n const { name, type } = fundingInstrument;\n return isCreditWithAdditionalData(name, type)\n ? getContent('donePage.paypalPaid')\n : getContent('donePage.youPaid.member');\n};\n\nexport const headerProps = (cart, merchant, selectedFundingOption) => {\n if (!cart) {\n return null;\n }\n\n const currencyCode = cart?.amounts?.total?.currencyCode;\n const totalAmountObj = cart?.amounts?.total;\n\n return {\n details: getContent('donePage.details'),\n toMerchant: merchant?.name ? (\n <>\n \n {getContent('donePage.toMerchant', {\n merchantName: {merchant?.name},\n })}\n \n >\n ) : null,\n totalWithCurrencyCode: `${getFormattedCurrency(currencyCode, totalAmountObj)} ${currencyCode}`,\n youPaid: getPaidFrom(selectedFundingOption),\n detailsButtonCallback: () => {\n logger.fpti(\n 'DETAIL_CLICKED',\n DONE_PAGE_PAYLOAD({\n action: 'detailClicked',\n flow: 'wps',\n })\n );\n },\n };\n};\n\nexport const itemDetailsProps = (cart) => {\n if (!cart) {\n return null;\n }\n\n const currencyCode = cart?.amounts?.total?.currencyCode;\n const handlingFeeAmount = cart?.amounts?.handlingFee;\n const insuranceAmount = cart?.amounts?.insurance;\n const shippingAmount = cart?.amounts?.shipping;\n const subtotalAmount = cart?.amounts?.subtotal;\n const taxAmount = cart?.amounts?.tax;\n const totalAmount = cart?.amounts?.total;\n\n return {\n currencyCode,\n items: cart.items.map((item) => {\n return {\n name: item.name,\n number: item.sku,\n price: getFormattedCurrency(currencyCode, item.unitPrice),\n quantity: item.quantity,\n options: item.itemOptionSelections?.map(({ name, description }) => ({\n name,\n select: description,\n })),\n };\n }),\n options: cart.items.map((option) => {\n return { name: option.name, select: option.description };\n }),\n numberLabel: getContent('donePage.itemNumber'),\n receipt: {\n handling: getFormattedCurrency(currencyCode, handlingFeeAmount),\n insurance: getFormattedCurrency(currencyCode, insuranceAmount),\n label: {\n handling: getContent('donePage.handling'),\n insurance: getContent('donePage.insurance'),\n shipping: getContent('donePage.shipping'),\n subtotal: getContent('donePage.subtotal'),\n tax: getContent('donePage.tax'),\n total: getContent('donePage.total'),\n },\n shipping: getFormattedCurrency(currencyCode, shippingAmount),\n subtotal: getFormattedCurrency(currencyCode, subtotalAmount),\n tax: getFormattedCurrency(currencyCode, taxAmount),\n total: getFormattedCurrency(currencyCode, totalAmount),\n },\n };\n};\n\nconst getFIName = ({ fundingInstrument } = {}) => {\n if (!fundingInstrument) {\n return '';\n }\n const { name, lastDigits } = fundingInstrument;\n\n let lastDigitsContent = lastDigits ? `-${lastDigits}` : '';\n return `${name}${lastDigitsContent}`;\n};\n\nexport const purchaseDetailsProps = (\n completedPaymentInfo,\n incentives,\n merchant,\n selectedFundingOption,\n shippingAddresses,\n cart,\n buyer\n) => {\n let shippedToInfo = null;\n if (shippingAddresses?.[0]?.fullAddress) {\n shippedToInfo = {\n formattedAddress: [shippingAddresses[0].fullAddress],\n fullName: shippingAddresses[0]?.name?.fullName,\n label: getContent('donePage.shippedTo'),\n };\n }\n\n const currencyCode = cart?.amounts?.total?.currencyCode;\n const totalAmountObj = cart?.amounts?.total;\n\n return {\n merchantDetails: {\n label: getContent('donePage.merchantDetails'),\n merchant: merchant?.name,\n },\n messengerContent: getContent('donePage.getNotifications'),\n bnplPaymentDetails: mapBnplDetailsProps(selectedFundingOption, cart, incentives),\n paidWith: {\n currencyCode,\n // couple of hotfixes for release, will refactor once moved to separate files\n disclaimer: completedPaymentInfo?.softDescriptor\n ? getContent('donePage.statementMessage', {\n merchantName: completedPaymentInfo?.softDescriptor,\n })\n : '',\n fundingSource: getFIName(selectedFundingOption),\n label: getContent('donePage.paidWith'),\n total: getFormattedCurrency(currencyCode, totalAmountObj),\n },\n purchaseDetails: {\n label: getContent('donePage.purchaseDetails'),\n receiptLabel: getContent('donePage.receiptNumber'),\n receiptNumber: completedPaymentInfo?.transactionId,\n emailLabel: getContent('donePage.confirmationEmail'),\n email: buyer?.email?.stringValue,\n },\n shippedTo: shippedToInfo,\n };\n};\n\nexport const combineOfacContent = () => {\n const contentTags = [\n 'donePage.ofacHeadline',\n 'donePage.ofacDetailsLine1',\n 'donePage.ofacDetailsLine2',\n 'donePage.ofacDetailsLine3',\n 'donePage.ofacDetailsLine4',\n 'donePage.ofacDetailsLine5',\n 'donePage.ofacDetailsLine6',\n ];\n return contentTags.reduce((contentStr, tag) => (contentStr += getContent(tag) + ' '), '').trim();\n};\n","import gql from 'graphql-tag';\nimport { ShippingAddressesFragment } from '@/components/ShipTo';\n/**\n * query to fetch merchant details for WPS\n */\nexport const WPS_DONE_PAGE_QUERY = gql`\n ${ShippingAddressesFragment}\n query WPSDonePage($token: String!) {\n checkoutSession(token: $token) {\n completedPaymentInfo {\n transactionId\n transactionState\n softDescriptor\n postbackData\n }\n merchant {\n name\n preferences {\n autoReturnToMerchant\n enablePaymentDataTransfer\n returnUrl\n }\n }\n buyer {\n userId\n email {\n stringValue\n }\n name {\n fullName\n }\n }\n shippingAddresses {\n ...ShippingAddressesFragment\n }\n cart {\n returnUrl {\n href\n pathname\n }\n cancelUrl {\n href\n pathname\n }\n intent\n items {\n quantity\n name\n sku\n unitPrice {\n currencyFormat\n }\n itemOptionSelections {\n name\n description\n }\n }\n amounts {\n subtotal {\n currencyFormat\n }\n tax {\n currencyFormat\n }\n shipping {\n currencyFormat\n }\n insurance {\n currencyFormat\n }\n handlingFee {\n currencyFormat\n }\n total {\n currencyCode\n currencyFormat\n }\n discount {\n currencyFormat\n }\n }\n }\n }\n }\n`;\n","import { useMemo, useCallback } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport { logger, DONE_PAGE_PAYLOAD } from '@paypalcorp/c3-util-logger';\nimport { getToken } from '@paypalcorp/c3-shared-globals';\nimport { clean } from '@paypalcorp/c3-util-lang';\nimport { usePayContext } from '@/components/ContextProviders';\nimport getContent from '@/lib/content';\nimport { buildURL, redirect } from '@/lib/redirects';\nimport {\n returnToMerchantViaPost,\n parseMerchantPreferences,\n autoReturnMessageProps,\n headerProps,\n itemDetailsProps,\n purchaseDetailsProps,\n combineOfacContent,\n} from './lib/utils';\nimport { WPS_DONE_PAGE_QUERY } from './query.gql';\nimport { useFeature } from '@/components/Feature/hooks';\nimport { useIncentiveContext } from '@/components/Incentives/hooks';\n\nexport function useWPSDonePage() {\n const { data: shipToData = {} } = useFeature('SHIP_TO');\n const { selectedFundingOption } = usePayContext();\n const { incentiveType, amount } = useIncentiveContext();\n\n const incentives = {\n incentiveAmount: amount?.currencyFormatSymbolISOCurrency,\n incentiveType: incentiveType,\n };\n\n const selectedAddressId = shipToData?.userSelectedAddressId || '';\n const { data } = useQuery(WPS_DONE_PAGE_QUERY, {\n variables: {\n token: getToken(),\n },\n fetchPolicy: 'cache-only',\n });\n\n const { merchant, buyer, cart, shippingAddresses, completedPaymentInfo } =\n data?.checkoutSession ?? {};\n const selectedShippingAddress = shippingAddresses\n ? shippingAddresses.filter((address) => address.addressId === selectedAddressId)\n : shippingAddresses;\n const postbackData = completedPaymentInfo?.postbackData ?? {};\n\n const { returnMethod, autoReturnToMerchant, enablePaymentDataTransfer, returnUrl } =\n parseMerchantPreferences(merchant, cart);\n\n const returnToMerchant = useCallback(() => {\n logger.fpti(\n 'PROCESS_DONE_PAGE',\n DONE_PAGE_PAYLOAD({\n action: 'processReturnToMerchant',\n flow: 'wps',\n })\n );\n\n // PDT overrides the return method; if enabled the returnMethod must be GET\n if (returnMethod === 'POST' && !enablePaymentDataTransfer) {\n logger.cal.info('WPS_DONE_PAGE_REDIRECT_VIA_POST', { returnUrl, postbackData });\n return returnToMerchantViaPost(returnUrl, postbackData);\n }\n\n const urlParams = clean({\n ...(enablePaymentDataTransfer && {\n st: postbackData.payment_status, // Payment state\n tx: postbackData.txn_id, // Transaction ID\n cc: postbackData.mc_currency, // Currency code\n amt: postbackData.mc_gross, // Transaction amount\n cm: postbackData.custom, // Custom merchant field\n ...postbackData,\n }),\n });\n\n const redirectUrl = buildURL(returnUrl, urlParams);\n logger.cal.info('WPS_DONE_PAGE_REDIRECT_VIA_GET', { returnUrl: redirectUrl });\n\n return redirect(redirectUrl);\n }, [\n logger,\n DONE_PAGE_PAYLOAD,\n returnMethod,\n enablePaymentDataTransfer,\n returnUrl,\n postbackData,\n returnToMerchantViaPost,\n clean,\n buildURL,\n redirect,\n ]);\n\n const isRegulatoryReview = postbackData?.pending_reason === 'regulatory_review';\n const autoReturnEnabled = autoReturnToMerchant && Boolean(returnUrl);\n const donePageProps = useMemo(\n () => ({\n header: headerProps(cart, merchant, selectedFundingOption),\n itemDetails: itemDetailsProps(cart),\n regulatoryReviewContent: isRegulatoryReview && combineOfacContent(),\n ...(autoReturnEnabled\n ? {\n autoReturnMessage: autoReturnMessageProps(merchant, returnToMerchant),\n }\n : {\n buttonLabel: getContent('donePage.returnToMerchant'),\n buttonCallback: returnToMerchant,\n purchaseDetails: purchaseDetailsProps(\n completedPaymentInfo,\n incentives,\n merchant,\n selectedFundingOption,\n selectedShippingAddress,\n cart,\n buyer\n ),\n }),\n }),\n [\n cart,\n buyer,\n merchant,\n shippingAddresses,\n selectedFundingOption,\n completedPaymentInfo,\n autoReturnEnabled,\n getContent,\n returnToMerchant,\n headerProps,\n itemDetailsProps,\n autoReturnMessageProps,\n purchaseDetailsProps,\n isRegulatoryReview,\n ]\n );\n\n return {\n isPaymentCompleted: Boolean(completedPaymentInfo),\n autoReturnEnabled,\n returnToMerchant,\n donePageProps,\n merchantName: merchant?.name,\n };\n}\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-color-grey-600\":\"#687173\",\"ppuiColorGrey600\":\"#687173\",\"ppui-font-size-sm\":\"0.8125rem\",\"ppuiFontSizeSm\":\"0.8125rem\",\"ppui-line-height-sm\":\"1.125rem\",\"ppuiLineHeightSm\":\"1.125rem\",\"ppui-color-white\":\"#fff\",\"ppuiColorWhite\":\"#fff\",\"ppui-spacing-md\":\"0.5rem\",\"ppuiSpacingMd\":\"0.5rem\",\"container\":\"Divider_container_2CYJA\",\"contentContainer\":\"Divider_contentContainer_3npMN\"};","/**\n * Puts array items into an object and\n * uses a key function to determine the key\n * @param {Array} array\n * @param {Function} keyFn\n */\nexport const arrayToObject = (array, keyFn) =>\n array.reduce((object, item) => ({ ...object, [keyFn(item)]: item }), {});\n","/*\n * This component is rendered for WPS flows (NOT for EC flows)\n * For WPS flows the payment is captured and the 'receipt' is shown\n * using WPSDonePage\n */\nimport React from 'react';\nimport { lazyComponent } from '@/lib/lazyLoad';\nimport { useFeature } from '../Feature/hooks';\nimport { useWPSDonePage } from './hooks';\n\nconst WPSDonePage = lazyComponent(() => import('./WPSDonePage'), {\n id: 'WPS_DONE_PAGE',\n});\n\nexport default function WPSDonePageContainer() {\n const { visible } = useFeature('WPS_DONE_PAGE');\n const { isPaymentCompleted } = useWPSDonePage();\n\n if (visible && isPaymentCompleted) {\n return