{"version":3,"sources":["components/AddFI/PotentialCard/index.js","components/SplitTender/index.js","components/SplitTender/SplitTenderToggle/styles.css","components/SplitTender/SplitTenderHeader/styles.css","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/PayWith/ShowMore/index.js","components/PayWith/FundingInstrumentList/styles.css","components/PayWith/PayWith.css","components/FundingInstrument/index.js","components/PayWith/FundingInstrumentList/utils.js","components/PayWith/FundingInstrumentList/index.js","components/SplitTender/SplitTenderToggle/index.js","components/SplitTender/SplitTenderHeader/index.js","components/SelectFiLink/index.js","components/SplitBalance/index.js","shared/components/Link/index.js","shared/components/Link/styles.css","components/AddOption/index.js","components/AddOption/styles.css","components/SplitTender/utils.js","lib/eligibility.js","components/AddFI/AddCard/query.gql.js","components/AddFILink/query.gql.js","components/AddFILink/index.js","components/CreditOfferAsFi/CreditCrossCurrency/index.js","shared/components/VerticalRadioButton/index.js","shared/components/Amount/index.js","shared/components/PreferredLabel/index.js","shared/components/PreferredLabel/styles.css","components/FundingInstrument/FundingInstrument.css","components/PayWith/hooks.js","components/PayWith/PayWith.js","components/PayWith/PayWithContainer.js","components/PayWith/utils.js","shared/components/VerticalRadioButton/styles.css","shared/components/Amount/styles.css","components/Incentives/query.gql.js","components/FundingInstrument/FINote/index.js","components/FundingInstrument/FIDisplay.js","components/AddFI/PotentialCard/query.gql.js","components/Incentives/index.js","components/CurrencyConversionOption/index.js"],"names":["PotentialCard","Feature","id","queries","query","POTENTIAL_CARDS_QUERY","variables","token","getToken","BILLING_ADDRESS_QUERY","subscribeTo","LoadingComponent","InterstitialLoading","contingencies","SplitTender","Loading","SPLIT_TENDER_CART_QUERY","fetchPolicy","module","exports","Attribution","shouldLoadFeatureComponent","customProps","type","attribution","isGpl","PayerDisclaimer","isSelected","payerDisclaimer","PayAfterDelivery","fundingOption","getPadPlan","PayAfterDeliveryFiSubtext","BackupFundingDisclaimer","props","backup","get","currencyConversion","BackupFi","lazyComponent","loading","BackupFiWithDescription","experiment","useFeature","resolvedTreatment","ElmoExperiment","TREATMENTS","TREATMENT_1","TREATMENT_2","ShowMore","FundingInstrument","useCryptoTermsInterstitial","isCryptoTermsInterstitialAcknowledged","isInterstitialAcknowledged","openCryptoTermsInterstitial","openInterstitial","payContext","usePayContext","payState","selectedFundingOptionId","preferredFundingOptionId","payLaterContext","usePayLaterContext","fi","selectedInstallment","showCurrencyCode","isSingleFI","isPPCInstallment","selectedPlan","getSelectedPlan","backupFundingInstrument","fundingSource","getSelectedFundingSource","plan","hasIncentive","isIncentivesPlan","fundingSources","gplAmountDueToday","gplAmountDueTodayDetails","fundingInstrument","amount","isDiscountAvailableForInstallment","totalCost","isPreferredChecked","className","style","container","data-testid","FIDisplay","togglePreferred","allPlans","rewards","installmentsInPlans","findInstallmentsInPlans","setPreferredFiId","undefined","fptiAction","logger","fpti","TRANSITION_PAYLOAD","from","to","preferred_fi_id","installment_shown","areInstallmentsAvailable","rewardsFpti","makeSelected","fundingOptionType","isPreferred","hasPadPlan","Boolean","getSelectedFundingOption","fundingOptions","isCryptoFundingInstrument","setSelectedFiId","setPayState","usePayAfterDelivery","updateFeatures","visible","data","showDescriptor","then","resetRewards","clearSelectedOffer","fundingMethodType","defaultProps","isPaypalBalance","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","styles","animateHeightFIs","height","featureSplitTenderGate","showSplitExperience","useEffect","logTriggerLoaded","onChange","updateFeature","isSplitReady","showSplitContinue","checked","onLabel","getContent","offLabel","splitToggleLabel","SplitTenderHeader","showToggle","splitTenderHeaderId","header","toggleHeader","headerText","changeLink","AddOption","label","onClick","logPayWithChangeClicked","withPlusIcon","SplitTenderToggle","memoize","eligible","SelectFiLink","LazySplitBalance","splitBalanceQuery","definitions","names","definition","kind","name","value","FundingOptionFragment","DisallowedInstrumentFragment","SplitBalance","useQuery","useSplitBalance","checkoutSession","disallowedInstruments","selectedFundingOption","splitBalancePlan","getSplitBalancePlan","hasIncompleteDisallowedInstruments","getIncompleteDisallowedInstruments","splitBalanceEligible","React","isLoading","Link","tag","href","newProps","tabIndex","cx","link","createElement","children","action","containerClassName","dataTestId","getPayload","linkClassName","onMouseOver","prefetchQueries","getPayloadParams","textClassName","rest","shouldFetch","handlePrefetch","e","preventDefault","prefetchData","resources","classNames","client_epoch_ts","Date","now","onFocus","textContent","resetSplitTenderData","userCanSplit","selectedBackupFundingInstrument","selectedSplitFundingInstruments","getEligibleForPrimaryFiIdList","splitFundingOptions","isEligibleForPrimaryInstrument","isSplitTenderActive","SplitTenderGate","getSplitOptionsAndBackup","find","backupFi","flags","paymentContingencies","reason","hasPPCInstallmentsTreatment","isEnabled","checkElmoTreatment","hasCreditSecondButtonTreatment","some","hasPPCreditInstallments","getCredit","isCreditSecondButton","confirmCreditCardCvvData","threeDomainSecure","isIncentivePresent","logEligibility","eligibility","eligibility_reason","cal","info","isUSGambling","merchantCountry","merchantIsGambling","isUSBuyer","getCountry","hasAllowedCardIssuerTypes","allowedCardTypes","hasContingency","isEmpty","getFeatures","isFunction","treatment","resolvedTrmt","CONTROL","LOCALE_PHONE_QUERY","GET_SUPPORTED_CARDS_QUERY","ADD_FI_LINK","canAddFundingOption","allowedCardIssuers","hasAllowedCardTypesContingency","hasContingencies","isGamblingMerchant","showCloseBtn","isGambling","isFullyFundedByIncentives","hasAllowedCardTypes","hasFundingOptionsOrContingencies","features","allQueryData","NEED_CREDIT_CARD","NEED_SHIPPING_ADDRESS","NEED_CREDIT_CARD_OR_BANK_ACCOUNT","EXPIRED_CREDIT_CARD","ALLOWED_CARD_TYPES_COULD_NOT_BE_RETRIEVED","ADD_FI","options","country","context","skipFallback","SELECT_FI","AddFILink","CreditCrossCurrency","VerticalRadioButton","Amount","currencyFormat","currencyCode","dueDate","multiLine","attributes","hasCode","includes","PreferredLabel","preferredLabelContainer","noMargins","status","usePaymentContingencyHandler","splitTenderGate","prevContingencies","usePrevious","handleContingency","clearContingencies","forEach","contingency","updateContingency","clear","queryVars","withSplitTender","threeDsExperienceVars","refetch","SELL_CRYPTOCURRENCY_ERROR","handleCryptoSellContingency","error","CC_AUTHORIZATION_DECLINED","CC_PROCESSOR_DECLINED","PayWith","allFundingOptions","checkoutSessionFundingOptions","payWithFeature","isPPCAvailableAsFI","isPotentialCardFeatureVisible","isOfferSelected","showControlCreditOffers","useEligibilityContext","fiCountByType","countValues","triggerInitialCPLEvent","PAGE","REVIEW","prevIsEligible","useEligibilityLogger","message","REVIEW_PAYLOAD","CheckoutError","getFallback","redirectOnError","showPotentialCard","showIncentives","isPPCFundingInstrument","Incentives","placement","LANDING_PAGE","PayWithContainer","eligibilityContext","forceRadioButton","forceAsFirstId","showTitle","showAddFiLink","showSelectedOnly","selectFiLink","cart","billingChargePattern","merchant","checkoutSessionType","feature","cartCategory","category","reduce","sorted","option","unshift","push","CREDIT_OFFER_AS_FI_DE","presentmentType","CREDIT_OFFER_AS_FI","eligibleForHermione","userAction","hideCart","SPLIT_TENDER_GATE","isSplitToggle","showSplitTenderToggle","showTabs","isPayLaterFundingInstrument","filterOutCreditInstruments","getIsPayNowUserActionFlow","mapPayWithDataToProps","preferredId","headingStyles","GET_INCENTIVES_QUERY","FINote","note","fiNote","finNoteSingleFi","institutionImages","creditFields","cryptocurrencyHoldingDetails","showAttribution","showRewards","isCryptoFi","lastDigits","fiName","fiFormatName","primaryType","formatType","showSetPreferredOption","currencyConversionInfo","secondaryName","CurrencyConversionOption","formattedRate","rateFormatted","fromCurrencyCode","fundingOptionId","isReadOnly","isCreditWithAdditionalData","creditFIDetails","getCreditFIDetails","repaymentsFIName","creditFIDescription","crossCurrencyInfo","preferredLabel","imgSrc","getImage","brandImageSrc","url","currencyLabel","showNote","isHideCardFlagSet","useCart","fiDetails","FIDetails","imgAltText","styleOverrides","instrument","isPPCInstallmentWithIncentive","shouldShowAmount","item","getAmountFromSoloPlan","getDisplayAmountForFi","isFundingOptionSelected","Rewards","fiId","isSingle","selected","duration","isTesting","cn","details","detailsSingleFi","BackupFundingInstrument","makePreferred","size","isFiSelected","cryptoFi","primaryFundingOption","primaryCurrencyConversion","Crypto","fId","Installments","isSingleFi","CurrencyConversionOptionContainer"],"mappings":"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","file":"js/PayWithContainer~21833f8f.2109dbe3.js","sourcesContent":["import { getToken } from '@paypalcorp/c3-shared-globals';\nimport Feature from '@/components/Feature';\nimport { POTENTIAL_CARDS_QUERY } from './query.gql';\nimport { BILLING_ADDRESS_QUERY } from '@/components/AddFI/query.gql';\nimport { InterstitialLoading } from '@/shared/components/Loading';\n\n/**\n * Component responsible for displaying the potential cards.\n * Potentila-Cards are funding instruments used in guest checkout flow and they are not part of user wallet yet.\n */\nconst PotentialCard = Feature({\n id: 'ADD_POTENTIAL_CARD',\n queries: [\n {\n query: POTENTIAL_CARDS_QUERY,\n variables: { token: getToken() },\n },\n {\n // Need this query to fetch user default billingAddress for adding a card\n // fetchPolicy: cache-only returns undefined in some use-cases on local testing\n // so fetching from server is safer\n query: BILLING_ADDRESS_QUERY,\n variables: { token: getToken() },\n },\n ],\n subscribeTo: ['BANK_AS_DEBIT'],\n LoadingComponent: InterstitialLoading,\n contingencies: ['EXPIRED_CREDIT_CARD', 'NEED_CREDIT_CARD'],\n})(() => import('./PotentialCard'));\n\nexport default PotentialCard;\n","import Feature from '@/components/Feature';\nimport { getToken } from '@paypalcorp/c3-shared-globals';\nimport Loading from '@/components/PayWith/Loading';\nimport { SPLIT_TENDER_CART_QUERY } from './query.gql';\n\n/**\n * Component for Split Tender Edit UI (select/input).\n */\nconst SplitTender = Feature({\n id: 'PAY_WITH_SPLIT_TENDER',\n subscribeTo: ['SPLIT_TENDER_GATE'],\n LoadingComponent: Loading,\n queries: [\n {\n query: SPLIT_TENDER_CART_QUERY,\n variables: { token: getToken() },\n fetchPolicy: 'cache-only',\n },\n ],\n})(() => import('./PayWithSplitTender'));\n\nexport default SplitTender;\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-font-weight-bold\":\"700\",\"ppuiFontWeightBold\":\"700\",\"split-toggle-label\":\"SplitTenderToggle_split-toggle-label_3eqEs\",\"splitToggleLabel\":\"SplitTenderToggle_split-toggle-label_3eqEs\"};","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-font-weight-bold\":\"700\",\"ppuiFontWeightBold\":\"700\",\"ppui-font-size-md\":\"0.9375rem\",\"ppuiFontSizeMd\":\"0.9375rem\",\"header\":\"SplitTenderHeader_header_3B27j\",\"toggle-header\":\"SplitTenderHeader_toggle-header_1rqbY\",\"toggleHeader\":\"SplitTenderHeader_toggle-header_1rqbY\",\"header-text\":\"SplitTenderHeader_header-text_3Pdvc\",\"headerText\":\"SplitTenderHeader_header-text_3Pdvc\",\"change-link\":\"SplitTenderHeader_change-link_3nQUg\",\"changeLink\":\"SplitTenderHeader_change-link_3nQUg\"};","// 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 get from 'dlv';\nimport gql from 'graphql-tag';\n\nimport Feature from '@/components/Feature';\nimport { getToken } from '@paypalcorp/c3-shared-globals';\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\nconst shouldLoadFeatureComponent = (props) => {\n const backup = get(props, 'customProps.backup');\n const currencyConversion = get(props, 'customProps.primaryCurrencyConversion');\n\n return backup && currencyConversion;\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 */\nconst BackupFundingDisclaimer = Feature({\n id: 'BACKUP_FUNDING_DISCLAIMER',\n shouldLoadFeatureComponent,\n queries: [{ query: BUFS_DISCLAIMER_QUERY, variables: { token: getToken() } }],\n})(() => import('./BackupFundingDisclaimer'));\n\nexport default BackupFundingDisclaimer;\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","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\"};","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-size-xl\":\"2.5rem\",\"ppuiSizeXl\":\"2.5rem\",\"container\":\"PayWith_container_1uz6G\",\"min-height\":\"PayWith_min-height_a2prH\",\"minHeight\":\"PayWith_min-height_a2prH\",\"link\":\"PayWith_link_1hmIw\",\"header\":\"PayWith_header_3w1y1\"};","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","import React, { useEffect } from 'react';\nimport { triggerLoaded as logTriggerLoaded } from '@/components/SplitTender/logging';\nimport { Switch } from '@paypalcorp/pp-react';\nimport { updateFeature } from '@paypalcorp/c3-util-store';\nimport getContent from '@/lib/content';\nimport { useFeature } from '@/components/Feature/hooks';\nimport styles from './styles.css';\n\nexport default function () {\n const featureSplitTenderGate = useFeature('SPLIT_TENDER_GATE');\n const showSplitExperience = featureSplitTenderGate?.data?.showSplitExperience;\n\n useEffect(() => {\n logTriggerLoaded('TOGGLE');\n }, []);\n\n return (\n \n updateFeature('SPLIT_TENDER_GATE', {\n data: {\n showSplitExperience: !showSplitExperience,\n isSplitReady: false,\n showSplitContinue: false,\n },\n })\n }\n checked={showSplitExperience}\n onLabel={getContent('splitTender.cta.main')}\n offLabel={getContent('splitTender.cta.main')}\n className={styles.splitToggleLabel}\n />\n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport getContent from '@/lib/content';\nimport { updateFeature } from '@paypalcorp/c3-util-store';\nimport { useFeature } from '@/components/Feature/hooks';\nimport {\n payWithChangeClicked as logPayWithChangeClicked,\n} from '@/components/SplitTender/logging';\nimport AddOption from '@/components/AddOption';\nimport SplitTenderToggle from '../SplitTenderToggle';\nimport styles from './styles.css';\n\nconst SplitTenderHeader = ({ showToggle }) => {\n const featureSplitTenderGate = useFeature('SPLIT_TENDER_GATE');\n\n const {\n data: {\n splitTenderHeaderId,\n showSplitExperience,\n isSplitReady = false,\n } = {},\n enabled = false,\n } = featureSplitTenderGate || {};\n\n return (\n
\n {showSplitExperience &&\n
\n {!!splitTenderHeaderId && getContent(splitTenderHeaderId)}\n
\n }\n {isSplitReady &&\n
\n {\n logPayWithChangeClicked();\n updateFeature('SPLIT_TENDER_GATE', { data: { isSplitReady: false } });\n }}\n withPlusIcon={false}\n />\n
\n }\n {showToggle &&\n \n }\n
\n )\n};\n\nSplitTenderHeader.propTypes = {\n showToggle: PropTypes.bool\n};\n\nexport default SplitTenderHeader;","import Feature from '@/components/Feature';\nimport { memoize } from '@paypalcorp/c3-util-lang';\nimport get from 'dlv';\n\nconst shouldLoadFeatureComponent = memoize(({ enabled, eligible }) => {\n return enabled && eligible;\n});\n\n/**\n * SelectFiLink component is responsible for activating SelectFi, in case the\n * user wants to select a different funding instrument for his transaction\n */\nconst SelectFiLink = Feature({\n id: 'SELECT_FI_LINK',\n subscribeTo: ['SELECT_FI'],\n shouldLoadFeatureComponent: (props) => {\n const { enabled, eligible } = get(props, 'features.SELECT_FI', {});\n return shouldLoadFeatureComponent({ enabled, eligible });\n },\n})(() => import('./SelectFiLink'));\n\nexport default SelectFiLink;\n","import React from 'react';\nimport gql from 'graphql-tag';\nimport { getToken } from '@paypalcorp/c3-shared-globals';\nimport {\n getSplitBalancePlan,\n getSelectedFundingOption,\n getIncompleteDisallowedInstruments,\n} from '@paypalcorp/c3-util-store';\nimport {\n FundingOptionFragment,\n DisallowedInstrumentFragment,\n} from '@paypalcorp/c3-graphql-fragments';\nimport { usePayContext } from '@/components/ContextProviders';\nimport { lazyComponent } from '@/lib/lazyLoad';\nimport { useQuery } from '@apollo/react-hooks';\n\nconst LazySplitBalance = lazyComponent(() => import('./SplitBalance'), {\n id: 'SPLIT_BALANCE',\n loading: () =>
,\n});\n\nexport const splitBalanceQuery = gql`\n ${FundingOptionFragment}\n ${DisallowedInstrumentFragment}\n query SplitBalanceQuery($token: String!) {\n checkoutSession(token: $token) {\n disallowedInstruments {\n ...DisallowedInstrumentFragment\n }\n fundingOptions(returnAllPlans: true, groupSourcesOnType: INCENTIVE) {\n ...FundingOptionFragment\n }\n }\n }\n`;\n\nconst SplitBalance = () => {\n const { loading, data } = useQuery(splitBalanceQuery, {\n fetchPolicy: 'cache-only',\n variables: { token: getToken() },\n });\n const payContext = usePayContext();\n const { selectedFundingOptionId, usePayAfterDelivery, useSplitBalance } = payContext.payState;\n const checkoutSession = data?.checkoutSession;\n const fundingOptions = checkoutSession?.fundingOptions || [];\n const disallowedInstruments = checkoutSession?.disallowedInstruments || [];\n\n const selectedFundingOption = getSelectedFundingOption(fundingOptions, selectedFundingOptionId);\n const splitBalancePlan = getSplitBalancePlan(selectedFundingOption);\n const hasIncompleteDisallowedInstruments = !getIncompleteDisallowedInstruments(\n disallowedInstruments\n );\n\n // Determine split balance eligibility\n // PayPal balance should be disabled if current disallowedInstruments contain PayPal Balance + CIP_INCOMPLETE reason\n // TODO: https://github.paypal.com/Checkout-R/checkoutuinodeweb/issues/1051\n const splitBalanceEligible =\n splitBalancePlan && !usePayAfterDelivery && hasIncompleteDisallowedInstruments;\n\n if (!splitBalanceEligible && useSplitBalance) {\n // Unset split balance if the FI is no longer eligible\n payContext.setPayState({\n useSplitBalance: false,\n });\n }\n\n React.useEffect(() => {\n return () => {\n payContext.setPayState({\n useSplitBalance: false,\n });\n };\n }, []);\n\n if (!splitBalanceEligible) {\n return null;\n }\n\n return ;\n};\n\nexport default SplitBalance;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport styles from './styles.css';\n\nexport default function Link(props) {\n const tag = props.href ? 'a' : 'button';\n let newProps = props;\n\n if (tag === 'button') {\n newProps = {\n ...props,\n tabIndex: 0,\n className: cx(styles.link, props.className),\n type: 'button',\n };\n }\n\n return React.createElement(tag, newProps, props.children);\n}\n\nLink.propTypes = {\n href: PropTypes.string,\n className: PropTypes.string,\n};\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"ppui-color-blue-600\":\"#0070ba\",\"ppuiColorBlue600\":\"#0070ba\",\"ppui-color-blue-800\":\"#003087\",\"ppuiColorBlue800\":\"#003087\",\"link\":\"Link_link_12w0g\"};","import React from 'react';\nimport classNames from 'classnames';\nimport { logger } from '@paypalcorp/c3-util-logger';\nimport PropTypes from 'prop-types';\nimport { prefetchData } from '@paypalcorp/c3-util-store';\nimport { PlusSVG } from '@/shared/components/Icons';\nimport Link from '@/shared/components/Link';\nimport styles from './styles.css';\n\nfunction AddOption({\n href,\n label,\n action,\n containerClassName,\n onClick,\n dataTestId,\n getPayload,\n linkClassName,\n onMouseOver,\n withPlusIcon,\n prefetchQueries,\n getPayloadParams,\n textClassName,\n ...rest\n}) {\n const shouldFetch = prefetchQueries.length !== 0;\n\n const handleClick = (e) => {\n // Analytics wants to measure how long the user action took, logging the time right at the time of click\n\n if (getPayload) {\n logger.fpti(action, getPayload({ action, client_epoch_ts: Date.now(), ...getPayloadParams }));\n }\n\n if (!href && onClick) {\n e && e.preventDefault();\n onClick(e);\n }\n };\n\n const handlePrefetch = (e) => {\n e && e.preventDefault();\n\n if (!shouldFetch) {\n return;\n }\n\n return prefetchData({ resources: prefetchQueries })(e);\n };\n\n return (\n
\n \n {withPlusIcon && }\n {label}\n \n
\n );\n}\n\nAddOption.defaultProps = {\n withPlusIcon: true,\n prefetchQueries: [],\n};\n\nAddOption.propTypes = {\n href: PropTypes.string,\n onClick: PropTypes.func,\n action: PropTypes.string,\n onMouseOver: PropTypes.func,\n dataTestId: PropTypes.string,\n withPlusIcon: PropTypes.bool,\n prefetchQueries: PropTypes.array,\n label: PropTypes.oneOfType([PropTypes.string.isRequired, PropTypes.object.isRequired]).isRequired,\n getPayload: PropTypes.func,\n getPayloadParams: PropTypes.object,\n};\n\nexport default AddOption;\n","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"container\":\"AddOption_container_1YSQc\",\"link\":\"AddOption_link_8_YEt\",\"textContent\":\"AddOption_textContent_wSzDs\"};","import { updateFeature } from '@paypalcorp/c3-util-store';\n\n/**\n * Method created to reset split tender related data\n */\nexport const resetSplitTenderData = () => {\n updateFeature('SPLIT_TENDER_GATE', {\n data: {\n userCanSplit: false,\n isSplitReady: false,\n showSplitContinue: false,\n showSplitExperience: false,\n selectedBackupFundingInstrument: undefined,\n selectedSplitFundingInstruments: undefined,\n },\n });\n};\n\n/**\n * Method responsible for returning a list of fi ids that a elegible\n * for being a backup/primary fi.\n */\nexport const getEligibleForPrimaryFiIdList = (splitFundingOptions) => {\n return splitFundingOptions\n .filter((fundingOption) => fundingOption.isEligibleForPrimaryInstrument)\n .map((fundingOption) => fundingOption.id);\n};\n\nexport const isSplitTenderActive = (SplitTenderGate) => {\n return SplitTenderGate?.experiment?.resolvedTreatment === 'TREATMENT_1';\n};\n\nexport const getSplitOptionsAndBackup = ({\n splitFundingOptions,\n selectedSplitFundingInstruments,\n selectedBackupFundingInstrument,\n}) => {\n const backupIsOneOfSelected = !!selectedSplitFundingInstruments.find(\n ({ id }) => id === selectedBackupFundingInstrument\n );\n\n if (backupIsOneOfSelected) {\n return selectedSplitFundingInstruments;\n }\n\n const backupFi = splitFundingOptions.find(({ id }) => id === selectedBackupFundingInstrument);\n\n if (!backupFi) {\n // This should never happen.\n return selectedSplitFundingInstruments;\n }\n\n return [...selectedSplitFundingInstruments, { ...backupFi, value: 0 }];\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 gql from 'graphql-tag';\n\nexport const LOCALE_PHONE_QUERY = gql`\n query LocalePhoneQuery($country: CountryCodes!, $language: CheckoutContentLanguageCode!) {\n localeMetadata {\n territories(countryCode: $country, languageCode: $language) {\n code\n internationalDialingCode\n }\n phone(countryCode: $country, languageCode: $language) {\n patterns {\n mobile\n }\n masks {\n mobile\n }\n }\n }\n }\n`;\n\nexport const GET_SUPPORTED_CARDS_QUERY = gql`\n query GetSupportedCards($token: String!, $country: CountryCodes!) {\n checkoutSession(token: $token) {\n allowedCardIssuers(country: $country)\n }\n }\n`;\n","import gql from 'graphql-tag';\nimport { DisallowedInstrumentFragment } from '@paypalcorp/c3-graphql-fragments';\n\nexport const ADD_FI_LINK = gql`\n ${DisallowedInstrumentFragment}\n query AddFILinkFundingOptions($token: String!) {\n checkoutSession(token: $token) {\n disallowedInstruments {\n ...DisallowedInstrumentFragment\n }\n fundingOptions(returnAllPlans: true, groupSourcesOnType: INCENTIVE) {\n id\n fundingInstrument {\n type\n }\n }\n merchant {\n country\n isGambling\n }\n }\n }\n`;\n","import Feature from '@/components/Feature';\nimport { getToken, getCountry } from '@paypalcorp/c3-shared-globals';\nimport { isUSGambling, hasAllowedCardIssuerTypes } from '@/lib/eligibility';\nimport { isSingleFundingOptionByType } from '@paypalcorp/c3-util-store';\nimport { GET_SUPPORTED_CARDS_QUERY } from '@/components/AddFI/AddCard/query.gql';\nimport { ADD_FI_LINK } from './query.gql';\n\nexport function canAddFundingOption({\n allowedCardIssuers = [],\n fundingOptions = [],\n hasAllowedCardTypesContingency,\n hasContingencies,\n isGamblingMerchant,\n merchantCountry,\n showCloseBtn,\n}) {\n const isGambling = isUSGambling({\n merchantCountry,\n merchantIsGambling: isGamblingMerchant,\n });\n const isFullyFundedByIncentives = isSingleFundingOptionByType({\n fundingOptions,\n type: 'INCENTIVE',\n });\n const hasAllowedCardTypes = hasAllowedCardIssuerTypes({\n allowedCardTypes: allowedCardIssuers,\n hasContingency: hasAllowedCardTypesContingency,\n });\n const hasFundingOptionsOrContingencies = Boolean(fundingOptions?.length || hasContingencies);\n\n // In case of potential-card treatment, if there are no funding options, we want to display add_fi\n // link to the user to go back to interstitial and add a card via BANK_AS_DEBIT feature\n const isPotentialCardFeatureVisible = showCloseBtn;\n\n const canAddFI =\n !isGambling &&\n !isFullyFundedByIncentives &&\n hasAllowedCardTypes &&\n hasFundingOptionsOrContingencies;\n\n return isPotentialCardFeatureVisible || canAddFI;\n}\n\nexport const eligibility = (props) => {\n const { contingencies, customProps, features } = props;\n const { isGamblingMerchant, merchantCountry } = customProps;\n const { allowedCardIssuers = [] } = props?.allQueryData?.[0]?.data?.checkoutSession ?? {};\n const { fundingOptions = [] } = props?.allQueryData?.[1]?.data?.checkoutSession ?? {};\n const hasContingencies =\n contingencies.NEED_CREDIT_CARD ||\n contingencies.NEED_SHIPPING_ADDRESS ||\n contingencies.NEED_CREDIT_CARD_OR_BANK_ACCOUNT ||\n contingencies.EXPIRED_CREDIT_CARD;\n\n return canAddFundingOption({\n allowedCardIssuers,\n fundingOptions,\n hasAllowedCardTypesContingency: contingencies.ALLOWED_CARD_TYPES_COULD_NOT_BE_RETRIEVED,\n hasContingencies,\n isGamblingMerchant,\n merchantCountry,\n showCloseBtn: features?.ADD_FI?.data?.showCloseBtn,\n });\n};\n\nexport const shouldLoadFeatureComponent = (props) => {\n const { features } = props;\n return eligibility(props) && !(features.SELECT_FI.enabled && features.SELECT_FI.eligible);\n};\n\nexport const options = {\n id: 'ADD_FI_LINK',\n queries: [\n {\n query: GET_SUPPORTED_CARDS_QUERY,\n variables: { token: getToken(), country: getCountry() },\n context: {\n skipFallback: true,\n },\n },\n {\n query: ADD_FI_LINK,\n variables: { token: getToken() },\n fetchPolicy: 'cache-only',\n },\n ],\n subscribeTo: [\n 'ADD_FI',\n 'SELECT_FI',\n 'ADD_BANK_OR_CARD',\n 'BANK_AS_DEBIT',\n 'SELECT_COMBO_CARD_TYPE',\n 'ADD_POTENTIAL_CARD',\n ],\n contingencies: [\n 'NEED_CREDIT_CARD',\n 'NEED_SHIPPING_ADDRESS',\n 'NEED_CREDIT_CARD_OR_BANK_ACCOUNT',\n 'ALLOWED_CARD_TYPES_COULD_NOT_BE_RETRIEVED',\n 'EXPIRED_CREDIT_CARD',\n ],\n shouldLoadFeatureComponent,\n};\n\nconst AddFILink = Feature(options)(() => import('./AddFILink'));\n\nexport default AddFILink;\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 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 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 { useEffect } from 'react';\nimport { usePrevious } from 'react-use';\n\nimport { logger } from '@paypalcorp/c3-util-logger';\n\nimport { getToken } from '@paypalcorp/c3-shared-globals';\nimport { updateContingency, updateFeature } from '@paypalcorp/c3-util-store';\nimport { logEligibility } from '@/lib/eligibility';\nimport { useFeature } from '@/components/Feature/hooks';\nimport { threeDsExperienceVars } from '@paypalcorp/c3-util-threed-ds';\nimport { handleCryptoSellContingency } from '@/components/Crypto';\nimport { isSplitTenderActive } from '@/components/SplitTender/utils';\n\nexport const usePaymentContingencyHandler = (contingencies, allQueryData) => {\n const splitTenderGate = useFeature('SPLIT_TENDER_GATE');\n const prevContingencies = usePrevious(contingencies);\n\n useEffect(() => {\n const handleContingency = async () => {\n updateFeature('SPINNER', { visible: true });\n\n const clearContingencies = (contingencies = []) => {\n contingencies.forEach((contingency) => {\n updateContingency(contingency, {\n clear: true,\n });\n });\n };\n\n try {\n const queryVars = {\n withSplitTender: isSplitTenderActive(splitTenderGate),\n ...threeDsExperienceVars({ token: getToken() }),\n };\n\n await allQueryData[0].refetch(queryVars);\n\n updateFeature('SPINNER', { visible: false });\n\n if (contingencies?.SELL_CRYPTOCURRENCY_ERROR) {\n logger.cal.info('CRYPTO_ERROR_SELL_CONTINGENCY');\n\n handleCryptoSellContingency();\n }\n\n clearContingencies([\n 'CC_AUTHORIZATION_DECLINED',\n 'CC_PROCESSOR_DECLINED',\n 'SELL_CRYPTOCURRENCY_ERROR',\n ]);\n } catch (err) {\n logger.cal.error('PAY_WITH_REFETCH_ERROR', err);\n\n clearContingencies([\n 'CC_AUTHORIZATION_DECLINED',\n 'CC_PROCESSOR_DECLINED',\n 'SELL_CRYPTOCURRENCY_ERROR',\n ]);\n }\n };\n\n if (\n (!prevContingencies?.CC_AUTHORIZATION_DECLINED && contingencies?.CC_AUTHORIZATION_DECLINED) ||\n (!prevContingencies?.CC_PROCESSOR_DECLINED && contingencies?.CC_PROCESSOR_DECLINED) ||\n (!prevContingencies?.SELL_CRYPTOCURRENCY_ERROR && contingencies?.SELL_CRYPTOCURRENCY_ERROR)\n ) {\n handleContingency();\n }\n }, [allQueryData, contingencies, prevContingencies, splitTenderGate]);\n};\n\nexport const useEligibilityLogger = (checkoutSession, eligibility) => {\n const prevIsEligible = usePrevious(eligibility.eligible);\n\n useEffect(() => {\n if (eligibility.eligible !== prevIsEligible) {\n logEligibility({ checkoutSession, eligibility });\n }\n }, [checkoutSession, eligibility, prevIsEligible]);\n};\n","import React, { useEffect } from 'react';\n\nimport { getFallback } from '@paypalcorp/c3-shared-globals';\nimport { countValues } from '@paypalcorp/c3-util-lang';\nimport { logger, REVIEW_PAYLOAD } from '@paypalcorp/c3-util-logger';\n\nimport {\n useEligibilityContext,\n usePayContext,\n usePayLaterContext,\n} from '@/components/ContextProviders';\nimport Incentives from '@/components/Incentives';\nimport SplitBalance from '@/components/SplitBalance';\nimport CheckoutError from '@/lib/checkoutError';\nimport { LANDING_PAGE } from '@/lib/landingPage';\nimport PotentialCard from '../AddFI/PotentialCard';\n\nimport { useEligibilityLogger, usePaymentContingencyHandler } from './hooks';\nimport { FundingInstrumentList } from './FundingInstrumentList';\nimport Loading from './Loading';\nimport { isPPCFundingInstrument } from '@paypalcorp/c3-util-store';\nimport { PAGE, triggerInitialCPLEvent } from '@/lib/cplUtils';\n\n/**\n * 1. Renders list of funding instruments\n * 2. Auto updates selected fi id / preferred fi id based previous vs new funding options\n * For example, after adding new Card we need to set it as a new selected fi\n * 3. handles such contingencies as \"CC_AUTHORIZATION_DECLINED\"\n */\nconst PayWith = ({\n allFundingOptions,\n allQueryData,\n checkoutSession,\n checkoutSessionFundingOptions = [],\n contingencies,\n eligibility,\n payWithFeature,\n featureDependencies,\n fundingOptions = [],\n isPPCAvailableAsFI,\n isSingleFI,\n isPotentialCardFeatureVisible,\n}) => {\n const { eligible, reason } = eligibility;\n const { isOfferSelected } = usePayLaterContext();\n const { selectedFundingOption } = usePayContext();\n const { showControlCreditOffers } = useEligibilityContext();\n\n useEffect(() => {\n /**\n * logging a count of the available cards by subtype :)\n * we're looking at initially targeting the option to split a payment between multiple Funding Instruments soon,\n * with the focus strategically to look at Prepaid cards first\n */\n const fiCountByType = countValues(\n allFundingOptions,\n (fi) => fi.fundingInstrument.instrumentSubType\n );\n\n logger.cal.info('FI_COUNT_BY_TYPE', fiCountByType);\n logger.cal.info(`FUNDING_OPTIONS_LENGTH_${checkoutSessionFundingOptions.length}`);\n\n // Trigger CPL event once pay with component is loaded\n triggerInitialCPLEvent(PAGE.REVIEW);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n usePaymentContingencyHandler(contingencies, allQueryData);\n\n useEligibilityLogger(checkoutSession, eligibility);\n\n if (!eligible) {\n const message = `ineligible_${reason}`;\n logger.fpti(message, REVIEW_PAYLOAD({ action: message }));\n CheckoutError({ message });\n }\n\n // Added potential-card visbility to check avoid showing loading component incase of potential-cards treatmemt\n // we will be displaying potential-cards on the RYP page, incase of no fis\n if (\n (!isPotentialCardFeatureVisible && !eligible && getFallback().redirectOnError) ||\n // NOTE: below logic might seem to be confusing, but is needed for 3DS & CVV\n // removing `fundingOptions.length === 0` check will break both 3DS and CVV\n // flow tests\n (fundingOptions.length === 0 &&\n !contingencies.NEED_CREDIT_CARD &&\n !contingencies.NEED_CREDIT_CARD_OR_BANK_ACCOUNT &&\n !isPPCAvailableAsFI)\n ) {\n return ;\n }\n const showPotentialCard = fundingOptions.length === 0 && isPotentialCardFeatureVisible;\n const showIncentives =\n (!isOfferSelected && !isPPCFundingInstrument(selectedFundingOption?.fundingInstrument)) ||\n showControlCreditOffers;\n\n return (\n <>\n {showIncentives ? : null}\n \n {showPotentialCard && }\n \n \n );\n};\n\nexport default PayWith;\n","import React, { useEffect } from 'react';\n\nimport { heading as headingStyles } from '@/App.css';\nimport SelectFiLink from '@/components/SelectFiLink';\nimport AddFILink from '@/components/AddFILink';\nimport getContent from '@/lib/content';\nimport PayWithSplitTender from '@/components/SplitTender';\nimport SplitTenderHeader from '../SplitTender/SplitTenderHeader';\nimport PayWith from './PayWith';\nimport styles from './PayWith.css';\nimport { mapPayWithDataToProps } from './utils';\nimport { usePayContext, useEligibilityContext } from '@/components/ContextProviders';\nimport { updateFeature } from '@paypalcorp/c3-util-store';\n\nconst PayWithContainer = (props) => {\n const payContext = usePayContext();\n const eligibilityContext = useEligibilityContext();\n const { selectedFundingOptionId, forceRadioButton, forceAsFirstId } = payContext.payState;\n\n const { allQueryData, customProps } = props;\n const {\n showTitle = true,\n showAddFiLink = true,\n showSelectedOnly = false,\n selectFiLink,\n } = customProps;\n const {\n cart: { billingChargePattern } = {},\n merchant: { country: merchantCountry, isGambling: isGamblingMerchant } = {},\n checkoutSessionType,\n } = allQueryData?.[0]?.data.checkoutSession || {};\n const {\n allFundingOptions,\n checkoutSession: { fundingOptions: checkoutSessionFundingOptions = [] } = {},\n checkoutSession = {},\n contingencies,\n eligibility,\n payWithFeature,\n featureDependencies,\n fundingOptions = [],\n isSingleFI,\n hideCart,\n cartCategory,\n isPotentialCardFeatureVisible,\n isPPCAvailableAsFI,\n showSplitExperience,\n showSplitTenderToggle,\n } = mapPayWithDataToProps(\n props,\n selectedFundingOptionId,\n forceRadioButton,\n eligibilityContext,\n showSelectedOnly,\n forceAsFirstId\n );\n\n useEffect(() => {\n const preferredId = allFundingOptions.find((fi) => fi?.fundingInstrument?.isPreferred)\n ?.fundingInstrument?.id;\n if (preferredId) {\n updateFeature('PAY_WITH', { data: { preferredId } });\n }\n }, [allFundingOptions]);\n\n return (\n <>\n
\n
\n {showTitle && !showSplitExperience ? (\n

\n {cartCategory === 'DONATION'\n ? getContent('fundingInstruments.donateWith')\n : getContent('fundingInstruments.payWith')}\n

\n ) : null}\n {showSplitTenderToggle && !showSelectedOnly && }\n {selectFiLink || }\n
\n {showSplitExperience ? (\n \n ) : (\n \n )}\n
\n {showAddFiLink ? (\n \n ) : null}\n \n );\n};\n\nexport default PayWithContainer;\n","import { eligible as eligibleForHermione } from '@/lib/eligibility';\nimport { getIsPayNowUserActionFlow } from '@/lib/userAction';\nimport { filterOutCreditInstruments } from '@/lib/credit';\nimport { isPayLaterFundingInstrument } from '@paypalcorp/c3-util-store';\n\nexport const mapPayWithDataToProps = (\n { allQueryData, feature = {}, features = {}, contingencies = {} },\n selectedFundingOptionId,\n forceRadioButton,\n eligibilityContext,\n showSelectedOnly,\n forceAsFirstId\n) => {\n const checkoutSession = allQueryData[0]?.data?.checkoutSession;\n let fundingOptions = checkoutSession?.fundingOptions ?? [];\n const cartCategory = checkoutSession?.cart?.category;\n let allFundingOptions = fundingOptions;\n const { showControlCreditOffers } = eligibilityContext;\n /**\n * TEMP fix: hide all preferred labels if there is more than 1 (currently happens in a PAD case)\n * TODO: fix the bug in the xobuyer. Basically \"isPreferred\" for PAD is different\n * from \"isPreferred\" for IACH so when we combine instruments isPreferred from PAD should be ignored\n */\n const isMultiplePreferredFis =\n fundingOptions.filter((fi) => fi.fundingInstrument.isPreferred).length > 1;\n if (isMultiplePreferredFis) {\n fundingOptions = fundingOptions.map((fi) => ({\n ...fi,\n fundingInstrument: {\n ...fi.fundingInstrument,\n isPreferred: false,\n },\n }));\n }\n\n const presentCreditInstruments = (fundingOption) =>\n isPayLaterFundingInstrument(fundingOption?.fundingInstrument);\n\n /**\n * The features.SELECT_FI.enabled flag is used to determine if a funding option was chosen by the Choice Feature (SelectFi).\n * If it was, that means that we need to filter and display only the chosen funding option in this component.\n */\n if (features.SELECT_FI.enabled && features.SELECT_FI.eligible) {\n fundingOptions = fundingOptions.filter((fi) => {\n return fi.id === selectedFundingOptionId;\n });\n }\n\n /**\n * For 2nd button credit flows, the user has already chosen to use credit,\n * so we show it as the first funding option.\n */\n if (forceAsFirstId) {\n fundingOptions = fundingOptions.reduce((sorted, option) => {\n if (option.id === forceAsFirstId) {\n sorted.unshift(option);\n } else {\n sorted.push(option);\n }\n return sorted;\n }, []);\n }\n\n if (showSelectedOnly) {\n fundingOptions = fundingOptions.filter((option) => option.id === selectedFundingOptionId);\n }\n\n let isSingleFI = fundingOptions.length === 1;\n if (\n features.CREDIT_OFFER_AS_FI_DE.data.presentmentType === 'Radio' ||\n (features.CREDIT_OFFER_AS_FI.enabled && forceRadioButton) ||\n !showControlCreditOffers\n ) {\n /* In this case, the credit banner will be presented as an FI, so\n * even if the user has only 1 FI, we would like to render it as a Radio button\n * (non-single FI style)\n */\n isSingleFI = false;\n }\n\n const eligibility = eligibleForHermione({ checkoutSession: checkoutSession || {} });\n const userAction = checkoutSession?.userAction;\n const hideCart = checkoutSession?.flags?.hideCart ?? false;\n\n const featureSplitTenderGate = features.SPLIT_TENDER_GATE;\n const { splitFundingOptions, showSplitExperience = false } = featureSplitTenderGate?.data || {};\n const isSplitToggle = featureSplitTenderGate.enabled && !!splitFundingOptions?.length;\n const showSplitTenderToggle = !eligibilityContext.showTabs && isSplitToggle;\n const isPPCAvailableAsFI = Boolean(allFundingOptions.filter(presentCreditInstruments));\n\n if (!showControlCreditOffers && !showSelectedOnly) {\n fundingOptions = fundingOptions.filter(filterOutCreditInstruments);\n allFundingOptions = allFundingOptions.filter(filterOutCreditInstruments);\n }\n\n return {\n fundingOptions,\n checkoutSession,\n payWithFeature: feature,\n featureDependencies: features,\n contingencies,\n eligibility,\n isSingleFI,\n allFundingOptions,\n hideCart: !getIsPayNowUserActionFlow(userAction) && hideCart,\n cartCategory,\n isPotentialCardFeatureVisible: features?.ADD_FI?.data?.showCloseBtn,\n isPPCAvailableAsFI,\n showSplitExperience,\n showSplitTenderToggle,\n };\n};\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_\"};","import gql from 'graphql-tag';\nimport { FundingOptionFragment } from '@paypalcorp/c3-graphql-fragments';\n\nexport const GET_INCENTIVES_QUERY = gql`\n ${FundingOptionFragment}\n query IncentiveQuery($token: String!) {\n checkoutSession(token: $token) {\n flags {\n isIncentivePresent\n }\n fundingOptions(returnAllPlans: true, groupSourcesOnType: INCENTIVE) {\n ...FundingOptionFragment\n }\n merchant {\n name\n }\n }\n }\n`;\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 { isHideCardFlagSet } = 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 shouldShowAmount =\n isSelected && (!isHideCardFlagSet || isCryptoFi) && !isPPCInstallmentWithIncentive;\n\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 gql from 'graphql-tag';\n\n/**\n * query to fetch potential cards of guest member checkout exp\n */\nexport const POTENTIAL_CARDS_QUERY = gql`\n query PotentialCardsQuery($token: String!) {\n potentialCards(token: $token) {\n id\n name\n type\n expirationDate\n instrumentSubType\n lastDigits\n issuerProductDescription\n source\n image {\n url {\n href\n }\n width\n height\n }\n }\n }\n`;\n","import { getToken } from '@paypalcorp/c3-shared-globals';\nimport Feature from '@/components/Feature';\nimport { GET_INCENTIVES_QUERY } from './query.gql';\n\nconst shouldLoadFeatureComponent = ({\n allQueryData: [\n {\n data: { checkoutSession },\n },\n ],\n}) => {\n const { flags = {} } = checkoutSession || {};\n return flags.isIncentivePresent;\n};\n\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 */\nconst Incentives = Feature({\n id: 'INCENTIVES',\n shouldLoadFeatureComponent,\n queries: [\n {\n query: GET_INCENTIVES_QUERY,\n variables: { token: getToken() },\n fetchPolicy: 'cache-only',\n },\n ],\n})(() => import('./Incentives'));\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"],"sourceRoot":""}