{"version":3,"file":"donate.89fe0c986b538a145126.js","mappings":"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","sources":["webpack:///./components/amount/PresetAmountRow.js","webpack:///./components/amountWrapper.js","webpack:///./components/anonymousDonation/anonymousCheckbox.js","webpack:///./components/guest/WithDonate.js","webpack:///./components/NoteFieldError.js","webpack:///./components/note.js","webpack:///./components/threeDS/ThreeDSSpinner.js","webpack:///./components/threeDS/ThreeDSDeviceDataCollection.js","webpack:///./components/threeDS/ThreeDSIframe.js","webpack:///./components/threeDS/ThreeDSContainer.js","webpack:///./guest-payment-components/DonateGiftAidHowItWorksOverlay.js","webpack:///./guest-payment-components/DonateGiftAid.js","webpack:///./components/nextButton.js","webpack:///../../lib/geoUtils.js","webpack:///./components/landing/OneTouchNextButton.js","webpack:///./components/guestButton.js","webpack:///./components/programs/Programs.js","webpack:///./components/recurring-checkbox/RecurringOverlay.js","webpack:///./components/NotTaxDeductibleLegalText.js","webpack:///./components/coverFee/coverFeeCheckbox.js","webpack:///../../lib/constants.js","webpack:///./components/recurring/RecurringInfo.js","webpack:///./components/recurring/checkbox/recurringCheckbox.js","webpack:///./components/recurring/selectionGroup/segmentedController.js","webpack:///./components/recurring/selectionGroup/singleSelection.js","webpack:///./components/recurring/recurring.js","webpack:///./pages/landing/landing.js","webpack:///./components/WhosDonatedBanner.js","webpack:///./components/Flyout.js","webpack:///./components/hooks/useInterval.js","webpack:///./utility/donorWall.js","webpack:///./utility/isMobile.js","webpack:///./setup/clientConstants.js","webpack:///./pages/landing/campaignLanding.js","webpack:///./react-card-security-code/index.js","webpack:///./containers/cvv-component.js","webpack:///./pages/guest/guestReviewComponents/PaymentInformation.js","webpack:///./components/currencyConversion/CurrencyConversionModal.js","webpack:///./utility/accessibilityUtils.js","webpack:///./pages/guest/guestReviewComponents/CrossBorder.js","webpack:///./pages/guest/guestReviewComponents/FeePricing.js","webpack:///./pages/guest/GuestReview.js","webpack:///./pages/guest/confirmation.js","webpack:///./pages/error/FullPageError.js","webpack:///./pages/error/paymentError.js","webpack:///./pages/error/UnilateralError.js","webpack:///./pages/error/threeDSError.js","webpack:///./components/CaptureOrder.js","webpack:///./components/CancelAndRedirectOrder.js","webpack:///./routes/router.js","webpack:///./utility/bootstrap.js","webpack:///./utility/card-utils.js","webpack:///./utility/lazyLoader.js"],"sourcesContent":["import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { PresetAmounts } from '@paypalcorp/donate-react';\nimport templateData from '../../utility/getTemplateData';\nimport * as AppActions from '../../actions/AppActions';\nimport AppStore from '../../stores/AppStore';\nimport {\n isOptInCoverFee,\n shouldSelectPresetAmount,\n} from '../coverFee/feeUtils';\nimport { formatAmountFromServerDNW, isRightSymbol } from './amountUtils';\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { trackSelectedPresetAmount } from '../../fpti/helper';\n\nfunction PresetAmountRow(props) {\n const worldready = useContext(WorldReadyContext);\n const presetOther = new MessageFormat(worldready, {\n id: 'common.amount.amount.presetOther',\n }).format();\n const placeholderOtherAmount = new MessageFormat(worldready, {\n id: 'common.amount.amount.placeholderOtherAmount',\n }).format();\n\n const getSelectedOption = () => {\n if (AppStore.getDonationAmountType() === 'preset') {\n return AppStore.getDonationAmount();\n } else if (AppStore.getDonationAmountType() === 'userinput') {\n return 'Other';\n }\n return '';\n };\n\n const cipFailedOrPending = () => {\n return props.cipStatus === 'failed' || props.cipStatus === 'pending';\n };\n\n const [presetAmounts, setPresetAmounts] = useState(\n templateData.presetAmounts\n ),\n [selectedOption, setSelectedOption] = useState(getSelectedOption()),\n [showOtherAmount, setShowOtherAmount] = useState(\n AppStore.getDonationAmountType() === 'userinput' ? true : false\n ),\n [amountFieldValue, setAmountFieldValue] = useState(props.charityAmount);\n\n const handlePresetAmountClick = (value) => {\n setSelectedOption(value);\n\n const indexValue = presetAmounts.indexOf(value);\n\n trackSelectedPresetAmount(indexValue >= 0 ? indexValue : 'other');\n if (value !== 'Other') {\n // To be consistent with the hero currency component\n // we need to update donationAmount in store with only\n // normalized number\n props.handleAmountChange(value);\n // Highlight the selected button\n setShowOtherAmount(false);\n setPresetAmounts(templateData.presetAmounts);\n // Clear the errors from amount field\n if (\n props.showValidationError &&\n (!cipFailedOrPending() ||\n (cipFailedOrPending() && Number(AppStore.getDonationAmount()) < 1000))\n ) {\n props.hideValidationError();\n }\n\n AppActions.updateDonationAmountType('preset');\n } else {\n props.handleAmountChange('');\n AppActions.updateSelectedPresetButtonId('other');\n AppActions.updateDonationAmountType('userinput');\n setShowOtherAmount(true);\n }\n };\n\n useEffect(() => {\n // In case user opts in for cover fee and goes back to\n // landing page from guest page, we need to restore back\n // user's original entered amount\n const amountBeforeFee = AppStore.getAmountBeforeFee();\n if (amountBeforeFee && isOptInCoverFee()) {\n if (shouldSelectPresetAmount(amountBeforeFee)) {\n setAmountFieldValue('');\n handlePresetAmountClick(amountBeforeFee);\n } else {\n setAmountFieldValue(amountBeforeFee);\n }\n }\n }, []);\n\n const handleAmountChange = (amount) => {\n if (amount > 0) {\n props.handleAmountChange(amount);\n }\n };\n\n const getPresetOptions = (values, symbol, charityAmountCode) => {\n const result = values.map((value) => {\n let amountDisplayValue;\n\n if (isRightSymbol()) {\n amountDisplayValue = symbol\n ? `${formatAmountFromServerDNW(value, {\n noDecimals: true,\n })} ${symbol}`\n : `${formatAmountFromServerDNW(value, {\n noDecimals: true,\n })}`;\n } else {\n amountDisplayValue = symbol\n ? `${symbol} ${formatAmountFromServerDNW(value, {\n noDecimals: true,\n })}`\n : `${formatAmountFromServerDNW(value, {\n noDecimals: true,\n })}`;\n }\n\n return {\n label: amountDisplayValue,\n secondaryLabel: charityAmountCode,\n value,\n };\n });\n return [...result, { label: presetOther, value: 'Other' }];\n };\n\n const presetOptions = getPresetOptions(\n presetAmounts,\n props.charityAmountSymbol,\n props.charityAmountCode\n );\n\n return (\n <>\n \n \n );\n}\n\nPresetAmountRow.propTypes = {\n hideValidationError: PropTypes.func,\n handleAmountChange: PropTypes.func,\n handleAmountFocus: PropTypes.func,\n charityAmount: PropTypes.string,\n showValidationError: PropTypes.bool,\n charityAmountSymbol: PropTypes.string,\n charityAmountCode: PropTypes.string,\n decimalPoint: PropTypes.string,\n isAmountEditable: PropTypes.bool,\n validationErrorMessage: PropTypes.string,\n validationErrorCode: PropTypes.string,\n};\nexport default PresetAmountRow;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _debounce from 'lodash/debounce';\nimport AppStore from '../stores/AppStore';\nimport * as AppActions from '../actions/AppActions';\nimport TemplateData from '../utility/getTemplateData';\nimport { fetcher } from '../utility/domUtils';\nimport { SingleAmount } from '@paypalcorp/donate-react';\nimport { BodyText } from '@paypalcorp/pp-react';\nimport PresetAmountRow from './amount/PresetAmountRow';\nimport {\n setFeeAmountInStore,\n optOutCoverFee,\n isAtLandingPage,\n isOptInCoverFee,\n} from './coverFee/feeUtils';\nimport AppDispatcher from '../dispatcher/AppDispatcher';\nimport { getParameterByName } from '../utility/queryStringHelper';\nimport { __getInitialData } from '../utility/formator';\nimport { trackErrorIM } from '../fpti/fpti';\nimport { addFeature, setAmountTypeFpti } from '../fpti/helper';\nimport { FEATURES } from '../fpti/fptiConstants';\nimport { getWorldReady } from '../utility/worldReadyUtils';\nimport { MessageFormat } from '@paypalcorp/worldready';\n\nclass AmountWrapper extends React.Component {\n constructor(props) {\n super(props);\n const currencyObj = JSON.parse(\n document.getElementById('currencyLists').innerHTML || {}\n );\n const { currencies: currencyLists, symbols: currencySymbols } =\n currencyObj || {};\n const html = document.getElementsByTagName('html')[0];\n this.directionality = html.getAttribute('dir');\n\n const userCountry = TemplateData.donorIpCountry;\n const availableCurrencies = currencyLists[userCountry] || currencyLists.US;\n const userAmountCode = availableCurrencies[0];\n const charityAmountCode = AppStore.getDonationCode();\n const isEditable = !!TemplateData.donationAmountEditable;\n\n this.state = {\n charityAmountCode,\n charityAmount: AppStore.getDonationAmount() || '',\n charityAmountSymbol: AppStore.getDonationSymbol(),\n charityDisabled: false,\n\n userCountry,\n userAmountCode,\n userAmount: '',\n userDisabled: false,\n\n availableCurrencies,\n currencySymbols,\n decimalPoint: TemplateData.donationDecimalPoint || '.',\n conversionRate: '',\n isAmountEditable: isEditable,\n\n showValidationError: props.showValidationError || false,\n validationErrorMessage: props.validationErrorMessage || '',\n validationErrorCode: props.validationErrorCode || '',\n cipStatus: props.cipStatus || null,\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n this.state.showValidationError !== nextProps.showValidationError ||\n this.state.validationErrorMessage !== nextProps.validationErrorMessage\n ) {\n this.setState({\n showValidationError: nextProps.showValidationError,\n validationErrorMessage: nextProps.validationErrorMessage,\n validationErrorCode: nextProps.validationErrorCode,\n });\n }\n }\n\n componentDidMount = () => {\n // Watch for amount change for the case that donor opts in to cover fee\n // and clicks back button to go back to landing page\n // as we need to restore donor's original entered amount\n this.dispatcherCharityAmount = AppDispatcher.register((payload) => {\n if (payload.action && payload.action.actionType === 'CHANGE_AMOUNT') {\n const { action: { item: { amount = 0 } = {} } = {} } = payload;\n this.setState({\n charityAmount: amount,\n });\n }\n });\n\n if (this.state.isAmountEditable) {\n addFeature(FEATURES.DONATION_AMOUNT_EDITABLE);\n }\n };\n\n componentWillUnmount = () => {\n AppDispatcher.unregister(this.dispatcherCharityAmount);\n };\n\n isGuestReviewPage = () => {\n return (\n window.location.pathname.includes('guest') ||\n ![undefined, null].includes(getParameterByName('signup'))\n );\n };\n\n normalizeAmount = (amount) => {\n return isNaN(amount) ? 0 : amount;\n };\n\n setAppAmount = (amount) => {\n AppActions.changeAmount({\n amount,\n });\n };\n\n getConversionRate = (state, exchangeRate) => {\n const rate =\n exchangeRate.base_currency_code === state.userAmountCode\n ? exchangeRate.quote_amount\n : 1 / exchangeRate.quote_amount;\n return rate.toFixed(2);\n };\n\n getConversionRequest = (state, params, callback) => {\n this.getConversionRequest = _debounce((st, par, fn) => {\n const queryParams = {\n fromCountry: st.userCountry,\n fromCurrency: st.userAmountCode,\n toCurrency: st.charityAmountCode,\n ...par,\n };\n\n if (queryParams.fromAmount) {\n queryParams.fromAmount = this.normalizeAmount(queryParams.fromAmount);\n } else {\n queryParams.toAmount = this.normalizeAmount(queryParams.toAmount);\n }\n const url = '/donate/calculate-foreign-exchange';\n this.props.conversionStatus(true);\n Promise.resolve(\n fetcher(url, {\n method: 'POST',\n body: JSON.stringify(queryParams),\n })\n )\n .then((response) => response.json())\n .then(({ result }) => {\n this.props.conversionStatus(false);\n fn(result);\n })\n .catch(() => {\n this.props.conversionStatus(false);\n let amount = queryParams.fromAmount || queryParams.toAmount || '';\n amount += '';\n fn({\n target: { value: amount },\n source: { value: amount },\n exchange_rate: {\n base_currency_code: queryParams.userAmountCode,\n quote_amount: 1,\n },\n });\n });\n }, 500);\n\n this.getConversionRequest(state, params, callback);\n };\n\n /*\n * getConversion\n */\n getConversion = (state, params, fn) => {\n const amount = params.fromAmount || params.toAmount || '';\n fn({\n target: { value: amount },\n source: { value: amount },\n exchange_rate: {\n base_currency_code: state.userAmountCode,\n quote_amount: 1,\n },\n });\n };\n\n handleAmountChange = (amount) => {\n this.setState({ charityAmount: amount });\n this.setAppAmount(amount);\n\n // let recurringStatus = AppStore.getDonationRecurring() === 'checked';\n // if (recurringStatus) {\n // if (isAmountGreaterThanZero(amount)) {\n // $('#donateNowAmt').html(this.state.charityAmountSymbol + amount);\n // } else {\n // $('#donateNowAmt').html(' ');\n // }\n // }\n\n if (isAtLandingPage()) {\n // Compute fee amount and update store\n setFeeAmountInStore();\n // Let landing page know that fee amount displayed needs to be updated\n this.props.updateFeeAmount();\n } else {\n // Since user updates the amount in the guest page\n // we should opt user out for cover the fee in case\n // they go back to landing page\n if (isOptInCoverFee()) {\n optOutCoverFee();\n }\n\n // In case user selects a preset button but update the amount\n // in review page, the donation amount type should now be\n // \"userinput\"\n if (AppStore.getDonationAmountType() === 'preset') {\n setAmountTypeFpti('other');\n AppActions.updateDonationAmountType('userinput');\n }\n }\n const showCipAmountError = this.showCipAmountError();\n if (this.props.updateCipAmountValidation) {\n if (showCipAmountError && Number(amount) > 999) {\n this.props.updateCipAmountValidation(true);\n } else {\n this.props.updateCipAmountValidation(false);\n }\n }\n };\n\n handleAmountFocus() {\n this.props.onFocus();\n }\n\n handleTrackError = (errorCode, errorString, errorSourceField) => {\n trackErrorIM({\n errorCode: errorCode || 'DONATION_AMOUNT_VALIDATION_ERROR',\n errorMessage: errorString,\n fieldName: errorSourceField,\n });\n };\n\n shouldShowPresetAmounts = () => {\n // Should only show preset amount options in landing\n // page not review page to make the experience consistent\n // with member flow. It works better for cover the fees as well\n\n const presetAmountsCondition =\n TemplateData.enablePresetAmounts && !this.isGuestReviewPage();\n\n if (presetAmountsCondition) {\n addFeature(FEATURES.PRESET);\n }\n\n return presetAmountsCondition;\n };\n\n renderPresetAmounts = () => {\n return (\n \n );\n };\n\n getRecurringLabel = () => {\n const worldReady = getWorldReady();\n switch (this.props.selectedRecurringFrequency) {\n case 'Week':\n return new MessageFormat(worldReady, {\n id: 'guest.guestForm.label.perWeek',\n }).format();\n case 'Month':\n return new MessageFormat(worldReady, {\n id: 'guest.guestForm.label.perMonth',\n }).format();\n case 'Year':\n return new MessageFormat(worldReady, {\n id: 'guest.guestForm.label.perYear',\n }).format();\n default:\n return null;\n }\n };\n showCipAmountError = () => {\n return this.state.cipStatus === 'pending';\n };\n\n render() {\n if (this.shouldShowPresetAmounts()) {\n return (\n
\n {this.renderPresetAmounts()}\n
\n );\n }\n\n const caamlErrorStyle =\n this.showCipAmountError() && Number(this.state.charityAmount) > 999;\n return (\n
\n <>\n \n \n {AppStore.getDonationRecurring() === 'checked' && (\n {this.getRecurringLabel()}\n )}\n
\n \n \n );\n }\n}\n\nAmountWrapper.propTypes = {\n conversionStatus: PropTypes.func,\n showValidationError: PropTypes.bool,\n hideValidationError: PropTypes.func,\n validationErrorMessage: PropTypes.string,\n validationErrorCode: PropTypes.string,\n validateDonationAmount: PropTypes.func,\n onFocus: PropTypes.func,\n updateFeeAmount: PropTypes.func,\n selectedRecurringFrequency: PropTypes.string,\n cipStatus: PropTypes.string,\n updateCipAmountValidation: PropTypes.func,\n};\n\nexport default AmountWrapper;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport * as AppActions from '../../actions/AppActions';\nimport { Checkbox, Tooltip } from '@paypalcorp/pp-react';\nimport { EVENT_NAME } from '../../utility/constants';\nimport { trackLinkClick } from '../../fpti/fpti';\nimport { FEATURES, LINK_NAME } from '../../fpti/fptiConstants';\nimport { addFeature } from '../../fpti/helper';\n\nconst AnonymousCheckbox = ({\n content,\n optInStatus,\n handleAnonymousDonationChange,\n}) => {\n useEffect(() => {\n addFeature(FEATURES.ANONYMOUS);\n }, []);\n\n const handleChange = (event) => {\n const isChecked = event.target.checked,\n checkboxStatus = isChecked ? 'checked' : 'unchecked';\n\n AppActions.changeAnonymousStatus({\n anonymousStatus: checkboxStatus,\n });\n\n handleAnonymousDonationChange(isChecked);\n };\n\n const trackTooltipOpen = () => {\n trackLinkClick(LINK_NAME.ANONYMOUS_TOOLTIP, {\n eventName: EVENT_NAME.DW_GIVING_DONATE_SETUP_TOOLTIP_PRESSED,\n });\n };\n\n return (\n \n \n )\n }\n />\n \n );\n};\n\nAnonymousCheckbox.propTypes = {\n content: PropTypes.object,\n optInStatus: PropTypes.bool,\n handleAnonymousDonationChange: PropTypes.func,\n};\n\nexport default AnonymousCheckbox;\n","import React, { Component } from 'react';\nimport templateData from '../../utility/getTemplateData';\nimport {\n handleGuestCountryChange,\n hideSpinnerOverlay,\n showSpinnerOverlay,\n} from '../../utility/helper';\nimport * as DonateAppActions from '../../actions/AppActions';\nimport { getInitialData } from '../../utility/formator';\nimport AppStore from '../../stores/AppStore';\nimport { getParametersFromUrl } from '../../utility/queryStringHelper';\nimport PropTypes from 'prop-types';\nimport { startCustomCPLTrackingForConfirmationPage } from '../../utility/cpl';\nimport {\n fetcher,\n scrollElementIntoView,\n objectOrArrayToQueryString,\n} from '../../utility/domUtils';\nimport isEmpty from 'lodash/isEmpty';\nimport { trackLinkClick } from '../../fpti/fpti';\nimport { FPTI_TAGS, LINK_NAME } from '../../fpti/fptiConstants';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { getWorldReady } from '../../utility/worldReadyUtils';\n\nconst initialData = getInitialData();\n\nconst ERROR_ELEMENT_SELECTOR = [\n '.vx_has-error-with-message',\n '.service_error_holder',\n].join();\n\nfunction withDonate(WrappedComponent) {\n const worldReady = getWorldReady();\n\n return class extends Component {\n static propTypes = {\n history: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n this.country = initialData.selectedCountry;\n }\n\n handleCountryChange = (country) => {\n if (country !== this.country) {\n this.toggleSpinner(true);\n DonateAppActions.changeCountry({\n country: country,\n });\n this.country = country;\n\n // Beacons for country change\n trackLinkClick(LINK_NAME.CHANGE_COUNTRY, {\n additionalData: {\n [FPTI_TAGS.COUNTRY]: country,\n },\n });\n\n const { token, signUp = false } = templateData;\n const url = signUp\n ? `/donate?token=${token}&signup=true&country.x=${country}`\n : `/donate?token=${token}&country.x=${country}&countryChange=true&clientState=/donate/guest?token=${token}`;\n\n handleGuestCountryChange(url);\n }\n };\n\n /*\n * showing and hiding spinner\n */\n toggleSpinner = (isSpinner = false) => {\n if (isSpinner) {\n showSpinnerOverlay();\n } else {\n hideSpinnerOverlay();\n }\n };\n\n // handles scrolling screen to the error\n handleScrollToError = () => {\n scrollElementIntoView(ERROR_ELEMENT_SELECTOR);\n return;\n };\n\n getDonateGuestUrl = () => {\n const { token, country, language } = templateData;\n\n let url = `/donate/guest?token=${token}`;\n if (country) {\n url = url + `&country.x=${country}`;\n }\n\n if (country && language) {\n url = url + `&locale.x=${country}_${language}`;\n }\n\n return url;\n };\n\n getFormData() {\n return AppStore.getFormData();\n }\n\n saveFormData(formData) {\n DonateAppActions.saveFormData(formData);\n }\n\n showErrorOnLoad() {\n const url = window.location.href;\n const params = getParametersFromUrl(url);\n\n if (params.showErrorOnLoad) {\n if (params.showErrorOnLoad === 'fulfillment') {\n // TODO: update error code to the actual fullfilment error code\n const errorCode = 'WSM_TRANSACTION_FAILED_DUE_TO_INVALID_CARD_DATA';\n const errorMsgs = [\n {\n key: 0,\n value: new MessageFormat(worldReady, {\n id: `errors.service.${errorCode}`,\n }).format(),\n },\n ];\n\n // adding delay to wait for the dispatcher to get registered in ServerErrors\n setTimeout(\n () =>\n DonateAppActions.updateServerErrors({ serverErrors: errorMsgs }),\n 250\n );\n }\n // delete params.showErrorOnLoad;\n\n // const query = $.param(params);\n // const cleanedUrl = `/donate/guest/?${query}`;\n // window.history.replaceState({}, document.title, cleanedUrl);\n }\n }\n\n doFulfilment = (params = {}) => {\n const { securityCode } = params;\n this.toggleSpinner(true);\n\n fetcher('/donate/guest/fullfilment', {\n method: 'POST',\n body: JSON.stringify({\n token: templateData.token,\n note: AppStore.getDonationNote(),\n fundingOptionId: AppStore.getFundingOptions().id,\n email: AppStore.getEmail(),\n billingAddress: AppStore.getBillingAddress(),\n giftAidItFlag: AppStore.getGiftaidItFlagStatus() || false,\n card: { securityCode },\n onboardingEnabled: templateData.onboardingEnabled,\n selectedRecurringFrequency: AppStore.getSelectedRecurringFrequency(),\n }),\n })\n .then((response) => response.json())\n .then((result) => {\n if (result.code === 'WSM_PAYMENT_DENIED') {\n this.toggleSpinner(false);\n this.props.history.push(\n `/donate/error/payment?token=${templateData.token}`\n );\n return;\n } else if (result.status === 'redirect') {\n this.toggleSpinner(false);\n window.location.href = result.url;\n return;\n } else if (\n result.code === 'WSM_TRANSACTION_FAILED_DUE_TO_INVALID_CARD_DATA'\n ) {\n // fulfillment error\n const { token, country } = templateData;\n\n const clientState = encodeURIComponent(\n `/donate/guest?token=${token}&showErrorOnLoad=fulfillment`\n );\n window.location.href = `/donate?token=${token}&country.x=${country}&locale.x=${country}&clientState=${clientState}`;\n return;\n } else if (result.data && result.data.confirmationData) {\n startCustomCPLTrackingForConfirmationPage();\n this.toggleSpinner(false);\n const { token } = templateData;\n const confirmationData = result.data.confirmationData || {};\n const isPending =\n confirmationData.isOfacPending ||\n confirmationData?.postBackData?.payment_status === 'Pending';\n const { selectedRecurringFrequency } = confirmationData;\n const queryParams = objectOrArrayToQueryString({\n token,\n selectedRecurringFrequency,\n });\n\n DonateAppActions.updateConfirmation({\n confirmation: confirmationData,\n });\n if (isPending) {\n this.props.history.push(`/donate/guest/pending?${queryParams}`);\n } else {\n this.props.history.push(\n `/donate/guest/confirmation?${queryParams}`\n );\n }\n } else {\n this.toggleSpinner(false);\n this.props.history.push(\n `/donate/error/payment?token=${templateData.token}`\n );\n }\n })\n .catch(() => {\n this.toggleSpinner(false);\n this.props.history.push(\n `/donate/error/payment?token=${templateData.token}`\n );\n });\n };\n\n createOrder = (params) => {\n const token = templateData.token;\n\n fetcher(`/donate/orders?dtoken=${token}`, {\n method: 'POST',\n body: JSON.stringify(params),\n })\n .then((response) => response.json())\n .then((result) => {\n if (!isEmpty(result.cartUrl)) {\n window.location.href = result.cartUrl;\n } else {\n this.props.history.push(\n `/donate/error/payment?token=${templateData.token}`\n );\n }\n })\n .catch(() => {\n this.toggleSpinner(false);\n this.props.history.push(\n `/donate/error/payment?token=${templateData.token}`\n );\n });\n };\n\n captureOrder = (orderToken, donateToken, payerID) => {\n return fetcher(\n `/donate/orders/${orderToken}/capture?dtoken=${donateToken}&PayerID=${payerID}`,\n {\n method: 'POST',\n }\n );\n };\n\n render() {\n return (\n \n );\n }\n };\n}\n\nexport default withDonate;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CriticalIcon } from '@paypalcorp/pp-react-icons';\n\nexport default function NoteFieldError(props) {\n const errorText = props.errorText;\n\n if (!errorText) {\n return null;\n }\n return (\n
\n \n \n \n {errorText}\n \n \n
\n );\n}\n\nNoteFieldError.propTypes = {\n errorText: PropTypes.string,\n};\n","import React, { useState, useEffect, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport templateData from '../utility/getTemplateData';\nimport * as AppActions from '../actions/AppActions';\nimport AppStore from '../stores/AppStore';\nimport { addClass, removeClass } from '../utility/domUtils';\nimport {\n isExternalFlow,\n isCampaigns,\n isGNC,\n isPPCampaign,\n} from '../utility/productIntegrationUtils';\nimport isEmpty from 'lodash/isEmpty';\nimport { EVENT_NAME } from '../utility/constants';\nimport { IconButton, TextArea, BodyText, AddIcon } from '@paypalcorp/pp-react';\nimport NoteFieldError from './NoteFieldError';\nimport { trackLinkClick } from '../fpti/fpti';\nimport { updateGlobalFPTI } from '../fpti/helper';\nimport { LINK_NAME, FPTI_TAGS } from '../fpti/fptiConstants';\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\n\nconst MAX_CHAR_LIMIT = 250;\n\nfunction NoteComponent(props) {\n const worldReady = useContext(WorldReadyContext);\n\n const label = new MessageFormat(worldReady, {\n id: 'common.note.note.label',\n }).format();\n const lengthLimit = new MessageFormat(worldReady, {\n id: 'common.note.note.error.lengthLimit',\n }).format();\n const campaignsLabel = new MessageFormat(worldReady, {\n id: 'common.note.note.campaigns.label',\n }).format();\n\n let providedLabel = isCampaigns() ? campaignsLabel : label;\n\n if (templateData.charityNoteEnabled && templateData.charityNoteLabel) {\n providedLabel = templateData.charityNoteLabel;\n }\n\n if (props.label) {\n providedLabel = props.label;\n }\n\n let commentTextboxLabel = providedLabel;\n if (isGNC() || isPPCampaign()) {\n commentTextboxLabel = !isEmpty(props.texboxLabel)\n ? props.texboxLabel\n : commentTextboxLabel;\n }\n\n const [donationNote, setDonationNote] = useState(\n AppStore.getDonationNote() || templateData.donationNote || ''\n );\n const initialNoteLabel = isEmpty(donationNote) ? providedLabel : donationNote;\n\n const [showLabel, setShowLabel] = useState(true);\n const [showError, setShowError] = useState(false);\n const [noteLabel, setNoteLabel] = useState(initialNoteLabel);\n const textAreaEl = useRef(null);\n const showOnlyCommentTextbox = templateData?.showOnlyCommentTextbox ?? false;\n\n const isNoteTextPresent = donationNote.length > 0 ? true : false;\n\n useEffect(() => {\n if (!showLabel && !isEmpty(textAreaEl) && !showOnlyCommentTextbox) {\n textAreaEl.current.focus();\n }\n }, [showLabel]);\n useEffect(() => {\n updateGlobalFPTI({\n [FPTI_TAGS.SHOW_ONLY_COMMENT_TEXTBOX]: showOnlyCommentTextbox,\n });\n if (isNoteTextPresent || showOnlyCommentTextbox) {\n setShowLabel(false);\n }\n }, []);\n useEffect(() => {\n if (props.isNotePreview) {\n setNoteLabel(initialNoteLabel);\n }\n }, [initialNoteLabel]);\n\n const directionality = templateData.contextLocalityDir;\n\n const handleClick = () => {\n trackLinkClick(LINK_NAME.NOTE_PAD, {\n eventName: isExternalFlow()\n ? EVENT_NAME.DW_GIVING_DONATE_SETUP_COMMENT_PRESSED\n : '',\n });\n setShowLabel(false);\n };\n\n const handleBlur = (event) => {\n const note = event.target.value;\n\n // Remove all whitespaces\n if (!isEmpty(note) && !isEmpty(note.trim())) {\n AppActions.changeNote({ note });\n setNoteLabel(note);\n } else {\n AppActions.changeNote({ note: '' });\n setNoteLabel(providedLabel);\n if (!showOnlyCommentTextbox) {\n setShowLabel(true);\n }\n }\n };\n\n const showNoteFieldError = () => {\n setShowError(true);\n };\n\n const hideNoteFieldError = () => {\n setShowError(false);\n };\n\n const handleOnChange = (event) => {\n const value = event.target.value;\n setDonationNote(value);\n\n if (value && value.length >= MAX_CHAR_LIMIT) {\n addClass('.note_wrap', ['animated', 'shake']);\n setTimeout(() => {\n removeClass('.note_wrap', ['animated', 'shake']);\n }, 1000);\n showNoteFieldError();\n } else {\n hideNoteFieldError();\n }\n };\n\n return (\n
\n \n {showLabel ? (\n \n ) : (\n
\n \n
\n )}\n\n {showError && showLabel && }\n
\n \n );\n}\n\nNoteComponent.propTypes = {\n label: PropTypes.string,\n isNotePreview: PropTypes.bool,\n texboxLabel: PropTypes.string,\n};\n\nexport default NoteComponent;\n","import React, { Component } from 'react';\nimport AppStore from '../../stores/AppStore';\nimport _get from 'lodash/get';\nimport { getPaymentCardNetwork } from '../../utility/card-utils';\nimport { StyleSheet, css } from 'aphrodite';\nimport _isEmpty from 'lodash/isEmpty';\nimport { hideSpinnerOverlay } from '../../utility/helper';\nimport { appendCdnHostName } from '../../utility/geoUtils';\nimport withTheme from '../withTheme';\nimport { BodyText, HeadingText } from '@paypalcorp/pp-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react';\n\nconst LOADING_GIF_SOURCE = appendCdnHostName(\n '/ui-web/money-icons/partnerships/mbLoader_256_sm.gif'\n);\n\nconst STYLES = StyleSheet.create({\n spinnerAlign: {\n margin: '30px auto 30px',\n },\n cardImg: {\n marginTop: '24px',\n },\n});\n\nclass ThreeDSSpinner extends Component {\n constructor(props) {\n super(props);\n this.state = {\n cardImg: null,\n network: null,\n };\n }\n\n setNetworkDetails = () => {\n const fundingOptions = AppStore.getFundingOptions();\n let cardImg = _get(\n fundingOptions,\n 'sources[0].payment_card.issuer.thumbnail_logo_url'\n );\n let network = getPaymentCardNetwork(\n _get(fundingOptions, 'sources[0].payment_card')\n );\n const myData = AppStore.getAllData() || {};\n if (\n cardImg === null ||\n _isEmpty(cardImg) ||\n typeof cardImg === 'undefined'\n ) {\n const cardType = _get(myData, 'cardSpec.cardSpec.type', '')\n .replace(/[.,_]|\\s\\(.*\\)/g, '')\n .replace(/[\\s_]/g, '-')\n .toLowerCase();\n cardImg = appendCdnHostName(\n `/digitalassets/c/consumer/p2p/funding-sources/${cardType}.png`\n );\n }\n if (\n network === null ||\n _isEmpty(network) ||\n typeof network === 'undefined'\n ) {\n network = myData.cardSpec.cardSpec.type.replace(/[_]/g, ' ');\n }\n this.setState({ cardImg, network });\n };\n\n componentDidMount() {\n // Hide the donate spinner in the background\n // to prevent double spinners\n hideSpinnerOverlay();\n this.setNetworkDetails();\n }\n\n render() {\n const worldReady = this.context;\n return (\n
\n
\n
\n {/*
*/}\n
\n \n
\n \n {new MessageFormat(worldReady, {\n id: 'common.threeDSecure.confirmingWith',\n }).format({\n network: this.state.network,\n })}\n \n
\n {this.state.cardImg ? (\n \"Card\n ) : (\n ''\n )}\n
\n
\n \n {new MessageFormat(worldReady, {\n id: 'common.threeDSecure.wontTakeLong',\n }).format()}\n \n \n {new MessageFormat(worldReady, {\n id: 'common.threeDSecure.DoNotCloseOrRefresh',\n }).format()}\n \n
\n
\n
\n
\n );\n }\n}\n\nThreeDSSpinner.contextType = WorldReadyContext;\n\nexport default withTheme(ThreeDSSpinner);\n","import React, { Component } from 'react';\nimport AppStore from '../../stores/AppStore';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport _get from 'lodash/get';\nimport _find from 'lodash/find';\nimport { trackThreeDsDdcFailure } from '../../fpti/fpti';\nimport { FPTI_TAGS } from '../../fpti/fptiConstants';\n\nclass ThreeDSDeviceDataCollection extends Component {\n static propTypes = {\n onThreeDSDDCComplete: PropTypes.func,\n };\n\n state = {\n resolve: false,\n };\n\n getThreeDSParams() {\n const fundingOptions = AppStore.getFundingOptions();\n const contingencies = _get(fundingOptions, 'contingencies') || [];\n return (\n _find(contingencies, { action: '3D_SECURE_DATA_COLLECTION_REQUIRED' }) ||\n {}\n );\n }\n\n componentDidMount() {\n // 'message' is passed after 3DS Submit is completed\n window.addEventListener('message', this.handleDDCEvent);\n\n const { three_ds_reference_id: threeDS2ReferenceId } =\n this.getThreeDSParams();\n\n if (this.refs[threeDS2ReferenceId]) {\n try {\n this.refs[threeDS2ReferenceId].submit();\n setTimeout(() => {\n if (!this.state.resolve) {\n trackThreeDsDdcFailure({\n [FPTI_TAGS.STATUS]: '3ds timeout',\n });\n this.onDDCComplete(\n { MessageType: 'profile.completed', Status: true },\n false\n );\n }\n }, 5000);\n } catch (e) {\n return;\n }\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('message', this.handleDDCEvent);\n }\n\n validateEventOrigin = (eventOrigin) => {\n return (\n eventOrigin &&\n (eventOrigin.includes('cardinalcommerce.com') ||\n eventOrigin.includes('paypal.com'))\n );\n };\n\n handleDDCEvent = (event) => {\n const eventOrigin = _get(event, 'origin', '');\n\n if (this.validateEventOrigin(eventOrigin)) {\n let data = null;\n try {\n data = JSON.parse(event.data);\n } catch (exception) {\n // Error handler incase parsing goes wrong\n data = {};\n }\n\n const messageType = _get(data, 'MessageType', '');\n if (messageType === 'profile.completed') {\n this.onDDCComplete(event);\n } else {\n // DDC not completed with message type\n trackThreeDsDdcFailure({\n [FPTI_TAGS.STATUS]: messageType,\n });\n }\n }\n };\n\n onDDCComplete = (event, wasSuccessful = true) => {\n this.setState({ resolve: true }, () =>\n this.props.onThreeDSDDCComplete(event, wasSuccessful)\n );\n };\n\n render() {\n const {\n device_data_collection_url: deviceDataCollectionUrl,\n jwt,\n three_ds_reference_id: threeDS2ReferenceId,\n } = this.getThreeDSParams();\n\n if (!deviceDataCollectionUrl) {\n return null;\n }\n\n return (\n
\n \n
\n \n );\n };\n\n render() {\n return (\n \n {this.getModalBody()}\n \n );\n }\n}\n\nThreeDSIframe.contextType = WorldReadyContext;\n\nThreeDSIframe.propTypes = {\n onStepUpAuthComplete: PropTypes.func,\n icon: PropTypes.string,\n hideModal: PropTypes.func,\n isOpen: PropTypes.bool,\n onClose: PropTypes.func,\n};\nexport default withTheme(ThreeDSIframe);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Portal } from 'react-portal';\nimport ThreeDSSpinner from './ThreeDSSpinner';\nimport ThreeDSDeviceDataCollection from './ThreeDSDeviceDataCollection';\nimport ThreeDSIframe from './ThreeDSIframe';\nimport * as AppActions from '../../actions/AppActions';\nimport _get from 'lodash/get';\nimport { fetcher } from '../../utility/domUtils';\nimport { FPTI_TAGS } from '../../fpti/fptiConstants';\nimport templateData from '../../utility/getTemplateData';\nimport {\n trackThreeDsDdcComplete,\n trackThreeDsDdcStart,\n trackThreeDsLookupComplete,\n trackThreeDsLookupStart,\n} from '../../fpti/fpti';\n\nclass ThreeDSContainer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n showThreeDSIframe: false,\n showThreeDSSpinner: false,\n showThreeDSDeviceDataCollection: false,\n threeDSDCCStartTime: null,\n };\n }\n\n componentDidMount() {\n this.props.onRef(this);\n }\n\n componentWillUnmount() {\n this.props.onRef(undefined);\n }\n\n initializeThreeDS() {\n const startTime = new Date().getTime();\n this.setState({\n showThreeDSDeviceDataCollection: true,\n showThreeDSSpinner: true,\n threeDSDCCStartTime: startTime,\n });\n\n const fptiData = {\n [FPTI_TAGS.THREE_DS_DCC_START_TIME]: startTime,\n [FPTI_TAGS.THREE_DS_SPINNER_START_TIME]: startTime,\n };\n trackThreeDsDdcStart(fptiData);\n }\n\n handleThreeDSDDCComplete = () => {\n this.setState({\n showThreeDSDeviceDataCollection: false,\n });\n\n const threeDSDCCEndTime = new Date().getTime();\n const fptiData = {\n [FPTI_TAGS.THREE_DS_DCC_START_TIME]: this.state.threeDSDCCStartTime,\n [FPTI_TAGS.THREE_DS_DCC_END_TIME]: threeDSDCCEndTime,\n [FPTI_TAGS.THREE_DS_SPINNER_START_TIME]: this.state.threeDSDCCStartTime,\n [FPTI_TAGS.THREE_DS_SPINNER_END_TIME]: threeDSDCCEndTime,\n };\n trackThreeDsDdcComplete(fptiData);\n this.resolveThreeDSContingency();\n };\n\n resolveThreeDSContingency = () => {\n trackThreeDsLookupStart({\n [FPTI_TAGS.THREE_DS_LOOKUP_START_TIME]: new Date().getTime(),\n });\n\n fetcher('/donate/guest/resolve-threeds-contingency', {\n method: 'POST',\n body: JSON.stringify({\n token: templateData.token,\n onboardingEnabled: templateData.onboardingEnabled,\n }),\n })\n .then((response) => response.json())\n .then((result) => {\n this.hideThreeDSSpinner();\n\n const threeDSContingency = _get(result, 'data.threeDSContingency');\n const resolved = _get(threeDSContingency, 'threeDSContingencyResolved');\n\n trackThreeDsLookupComplete({\n timestamp: {\n [FPTI_TAGS.THREE_DS_LOOKUP_END_TIME]: new Date().getTime(),\n },\n [FPTI_TAGS.CONTINGENCY_RESOLVED]: resolved,\n [FPTI_TAGS.URL]: _get(\n threeDSContingency,\n 'threeDS2Contingency.3d_secure_redirect_link'\n ),\n [FPTI_TAGS.ACTION]: _get(\n threeDSContingency,\n 'threeDS2Contingency.action'\n ),\n });\n\n if (resolved) {\n // 3DS Contingency resolved without StepUp Auth\n this.props.onThreeDSStepUpAuthNotRequired();\n\n return;\n }\n // Save threeDS data and show 3DS iframe\n AppActions.updateThreeDSData(threeDSContingency);\n this.showThreeDSIframe();\n })\n .catch((e) => {\n // Clear 3DS data\n AppActions.updateThreeDSData({});\n this.hideThreeDSIframe();\n this.props.onThreeDSFailure();\n });\n };\n\n handleThreeDSStepUpAuthComplete = ({ confirmationStatus, error }) => {\n if (confirmationStatus && confirmationStatus === 'threeDS-success') {\n this.props.onThreeDSStepUpAuthSuccess();\n } else {\n this.props.onThreeDSStepUpAuthFailure();\n return;\n }\n };\n\n showThreeDSIframe = () => {\n this.setState({\n showThreeDSIframe: true,\n });\n };\n\n hideThreeDSIframe = () => {\n this.setState({\n showThreeDSIframe: false,\n });\n };\n\n showThreeDSSpinner = () => {\n this.setState({\n showThreeDSSpinner: true,\n });\n };\n hideThreeDSSpinner = () => {\n this.setState({\n showThreeDSSpinner: false,\n });\n };\n\n render() {\n return (\n
\n {this.state.showThreeDSSpinner && (\n \n \n \n )}\n\n {this.state.showThreeDSDeviceDataCollection && (\n \n )}\n\n {this.state.showThreeDSIframe && (\n \n )}\n
\n );\n }\n}\n\nThreeDSContainer.propTypes = {\n onThreeDSStepUpAuthNotRequired: PropTypes.func,\n onThreeDSStepUpAuthSuccess: PropTypes.func,\n onThreeDSStepUpAuthFailure: PropTypes.func,\n onThreeDSFailure: PropTypes.func,\n onRef: PropTypes.func,\n toggleSpinner: PropTypes.func,\n};\n\nexport default ThreeDSContainer;\n","import React from 'react';\nimport { Sheet, BodyText, Button, HeadingText } from '@paypalcorp/pp-react';\nimport { StyleSheet, css } from 'aphrodite';\nimport PropTypes from 'prop-types';\nimport { Row, Col } from '@paypalcorp/pp-react';\nimport { appendCdnHostName } from '../utility/geoUtils';\nimport { Message } from '@paypalcorp/worldready-react';\n\nconst styles = StyleSheet.create({\n modalContent: {\n maxWidth: 600,\n margin: '0 auto',\n },\n okButton: {\n marginTop: 36,\n },\n msgMargin: {\n marginTop: '24px',\n },\n});\n\nexport default function DonateGiftAidHowItWorksOverlay(props) {\n const { orgName } = props;\n\n return (\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n
\n \n
\n
\n
\n
\n \n );\n}\n\nDonateGiftAidHowItWorksOverlay.propTypes = {\n orgName: PropTypes.string,\n isOpen: PropTypes.bool,\n closeOverlay: PropTypes.func,\n};\n","import PropTypes from 'prop-types';\nimport React, { useState, useEffect } from 'react';\nimport { Checkbox, CaptionText, Button } from '@paypalcorp/pp-react';\nimport DonateGiftAidHowItWorksOverlay from './DonateGiftAidHowItWorksOverlay';\nimport { appendCdnHostName } from '../utility/geoUtils';\nimport { BodyText } from '@paypalcorp/pp-react-text';\nimport { Message } from '@paypalcorp/worldready-react';\nimport { normalizeNumber, formatAmount } from '../utility/formator';\n\nconst DonateGiftAid = ({\n isAlreadyEnrolled,\n isChecked,\n handleGiftAidOption,\n addressData,\n showAddress,\n giftaidInfo,\n}) => {\n const [showHelp, setShowHelp] = useState(isChecked);\n const [checked, setChecked] = useState(isChecked);\n const [isHowItWorksOverlayOpen, setIsHowItWorksOverlayOpen] = useState(false);\n const { donateGiftPercentage, donationCode, amount, orgName } = giftaidInfo;\n\n useEffect(() => {\n if (isAlreadyEnrolled) {\n setShowHelp(false);\n }\n }, [isAlreadyEnrolled]);\n\n const handleCheckbox = (env) => {\n const checkedValue = env.target.checked;\n setChecked(checkedValue);\n setShowHelp(checkedValue);\n handleGiftAidOption(checkedValue);\n };\n\n const openHowItWorksOverlay = () => {\n setIsHowItWorksOverlayOpen(true);\n };\n\n const closeHowItWorksOverlay = () => {\n setIsHowItWorksOverlayOpen(false);\n };\n\n const getGiftAidExtraAmount = () => {\n const giftaidAmount = donateGiftPercentage * normalizeNumber(amount);\n return formatAmount({ value: giftaidAmount, currency: donationCode });\n };\n\n const getPaymentAmount = () =>\n formatAmount({ value: normalizeNumber(amount), currency: donationCode });\n\n return (\n
\n
\n \n \n {getPaymentAmount()}}\n extraAmount={{getGiftAidExtraAmount()}}\n />\n \n \n \n \n\n {isAlreadyEnrolled && (\n
\n \n \n \n \n
\n )}\n {!isAlreadyEnrolled && (\n }\n name=\"giftaidCheckbox\"\n id=\"giftaidCheckbox\"\n className=\"inline-block\"\n onChange={handleCheckbox}\n checked={checked}\n />\n )}\n\n {showHelp && (\n
\n
\n \n \n \n
\n {showAddress && (\n
\n \n \n \n
    \n
  • {addressData.fullName}
  • \n
  • {addressData.address1}
  • \n
  • {addressData.address2}
  • \n
  • {addressData.city}
  • \n
  • \n {addressData.state}, {addressData.zip}\n
  • \n
\n
\n )}\n
\n \n \n \n
\n
\n )}\n\n \n
\n
\n );\n};\n\nDonateGiftAid.propTypes = {\n isAlreadyEnrolled: PropTypes.bool,\n showAddress: PropTypes.bool,\n addressData: PropTypes.any,\n isChecked: PropTypes.bool,\n handleGiftAidOption: PropTypes.func,\n giftaidInfo: PropTypes.object,\n isMember: PropTypes.bool,\n};\n\nexport default DonateGiftAid;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@paypalcorp/pp-react';\nimport { appendCdnHostName } from '../../../lib/geoUtils';\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\n\nclass NextButtonComponent extends React.Component {\n static contextType = WorldReadyContext;\n render() {\n const buttonText = new MessageFormat(this.context, {\n id: 'common.nextButton.button.next',\n }).format();\n\n return (\n \n \n {buttonText}\n \n );\n }\n}\n\nNextButtonComponent.propTypes = {\n label: PropTypes.string,\n disabled: PropTypes.bool,\n handleNext: PropTypes.func,\n};\n\nexport default NextButtonComponent;\n","import location from '@paypalcorp/instance-location';\n\nexport const appendCdnHostName = (url) => {\n return `https://${location.getCdnHostName()}${url}`;\n};\n\nexport const getCdnHostName = () => {\n return `https://${location.getCdnHostName()}`;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@paypalcorp/pp-react';\nimport { Message } from '@paypalcorp/worldready-react';\n\nclass OneTouchNextButton extends React.Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nOneTouchNextButton.propTypes = {\n label: PropTypes.string,\n disabled: PropTypes.bool,\n handleNext: PropTypes.func,\n};\n\nexport default OneTouchNextButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@paypalcorp/pp-react';\nimport { addFeature } from '../fpti/helper';\nimport { FEATURES } from '../fpti/fptiConstants';\nimport { Message } from '@paypalcorp/worldready-react';\n\nclass GuestButton extends React.Component {\n componentDidMount() {\n addFeature(FEATURES.GUEST);\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nGuestButton.propTypes = {\n label: PropTypes.string,\n disabled: PropTypes.bool,\n handleGuest: PropTypes.func,\n};\n\nexport default GuestButton;\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { DropdownMenu } from '@paypalcorp/pp-react-dropdown-menu';\nimport * as AppActions from '../../actions/AppActions';\nimport appStore from '../../stores/AppStore';\nimport { trackLinkClick } from '../../fpti/fpti';\nimport { FPTI_TAGS, LINK_NAME } from '../../fpti/fptiConstants';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react';\n\nconst Programs = ({ programNames, isDisabled }) => {\n const worldReady = useContext(WorldReadyContext);\n const [selectedProgram, handleSelect] = useState('');\n const programLabelMsgFmt = new MessageFormat(worldReady, {\n id: 'common.programs.programs.optional',\n });\n // programNames is coming as a string sometimes\n // Convert it to an array\n if (programNames && !Array.isArray(programNames)) {\n programNames = [programNames];\n }\n\n const getProgramOptions = () => {\n const options = [];\n programNames.forEach((programName) => {\n options.push({\n primaryText: programName,\n value: programName,\n });\n });\n\n return options;\n };\n\n const updateProgramId = (event) => {\n const {\n target: { value },\n } = event;\n handleSelect(value);\n AppActions.updateSelectedProgram(value);\n trackLinkClick(LINK_NAME.PROGRAM_SELECTED, {\n additionalData: {\n [FPTI_TAGS.CAMPAIGN]: value,\n },\n });\n };\n\n useEffect(() => {\n if (isDisabled) {\n handleSelect(programNames[0]);\n }\n }, [JSON.stringify(programNames)]);\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let programOption = getProgramOptions().findIndex(\n (program) => program.primaryText === appStore.getSelectedProgram()\n );\n programOption = programOption === -1 ? 0 : programOption;\n handleSelect(programNames[programOption]);\n AppActions.updateSelectedProgram(programNames[programOption]);\n }, []);\n\n return (\n \n );\n};\n\nPrograms.propTypes = {\n programNames: PropTypes.array,\n isDisabled: PropTypes.bool,\n};\n\nexport default Programs;\n","import React, { Component } from 'react';\nimport { Button, Sheet, HeadingText, BodyText } from '@paypalcorp/pp-react';\nimport TemplateData from '../../utility/getTemplateData';\nimport PropTypes from 'prop-types';\nimport { appendCdnHostName } from '../../utility/geoUtils';\nimport { sanitizeOrgName } from '../../utility/domUtils';\nimport BackButton from '../../components/BackButton';\nimport { isInContext } from '../../utility/inContextDonation';\nimport { Row, Col } from '@paypalcorp/pp-react';\nimport {\n Message,\n Context as WorldReadyContext,\n} from '@paypalcorp/worldready-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\n\nconst orgname = TemplateData.donationName ? TemplateData.donationName : '';\nexport class RecurringOverlay extends Component {\n handleClose = () => {\n this.props.closeRecurringOverlay();\n };\n\n noThanks_closeModal = (event) => {\n this.props.onMakeOneTimeDonation();\n };\n\n onContinue = (event) => {\n this.props.onContinue();\n };\n\n render() {\n let secondDialogLabel;\n\n switch (this.props.selectedRecurringFrequency) {\n case 'WEEK':\n secondDialogLabel = 'dialogp2Week';\n break;\n case 'YEAR':\n secondDialogLabel = 'dialogp2Year';\n break;\n default:\n secondDialogLabel = 'dialogp2';\n break;\n }\n\n const dialogp2MsgFmt = new MessageFormat(this.context, {\n id: `common.recurring-checkbox.rp.${secondDialogLabel}`,\n });\n const dialogp2 = dialogp2MsgFmt.format({\n orgName: sanitizeOrgName(orgname),\n });\n\n return (\n : null\n }\n noCloseButton={isInContext()}\n isOpen={this.props.isOpen}\n onClose={this.handleClose}\n closeOnBackgroundClick={false}\n className=\"recurring-signup-overpanel\"\n containerClassName={`${\n isInContext() ? 'incontext-guest-recurring' : ''\n }`}\n >\n
\n
\n \n \n
\n \n
\n \n
\n \n \n \n \n \n \n \n\n \n \n
\n
\n
\n \n \n \n
\n
\n
\n {dialogp2}\n
\n
\n
\n \n \n \n
\n
\n \n
\n\n
\n \n \n \n \n \n\n \n \n \n \n \n \n \n
\n
\n
\n \n );\n }\n}\nRecurringOverlay.contextType = WorldReadyContext;\nRecurringOverlay.propTypes = {\n closeRecurringOverlay: PropTypes.func,\n onMakeOneTimeDonation: PropTypes.func,\n onContinue: PropTypes.func,\n isOpen: PropTypes.bool,\n selectedRecurringFrequency: PropTypes.string,\n};\n\nexport default RecurringOverlay;\n","import React, { useEffect, useState } from 'react';\nimport { CaptionText } from '@paypalcorp/pp-react';\nimport { StyleSheet, css } from 'aphrodite';\nimport AppDispatcher from '../dispatcher/AppDispatcher';\nimport * as AppConstants from '../utility/constants';\nimport { Message } from '@paypalcorp/worldready-react';\n\nconst styles = StyleSheet.create({\n disclaimerWrapper: {\n maxWidth: 350,\n margin: 'auto',\n },\n disclaimer: {\n margin: 'auto',\n },\n disclaimerCaptionText: {\n marginTop: 12,\n color: '#687173',\n textAlign: 'center',\n },\n});\n\nexport default function NotTaxDeductibleLegalText() {\n const [isPPCC, setIsPPCC] = useState(undefined);\n let dispatcherMessages;\n const registerAppDispatcherMessages = () => {\n dispatcherMessages = AppDispatcher.register((payload) => {\n if (\n payload.action &&\n payload.action.actionType === AppConstants.UPDATE_PPCC_STATUS\n ) {\n setIsPPCC(payload.action.item);\n }\n });\n };\n\n useEffect(() => {\n registerAppDispatcherMessages();\n return function cleanup() {\n AppDispatcher.unregister(dispatcherMessages);\n };\n }, []);\n if (isPPCC || isPPCC === undefined) return null;\n return (\n
\n \n \n \n
\n );\n}\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport * as AppActions from '../../actions/AppActions';\nimport { DonateCheckbox } from '@paypalcorp/donate-react';\nimport { addFeature } from '../../fpti/helper';\nimport { FEATURES } from '../../fpti/fptiConstants';\nimport { Message } from '@paypalcorp/worldready-react';\n\nconst CoverFeeCheckbox = ({\n handleCoverFeeChange,\n optInStatus,\n formatedFeeAmount,\n isDisabled,\n}) => {\n const handleChange = (event) => {\n const isChecked = event.target.checked,\n checkboxStatus = isChecked ? 'checked' : 'unchecked';\n\n AppActions.changeCoverFee({\n coverFee: checkboxStatus,\n });\n\n handleCoverFeeChange(isChecked);\n };\n\n useEffect(() => {\n addFeature(FEATURES.CTF);\n }, []);\n\n return (\n {formatedFeeAmount}}\n />\n }\n value={optInStatus}\n onChange={handleChange}\n checked={optInStatus}\n disabled={isDisabled || false}\n />\n );\n};\n\nCoverFeeCheckbox.propTypes = {\n handleCoverFeeChange: PropTypes.func,\n optInStatus: PropTypes.bool,\n formatedFeeAmount: PropTypes.string,\n isDisabled: PropTypes.bool,\n};\n\nexport default CoverFeeCheckbox;\n","export const PRODUCT = {\n BRANDED_CAMPAIGN: 'BRANDED_CAMPAIGN',\n GENEROSITY_NETWORK: 'GENEROSITY_NETWORK',\n GENEROSITY_NETWORK_CHARITIES: 'GENEROSITY_NETWORK_CHARITIES',\n PP_FUNDRAISING: 'PP_FUNDRAISING',\n DONATE_BUTTON_CAMPAIGN: 'DONATE_BUTTON_CAMPAIGN',\n\n // externalIntegeration\n PAYPAL_FUNDRAISER_LISTED_CAMPAIGN: 'PAYPAL_FUNDRAISER_LISTED_CAMPAIGN',\n PAYPAL_FUNDRAISER_UNLISTED_CAMPAIGN: 'PAYPAL_FUNDRAISER_UNLISTED_CAMPAIGN',\n};\n\nexport const INTEGRATION_IDENTIFIER = {\n DIRECT: 'DIRECT',\n PPGF: 'PPGF', // PayPal Giving Fund\n};\n\nexport const P2P_INTEGRATION_IDENTIFIERS = {\n GENEROSITY_NETWORK: '8BALL_CROWDFUNDING_MONEY_POOLS',\n PAYPAL_FUNDRAISER_LISTED_CAMPAIGN: 'PAYPAL_FUNDRAISER_LISTED_CAMPAIGN',\n PAYPAL_FUNDRAISER_UNLISTED_CAMPAIGN: 'PAYPAL_FUNDRAISER_UNLISTED_CAMPAIGN',\n};\n\nexport const PRODUCT_TYPE_IDENTIFIER = {\n DONATE_BUTTON: 'DB',\n DONATE_BUTTON_CAMPAIGN: 'DC',\n};\n\n// listing all possible products - may not be used directly in code, but good to have it here\nexport const PAYMENT_PRODUCT = {\n PUBLIC_MONEY_POOL: 'PUBLIC_MONEY_POOL',\n DONATE_BUTTON: 'DONATE_BUTTON',\n DONATE_BUTTON_CAMPAIGN: 'DONATE_BUTTON_CAMPAIGN',\n CROWDFUNDING_CAMPAIGNS: 'CROWDFUNDING_CAMPAIGNS',\n};\n\n// Post payment product type identifiers\nexport const PRODUCT_TYPE = {\n DBUTTON: 'DBUTTON',\n DBUTTONC: 'DBUTTONC',\n DONATE_BUTTON: 'DONATE_BUTTON',\n RECURRING_DONATION: 'SEND_MONEY_RECURRING_DONATION',\n};\n\nexport const AU_CRS = {\n STATUS: {\n ABORTED: 'ABORTED',\n FAILURE: 'FAILURE',\n SUCCESS: 'SUCCESS',\n },\n ABORTED_STATUS_CODE: ['DOC_UPLOAD_PENDING', 'INFO_NOT_COLLECTED'],\n FAILURE_STATUS_CODE: [\n 'INVALID_REQUEST',\n 'NOT_APPLICABLE',\n 'SERVICE_UNAVAILABLE',\n 'THIRD_PARTY_VERIFICATION_FAIL',\n 'UNAUTHORIZED',\n ],\n SUCCESS_STATUS_CODE: ['COMPLETED', 'VERIFIED'],\n};\n\nexport const RECURRING_EXPERIMENT = {\n TREATENTS: {\n Ctrl_Giving_donate_recurring_checkbox: 'CONTROL',\n Trmt_1_Giving_donate_segmented_controller: 'TRMT_1_SEGMENTED_CONTROLLER',\n Trmt_2_Giving_donate_selection_group_header_above:\n 'TRMT_2_SELECTION_GROUP_ABOVE',\n Trmt_3_Giving_donate_selection_group_header_bellow:\n 'TRMT_3_SELECTION_GROUP_BELOW',\n },\n CONTENT_KEYS: {\n ONE_TIME: 'oneTime',\n WEEK: 'weekly',\n MONTH: 'monthly',\n YEAR: 'yearly',\n },\n VALUE: {\n ONE_TIME: null,\n WEEK: 'Week',\n MONTH: 'Month',\n YEAR: 'Year',\n },\n DISCLAIMER_CONTENT: 'helpText1',\n};\n\nexport const defaultloggingBlocklist = [\n 'password',\n 'pr_password',\n 'email',\n 'cardNumber',\n 'expiry_value',\n 'cvv',\n 'firstName',\n 'lastName',\n 'fullName',\n 'billingLine1',\n 'billingLine2',\n 'telephone',\n 'shippingFirstName',\n 'shippingLastName',\n 'shippingLine1',\n 'shippingLine2',\n 'giftAidAddress',\n 'bankAccountNumber',\n];\n\nexport const PII = '**PII**';\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { CaptionText } from '@paypalcorp/pp-react';\nimport { Message } from '@paypalcorp/worldready-react';\nimport TemplateData from '../../utility/getTemplateData';\nimport { sanitizeOrgName } from '../../utility/domUtils';\nimport { RECURRING_EXPERIMENT } from '../../../../lib/constants';\nimport AppStore from '../../stores/AppStore';\nimport { normalizeNumber, formatAmount } from '../../utility/formator';\n\nexport default function RecurringInfo() {\n const orgname = TemplateData.donationName\n ? sanitizeOrgName(TemplateData.donationName)\n : '';\n const [rpContentHelper, setRpContentHelper] = useState('');\n const [amout, setAmount] = useState('');\n\n useEffect(() => {\n const frequency = AppStore.getSelectedRecurringFrequency();\n\n setRpContentHelper(\n `${RECURRING_EXPERIMENT.DISCLAIMER_CONTENT}${frequency}`\n );\n }, [AppStore.getSelectedRecurringFrequency()]);\n\n useEffect(() => {\n const optInStatus = AppStore.getCoverFeeOptInStatus();\n\n let totalAmount = 0;\n\n if (optInStatus !== undefined && optInStatus === 'checked') {\n totalAmount =\n +Number(AppStore.getDonationAmount()) +\n normalizeNumber(AppStore.getFeeAmount());\n } else {\n totalAmount = +Number(AppStore.getDonationAmount());\n }\n\n const formattedTotalAmount = formatAmount({\n currency: TemplateData.donationCode,\n value: totalAmount,\n });\n\n setAmount(formattedTotalAmount);\n }, [AppStore.getDonationAmount(), AppStore.getCoverFeeOptInStatus()]);\n\n return (\n \n \n \n );\n}\n\nRecurringInfo.propTypes = {\n orgName: PropTypes.string,\n amount: PropTypes.string,\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { loadBodyMovin } from '../../../utility/lazyLoader';\nimport { Checkbox, DropdownMenu } from '@paypalcorp/pp-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { getWorldReady } from '../../../utility/worldReadyUtils';\nimport RecurringInfo from '../RecurringInfo';\nimport { isLTR } from '../../../utility/helper';\nimport AppStore from '../../../stores/AppStore';\n\nconst RecurringCheckBox = ({ frequencies, handleFreqChange }) => {\n const [isAnimating, setIsAnimating] = useState(false);\n const [isChecked, setChecked] = useState(\n AppStore.getDonationRecurring() === 'checked'\n );\n const [selectedValue, setSelectedValue] = useState();\n const [hasOneFreq, setHasOneFreq] = useState();\n const worldReady = getWorldReady();\n const content = hasOneFreq\n ? new MessageFormat(worldReady, {\n id: 'common.recurring-checkbox.recurring_checkbox.one_frequency',\n }).format({\n frequency: frequencies[0].primaryText?.toLowerCase(),\n })\n : new MessageFormat(worldReady, {\n id: 'common.recurring-checkbox.recurring_checkbox.multiple_frequencies',\n }).format();\n\n useEffect(() => {\n const defaultFreq = frequencies[0]?.value;\n setSelectedValue(defaultFreq);\n setHasOneFreq(frequencies?.length === 1);\n }, [frequencies]);\n\n const loadAnimation = (display) => {\n if (!display) {\n return;\n }\n loadBodyMovin().then(() => {\n if (isAnimating) {\n return;\n }\n const animationData = window.heartsAnimationData;\n const bodymovinLibrary = window.bodymovin;\n if (!bodymovinLibrary || !animationData) {\n return;\n }\n setIsAnimating(true);\n bodymovinLibrary.loadAnimation({\n container: document.getElementById('animationContainer'),\n renderer: 'svg',\n loop: 1,\n autoplay: true,\n animationData,\n });\n\n // Destroying with timeout\n setTimeout(() => {\n bodymovinLibrary.destroy();\n setIsAnimating(false);\n }, 1000);\n });\n };\n\n const handleChange = (ev) => {\n let checkboxValue = ev.target.checked;\n let selectedFreq = !checkboxValue ? 'ONE_TIME' : selectedValue;\n setChecked(checkboxValue);\n handleFreqChange(ev, selectedFreq);\n\n loadAnimation(checkboxValue);\n };\n\n const handleDropdownSelection = (e) => {\n const freq = e.target.value;\n\n setSelectedValue(freq);\n\n handleFreqChange(e, freq);\n };\n\n return (\n <>\n \n \n \n \n
\n \n
\n \n {isChecked && (\n
\n {!hasOneFreq ? (\n
\n \n
\n ) : (\n \n )}\n
\n )}\n \n );\n};\n\nRecurringCheckBox.propTypes = {\n frequencies: PropTypes.array,\n handleFreqChange: PropTypes.func,\n};\n\nexport default RecurringCheckBox;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n SegmentedController,\n SegmentedControllerPanel,\n} from '@paypalcorp/pp-react';\nimport AppStore from '../../../stores/AppStore';\n\nconst RecurringSegmentedController = ({ frequencies, handleFreqChange }) => {\n const [selectedTabIdx, setSelectedTabIdx] = useState(0);\n\n useEffect(() => {\n let indx = 0;\n const selectedFrequency = AppStore.getSelectedRecurringFrequency();\n\n for (let i = 0; i < frequencies.length; i++) {\n if (frequencies[i].value === selectedFrequency?.toUpperCase()) {\n indx = i;\n break;\n }\n }\n setSelectedTabIdx(indx);\n }, [frequencies]);\n\n const handleTabSelection = (e, tabIdx) => {\n setSelectedTabIdx(tabIdx);\n const freq = frequencies[tabIdx].value;\n\n handleFreqChange(e, freq);\n };\n\n return frequencies?.length > 0 ? (\n ({\n label: option.primaryText,\n id: `${option.primaryText}-id`,\n panelId: `${option.primaryText}-panelid`,\n }))}\n onClick={handleTabSelection}\n className=\"frequency-options\"\n >\n {frequencies.map((option) => (\n \n ))}\n );\n \n ) : null;\n};\n\nRecurringSegmentedController.propTypes = {\n frequencies: PropTypes.array,\n handleFreqChange: PropTypes.func,\n};\n\nexport default RecurringSegmentedController;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { CaptionText, SingleSelectionGroup } from '@paypalcorp/pp-react';\nimport AppStore from '../../../stores/AppStore';\nimport { RECURRING_EXPERIMENT } from '../../../../../lib/constants';\nimport { Message } from '@paypalcorp/worldready-react';\n\nconst RecurringSingleSelection = ({\n frequencies,\n handleFreqChange,\n showTitle,\n}) => {\n const [selectedValue, setSelectedValue] = useState(frequencies[0]?.value);\n\n useEffect(() => {\n // let indx = 0;\n const selectedFrequency =\n AppStore.getSelectedRecurringFrequency() ?? frequencies[0]?.value;\n\n if (selectedFrequency === 'ONE_TIME') {\n setSelectedValue(selectedFrequency);\n return;\n }\n\n for (let i = 0; i < frequencies.length; i++) {\n if (\n RECURRING_EXPERIMENT.VALUE[frequencies[i].value] === selectedFrequency\n ) {\n setSelectedValue(frequencies[i].value);\n break;\n }\n }\n }, [frequencies]);\n\n const handleSelection = (e) => {\n const value = e.target.value;\n setSelectedValue(value);\n\n handleFreqChange(e, value);\n };\n\n return frequencies?.length > 0 ? (\n
\n {showTitle && (\n \n \n \n )}\n ({\n label: option.primaryText,\n value: option.value,\n id: `${option.primaryText}-id`,\n }))}\n onChange={handleSelection}\n />\n
\n ) : null;\n};\n\nRecurringSingleSelection.propTypes = {\n frequencies: PropTypes.array,\n handleFreqChange: PropTypes.func,\n showTitle: PropTypes.bool,\n};\n\nexport default RecurringSingleSelection;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { RECURRING_EXPERIMENT } from '../../../../lib/constants';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { getWorldReady } from '../../utility/worldReadyUtils';\nimport RecurringCheckBox from './checkbox/recurringCheckbox';\nimport * as AppActions from '../../actions/AppActions';\nimport RecurringSegmentedController from './selectionGroup/segmentedController';\nimport RecurringSingleSelection from './selectionGroup/singleSelection';\nimport {\n trackLinkClick,\n trackRecurringFrequencySelectionClick,\n} from '../../fpti/fpti';\nimport { FPTI_TAGS, LINK_NAME } from '../../fpti/fptiConstants';\n\nconst RecurringComponent = ({\n flow,\n recurringFrequencies = [],\n isCampaigns = false,\n}) => {\n const [frequenciesContent, setFrequenciesContent] = useState([]);\n const worldReady = getWorldReady();\n\n useEffect(() => {\n const supportedFrequencies = [];\n\n if (isCampaigns) {\n const newFreq = {\n primaryText: new MessageFormat(worldReady, {\n id: `common.recurring-checkbox.rp.frequency.${RECURRING_EXPERIMENT.CONTENT_KEYS.MONTH}`,\n }).format(),\n value: 'MONTH',\n };\n\n supportedFrequencies.push(newFreq);\n\n setFrequenciesContent(supportedFrequencies);\n return;\n }\n\n const showOneTimeContent =\n flow ===\n RECURRING_EXPERIMENT.TREATENTS.Ctrl_Giving_donate_recurring_checkbox;\n\n recurringFrequencies.forEach((freq) => {\n if (showOneTimeContent) {\n if (freq !== 'ONE_TIME') {\n const newFreq = {\n primaryText: new MessageFormat(worldReady, {\n id: `common.recurring-checkbox.rp.frequency.${RECURRING_EXPERIMENT.CONTENT_KEYS[freq]}`,\n }).format(),\n value: freq,\n };\n supportedFrequencies.push(newFreq);\n }\n } else {\n const newFreq = {\n primaryText: new MessageFormat(worldReady, {\n id: `common.recurring-checkbox.rp.frequency.${RECURRING_EXPERIMENT.CONTENT_KEYS[freq]}`,\n }).format(),\n value: freq,\n };\n supportedFrequencies.push(newFreq);\n }\n });\n\n setFrequenciesContent(supportedFrequencies);\n }, []);\n\n const selectedFrequencyOption = (e, freq) => {\n let selectedRecurringFrequency = RECURRING_EXPERIMENT.VALUE[freq];\n AppActions.changeSelectedRecurringFrequency({ selectedRecurringFrequency });\n\n if (freq === 'ONE_TIME') {\n AppActions.changeRecurring({\n recurring: 'unchecked',\n });\n } else {\n AppActions.changeRecurring({\n recurring: 'checked',\n });\n }\n\n if (\n flow ===\n RECURRING_EXPERIMENT.TREATENTS.Ctrl_Giving_donate_recurring_checkbox\n ) {\n trackLinkClick(LINK_NAME.RECURRING_CHECKBOX, {\n additionalData: {\n [FPTI_TAGS.CHECKBOX]: freq === 'ONE_TIME' ? 'unchecked' : 'checked',\n },\n });\n } else {\n trackRecurringFrequencySelectionClick();\n }\n };\n\n const displayUI = () => {\n const props = {\n frequencies: frequenciesContent,\n handleFreqChange: selectedFrequencyOption,\n };\n\n switch (flow) {\n case RECURRING_EXPERIMENT.TREATENTS\n .Trmt_1_Giving_donate_segmented_controller:\n return ;\n case RECURRING_EXPERIMENT.TREATENTS\n .Trmt_2_Giving_donate_selection_group_header_above:\n return ;\n case RECURRING_EXPERIMENT.TREATENTS\n .Trmt_3_Giving_donate_selection_group_header_bellow:\n return ;\n case RECURRING_EXPERIMENT.TREATENTS.Ctrl_Giving_donate_recurring_checkbox:\n default:\n return ; // CONTROL\n }\n };\n\n return displayUI();\n};\n\nRecurringComponent.propTypes = {\n flow: PropTypes.string,\n};\n\nexport default RecurringComponent;\n","import React from 'react';\nimport '../../utility/csrf';\nimport AmountWrapper from '../../components/amountWrapper';\nimport NextButton from '../../components/nextButton';\nimport OneTouchNextButton from '../../components/landing/OneTouchNextButton';\nimport CancelAndReturn from '../../components/cancelAndReturn';\nimport GuestButton from '../../components/guestButton';\nimport UserDetailsBanner from '../../components/onetouch/UserDetailsBanner';\nimport OfferDetail from '../../components/offerDetail';\nimport Disclaimer from '../../components/Disclaimer';\nimport VoucherFlowDisclaimer from '../../components/voucherFlowDisclaimer';\nimport CloseButton from '../../components/CloseButton';\nimport ReceiverEligibilityErrorTile from '../error/receiverEligibilityError';\nimport { Link } from '@paypalcorp/pp-react';\nimport { Alert } from '@paypalcorp/pp-react-alert';\nimport { updateGlobalFPTI } from '../../fpti/helper';\nimport { FPTI_TAGS } from '../../fpti/fptiConstants';\nimport { getWorldReady } from '../../utility/worldReadyUtils';\nimport {\n isInContext,\n isMobileOrInContext,\n} from '../../utility/inContextDonation';\nimport DonateHeader from '../../components/common/DonateHeader';\n\nimport templateData from '../../utility/getTemplateData';\nimport {\n hasPersonalizedMessages,\n getPersonalizedMessages,\n} from '../../utility/personalizedMessages';\n\nimport AppStore from '../../stores/AppStore';\nimport * as AppActions from '../../actions/AppActions';\nimport AppDispatcher from '../../dispatcher/AppDispatcher';\nimport * as cpl from '../../utility/cpl';\nimport { GN_CONTENT_TOUCHPOINT, EVENT_NAME } from '../../utility/constants';\nimport PropTypes from 'prop-types';\nimport {\n handleLogIn,\n addShake,\n handleTokenReuse,\n hideSpinnerOverlay,\n showSpinnerOverlay,\n} from '../../utility/helper';\nimport {\n isAuthenticatedUser,\n shouldShowUserBanner,\n isLoggedInUser,\n} from '../../utility/authUtils';\nimport * as amountUtils from '../../components/amount/amountUtils';\n\nimport { withRouter } from 'react-router-dom';\nimport {\n isOldButtonFactory,\n hasPartnerSource,\n} from '../../utility/getTemplateData';\nimport { isCampaigns } from '../../utility/productIntegrationUtils';\nimport { loadBodyMovin, waitForOnload } from '../../utility/lazyLoader';\nimport _isEmpty from 'lodash/isEmpty';\nimport Programs from '../../components/programs/Programs';\nimport RecurringOverlay from '../../components/recurring-checkbox/RecurringOverlay';\nimport _get from 'lodash/get';\nimport NotTaxDeductibleLegalText from '../../components/NotTaxDeductibleLegalText';\nimport { getParameterByName } from '../../utility/queryStringHelper';\nimport CoverFeeCheckbox from '../../components/coverFee/coverFeeCheckbox';\nimport {\n computeAmountAfterFee,\n isOptInCoverFee,\n restoreDonationAmount,\n updateDonationAmount,\n setFeeAmountInStore,\n} from '../../components/coverFee/feeUtils';\nimport withDonate from '../../components/guest/WithDonate';\nimport withTheme from '../../components/withTheme';\nimport AnonymousCheckbox from '../../components/anonymousDonation/anonymousCheckbox';\nimport {\n getPersonalizedAnonymousContent,\n getPersonalizedNoteToPayeeLabel,\n getPersonalizedNoteToPayeeTextboxCommentLabel,\n isCheckoutRail,\n isExternalFlow,\n prepareOrderParams,\n} from '../../utility/productIntegrationUtils';\nimport NoteComponent from '../../components/note';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n trackAnonymousCheckboxClick,\n trackCoverFeeCheckboxClick,\n trackDonateWithCardClick,\n trackDonateWithPayPalClick,\n trackLandingPageIM,\n trackNextClickForCheckout,\n trackLinkClick,\n} from '../../fpti/fpti';\nimport { CPL_PAGE_SPEC, FEATURES } from '../../fpti/fptiConstants';\nimport classNames from 'classnames';\nimport { BodyText, CaptionText, HeadingText } from '@paypalcorp/pp-react';\nimport { addFeature, setEnabledRecurringFrequency } from '../../fpti/helper';\nimport withWorldReady from '../../components/withWorldReady';\nimport {\n Message,\n Context as WorldReadyContext,\n} from '@paypalcorp/worldready-react';\nimport RecurringComponent from '../../components/recurring/recurring';\nimport { RECURRING_EXPERIMENT } from '../../../../lib/constants';\nimport RecurringInfo from '../../components/recurring/RecurringInfo';\nimport { MessageFormat } from '@paypalcorp/worldready';\n\nclass LandingPageComponent extends React.Component {\n constructor(props) {\n super(props);\n const optInStatus = AppStore.getCoverFeeOptInStatus();\n const anonymousStatusInStore = AppStore.getAnonymousStatus();\n const anonymousOptInStatus = !isEmpty(anonymousStatusInStore)\n ? anonymousStatusInStore === 'checked'\n : templateData.anonymousStatus || false;\n\n var cipStatus = null;\n if (getParameterByName('cipStatus') === 'PENDING') {\n cipStatus = 'pending';\n } else if (getParameterByName('cipStatus') === 'FAILED') {\n cipStatus = 'failed';\n }\n updateGlobalFPTI({\n [FPTI_TAGS.SOURCE]: 'adroit',\n [FPTI_TAGS.STATUS]: getParameterByName('cipStatus'),\n [FPTI_TAGS.PROCESS_STATUS]: getParameterByName('processStatus'),\n [FPTI_TAGS.RECURRING_VISUAL_EXPERIMENT]:\n templateData.recurringVisualExperiment ||\n RECURRING_EXPERIMENT.TREATENTS.Ctrl_Giving_donate_recurring_checkbox,\n });\n this.state = {\n hasLogo: templateData.hasLogo,\n subHeaderLabel: templateData.donationName,\n orgName: templateData.charityName,\n donationId: templateData.donationId,\n guestRedirectUrl: templateData.guestRedirectUrl,\n donateDisabled: false,\n recurringEnabled: templateData.recurringEnabled,\n recurringStatus: templateData.recurringStatus === 'checked',\n supportedRecurringFrequencies: templateData.supportedRecurringFrequencies,\n supportedRecurringHelperText: templateData.supportedRecurringHelperText,\n recurringHelpText: '',\n recurringLabel: 'Make this a monthly donation',\n rpContinue: false,\n isAuthenticated: isAuthenticatedUser(),\n memberMandatory: templateData.memberMandatory,\n programNames:\n templateData.donateContext?.program_names || templateData.programNames,\n isRecurringOverlayOpen: false,\n isVoucherFlow: templateData.isVoucherFlow,\n offerProgram: templateData.offerProgram,\n coverFeeEnabled: templateData.coverFeeEnabled,\n coverFeeOptInStatus:\n optInStatus !== undefined\n ? optInStatus === 'checked'\n : templateData.feePayer === 'consumer',\n feeAmount: '',\n formatedFeeAmount: '',\n anonymousEnabled: templateData.anonymousEnabled,\n anonymousOptInStatus,\n hasDisclaimer: hasPersonalizedMessages(GN_CONTENT_TOUCHPOINT),\n cipStatus: cipStatus,\n recurringFlow:\n templateData.recurringVisualExperiment ||\n RECURRING_EXPERIMENT.TREATENTS.Ctrl_Giving_donate_recurring_checkbox,\n showDonationFraud: true,\n };\n }\n\n componentDidMount = () => {\n window.onload = function () {\n setTimeout(function () {\n cpl.logPerformance(CPL_PAGE_SPEC.LANDING_PAGE);\n }, 0);\n };\n\n //Remove this code once we have translated donation fraud message for all locales.\n\n const donationFraudContent = document.getElementById(\n 'donation_fraud_alert'\n )?.innerText;\n if (donationFraudContent === 'landing.donationFraud.disclaimer') {\n this.setState({ showDonationFraud: false });\n }\n AppActions.updateCurrentPage({ currentPage: 'landing' });\n\n // Do not hide spinner if coming to page with already completed payment token\n if (templateData.paymentStatus !== 'complete') {\n hideSpinnerOverlay();\n }\n\n // Adds recurring feature if there is more than one supported frequency\n setEnabledRecurringFrequency();\n\n if (templateData?.supportedRecurringFrequencies?.length > 1) {\n addFeature(FEATURES.RECURRING);\n }\n\n // Checking for cover fee preference if coming from guest page\n if (isOptInCoverFee()) {\n this.setState({ coverFeeOptInStatus: true });\n restoreDonationAmount();\n }\n\n setFeeAmountInStore();\n this.updateFeeAmount();\n\n trackLandingPageIM({\n noteFieldDisplayed: this.shouldShowNote(),\n donationFraudEligibility: String(\n templateData.donationFraudEligibility && this.state.showDonationFraud\n ),\n donationFraudMessageBelowButtons: String(\n templateData.donationFraudMessageBelowButtons\n ),\n });\n\n // Pre-load bodyMovin\n if (templateData.recurringEnabled) {\n waitForOnload().then(() => {\n loadBodyMovin();\n });\n }\n\n if (!isLoggedInUser()) {\n AppActions.showLanguageSelector(true);\n }\n\n // Register for App Dispatcher Messages\n this.registerAppDispatcherMessages();\n };\n updateCipAmountValidation = (showError) => {\n if (showError) {\n this.setState({ showValidationError: true });\n const getValidationErrorMessage = this.getValidationErrorMessage();\n this.setState({\n validationErrorMessage: getValidationErrorMessage,\n });\n } else {\n this.setState({ showValidationError: false });\n this.setState({\n validationErrorMessage: null,\n });\n }\n };\n\n getValidationErrorMessage() {\n const worldReady = getWorldReady();\n const wrmessage = new MessageFormat(worldReady, {\n id: 'landing.cip.pendingAmountError',\n }).format({\n maximumAllowedDonation: amountUtils.formatCurrencyWithoutDecimals({\n value: 999,\n currency: templateData.donationCode,\n }),\n });\n return wrmessage;\n }\n\n componentWillUnmount() {\n AppDispatcher.unregister(this.dispatcherMessages);\n }\n\n registerAppDispatcherMessages = () => {\n this.dispatcherMessages = AppDispatcher.register((payload) => {\n if (payload.action && payload.action.actionType === 'CHANGE_RECURRING') {\n const checked = _get(payload.action, 'item', 'unchecked');\n this.setState({\n recurringStatus: checked === 'checked',\n });\n }\n });\n };\n\n getFPTDATA = () => {\n return {\n amount: AppStore.getDonationAmount(),\n code: AppStore.getDonationCode(),\n symbol: AppStore.getDonationSymbol(),\n };\n };\n\n validateAmountAndNavigateToGuestPage = () => {\n let donationAmount = AppStore.getDonationAmount();\n\n if (amountUtils.isAmountGreaterThanZero(donationAmount)) {\n trackDonateWithCardClick({\n noteFieldDisplayed: this.shouldShowNote(),\n fptiData: {\n is_recurring: this.state.recurringStatus ? 'on' : 'off',\n fee_type: this.state.coverFeeEnabled ? 'offset' : 'none',\n donation_fraud_eligible: String(\n templateData.donationFraudEligibility &&\n this.state.showDonationFraud\n ),\n },\n });\n this.props.history.push(`/donate/guest?token=${templateData.token}`);\n } else {\n addShake();\n }\n };\n\n handleGuest = (event) => {\n event.preventDefault();\n AppActions.changeRecurringModalStatus({\n recurringModalStatus: 'notclosed',\n });\n if (!this.validateDonationAmount()) {\n return;\n }\n\n if (amountUtils.isAmountGreaterThanZero(AppStore.getDonationAmount())) {\n const isRecurringChecked = AppStore.getDonationRecurring() === 'checked';\n\n if (isRecurringChecked && !this.state.memberMandatory) {\n this.openRecurringOverlay();\n } else {\n this.getDonationAmount();\n this.validateAmountAndNavigateToGuestPage();\n }\n\n // Start CPL tracking to get measurements to load guest form\n window.PAYPAL.analytics.startCPLTracking({\n page: 'main:donate:wps:guest:guestform:guestFormComponent:web::',\n action: 'guest_form_loaded',\n uicomp: 'guestForm',\n uitype: 'component',\n });\n }\n };\n\n handleNext = (event) => {\n event.preventDefault();\n if (!this.validateDonationAmount()) {\n return;\n }\n\n let donationAmount = this.getDonationAmount();\n if (amountUtils.isAmountGreaterThanZero(donationAmount)) {\n trackDonateWithPayPalClick({\n noteFieldDisplayed: this.shouldShowNote(),\n fptiData: {\n is_recurring: this.state.recurringStatus ? 'on' : 'off',\n fee_type: this.state.coverFeeEnabled ? 'offset' : 'none',\n donation_fraud_eligible: String(\n templateData.donationFraudEligibility &&\n this.state.showDonationFraud\n ),\n },\n });\n handleLogIn();\n }\n };\n\n handleNextForCheckout = (event) => {\n event.preventDefault();\n if (!this.validateDonationAmount()) {\n return;\n }\n\n trackNextClickForCheckout({ noteFieldDisplayed: this.shouldShowNote() });\n showSpinnerOverlay();\n const orderParams = prepareOrderParams();\n this.props.createOrder(orderParams);\n };\n\n getDonationAmount = () => {\n let donationAmount = AppStore.getDonationAmount();\n\n if (isOptInCoverFee()) {\n const feeAmount = AppStore.getFeeAmount();\n // backup user's original entered amount in store\n AppActions.changeAmountBeforeFee({ amountBeforeFee: donationAmount });\n\n if (feeAmount) {\n donationAmount = computeAmountAfterFee(donationAmount, feeAmount);\n updateDonationAmount(donationAmount);\n }\n }\n\n return donationAmount;\n };\n\n hideValidationError = () => {\n this.setState({\n showValidationError: false,\n });\n };\n\n validateDonationAmount = () => {\n let validationResult =\n amountUtils.validateMinimumDonationAmount('common.amount');\n if (validationResult?.showValidationError) {\n this.setState(validationResult);\n addShake();\n return false;\n }\n\n validationResult = amountUtils.validateMaximumDonationAmount();\n if (validationResult?.showValidationError) {\n this.setState(validationResult);\n addShake();\n return false;\n }\n\n this.setState(validationResult);\n return true;\n };\n\n handleAmountFocus = () => {\n if (\n this.state.showValidationError &&\n (!this.cipFailedOrPending() ||\n (this.cipFailedOrPending() &&\n Number(AppStore.getDonationAmount()) < 1000))\n ) {\n this.hideValidationError();\n }\n };\n\n updateConversionSataus = (status = false) => {\n this.setState({ donateDisabled: status });\n };\n\n handleRecurringChange = (status = false) => {\n this.setState({ recurringStatus: status });\n };\n\n handleRecurringOverlayContinue = () => {\n this.setState({ rpContinue: true });\n this.getDonationAmount();\n this.validateAmountAndNavigateToGuestPage();\n };\n\n handleRecurringOverlayMakeOneTimeDonation = () => {\n AppActions.changeRecurring({\n recurring: 'unchecked',\n });\n AppActions.changeSelectedRecurringFrequency({\n selectedRecurringFrequency: RECURRING_EXPERIMENT.VALUE.ONE_TIME,\n });\n this.getDonationAmount();\n this.validateAmountAndNavigateToGuestPage();\n };\n\n handleAnonymousDonationChange = (status = false) => {\n this.setState({ anonymousOptInStatus: status });\n trackAnonymousCheckboxClick(status);\n };\n\n handleCoverFeeChange = (status = false) => {\n this.setState({ coverFeeOptInStatus: status });\n trackCoverFeeCheckboxClick(status);\n };\n\n updateFeeAmount = () => {\n this.setState({\n feeAmount: AppStore.getFeeAmount(),\n formatedFeeAmount: AppStore.getFormatedFeeAmount(),\n });\n };\n\n openRecurringOverlay = () => {\n this.setState({\n isRecurringOverlayOpen: true,\n });\n };\n\n closeRecurringOverlay = () => {\n this.setState({\n isRecurringOverlayOpen: false,\n });\n };\n\n renderProgramsDropdown = () => {\n if (isOldButtonFactory() || _isEmpty(this.state.programNames)) {\n return null;\n }\n\n return ;\n };\n\n renderDonateButtons = () => {\n if (isCheckoutRail()) {\n return (\n \n );\n }\n\n if (this.state.isAuthenticated) {\n return (\n \n );\n }\n\n return (\n
\n
\n \n
\n \n
\n );\n };\n\n /**\n * Should show note on landing page when charityNote is enabled\n * and recurring is disabled for client flows\n * @return {Boolean} true to show note field\n */\n shouldShowNote = () => {\n const showNoteCondition =\n templateData.charityNoteEnabled &&\n !this.state.recurringStatus &&\n isExternalFlow();\n\n if (showNoteCondition) {\n addFeature(FEATURES.CHARITY_NOTE);\n }\n\n return showNoteCondition;\n };\n\n getPersonalizedContent = () => {\n if (isExternalFlow()) {\n const personalizedMessages = getPersonalizedMessages(\n GN_CONTENT_TOUCHPOINT\n );\n return personalizedMessages?.disclaimer;\n }\n };\n\n landingClass() {\n return classNames({\n gn_donate_wrapper: templateData.bannerUrl,\n donate_wrapper: !templateData.bannerUrl,\n context_gn_wrapper: isInContext(),\n 'user-banner': shouldShowUserBanner(),\n mobile_view: isMobileOrInContext(),\n });\n }\n\n shouldShowSupportText = () => {\n const amountRaised = templateData.campaignTotalAmountRaised || '0';\n const campaignStatus = templateData.campaignStatus;\n return (\n campaignStatus === 'INACTIVE' &&\n +amountRaised >= +templateData.campaignTargetAmount\n );\n };\n\n shouldShowNoDonationText = () => {\n const amountRaised = templateData.campaignTotalAmountRaised || '0';\n const campaignStatus = templateData.campaignStatus;\n return (\n campaignStatus === 'INACTIVE' &&\n ((!templateData.campaignEndTime && amountRaised === '0') ||\n templateData.campaignEndTime !== '')\n );\n };\n\n cipFailedOrPending = () => {\n return (\n this.state.cipStatus === 'failed' || this.state.cipStatus === 'pending'\n );\n };\n\n trackReportMechantClicks = () => {\n trackLinkClick('REPORT_MERCHANT', {\n eventName: EVENT_NAME.DONATE_DONOR_VIEW_REPORT_MERCHANT_PRESSED,\n additionalData: {\n [FPTI_TAGS.FLOW]: templateData.product,\n [FPTI_TAGS.ENCR_RCVR_ID]: templateData.merchantId,\n [FPTI_TAGS.MERCHANT_EMAIL]: templateData.donationEmail,\n },\n });\n };\n\n renderDonationFraudMessage = () => {\n return (\n \n (\n \n {innerMessage}\n \n )}\n />\n \n );\n };\n render() {\n const showUserBanner = shouldShowUserBanner();\n const showSupportText = this.shouldShowSupportText();\n const showNoDonationText = this.shouldShowNoDonationText();\n\n const { TREATENTS } = RECURRING_EXPERIMENT;\n const {\n Ctrl_Giving_donate_recurring_checkbox,\n Trmt_1_Giving_donate_segmented_controller,\n Trmt_2_Giving_donate_selection_group_header_above,\n Trmt_3_Giving_donate_selection_group_header_bellow,\n } = TREATENTS;\n\n const shouldShowRecurringDisclaimer =\n AppStore.getDonationRecurring() === 'checked' &&\n ((this.state.recurringFlow === Ctrl_Giving_donate_recurring_checkbox &&\n templateData.supportedRecurringFrequencies?.length === 3) ||\n Trmt_1_Giving_donate_segmented_controller ===\n this.state.recurringFlow ||\n Trmt_2_Giving_donate_selection_group_header_above ===\n this.state.recurringFlow ||\n Trmt_3_Giving_donate_selection_group_header_bellow ===\n this.state.recurringFlow);\n\n const shouldRenderRecurringVisualExperimentAboveAmount =\n this.state.recurringEnabled &&\n !isCampaigns() &&\n (this.state.recurringFlow === Trmt_1_Giving_donate_segmented_controller ||\n this.state.recurringFlow ===\n Trmt_2_Giving_donate_selection_group_header_above);\n\n const shouldRenderRecurringVisualExperimentBelowAmount =\n this.state.recurringEnabled &&\n !isCampaigns() &&\n this.state.recurringFlow ===\n Trmt_3_Giving_donate_selection_group_header_bellow;\n\n const shouldRenderRecurringVisualExperimentsCheckbox =\n this.state.recurringEnabled &&\n (this.state.recurringFlow === Ctrl_Giving_donate_recurring_checkbox ||\n isCampaigns());\n\n if (!templateData.receiverCountryEligible) {\n return (\n \n \n \n );\n }\n\n return (\n
\n {this.cipFailedOrPending() && (\n \n \n this.state.cipStatus === 'failed' ? (\n {innerMessage}\n ) : null\n }\n maximumAllowedDonation={amountUtils.formatCurrencyWithoutDecimals(\n { value: 999, currency: templateData.donationCode }\n )}\n />\n \n )}\n
\n {showUserBanner && !showNoDonationText && !showSupportText ? (\n \n ) : null}\n {isExternalFlow() && }\n \n {(() => {\n switch (true) {\n case showSupportText:\n return (\n \n \n \n );\n case showNoDonationText:\n return (\n \n \n \n );\n default:\n return (\n \n {shouldRenderRecurringVisualExperimentAboveAmount && (\n \n )}\n {templateData.enablePresetAmounts &&\n shouldRenderRecurringVisualExperimentBelowAmount && (\n \n \n \n )}\n \n {shouldRenderRecurringVisualExperimentBelowAmount && (\n \n )}\n {this.renderProgramsDropdown()}\n {!isCampaigns() && this.state.anonymousEnabled && (\n \n )}\n {this.shouldShowNote() && (\n \n )}\n {this.state.coverFeeEnabled && (\n \n )}\n {shouldRenderRecurringVisualExperimentsCheckbox && (\n \n )}\n {this.state.isVoucherFlow && (\n \n )}\n\n {shouldShowRecurringDisclaimer && }\n\n {templateData.donationFraudEligibility &&\n !templateData.donationFraudMessageBelowButtons &&\n this.state.showDonationFraud &&\n this.renderDonationFraudMessage()}\n {this.renderDonateButtons()}\n {this.state.isVoucherFlow && }\n {hasPartnerSource() && !this.state.isVoucherFlow && (\n \n )}\n \n {this.state.hasDisclaimer && (\n \n )}\n
\n );\n }\n })()}\n
\n {templateData.donationFraudEligibility &&\n templateData.donationFraudMessageBelowButtons &&\n this.state.showDonationFraud &&\n this.renderDonationFraudMessage()}\n \n \n );\n }\n}\n\nLandingPageComponent.propTypes = {\n history: PropTypes.object,\n};\n\nLandingPageComponent.contextType = WorldReadyContext;\n\nconst LandingPage = withRouter(\n withWorldReady(withDonate(withTheme(LandingPageComponent)))\n);\n\nclass Landing extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n displayLanding: !templateData.currentState,\n };\n }\n\n /**\n * For DIRECT(nonWebscr) and POST integrations, there will not be a token in the URL\n * This will break page refresh.\n * Hence adding token here\n */\n addTokenToUrlIfMissing() {\n const token = getParameterByName('token');\n const business = getParameterByName('business');\n const hostedButtonId = getParameterByName('hosted_button_id');\n const campaignId = getParameterByName('campaign_id');\n\n if (!token && !business && !hostedButtonId && !campaignId) {\n this.props.history.replace({\n pathname: '/donate',\n search: `?token=${templateData.token}`,\n });\n }\n }\n\n componentDidMount() {\n if (!this.state.displayLanding) {\n this.props.history.push(templateData.currentState);\n } else {\n handleTokenReuse();\n }\n this.addTokenToUrlIfMissing();\n }\n\n render() {\n return
{this.state.displayLanding ? : null}
;\n }\n}\n\nLanding.propTypes = {\n history: PropTypes.object,\n};\n\nexport default withRouter(Landing);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { AvatarStack } from '@paypalcorp/pp-react';\nimport { DonorAvatar } from '@paypalcorp/donate-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { formatNumber, getWorldReady } from '../utility/worldReadyUtils';\nimport _isEmpty from 'lodash/isEmpty';\n\nconst WhosDonatedBanner = ({\n numberOfContributors,\n contributionsList,\n isLoading,\n}) => {\n let label;\n const worldReady = getWorldReady();\n\n if (numberOfContributors === 1) {\n const donorName = contributionsList?.[0]?.donor_name;\n const donatedAmount = contributionsList?.[0]?.amount;\n // checking for anonymous contributor\n label = _isEmpty(donorName)\n ? new MessageFormat(worldReady, {\n id: `landing.campaigns.oneAnonymousDonorMessage`,\n }).format()\n : new MessageFormat(worldReady, {\n id: `landing.campaigns.oneDonorMessage`,\n }).format({\n donor: donorName,\n amount: donatedAmount,\n });\n } else if (numberOfContributors === 2) {\n const donorOneName = contributionsList?.[0]?.donor_name;\n const donorTwoName = contributionsList?.[1]?.donor_name;\n // checking if any one of contributors is an anonymous contributor\n label =\n _isEmpty(donorOneName) || _isEmpty(donorTwoName)\n ? new MessageFormat(worldReady, {\n id: `landing.campaigns.donorMessage`,\n }).format({\n numberOfContributors: formatNumber(numberOfContributors),\n })\n : new MessageFormat(worldReady, {\n id: `landing.campaigns.twoDonorsMessage`,\n }).format({\n donorOneName: donorOneName,\n donorTwoName: donorTwoName,\n });\n } else {\n label = new MessageFormat(worldReady, {\n id: `landing.campaigns.donorMessage`,\n }).format({\n numberOfContributors: formatNumber(numberOfContributors),\n });\n contributionsList = contributionsList.slice(0, 3);\n }\n return (\n <>\n {!isLoading && contributionsList?.length > 0 && (\n \n {contributionsList.map((data, index) => {\n const showAnonymousAvatar = !data.shareDonorInfo;\n return (\n \n );\n })}\n \n )}\n \n );\n};\n\nWhosDonatedBanner.propTypes = {\n numberOfContributors: PropTypes.number,\n contributionsList: PropTypes.array,\n isLoading: PropTypes.bool,\n};\n\nexport default WhosDonatedBanner;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport useInterval from './hooks/useInterval';\nimport { formatAmount, normalizeNumber } from '../utility/formator';\nimport { BodyText } from '@paypalcorp/pp-react';\nimport { DonorAvatar } from '@paypalcorp/donate-react';\nimport { Message } from '@paypalcorp/worldready-react';\n\nfunction getRandomInt(max) {\n return Math.floor(Math.random() * max);\n}\n\nfunction Flyout({ contributionsList }) {\n const [startShowing, setStartShowing] = useState(false);\n const [showFlyouts, setShowFlyouts] = useState(false);\n const [randomContribution, setRandomContribution] = useState({});\n\n function getRandomContribution() {\n return contributionsList[getRandomInt(contributionsList.length)];\n }\n\n // Start showing flyouts after 10s\n useEffect(() => {\n const flyoutTimer = setTimeout(() => {\n setStartShowing(true);\n setShowFlyouts(true);\n setRandomContribution(getRandomContribution());\n }, 10000);\n return () => clearTimeout(flyoutTimer);\n }, []);\n\n // Get a new contribution and show flyout every 90s\n // Needs useInterval so that the contributionsList gets updated when more are loaded\n useInterval(\n () => {\n setShowFlyouts(true);\n setRandomContribution(getRandomContribution());\n },\n startShowing ? 90000 : null\n );\n\n // Hide flyout every 10s after setting showFlyouts to true\n useEffect(() => {\n if (showFlyouts) {\n const hideInterval = setTimeout(() => {\n setShowFlyouts(false);\n }, 10000);\n return () => clearTimeout(hideInterval);\n }\n }, [showFlyouts]);\n\n function getFlyoutText() {\n if (randomContribution.donor_name) {\n return (\n \n {formatAmount({\n value: normalizeNumber(randomContribution.amount),\n currency: randomContribution.currency_code,\n })}\n \n }\n />\n );\n } else if (randomContribution.shareDonorInfo === false) {\n return (\n \n {formatAmount({\n value: normalizeNumber(randomContribution.amount),\n currency: randomContribution.currency_code,\n })}\n \n }\n />\n );\n }\n }\n\n if (!startShowing || isEmpty(randomContribution)) {\n return null;\n }\n\n return (\n
\n
\n \n
\n {getFlyoutText()}\n
\n );\n}\n\nFlyout.propTypes = {\n contributionsList: PropTypes.array,\n};\n\nexport default Flyout;\n","import React, { useRef, useEffect } from 'react';\n\nexport default function useInterval(callback, delay) {\n const intervalRef = useRef(null);\n const savedCallback = useRef(callback);\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n useEffect(() => {\n const tick = () => savedCallback.current();\n if (typeof delay === 'number') {\n intervalRef.current = window.setInterval(tick, delay);\n return () => window.clearInterval(intervalRef.current);\n }\n }, [delay]);\n return intervalRef;\n}\n","/*\n Regular order is: SELF > TOP > FIRST.\n For donations > 10, TOP should be shown, if is the same person as SELF or FIRST then display TOP only\n For donations <= 10, if SELF is the same person as FIRST then FIRST should displayed only\n*/\nexport function formatFeatured(contributions, totalContributions) {\n const formattedList = [];\n\n if (contributions.length === 0) {\n return formattedList;\n }\n\n const first = contributions.find((c) => c.badge.toUpperCase() === 'FIRST');\n const top = contributions.find((c) => c.badge.toUpperCase() === 'TOP');\n const selfItem = contributions.find((c) => c.badge.toUpperCase() === 'SELF');\n\n if (selfItem) {\n if (selfItem?.id !== top?.id && selfItem?.id !== first?.id) {\n formattedList.push(selfItem);\n }\n }\n if (top && totalContributions > 10) {\n formattedList.push(top);\n }\n if (first) {\n if (first?.id !== top?.id) {\n formattedList.push(first);\n }\n }\n\n return formattedList;\n}\n","import { useEffect, useState } from 'react';\nimport { MAX_MOBILE_WIDTH } from '../setup/clientConstants';\nimport { throttle } from 'lodash';\n\nconst getIsMobile = () => window.innerWidth < MAX_MOBILE_WIDTH;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = useState(getIsMobile());\n\n useEffect(() => {\n const onResize = () => {\n setIsMobile(getIsMobile());\n };\n\n const throttledFn = throttle(onResize, 200);\n\n window.addEventListener('resize', throttledFn);\n\n return () => {\n window.removeEventListener('resize', throttledFn);\n };\n });\n\n return isMobile;\n}\n","export const BTN_FACTORY_FORM = 'buttonFactory';\nexport const BTN_FACTORY_V3_FORM = 'buttonFactoryV3';\nexport const CAMPAIGNS_FORM = 'campaigns';\nexport const AUTH_STATE_ANONYMOUS = 'ANONYMOUS';\nexport const AUTH_STATE_LOGGEDIN = 'LOGGEDIN';\nexport const BTN_FACTORY_MAX_PROGRAMS = 25;\nexport const BTN_FACTORY_MAX_LENGTH_PROGRAMS = 127;\nexport const MAX_MOBILE_WIDTH = 1024;\nexport const MAX_CHARACTERS_RTE = 2500;\nexport const MAX_CHARACTERS_RTE_UPDATE_FORM = 1000;\n\nexport const CAMPAIGN_STATUS = {\n ACTIVE: 'ACTIVE',\n INACTIVE: 'INACTIVE',\n};\n\nexport const COUNTRIES_AND_PERMIT_CURRENCY = {\n BR: 'BRL',\n};\n\nexport const ERRORS = {\n COUNTRY_NOT_SUPPORTED: 'COUNTRY_NOT_SUPPORTED',\n COMPLIANCE: 'COMPLIANCE',\n GENERIC: 'GENERIC',\n OFAC_HIT: 'OFAC_CAMPAIGN_SCAN_HIT',\n RESTRICTED_ACCOUNT: 'RESTRICTED_ACCOUNT',\n RESTRICTED_IMAGE: 'RESTRICTED_IMAGE',\n};\n\nexport const PAYMENT_PRODUCT = {\n PUBLIC_MONEY_POOL: 'PUBLIC_MONEY_POOL',\n DONATE_BUTTON: 'DONATE_BUTTON',\n DONATE_BUTTON_CAMPAIGN: 'DONATE_BUTTON_CAMPAIGN',\n CROWDFUNDING_CAMPAIGNS: 'CROWDFUNDING_CAMPAIGNS',\n};\n","import React, { Suspense, useEffect, useState, useContext } from 'react';\nimport templateData from '../../utility/getTemplateData';\nimport PPCC from '../../components/ppcc/ppcc';\nimport {\n Card,\n Col,\n Button,\n Sheet,\n LoadingSpinner,\n BodyText,\n HeadingText,\n} from '@paypalcorp/pp-react';\nimport classNames from 'classnames';\n\nimport {\n GoalProgressMeter,\n useHasScrolledToPosition,\n CampaignImage,\n Title,\n AdvancedEndDateBadge,\n} from '@paypalcorp/donate-react';\nimport { hideSpinnerOverlay } from '../../utility/helper';\nimport Landing from './landing';\nimport withTheme from '../../components/withTheme';\nimport {\n roundUpAndFormatCurrency,\n parseDateOnly,\n} from '../../utility/formator';\nimport { lazy as reactLazy } from 'react';\nimport { addClass } from '../../utility/domUtils';\nimport WhosDonatedBanner from '../../components/WhosDonatedBanner';\nimport Flyout from '../../components/Flyout';\nimport { fetcher } from '../../utility/domUtils';\nimport { formatFeatured } from '../../utility/donorWall';\nimport ConfirmationSocialShare from '../../confirmation/ConfirmationSocialShare';\nimport {\n trackDonateLandingButtonClick,\n trackUpdatesReadMorePressed,\n} from '../../fpti/fpti';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react';\nimport { Message } from '@paypalcorp/worldready-react';\nimport { useIsMobile } from '../../utility/isMobile';\n\nconst LandingDonorWall = reactLazy(() =>\n import(\n /* webpackChunkName: \"LandingDonorWall\" */ '../../components/LandingDonorWall'\n )\n);\n\nconst LandingRichTextDisplay = reactLazy(() =>\n import(\n /* webpackChunkName: \"LandingRichTextDisplay\" */ '../../components/LandingRichTextDisplay'\n )\n);\n\nconst OrganizerUpdates = reactLazy(() =>\n import(\n /* webpackChunkName: \"LandingOrgUpdates\" */ '../../components/organizerUpdates/OrganizerUpdates'\n )\n);\n\nconst MAX_HEIGHT_BANNER = 380;\nconst MAX_HEIGHT_DESCRIPTION = 800;\nconst MAX_VISIBLE_TRANSACTION_PAGES = 100;\n\nfunction isCampaignEnded(endDate) {\n return (\n endDate && new Date().setHours(0, 0, 0, 0) > endDate?.setHours(0, 0, 0, 0)\n );\n}\n\nconst CampaignLanding = () => {\n const worldReady = useContext(WorldReadyContext);\n const [isPaymentCardOpen, setIsPaymentCardOpen] = useState(false);\n const amountRaised = templateData.campaignTotalAmountRaised || '0';\n const campaignStatus = templateData.campaignStatus;\n const targetAmount = templateData.campaignTargetAmount;\n const campaignEndTime = templateData.campaignEndTime;\n const campaignTotalNumberOfTxn = templateData.campaignTotalNumberOfTxn;\n const amountRaisedWithCurrencySymbol = roundUpAndFormatCurrency(\n amountRaised,\n templateData.donationCode\n );\n const donationName = templateData.donationName ?? '';\n const [contributionsList, setContributionsList] = useState({\n featured: [],\n list: [],\n });\n const [contributionsError, setContributionsError] = useState(false);\n const [currentPage, setCurrentPage] = useState(1);\n const [isLoading, setIsLoading] = useState(true);\n const [retry, setRetry] = useState(0);\n const [enableReadMore, setEnableReadMore] = useState(true);\n const [enableReadMoreUpdate, setEnableReadMoreUpdate] = useState(true);\n const [descriptionHeight, setDescriptionHeight] = useState(\n MAX_HEIGHT_DESCRIPTION\n );\n const [updateHeight, setUpdateHeight] = useState(MAX_HEIGHT_DESCRIPTION);\n const [originalDescriptionHeight, setOriginalDescriptionHeight] = useState(0);\n const [newUpdateHeight, setNewUpdateHeight] = useState(0);\n\n const stickToTop = useHasScrolledToPosition(650);\n\n const isMobile = useIsMobile();\n\n useEffect(() => {\n const fetchData = async () => {\n const result = await fetcher(\n `/donate/api/donorwall/${templateData.productId}/${currentPage}/10`\n ).then((response) => response.json());\n if (result.contributions) {\n setContributionsList({\n featured:\n contributionsList.featured.length !== 0\n ? contributionsList.featured\n : formatFeatured(\n result?.contributions?.contributions?.featured,\n campaignTotalNumberOfTxn\n ),\n list: [\n ...contributionsList.list,\n ...(result?.contributions?.contributions?.list ?? []),\n ],\n });\n } else {\n setContributionsError(true);\n }\n setIsLoading(false);\n };\n\n setIsLoading(true);\n setContributionsError(false);\n fetchData();\n }, [currentPage, retry]);\n\n const handleShowMore = () => {\n setCurrentPage(currentPage + 1);\n };\n\n useEffect(() => {\n addClass('#mainWrapper header.donate_global_nav', ['hide-header']);\n addClass('#donateWrapper', ['is-landing']);\n hideSpinnerOverlay();\n }, []);\n\n const goalAmtWithCurrencySymbol = roundUpAndFormatCurrency(\n targetAmount,\n templateData.donationCode\n );\n\n const campaignGoalTitle = new MessageFormat(worldReady, {\n id: 'common.campaigns.campaignGoal.title',\n }).format({\n goalAmount: goalAmtWithCurrencySymbol,\n });\n\n const getCampaignMessage = (id, formatObj = undefined) =>\n new MessageFormat(worldReady, {\n id: `landing.campaigns.${id}`,\n }).format(formatObj);\n\n const advancedEndDateBadgeContent = {\n minute: getCampaignMessage('minute'),\n minutes: getCampaignMessage('minutes'),\n hour: getCampaignMessage('hour'),\n hours: getCampaignMessage('hours'),\n day: getCampaignMessage('day'),\n days: getCampaignMessage('days'),\n month: getCampaignMessage('month'),\n months: getCampaignMessage('months'),\n year: getCampaignMessage('year'),\n years: getCampaignMessage('years'),\n endsInContent: getCampaignMessage('endsInContent', {\n duration: '{duration}',\n unit: '{unit}',\n }),\n endedContent: getCampaignMessage('endedContent', { date: '{date}' }),\n };\n\n const renderEndDateBadge = () => (\n
\n \n
\n );\n\n const renderTitle = (size) => (\n
\n \n </div>\n );\n\n const renderGoalProgressMeter = () => (\n <div className=\"wrapper-progress-meter\">\n <GoalProgressMeter\n max={targetAmount}\n value={Math.round(amountRaised).toString()}\n steps={amountRaisedWithCurrencySymbol}\n title={campaignGoalTitle}\n className=\"goal-progress-meter\"\n />\n </div>\n );\n\n const renderAvatarStack = () => (\n <div className=\"wrapper-avatar-stack\">\n <WhosDonatedBanner\n numberOfContributors={campaignTotalNumberOfTxn}\n contributionsList={contributionsList.list}\n isLoading={isLoading}\n />\n </div>\n );\n\n const renderDonationName = () => (\n <div className=\"wrapper-donation-name\">\n <BodyText>\n {donationName}\n <PPCC />\n </BodyText>\n </div>\n );\n\n const headerClasses = classNames({\n 'preview-header': true,\n sticky: stickToTop,\n });\n\n const renderHeader = () => (\n <div className=\"wrapper-header\">\n {renderEndDateBadge()}\n {renderTitle('lg')}\n {renderAvatarStack()}\n {renderDonationName()}\n {renderGoalProgressMeter()}\n </div>\n );\n\n const renderDonorWall = () => {\n return (\n <>\n <LandingDonorWall\n contributionsList={contributionsList}\n isLoading={isLoading}\n currentPage={currentPage}\n handleShowMore={handleShowMore}\n totalNumberOfTransactions={campaignTotalNumberOfTxn}\n paginationLimit={MAX_VISIBLE_TRANSACTION_PAGES}\n />\n {campaignStatus === 'ACTIVE' &&\n !isCampaignEnded(new Date(campaignEndTime)) &&\n contributionsList?.list?.length >= 10 ? (\n <Flyout contributionsList={contributionsList.list} />\n ) : null}\n </>\n );\n };\n\n const renderContributionsError = () => {\n return (\n <div style={{ textAlign: 'center' }}>\n <BodyText>\n <Message id=\"landing.campaigns.contributions.error.title\" />\n </BodyText>\n <BodyText style={{ color: '#515354' }}>\n <Message id=\"landing.campaigns.contributions.error.body\" />\n </BodyText>\n <Button\n tertiary\n onClick={() => {\n setRetry(retry + 1);\n }}\n >\n <Message id=\"landing.campaigns.contributions.error.cta\" />\n </Button>\n </div>\n );\n };\n\n const renderContributions = () => {\n if (!contributionsError) {\n return renderDonorWall();\n } else if (currentPage === 1) {\n return renderContributionsError();\n }\n\n return (\n <>\n {renderDonorWall()}\n {renderContributionsError()}\n </>\n );\n };\n\n const stickyHeader = stickToTop && (\n <div className={headerClasses}>\n <div className=\"wrapper-header\">\n {renderEndDateBadge()}\n {renderTitle('sm')}\n {renderGoalProgressMeter()}\n </div>\n </div>\n );\n\n const personalizedMessages = {\n social_title: new MessageFormat(worldReady, {\n id: 'landing.social.subheader',\n }).format(),\n };\n\n const getSocialMessage = (id, params) => {\n return new MessageFormat(worldReady, {\n id: `landing.social.${id}`,\n }).format(params);\n };\n\n function buildSocialMessages() {\n return {\n social: {\n emailSubject: getSocialMessage('emailSubject', {\n donationName: '{donationName}',\n }),\n emailBody: getSocialMessage('emailBody', {\n donationName: '{donationName}',\n url: '{url}',\n }),\n mobileText: getSocialMessage('mobileText', {\n donationName: '{donationName}',\n }),\n facebookMessage: getSocialMessage('facebookMessage', {\n donationName: '{donationName}',\n url: '{url}',\n }),\n twitterMessage: getSocialMessage('twitterMessage', {\n donationName: '{donationName}',\n }),\n whatsappMessage: getSocialMessage('whatsappMessage', {\n donationName: '{donationName}',\n }),\n copyLinkHeader: getSocialMessage('copyLinkHeader'),\n copyLinkSubheaderBefore: getSocialMessage('copyLinkSubheaderBefore'),\n copyLinkSubheader: getSocialMessage('copyLinkSubheader'),\n copiedText: getSocialMessage('copiedText'),\n copyText: getSocialMessage('copyText'),\n subheader: getSocialMessage('subheader'),\n shareGeneric: getSocialMessage('shareGeneric'),\n },\n };\n }\n\n const socialContent = () => {\n return (\n <div className=\"social-share-wrapper\">\n <HeadingText\n size=\"sm\"\n style={{ textAlign: `${!isMobile ? 'left' : 'center'}` }}\n >\n <Message id=\"landing.social.shareGeneric\" />\n </HeadingText>\n <ConfirmationSocialShare\n campaignId={templateData.productId}\n messages={buildSocialMessages()}\n personalizedMessages={personalizedMessages}\n email={templateData.donationEmail}\n orgName={templateData.charityName}\n isLanding={true}\n />\n </div>\n );\n };\n\n const incrementDescription = (event) => {\n event.preventDefault();\n setDescriptionHeight((height) => {\n const incrementedHeight = height + MAX_HEIGHT_DESCRIPTION;\n if (incrementedHeight >= originalDescriptionHeight)\n setEnableReadMore(false);\n return incrementedHeight;\n });\n };\n\n const incrementUpdate = (event) => {\n trackUpdatesReadMorePressed();\n event.preventDefault();\n setUpdateHeight((height) => {\n const incrementedHeight = height + MAX_HEIGHT_DESCRIPTION;\n if (incrementedHeight >= newUpdateHeight) {\n setEnableReadMoreUpdate(false);\n }\n return incrementedHeight;\n });\n };\n\n const renderReadMore = () =>\n originalDescriptionHeight >= MAX_HEIGHT_DESCRIPTION &&\n enableReadMore && (\n <div className=\"campaign-read-more\">\n <Button tertiary onClick={incrementDescription}>\n <Message id=\"landing.campaigns.readMore\" />\n </Button>\n </div>\n );\n\n const renderReadMoreUpdate = () => {\n if (newUpdateHeight >= MAX_HEIGHT_DESCRIPTION && enableReadMoreUpdate) {\n return (\n <div className=\"campaign-read-more\">\n <Button tertiary onClick={incrementUpdate}>\n <Message id=\"landing.campaigns.readMore\" />\n </Button>\n </div>\n );\n }\n };\n\n return (\n <div className=\"campaign-landing-container\">\n <CampaignImage\n alt=\"\"\n className=\"campaign-landing-banner\"\n src={templateData.bannerUrl}\n />\n {!isMobile && stickyHeader}\n <div className=\"content-container\">\n <div className=\"campaignDetails\" data-testid=\"campaignDetails\">\n <Card.Content>\n <div className=\"campaign-title\">{renderHeader()}</div>\n <div\n className=\"campaign-description\"\n style={{\n maxHeight:\n originalDescriptionHeight >= MAX_HEIGHT_DESCRIPTION\n ? descriptionHeight + 'px'\n : 'unset',\n }}\n >\n <div\n ref={(descriptionContainer) =>\n descriptionContainer &&\n setOriginalDescriptionHeight(\n descriptionContainer.clientHeight\n )\n }\n >\n <Suspense\n fallback={\n <LoadingSpinner size=\"md\" style={{ margin: '0 auto' }} />\n }\n >\n <LandingRichTextDisplay\n campaignDescription={templateData.campaignDescription}\n />\n </Suspense>\n </div>\n {renderReadMore()}\n </div>\n <Suspense\n fallback={\n <LoadingSpinner size=\"md\" style={{ margin: '120px auto' }} />\n }\n >\n <OrganizerUpdates />\n </Suspense>\n <Suspense\n fallback={\n <LoadingSpinner size=\"md\" style={{ margin: '120px auto' }} />\n }\n >\n {renderContributions()}\n </Suspense>\n {campaignTotalNumberOfTxn > 0 && socialContent()}\n </Card.Content>\n </div>\n {!isMobile ? (\n <div className=\"paymentCard\">\n <Landing />\n </div>\n ) : (\n <>\n <Col lg=\"12\" className=\"mobileDonate\">\n <Button\n onClick={() => {\n setIsPaymentCardOpen(!isPaymentCardOpen);\n trackDonateLandingButtonClick({ noteFieldDisplayed: null });\n }}\n >\n <Message id=\"landing.campaigns.donateButton\" />\n </Button>\n </Col>\n <Sheet\n isOpen={isPaymentCardOpen}\n onClose={() => {}}\n title={new MessageFormat(worldReady, {\n id: 'landing.campaigns.donateButton',\n }).format()}\n mobileFixedHeight=\"90\"\n className=\"mobilePreview darkBackground\"\n wrapperClassName=\"mobilePreview-wrapper\"\n skipFormFocus\n >\n <Landing />\n </Sheet>\n </>\n )}\n </div>\n </div>\n );\n};\n\nexport default withTheme(CampaignLanding);\n","/**\n * Card security code input used for adding a card\n */\nimport React from 'react';\nimport { TextInput } from '@paypalcorp/pp-react';\nimport PropTypes from 'prop-types';\n\nimport { cardSpecPropType } from 'prop-validators';\n\nclass CardSecurityCode extends React.Component {\n static propTypes = {\n cardSpec: cardSpecPropType,\n label: PropTypes.string.isRequired,\n errorMessage: PropTypes.string,\n handleChangeSecurityCode: PropTypes.func.isRequired,\n handleFocus: PropTypes.func,\n handleBlur: PropTypes.func,\n dir: PropTypes.string,\n helperText: PropTypes.string,\n };\n\n static defaultProps = {\n handleFocus: () => {},\n handleBlur: () => {},\n };\n\n state = { value: '', showIsRequiredError: false };\n\n /**\n * Handle changing the csc\n * @param {String} securityCode - the csc\n * @return {String} securityCode - numbers only\n */\n handleChangeSecurityCode = ({ target: { value: securityCode } }) => {\n securityCode = securityCode.replace(/\\D+/g, '');\n this.setState({ value: securityCode });\n this.handleCheckForValue(securityCode);\n this.props.handleChangeSecurityCode(securityCode);\n return securityCode;\n };\n\n /**\n * Check for a security code value\n * If the field is required, we should show that this field needs a value\n * @param {String} securityCode - the csc\n */\n handleCheckForValue = (securityCode) => {\n const cscSpecs = this.props.cardSpec.fields.csc;\n const isRequired = cscSpecs.required;\n this.setState({ showIsRequiredError: isRequired && !securityCode });\n };\n\n /**\n * Call parent's handleFocus\n * @param {String} securityCode - the csc\n */\n handleFocus = (securityCode) => {\n this.props.handleFocus(securityCode);\n };\n\n /**\n * Check for a security code value and call parent's handleBlur\n * @param {String} securityCode - the csc\n */\n handleBlur = ({ target: { value: securityCode } }) => {\n this.handleCheckForValue(securityCode);\n this.props.handleBlur(securityCode);\n };\n\n render() {\n const cscSpecs = this.props.cardSpec.fields.csc;\n // let helpText = '●'.repeat(cscSpecs.maxlength)\n const { errorMessage } = this.props;\n\n return (\n <div style={{ margin: '16px 0 0', position: 'relative' }}>\n <TextInput\n type=\"tel\"\n id=\"securityCode\"\n name=\"securityCode\"\n value={this.state.value}\n label={this.props.label}\n maxLength={cscSpecs.maxlength}\n pattern={cscSpecs.pattern}\n required={cscSpecs.required}\n onChange={this.handleChangeSecurityCode}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n errorText={errorMessage}\n dir={this.props.dir}\n helperText={this.props.helperText}\n />\n </div>\n );\n }\n}\n\nexport default CardSecurityCode;\n","import React from 'react';\nimport CardSecurityCode from '../react-card-security-code';\nimport AppStore from '../stores/AppStore';\nimport * as AppActions from '../actions/AppActions';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react';\n\nclass CVVComponent extends React.Component {\n constructor() {\n super();\n this.state = {\n securityCode: '',\n cardSpec: AppStore.getCardSpec().cardSpec,\n errorMessageCSC: '',\n };\n }\n\n componentDidMount() {\n this.props.onRef(this);\n }\n\n componentWillUnmount() {\n this.props.onRef(undefined);\n }\n\n handleChangeSecurityCode(securityCode) {\n this.setState({ securityCode: securityCode });\n this.props.handleSecurityCodeChange(securityCode);\n }\n\n handleFieldFocus(fieldName) {\n this.setState({ [fieldName]: '' });\n }\n\n /*\n * Handle error message for selected field\n */\n handleFieldBlur(value, fieldName, fieldRequired, fieldInvalid, worldReady) {\n let newErrorState = {};\n\n if (value) {\n newErrorState = {\n [fieldName]: this.validateInputValue(\n value,\n fieldName,\n fieldInvalid,\n worldReady\n ),\n };\n } else {\n newErrorState = {\n [fieldName]: new MessageFormat(worldReady, {\n id: `errors.service.${fieldRequired}`,\n }).format(),\n };\n }\n\n this.setState(newErrorState);\n }\n\n /*\n * Validate input\n */\n validateInputValue(value, fieldName, fieldInvalid, worldReady) {\n let {\n cardSpec: {\n fields: { csc = {} },\n },\n } = this.state;\n\n if (fieldName === 'errorMessageCSC') {\n let cscLen = value && value.length;\n let cscMax = csc.maxlength;\n let cscMin = csc.minlength || cscMax;\n\n if (!(cscLen >= cscMin && cscLen <= cscMax)) {\n return new MessageFormat(worldReady, {\n id: `errors.service.${fieldInvalid}`,\n }).format();\n }\n }\n\n return '';\n }\n\n render() {\n const cscLabel = new MessageFormat(this.context, {\n id: 'guest.guestForm.label.csc',\n }).format();\n\n return (\n <div className=\"cvv_component\" id=\"cvv_component\">\n <div className=\"cvv_field\">\n <CardSecurityCode\n showIsRequiredError={true}\n label={cscLabel}\n placeholder={new MessageFormat(this.context, {\n id: 'guest.guestForm.label.cscplaceholder',\n }).format()}\n errorMessage={this.state.errorMessageCSC}\n handleChangeSecurityCode={(value) =>\n this.handleChangeSecurityCode(value)\n }\n handleFocus={(value) => this.handleFieldFocus('errorMessageCSC')}\n handleBlur={(value) =>\n this.handleFieldBlur(\n value,\n 'errorMessageCSC',\n 'REQUIRED_SECURITY_CODE',\n 'INVALID_SECURITY_CODE',\n this.context\n )\n }\n cardSpec={this.state.cardSpec}\n helperText={new MessageFormat(this.context, {\n id: 'guest.guestForm.label.cscnote',\n }).format({\n csc: cscLabel.toLowerCase(),\n })}\n />\n </div>\n </div>\n );\n }\n}\n\nCVVComponent.contextType = WorldReadyContext;\n\nexport default CVVComponent;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { CDN_HOST_NAME } from '../../../utility/constants';\nimport { BodyText, CaptionText } from '@paypalcorp/pp-react-text';\nimport { CreditCardIcon } from '@paypalcorp/pp-react-icons';\nimport _isEmpty from 'lodash/isEmpty';\nimport { Badge } from '@paypalcorp/pp-react-badge';\nimport { Message } from '@paypalcorp/worldready-react';\n\nconst PaymentInformation = ({\n source,\n paymentDigits,\n paymentType,\n issuer,\n isPaypalCurrencyConversion,\n funds,\n cardType,\n}) => {\n const [paymentLogo, setPaymentLogo] = useState('');\n\n const transformText = (str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n const getIssuer = () => {\n return issuer?.toLowerCase().split(' ').map(transformText).join(' ');\n };\n\n useEffect(() => {\n let cardImg = source?.payment_card?.issuer?.thumbnail_logo_url ?? null;\n if (\n cardImg === null ||\n _isEmpty(cardImg) ||\n typeof cardImg === 'undefined'\n ) {\n cardImg = `${CDN_HOST_NAME}/digitalassets/c/consumer/p2p/funding-sources/${cardType}.png`;\n }\n setPaymentLogo(cardImg);\n }, []);\n\n return (\n <div className=\"cb-payment-information ppvx_justify-content-between\">\n <div className=\"payment-info\">\n {!_isEmpty(paymentLogo) ? (\n <img src={paymentLogo} className=\"payment-logo\" aria-hidden=\"true\" />\n ) : (\n <CreditCardIcon size=\"xl2\" />\n )}\n <div className=\"pay-info\">\n {issuer && <BodyText>{getIssuer()}</BodyText>}\n <CaptionText className=\"funding-info\">\n <Message\n id=\"guest.crossBorder.label.paymentInformation\"\n type={paymentType}\n number={paymentDigits}\n />\n </CaptionText>\n {!isPaypalCurrencyConversion && (\n <Badge type=\"success\">\n <Message id=\"guest.crossBorder.label.preferred\" />\n </Badge>\n )}\n </div>\n </div>\n <BodyText>{funds}</BodyText>\n </div>\n );\n};\n\nPaymentInformation.propTypes = {\n fundingOptions: PropTypes.object,\n paymentDigits: PropTypes.string,\n paymentType: PropTypes.string,\n issuer: PropTypes.string,\n funds: PropTypes.string,\n isPaypalCurrencyConversion: PropTypes.bool,\n source: PropTypes.object,\n cardType: PropTypes.string,\n};\n\nexport default PaymentInformation;\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { CURRENCY_CONVERSION_OPTIONS } from '../../pages/guest/GuestReview';\nimport { Card } from '@paypalcorp/pp-react-card';\nimport { Sheet } from '@paypalcorp/pp-react-modal';\nimport { IconButton } from '@paypalcorp/pp-react';\nimport { BodyText, CaptionText, HeadingText } from '@paypalcorp/pp-react-text';\nimport { PaypalAppIcon, CreditCardIcon } from '@paypalcorp/pp-react-icons';\nimport { CheckmarkBackgroundIcon } from '@paypalcorp/pp-react-icons';\nimport { Button } from '@paypalcorp/pp-react-buttons';\nimport { checkKeyPressed } from '../../utility/accessibilityUtils';\nimport {\n Context as WorldReadyContext,\n Message,\n} from '@paypalcorp/worldready-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\nconst CurrencyConversionOption = (props) => {\n const getOptionIcon = (type) => {\n if (type === 'paypal-app') {\n return (\n <IconButton\n buttonType=\"secondary\"\n size=\"xl\"\n name={type}\n svgIconComponent={PaypalAppIcon}\n />\n );\n } else if (type === 'credit-cards') {\n return (\n <IconButton\n buttonType=\"secondary\"\n size=\"xl\"\n name={type}\n svgIconComponent={CreditCardIcon}\n />\n );\n }\n };\n\n return (\n <Card\n className={`${props.className} ${\n props.isSelected ? 'show-highlight' : 'border-default'\n }`}\n role=\"checkbox\"\n aria-checked={props.isSelected}\n tabIndex=\"0\"\n onClick={props.handleOptionSelection}\n onKeyDown={(e) =>\n checkKeyPressed(e, () => {\n props.handleOptionSelection();\n })\n }\n >\n <Card.Content>\n <div className=\"conversion-tile\">\n {getOptionIcon(props.type)}\n <div className=\"content\">\n <BodyText className=\"title\" strong>\n {props.title}\n </BodyText>\n {props.rate && <CaptionText strong>{props.rate}</CaptionText>}\n <CaptionText as=\"span\">{props.description}</CaptionText>\n </div>\n <CheckmarkBackgroundIcon\n className={`icon-check ${!props.isSelected && 'hide-icon'}`}\n size=\"sm\"\n />\n </div>\n </Card.Content>\n </Card>\n );\n};\n\nCurrencyConversionOption.propTypes = {\n isSelected: PropTypes.bool,\n title: PropTypes.string,\n rate: PropTypes.string,\n description: PropTypes.string,\n className: PropTypes.string,\n handleOptionSelection: PropTypes.func,\n type: PropTypes.string,\n};\n\nconst CurrencyConversionModal = (props) => {\n const worldready = useContext(WorldReadyContext);\n const { selectedOption, exchangeRate } = props;\n const withPaypaltitle = new MessageFormat(worldready, {\n id: 'guest.crossBorder.label.withPaypal.title',\n }).format();\n const withPaypalRate = new MessageFormat(worldready, {\n id: 'guest.crossBorder.label.withPayPal.rate',\n }).format({\n amount: exchangeRate,\n });\n const withPaypalmessage = new MessageFormat(worldready, {\n id: 'guest.crossBorder.label.withPayPal.message',\n }).format();\n const withCardtitle = new MessageFormat(worldready, {\n id: 'guest.crossBorder.label.withCard.title',\n }).format();\n const withCardmessage = new MessageFormat(worldready, {\n id: 'guest.crossBorder.label.withCard.message',\n }).format();\n const [isPayPalSelected, setPaypalSelected] = useState(\n selectedOption === CURRENCY_CONVERSION_OPTIONS.PAYPAL\n );\n\n const handleClose = () => {\n props.hideModal();\n };\n\n const handleNextButton = () => {\n props.handleOptionSelection(\n isPayPalSelected\n ? CURRENCY_CONVERSION_OPTIONS.PAYPAL\n : CURRENCY_CONVERSION_OPTIONS.ISSUER\n );\n };\n\n return (\n <Sheet\n className=\"currency-conversion-modal\"\n title=\"\"\n hideTitle={true}\n isOpen={props.isOpen}\n onClose={handleClose}\n >\n <HeadingText size=\"lg\" className=\"text-center title\">\n <Message id=\"guest.crossBorder.label.modalTitle\" />\n </HeadingText>\n <BodyText className=\"text-center subTitle\">\n <Message id=\"guest.crossBorder.label.modalSubTitle\" />\n </BodyText>\n\n <CurrencyConversionOption\n isSelected={isPayPalSelected}\n title={withPaypaltitle}\n rate={withPaypalRate}\n description={withPaypalmessage}\n handleOptionSelection={() => setPaypalSelected(true)}\n className=\"option-paypal\"\n type=\"paypal-app\"\n />\n <CurrencyConversionOption\n isSelected={!isPayPalSelected}\n title={withCardtitle}\n description={withCardmessage}\n handleOptionSelection={() => setPaypalSelected(false)}\n className=\"option-card\"\n type=\"credit-cards\"\n />\n <div className=\"text-center\">\n <Button className=\"btn-sheet-wide\" onClick={handleNextButton}>\n <Message id=\"guest.crossBorder.label.modalButton\" />\n </Button>\n </div>\n </Sheet>\n );\n};\n\nCurrencyConversionModal.propTypes = {\n handleOptionSelection: PropTypes.func.isRequired,\n hideModal: PropTypes.func,\n selectedOption: PropTypes.string,\n exchangeRate: PropTypes.string,\n isOpen: PropTypes.bool,\n};\n\nexport default CurrencyConversionModal;\n","import { KEY_DOWN } from './constants';\n\nexport function checkKeyPressed(event, doFunction) {\n if (event.which === KEY_DOWN.SPACE || event.which === KEY_DOWN.ENTER) {\n return doFunction();\n }\n}\n","import React, { useState } from 'react';\nimport AppStore from '../../../stores/AppStore';\nimport PropTypes from 'prop-types';\nimport { BodyText, CaptionText, Button } from '@paypalcorp/pp-react';\nimport {\n showSpinnerOverlay,\n hideSpinnerOverlay,\n} from '../../../utility/helper';\nimport { trackLinkClick } from '../../../fpti/fpti';\nimport { LINK_NAME, PAGE_SPEC } from '../../../fpti/fptiConstants';\nimport CurrencyConversionModal from '../../../components/currencyConversion/CurrencyConversionModal';\nimport _get from 'lodash/get';\nimport _includes from 'lodash/includes';\nimport { Message } from '@paypalcorp/worldready-react';\n\nconst CrossBorder = ({\n isPaypalCurrencyConversion,\n funds,\n getFundingOptions,\n currencyConversionOption,\n getLocalizedCurrency,\n stateCurrency,\n hasFees,\n}) => {\n const fundingOptions = AppStore.getFundingOptions();\n const DYNAMIC_CURRENCY_CONVERSION_TAG = 'DYNAMIC_CURRENCY_CONVERSION';\n\n const rate = `${getLocalizedCurrency(\n '1.00',\n stateCurrency.inCurrency\n )}= ${getLocalizedCurrency(\n stateCurrency.exchangeRate,\n stateCurrency.outCurrency,\n 4\n )}`;\n\n const [currencyConversionOpen, setCurrencyConversionOpen] = useState(false);\n\n const handleOptionSelection = (option) => {\n if (currencyConversionOption !== option) {\n setCurrencyConversionOpen(false);\n showSpinnerOverlay();\n getFundingOptions(option).finally(() => {\n hideSpinnerOverlay();\n });\n } else {\n setTimeout(() => {\n setCurrencyConversionOpen(false);\n }, 300);\n }\n };\n\n /**\n * Returns true if currency conversion options should be displayed\n * @param {Array} fundingSources Funding Sources\n * @return {Boolean} True if currency conversion options should be displayed\n */\n const shouldShowCurrencyConversionOptions = () => {\n const fundingSources = fundingOptions.sources || [];\n const lastFundingSource = fundingSources[fundingSources.length - 1];\n const tags = _get(lastFundingSource, 'tags');\n return _includes(tags, DYNAMIC_CURRENCY_CONVERSION_TAG);\n };\n\n return (\n <>\n {!hasFees && (\n <div className=\"total-donation\">\n <BodyText strong>\n <Message id=\"guest.crossBorder.label.youllDonate\" />\n </BodyText>\n <BodyText strong>{funds}</BodyText>\n </div>\n )}\n\n <div className=\"change-conversion\">\n <BodyText>\n {isPaypalCurrencyConversion ? (\n <Message id=\"guest.crossBorder.label.withPaypal.title\" />\n ) : (\n <Message id=\"guest.crossBorder.label.withCard.title\" />\n )}\n </BodyText>\n <Button\n tertiary\n onClick={() => {\n trackLinkClick(LINK_NAME.CURRENCY_CONVERSION, {\n pageSpec: PAGE_SPEC.CROSS_BORDER_PAGE,\n });\n setCurrencyConversionOpen(true);\n }}\n >\n <Message id=\"guest.crossBorder.label.changeCurrencyButton\" />\n </Button>\n </div>\n {isPaypalCurrencyConversion && (\n <CaptionText>\n <Message id=\"guest.crossBorder.label.conversion\" amount={rate} />\n </CaptionText>\n )}\n\n {shouldShowCurrencyConversionOptions() && (\n <div className=\"conversion-message\">\n {isPaypalCurrencyConversion ? (\n <CaptionText>\n {AppStore.getUserCountry() === 'US' ? (\n <Message id=\"guest.crossBorder.label.spread\" />\n ) : (\n <Message id=\"guest.crossBorder.label.fee\" />\n )}\n </CaptionText>\n ) : null}\n </div>\n )}\n\n <CurrencyConversionModal\n isOpen={currencyConversionOpen}\n exchangeRate={rate}\n handleOptionSelection={handleOptionSelection}\n hideModal={() => setCurrencyConversionOpen(false)}\n selectedOption={currencyConversionOption}\n />\n </>\n );\n};\n\nCrossBorder.propTypes = {\n isPaypalCurrencyConversion: PropTypes.bool,\n funds: PropTypes.string,\n handleCurrencyConversionClick: PropTypes.func,\n exchangeRate: PropTypes.string,\n hasFees: PropTypes.bool,\n};\n\nexport default CrossBorder;\n","import React, { useContext, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n BodyText,\n IconButton,\n QuestionSmIcon,\n Sheet,\n Button,\n} from '@paypalcorp/pp-react';\nimport {\n Message,\n Context as WorldReadyContext,\n} from '@paypalcorp/worldready-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\n\nconst FeePricing = ({ feeAmounts, getLocalizedCurrency }) => {\n const worldReady = useContext(WorldReadyContext);\n const [openHelperSheet, setOpenHelperSheet] = useState(false);\n\n const paymentAmount = getLocalizedCurrency(\n feeAmounts?.payment_amount?.value || '0.00',\n feeAmounts?.payment_amount?.currency || 'USD'\n );\n\n const totalFee = getLocalizedCurrency(\n feeAmounts?.total_fee?.value || '0.00',\n feeAmounts?.total_fee?.currency || 'USD'\n );\n\n const totalAmountPaid = getLocalizedCurrency(\n feeAmounts?.total_amount_paid?.value || '0.00',\n feeAmounts?.total_amount_paid?.currency || 'USD'\n );\n\n return (\n <>\n <div className=\"fee-donation\">\n <BodyText>\n <Message id=\"guest.reviewFees.donation\" />\n </BodyText>\n <BodyText>{paymentAmount}</BodyText>\n </div>\n <div className=\"fee-donation\">\n <BodyText className=\"pricing-fee\">\n <Message id=\"guest.reviewFees.fee\" />\n <IconButton\n className=\"tooltip-icon-button\"\n buttonType=\"tertiary\"\n svgIconComponent={QuestionSmIcon}\n size=\"sm\"\n onClick={() => setOpenHelperSheet(true)}\n >\n <Message id=\"guest.reviewFees.helperTitle\" />\n </IconButton>\n </BodyText>\n <BodyText>{totalFee}</BodyText>\n </div>\n <div className=\"fee-donation\">\n <BodyText strong>\n <Message id=\"guest.reviewFees.total\" />\n </BodyText>\n <BodyText strong>{totalAmountPaid}</BodyText>\n </div>\n\n <Sheet\n className=\"pricing-helper-sheet\"\n id=\"pricing-helper-sheet\"\n title={new MessageFormat(worldReady, {\n id: 'guest.reviewFees.helperTitle',\n }).format()}\n hideTitle={false}\n isOpen={openHelperSheet}\n onClose={() => setOpenHelperSheet(false)}\n >\n <BodyText className=\"helper-text-description\">\n <Message id=\"guest.reviewFees.helperDescription\" />\n </BodyText>\n <div className=\"button-link\">\n <Button\n as=\"a\"\n target=\"_blank\"\n href=\"/webapps/mpp/paypal-fees\"\n role=\"button\"\n secondary\n >\n <Message id=\"guest.reviewFees.helperButton\" />\n </Button>\n </div>\n </Sheet>\n </>\n );\n};\n\nFeePricing.propTypes = {\n feeAmounts: PropTypes.object,\n getLocalizedCurrency: PropTypes.func,\n};\n\nexport default FeePricing;\n","import React from 'react';\nimport AppStore from '../../stores/AppStore';\nimport * as AppActions from '../../actions/AppActions';\nimport TemplateData from '../../utility/getTemplateData';\nimport PropTypes from 'prop-types';\nimport { showSpinnerOverlay, hideSpinnerOverlay } from '../../utility/helper';\nimport CancelAndReturn from '../../components/cancelAndReturn';\nimport _get from 'lodash/get';\nimport _isEmpty from 'lodash/isEmpty';\nimport _find from 'lodash/find';\nimport DonateGiftAid from '../../guest-payment-components/DonateGiftAid';\nimport { formatCurrencyAsString } from '../../utility/formator';\nimport { withRouter } from 'react-router-dom';\nimport { observeUntilEventObserved } from '../../utility/helper';\nimport { fetcher } from '../../utility/domUtils';\nimport CVVComponent from '../../containers/cvv-component';\nimport withDonate from '../../components/guest/WithDonate';\nimport withTheme from '../../components/withTheme';\nimport ThreeDSContainer from '../../components/threeDS/ThreeDSContainer';\nimport {\n Alert,\n Button,\n BodyText,\n CaptionText,\n Row,\n Col,\n} from '@paypalcorp/pp-react';\nimport CloseButton from '../../components/CloseButton';\nimport BackButton from '../../components/BackButton';\nimport DonateHeader from '../../components/common/DonateHeader';\nimport PaymentInformation from './guestReviewComponents/PaymentInformation';\nimport CrossBorder from './guestReviewComponents/CrossBorder';\nimport FeePricing from './guestReviewComponents/FeePricing';\nimport {\n isExternalFlow,\n isPPUnlistedCampaign,\n} from '../../utility/productIntegrationUtils';\nimport { isInContext } from '../../utility/inContextDonation';\nimport {\n track3DSProceedToPayment,\n trackErrorIM,\n trackGuestReviewPageDonateClick,\n trackLinkClick,\n} from '../../fpti/fpti';\nimport { LINK_NAME, PAGE_SPEC } from '../../fpti/fptiConstants';\nimport withWorldReady from '../../components/withWorldReady';\nimport {\n Message,\n Context as WorldReadyContext,\n} from '@paypalcorp/worldready-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport MessageWithHTML from '../../components/MessageWithHtml';\n\nconst donateGiftPercentage = AppStore.getGiftAidItExtraAmount();\n\nexport const CURRENCY_CONVERSION_OPTIONS = {\n PAYPAL: 'PAYPAL',\n ISSUER: 'ISSUER',\n};\n\nclass GuestReview extends React.Component {\n constructor(props) {\n super(props);\n\n const isRecurring = AppStore.getDonationRecurring() === 'checked';\n const stateConversionWithPayPal = this.getStateForConversionWithPayPal();\n\n this.state = {\n subHeaderLabel: TemplateData.donationName,\n donationId: AppStore.getSelectedProgram() || TemplateData.donationId,\n orgName: TemplateData.charityName,\n amountDecimalPoint: TemplateData.donationDecimalPoint || '.',\n decimalPoint: TemplateData.donationDecimalPoint || '.',\n isRecurring,\n ...stateConversionWithPayPal,\n showCVVField: false,\n securityCode: '',\n isCurrencyConversionModalOpen: false,\n selectedRecurringFrequency: AppStore.getSelectedRecurringFrequency(),\n };\n this.getFundingOptions = this.getFundingOptions.bind(this);\n }\n\n endCustomCPLTracking = () => {\n const spinnerOverlay = document.getElementById('spinnerOverlay');\n\n if (spinnerOverlay.style.display === 'none') {\n // From tesla flow we don't have the spinner\n window.PAYPAL.analytics.endCPLTracking({\n page: 'main:donate:wps:guest:crossBorder:web::',\n action: 'crossborder_page_loaded',\n uicomp: 'crossBorder',\n uitype: 'page',\n });\n } else {\n // From guest form we need to wait for the spinner to disappear\n observeUntilEventObserved(\n spinnerOverlay,\n { attributes: true },\n (observer) => {\n if (spinnerOverlay.style.display === 'none') {\n window.PAYPAL.analytics.endCPLTracking({\n page: 'main:donate:wps:guest:crossBorder:web::',\n action: 'crossborder_page_loaded',\n uicomp: 'crossBorder',\n uitype: 'page',\n });\n\n observer.disconnect();\n return;\n }\n }\n );\n }\n };\n\n componentDidMount() {\n this.endCustomCPLTracking();\n }\n\n getStateForConversionWithPayPal() {\n const fundingOptions = AppStore.getFundingOptions();\n const myData = AppStore.getAllData() || {};\n const cardType = _get(myData, 'cardSpec.cardSpec.type', '')\n .replace(/[.,_]|\\s\\(.*\\)/g, '')\n .replace(/[\\s_]/g, '-')\n .toLowerCase();\n const [fundingSources] = fundingOptions ? fundingOptions.sources : [];\n let paymentNetwork = fundingSources.payment_card.network.toLowerCase();\n paymentNetwork =\n paymentNetwork.charAt(0).toUpperCase() + paymentNetwork.slice(1);\n const paymentDigits = fundingSources.payment_card.last_4;\n let paymentType = (fundingSources?.payment_card?.type ?? '').toLowerCase();\n paymentType =\n paymentType && paymentType.charAt(0).toUpperCase() + paymentType.slice(1);\n const issuer = fundingSources.payment_card.issuer.name;\n const exchangeRate = parseFloat(\n fundingOptions.currency_conversion?.exchange_rate || '0.00'\n ).toString();\n const fundsIn = fundingOptions.currency_conversion?.funds_in || '0.00';\n const fundsOut = fundingOptions.currency_conversion?.funds_out || '0.00';\n const feeAmounts = fundingOptions.fee_amount || null;\n const amount = this.getLocalizedCurrency(\n fundingSources.payment_card.amount.value,\n fundingSources.payment_card.amount.currency\n );\n\n return {\n exchangeRate,\n paymentCard: `${paymentNetwork} x-${paymentDigits}`,\n paymentDigits,\n paymentType,\n source: fundingSources,\n issuerName: issuer,\n inAmount: fundsIn.value,\n inCurrency: fundsIn.currency,\n inSymbol: fundsIn.symbol,\n outAmount: fundsOut.value,\n outCurrency: fundsOut.currency,\n outSymbol: fundsOut.symbol,\n currencyConversionOption: CURRENCY_CONVERSION_OPTIONS.PAYPAL,\n cardType,\n feeAmounts,\n currencyConversion: fundingOptions.currency_conversion,\n fundingCode: !_isEmpty(fundingOptions.currency_conversion)\n ? 'CROSS_BORDER'\n : 'PAYER_FEE',\n currencyCode: fundingOptions.currencyCode,\n amount,\n };\n }\n\n getStateForConversionWithIssuer() {\n const fundingOptions = AppStore.getFundingOptions();\n const [fundingSources] = fundingOptions ? fundingOptions.sources : [];\n const amount = this.getLocalizedCurrency(\n fundingSources.payment_card.amount.value,\n fundingSources.payment_card.amount.currency\n );\n const symbol = AppStore.getDonationSymbol();\n const currency = AppStore.getDonationCode();\n const feeAmounts = fundingOptions.fee_amount || null;\n\n // No currency_conversion. fundsIn and fundsOut will not be available.\n return {\n amount,\n symbol,\n currency,\n currencyConversionOption: CURRENCY_CONVERSION_OPTIONS.ISSUER,\n currencyConversion: fundingOptions.currency_conversion,\n feeAmounts,\n };\n }\n\n updateFundingOptionsState() {\n const fundingOptions = AppStore.getFundingOptions();\n if (!fundingOptions.currency_conversion) {\n this.setState(this.getStateForConversionWithIssuer());\n } else {\n this.setState(this.getStateForConversionWithPayPal());\n }\n }\n\n getLocalizedCurrency = (amount, currency, totalDecimals = 2) => {\n const formatedAmount = {\n value: parseFloat(amount).toFixed(totalDecimals),\n currency: currency,\n maximumFractionDigits: totalDecimals,\n };\n const newAmount = formatCurrencyAsString(formatedAmount);\n return newAmount;\n };\n\n handleCurrencyConversionClick = () => {\n trackLinkClick(LINK_NAME.CURRENCY_CONVERSION, {\n pageSpec: PAGE_SPEC.CROSS_BORDER_PAGE,\n });\n this.showCurrencyConversionModal();\n };\n\n showCurrencyConversionModal = () => {\n this.setState({\n isCurrencyConversionModalOpen: true,\n });\n };\n\n hideCurrencyConversionModal = () => {\n this.setState({\n isCurrencyConversionModalOpen: false,\n });\n };\n\n handleDonateClick = () => {\n if (this.state.showCVVField) {\n const cvv = document.getElementById('securityCode').value;\n this.childCVVInfo.handleFieldBlur(\n cvv,\n 'errorMessageCSC',\n 'REQUIRED_SECURITY_CODE',\n 'INVALID_SECURITY_CODE'\n );\n\n const hasError =\n document.getElementsByClassName('vx_has-error-with-message').length > 0;\n if (!cvv || hasError) {\n return;\n }\n }\n const fundingOptions = AppStore.getFundingOptions();\n const contingencies = _get(fundingOptions, 'contingencies') || [];\n const threeDSContingency =\n _find(contingencies, { action: '3D_SECURE_DATA_COLLECTION_REQUIRED' }) ||\n {};\n\n if (!_isEmpty(threeDSContingency)) {\n this.threeDSContainer.initializeThreeDS();\n return;\n }\n\n // All contingencies resolved\n this.processDonation();\n };\n\n processDonation = () => {\n showSpinnerOverlay();\n\n trackGuestReviewPageDonateClick({\n isCvvSend: this.state.securityCode?.length > 0,\n });\n\n return this.props.doFulfilment({\n securityCode: this.state.securityCode,\n });\n };\n\n handleGiftAidOption = (giftAidState) => {\n AppActions.updateGiftaidItFlag({ giftAidItFlag: giftAidState });\n };\n\n getFundingOptions(currencyConversionType) {\n let fundingOptions = AppStore.getFundingOptions();\n const fundingSources = fundingOptions.sources || [];\n const lastFundingSource = fundingSources[fundingSources.length - 1];\n const paymentCardId = _get(lastFundingSource, 'payment_card.id');\n\n return fetcher('/donate/guest/fundingOptions', {\n method: 'POST',\n body: JSON.stringify({\n amount: AppStore.getDonationAmount(),\n code: AppStore.getDonationCode(),\n fundingOptionId: AppStore.getFundingOptions().id,\n preferences: {\n currency_conversion: [\n {\n payment_card_id: paymentCardId,\n type: currencyConversionType,\n validity: 'TRANSACTION',\n },\n ],\n },\n consentShareAddress: AppStore.getShareAddress(),\n token: TemplateData.token,\n onboardingEnabled: TemplateData.onboardingEnabled,\n }),\n })\n .then((response) => response.json())\n .then((result) => {\n // The funding options data format returned by the server is\n // different for ISSUER and PAYPAL. Handle it appropriately.\n\n // For conversion with 'ISSUER'\n if (currencyConversionType === CURRENCY_CONVERSION_OPTIONS.ISSUER) {\n fundingOptions = _get(result, 'data.fundingOpt[0]');\n } else {\n // For conversion with 'PAYPAL'\n fundingOptions = _get(result, 'fundingOpts[0]');\n }\n\n // Handle error case where fundingOptions call succeeds\n // but no data is returned\n if (_isEmpty(fundingOptions)) {\n trackErrorIM({\n errorCode: currencyConversionType,\n errorMessage: 'FUNDING_OPTIONS_EMPTY_CROSSBORDER',\n });\n this.props.history.push(\n `/donate/error/payment?token=${TemplateData.token}`\n );\n return;\n }\n\n // If CVV contingencies are present and has not been resolved,\n // then display cvv component\n const contingencies = _get(fundingOptions, 'contingencies');\n const hasCvvContingency = _find(contingencies, {\n action: 'CVV_REQUIRED',\n });\n const isCvvContingencyResolved = _get(\n result,\n 'data.contingencyResolutionStatus.cvvContingencyResolved',\n false\n );\n\n this.setState({\n showCVVField: hasCvvContingency && !isCvvContingencyResolved,\n });\n\n // Updating store with funding options\n AppActions.updateFundingOptions({ fundingOptions });\n\n this.updateFundingOptionsState();\n })\n .catch(() => {\n this.props.history.push(\n `/donate/error/payment?token=${TemplateData.token}`\n );\n })\n .finally(() => {\n hideSpinnerOverlay();\n });\n }\n\n handleSecurityCodeChange = (securityCode) => {\n this.setState({\n securityCode: securityCode,\n });\n };\n\n handleThreeDSStepUpAuthSuccess = () => {\n this.props.toggleSpinner(true);\n\n track3DSProceedToPayment({\n isCvvSend: this.state.securityCode?.length > 0,\n });\n\n this.props.doFulfilment({\n securityCode: this.state.securityCode,\n });\n };\n\n handleThreeDSStepUpAuthFailure = () => {\n // Unrecoverable error !!\n this.props.history.push('/donate/error/payment');\n };\n\n handleThreeDSFailure = () => {\n // Unrecoverable error !!\n this.props.history.push('/donate/error/threeDS');\n };\n\n render() {\n const worldReady = this.context;\n const inAmount = this.getLocalizedCurrency(\n this.state.inAmount,\n this.state.inCurrency\n );\n const outAmount = this.getLocalizedCurrency(\n this.state.outAmount,\n this.state.outCurrency\n );\n\n const giftaidFlag = AppStore.getGiftaidItFlagStatus();\n\n const getRecurringLabel = () => {\n switch (this.state.selectedRecurringFrequency) {\n case 'Week':\n return 'donateNowRec.weekly';\n case 'Month':\n return 'donateNowRec.monthly';\n case 'Year':\n return 'donateNowRec.yearly';\n default:\n return 'donateNowRec.monthly';\n }\n };\n\n const { showCVVField } = this.state;\n\n return (\n <div\n className={`${\n TemplateData.bannerUrl ? 'gn_donate_wrapper' : 'donate_wrapper'\n } ${isInContext() ? 'context_gn_wrapper' : ''}`}\n >\n <DonateHeader />\n {showCVVField && (\n <Row className=\"alert-container mb-8\">\n <Alert type=\"warning\">\n <Message\n id=\"guest.guestForm.label.cscwarning\"\n csc={new MessageFormat(worldReady, {\n id: 'guest.guestForm.label.csc',\n })\n .format()\n .toLowerCase()}\n />\n </Alert>\n </Row>\n )}\n {isExternalFlow() && (\n <>\n <BackButton inverse />\n <CloseButton inverse />\n </>\n )}\n\n <div id=\"crossBorderContainer\" className=\"cross-border\">\n {TemplateData.isGiftaiditEnabled && (\n <DonateGiftAid\n isAlreadyEnrolled={giftaidFlag}\n showAddress={false}\n addressData=\"\"\n isChecked={giftaidFlag}\n handleGiftAidOption={this.handleGiftAidOption}\n giftaidInfo={{\n currency: this.state.outSymbol,\n amount: this.state.outAmount,\n orgName: this.state.subHeaderLabel,\n donateGiftPercentage: donateGiftPercentage,\n donationCode: AppStore.getDonationCode(),\n }}\n />\n )}\n <Row>\n <Col form=\"full\">\n <BodyText style={{ margin: '28px 0' }}>\n <Message id=\"guest.crossBorder.label.donatingFrom\" />\n </BodyText>\n </Col>\n </Row>\n <PaymentInformation\n fundingOptions={AppStore.getFundingOptions()}\n paymentDigits={this.state.paymentDigits}\n paymentType={this.state.paymentType}\n source={this.state.source}\n issuer={this.state.issuerName}\n isPaypalCurrencyConversion={\n this.state.currencyConversionOption ===\n CURRENCY_CONVERSION_OPTIONS.PAYPAL\n }\n funds={this.state.amount}\n cardType={this.state.cardType}\n />\n\n {showCVVField && (\n <CVVComponent\n onRef={(ref) => (this.childCVVInfo = ref)}\n handleSecurityCodeChange={this.handleSecurityCodeChange}\n />\n )}\n\n {isPPUnlistedCampaign() && !_isEmpty(this.state.feeAmounts) && (\n <FeePricing\n feeAmounts={this.state.feeAmounts}\n getLocalizedCurrency={this.getLocalizedCurrency}\n />\n )}\n\n {this.state.fundingCode === 'CROSS_BORDER' && (\n <CrossBorder\n hasFees={!_isEmpty(this.state.feeAmounts)}\n isPaypalCurrencyConversion={\n this.state.currencyConversionOption ===\n CURRENCY_CONVERSION_OPTIONS.PAYPAL\n }\n funds={\n this.state.currencyConversionOption ===\n CURRENCY_CONVERSION_OPTIONS.PAYPAL\n ? inAmount\n : this.state.amount\n }\n getFundingOptions={this.getFundingOptions}\n currencyConversionOption={this.state.currencyConversionOption}\n getLocalizedCurrency={this.getLocalizedCurrency}\n setSelectedOption={(currencyConversionType) =>\n this.setState({\n currencyConversionOption: currencyConversionType,\n })\n }\n stateCurrency={{\n inCurrency: this.state.inCurrency,\n exchangeRate: this.state.exchangeRate,\n amountDecimalPoint: this.state.amountDecimalPoint,\n inSymbol: this.state.inSymbol,\n outCurrency: this.state.outCurrency,\n }}\n />\n )}\n\n <div className=\"legal-text text-center\">\n <CaptionText>\n <MessageWithHTML\n id=\"guest.crossBorder.label.policies\"\n country={TemplateData.country}\n />\n </CaptionText>\n </div>\n\n <div className=\"text-center\">\n <Button\n className=\"btn-wide\"\n id=\"donate-button\"\n disabled={this.props.disabled}\n onClick={this.handleDonateClick}\n >\n {this.state.isRecurring ? (\n <Message\n id={`guest.guestForm.label.${getRecurringLabel()}`}\n amount={outAmount}\n />\n ) : (\n <Message id=\"guest.guestForm.label.donatenow\" />\n )}\n </Button>\n </div>\n <div className=\"cross-border-cancel-return\">\n <CancelAndReturn />\n </div>\n\n <ThreeDSContainer\n onThreeDSStepUpAuthNotRequired={this.handleThreeDSStepUpAuthSuccess}\n onThreeDSStepUpAuthSuccess={this.handleThreeDSStepUpAuthSuccess}\n onThreeDSStepUpAuthFailure={this.handleThreeDSFailure}\n onThreeDSFailure={this.handleThreeDSFailure}\n onRef={(ref) => (this.threeDSContainer = ref)}\n />\n </div>\n </div>\n );\n }\n}\n\nGuestReview.propTypes = {\n doFulfilment: PropTypes.func,\n history: PropTypes.object,\n toggleSpinner: PropTypes.func,\n disabled: PropTypes.bool,\n};\n\nGuestReview.contextType = WorldReadyContext;\n\nexport default withRouter(withWorldReady(withDonate(withTheme(GuestReview))));\n","import withPageTrack from '../../confirmation/withPageTrack';\nimport withPostTransactionRequest from '../../confirmation/withPostTransactionRequest';\nimport PendingView from '../../confirmation/PendingView';\nimport SuccessView from '../../confirmation/SuccessView';\n\nconst FLOW = 'guest';\nconst POST_TRANSACTION_URL = '/donate/guest/postTransaction';\n\nexport const GuestConfirmationPending = withPageTrack(\n withPostTransactionRequest(PendingView, POST_TRANSACTION_URL),\n FLOW,\n 'pending'\n);\n\nexport const GuestConfirmationSuccess = withPageTrack(\n withPostTransactionRequest(SuccessView, POST_TRANSACTION_URL),\n FLOW,\n 'success'\n);\n","import React, { useEffect } from 'react';\nimport { HeadingText, BodyText, Link, Button } from '@paypalcorp/pp-react';\nimport CloseButton from '../../components/CloseButton';\nimport {\n isInContext,\n isMobileOrInContext,\n} from '../../utility/inContextDonation';\nimport withTheme from '../../components/withTheme';\nimport { isExternalFlow } from '../../utility/productIntegrationUtils';\nimport { addClass } from '../../utility/domUtils';\n\nfunction FullPageError({\n title,\n body,\n body2,\n linkLabel,\n handleLinkClick,\n buttonLabel,\n handleButtonClick,\n showCloseButton = false,\n centerBody = false,\n}) {\n useEffect(() => {\n if (isInContext()) {\n addClass('#mainWrapper header.donate_global_nav', ['hide-header']);\n }\n }, []);\n return (\n <div\n className={`donate_wrapper ${\n isMobileOrInContext() ? 'mobile_view' : ''\n } ${isInContext() ? 'gn_donate_wrapper' : ''} fullPageError`}\n >\n {isExternalFlow() && showCloseButton && <CloseButton />}\n <HeadingText size=\"sm\" className=\"title\">\n {title}\n </HeadingText>\n {body ? (\n <BodyText className={`body ${centerBody ? 'text-center' : ''}`}>\n {body}\n </BodyText>\n ) : null}\n {body2 ? (\n <BodyText className={`body ${centerBody ? 'text-center' : ''}`}>\n {body2}\n </BodyText>\n ) : null}\n\n {buttonLabel ? (\n <Button secondary onClick={handleButtonClick} className=\"cta\">\n {buttonLabel}\n </Button>\n ) : null}\n\n {linkLabel ? (\n <Link className=\"cta\" onClick={handleLinkClick}>\n {linkLabel}\n </Link>\n ) : null}\n </div>\n );\n}\n\nexport default withTheme(FullPageError);\n","import React from 'react';\nimport AppStore from '../../stores/AppStore';\nimport { withRouter } from 'react-router-dom';\nimport withTheme from '../../components/withTheme';\nimport templateData from '../../utility/getTemplateData';\nimport { hideSpinnerOverlay } from '../../utility/helper';\nimport { trackErrorPageIM } from '../../fpti/fpti';\nimport { PAGE_SPEC } from '../../fpti/fptiConstants';\nimport { addClass, removeClass } from '../../utility/domUtils';\nimport FullPageError from './FullPageError';\nimport MessageWithHTML from '../../components/MessageWithHtml';\nimport ReceiverEligibilityErrorTile from '../error/receiverEligibilityError';\nimport { isMobileOrInContext } from '../../utility/inContextDonation';\nimport {\n Context as WorldReadyContext,\n Message,\n} from '@paypalcorp/worldready-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\n\nclass PaymentError extends React.Component {\n static contextType = WorldReadyContext;\n\n constructor() {\n super();\n this.state = {};\n }\n\n getErrorMessage = (id, params) => {\n return new MessageFormat(this.context, {\n id: `errors.paymentError.error.${id}`,\n }).format(params);\n };\n\n componentDidMount = () => {\n addClass('#mainWrapper', ['full-page-error']);\n hideSpinnerOverlay();\n const ERROR_CODE = AppStore.getPaymentError() || '';\n trackErrorPageIM({\n pageSpec: PAGE_SPEC.GUEST_FAILURE_PAGE,\n errorCode: ERROR_CODE,\n });\n };\n\n componentWillUnmount() {\n removeClass('#mainWrapper', ['full-page-error']);\n }\n\n handleTryAgain = () => {\n this.props.history.push(`/donate?token=${templateData.token}`);\n };\n\n render() {\n const ERROR_CODE = AppStore.getPaymentError() || '';\n\n let WENT_WRONG = '',\n TEMP_GLITCH = '',\n tryagain = '';\n\n const hideButton = ERROR_CODE === 'WSM_PAYER_LIMIT_EXCEEDED';\n\n switch (ERROR_CODE) {\n case 'WSM_PAYMENT_DENIED':\n WENT_WRONG = <Message id=\"errors.paymentError.error.DID_NOT_WORK\" />;\n TEMP_GLITCH = (\n <Message id=\"errors.paymentError.error.DIFF_CREDIT_DEBIT\" />\n );\n tryagain = <Message id=\"errors.paymentError.label.trydiffcard\" />;\n break;\n case 'WSM_CANNOT_PAY_SELF':\n WENT_WRONG = (\n <Message id=\"errors.paymentError.error.WSM_CANNOT_PAY_SELF_H\" />\n );\n TEMP_GLITCH = this.getErrorMessage('WSM_CANNOT_PAY_SELF', {\n ['data.htmlTagsProps.name']: templateData.donationName,\n }).replace('{data.htmlTagsProps.name}', templateData.donationName);\n break;\n case 'WSM_PAYER_LIMIT_EXCEEDED':\n WENT_WRONG = (\n <Message id=\"errors.paymentError.error.AmountLimitBreachError\" />\n );\n TEMP_GLITCH = (\n <MessageWithHTML\n id=\"errors.paymentError.error.CustomerCareMessage\"\n customerServiceLink={'/selfhelp/home'}\n />\n );\n break;\n default:\n break;\n }\n\n if (ERROR_CODE === 'WSM_PAYEE_TRANSACTION_LIMIT_EXCEEDED') {\n return (\n <div\n className={`receiver-eligibility-error-container fullPageError ${\n isMobileOrInContext() ? 'mobile_view' : ''\n }`}\n >\n <ReceiverEligibilityErrorTile\n organizationName={templateData.donationName}\n returnUrl={templateData.charityReturnUrl}\n />\n </div>\n );\n }\n return (\n <div>\n <FullPageError\n title={\n WENT_WRONG ||\n 'We’re sorry that we are experiencing temporary difficulties.'\n }\n body={\n TEMP_GLITCH ||\n 'Please try again later. We apologize for the inconvenience.'\n }\n buttonLabel={hideButton ? null : tryagain || 'Return to PayPal'}\n handleButtonClick={this.handleTryAgain}\n showCloseButton={true}\n />\n </div>\n );\n }\n}\n\nexport default withRouter(withTheme(PaymentError));\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport withTheme from '../../components/withTheme';\nimport { hideSpinnerOverlay } from '../../utility/helper';\nimport Illustration from '../../components/illustrations/Illustration';\nimport ConfirmationBody from '../../confirmation/ConfirmationBody';\nimport { isMobileOrInContext } from '../../utility/inContextDonation';\nimport { trackErrorPageIM } from '../../fpti/fpti';\nimport { PAGE_SPEC } from '../../fpti/fptiConstants';\nimport { Row, Col } from '@paypalcorp/pp-react';\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react';\nclass UnilateralError extends React.Component {\n constructor() {\n super();\n this.state = {};\n }\n\n componentDidMount = () => {\n hideSpinnerOverlay();\n\n trackErrorPageIM({\n pageSpec: PAGE_SPEC.UNILATERAL_ERROR_PAGE,\n errorCode: 'UNILATERAL_ERROR',\n });\n };\n\n render() {\n const noAccountErrorMessage = new MessageFormat(this.context, {\n id: 'errors.paymentError.noAccountError',\n }).format();\n return (\n <div\n className={`donate_wrapper confirmation ${\n isMobileOrInContext() ? 'mobile_view' : ''\n }`}\n >\n <Row align=\"center\">\n <Illustration type=\"warning\" />\n </Row>\n <Row>\n <Col className=\"text-center\">\n <ConfirmationBody\n message={\n noAccountErrorMessage === 'errors.paymentError.noAccountError'\n ? \"We can't complete this donation. The receiver doesn't have a valid PayPal account.\"\n : noAccountErrorMessage\n }\n />\n </Col>\n </Row>\n </div>\n );\n }\n}\nUnilateralError.contextType = WorldReadyContext;\nexport default withRouter(withTheme(UnilateralError));\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport withTheme from '../../components/withTheme';\nimport templateData from '../../utility/getTemplateData';\nimport { hideSpinnerOverlay } from '../../utility/helper';\nimport { Button } from '@paypalcorp/pp-react';\nimport Illustration from '../../components/illustrations/Illustration';\nimport ConfirmationTitle from '../../confirmation/ConfirmationTitle';\nimport ConfirmationBody from '../../confirmation/ConfirmationBody';\nimport { isMobileOrInContext } from '../../utility/inContextDonation';\nimport { isExternalFlow } from '../../utility/productIntegrationUtils';\nimport CloseButton from '../../components/CloseButton';\nimport { Row, Col } from '@paypalcorp/pp-react';\nimport { Message } from '@paypalcorp/worldready-react';\nimport withWorldReady from '../../components/withWorldReady';\nclass ThreeDSError extends React.Component {\n componentDidMount = () => {\n hideSpinnerOverlay();\n };\n\n handleTryAgain = () => {\n this.props.history.push(`/donate?token=${templateData.token}`);\n };\n\n render() {\n return (\n <div>\n <div\n className={`donate_wrapper confirmation ${\n isMobileOrInContext() ? 'mobile_view' : ''\n }`}\n >\n {isExternalFlow() && <CloseButton />}\n <Row>\n <Col align=\"center\">\n <Illustration type=\"warning\" />\n </Col>\n </Row>\n <Row>\n <Col className=\"text-center\">\n <ConfirmationTitle\n message={<Message id=\"errors.threeDSError.errorMessage\" />}\n />\n </Col>\n </Row>\n <Row>\n <Col className=\"text-center\">\n <ConfirmationBody\n message={<Message id=\"errors.threeDSError.tryAgain\" />}\n />\n </Col>\n </Row>\n\n <Row>\n <Col className=\"text-center\">\n <Button\n className=\"btn-wide\"\n id=\"tryAgain\"\n onClick={this.handleTryAgain}\n >\n <Message id=\"errors.threeDSError.tryCard\" />\n </Button>\n </Col>\n </Row>\n </div>\n </div>\n );\n }\n}\n\nexport default withWorldReady(withRouter(withTheme(ThreeDSError)));\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { getParameterByName } from '../utility/queryStringHelper';\nimport withDonate from './guest/WithDonate';\nimport * as AppActions from '../actions/AppActions';\nimport AppStore from '../stores/AppStore';\nimport _get from 'lodash/get';\nimport templateData from '../utility/getTemplateData';\nimport { isLoggedInUser, isOneTouchUser } from '../utility/authUtils';\nimport { trackCaptureOrderPageIM } from '../fpti/fpti';\nimport withWorldReady from './withWorldReady';\n\nclass CaptureOrder extends Component {\n constructor(props) {\n super(props);\n this.state = {\n token: '',\n accessToken: '',\n isSubmitted: false,\n backBtnVisible: false,\n responseData: '',\n wTransactionEntry: '',\n requestError: '',\n };\n }\n\n componentDidMount() {\n this.props.toggleSpinner(true);\n const donateToken = getParameterByName('dtoken');\n const orderToken = getParameterByName('token');\n const payerID = getParameterByName('PayerID');\n\n this.captureOrder(orderToken, donateToken, payerID);\n }\n\n captureOrder = (orderToken, donateToken, payerID) => {\n const { orderStatus } = AppStore.getOrderStatus() || {};\n const { token } = templateData;\n\n if (orderStatus === 'COMPLETED') {\n window.location.href = `/donate/paymentComplete?token=${token}`;\n return;\n }\n\n this.props\n .captureOrder(orderToken, donateToken, payerID)\n .then((response) => response.json())\n .then((result) => {\n const confirmationNumber =\n _get(result, 'data.confirmationData.confirmationNumber') ||\n _get(result, 'data.confirmationData.postBackData.txn_id');\n if (!confirmationNumber) {\n this.props.history.push(`/donate/error/payment?token=${token}`);\n return;\n }\n\n AppActions.updateOrderStatus({ orderStatus: 'COMPLETED' });\n\n const authState = _get(result, 'authState');\n const isMemberFlow =\n isLoggedInUser(authState) || isOneTouchUser(authState);\n const confirmationData = _get(result, 'data.confirmationData', {});\n this.handlePaymentSuccess(confirmationData, isMemberFlow);\n })\n .catch(() => {\n this.props.history.push(`/donate/error/payment?token=${token}`);\n });\n };\n\n handlePaymentSuccess = (response, isMemberFlow) => {\n AppActions.updateConfirmation({ confirmation: response });\n this.handleConfirmation(response, isMemberFlow);\n };\n\n handleConfirmation = (response, isMemberFlow) => {\n const { token } = templateData;\n const flow = isMemberFlow ? 'member' : 'guest';\n const page = response.isOfacPending ? 'pending' : 'confirmation';\n\n const url = token\n ? `/donate/${flow}/${page}/${window.location.search}`\n : `/donate/${flow}/${page}`;\n\n trackCaptureOrderPageIM({\n flow,\n confirmationData: response,\n });\n\n this.props.history.push(url);\n };\n\n render() {\n return null;\n }\n}\n\nCaptureOrder.propTypes = {\n toggleSpinner: PropTypes.func,\n captureOrder: PropTypes.func,\n history: PropTypes.object,\n};\n\nexport default withWorldReady(withDonate(CaptureOrder));\n","import { useEffect } from 'react';\nimport templateData from '../utility/getTemplateData';\n\nlet timerCount = 0;\nexport default function CancelAndReturnOrder() {\n const redirectToCancelUrl = () => {\n const { charityCancelUrl } = templateData;\n if (charityCancelUrl) {\n window.location.href = charityCancelUrl;\n }\n };\n\n useEffect(() => {\n // xprops takes a few miliseconds to be populated\n // because it has to set up the communication with host window\n // Wait a maximum of 2 seconds for the value\n waitForXProps(() => {\n // No xprops for 2 seconds\n // Maybe we are not inContext?\n // Redirect to cancel url\n redirectToCancelUrl();\n });\n }, []);\n\n function waitForXProps(callback) {\n timerCount++;\n if (timerCount > 10) {\n callback();\n return;\n }\n if (!window.xprops) {\n setTimeout(() => {\n waitForXProps(callback);\n }, 200);\n } else {\n window.xprops.close();\n }\n }\n\n return null;\n}\n","import './publicPath';\n\nimport 'consumerweb-shim';\nimport 'core-js/stable';\nimport 'regenerator-runtime/runtime';\nimport '../utility/bootstrap';\nimport React, { Component, Suspense, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Route, Switch, Router } from 'react-router-dom';\nimport history from './configureHistory';\nimport CookiedUserPage from './../pages/landing/landing';\nimport CampaignLanding from '../pages/landing/campaignLanding';\nimport Review from './../pages/guest/GuestReview';\nimport {\n GuestConfirmationPending,\n GuestConfirmationSuccess,\n} from '../pages/guest/confirmation';\nimport PaymentError from './../pages/error/paymentError';\nimport UnilateralError from '../pages/error/UnilateralError';\nimport templateData from './../utility/getTemplateData';\nimport { isOneTouchUser, isAuthenticatedUser } from 'utility/authUtils';\nimport { parseUrlQuery } from '../utility/urlUtils';\nimport { setShouldRTL } from '../utility/paypalAphrodite';\nimport { showSpinnerOverlay, hideSpinnerOverlay } from '../utility/helper';\nimport ThreeDSError from '../pages/error/threeDSError';\nimport { reactLazyPreload } from '../utility/lazyLoader';\nimport CaptureOrder from '../components/CaptureOrder';\nimport CancelAndRedirectOrder from '../components/CancelAndRedirectOrder';\nimport {\n MemberConfirmationPending,\n MemberConfirmationSuccess,\n} from '../pages/member/confirmation';\nimport Footer from '../components/footer/footer';\n\nimport '../../css/ppvx-app.less';\nimport '../../css/portable-onboarding.less';\nimport { addClass, removeClass } from '../utility/domUtils';\nimport {\n isGNC,\n isPPCampaign,\n isCampaigns,\n} from '../utility/productIntegrationUtils';\nimport withWorldReady from '../components/withWorldReady';\nimport '../vendor/datadog';\n\n// set the direction for styles (whether to convert them to RTL)\nconst { locality: { directionality = 'ltr' } = {} } = templateData;\nsetShouldRTL(directionality !== 'rtl');\n\nconst { currentUserState, isUnilateralAccount, paymentStatus } = templateData;\n\nconst GuestPage = reactLazyPreload(() =>\n import(/* webpackChunkName: \"GuestPage\" */ './../pages/guest/guest')\n);\n\nfunction FallbackSpinner() {\n useEffect(() => {\n showSpinnerOverlay();\n }, []);\n\n return <></>;\n}\n\nclass LandingPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n userCookied: currentUserState === 'cookied',\n isOneTouch: isOneTouchUser(),\n };\n }\n\n componentDidMount() {\n if (!(isGNC() || isPPCampaign())) {\n addClass('#mainWrapper', ['landing-page']);\n }\n\n if (isUnilateralAccount) {\n history.push('/donate/error/noaccount');\n return;\n }\n // Only hiding spinner for cookied user and if payment token status is not complete\n if (this.state.userCookied && paymentStatus !== 'complete') {\n // In case of onboarding, guest.js will hide the spinner\n if (!templateData.onboardingEnabled) {\n hideSpinnerOverlay();\n }\n }\n\n if (!isAuthenticatedUser()) {\n GuestPage.preload();\n }\n }\n componentWillUnmount() {\n if (!(isGNC() || isPPCampaign())) {\n removeClass('#mainWrapper', ['landing-page']);\n }\n }\n\n getPageToRender() {\n // If `signup` param is present, render GuestPage\n const isSignupRoute = !!parseUrlQuery().signup;\n if (isSignupRoute) {\n return <GuestPage />;\n }\n return <CookiedUserPage />;\n }\n\n render() {\n return <div>{this.getPageToRender()}</div>;\n }\n}\n\nfunction CampaignLandingPage() {\n const getPageToRender = () => {\n // If `signup` param is present, render GuestPage\n const isSignupRoute = !!parseUrlQuery().signup;\n if (isSignupRoute) {\n return <GuestPage />;\n }\n return <CampaignLanding />;\n };\n\n return <>{getPageToRender()}</>;\n}\n\nconst MainRouter = () => (\n <Router history={history}>\n <Suspense fallback={<FallbackSpinner />}>\n <Switch>\n <Route\n exact\n path=\"/donate\"\n component={isCampaigns() ? CampaignLandingPage : LandingPage}\n />\n <Route exact path=\"/donate/capture\" component={CaptureOrder} />\n <Route\n exact\n path=\"/donate/orders/cancel\"\n component={CancelAndRedirectOrder}\n />\n <Route exact path=\"/donate/guest\" component={GuestPage} />\n <Route exact path=\"/donate/guest/crossborder\" component={Review} />\n <Route\n exact\n path=\"/donate/guest/confirmation\"\n component={GuestConfirmationSuccess}\n />\n <Route\n exact\n path=\"/donate/guest/pending\"\n component={GuestConfirmationPending}\n />\n <Route\n exact\n path=\"/donate/member/confirmation\"\n component={MemberConfirmationSuccess}\n />\n <Route\n exact\n path=\"/donate/member/pending\"\n component={MemberConfirmationPending}\n />\n <Route exact path=\"/donate/error/payment\" component={PaymentError} />\n <Route\n exact\n path=\"/donate/error/noaccount\"\n component={UnilateralError}\n />\n <Route exact path=\"/donate/error/threeDS\" component={ThreeDSError} />\n </Switch>\n </Suspense>\n <Footer />\n </Router>\n);\n\nconst RouterWithWorldReady = withWorldReady(MainRouter);\n\nReactDOM.render(\n <RouterWithWorldReady />,\n document.getElementById('donateWrapper')\n);\n","function setDonateLoaded() {\n document.getElementsByTagName('body')[0].setAttribute('donate-loaded', true);\n}\n\nsetDonateLoaded();\n","/**\n * Card Utilities\n * For use with linking a card\n *\n * - get card type [visa, mastercard, amex, discover, maestro, unionpay] based on the card number\n */\nimport { MessageFormat } from '@paypalcorp/worldready';\nimport { getWorldReady } from './worldReadyUtils';\n\nexport const defaultCardSpec = {\n type: 'card',\n fields: {\n ccNumber: {\n required: true,\n pattern: '4[0-9]{12}(?:[0-9]{3})?',\n maxlength: 19,\n },\n expirationDate: {\n required: true,\n pattern: '(0[1-9]|1[012])[/]((20)[0-9]{2}|[0-9]{2})',\n maxlength: 7,\n },\n csc: {\n required: true,\n pattern: '[0-9]*',\n maxlength: 3,\n minlength: 3,\n },\n },\n};\n\n/**\n * Get the card type based on the card number\n * @param {Object} cardSpecs - the card specifications based on user's locale\n * @param {String} cardNumber - the valid card number (numbers only)\n * @return {Object} cardType - the card type specs for a specific card\n */\nexport function getSpecificCardSpec({ cardTypes }, cardNumber) {\n cardNumber = cardNumber.replace(/\\D+/g, '');\n\n for (const card in cardTypes) {\n const cardSpec = cardTypes[card];\n if (\n new RegExp(`^${cardSpec.fields.ccNumber.autodetect}$`).test(cardNumber)\n ) {\n return cardSpec;\n }\n }\n return defaultCardSpec;\n}\n\nconst PAYMENT_CARDS = {\n VISA: 'VISA',\n MASTERCARD: 'MASTERCARD',\n MASTER_CARD: 'MASTER_CARD',\n MAESTRO: 'MAESTRO',\n AMEX: 'AMEX',\n DISCOVER: 'DISCOVER',\n JCB: 'JCB',\n CHINA_UNION_PAY: 'CHINA_UNION_PAY',\n};\n\nexport function getPaymentCardNetwork(source) {\n const worldReady = getWorldReady();\n switch (source.network) {\n case PAYMENT_CARDS.VISA:\n return new MessageFormat(worldReady, {\n id: 'common.fundingTypes.fundingType.visa',\n }).format();\n case PAYMENT_CARDS.MASTERCARD:\n case PAYMENT_CARDS.MASTER_CARD:\n return new MessageFormat(worldReady, {\n id: 'common.fundingTypes.fundingType.mastercard',\n }).format();\n case PAYMENT_CARDS.MAESTRO:\n return new MessageFormat(worldReady, {\n id: 'common.fundingTypes.fundingType.maestro',\n }).format();\n case PAYMENT_CARDS.AMEX:\n return new MessageFormat(worldReady, {\n id: 'common.fundingTypes.fundingType.amex',\n }).format();\n case PAYMENT_CARDS.DISCOVER:\n return new MessageFormat(worldReady, {\n id: 'common.fundingTypes.fundingType.discover',\n }).format();\n case PAYMENT_CARDS.CHINA_UNION_PAY:\n return new MessageFormat(worldReady, {\n id: 'common.fundingTypes.fundingType.china_union_pay',\n }).format();\n default:\n return source.network;\n }\n}\n","import TemplateData from './getTemplateData';\nimport { lazy as reactLazy } from 'react';\nimport { trackErrorIM } from '../fpti/fpti';\n\n/**\n * Loads bodymovin and hearts animation json\n */\nexport function loadBodyMovin() {\n if (\n typeof window.bodymovin !== 'undefined' &&\n typeof window.heartsAnimationData !== 'undefined'\n ) {\n return Promise.resolve([window.bodymovin, window.heartsAnimationData]);\n }\n return Promise.all([\n loadScript(\n 'https://www.paypalobjects.com/donate/bodymovin/bodymovin.min.js'\n ),\n loadScript('https://www.paypalobjects.com/donate/bodymovin/hearts.js'),\n ]).catch((error) => {\n trackErrorIM({\n errorCode: 'LAZY_LOAD_FAILED',\n errorMessage: error,\n fieldName: 'bodymovin',\n });\n });\n}\n\n/**\n * Load Progressive Onboarding component (Slick Version)\n */\nexport function loadSlickProgressiveOnboarding() {\n return Promise.all([\n import(\n /* webpackChunkName: 'ProgressiveonboardingSlick' */ 'portableonboarding'\n ),\n ]).catch((error) => {\n trackErrorIM({\n errorCode: 'LAZY_LOAD_FAILED',\n errorMessage: error,\n fieldName: 'progressive_slick',\n });\n });\n}\n\n// eslint-disable-next-line\nfunction loadScript(scriptPath) {\n return new Promise((resolve, reject) => {\n const nonce = TemplateData.nonce;\n var script = document.createElement('script');\n document.getElementsByTagName('head')[0].appendChild(script);\n script.onload = function (params) {\n resolve(params);\n };\n script.onerror = function (params) {\n reject(params);\n };\n script.nonce = nonce;\n script.src = scriptPath;\n });\n}\n\nexport function waitForOnload() {\n return new Promise((resolve) => {\n if (document.readyState === 'complete') {\n resolve();\n } else {\n window.addEventListener('load', () => {\n resolve();\n });\n }\n });\n}\n\n/**\n * Lazy load a React component and add preload option\n */\nexport function reactLazyPreload(importStatement) {\n const lazyComponent = reactLazy(importStatement);\n lazyComponent.preload = importStatement;\n return lazyComponent;\n}\n"],"names":["PresetAmountRow","props","worldready","useContext","WorldReadyContext","presetOther","MessageFormat","id","format","placeholderOtherAmount","cipFailedOrPending","cipStatus","_useState","useState","templateData","presetAmounts","_useState2","_slicedToArray","setPresetAmounts","_useState3","AppStore","getDonationAmountType","getDonationAmount","_useState4","selectedOption","setSelectedOption","_useState5","_useState6","showOtherAmount","setShowOtherAmount","_useState7","charityAmount","_useState8","amountFieldValue","setAmountFieldValue","handlePresetAmountClick","value","indexValue","indexOf","trackSelectedPresetAmount","handleAmountChange","showValidationError","Number","hideValidationError","AppActions","useEffect","amountBeforeFee","getAmountBeforeFee","isOptInCoverFee","shouldSelectPresetAmount","values","symbol","charityAmountCode","result","presetOptions","charityAmountSymbol","map","label","isRightSymbol","concat","formatAmountFromServerDNW","noDecimals","secondaryLabel","_toConsumableArray","React","_PresetAmounts","messages","validationErrorMessage","amount","isPreview","propTypes","PropTypes","handleAmountFocus","decimalPoint","isAmountEditable","validationErrorCode","AmountWrapper","_React$Component","_this","_classCallCheck","_callSuper","_defineProperty","dispatcherCharityAmount","AppDispatcher","register","payload","action","actionType","_payload$action","_payload$action2$item","item","_payload$action2$item3","setState","state","addFeature","FEATURES","DONATION_AMOUNT_EDITABLE","unregister","window","location","pathname","includes","undefined","getParameterByName","isNaN","exchangeRate","base_currency_code","userAmountCode","quote_amount","toFixed","params","callback","getConversionRequest","_debounce","st","par","fn","queryParams","_objectSpread","fromCountry","userCountry","fromCurrency","toCurrency","fromAmount","normalizeAmount","toAmount","conversionStatus","Promise","resolve","fetcher","method","body","JSON","stringify","then","response","json","_ref","catch","target","source","exchange_rate","setAppAmount","isAtLandingPage","setFeeAmountInStore","updateFeeAmount","optOutCoverFee","setAmountTypeFpti","showCipAmountError","updateCipAmountValidation","errorCode","errorString","errorSourceField","trackErrorIM","errorMessage","fieldName","presetAmountsCondition","TemplateData","enablePresetAmounts","isGuestReviewPage","PRESET","bind","validateDonationAmount","worldReady","getWorldReady","selectedRecurringFrequency","_ref2","parse","document","getElementById","innerHTML","currencyLists","currencies","currencySymbols","symbols","html","getElementsByTagName","directionality","getAttribute","donorIpCountry","availableCurrencies","US","getDonationCode","isEditable","donationAmountEditable","getDonationSymbol","charityDisabled","userAmount","userDisabled","donationDecimalPoint","conversionRate","_inherits","_createClass","key","nextProps","this","onFocus","shouldShowPresetAmounts","className","renderPresetAmounts","caamlErrorStyle","_SingleAmount","currencyCode","currencySymbol","handleAmount","clientMetadata","__getInitialData","handleTrackError","getDonationRecurring","_BodyText","strong","getRecurringLabel","AnonymousCheckbox","content","optInStatus","handleAnonymousDonationChange","ANONYMOUS","tooltip","_Checkbox","name","onChange","event","isChecked","checked","checkboxStatus","anonymousStatus","labelIcon","_Tooltip","description","onOpen","trackLinkClick","LINK_NAME","ANONYMOUS_TOOLTIP","eventName","EVENT_NAME","DW_GIVING_DONATE_SETUP_TOOLTIP_PRESSED","initialData","getInitialData","ERROR_ELEMENT_SELECTOR","join","WrappedComponent","_Class","_Component","country","toggleSpinner","DonateAppActions","CHANGE_COUNTRY","additionalData","FPTI_TAGS","COUNTRY","token","_templateData$signUp","signUp","url","handleGuestCountryChange","arguments","length","showSpinnerOverlay","hideSpinnerOverlay","scrollElementIntoView","language","securityCode","note","getDonationNote","fundingOptionId","getFundingOptions","email","getEmail","billingAddress","getBillingAddress","giftAidItFlag","getGiftaidItFlagStatus","card","onboardingEnabled","getSelectedRecurringFrequency","code","history","push","status","href","clientState","encodeURIComponent","data","confirmationData","_confirmationData$pos","startCustomCPLTrackingForConfirmationPage","isPending","isOfacPending","postBackData","payment_status","objectOrArrayToQueryString","confirmation","isEmpty","cartUrl","orderToken","donateToken","payerID","selectedCountry","getFormData","formData","getParametersFromUrl","showErrorOnLoad","errorMsgs","setTimeout","serverErrors","_extends","handleCountryChange","handleScrollToError","getDonateGuestUrl","getInitialFormData","saveFormData","doFulfilment","captureOrder","createOrder","Component","NoteFieldError","errorText","CriticalIcon","size","role","NoteComponent","_templateData$showOnl","lengthLimit","campaignsLabel","providedLabel","isCampaigns","charityNoteEnabled","charityNoteLabel","commentTextboxLabel","isGNC","isPPCampaign","texboxLabel","donationNote","setDonationNote","initialNoteLabel","showLabel","setShowLabel","showError","setShowError","noteLabel","setNoteLabel","textAreaEl","useRef","showOnlyCommentTextbox","isNoteTextPresent","current","focus","updateGlobalFPTI","SHOW_ONLY_COMMENT_TEXTBOX","isNotePreview","contextLocalityDir","isExternalFlow","htmlFor","onClick","NOTE_PAD","DW_GIVING_DONATE_SETUP_COMMENT_PRESSED","_IconButton","svgIconComponent","_AddIcon","style","color","marginLeft","disabled","buttonType","_TextArea","maxRows","minRows","showCharacterCounter","maxLength","maxCharacters","addClass","removeClass","onBlur","trim","ref","dir","LOADING_GIF_SOURCE","appendCdnHostName","STYLES","StyleSheet","create","spinnerAlign","margin","cardImg","marginTop","ThreeDSSpinner","fundingOptions","_get","network","getPaymentCardNetwork","myData","getAllData","_isEmpty","cardType","replace","toLowerCase","cardSpec","type","setNetworkDetails","context","src","height","_HeadingText","css","alt","contextType","withTheme","ThreeDSDeviceDataCollection","_len","args","Array","_key","eventOrigin","validateEventOrigin","exception","messageType","onDDCComplete","trackThreeDsDdcFailure","STATUS","wasSuccessful","onThreeDSDDCComplete","contingencies","_find","_this2","addEventListener","handleDDCEvent","threeDS2ReferenceId","getThreeDSParams","three_ds_reference_id","refs","submit","MessageType","Status","e","removeEventListener","_this$getThreeDSParam2","deviceDataCollectionUrl","device_data_collection_url","jwt","width","withRouter","ThreeDSIframe","handleIframeMessage","confirmationStatus","error","CHALLENGE_STATUS","trackThreeDSIframeIM","threeDSRespDuration","CHALLENGE_END_TIME","Date","getTime","onStepUpAuthComplete","hideModal","element","formRef","requestTextMsgFmt","threeDS2Contingency","getThreeDSContingency","redirectLink","md","redirectMethod","requestText","title","frameBorder","setFormRef","submitForm","CHALLENGE_START_TIME","_Sheet","hideTitle","isOpen","onClose","hideLogo","closeOnBackgroundClick","getModalBody","icon","ThreeDSContainer","showThreeDSDeviceDataCollection","threeDSDCCEndTime","fptiData","THREE_DS_DCC_START_TIME","threeDSDCCStartTime","THREE_DS_DCC_END_TIME","THREE_DS_SPINNER_START_TIME","THREE_DS_SPINNER_END_TIME","trackThreeDsDdcComplete","resolveThreeDSContingency","trackThreeDsLookupStart","THREE_DS_LOOKUP_START_TIME","hideThreeDSSpinner","threeDSContingency","resolved","trackThreeDsLookupComplete","timestamp","THREE_DS_LOOKUP_END_TIME","CONTINGENCY_RESOLVED","URL","ACTION","onThreeDSStepUpAuthNotRequired","showThreeDSIframe","hideThreeDSIframe","onThreeDSFailure","onThreeDSStepUpAuthSuccess","onThreeDSStepUpAuthFailure","showThreeDSSpinner","onRef","startTime","trackThreeDsDdcStart","Portal","handleThreeDSDDCComplete","handleThreeDSStepUpAuthComplete","styles","modalContent","maxWidth","okButton","msgMargin","DonateGiftAidHowItWorksOverlay","orgName","overpanel","closeOverlay","_Row","_Col","Message","_Button","DonateGiftAid","isAlreadyEnrolled","handleGiftAidOption","addressData","showAddress","giftaidInfo","showHelp","setShowHelp","setChecked","isHowItWorksOverlayOpen","setIsHowItWorksOverlayOpen","donateGiftPercentage","donationCode","giftaidAmount","openHowItWorksOverlay","BodyText","currency","formatAmount","normalizeNumber","extraAmount","tertiary","env","checkedValue","_CaptionText","fullName","address1","address2","city","zip","openOverlay","isMember","NextButtonComponent","buttonText","branded","handleNext","marginRight","OneTouchNextButton","GuestButton","GUEST","secondary","handleGuest","Programs","programNames","isDisabled","selectedProgram","handleSelect","programLabelMsgFmt","isArray","getProgramOptions","options","forEach","programName","primaryText","programOption","findIndex","program","appStore","getSelectedProgram","DropdownMenu","PROGRAM_SELECTED","CAMPAIGN","orgname","donationName","RecurringOverlay","closeRecurringOverlay","onMakeOneTimeDonation","onContinue","secondDialogLabel","dialogp2","sanitizeOrgName","center","isInContext","BackButton","handleClose","noCloseButton","containerClassName","noThanks_closeModal","disclaimerWrapper","disclaimer","disclaimerCaptionText","textAlign","NotTaxDeductibleLegalText","dispatcherMessages","isPPCC","setIsPPCC","AppConstants","CoverFeeCheckbox","handleCoverFeeChange","formatedFeeAmount","CTF","_DonateCheckbox","checkbox_content","coverFee","RECURRING_EXPERIMENT","TREATENTS","Ctrl_Giving_donate_recurring_checkbox","Trmt_1_Giving_donate_segmented_controller","Trmt_2_Giving_donate_selection_group_header_above","Trmt_3_Giving_donate_selection_group_header_bellow","CONTENT_KEYS","ONE_TIME","WEEK","MONTH","YEAR","VALUE","DISCLAIMER_CONTENT","RecurringInfo","rpContentHelper","setRpContentHelper","amout","setAmount","frequency","getCoverFeeOptInStatus","totalAmount","getFeeAmount","formattedTotalAmount","RecurringCheckBox","_frequencies$0$primar","frequencies","handleFreqChange","isAnimating","setIsAnimating","selectedValue","setSelectedValue","hasOneFreq","setHasOneFreq","_frequencies$","defaultFreq","isLTR","ev","checkboxValue","selectedFreq","loadBodyMovin","animationData","heartsAnimationData","bodymovinLibrary","bodymovin","loadAnimation","container","renderer","loop","autoplay","destroy","_DropdownMenu","freq","RecurringSegmentedController","selectedTabIdx","setSelectedTabIdx","indx","selectedFrequency","i","toUpperCase","_SegmentedController","tabs","option","panelId","tabIdx","_SegmentedControllerPanel","tabId","RecurringSingleSelection","showTitle","_AppStore$getSelected","_frequencies$2","_SingleSelectionGroup","align","RecurringComponent","flow","_ref$recurringFrequen","recurringFrequencies","_ref$isCampaigns","frequenciesContent","setFrequenciesContent","supportedFrequencies","newFreq","showOneTimeContent","selectedFrequencyOption","recurring","RECURRING_CHECKBOX","CHECKBOX","trackRecurringFrequencySelectionClick","LandingPageComponent","_templateData$donateC","_document$getElementB","_templateData$support","onload","cpl","CPL_PAGE_SPEC","LANDING_PAGE","innerText","showDonationFraud","currentPage","paymentStatus","setEnabledRecurringFrequency","supportedRecurringFrequencies","RECURRING","coverFeeOptInStatus","restoreDonationAmount","trackLandingPageIM","noteFieldDisplayed","shouldShowNote","donationFraudEligibility","String","donationFraudMessageBelowButtons","recurringEnabled","waitForOnload","isLoggedInUser","registerAppDispatcherMessages","getValidationErrorMessage","recurringStatus","donationAmount","amountUtils","trackDonateWithCardClick","is_recurring","fee_type","coverFeeEnabled","donation_fraud_eligible","addShake","preventDefault","recurringModalStatus","memberMandatory","openRecurringOverlay","validateAmountAndNavigateToGuestPage","PAYPAL","analytics","startCPLTracking","page","uicomp","uitype","trackDonateWithPayPalClick","handleLogIn","trackNextClickForCheckout","orderParams","prepareOrderParams","feeAmount","computeAmountAfterFee","updateDonationAmount","_validationResult","_validationResult2","validationResult","donateDisabled","rpContinue","anonymousOptInStatus","trackAnonymousCheckboxClick","trackCoverFeeCheckboxClick","getFormatedFeeAmount","isRecurringOverlayOpen","isOldButtonFactory","isCheckoutRail","handleNextForCheckout","isAuthenticated","NextButton","showNoteCondition","CHARITY_NOTE","personalizedMessages","getPersonalizedMessages","GN_CONTENT_TOUCHPOINT","amountRaised","campaignTotalAmountRaised","campaignStatus","campaignTargetAmount","campaignEndTime","DONATE_DONOR_VIEW_REPORT_MERCHANT_PRESSED","FLOW","product","ENCR_RCVR_ID","merchantId","MERCHANT_EMAIL","donationEmail","Alert","link","innerMessage","_Link","trackReportMechantClicks","anonymousStatusInStore","getAnonymousStatus","SOURCE","PROCESS_STATUS","RECURRING_VISUAL_EXPERIMENT","recurringVisualExperiment","hasLogo","subHeaderLabel","charityName","donationId","guestRedirectUrl","supportedRecurringHelperText","recurringHelpText","recurringLabel","isAuthenticatedUser","donateContext","program_names","isVoucherFlow","offerProgram","feePayer","anonymousEnabled","hasDisclaimer","hasPersonalizedMessages","recurringFlow","maximumAllowedDonation","classNames","gn_donate_wrapper","bannerUrl","donate_wrapper","context_gn_wrapper","shouldShowUserBanner","mobile_view","isMobileOrInContext","_templateData$support2","showUserBanner","showSupportText","shouldShowSupportText","showNoDonationText","shouldShowNoDonationText","shouldShowRecurringDisclaimer","shouldRenderRecurringVisualExperimentAboveAmount","shouldRenderRecurringVisualExperimentBelowAmount","shouldRenderRecurringVisualExperimentsCheckbox","receiverCountryEligible","landingClass","UserDetailsBanner","userDetails","CloseButton","inverse","DonateHeader","isLanding","campaigns","updateConversionSataus","renderProgramsDropdown","getPersonalizedAnonymousContent","getPersonalizedNoteToPayeeLabel","getPersonalizedNoteToPayeeTextboxCommentLabel","OfferDetail","success","renderDonationFraudMessage","renderDonateButtons","VoucherFlowDisclaimer","hasPartnerSource","handleRecurringOverlayContinue","handleRecurringOverlayMakeOneTimeDonation","Disclaimer","getPersonalizedContent","CancelAndReturn","ReceiverEligibilityErrorTile","organizationName","returnUrl","charityReturnUrl","LandingPage","withWorldReady","withDonate","Landing","_React$Component2","_this3","displayLanding","currentState","business","hostedButtonId","campaignId","search","handleTokenReuse","addTokenToUrlIfMissing","WhosDonatedBanner","_contributionsList5","numberOfContributors","contributionsList","isLoading","_contributionsList","_contributionsList2","donorName","donor_name","donatedAmount","donor","_contributionsList3","_contributionsList4","donorOneName","donorTwoName","formatNumber","slice","_AvatarStack","_data$photos","showAnonymousAvatar","shareDonorInfo","_DonorAvatar","photo","photos","isAnonymousAvatar","Flyout","_randomContribution$p","delay","intervalRef","savedCallback","startShowing","setStartShowing","showFlyouts","setShowFlyouts","randomContribution","setRandomContribution","getRandomContribution","max","Math","floor","random","flyoutTimer","clearTimeout","setInterval","clearInterval","hideInterval","currency_code","formatFeatured","contributions","totalContributions","formattedList","first","find","c","badge","top","selfItem","getIsMobile","innerWidth","LandingDonorWall","reactLazy","LandingRichTextDisplay","OrganizerUpdates","MAX_HEIGHT_DESCRIPTION","_templateData$donatio","isPaymentCardOpen","setIsPaymentCardOpen","targetAmount","campaignTotalNumberOfTxn","amountRaisedWithCurrencySymbol","roundUpAndFormatCurrency","featured","list","setContributionsList","contributionsError","setContributionsError","setCurrentPage","_useState9","_useState10","setIsLoading","_useState11","_useState12","retry","setRetry","_useState13","_useState14","enableReadMore","setEnableReadMore","_useState15","_useState16","_useState17","_useState18","descriptionHeight","setDescriptionHeight","_useState19","_useState20","_useState21","_useState22","originalDescriptionHeight","setOriginalDescriptionHeight","_useState23","_useState24","stickToTop","_useHasScrolledToPosition","isMobile","setIsMobile","throttledFn","throttle","useIsMobile","fetchData","_asyncToGenerator","_regeneratorRuntime","_callee","_result$contributions","_result$contributions2","_result$contributions3","_context","prev","next","productId","sent","stop","apply","handleShowMore","goalAmtWithCurrencySymbol","campaignGoalTitle","goalAmount","getCampaignMessage","formatObj","advancedEndDateBadgeContent","minute","minutes","hour","hours","day","days","month","months","year","years","endsInContent","duration","unit","endedContent","date","renderEndDateBadge","_AdvancedEndDateBadge","endTime","currentTime","formatDate","parseDateOnly","renderTitle","_Title","campaignTitle","renderGoalProgressMeter","_GoalProgressMeter","round","toString","steps","headerClasses","sticky","renderDonorWall","_contributionsList$li","endDate","totalNumberOfTransactions","paginationLimit","setHours","renderContributionsError","stickyHeader","social_title","getSocialMessage","incrementDescription","incrementedHeight","_CampaignImage","_Card","Content","PPCC","maxHeight","descriptionContainer","clientHeight","Suspense","fallback","_LoadingSpinner","campaignDescription","ConfirmationSocialShare","social","emailSubject","emailBody","mobileText","facebookMessage","twitterMessage","whatsappMessage","copyLinkHeader","copyLinkSubheaderBefore","copyLinkSubheader","copiedText","copyText","subheader","shareGeneric","lg","trackDonateLandingButtonClick","mobileFixedHeight","wrapperClassName","skipFormFocus","CardSecurityCode","showIsRequiredError","handleCheckForValue","handleChangeSecurityCode","isRequired","fields","csc","required","handleFocus","handleBlur","cscSpecs","position","_TextInput","maxlength","pattern","helperText","cardSpecPropType","CVVComponent","getCardSpec","errorMessageCSC","handleSecurityCodeChange","fieldRequired","fieldInvalid","newErrorState","validateInputValue","_this$state$cardSpec$","cscLen","cscMax","minlength","cscLabel","placeholder","handleFieldFocus","handleFieldBlur","PaymentInformation","paymentDigits","paymentType","issuer","isPaypalCurrencyConversion","funds","paymentLogo","setPaymentLogo","transformText","str","charAt","_source$payment_card$","_source$payment_card","payment_card","thumbnail_logo_url","CDN_HOST_NAME","CreditCardIcon","split","CaptionText","number","Badge","CurrencyConversionOption","Card","isSelected","tabIndex","handleOptionSelection","onKeyDown","doFunction","which","KEY_DOWN","SPACE","ENTER","checkKeyPressed","PaypalAppIcon","rate","as","CheckmarkBackgroundIcon","CurrencyConversionModal","withPaypaltitle","withPaypalRate","withPaypalmessage","withCardtitle","withCardmessage","CURRENCY_CONVERSION_OPTIONS","isPayPalSelected","setPaypalSelected","Sheet","HeadingText","Button","ISSUER","CrossBorder","fundingSources","lastFundingSource","tags","currencyConversionOption","getLocalizedCurrency","stateCurrency","hasFees","inCurrency","outCurrency","currencyConversionOpen","setCurrencyConversionOpen","CURRENCY_CONVERSION","pageSpec","PAGE_SPEC","CROSS_BORDER_PAGE","sources","_includes","getUserCountry","finally","handleCurrencyConversionClick","FeePricing","_feeAmounts$payment_a","_feeAmounts$payment_a2","_feeAmounts$total_fee","_feeAmounts$total_fee2","_feeAmounts$total_amo","_feeAmounts$total_amo2","feeAmounts","openHelperSheet","setOpenHelperSheet","paymentAmount","payment_amount","totalFee","total_fee","totalAmountPaid","total_amount_paid","_QuestionSmIcon","getGiftAidItExtraAmount","GuestReview","spinnerOverlay","display","endCPLTracking","observeUntilEventObserved","attributes","observer","disconnect","totalDecimals","formatedAmount","parseFloat","maximumFractionDigits","formatCurrencyAsString","showCurrencyConversionModal","isCurrencyConversionModalOpen","showCVVField","cvv","childCVVInfo","hasError","getElementsByClassName","processDonation","threeDSContainer","initializeThreeDS","_this$state$securityC","trackGuestReviewPageDonateClick","isCvvSend","giftAidState","_this$state$securityC2","track3DSProceedToPayment","isRecurring","stateConversionWithPayPal","getStateForConversionWithPayPal","amountDecimalPoint","endCustomCPLTracking","_fundingSources$payme","_fundingSources$payme2","_fundingOptions$curre","_fundingOptions$curre2","_fundingOptions$curre3","paymentNetwork","last_4","currency_conversion","fundsIn","funds_in","fundsOut","funds_out","fee_amount","paymentCard","issuerName","inAmount","inSymbol","outAmount","outSymbol","currencyConversion","fundingCode","_ref3","getStateForConversionWithIssuer","currencyConversionType","paymentCardId","preferences","payment_card_id","validity","consentShareAddress","getShareAddress","hasCvvContingency","isCvvContingencyResolved","updateFundingOptionsState","giftaidFlag","_Alert","isGiftaiditEnabled","form","isPPUnlistedCampaign","MessageWithHTML","handleDonateClick","handleThreeDSStepUpAuthSuccess","handleThreeDSFailure","POST_TRANSACTION_URL","GuestConfirmationPending","withPageTrack","withPostTransactionRequest","PendingView","GuestConfirmationSuccess","SuccessView","body2","linkLabel","handleLinkClick","buttonLabel","handleButtonClick","_ref$showCloseButton","showCloseButton","_ref$centerBody","centerBody","PaymentError","ERROR_CODE","getPaymentError","trackErrorPageIM","GUEST_FAILURE_PAGE","WENT_WRONG","TEMP_GLITCH","tryagain","getErrorMessage","customerServiceLink","FullPageError","handleTryAgain","UnilateralError","UNILATERAL_ERROR_PAGE","noAccountErrorMessage","Illustration","ConfirmationBody","message","ThreeDSError","ConfirmationTitle","CaptureOrder","orderStatus","getOrderStatus","authState","isMemberFlow","isOneTouchUser","handlePaymentSuccess","handleConfirmation","trackCaptureOrderPageIM","accessToken","isSubmitted","backBtnVisible","responseData","wTransactionEntry","requestError","timerCount","CancelAndReturnOrder","waitForXProps","xprops","close","charityCancelUrl","_templateData$localit","locality","_templateData$localit3","setShouldRTL","currentUserState","isUnilateralAccount","GuestPage","reactLazyPreload","FallbackSpinner","userCookied","isOneTouch","preload","parseUrlQuery","signup","CookiedUserPage","getPageToRender","CampaignLandingPage","CampaignLanding","RouterWithWorldReady","Router","Switch","Route","exact","path","component","CancelAndRedirectOrder","Review","MemberConfirmationSuccess","MemberConfirmationPending","Footer","ReactDOM","setAttribute","defaultCardSpec","ccNumber","expirationDate","getSpecificCardSpec","cardNumber","cardTypes","RegExp","autodetect","test","PAYMENT_CARDS","VISA","MASTERCARD","MASTER_CARD","MAESTRO","AMEX","DISCOVER","JCB","CHINA_UNION_PAY","all","loadScript","loadSlickProgressiveOnboarding","scriptPath","reject","nonce","script","createElement","appendChild","onerror","readyState","importStatement","lazyComponent"],"sourceRoot":""}