{"version":3,"sources":["webpack:///./screens/index.js","webpack:///./screens/my-profile/my-profile.js","webpack:///./screens/my-profile/index.js","webpack:///./screens/recipient-slug/easter-egg-amounts.js","webpack:///./screens/recipient-slug/extract-amount-info.js","webpack:///./screens/recipient-slug/slug-recipient-profile.js","webpack:///./screens/seller/slug-seller-recipient-profile.js","webpack:///./screens/recipient-slug/slug-not-found.js","webpack:///./screens/recipient-slug/recipient-slug.js","webpack:///./screens/recipient-slug/index.js","webpack:///./screens/shared/amount-utils.js","webpack:///./screens/shared/components/cover-photo.js","webpack:///./screens/shared/components/profile-card.js","webpack:///./screens/shared/components/share.js","webpack:///./utils/name.js","webpack:///./utils/photo.js"],"names":["Main","propTypes","userHasCoverPhoto","PropTypes","string","SpinnerContainer","glamorous","div","position","top","left","width","height","backgroundColor","display","justifyContent","alignItems","animation","zIndex","props","id","SPINNER_ID","style","theme","size","screenReaderText","className","children","dangerouslySetInnerHTML","__html","clientData","footerHtml","INSTRUMENTATION","INSTRUMENTATION_MAP","profile","locality","locale","country","Container","marginTop","flexDirection","CoverContainer","marginBottom","ProfileCardContainer","ShareContainer","maxWidth","MyProfile","settings","state","slugDetails","paypalmeSlugName","userInfo","profilePhotoUrl","displayName","displayAddress","personalizationSettings","coverPhotoUrl","coverPhotoVerticalPan","welcomeNote","useEffect","trackImpression","OLD","PAGE_GROUP","PAGE_NAME","tracking","Events","public_identity_my_profile_screen_shown","photoUrl","photoVerticalPan","getProfilePhotoUrl","getDisplayName","handle","displayLocation","blurb","slugInfo","onShare","platform","trackLinkWithData","public_identity_my_profile_share_pressed","e","pi","sqrt2","phi","tau","graham","avogadro","googolplex","googol","beer","pizza","coffee","hamburger","Math","random","toFixed","חי","currencyRegex","extractAmountInfo","amountString","decodedAmountString","decodeURI","easterEggResult","getEasterEggInfo","primaryCurrencyCode","supportedCurrencyCode","match","currency","amountOnly","replace","includes","toUpperCase","amount","Number","toCanonicalNumber","easterEggAmounts","firstPart","slice","length","secondPart","recipient","l10n","getContent","UTM_TAGS","utmTags","PARTNER_TAGS","partnerTags","margin","ReportContainer","ReportLink","a","fontSize","withRouter","public_identity_profile_screen_shown","useState","getReportLink","reportLink","isUserLoggedIn","useRef","current","params","amountInfo","currencyCode","showAmount","isProfileAmountTreatment","isNaN","getAmountFieldInfo","currencyDecimal","currencySymbolMap","getFormattedAmount","symbolIsoCurrency","formattedAmount","handleSendReqUrl","type","trackLink","public_identity_profile_send_pressed","redirectUrl","getSendUrl","isLoggedIn","String","normalizeNumber","public_identity_profile_request_pressed","getRequestUrl","isPSD2Treatment","window","location","assign","body","fetch","requestURI","method","headers","csrf","JSON","stringify","response","json","data","status","loginUrl","showActions","onSend","onRequest","formatAmount","getFormattedValue","amountLabel","as","secondary","target","rel","href","onClick","public_identity_profile_report_pressed","Wrapper","textAlign","Warning","img","HeaderContainer","BodyContainer","SlugNotFound","src","ILLUSTRATIONS","WARNING","alt","role","aria-level","recipientSlugDetails","isSellerProfile","SlugDetails","RecipientProfile","SlugSellerRecipientProfile","SlugRecipientProfile","slug","isProfileStatusActive","previewData","RecipientSlug","griffinMetadata","griffinNumberHandler","griffinNumber","createHandler","cldr","main","localityKey","currencies","numbers","Object","keys","reduce","map","code","symbol","decimal","formatCurrency","value","CURRENCY_FORMAT_SYMBOLISOCURRENCY","parts","find","p","numberString","options","CURRENCY_FORMAT","split","lastThree","isCommaDecimal","otherNumbers","decimalGroup","join","CONTAINER_HEIGHT_PX","CONTAINER_WIDTH_PX","ContainerBase","DraggableContainer","css","cursor","FadeIn","keyframes","from","opacity","to","Photo","fadeIn","borderRadius","background","backgroundSize","backgroundPositionX","backgroundPositionY","backgroundRepeat","EditContainer","marginLeft","marginRight","right","EditButton","button","border","padding","outline","color","EditText","clip","overflow","whiteSpace","DragButton","transform","ChevronContainer","ChevronUpIcon","DragText","span","fontWeight","WithDrag","isDraggable","onDrag","onDragEnd","onDragCancel","onPan","onPanEnd","onPanCancel","recognizers","pan","threshold","CoverPhoto","isEditable","onEdit","isLoaded","setIsLoaded","isPhotoCached","setIsPhotoCached","photoImage","Image","onload","onerror","complete","getDisplayCoverPhotoUrl","aria-label","data-test-id","name","aria-hidden","PrimaryText","SecondaryText","Card","minHeight","boxShadow","Content","overflowWrap","AvatarContainer","AvatarStyles","GenericAvatar","lineHeight","PhotoAvatar","backgroundImage","backgroundPosition","AvatarEdit","font","bottom","EditCamera","ShareButton","SecondaryContent","TertiaryContent","AmountContainer","paddingLeft","paddingRight","Footer","Button","borderRight","borderTop","flexBasis","minWidth","textDecoration","ProfileCard","isShareable","sendLink","fontFamily","inputProps","readOnly","selectProps","disabled","l10nSettings","ShareTitle","SVGParent","transition","phone5PortraitMaxAndSmaller","SVGStyling","SVG","forwardProps","rootEl","SpanText","CopyContainer","TooltipCopied","content","borderLeft","borderBottom","ShareYourLink","isCopied","preventDefault","sharing","shareURLByFacebook","twitterShareLink","encodeURIComponent","shareByTwitter","shareByWhatsApp","shareURLByMessenger","this","setState","setTimeout","strong","lang","text","onCopy","copyToClipboard","svgString","svgImages","clipBoard","transitionName","transitionEnterTimeout","transitionLeaveTimeout","key","handleFBClick","facebook","handleMessengerClick","messenger","handleTwitterClick","twitter","React","Component","url","DEFAULT_PROFILE_PHOTO"],"mappings":"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","file":"ppme-slug.bundle.js","sourcesContent":["// @flow\n/**\n * Main Flow Container. This will contain all the other container components.\n * This component is mounted at 'transfer/'.\n * If we ever move header/footer to React this is where it should live...\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport clientData from 'utils/client-data'\n\nimport { SPINNER_ID } from 'utils/loader'\nimport { LoadingSpinner as Spinner } from '@paypalcorp/pp-react'\nimport glamorous from 'glamorous'\n\nMain.propTypes = {\n userHasCoverPhoto: PropTypes.string,\n}\n\nconst SpinnerContainer = glamorous.div({\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n backgroundColor: 'rgba(255, 255, 255, 0.6)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n animation: 'vx_fade-in 0.3s ease-out 0s both',\n zIndex: 1,\n})\n\nfunction Main(props) {\n return (\n
\n \n \n \n
\n
\n {props.children}\n
\n \n
\n
\n )\n}\n\nexport default Main\n","// @flow\n\nimport React, { useEffect } from 'react'\nimport glamorous from 'glamorous'\n\nimport Events from 'lib/analytics/event-tags'\nimport { trackImpression, trackLinkWithData, tracking } from 'lib/analytics'\n\nimport clientData from 'utils/client-data'\nimport { getProfilePhotoUrl } from 'utils/photo'\nimport { getDisplayName } from 'utils/name'\n\nimport CoverPhoto from 'screens/shared/components/cover-photo'\nimport ProfileCard from 'screens/shared/components/profile-card'\nimport Share from 'components/share'\n\nimport { INSTRUMENTATION_MAP } from 'utils/constants'\n\nconst INSTRUMENTATION = INSTRUMENTATION_MAP.profile\n\nconst { locality: { locale, country } = {} } = clientData\n\nconst Container = glamorous.div({\n marginTop: '1.75rem',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n})\n\nconst CoverContainer = glamorous.div({\n zIndex: 0,\n marginBottom: '-6.375rem',\n})\n\nconst ProfileCardContainer = glamorous.div({\n zIndex: 1,\n})\n\nconst ShareContainer = glamorous.div({\n maxWidth: '21.5rem',\n marginTop: '1.5rem',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n position: 'relative', // for copied tooltip\n})\n\ntype Props = {\n history: {\n push: () => any,\n },\n settings: SettingsState,\n}\n\nfunction MyProfile(props: Props) {\n const {\n settings: {\n state: {\n slugDetails = {},\n slugDetails: {\n paypalmeSlugName = '',\n userInfo: {\n profilePhotoUrl = '',\n displayName = '',\n displayAddress = '',\n } = {},\n personalizationSettings: {\n coverPhotoUrl = '',\n coverPhotoVerticalPan = '50',\n welcomeNote = '',\n } = {},\n } = {},\n } = {},\n } = {},\n } = props\n\n useEffect(() => {\n trackImpression(\n INSTRUMENTATION.OLD.PAGE_GROUP,\n INSTRUMENTATION.OLD.PAGE_NAME,\n )\n tracking(Events.public_identity_my_profile_screen_shown({}))\n }, [])\n\n const onShare = (platform: string) => {\n trackLinkWithData(\n 'share',\n INSTRUMENTATION.OLD.PAGE_GROUP,\n INSTRUMENTATION.OLD.PAGE_NAME,\n { platform },\n 'link',\n )\n tracking(Events.public_identity_my_profile_share_pressed({}))\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default MyProfile\n","import MyProfile from './my-profile'\n\nexport default MyProfile\n","export default {\n // Mathematical constants\n e: '2.71',\n pi: '3.14',\n sqrt2: '1.41',\n phi: '1.62',\n tau: '6.28',\n graham: '99999.99',\n avogadro: '999999.99',\n googolplex: '99999.99',\n googol: '99999.99',\n\n // Food and their emojis\n beer: '3.82',\n '🍺': '3.82',\n pizza: '9.00',\n '🍕': '9.00',\n coffee: '2.95',\n '☕️': '2.95',\n hamburger: '3.57',\n '🍔': '3.57',\n\n // Other\n '💰': (Math.random() * 80 + 20).toFixed(2),\n // chai\n חי: '18.00',\n}\n","// This module is used to take the \"amountInfo\" part of the URL on the\n// receipient page (the part that comes after the user's slug) and attempts\n// to parse it into the amount and currency\nimport easterEggAmounts from './easter-egg-amounts'\nimport { toCanonicalNumber } from 'amount-utils'\nimport clientData from 'utils/client-data'\nimport _ from 'lodash'\n\nconst currencyRegex = /[A-Za-z]{3}/\n\n// This is the main function that performs the amount info extraction.\nfunction extractAmountInfo(amountString = '') {\n const decodedAmountString = decodeURI(amountString)\n const easterEggResult = getEasterEggInfo(decodedAmountString)\n if (easterEggResult) {\n return easterEggResult\n }\n\n const primaryCurrencyCode = _.get(\n clientData,\n 'recipientSlugDetails.slugDetails.userInfo.primaryCurrencyCode',\n 'USD',\n )\n\n const supportedCurrencyCode = _.get(clientData, 'supportedCurrencies', [])\n\n let [currency = 'USD'] =\n decodedAmountString.match(currencyRegex) || [primaryCurrencyCode] || []\n\n const amountOnly = decodedAmountString.replace(currency, '') || '0'\n\n // if the currency code passed by user is not supported then default back to the recipients user currency code\n if (!supportedCurrencyCode.includes(currency.toUpperCase())) {\n currency = primaryCurrencyCode\n }\n\n return {\n amount: Number(toCanonicalNumber(amountOnly)).toFixed(2),\n currency: currency.toUpperCase(),\n }\n}\n\nexport function isValidNumber(amountString = '') {\n const { amount } = extractAmountInfo(amountString)\n return !isNaN(amount)\n}\n\n// This will check whether the amountString is referencing one of the easter\n// eggs (emoji/mathmatical constants/etc.)\nfunction getEasterEggInfo(amountString) {\n const supportedCurrencyCode = _.get(clientData, 'supportedCurrencies', [])\n const primaryCurrencyCode = _.get(\n clientData,\n 'recipientSlugDetails.slugDetails.userInfo.primaryCurrencyCode',\n 'USD',\n )\n\n // `pizza`\n if (easterEggAmounts[amountString]) {\n return {\n amount: easterEggAmounts[amountString],\n currency: primaryCurrencyCode,\n }\n }\n\n // `pizzaUSD`\n const firstPart = amountString.slice(0, amountString.length - 3)\n if (easterEggAmounts[firstPart]) {\n let currency = amountString.slice(-3).toUpperCase()\n\n // if the currency code passed by user is not supported then default back to the recipients user currency code\n if (!supportedCurrencyCode.includes(currency.toUpperCase())) {\n currency = primaryCurrencyCode\n }\n\n return {\n amount: easterEggAmounts[firstPart],\n currency,\n }\n }\n\n // `USDpizza`\n const secondPart = amountString.slice(3)\n if (easterEggAmounts[secondPart]) {\n let currency = amountString.slice(0, 3).toUpperCase()\n\n // if the currency code passed by user is not supported then default back to the recipients user currency code\n if (!supportedCurrencyCode.includes(currency.toUpperCase())) {\n currency = primaryCurrencyCode\n }\n return {\n amount: easterEggAmounts[secondPart],\n currency,\n }\n }\n return null\n}\n\nexport { extractAmountInfo }\n","// @flow\n\nimport React, { useEffect, useState, useRef } from 'react'\nimport { withRouter } from 'react-router-dom'\nimport glamorous from 'glamorous'\nimport getContent from 'pp-react-l10n'\nimport { Link } from '@paypalcorp/pp-react'\nimport clientData from 'utils/client-data'\nimport { getProfilePhotoUrl } from 'utils/photo'\nimport { getDisplayName } from 'utils/name'\nimport { getSendUrl, getRequestUrl, getReportLink } from 'utils/generate-urls'\nimport { extractAmountInfo } from 'screens/recipient-slug/extract-amount-info'\nimport {\n getAmountFieldInfo,\n getFormattedValue,\n getFormattedAmount,\n normalizeNumber,\n} from 'screens/shared/amount-utils'\n\nimport Events from 'lib/analytics/event-tags'\nimport { trackImpression, trackLink, tracking } from 'lib/analytics'\n\nimport { INSTRUMENTATION_MAP } from 'utils/constants'\n\nimport CoverPhoto from 'screens/shared/components/cover-photo'\nimport ProfileCard from 'screens/shared/components/profile-card'\n\nconst INSTRUMENTATION = INSTRUMENTATION_MAP.recipient\n\nconst l10n = getContent('pages/shared')\n\nconst UTM_TAGS = clientData.utmTags\nconst PARTNER_TAGS = clientData.partnerTags\n\nconst Container = glamorous.div({\n margin: '2.25rem 0 2rem',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n})\n\nconst CoverContainer = glamorous.div({\n zIndex: 0,\n marginBottom: '-6.375rem',\n})\n\nconst ProfileCardContainer = glamorous.div({\n zIndex: 1,\n})\n\nconst ReportContainer = glamorous.div({\n marginTop: '3rem',\n})\nconst ReportLink = glamorous.a({ fontSize: '0.875rem' })\n\ntype Props = {\n slugDetails: SlugDetails,\n match: Match,\n}\n\nfunction SlugRecipientProfile(props: Props) {\n useEffect(() => {\n trackImpression(\n INSTRUMENTATION.OLD.PAGE_GROUP,\n INSTRUMENTATION.OLD.PAGE_NAME,\n { ...UTM_TAGS, ...PARTNER_TAGS },\n )\n tracking(\n Events.public_identity_profile_screen_shown({\n ...UTM_TAGS,\n ...PARTNER_TAGS,\n }),\n )\n }, [])\n\n const [reportLink] = useState(() => getReportLink())\n const { current: isUserLoggedIn } = useRef(clientData.isUserLoggedIn)\n\n const {\n match: { params: { amountInfo } = {} } = {},\n slugDetails = {},\n slugDetails: {\n paypalmeSlugName = '',\n userInfo: {\n profilePhotoUrl = '',\n displayName = '',\n displayAddress = '',\n } = {},\n personalizationSettings: {\n coverPhotoUrl = '',\n coverPhotoVerticalPan = '50',\n welcomeNote = '',\n } = {},\n } = {},\n } = props\n\n const [{ amount, currency: currencyCode } = {}] = useState(() =>\n extractAmountInfo(amountInfo),\n )\n const showAmount =\n clientData.isProfileAmountTreatment && !isNaN(amount) && amount > 0\n const [{ currencyDecimal, currencySymbolMap } = {}] = useState(() =>\n getAmountFieldInfo(),\n )\n const [formattedAmount] = useState(() =>\n getFormattedAmount({\n amount,\n currencyCode,\n symbolIsoCurrency: true,\n }),\n )\n\n const handleSendReqUrl = async type => {\n trackLink(\n type,\n INSTRUMENTATION.OLD.PAGE_GROUP,\n INSTRUMENTATION.OLD.PAGE_NAME,\n 'link',\n )\n let redirectUrl\n\n if (type === 'send') {\n tracking(Events.public_identity_profile_send_pressed({}))\n\n redirectUrl = getSendUrl({\n isLoggedIn: isUserLoggedIn,\n slugDetails,\n ...(showAmount && {\n amount: String(normalizeNumber(amount)),\n currencyCode,\n }),\n })\n } else {\n tracking(Events.public_identity_profile_request_pressed({}))\n\n redirectUrl = getRequestUrl({\n isLoggedIn: isUserLoggedIn,\n slugDetails,\n ...(showAmount && {\n amount: String(normalizeNumber(amount)),\n currencyCode,\n }),\n })\n }\n\n if (type === 'request' || !clientData.isPSD2Treatment) {\n window.location.assign(redirectUrl)\n return\n }\n\n const body = {\n redirectUrl,\n slugDetails,\n isUserLoggedIn,\n }\n\n if (showAmount) {\n body.amount = String(normalizeNumber(amount))\n body.currencyCode = currencyCode\n }\n\n const response = await fetch(`${clientData.requestURI}/v1/guest`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-TOKEN': clientData.csrf,\n },\n body: JSON.stringify(body),\n })\n\n try {\n const data = await response.json()\n\n if (response.status >= 400) {\n window.location.assign(redirectUrl)\n return\n }\n\n window.location.assign(data.loginUrl)\n return\n } catch (err) {\n window.location.assign(redirectUrl)\n }\n }\n\n const onReport = () => {\n trackLink(\n 'report',\n INSTRUMENTATION.OLD.PAGE_GROUP,\n INSTRUMENTATION.OLD.PAGE_NAME,\n 'link',\n )\n tracking(Events.public_identity_profile_report_pressed({}))\n }\n\n return (\n \n \n \n \n \n handleSendReqUrl('send')}\n onRequest={() => handleSendReqUrl('request')}\n showAmount={showAmount}\n amount={amount}\n currencyCode={currencyCode}\n currencyDecimal={currencyDecimal}\n currencySymbolMap={currencySymbolMap}\n formatAmount={(amount: string) =>\n getFormattedValue({ amount, currencyCode })\n }\n amountLabel={formattedAmount}\n />\n \n \n \n {l10n('button.report')}\n \n \n \n )\n}\n\nexport default withRouter(SlugRecipientProfile)\n","import React from 'react'\nimport { withRouter } from 'react-router-dom'\nimport glamorous from 'glamorous'\nimport { ThemeProvider } from '@paypalcorp/pp-react'\nimport Preview from './preview'\n\nconst Wrapper = glamorous.div({\n margin: '2.25rem 0 2rem',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n})\n\nfunction SlugSellerRecipientProfile(props) {\n return (\n \n \n \n \n \n )\n}\nexport default withRouter(SlugSellerRecipientProfile)\n","// @flow\n\nimport React from 'react'\nimport glamorous from 'glamorous'\nimport getContent from 'pp-react-l10n'\nimport { HeadingText, BodyText } from '@paypalcorp/pp-react'\n\nimport { ILLUSTRATIONS } from 'utils/constants'\n\nconst l10n = getContent('pages/error')\n\nconst Wrapper = glamorous.div({\n display: 'flex',\n justifyContent: 'center',\n})\nconst Container = glamorous.div({\n margin: '5rem 0',\n maxWidth: '21rem',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n})\n\nconst Warning = glamorous.img({\n width: '7rem',\n height: '7rem',\n})\n\nconst HeaderContainer = glamorous.div({\n marginTop: '0.5rem',\n})\nconst BodyContainer = glamorous.div({\n marginTop: '2rem',\n})\n\nfunction SlugNotFound() {\n return (\n \n \n \n \n \n {l10n('error.title.slugDoesNotExist')}\n \n \n \n {l10n('error.subheader.slugDoesNotExist')}\n \n \n \n )\n}\n\nexport default SlugNotFound\n","// @flow\n\nimport React from 'react'\n\nimport clientData from 'utils/client-data'\nimport { get } from 'lodash'\nimport SlugRecipientProfile from './slug-recipient-profile'\nimport SlugSellerRecipientProfile from '../seller/slug-seller-recipient-profile.js'\nimport SlugNotFound from './slug-not-found'\n\nconst { recipientSlugDetails: { slugDetails = {} } = {} } = clientData\nconst isSellerProfile = get(slugDetails, 'intent') === 'COMMERCE'\nfunction SlugDetails(props) {\n const RecipientProfile = isSellerProfile\n ? SlugSellerRecipientProfile\n : SlugRecipientProfile\n return (\n <>\n {clientData.slug && slugDetails.isProfileStatusActive ? (\n \n ) : (\n \n )}\n \n )\n}\n\nexport default SlugDetails\n","import RecipientSlug from './recipient-slug'\n\nexport default RecipientSlug\n","// @flow\n\nimport clientData from 'utils/client-data'\nimport griffinNumber from 'griffin-paypal/number'\n\nconst { griffinMetadata } = clientData\nconst griffinNumberHandler = griffinNumber.createHandler(griffinMetadata)\n\nfunction getAmountFieldInfo(): {\n currencySymbolMap: CurrencySymbolMap,\n currencyDecimal: CurrencyDecimal,\n} {\n const {\n numbers: { currencies },\n numbers,\n } = griffinMetadata.cldr.main[griffinMetadata.localityKey]\n\n const currencySymbolMap = Object.keys(currencies).reduce((map, code) => {\n map[code] = currencies[code].symbol\n return map\n }, {})\n const { decimal: currencyDecimal } = numbers['symbols-numberSystem-latn']\n return { currencySymbolMap, currencyDecimal }\n}\n\nfunction getFormattedValue({\n amount = '0',\n currencyCode = 'USD',\n}: {\n amount: string,\n currencyCode: string,\n}): string {\n const parts = griffinNumberHandler.formatCurrency(\n {\n value: normalizeNumber(amount),\n currency: currencyCode,\n },\n griffinNumberHandler.CURRENCY_FORMAT_SYMBOLISOCURRENCY.parts(),\n )\n return parts.find(p => p.type === 'value').value\n}\n\nfunction normalizeNumber(numberString: string): number {\n return Number(toCanonicalNumber(numberString))\n}\n\n// this is the amount that our APIs expect (a cononicle)\nfunction getFormattedAmount({\n amount = '0',\n currencyCode = 'USD',\n symbolIsoCurrency = false,\n}: {\n amount: string,\n currencyCode: string,\n}): string {\n const options = symbolIsoCurrency\n ? griffinNumberHandler.CURRENCY_FORMAT_SYMBOLISOCURRENCY\n : griffinNumberHandler.CURRENCY_FORMAT\n return griffinNumberHandler.formatCurrency(\n {\n value: normalizeNumber(amount),\n currency: currencyCode,\n },\n options,\n )\n}\n\nfunction toCanonicalNumber(numberString) {\n const [otherNumbers, decimalGroup = '0'] = numberString.split(\n isCommaDecimal(numberString) ? ',' : '.',\n )\n return `${otherNumbers.split(/[.,]/).join('')}.${decimalGroup}`\n}\n\n// This determines whether the decimal of the string is using comma-notation\n// based on whether one of the following is true:\n// 1. The last three characters in the string includes `,` (12,34)\n// 2. The last three characters in the string does NOT include `.`,\n// but the rest of the number DOES include `.` (123.456)\nfunction isCommaDecimal(numberString) {\n const lastThree = numberString.slice(-3)\n return (\n lastThree.includes(',') ||\n (!lastThree.includes('.') && numberString.includes('.'))\n )\n}\n\nexport {\n toCanonicalNumber,\n getFormattedValue,\n getAmountFieldInfo,\n normalizeNumber,\n getFormattedAmount,\n}\n","// @flow\n\nimport React, { useState, useEffect } from 'react'\nimport Hammer from 'react-hammerjs'\nimport { css } from 'glamor'\nimport glamorous from 'glamorous'\nimport getContent from 'pp-react-l10n'\nimport { Icon, grey100 } from '@paypalcorp/pp-react'\n\nimport { getDisplayCoverPhotoUrl } from 'utils/image-utils'\n\nconst l10n = getContent('pages/profile')\n\nexport const CONTAINER_HEIGHT_PX = '286'\nexport const CONTAINER_WIDTH_PX = '494'\n\nconst ContainerBase = {\n position: 'relative',\n height: `${CONTAINER_HEIGHT_PX / 16}rem`,\n width: `${CONTAINER_WIDTH_PX / 16}rem`,\n}\n\nconst Container = glamorous.div({\n ...ContainerBase,\n})\n\nconst DraggableContainer = css({\n ...ContainerBase,\n cursor: 'move',\n cursor: 'grab', // eslint-disable-line no-dupe-keys\n '&:active': {\n cursor: 'grabbing',\n },\n})\n\nconst FadeIn = css.keyframes({ from: { opacity: 0 }, to: { opacity: 1 } })\nconst Photo = glamorous.div(\n ({ photoUrl, photoVerticalPan, fadeIn = true }) => ({\n height: '100%',\n width: '100%',\n borderRadius: '5% 5% 100% 100% / 10% 10% 50% 50%',\n background: `url(${photoUrl})`,\n backgroundSize: 'cover',\n backgroundPositionX: '50%',\n backgroundPositionY: `${photoVerticalPan}%`,\n backgroundRepeat: 'no-repeat',\n ...(fadeIn && { animation: `${FadeIn} 0.2s` }),\n }),\n)\n\nconst EditContainer = glamorous.div({\n '@media (max-width: 30.875em)': {\n width: '100vw',\n position: 'absolute',\n marginLeft: 'auto',\n marginRight: 'auto',\n left: 0,\n right: 0,\n textAlign: 'center',\n top: 0,\n },\n})\n\nconst EditButton = glamorous.button({\n position: 'absolute',\n top: '0',\n right: '0',\n border: 'none',\n padding: '0.15rem',\n cursor: 'pointer',\n outline: 'inherit',\n color: grey100,\n background: 'rgba(0, 0, 0, 0.3)',\n borderRadius: '50%',\n margin: '0.5rem 0.5rem 0 0',\n '&:focus': {\n outline: '1px auto rgb(0, 95, 204)',\n },\n})\n\n// hide text visually without hiding it from assistive technology\nconst EditText = glamorous.div({\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px',\n})\n\nconst DragButton = glamorous.div({\n position: 'absolute',\n top: '20%',\n left: '50%',\n transform: 'translateX(-50%)',\n padding: '0 1.75rem',\n color: 'white',\n background: 'rgba(0, 0, 0, 0.3)',\n borderRadius: '99999rem',\n display: 'flex',\n alignItems: 'center',\n})\n\nconst ChevronContainer = glamorous.div({\n display: 'flex',\n flexDirection: 'column',\n marginRight: '0.5rem',\n})\n\nconst ChevronUpIcon = css({\n marginBottom: '-0.75rem',\n})\n\nconst DragText = glamorous.span({\n fontWeight: '500',\n fontSize: '0.8125rem',\n})\n\ntype Props = {\n photoUrl: string,\n photoVerticalPan: string,\n isEditable?: boolean,\n onEdit?: () => any,\n isDraggable?: boolean,\n onDrag?: () => any,\n onDragEnd?: () => any,\n onDragCancel?: () => any,\n}\n\nfunction CoverPhoto(props: Props) {\n const {\n photoUrl,\n photoVerticalPan,\n isEditable = false,\n onEdit,\n isDraggable = false,\n onDrag = () => {},\n onDragEnd = () => {},\n onDragCancel = () => {},\n } = props\n\n const [isLoaded, setIsLoaded] = useState(false)\n const [isPhotoCached, setIsPhotoCached] = useState(false)\n\n useEffect(() => {\n const photoImage = new Image()\n photoImage.onload = () => {\n setIsLoaded(true)\n }\n photoImage.onerror = () => {\n // image failed to load so do nothing\n }\n photoImage.src = photoUrl\n if (photoImage.complete) {\n setIsPhotoCached(true)\n }\n\n return () => {\n photoImage.onload = () => {}\n }\n }, [])\n\n return (\n \n {isLoaded && (\n <>\n \n {isEditable && (\n \n \n \n {l10n('cover.edit')}\n \n \n )}\n {isDraggable && (\n \n \n \n \n \n {l10n('cover.drag')}\n \n )}\n \n )}\n \n )\n}\n\nfunction WithDrag({\n isDraggable = false,\n onDrag,\n onDragEnd,\n onDragCancel,\n children,\n}) {\n return isDraggable ? (\n \n
{children}
\n \n ) : (\n {children}\n )\n}\n\nexport default CoverPhoto\n","// @flow\n\nimport React, { useState, useEffect } from 'react'\nimport glamorous from 'glamorous'\nimport { css } from 'glamor'\nimport getContent from 'pp-react-l10n'\nimport PPAmountField from 'pp-amount-field/dist/pp-amount-field.basic.v2.umd'\nimport {\n HeadingText,\n BodyText,\n Link,\n Icon,\n grey100,\n grey200,\n grey600,\n grey700,\n blue600,\n} from '@paypalcorp/pp-react'\n\nconst l10n = getContent('pages/profile')\n\nconst PrimaryText = glamorous.div({\n color: grey700,\n})\nconst SecondaryText = glamorous.div({\n color: grey600,\n})\n\nconst Card = glamorous.div({\n minHeight: '12.125rem',\n width: '21.5rem',\n borderRadius: '0.75rem',\n backgroundColor: 'white',\n boxShadow: '0 2px 4px 0 rgba(0,0,0,0.15)',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n})\n\nconst Content = glamorous.div(({ showActions = false }) => ({\n margin: `1rem 1.5rem ${showActions ? '1.5rem' : '2rem'}`,\n overflowWrap: 'break-word',\n}))\n\nconst AvatarContainer = glamorous.div({\n height: '5.625rem',\n width: '5.625rem',\n marginTop: '-3.125rem',\n marginLeft: '1.25rem',\n position: 'relative',\n})\nconst AvatarStyles = {\n width: 'inherit',\n height: 'inherit',\n border: '4px solid white',\n borderRadius: '50%',\n}\nconst GenericAvatar = glamorous.div(({ background }) => ({\n ...AvatarStyles,\n background,\n textAlign: 'center',\n ' span': {\n color: 'white',\n lineHeight: '5.125rem',\n },\n}))\nconst FadeIn = css.keyframes({ from: { opacity: 0 }, to: { opacity: 1 } })\nconst PhotoAvatar = glamorous.div(({ photoUrl, fadeIn = true }) => ({\n ...AvatarStyles,\n backgroundImage: `url(\"${photoUrl}\")`,\n backgroundSize: 'cover',\n backgroundPosition: '50%',\n backgroundRepeat: 'no-repeat',\n ...(fadeIn && { animation: `${FadeIn} 0.2s` }),\n}))\nconst AvatarEdit = glamorous.button({\n color: 'inherit',\n padding: 0,\n font: 'inherit',\n cursor: 'pointer',\n outline: 'inherit',\n width: '2rem',\n height: '2rem',\n border: '2px solid white',\n textAlign: 'center',\n borderRadius: '50%',\n backgroundColor: grey200,\n position: 'absolute',\n bottom: 0,\n right: 0,\n '&:focus': {\n outline: '1px auto rgb(0, 95, 204)',\n },\n})\n\nconst EditCamera = css({\n color: grey700,\n lineHeight: '1.75rem',\n})\n\nconst ShareContainer = glamorous.div({\n position: 'absolute',\n top: '0.8125rem',\n right: '0.5rem',\n})\nconst ShareButton = glamorous.button({\n background: 'none',\n border: 'none',\n padding: '0',\n cursor: 'pointer',\n outline: 'inherit',\n})\n\nconst SecondaryContent = glamorous.div({ marginTop: '0.125rem' })\nconst TertiaryContent = glamorous.div({ marginTop: '1.5rem' })\n\nconst AmountContainer = glamorous.div({\n marginTop: '1rem',\n ' .ppaf-input': {\n '&:focus': {\n outline: 'revert',\n },\n },\n ' .ppaf-select-wrapper': {\n marginTop: '0.375rem',\n },\n ' .ppaf-select': {\n paddingLeft: '0.5rem',\n paddingRight: '0.5rem',\n },\n})\n\nconst Footer = glamorous.div({\n display: 'flex',\n marginTop: 'auto',\n overflowWrap: 'break-word',\n})\n\nconst Button = glamorous.a(({ borderRight }) => ({\n borderTop: '1px solid ' + grey100,\n ...(borderRight && { borderRight: '1px solid ' + grey100 }),\n flexBasis: '100%',\n minWidth: 0, // let flex item shrink smaller than content\n padding: '1rem 0',\n textDecoration: 'none',\n '&:active, &:focus, &:hover, &:visited': {\n textDecoration: 'none',\n },\n}))\n\ntype Props = {\n isEditable?: boolean,\n onEdit?: () => {},\n isShareable?: boolean,\n onShare?: () => {},\n photoUrl?: string,\n displayName: string,\n handle: string,\n displayLocation?: string,\n blurb?: string,\n showActions?: boolean,\n sendLink?: string,\n onSend?: () => any,\n showAmount?: boolean,\n amount?: string,\n currencyCode?: string,\n currencyDecimal?: string,\n currencySymbolMap?: { [string]: string },\n formatAmount?: (amount: string) => string,\n amountLabel?: string,\n}\n\nfunction ProfileCard(props: Props) {\n const {\n isEditable = false,\n onEdit,\n isShareable = false,\n onShare,\n photoUrl,\n displayName,\n handle,\n displayLocation,\n blurb,\n sendLink,\n onSend,\n showActions = false,\n showAmount = false,\n amount,\n currencyCode,\n currencyDecimal,\n currencySymbolMap,\n formatAmount,\n amountLabel,\n } = props\n\n const [isLoaded, setIsLoaded] = useState(!photoUrl)\n const [isPhotoCached, setIsPhotoCached] = useState(false)\n\n useEffect(() => {\n if (!photoUrl) {\n return\n }\n\n const photoImage = new Image()\n photoImage.onload = () => {\n setIsLoaded(true)\n }\n photoImage.onerror = () => {\n // image failed to load so do nothing\n }\n photoImage.src = photoUrl\n if (photoImage.complete) {\n setIsPhotoCached(true)\n }\n\n return () => {\n photoImage.onload = () => {}\n }\n }, [])\n\n return (\n \n \n {photoUrl ? (\n isLoaded && (\n \n )\n ) : (\n \n \n \n )}\n {isEditable && isLoaded && (\n \n \n \n )}\n \n {isShareable && (\n \n \n \n \n \n )}\n \n \n {displayName}\n \n \n \n {handle}\n \n {displayLocation && (\n \n {displayLocation}\n \n )}\n \n {blurb && (\n \n \n {blurb}\n \n \n )}\n {showAmount && (\n \n \n \n )}\n \n {showActions && (\n
\n \n {l10n('send')}\n \n
\n )}\n
\n )\n}\n\nexport default ProfileCard\n","// @flow\n\nimport React, { Fragment } from 'react'\nimport { CSSTransitionGroup } from 'react-transition-group'\nimport glamorous from 'glamorous'\nimport getContent from 'pp-react-l10n'\nimport { BodyText, grey700 } from '@paypalcorp/pp-react'\nimport CopyToClipboard from 'react-copy-to-clipboard'\nimport sharing from 'consumerweb-sharing'\n\nimport { svgImages } from 'components/index'\nimport SVG from 'components/svg-logo'\n\nimport { phone5PortraitMaxAndSmaller } from 'lib/styles/media-queries'\n\nconst l10n = getContent('pages/shared')\nconst l10nSettings = getContent('pages/settings')\n\nconst ShareTitle = glamorous.div({ color: grey700, textAlign: 'center' })\n\nconst SVGParent = glamorous.button({\n textAlign: 'center',\n display: 'inline-block',\n width: '3.75rem',\n margin: '0 0.625rem',\n background: 'none',\n color: 'inherit',\n border: 'none',\n padding: '0',\n font: 'inherit',\n cursor: 'pointer',\n outline: 'inherit',\n transition: 'all .2s ease-in-out',\n ':hover': {\n transform: 'scale(1.1)',\n },\n '@media (max-width: 880px)': {\n transform: 'scale(0.95)',\n marginRight: '10px',\n },\n [phone5PortraitMaxAndSmaller]: {\n transform: 'scale(0.9)',\n marginRight: 0,\n },\n '&:focus': {\n outline: '1px auto rgb(0, 95, 204)',\n },\n})\n\nconst SVGStyling = glamorous(SVG, {\n forwardProps: ['svgString'],\n rootEl: 'span',\n})({})\n\nconst SpanText = glamorous.span({\n display: 'inline-table',\n fontSize: '0.8125rem',\n color: '#ababab',\n position: 'relative',\n})\n\nconst CopyContainer = glamorous.div({\n position: 'relative',\n display: 'inline-block',\n})\n\nconst TooltipCopied = glamorous.span({\n padding: '0.25rem 0.5rem',\n position: 'absolute',\n bottom: '-2.75rem',\n fontWeight: 500,\n left: '0.5rem',\n backgroundColor: '#e1e7eb',\n color: 'black',\n\n ':before': {\n content: '\"\"',\n position: 'absolute',\n width: 0,\n height: 0,\n borderLeft: '6px solid transparent',\n borderRight: '6px solid transparent',\n marginLeft: '5px',\n borderBottom: '6px solid #e1e7eb',\n top: '-6px',\n },\n\n '&.tooltip-enter': {\n opacity: 0.01,\n },\n\n '&.tooltip-enter.tooltip-enter-active': {\n opacity: '1',\n transition: 'opacity 300ms ease-in',\n },\n\n '&.tooltip-leave.tooltip-leave-active': {\n opacity: 0.01,\n transition: 'opacity 300ms ease-in',\n },\n})\n\ntype State = {\n isCopied: boolean,\n}\ntype Props = {\n slugInfo: { slugDetails: SlugDetails },\n locale?: string,\n country?: string,\n onShare?: (platform: string) => any,\n}\n\nclass ShareYourLink extends React.Component {\n _ref: ?HTMLElement = null\n\n state = {\n isCopied: false,\n }\n\n onShare = platform => {\n if (this.props.onShare) {\n this.props.onShare(platform)\n }\n }\n\n handleFBClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n this.onShare('facebook')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n sharing.shareURLByFacebook(\n `https://paypal.me/${paypalmeSlugName}?country.x=${this.props.country}&locale.x=${this.props.locale}`,\n 575,\n 400,\n )\n }\n\n handleTwitterClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n this.onShare('twitter')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n const twitterShareLink = `${l10n(\n 'share.twitter',\n )} https://paypal.me/${encodeURIComponent(paypalmeSlugName)}?country.x=${\n this.props.country\n }&locale.x=${this.props.locale}`\n sharing.shareByTwitter(twitterShareLink, 575, 400)\n }\n\n handleWhatsappClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n this.onShare('whatsapp')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n sharing.shareByWhatsApp(\n `https://paypal.me/${encodeURIComponent(paypalmeSlugName)}?locale.x=${\n this.props.locale\n }`,\n 575,\n 400,\n )\n }\n\n handleMessengerClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n this.onShare('messenger')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n sharing.shareURLByMessenger(\n `https://paypal.me/${encodeURIComponent(paypalmeSlugName)}?country.x=${\n this.props.country\n }&locale.x=${this.props.locale}`,\n '321983581337375',\n window.location.href,\n )\n }\n\n copyToClipboard() {\n this.onShare('copylink')\n\n this.setState({ isCopied: true })\n setTimeout(() => {\n this.setState({ isCopied: false })\n }, 1000)\n }\n\n render() {\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n\n return (\n \n \n {l10n('header.share')}\n \n
\n {\n this.copyToClipboard()\n }}\n >\n \n \n \n {l10nSettings('share.copy')}\n \n \n {this.state.isCopied && (\n \n \n \n )}\n \n \n \n \n \n {l10nSettings('share.facebook')}\n \n \n \n {l10nSettings('share.messenger')}\n \n \n \n {l10nSettings('share.twitter')}\n \n
\n
\n )\n }\n}\n\nexport default ShareYourLink\n","// @flow\n\nimport _ from 'lodash'\n\nexport function getDisplayName(displayName: string) {\n // display name is escaped at the service layer but React escapes strings by default\n // so this string ends up getting double escaped and does not get displayed properly\n return _.unescape(displayName)\n}\n","// @flow\n\nimport { DEFAULT_PROFILE_PHOTO } from 'utils/constants'\n\nexport function getProfilePhotoUrl(url?: string) {\n // return any profile photo URL except for default SVG\n if (url !== DEFAULT_PROFILE_PHOTO) {\n return url\n }\n}\n"],"sourceRoot":""}