{"version":3,"sources":["components/GplCreditContainer/index.js","components/RemainderMessage/index.js","components/RemainderMessage/styles.css","components/PayWith/ShowMore/index.js","components/PayWith/FundingInstrumentList/styles.css","components/CurrencyConversionOption/AuthSettleComplianceContent/index.js","components/CurrencyConversionOption/CurrencyConversionContentBR/index.js","components/CurrencyConversionOption/CurrencyConversionLink/index.js","components/FundingInstrument/index.js","components/PayWith/FundingInstrumentList/utils.js","components/PayWith/FundingInstrumentList/index.js","components/PayLater/styles.css","components/PayLater/Multi/styles.css","shared/components/Space/index.js","lib/eligibility.js","shared/components/Amount/index.js","components/CreditOfferAsFi/CreditCrossCurrency/index.js","shared/components/VerticalRadioButton/index.js","shared/components/PreferredLabel/index.js","shared/components/PreferredLabel/styles.css","components/FundingInstrument/FundingInstrument.css","components/CurrencyConversionOption/CurrencyConversionOption.js","shared/components/VerticalRadioButton/styles.css","shared/components/Amount/styles.css","components/Incentives/styles.css","components/Incentives/Incentives.js","components/Incentives/index.js","components/CurrencyConversionOption/index.js","components/FundingInstrument/FINote/index.js","components/FundingInstrument/FIDisplay.js","components/CurrencyConversion/constants.js","components/FundingInstrument/FINote/style.css","components/FundingInstrument/Attribution/index.js","components/FundingInstrument/PayerDisclaimer/index.js","components/PayAfterDelivery/index.js","components/PayAfterDeliveryFiSubtext/index.js","components/BackupFundingDisclaimer/index.js","components/BackupFundingInstrument/index.js","components/CurrencyConversionOption/styles.css","components/BackupFundingDisclaimer/query.gql.js","components/BackupFundingDisclaimer/hooks.js","hooks/useImpressionTracking.js","components/PayLater/PayLaterFundingInstrument.js","components/PayLater/Multi/GPLOffer.js","components/PayLater/Multi/MultiOfferFundingInstrument.js","components/PayLater/PayLater.js"],"names":["GplCreditContainer","props","usePayLaterContext","payLaterState","isGplOfferVisible","Fragment","React","cloneElement","children","Message","className","styles","remainder","getContent","RemainderMessage","showMessage","height","defaultProps","module","exports","ShowMore","Feature","id","AuthSettleComplianceContent","CurrencyConversionContentBR","CurrencyConversionLink","countrySpecific","US","HU","FundingInstrument","useCryptoTermsInterstitial","isCryptoTermsInterstitialAcknowledged","isInterstitialAcknowledged","openCryptoTermsInterstitial","openInterstitial","payContext","usePayContext","payState","selectedFundingOptionId","preferredFundingOptionId","payLaterContext","fi","selectedInstallment","showCurrencyCode","isSingleFI","isPPCInstallment","selectedPlan","getSelectedPlan","backupFundingInstrument","currencyConversion","fundingSource","getSelectedFundingSource","plan","hasIncentive","isIncentivesPlan","fundingSources","gplAmountDueToday","gplAmountDueTodayDetails","fundingInstrument","amount","isDiscountAvailableForInstallment","totalCost","isSelected","isPreferredChecked","style","container","data-testid","FIDisplay","backup","togglePreferred","allPlans","rewards","installmentsInPlans","findInstallmentsInPlans","setPreferredFiId","undefined","fptiAction","logger","fpti","TRANSITION_PAYLOAD","from","to","preferred_fi_id","installment_shown","areInstallmentsAvailable","rewardsFpti","makeSelected","fundingOptionType","type","isPreferred","hasPadPlan","Boolean","getPadPlan","getSelectedFundingOption","fundingOptions","isCryptoFundingInstrument","setSelectedFiId","setPayState","usePayAfterDelivery","updateFeatures","visible","data","showDescriptor","then","resetRewards","clearSelectedOffer","fundingMethodType","isPaypalBalance","fundingOption","instrumentSubType","FundingInstrumentList","fundingInstruments","payWithFeatureDependencies","featureDependencies","INSTALLMENTS_DISPLAY","SHOW_MORE_FUNDING_OPTIONS","installmentsData","showMoreData","isShowMoreEnabled","enabled","isShowMoreActive","showMore","getDependentFeatureData","useFundingInstruments","initialFundingInstruments","extraFundingInstruments","isSingleFundingOptionByType","multipleBalances","filter","length","createFundingInstrument","key","getSelectedInstallmentOption","map","animateOpacity","animateHeightFIs","Space","size","spaces","i","push","eligible","checkoutSession","flags","paymentContingencies","reason","hasPPCInstallmentsTreatment","isEnabled","checkElmoTreatment","ElmoExperiment","TREATMENTS","TREATMENT_1","hasCreditSecondButtonTreatment","some","hasPPCreditInstallments","getCredit","isCreditSecondButton","confirmCreditCardCvvData","get","threeDomainSecure","isIncentivePresent","logEligibility","eligibility","eligibility_reason","cal","info","isUSGambling","merchantCountry","merchantIsGambling","isUSBuyer","getCountry","hasAllowedCardIssuerTypes","allowedCardTypes","hasContingency","isEmpty","name","getFeatures","find","isFunction","treatment","experiment","resolvedTreatment","resolvedTrmt","CONTROL","Amount","currencyFormat","currencyCode","dueDate","multiLine","attributes","hasCode","includes","cx","CreditCrossCurrency","VerticalRadioButton","PreferredLabel","preferredLabelContainer","noMargins","status","CurrencyConversionOption","formattedRate","fromCurrencyCode","fundingOptionId","isReadOnly","fromUnitCurrency","toTargetCurrency","isHideCartFlagSet","useCart","hasColon","substr","leftContainer","singleFi","getConversionRate","conversionType","onClick","e","preventDefault","updateFeature","Incentives","useFeature","goldTreatment","useState","showSplitUp","state","setState","useIncentiveContext","incentives","incentiveType","isSinglePercentIncentive","totalIncentives","fundingOptionWithIncentives","merchantName","useEffect","action","INCENTIVES_PAYLOAD","toggle","titleContainer","flexContainer","title","iconContainer","aria-label","aria-expanded","width","amountContainer","renderTitle","detailContainer","incentiveContainer","index","incentive","incentiveNameContainer","incentiveItem","getIncentiveName","balanceType","shortTitle","defaultContent","position","INCENTIVE_PERCENTAGE_TYPE","offerPercentage","percentOff","offerAmount","maxDiscount","incentiveAmount","lazyComponent","loading","CurrencyConversionOptionContainer","FINote","note","fiNote","finNoteSingleFi","institutionImages","creditFields","payerDisclaimer","cryptocurrencyHoldingDetails","showAttribution","showRewards","isCryptoFi","lastDigits","attribution","fiName","fiFormatName","primaryType","formatType","showSetPreferredOption","currencyConversionInfo","secondaryName","isGpl","rateFormatted","isCreditWithAdditionalData","creditFIDetails","getCreditFIDetails","repaymentsFIName","creditFIDescription","crossCurrencyInfo","label","preferredLabel","imgSrc","getImage","brandImageSrc","url","href","currencyLabel","showNote","cartExperiment","fiDetails","FIDetails","imgAltText","styleOverrides","instrument","isPPCInstallmentWithIncentive","isPPCFundingInstrument","showAmountForCartExperiment","shouldShowAmount","item","checked","onChange","tabIndex","getAmountFromSoloPlan","getDisplayAmountForFi","PayerDisclaimer","Attribution","isFundingOptionSelected","PayAfterDeliveryFiSubtext","Rewards","fiId","isSingle","selected","duration","isTesting","cn","details","detailsSingleFi","BackupFundingInstrument","makePreferred","PayAfterDelivery","isFiSelected","cryptoFi","BackupFundingDisclaimer","primaryFundingOption","primaryCurrencyConversion","Crypto","fId","Installments","isSingleFi","CONVERSION_TYPES","PAYPAL","VENDOR","fromCurrency","toCurrency","getDirectionality","shouldLoadFeatureComponent","customProps","queries","query","variables","token","getToken","fetchPolicy","BackupFundingDisclaimerContainer","cartAmount","useBackupFundingDisclaimer","BackupFi","BackupFiWithDescription","TREATMENT_2","BUFS_DISCLAIMER_QUERY","useQuery","cart","amounts","total","useImpressionTracking","handleImpression","impressionRef","useRef","intersection","useIntersection","root","rootMargin","threshold","prevIntersectionRatio","usePrevious","intersectionRatio","Error","CurrencyConversionContainer","offer","rate","content","CurrencyConversionRate","CartAmountCurrencyCode","toNumber","Terms","termsLink","TermsLink","termsLinkText","TermsLinkText","termsText","TermsText","PopupLink","link","LearnMoreLink","handleLearnMore","strong","as","GplLearnMoreText","PayLaterFundingInstrument","onSelect","rank","offerTxt","OfferText1","Product","OfferText2","fiHighlightText","StatusText","OfferHeading","FILogo","Logo","strToBool","CrossCurrencyTransaction","GPLOffer","ShortOfferText","FIText2","FormattedCartAmount","FormattedInterestAmount","FormattedTotalAmount","offerSection","open","offerHeading","shortOfferText","offerContent","aria-hidden","offerContentTop","offerContentBottom","offerInfoRow","triggerClassName","tooltipTrigger","arrowPosition","description","getFptiDetails","selectedOffer","offers","financing_code_selected","FinancingCode","financing_codes","offerFinancingCodesToCSV","installment_option_shown","allOfferDetailsToJsonString","installment_option_selected","offerDetailsForFPTI","MultiOfferFundingInstrument","hasGPLFundingInstrument","preselectedIndex","useCallback","findIndex","getPreselectedOfferIndex","selectedOfferIndex","setSelectedOfferIndex","isChecked","setIsChecked","advertisedOfferText","getLowestOffer","FIText1","defaultInstrument","referenceId","isFISelected","fptiData","FILabel","advertised","offers_shown","OfferCategory","onOfferClick","currencyConversionTitle","getFormattedRate","getCurrencyCode","gplOfferLogImpression","once","payLaterLogImpression","has_reuse","offer_products","join","PayLater","featureSplitTenderGate","showSplitExperience","showTitle","isPayLaterFundingInstrument","isMultiOfferFundingInstrument","selectedFundingOption","isGplAsFiSelected","useEligibilityContext","hasGPL","isUpstreamPresentment","showGPLOffer","showControlCreditOffers","creditPPCOffers","groupOffersByMultiInstallment","installmentOffers","nonInstallmentOffers","creditOffer","mapCreditPPCOffer","creditOfferType","OfferType","isInstallmentCreditType","impressionGplRef","acqOffers","useDetermineGplOffers","acquisitionOffersReflectingFundingMix","isGplOfferWithIncentivesApplied","showIncentives","isGplOffer","reverse","headerContainer","headingStyles","badge","alert","productName","selectMultiInstallmentOffer","ref","offerProduct","selectGplOffer","selectPpcOffer"],"mappings":"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","file":"js/PayLater~21833f8f.bea6976d.js","sourcesContent":["import React from 'react';\nimport { usePayLaterContext } from '@/components/ContextProviders';\n\nexport default function GplCreditContainer(props) {\n const { payLaterState } = usePayLaterContext();\n\n if (!payLaterState.isGplOfferVisible) {\n return null;\n }\n\n return {React.cloneElement(props.children)};\n}\n","import React from 'react';\nimport AnimateHeight from 'react-animate-height';\nimport PropTypes from 'prop-types';\nimport styles from './styles.css';\nimport getContent from '@/lib/content';\n\nfunction Message() {\n return (\n

{getContent('fundingInstruments.splitBalanceRemainder')}

\n );\n}\n\nfunction RemainderMessage({ showMessage }) {\n return (\n \n \n \n );\n}\n\nRemainderMessage.propTypes = {\n showMessage: PropTypes.bool,\n};\n\nRemainderMessage.defaultProps = {\n showMessage: false,\n};\n\nexport default RemainderMessage;\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"remainder\":\"RemainderMessage_remainder_1P-UA\"};","import Feature from '@/components/Feature';\n\nexport const ShowMore = Feature({\n id: 'SHOW_MORE_FUNDING_OPTIONS',\n})(() => import('./ShowMore'));\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"animateHeightFIs\":\"FundingInstrumentList_animateHeightFIs_YEbWE\"};","import Feature from '@/components/Feature';\n\n/**\n * `` is a foreign currency conversion compliance content and is designed\n * specifically for As1/AS2 type of transactions\n */\nconst AuthSettleComplianceContent = Feature({\n id: 'AUTH_SETTLE_COMPLIANCE_CONTENT',\n})(() => import('./AuthSettleComplianceContent'));\n\nexport default AuthSettleComplianceContent;\n","import Feature from '@/components/Feature';\n\n/**\n * `` is an extra currency conversion content to display in BR\n */\nconst CurrencyConversionContentBR = Feature({\n id: 'CURRENCY_CONVERSION_CONTENT_BR',\n})(() => import('./CurrencyConversionContentBR'));\n\nexport default CurrencyConversionContentBR;\n","import Feature from '@/components/Feature';\n\n/**\n * `` is a link to show more currency conversion options\n */\nconst CurrencyConversionLink = Feature({\n id: 'CURRENCY_CONVERSION_LINK',\n})({\n countrySpecific: {\n US: () => import('./CurrencyConversionLink'),\n HU: () => import('./CurrencyConversionLinkHU'),\n },\n});\n\nexport default CurrencyConversionLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { logger, TRANSITION_PAYLOAD } from '@paypalcorp/c3-util-logger';\nimport {\n updateFeatures,\n getSelectedPlan,\n getSelectedFundingSource,\n getPadPlan,\n getSelectedFundingOption,\n isCryptoFundingInstrument,\n} from '@paypalcorp/c3-util-store';\nimport { useCryptoTermsInterstitial } from '@/components/Crypto';\nimport { InstallmentsPropType } from '@/components/Installments/propTypes';\nimport {\n areInstallmentsAvailable,\n findInstallmentsInPlans,\n isDiscountAvailableForInstallment,\n} from '@/components/Installments/utilities';\nimport { rewardsFpti, resetRewards } from '@/components/Rewards/utilities';\nimport FIDisplay from './FIDisplay';\nimport { FundingInstrumentPropType } from './constants';\nimport style from './FundingInstrument.css';\nimport { gplAmountDueTodayDetails, isIncentivesPlan } from '@/lib/utils';\nimport { usePayLaterContext, usePayContext } from '@/components/ContextProviders';\n\nconst FundingInstrument = (props) => {\n const {\n isInterstitialAcknowledged: isCryptoTermsInterstitialAcknowledged,\n openInterstitial: openCryptoTermsInterstitial,\n } = useCryptoTermsInterstitial();\n const payContext = usePayContext();\n const { selectedFundingOptionId, preferredFundingOptionId } = payContext.payState;\n const payLaterContext = usePayLaterContext();\n\n const makeSelected = () => {\n const { fi = {} } = props ?? {};\n const { id, fundingInstrument = {} } = fi;\n const { type: fundingOptionType, isPreferred } = fundingInstrument;\n const hasPadPlan = Boolean(getPadPlan(getSelectedFundingOption(payContext.fundingOptions, id)));\n\n // If we are attempting to select a crypto funding instrument and we have not\n // acknowledged the cryptocurrency terms and conditions we need to surface this\n // to the user. Once the user has acknowledged them the FI will be selected\n if (isCryptoFundingInstrument(fundingInstrument) && !isCryptoTermsInterstitialAcknowledged) {\n openCryptoTermsInterstitial(id);\n\n return;\n }\n\n payContext.setSelectedFiId(id);\n payContext.setPreferredFiId(isPreferred ? id : undefined);\n\n if (!hasPadPlan) {\n payContext.setPayState({\n usePayAfterDelivery: false,\n });\n }\n\n updateFeatures([\n // Show / Hide Soft Descriptor based on the type of the current selected fi type\n {\n id: 'DISCLAIMER',\n visible: true,\n data: { showDescriptor: fundingOptionType === 'CREDIT_CARD' },\n },\n {\n id: 'CREDIT_OFFER_AS_FI_DE',\n data: { isSelected: false },\n },\n ]).then(resetRewards);\n\n payLaterContext.clearSelectedOffer();\n };\n\n const togglePreferred = () => {\n const {\n fi: {\n id,\n allPlans = [],\n fundingInstrument: { rewards = null },\n },\n } = props;\n const installmentsInPlans = findInstallmentsInPlans(id, allPlans);\n\n payContext.setPreferredFiId(!preferredFundingOptionId ? id : undefined);\n\n const fptiAction = 'change_preferred_fi';\n\n logger.fpti(\n fptiAction,\n TRANSITION_PAYLOAD({\n from: 'review',\n to: fptiAction,\n preferred_fi_id: id,\n installment_shown: areInstallmentsAvailable(installmentsInPlans) ? 1 : 0,\n ...rewardsFpti(rewards),\n })\n );\n };\n\n // The prop `isNewPreferred` denotes that a user has performed an action in\n // the UI to change the preferred FI. Would prefer to sync the `isPreferred`\n // value in the cache with apollo-link-state.\n const {\n fi: { id },\n selectedInstallment,\n showCurrencyCode,\n isSingleFI,\n isPPCInstallment,\n } = props;\n\n const selectedPlan = getSelectedPlan({ fi: props.fi, payContext });\n const { backupFundingInstrument, currencyConversion } = selectedPlan;\n const fundingSource = getSelectedFundingSource({\n fi: props.fi,\n plan: selectedPlan,\n });\n\n const hasIncentive = isIncentivesPlan(selectedPlan?.fundingSources);\n const gplAmountDueToday = gplAmountDueTodayDetails(props.fi.fundingInstrument);\n\n let amount = fundingSource.amount;\n\n if (isDiscountAvailableForInstallment(selectedInstallment)) {\n // TODO: Should revisit fundingInstrument schema to see if we can surface currency for balance\n //\n // If the selected installment for this FI has a discount then we need to update the\n // amount to reflect this. The installment data will reflect the new total cost which\n // will be charged to this FI\n amount = selectedInstallment.totalCost;\n } else if (gplAmountDueToday) {\n //If GPL FI is selected, corresponding due amount should be shown\n amount = gplAmountDueToday;\n }\n\n const isSelected = selectedFundingOptionId === id;\n const isPreferredChecked = preferredFundingOptionId === id;\n\n return (\n
\n \n
\n );\n};\n\nFundingInstrument.propTypes = {\n fi: PropTypes.shape({\n id: PropTypes.string,\n fundingInstrument: FundingInstrumentPropType,\n }).isRequired,\n selectedInstallment: InstallmentsPropType,\n showCurrencyCode: PropTypes.bool,\n isPPCInstallment: PropTypes.bool,\n};\n\nFundingInstrument.defaultProps = {\n selectedInstallment: null,\n showCurrencyCode: false,\n isPPCInstallment: false,\n};\n\nexport default FundingInstrument;\n","export const isPaypalBalance = (fundingOption) => {\n const { fundingInstrument } = fundingOption;\n const { type, instrumentSubType } = fundingInstrument;\n\n return type === 'PAYPAL_BALANCE' && instrumentSubType === 'PAYPAL';\n};\n","import React from 'react';\nimport AnimateHeight from 'react-animate-height';\n\nimport FundingInstrument from '@/components/FundingInstrument';\nimport { getSelectedInstallmentOption } from '@/components/Installments/utilities';\nimport { ShowMore } from '@/components/PayWith/ShowMore';\nimport { isSingleFundingOptionByType } from '@paypalcorp/c3-util-store';\n\nimport { useFundingInstruments } from './hooks';\nimport styles from './styles.css';\nimport { isPaypalBalance } from './utils';\n\nconst getDependentFeatureData = (featureDependencies) => {\n const { INSTALLMENTS_DISPLAY = {}, SHOW_MORE_FUNDING_OPTIONS = {} } = featureDependencies;\n const { data: installmentsData } = INSTALLMENTS_DISPLAY;\n const { data: showMoreData, enabled: isShowMoreEnabled } = SHOW_MORE_FUNDING_OPTIONS;\n\n return {\n installmentsData,\n isShowMoreActive: isShowMoreEnabled && showMoreData?.showMore,\n isShowMoreEnabled,\n };\n};\n\nexport const FundingInstrumentList = ({\n fundingInstruments,\n payWithFeatureDependencies = {},\n isSingleFI,\n isPPCInstallment = false,\n}) => {\n const { installmentsData, isShowMoreActive, isShowMoreEnabled } = getDependentFeatureData(\n payWithFeatureDependencies\n );\n const [initialFundingInstruments, extraFundingInstruments] = useFundingInstruments({\n fundingInstruments,\n isShowMoreEnabled,\n });\n\n // NOTE: if `isFullyFundedByIncentives` is true for a transaction, it means that\n // incentives > cart amount, this incentives in itself is sufficient for us to\n // complete the transaction. Hence we can hide other FIs since they wont be part of the checkout process\n const isFullyFundedByIncentives = isSingleFundingOptionByType({\n fundingOptions: fundingInstruments,\n type: 'INCENTIVE',\n });\n\n if (isFullyFundedByIncentives) {\n return null;\n }\n\n const multipleBalances = fundingInstruments.filter(isPaypalBalance).length > 1;\n\n const createFundingInstrument = (fundingInstrument) => {\n const { id } = fundingInstrument;\n\n return (\n \n );\n };\n\n return (\n
\n
\n {initialFundingInstruments.map((fi) => createFundingInstrument(fi))}\n
\n {Boolean(extraFundingInstruments.length) ? (\n
\n \n \n {extraFundingInstruments.map((fi) => createFundingInstrument(fi))}\n \n
\n ) : null}\n
\n );\n};\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"container\":\"PayLater_container_1dobj\",\"item\":\"PayLater_item_2Zm08\",\"currencyConversionText\":\"PayLater_currencyConversionText_24ysC\",\"headerContainer\":\"PayLater_headerContainer_3RSAC\",\"badge\":\"PayLater_badge_34X60\",\"termsText\":\"PayLater_termsText_jAD63\",\"offerTxt\":\"PayLater_offerTxt_2ln--\",\"alert\":\"PayLater_alert_zmsIT\"};","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-font-weight-bold\":\"700\",\"ppuiFontWeightBold\":\"700\",\"ppui-font-size-sm\":\"0.8125rem\",\"ppuiFontSizeSm\":\"0.8125rem\",\"ppui-color-blue-600\":\"#0070ba\",\"ppuiColorBlue600\":\"#0070ba\",\"ppui-color-blue-100\":\"#f5fbfe\",\"ppuiColorBlue100\":\"#f5fbfe\",\"ppui-color-grey-600\":\"#687173\",\"ppuiColorGrey600\":\"#687173\",\"ppui-color-grey-400\":\"#b7bcbf\",\"ppuiColorGrey400\":\"#b7bcbf\",\"currencyConversionTitle\":\"Multi_currencyConversionTitle_WWBAv\",\"item\":\"Multi_item_1QyJ9\",\"offers\":\"Multi_offers_1xAtr\",\"advertised\":\"Multi_advertised_1GZnL\",\"offerSection\":\"Multi_offerSection_KVizQ\",\"open\":\"Multi_open_1ABG-\",\"offerHeading\":\"Multi_offerHeading_30fCW\",\"offerContent\":\"Multi_offerContent_3Thnr\",\"offerContentTop\":\"Multi_offerContentTop_31Yn3\",\"offerContentBottom\":\"Multi_offerContentBottom_3kwZG\",\"shortOfferText\":\"Multi_shortOfferText_nyv90\",\"offerInfoRow\":\"Multi_offerInfoRow_1-am3\",\"offerAmount\":\"Multi_offerAmount_2C794\",\"tooltipTrigger\":\"Multi_tooltipTrigger_1E2K0\"};","import React from 'react';\n\nexport default function Space({ size = 1 }) {\n // Must use html entity because multiple unicode spaces won't visibly repeat.\n // But html entities get escaped by React, so must set as inner html\n\n const spaces = [];\n\n for (let i = 0; i < size; i++) {\n spaces.push( );\n }\n\n return {spaces};\n}\n","import get from 'dlv';\nimport { logger } from '@paypalcorp/c3-util-logger';\nimport { getCountry, getCredit } from '@paypalcorp/c3-shared-globals';\nimport { getPadPlan, getFeatures } from '@paypalcorp/c3-util-store';\nimport { isFunction, isEmpty } from '@paypalcorp/c3-util-lang';\nimport { ElmoExperiment } from '@paypalcorp/c3-util-elmo-experiment';\n\n/**\n * Hermione Eligibility Check\n * Currently Unsupported :\n * - No Funding Options\n * - 3DS Flow\n */\nexport const eligible = ({\n checkoutSession: { fundingOptions = [], flags = {}, paymentContingencies = {} } = {},\n}) => {\n let eligible = false;\n let reason = 'unknown';\n\n //PayPal Credit Treatment\n const hasPPCInstallmentsTreatment = !(\n isEnabled('PPC_INSTALLMENTS') &&\n checkElmoTreatment('PPC_INSTALLMENTS', ElmoExperiment.TREATMENTS.TREATMENT_1)\n );\n const hasCreditSecondButtonTreatment = !(\n isEnabled('PPC_SECOND_BUTTON') &&\n checkElmoTreatment('PPC_SECOND_BUTTON', ElmoExperiment.TREATMENTS.TREATMENT_1)\n );\n\n if (fundingOptions.some(getPadPlan) && !isEnabled('PAY_AFTER_DELIVERY')) {\n reason = 'has_pad_options';\n } else if (flags.hasPPCreditInstallments && hasPPCInstallmentsTreatment) {\n reason = 'has_pp_credit_installment';\n } else if (getCredit().isCreditSecondButton && hasCreditSecondButtonTreatment) {\n reason = 'is_pp_credit_second_button';\n } else if (paymentContingencies.confirmCreditCardCvvData && !isEnabled('CVV_CONFIRMATION')) {\n reason = 'cvv_required';\n } else if (\n get(paymentContingencies, 'threeDomainSecure.experience') === 'REDIRECT' &&\n !isEnabled('THREE_DS_FULL_PAGE_RESOLVER')\n ) {\n reason = '3ds_full_page_required';\n } else if (paymentContingencies.threeDomainSecure && !isEnabled('THREE_DS_CONFIRMATION')) {\n reason = '3ds_required';\n } else if (flags.isIncentivePresent && !isEnabled('INCENTIVES')) {\n reason = 'incentive_present';\n } else {\n eligible = true;\n reason = 'supported_features';\n }\n\n return {\n eligible,\n reason,\n };\n};\n\nexport const logEligibility = ({ checkoutSession = {}, eligibility } = {}) => {\n const { eligible, reason } = eligibility;\n const eligibility_reason = `xolite_${eligible ? 'eligible' : 'ineligible'}_${reason}`;\n logger.cal.info(`${eligibility_reason}`);\n};\n\nexport const isUSGambling = ({ merchantCountry = '', merchantIsGambling = false }) => {\n const isUSBuyer = getCountry() === 'US';\n const isUSMerchant = merchantCountry === 'US';\n return merchantIsGambling && isUSBuyer && isUSMerchant;\n};\n\nexport const hasAllowedCardIssuerTypes = ({ allowedCardTypes = [], hasContingency }) => {\n return !isEmpty(allowedCardTypes) || hasContingency;\n};\n\n/**\n * Returns `enabled` status for feature name. This is an easier pattern to work with\n * than having to pass the specific features to the `eligibility` function from\n * inside a React component.\n *\n * @param {String} name | The name of the feature\n * @return {Boolean} The resolved value for `[feature].eligible`;\n * */\nconst isEnabled = (name) => {\n const { enabled } = getFeatures().find(({ id }) => id === name);\n return isFunction(enabled) ? enabled() : enabled;\n};\n\n/**\n * Returns `enabled` and `treatment` status for feature name.\n *\n * @param {String} name | The name of the feature\n * @param {String} treatment | The treatment name to match (defaults to `TREATMENT_1`)\n * @return {Boolean} The resolved value for `[feature].eligible && [feature].experiment.resolvedTreatment === treatment`;\n * */\nexport const checkElmoTreatment = (name, treatment) => {\n const {\n experiment: { resolvedTreatment: resolvedTrmt = ElmoExperiment.TREATMENTS.CONTROL } = {},\n } = getFeatures().find(({ id }) => id === name);\n\n return isEnabled(name) && resolvedTrmt === treatment;\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport styles from './styles.css';\n\n/**\n * Amount component to display the currency values with the symbol\n * @param {object} amount | amount with {currencyCode, currencyFormat} details\n * @param {string} className | className, if you want add additional styles\n * @param {Boolean} multiLine | if multiLine is set to true, the currency symbol will be displayed in the next line\n * @returns {Amount} component\n */\nconst Amount = ({\n amount: { currencyFormat = '', currencyCode, dueDate } = {},\n multiLine = false,\n showCurrencyCode = true,\n ...attributes\n}) => {\n // Certain locales use the currency code in the formatted amount instead\n // of the symbol. In that case, hide the separate currency code display.\n const hasCode = currencyFormat.includes(currencyCode);\n\n return (\n
\n \n {currencyFormat}\n \n {!hasCode && showCurrencyCode && (\n \n {currencyCode}\n \n )}\n {dueDate && (\n \n {dueDate}\n \n )}\n
\n );\n};\n\nAmount.propTypes = {\n multiLine: PropTypes.bool,\n className: PropTypes.string,\n amount: PropTypes.shape({\n currencyCode: PropTypes.string,\n currencyFormat: PropTypes.string,\n dueDate: PropTypes.string,\n }),\n};\n\nexport default Amount;\n","import Feature from '@/components/Feature';\n\nconst CreditCrossCurrency = Feature({\n id: 'CREDIT_CROSS_CURRENCY_INFO',\n})(() => import('./CreditCrossCurrency'));\n\nexport default CreditCrossCurrency;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './styles.css';\n\nexport default function VerticalRadioButton({ children }) {\n return
{children}
;\n}\n\nVerticalRadioButton.propTypes = {\n children: PropTypes.node.isRequired,\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport { Badge } from '@paypalcorp/pp-react';\nimport getContent from '@/lib/content';\nimport styles from './styles.css';\n\n/**\n * Component that represets the preferred label within a container.\n */\nconst PreferredLabel = (props) => {\n // Temporary solution for the label when the FI is PayPal Credit or Balance.\n const { className, type } = props;\n\n return (\n \n \n {getContent('fundingInstruments.preferredLabel')}\n \n \n );\n};\n\nexport default PreferredLabel;\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"preferred-label-container\":\"PreferredLabel_preferred-label-container_3B3Cg\",\"preferredLabelContainer\":\"PreferredLabel_preferred-label-container_3B3Cg\",\"no-margins\":\"PreferredLabel_no-margins_f9574\",\"noMargins\":\"PreferredLabel_no-margins_f9574\"};","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-size-xl\":\"2.5rem\",\"ppuiSizeXl\":\"2.5rem\",\"ppui-color-blue-600\":\"#0070ba\",\"ppuiColorBlue600\":\"#0070ba\",\"details-padding-left\":\"3.875rem\",\"detailsPaddingLeft\":\"3.875rem\",\"details-single-padding-left\":\"1.525rem\",\"detailsSinglePaddingLeft\":\"1.525rem\",\"container\":\"FundingInstrument_container_16IeJ\",\"item\":\"FundingInstrument_item_3lQ2z\",\"instrument\":\"FundingInstrument_instrument_2e3av\",\"selected-details\":\"FundingInstrument_selected-details_153wp\",\"selectedDetails\":\"FundingInstrument_selected-details_153wp\",\"details\":\"FundingInstrument_details_2XwGW\",\"details-single-fi\":\"FundingInstrument_details-single-fi_Xbpz1\",\"detailsSingleFi\":\"FundingInstrument_details-single-fi_Xbpz1\",\"make-preferred\":\"FundingInstrument_make-preferred_wkmr9\",\"makePreferred\":\"FundingInstrument_make-preferred_wkmr9\",\"currency-conversion\":\"FundingInstrument_currency-conversion_2PGt4\",\"currencyConversion\":\"FundingInstrument_currency-conversion_2PGt4\",\"crypto-fi\":\"FundingInstrument_crypto-fi_1g1sb\",\"cryptoFi\":\"FundingInstrument_crypto-fi_1g1sb\",\"amount\":\"FundingInstrument_amount_3exwq\"};","import React from 'react';\nimport cx from 'classnames';\n\nimport { logger } from '@paypalcorp/c3-util-logger';\nimport getContent from '@/lib/content';\nimport { updateFeature } from '@paypalcorp/c3-util-store';\nimport { TRANSITION_PAYLOAD } from '@paypalcorp/c3-util-logger';\nimport { getConversionRate } from '../CurrencyConversion/constants';\nimport AuthSettleComplianceContent from './AuthSettleComplianceContent';\nimport CurrencyConversionContentBR from './CurrencyConversionContentBR';\nimport CurrencyConversionLink from './CurrencyConversionLink';\nimport { useCart } from '../Cart/hooks';\nimport styles from './styles.css';\n\nconst CurrencyConversionOption = (props) => {\n const onClick = (e) => {\n e.preventDefault();\n\n const fptiAction = 'open_currency_conversion';\n\n logger.fpti(fptiAction, TRANSITION_PAYLOAD({ from: 'review', to: fptiAction }));\n\n updateFeature('CURRENCY_CONVERSION', { visible: true });\n };\n\n const {\n formattedRate,\n fromCurrencyCode,\n fundingOptionId,\n isReadOnly,\n isSingleFI = false,\n type,\n } = props;\n\n const fromUnitCurrency = `1 ${fromCurrencyCode}`;\n const toTargetCurrency = `${formattedRate}`;\n const { isHideCartFlagSet } = useCart();\n\n // TEMP: needed until translations come in with colon for locale property \"currencyConversion.paypalRateHeader\"\n const hasColon = getContent('currencyConversion.paypalRateHeader').substr(-1) === ':';\n\n return (\n
\n \n {type === 'PAYPAL' ? (\n \n {/* TEMP: remove hasColon once translations for locale property \"currencyConversion.paypalRateHeader\" come in */}\n {getContent('currencyConversion.paypalRateHeader')}\n {hasColon ? '' : ':'} {getConversionRate(fromUnitCurrency, toTargetCurrency)}\n \n ) : (\n {getContent('currencyConversion.issuerFees')}\n )}\n {!isReadOnly && }\n \n {isHideCartFlagSet && type === 'PAYPAL' ? : null}\n
\n \n );\n};\n\nexport default CurrencyConversionOption;\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"container\":\"VerticalRadioButton_container_3W21c\"};","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"currencyFormat\":\"Amount_currencyFormat_MMF5G\",\"currencyCode\":\"Amount_currencyCode_2ZnyV\",\"multiLine\":\"Amount_multiLine_VDWH_\"};","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-font-size-sm\":\"0.8125rem\",\"ppuiFontSizeSm\":\"0.8125rem\",\"ppui-line-height-sm\":\"1.125rem\",\"ppuiLineHeightSm\":\"1.125rem\",\"container\":\"Incentives_container_1NlSZ\",\"titleContainer\":\"Incentives_titleContainer_3Osa3\",\"detailContainer\":\"Incentives_detailContainer_3FH_C\",\"text\":\"Incentives_text_3Dv5f\",\"details\":\"Incentives_details_11nyx\",\"content\":\"Incentives_content_3cx_4\",\"info\":\"Incentives_info_1Dmqx\",\"title\":\"Incentives_title_3z0lw\",\"incentiveContainer\":\"Incentives_incentiveContainer_3alVF\",\"amount\":\"Incentives_amount_2Vw08\",\"incentive\":\"Incentives_incentive_1lD1a\",\"offerExpand\":\"Incentives_offerExpand_qdZMk\",\"incentiveNameContainer\":\"Incentives_incentiveNameContainer_3eezn\",\"incentiveName\":\"Incentives_incentiveName_2SqXr\",\"incentiveAmount\":\"Incentives_incentiveAmount_3WAQg\",\"incentiveItem\":\"Incentives_incentiveItem_2Gueb\",\"amountContainer\":\"Incentives_amountContainer_3vDYR\",\"iconContainer\":\"Incentives_iconContainer_V3Lkv\",\"flexContainer\":\"Incentives_flexContainer_1twu4\"};","import React from 'react';\nimport AnimateHeight from 'react-animate-height';\n\nimport getContent from '@/lib/content';\nimport Amount from '@/shared/components/Amount';\nimport { LessSVG, MoreSVG, TagIconSVG } from '@/shared/components/Icons';\nimport {\n getSoloPlan,\n getSplitPlan,\n isSingleFundingOptionByType,\n getFundingSourceFromPlanByType,\n getFundingOptionByFundingInstrumentType,\n} from '@paypalcorp/c3-util-store';\nimport { INCENTIVE_PERCENTAGE_TYPE } from './constants';\nimport { getIncentiveName } from './utils';\nimport { useFeature } from '@/components/Feature/hooks';\nimport { logger } from '@paypalcorp/c3-util-logger';\nimport { INCENTIVES_PAYLOAD } from '@paypalcorp/c3-util-logger';\nimport { usePayContext } from '@/components/ContextProviders';\nimport { useIncentiveContext } from '@/components/Incentives/hooks';\nimport { FundingOptionType } from '@paypalcorp/c3-graphql-schema';\n\nimport styles from './styles.css';\nimport Space from '@/shared/components/Space';\n\nconst Incentives = (props) => {\n const { experiment: { resolvedTreatment: goldTreatment } = {} } =\n useFeature('GOLD_PSB_MSB_TITLE');\n\n const [state, setState] = React.useState({\n showSplitUp: false,\n });\n\n const payContext = usePayContext();\n const {\n incentives,\n isIncentivePresent,\n isSinglePercentIncentive,\n incentiveType,\n totalIncentives,\n fundingOptionWithIncentives,\n amount,\n merchantName,\n } = useIncentiveContext();\n const { fundingOptions } = payContext;\n\n React.useEffect(() => {\n const action = 'renderIncentives';\n logger.fpti(action, INCENTIVES_PAYLOAD({ action }));\n }, []);\n\n if (!isIncentivePresent || !fundingOptionWithIncentives) {\n return null;\n }\n\n const toggle = (e) => {\n setState({\n showSplitUp: !state.showSplitUp,\n });\n const action = 'expandIncentives';\n logger.fpti(action, INCENTIVES_PAYLOAD({ action }));\n };\n\n const renderTitle = (incentiveType, amount) => {\n return (\n
\n
\n \n \n {totalIncentives}\n \n {getContent(`incentives.${incentiveType}.heading`)}\n \n \n {state.showSplitUp ? (\n \n \n \n ) : (\n \n \n \n )}\n \n
\n
\n \n
\n
\n );\n };\n\n const { showSplitUp } = state;\n\n return (\n
\n {renderTitle(incentiveType, amount)}\n\n \n
\n {incentives.map(({ fundingInstrument: { name }, amount, incentives }, index) => (\n
\n
\n \n {getIncentiveName({\n merchantName,\n treatment: goldTreatment,\n balanceType: incentives?.balanceType,\n shortTitle: incentives?.shortTitle,\n defaultContent: getContent(`incentives.${name}`, { position: index + 1 }),\n })}\n {!!incentives &&\n incentives.type === INCENTIVE_PERCENTAGE_TYPE &&\n ` ${getContent(`incentives.percentage.${incentiveType}.info`, {\n offerPercentage: incentives.percentOff,\n offerAmount: incentives.maxDiscount.currencyFormat,\n })}`}\n \n
\n
\n \n
\n
\n ))}\n
\n
\n
\n );\n};\n\nexport default Incentives;\n","import Incentives from './Incentives';\n/**\n * @description `INCENTIVES` component displays all the incentives that are available in a user account.\n *\n * @summary On clicking the continue button in the review page, the IncentiveId will be added as the\n * `secondaryFundingOptionIds` to fund the transaction.\n *\n * For a fully funded by incentive transaction, IncentiveId will be the `selectedFundingOptionId`\n */\n\nexport default Incentives;\n","import React from 'react';\n\nimport { useFeature } from '@/components/Feature/hooks';\nimport { lazyComponent } from '@/lib/lazyLoad';\n\nconst CurrencyConversionOption = lazyComponent(() => import('./CurrencyConversionOption'), {\n id: 'CURRENCY_CONVERSION_OPTION',\n loading: () => null,\n});\n\n/**\n * Currency conversion information to display for each FI.\n * Besides info, it has a link to change currency conversion which shows CURRENCY_CONVERSION interstitial\n */\nconst CurrencyConversionOptionContainer = (props) => {\n /**\n * Show currency conversion option if feature is enabled and `currencyConversion` prop exists which means fi has it\n */\n const { enabled } = useFeature('CURRENCY_CONVERSION');\n\n if (!enabled) {\n return null;\n }\n\n return ;\n};\n\nexport default CurrencyConversionOptionContainer;\n","import React from 'react';\nimport cx from 'classnames';\nimport style from './style.css';\nimport PropTypes from 'prop-types';\n\nfunction FINote({ isSelected, isSingleFI, note }) {\n return (\n isSelected && (\n {note}\n )\n );\n}\n\nFINote.defaultProps = {\n note: '',\n isSelected: false,\n isSingleFI: false,\n};\n\nFINote.propTypes = {\n note: PropTypes.string,\n isSelected: PropTypes.bool,\n isSingleFI: PropTypes.bool,\n}\n\nexport default FINote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'classnames';\nimport AnimateHeight from 'react-animate-height';\nimport { FIDetails } from '@checkout/react-components';\nimport { Radio } from '@paypalcorp/pp-react';\nimport { isEmpty } from '@paypalcorp/c3-util-lang';\nimport {\n getAmountFromSoloPlan,\n isCryptoFundingInstrument,\n isPPCFundingInstrument,\n} from '@paypalcorp/c3-util-store';\nimport FINote from '@/components/FundingInstrument/FINote';\nimport getContent from '@/lib/content';\nimport Amount from '@/shared/components/Amount';\nimport PreferredLabel from '@/shared/components/PreferredLabel';\nimport { Checkbox } from '@paypalcorp/pp-react';\nimport { isTesting } from '@paypalcorp/c3-shared-globals';\nimport Attribution from '@/components/FundingInstrument/Attribution';\nimport PayerDisclaimer from '@/components/FundingInstrument/PayerDisclaimer';\nimport CurrencyConversionOption from '@/components/CurrencyConversionOption';\nimport PayAfterDelivery from '@/components/PayAfterDelivery';\nimport PayAfterDeliveryFiSubtext from '@/components/PayAfterDeliveryFiSubtext';\nimport { fiFormatName, formatType, getImage } from './utilities';\nimport { FundingInstrumentPropType } from './constants';\nimport style from './FundingInstrument.css';\nimport { CryptoDisplay } from '@/components/Crypto';\nimport { RewardsItem } from '@/components/Rewards';\nimport { InstallmentsDisplay } from '@/components/Installments';\nimport { isCreditWithAdditionalData, getCreditFIDetails } from '@/lib/creditInstallmentsHelper';\nimport CreditCrossCurrency from '@/components/CreditOfferAsFi/CreditCrossCurrency';\nimport BackupFundingDisclaimer from '@/components/BackupFundingDisclaimer';\nimport BackupFundingInstrument from '@/components/BackupFundingInstrument';\nimport VerticalRadioButton from '@/shared/components/VerticalRadioButton';\nimport { useCart } from '../Cart/hooks';\n\nconst FIDisplay = (props) => {\n const {\n fi: {\n id,\n fundingInstrument: {\n name,\n type,\n institutionImages,\n isPreferred,\n creditFields,\n payerDisclaimer,\n cryptocurrencyHoldingDetails,\n } = {},\n } = {},\n amount: { currencyCode } = {},\n showCurrencyCode,\n showAttribution = true,\n showRewards = true,\n isSelected,\n isSingleFI,\n backup,\n isPreferredChecked,\n togglePreferred,\n makeSelected,\n currencyConversion,\n fundingMethodType,\n hasIncentive,\n isPPCInstallment,\n } = props;\n const fundingInstrument = props?.fi?.fundingInstrument ?? {};\n const isCryptoFi = isCryptoFundingInstrument(fundingInstrument);\n\n let lastDigits = fundingInstrument?.lastDigits;\n let attribution = fundingInstrument?.attribution;\n let fiName = fiFormatName(props?.fi?.fundingInstrument);\n let primaryType = formatType(props?.fi?.fundingInstrument, isSelected);\n let showSetPreferredOption = true;\n let currencyConversionInfo = null;\n let secondaryName = null;\n let isGpl = false;\n\n if (currencyConversion && !isEmpty(currencyConversion)) {\n currencyConversionInfo = (\n \n );\n }\n\n // Update the primaryType data and fiName to match with creditFI content, which comes from Personalisation Studio\n if (isCreditWithAdditionalData(name, type)) {\n showSetPreferredOption = false;\n\n if (creditFields) {\n const creditFIDetails = getCreditFIDetails(creditFields);\n\n isGpl = true;\n secondaryName = creditFIDetails.repaymentsFIName;\n primaryType = creditFIDetails.primaryType;\n fiName = creditFIDetails.fiName;\n lastDigits = creditFIDetails.lastDigits;\n attribution = creditFIDetails.creditFIDescription;\n\n if (creditFIDetails.crossCurrencyInfo) {\n currencyConversionInfo = ;\n }\n } else {\n fiName = getContent('fundingInstruments.defaultCreditInstallmentName');\n }\n }\n\n if (isCryptoFi) {\n fiName = fundingInstrument?.label;\n showSetPreferredOption = false;\n }\n\n const preferredLabel = isPreferred ? : null;\n const imgSrc = getImage(props?.fi?.fundingInstrument);\n const brandImageSrc = institutionImages?.[0]?.url?.href;\n const currencyLabel = showCurrencyCode && currencyCode ? ` (${currencyCode})` : null;\n const showNote = fundingMethodType === 'ECHECK';\n const { experiment: cartExperiment, isHideCartFlagSet } = useCart();\n\n const fiDetails = (\n \n );\n\n /**\n * When displaying amount we should usually defer to amount sent in from props\n * but for currency conversion use-cases with crypto currency funding instruments\n * we need to always display USD. So for these use-cases we will defer to\n * using amount from plans which should be in USD\n */\n const getDisplayAmountForFi = () => {\n if (!isCryptoFi || !currencyConversion) {\n return props?.amount;\n }\n\n // For currency conversion use-cases with crypto fi\n const amount = getAmountFromSoloPlan(props?.fi);\n\n return amount ?? props?.amount;\n };\n\n // Only show amount for non PPC EZP Merchants because of a bug on payments & PAPS: DTPPCREDIT-2010\n // https://engineering.paypalcorp.com/jira/browse/DTPPCREDIT-2010\n const isPPCInstallmentWithIncentive =\n isPPCFundingInstrument(fundingInstrument) && isPPCInstallment && hasIncentive;\n const showAmountForCartExperiment =\n !isHideCartFlagSet || isCryptoFi || cartExperiment?.resolvedTreatment === 'TREATMENT_2';\n const shouldShowAmount =\n isSelected && showAmountForCartExperiment && !isPPCInstallmentWithIncentive;\n return (\n
\n
\n {isSingleFI ? (\n fiDetails\n ) : (\n \n \n \n )}\n {shouldShowAmount && (\n \n )}\n
\n {showNote && (\n \n )}\n \n {showAttribution && (\n \n )}\n {!isSelected && }\n {showRewards && }\n \n {/* Crypto funding instruments display BUFS details within CryptoDisplay */}\n {!isCryptoFi ? (\n \n ) : null}\n\n {showSetPreferredOption && !isPreferred && (\n
\n \n
\n )}\n \n {currencyConversion ? (\n \n {currencyConversionInfo}\n {/* Crypto funding instruments display BUFS disclaimers within CryptoDisplay */}\n {!isCryptoFi ? (\n \n ) : null}\n
\n ) : null}\n {isCryptoFi && cryptocurrencyHoldingDetails ? (\n \n ) : null}\n \n \n \n );\n};\n\nFIDisplay.propTypes = {\n fi: PropTypes.shape({\n id: PropTypes.string.isRequired,\n fundingInstrument: FundingInstrumentPropType.isRequired,\n }).isRequired,\n amount: PropTypes.shape({\n currencyCode: PropTypes.string,\n currencyFormat: PropTypes.string,\n }),\n showCurrencyCode: PropTypes.bool,\n isSelected: PropTypes.bool,\n isSingleFI: PropTypes.bool,\n backup: PropTypes.shape({\n name: PropTypes.string,\n lastDigits: PropTypes.string,\n }),\n isPreferredChecked: PropTypes.bool.isRequired,\n togglePreferred: PropTypes.func.isRequired,\n makeSelected: PropTypes.func.isRequired,\n currencyConversion: PropTypes.shape({\n isReadOnly: PropTypes.bool,\n rateFormatted: PropTypes.string,\n type: PropTypes.oneOf(['PAYPAL', 'VENDOR']),\n from: PropTypes.shape({\n currencyCode: PropTypes.string,\n }),\n }),\n hasIncentive: PropTypes.bool,\n isPPCInstallment: PropTypes.bool,\n};\n\nFIDisplay.defaultProps = {\n amount: {},\n backup: undefined,\n currencyConversion: {},\n isPreferredChecked: false,\n isSelected: false,\n isSingleFI: true,\n showCurrencyCode: false,\n togglePreferred: () => {},\n makeSelected: () => {},\n hasIncentive: false,\n isPPCInstallment: false,\n};\n\nexport default FIDisplay;\n","import { getDirectionality } from '@paypalcorp/c3-shared-globals';\n\nexport const CONVERSION_TYPES = {\n PAYPAL: 'PAYPAL',\n VENDOR: 'VENDOR',\n};\n\nexport const getConversionRate = (fromCurrency, toCurrency) =>\n getDirectionality() === 'rtl'\n ? `${toCurrency} = ${fromCurrency}`\n : `${fromCurrency} = ${toCurrency}`;\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-color-grey-700\":\"#2c2e2f\",\"ppuiColorGrey700\":\"#2c2e2f\",\"ppui-font-size-md\":\"0.9375rem\",\"ppuiFontSizeMd\":\"0.9375rem\",\"ppui-line-height-md\":\"1.5rem\",\"ppuiLineHeightMd\":\"1.5rem\",\"ppui-spacing-xs\":\"0.25rem\",\"ppuiSpacingXs\":\"0.25rem\",\"size-base-1200\":\"4rem\",\"sizeBase1200\":\"4rem\",\"fiNote\":\"FINote_fiNote_2B9_B\",\"finNote-single-fi\":\"FINote_finNote-single-fi_2XnJi\",\"finNoteSingleFi\":\"FINote_finNote-single-fi_2XnJi\"};","import Feature from '@/components/Feature';\n\nconst shouldLoadFeatureComponent = ({ customProps: { type, attribution, isGpl } }) => {\n return (type === 'CREDIT_CARD' || isGpl) && attribution;\n};\n\nconst Attribution = Feature({\n id: 'FI_ATTRIBUTION',\n shouldLoadFeatureComponent,\n})(() => import('./Attribution.js'));\n\nexport default Attribution;\n","import Feature from '@/components/Feature';\n\nconst shouldLoadFeatureComponent = ({ customProps: { isSelected, payerDisclaimer } }) => {\n // This feature relies upon the payerDisclaimer field in the payWith query.\n // This field is passed in as a custom prop from FIDisplay.\n return isSelected && payerDisclaimer === 'COBRANDED';\n};\n\nconst PayerDisclaimer = Feature({\n id: 'FI_PAYER_DISCLAIMER',\n shouldLoadFeatureComponent,\n})(() => import('./PayerDisclaimer.js'));\n\nexport default PayerDisclaimer;\n","import gql from 'graphql-tag';\nimport { getToken } from '@paypalcorp/c3-shared-globals';\nimport Feature from '@/components/Feature';\nimport { getPadPlan } from '@paypalcorp/c3-util-store';\n\nconst shouldLoadFeatureComponent = ({ customProps: { fundingOption } }) => {\n return !!(fundingOption && getPadPlan(fundingOption));\n};\n\nconst query = gql`\n query PAD_QUERY($token: String!) {\n checkoutSession(token: $token) {\n flags {\n isPadPreferred\n }\n }\n }\n`;\n\n/**\n * What's PAD?: https://engineering.paypalcorp.com/confluence/display/GKM/Pay+After+Delivery\n * UI mocks: https://paypalamericas.invisionapp.com/d/main#/projects/prototypes/12154097\n * Steps to create user with PAD: https://engineering.paypalcorp.com/confluence/display/MICA/Reproduce+pad+on+stage+-+AU+and+DE#Reproducepadonstage-AUandDE-GothroughthePADflow\n * Original PR: https://github.paypal.com/Checkout-R/checkoutuinodeweb/pull/973\n */\nconst PayAfterDelivery = Feature({\n id: 'PAY_AFTER_DELIVERY',\n queries: [{ query: query, variables: { token: getToken() }, fetchPolicy: 'cache-only' }],\n shouldLoadFeatureComponent,\n})(() => import('./PayAfterDelivery'));\n\nexport default PayAfterDelivery;\n","import Feature from '@/components/Feature';\nimport { getPadPlan } from '@paypalcorp/c3-util-store';\n\nconst shouldLoadFeatureComponent = ({ customProps: { fundingOption } }) => {\n return !!(fundingOption && getPadPlan(fundingOption));\n};\n\n/**\n * @description `PayAfterDeliveryFiSubtext` component displays PAD subtext content for unselected FI's with PAD enabled.\n */\nconst PayAfterDeliveryFiSubtext = Feature({\n id: 'PAY_AFTER_DELIVERY_FI_SUBTEXT',\n shouldLoadFeatureComponent,\n})(() => import('./PayAfterDeliveryFiSubtext'));\n\nexport default PayAfterDeliveryFiSubtext;\n","import React from 'react';\n\nimport { lazyComponent } from '@/lib/lazyLoad';\nimport { useBackupFundingDisclaimer } from './hooks';\n\nconst BackupFundingDisclaimer = lazyComponent(() => import('./BackupFundingDisclaimer'), {\n id: 'BACKUP_FUNDING_DISCLAIMER',\n});\n\n/**\n *\n * Displays disclaimer for backup funding instrument for a currency conversion\n * transaction when a bank is the main FI.\n *\n */\nfunction BackupFundingDisclaimerContainer(props) {\n const { cartAmount } = useBackupFundingDisclaimer();\n const backup = props?.backup;\n const currencyConversion = props?.primaryCurrencyConversion;\n\n if (!backup || !currencyConversion || !cartAmount) {\n return null;\n }\n\n return ;\n}\n\nexport default BackupFundingDisclaimerContainer;\n","import React from 'react';\n\nimport { ElmoExperiment } from '@paypalcorp/c3-util-elmo-experiment';\n\nimport { useFeature } from '@/components/Feature/hooks';\nimport { lazyComponent } from '@/lib/lazyLoad';\n\nconst BackupFi = lazyComponent(() => import('./BackupFi'), {\n id: 'BACKUP_FI',\n loading: () => <>,\n});\n\nconst BackupFiWithDescription = lazyComponent(() => import('./BackupFiWithDescription'), {\n id: 'BACKUP_FI_DESCRIPTION',\n loading: () => <>,\n});\n\n/**\n * Displays backup funding instrument for a non currency conversion\n * transaction.\n */\n\nconst BackupFundingDisclaimer = ({ backup, currencyConversion }) => {\n const { experiment } = useFeature('BACKUP_FI');\n\n if (!backup || currencyConversion) {\n return null;\n }\n\n if (experiment?.resolvedTreatment === ElmoExperiment.TREATMENTS.TREATMENT_1) {\n return ;\n }\n\n if (experiment?.resolvedTreatment === ElmoExperiment.TREATMENTS.TREATMENT_2) {\n return ;\n }\n\n return null;\n};\n\nexport default BackupFundingDisclaimer;\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-color-blue-600\":\"#0070ba\",\"ppuiColorBlue600\":\"#0070ba\",\"container\":\"CurrencyConversionOption_container_1Ygq6\",\"header\":\"CurrencyConversionOption_header_3eUGA\",\"leftContainer\":\"CurrencyConversionOption_leftContainer_1OasC\",\"singleFi\":\"CurrencyConversionOption_singleFi_2_CLo\",\"currencyCode\":\"CurrencyConversionOption_currencyCode_1VWvK\",\"showMoreButtonContainer\":\"CurrencyConversionOption_showMoreButtonContainer_3d7sB\",\"button\":\"CurrencyConversionOption_button_36WN4\",\"content\":\"CurrencyConversionOption_content_ClFRP\"};","import gql from 'graphql-tag';\n\nexport const BUFS_DISCLAIMER_QUERY = gql`\n query BufsDisclaimerQuery($token: String!) {\n checkoutSession(token: $token) {\n cart {\n amounts {\n total {\n currencyFormatSymbolISOCurrency\n currencyCode\n }\n }\n }\n }\n }\n`;\n","import { useQuery } from '@apollo/react-hooks';\nimport { BUFS_DISCLAIMER_QUERY } from './query.gql';\nimport { getToken } from '@paypalcorp/c3-shared-globals';\n\nexport function useBackupFundingDisclaimer() {\n const { data } = useQuery(BUFS_DISCLAIMER_QUERY, {\n variables: { token: getToken() },\n });\n\n const cartAmount = data?.checkoutSession?.cart?.amounts?.total;\n\n return {\n cartAmount,\n };\n}\n","import { useRef, useEffect } from 'react';\nimport { useIntersection } from 'react-use';\nimport { usePrevious } from 'react-use';\n\n/**\n * Leverages the Intersection Observer API to log impressions on any element.\n * Will trigger the function you provide when the element has fully entered the viewport.\n * You must attach the ref returned to the element for which you wish to log impressions.\n *\n * @param {Function} handleImpression Function to run when an impression is detected\n */\nexport default function useImpressionTracking(handleImpression) {\n const impressionRef = useRef(null);\n const intersection = useIntersection(impressionRef, {\n root: null,\n rootMargin: '0px',\n threshold: 1,\n });\n const prevIntersectionRatio = usePrevious(intersection?.intersectionRatio);\n\n useEffect(() => {\n if (!prevIntersectionRatio && intersection?.intersectionRatio === 1) {\n handleImpression();\n }\n }, [intersection, handleImpression, prevIntersectionRatio]);\n\n if (typeof handleImpression !== 'function') {\n throw new Error(\n 'You must provide a function to handle impressions as the first argument to useImpressionTracking'\n );\n }\n\n return impressionRef;\n}\n","import React from 'react';\nimport AnimateHeight from 'react-animate-height';\n\nimport { isTesting } from '@paypalcorp/c3-shared-globals';\nimport { strToBool, toNumber } from '@paypalcorp/c3-util-lang';\nimport { Radio, Link, CaptionText } from '@paypalcorp/pp-react';\nimport { updateFeature } from '@paypalcorp/c3-util-store';\nimport { FIDetails } from '@checkout/react-components/components/FundingInstruments/FIDetails';\n\nimport { useCart } from '@/components/Cart/hooks';\nimport CurrencyConversionOption from '@/components/CurrencyConversionOption';\nimport { currencyConversion, details } from '@/components/FundingInstrument/FundingInstrument.css';\nimport VerticalRadioButton from '@/shared/components/VerticalRadioButton';\nimport PopupLink from '@/components/PopupLink';\nimport Space from '@/shared/components/Space';\n\nimport styles from './styles.css';\n\nconst CurrencyConversionContainer = ({ id, offer }) => {\n const { total: { currencyCode } = {} } = useCart();\n const rate = offer?.content?.CurrencyConversionRate;\n const fromCurrencyCode = offer?.content?.CartAmountCurrencyCode;\n const formattedRate = toNumber(rate, 5);\n\n return (\n
\n \n
\n );\n};\n\nconst Terms = ({ offer }) => {\n const termsLink = offer?.content?.TermsLink;\n const termsLinkText = offer?.content?.TermsLinkText;\n const termsText = offer?.content?.TermsText;\n if (!termsLink || !termsLinkText || !termsText) {\n return null;\n }\n\n return (\n

\n {termsText}\n \n \n

\n );\n};\n\nconst LearnMoreLink = ({ offer }) => {\n const handleLearnMore = (e, offer) => {\n e.preventDefault();\n updateFeature('PAY_LATER_LEARN_MORE', { visible: true, data: { offer } });\n };\n\n return (\n handleLearnMore(e, offer)}>\n \n {offer?.content?.GplLearnMoreText}\n \n \n );\n};\n\nexport const PayLaterFundingInstrument = ({ isSelected, offer, onSelect }) => {\n const id = `credit-offer-${offer?.rank}`;\n\n const primaryType = (\n <>\n

\n \n {offer?.content?.OfferText1}\n {offer?.content?.Product === 'GPL' && Boolean(offer?.content?.GplLearnMoreText) ? (\n \n ) : null}\n \n

\n

{offer?.content?.OfferText2}

\n \n \n );\n\n const fiDetails = (\n \n );\n\n return (\n
\n \n onSelect(offer)}\n />\n \n {strToBool(offer?.content?.CrossCurrencyTransaction) ? (\n \n \n \n ) : null}\n
\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'classnames';\nimport AnimateHeight from 'react-animate-height';\nimport getContent from '@/lib/content';\nimport { Tooltip } from '@paypalcorp/pp-react-tooltip';\nimport styles from './styles.css';\n\nconst SECTION_HEIGHT = 58;\n\nconst GPLOffer = ({ isSelected, offer, onClick }) => {\n const {\n ShortOfferText,\n FIText2,\n OfferText1,\n OfferText2,\n FormattedCartAmount,\n FormattedInterestAmount,\n FormattedTotalAmount,\n } = offer?.content;\n\n return (\n \n \n
\n
\n {OfferText1}\n {OfferText2}\n
\n
\n
\n
\n {getContent('credit.transactionAmount')}\n \n
\n {FormattedCartAmount}\n
\n
\n {getContent('credit.interestAmount')}\n {FormattedInterestAmount}\n
\n
\n {getContent('credit.totalAmount')}\n {FormattedTotalAmount}\n
\n
\n
\n \n );\n};\n\nGPLOffer.propTypes = {\n isSelected: PropTypes.bool.isRequired,\n offer: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nexport default GPLOffer;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Radio } from '@paypalcorp/pp-react';\nimport AnimateHeight from 'react-animate-height';\nimport { logger, TRANSITION_PAYLOAD } from '@paypalcorp/c3-util-logger';\nimport getContent from '@/lib/content';\nimport { FIDetails } from '@checkout/react-components/components/FundingInstruments/FIDetails';\nimport VerticalRadioButton from '@/shared/components/VerticalRadioButton';\nimport styles from './styles.css';\nimport GPLOffer from './GPLOffer';\nimport {\n offerFinancingCodesToCSV,\n allOfferDetailsToJsonString,\n offerDetailsForFPTI,\n} from './utils';\nimport { strToBool, toNumber } from '@paypalcorp/c3-util-lang/src';\nimport CurrencyConversionOption from '@/components/CurrencyConversionOption/CurrencyConversionOption';\nimport { useCart } from '@/components/Cart/hooks';\nimport { getLowestOffer } from '@/components/PayLater/Multi/hooks';\n\n/**\n * Returns the index of the offer with the first `isSelected` value as a preselected offer.\n * @param {Array} offers\n * @returns {number|null}\n */\nconst getPreselectedOfferIndex = (offers) => {\n const selected = offers.findIndex((offer) => offer?.isSelected);\n\n // In a very rare edge case, `isSelected` may be false for every offer. Return null in that case\n // and no offers will display as preSelected.\n if (selected === -1) return null;\n\n return selected;\n};\n\n/**\n * Returns an object containing details about the selected offer and all available offers\n * to be logged to FPTI\n * @param {Object, Array} selectedOffer\n * @param {Array} offers\n * @returns {Object}\n */\nconst getFptiDetails = (selectedOffer, offers) => ({\n financing_code_selected: selectedOffer?.content?.FinancingCode ?? 0,\n financing_codes: offerFinancingCodesToCSV(offers),\n installment_option_shown: allOfferDetailsToJsonString(offers),\n installment_option_selected: offerDetailsForFPTI(selectedOffer),\n});\n\n/**\n * Handles the display and selection of MultiOffer GPL funding instrument and installment offers\n */\nexport const MultiOfferFundingInstrument = ({\n selectedOffer,\n offers,\n hasGPLFundingInstrument,\n onSelect,\n}) => {\n const { total: { currencyCode } = {} } = useCart();\n const preselectedIndex = useCallback(getPreselectedOfferIndex(offers), [offers]);\n const [selectedOfferIndex, setSelectedOfferIndex] = useState(preselectedIndex);\n const [isChecked, setIsChecked] = useState(false);\n\n // We need to display the lowest payment as the \"advertised\" text\n const lowestOffer = useCallback(getLowestOffer(offers), [offers]);\n const advertisedOfferText = lowestOffer.content?.FIText1;\n\n const defaultInstrument = offers[preselectedIndex] ?? offers[0];\n const id = `credit-offer-${defaultInstrument?.referenceId}`;\n const { StatusText, OfferHeading, FILogo, Logo } = defaultInstrument?.content;\n const isFISelected =\n (isChecked && defaultInstrument?.referenceId === selectedOffer?.referenceId) ||\n (isChecked && selectedOffer?.referenceId === 'noPreselection');\n const fptiData = getFptiDetails(offers[selectedOfferIndex], offers);\n\n useEffect(() => {\n if (!isFISelected) {\n setIsChecked(false);\n }\n }, [selectedOffer]);\n\n useEffect(() => {\n logger.fpti(\n 'PAY_LATER_AVAILABLE_INSTALLMENTS',\n TRANSITION_PAYLOAD({\n from: 'review',\n to: 'pay_later_installment_option_available',\n financing_codes: offerFinancingCodesToCSV(offers),\n })\n );\n\n // On mount, and only once a GPL FI has been added, determine if an offer\n // should be pre-selected (via the isSelected offer field).\n // If so, set the radio as checked.\n if (hasGPLFundingInstrument && preselectedIndex) {\n setIsChecked(true);\n onSelect(offers[selectedOfferIndex], fptiData);\n }\n }, []);\n\n const onOfferClick = (offer, i) => {\n onSelect(offer, getFptiDetails(offers[i], offers));\n setSelectedOfferIndex(i);\n };\n\n const onRadioClick = () => {\n logger.fpti(\n 'MULTI_OFFER_FI_RADIO_CLICKED',\n TRANSITION_PAYLOAD({\n from: 'review',\n to: 'pay_in_four_funding_option_shown',\n offers_shown: offers?.length,\n ...fptiData,\n })\n );\n\n // If in the tabbed view (TABBED_PAYMENT_OPTIONS), clicking between Pay Now and Pay Later\n // resets the selectedOffer to null. Allow the state to be set to isChecked in this situation\n if (!isChecked || !selectedOffer) {\n setIsChecked(true);\n\n // In a very rare edge case where no offers are preSelected, the selectedOfferIndex state\n // value will be null. If so we need to set a temporary referenceId (\"noPreselection\")\n // so that the radio button still functions and an offer with a real referenceId can be selected\n // to overwrite the temporary one.\n const selectedOffer = offers[selectedOfferIndex] ?? { referenceId: 'noPreselection' };\n onSelect(selectedOffer, fptiData);\n }\n };\n\n const FILabel = (\n {advertisedOfferText}}\n />\n );\n\n const getFormattedRate = (offer) => {\n return `${toNumber(offer?.content?.CurrencyConversionRate, 5)} ${currencyCode}`;\n };\n\n const getCurrencyCode = (offer) => {\n return offer?.content?.CartAmountCurrencyCode;\n };\n\n return (\n
\n \n \n \n \n

{getContent('fundingInstruments.chooseOffer')}

\n {offers\n .filter((offer) => offer?.content?.OfferCategory !== 'REUSE')\n .map((offer, i) => (\n onOfferClick(offer, i)}\n />\n ))}\n {selectedOfferIndex >= 0 &&\n strToBool(offers?.[selectedOfferIndex]?.content?.CrossCurrencyTransaction) && (\n <>\n \n {getContent('currencyConversion.currencyConversionHeader')}\n \n \n \n )}\n \n
\n );\n};\n\nexport default MultiOfferFundingInstrument;\n","import React from 'react';\nimport { Badge } from '@paypalcorp/pp-react-badge';\nimport { Alert } from '@paypalcorp/pp-react-alert';\nimport { logger, TRANSITION_PAYLOAD } from '@paypalcorp/c3-util-logger';\nimport { getCountry } from '@paypalcorp/c3-shared-globals';\nimport { isPayLaterFundingInstrument, isPPCFundingInstrument } from '@paypalcorp/c3-util-store';\nimport { heading as headingStyles } from '@/App.css';\nimport { usePayContext, usePayLaterContext } from '@/components/ContextProviders';\nimport GplCreditContainer from '@/components/GplCreditContainer';\nimport Incentives from '@/components/Incentives';\nimport RemainderMessage from '@/components/RemainderMessage';\nimport { FundingInstrumentList } from '@/components/PayWith/FundingInstrumentList';\nimport getContent from '@/lib/content';\nimport { isInstallmentCreditType } from '@/lib/utils';\nimport { mapCreditPPCOffer } from '@/components/CreditOffer/utils';\nimport useImpressionTracking from '@/hooks/useImpressionTracking';\nimport { once } from '@paypalcorp/c3-util-lang';\nimport { useEligibilityContext } from '@/components/ContextProviders';\nimport { PayLaterFundingInstrument } from './PayLaterFundingInstrument';\nimport styles from './styles.css';\nimport { useFeature } from '@/components/Feature/hooks';\nimport { groupOffersByMultiInstallment, isMultiOfferFundingInstrument } from './Multi/utils';\nimport MultiOfferFundingInstrument from './Multi/MultiOfferFundingInstrument';\nimport { checkElmoTreatment } from '@/lib/eligibility';\nimport { ElmoExperiment } from '@paypalcorp/c3-util-elmo-experiment';\nimport { useDetermineGplOffers } from '@/components/PayLater/hooks';\n\nexport const gplOfferLogImpression = once(() => {\n const to = 'pay_in_four_offer_visible';\n logger.fpti(\n to,\n TRANSITION_PAYLOAD({\n from: 'REVIEW',\n to,\n })\n );\n});\n\nexport const payLaterLogImpression = once((fundingOptions, offers) => {\n const to = 'pay_later_options_visible';\n\n logger.fpti(\n to,\n TRANSITION_PAYLOAD({\n from: 'REVIEW',\n to,\n has_reuse: fundingOptions.length > 0,\n offer_products: offers\n .filter((offer) => offer?.content?.OfferCategory !== 'REUSE')\n .map((offer) => offer?.content?.Product)\n .filter(Boolean)\n .join(','),\n })\n );\n});\n\nexport default function PayLater(props) {\n const featureSplitTenderGate = useFeature('SPLIT_TENDER_GATE');\n const { showSplitExperience = false } = featureSplitTenderGate?.data || {};\n const showTitle = props.showTitle;\n const checkoutSession = props.checkoutSession || {};\n\n // Filter out any funding options that are not Pay Later and ones that contain\n // the isMultiOffer field\n const fundingOptions =\n checkoutSession?.fundingOptions?.filter(\n (fundingOption) =>\n isPayLaterFundingInstrument(fundingOption?.fundingInstrument) &&\n !isMultiOfferFundingInstrument(fundingOption?.fundingInstrument)\n ) ?? [];\n\n const { selectedFundingOption, hasGPLFundingInstrument, isGplAsFiSelected } = usePayContext();\n\n const payLaterContext = usePayLaterContext();\n const { hasGPL, isUpstreamPresentment, showGPLOffer, showControlCreditOffers } =\n useEligibilityContext();\n const offers = checkoutSession?.creditPPCOffers || [];\n\n // Group offers as installment or nonInstallment depending on the \"MultiOffer\" field\n const { installmentOffers = [], nonInstallmentOffers = [] } =\n groupOffersByMultiInstallment(offers);\n\n // Add the check for installments as a stopgap measure to hide incentive until Payments fixes issue: DTPPCREDIT-2010\n // https://engineering.paypalcorp.com/jira/browse/DTPPCREDIT-2010\n const creditOffer = mapCreditPPCOffer({ creditPPCOffers: offers }) || {};\n const creditOfferType = creditOffer?.content?.OfferType;\n const isPPCInstallment =\n checkElmoTreatment('PPC_INSTALLMENTS_HIDE_INCENTIVES', ElmoExperiment.TREATMENTS.TREATMENT_1) &&\n isInstallmentCreditType(creditOfferType);\n\n const impressionRef = useImpressionTracking(() => payLaterLogImpression(fundingOptions, offers));\n const impressionGplRef = useImpressionTracking(gplOfferLogImpression);\n\n const acqOffers = nonInstallmentOffers.filter(\n (offer) => offer?.content?.OfferCategory !== 'REUSE'\n );\n\n const { acquisitionOffersReflectingFundingMix, isGplOfferWithIncentivesApplied } =\n useDetermineGplOffers(acqOffers);\n\n const showIncentives =\n (isPPCFundingInstrument(selectedFundingOption?.fundingInstrument) && !isPPCInstallment) ||\n (payLaterContext.isGplOffer && isGplOfferWithIncentivesApplied) ||\n (isGplAsFiSelected && isGplOfferWithIncentivesApplied);\n\n if (showControlCreditOffers || showSplitExperience) {\n return null;\n }\n\n // DTCRCRGRS-1056: US Multiproduct Order Test\n if (\n acqOffers.length > 1 &&\n checkElmoTreatment('PPC_MULTIPRODUCT_ORDER', ElmoExperiment.TREATMENTS.TREATMENT_1)\n ) {\n acqOffers.reverse();\n }\n\n return (\n
\n {showTitle ? (\n
\n

{getContent('paymentOptions.payLaterTitle')}

\n \n {getContent('paymentOptions.payLaterLabel')}\n \n
\n ) : null}\n\n {isUpstreamPresentment && !hasGPL && getCountry() === 'GB' && (\n \n {getContent('paymentOptions.gplNotAvailable', {\n productName: getContent('paymentOptions.gplProductName'),\n })}\n \n )}\n\n {showIncentives ? (\n <>\n \n \n \n ) : null}\n\n \n\n {installmentOffers?.length > 0 && showGPLOffer && (\n <>\n \n \n \n )}\n\n {acquisitionOffersReflectingFundingMix.map((offer) => {\n const offerProduct = offer?.content?.Product;\n const isSelected = offer.referenceId === payLaterContext?.payLaterState?.offer?.referenceId;\n\n if (offerProduct === 'GPL') {\n if (!showGPLOffer) {\n return null;\n }\n\n return (\n
\n \n \n \n \n
\n );\n }\n\n return (\n \n );\n })}\n \n
\n );\n}\n"],"sourceRoot":""}