{"version":3,"sources":["webpack:///./gql/mutation/activate-profile.js","webpack:///./gql/mutation/edit-user-preferences.js","webpack:///./screens/settings/state.js","webpack:///./gql/mutation/deactivate-profile.js","webpack:///./gql/query/network-identity-status.js","webpack:///./gql/query/location.js","webpack:///./gql/query/preference.js","webpack:///./gql/query/privacy.js","webpack:///./gql/query/cover-photo.js","webpack:///./gql/mutation/upload-cover-photo.js","webpack:///./gql/mutation/edit-cover-photo.js","webpack:///./gql/query/personal-message.js","webpack:///./gql/mutation/remove-cover-photo.js","webpack:///./utils/image-utils.js","webpack:///./screens/shared/components/glamorous-link.js","webpack:///./screens/shared/components/lazy-load-image.js","webpack:///./screens/shared/components/profile-view.js","webpack:///./screens/shared/components/share-with-friends.js","webpack:///./screens/shared/components/svg-logo.js","webpack:///./utils/client.js","webpack:///./utils/loader.js"],"names":["activateProfile","editProfileSettings","SettingsState","pan","isReviewPage","userHasCoverPhoto","clientData","userHasProfilePicture","imagePreviewUrl","fileName","shouldLoadPayPalMe","slugDetails","imageRef","personalMessageValue","setState","profile","personalizationSettings","coverPhotoUrl","welcomeNote","relativePan","filename","toggle","this","state","paypalmeSlugName","slugName","addLoader","client","request","accountUpgradeOrSwitchOnOrOff","isProfileStatusActive","profilePhotoUrl","userInfo","profileToggle","removeLoader","enrollUserToNetworkIdentity","op","path","value","variables","editUserSettings","networkIdentityStatus","userPayPalMeDetails","displayAddress","privacySettings","location","transactionType","emailSearchEnabled","phoneSearchEnabled","undefined","coverPhotoVerticalPan","Boolean","editCoverPhoto","file","slug","Math","abs","toString","coverPhotoEdit","updateCoverPhotoStatus","fileSelectEvent","fileReader","FileReader","onload","onLoadEvent","dataUrl","toWidth","toHeight","normalizeImageSize","mimeType","callback","img","document","createElement","changed","canvas","ctx","getContext","resizeWidth","width","resizeHeight","height","floor","EXIF","getData","exifdata","Orientation","swapCanvasDimensions","transform","drawImage","toDataURL","setTimeout","src","normalizeImage","target","result","type","normalizedUrl","userImagePreviewUrl","name","files","readAsDataURL","Container","ConditionalLink","props","to","propTypes","PropTypes","string","glamorousLink","glamorous","rootEl","displayName","forwardProps","Lazy","loaded","imageURL","cacheImage","Image","payload","render","Component","LazyImageTag","div","opacity","transition","backgroundSize","backgroundImage","LazyImage","css","containerStyles","PureComponent","overflow","backgroundColor","boxShadow","LazyLoader","Div","l10n","getContent","ProfileReviewStyling","margin","textAlign","myProfilePage","padding","position","top","ProfileReviewInnerChild","display","MoreInfoAboutUserStyling","color","fontSize","lineHeight","paddingBottom","textTransform","WelcomeNoteStyling","overflowWrap","wordWrap","isCoverUploadPage","shouldShowMoreMessage","WebkitLineClamp","WebkitBoxOrient","maxHeight","NameAndSlugDetailLocation","marginBottom","paddingTop","NameAndSlugDetailMessage","showAmountInput","personalMessagePaddingBottomStyling","NextButtonStyling","ShowMoreDiv","fontWeight","cursor","SVGStyling","SVG","AmountField","args","amount","amountUtils","currencyCode","currencySymbolMap","currencyDecimal","Object","assign","onChange","getFormattedValue","React","ProfileView","amountValue","initialAmount","amountCurrencyCode","initialCurrencyCode","isShowMore","style","borderTop","slugInfo","givenName","shouldShowMoreAboutUser","welcomeNoteLength","length","recipientSlugPage","onClick","moreInfo","svgString","svgImages","arrowDown","arrowUp","borderBottom","handleShowMoreClick","showDottedLines","isUserLoggedIn","generateUrlLoggedInState","generateUrlLoggedOutState","isUserInHomepageTreatment","flow","locality","locale","country","queryString","queryify","String","flowType","formattedAmount","host","isDev","isStage","window","origin","isProd","sendRoute","onboardDataRegularSignUp","JSON","stringify","intent","redirect_url","encodeURIComponent","sendMoneyText","guestQueryString","env","recipientIdType","recipientId","onboardDataGuest","signUpRequest","method","url","onboardData","isUserInGuestTreatment","isCreateFlow","transitionName","transitionEnterTimeout","transitionLeaveTimeout","borderRadius","backgroundPosition","backgroundRepeat","role","aria-level","_unescape","marginTop","handleAmountChange","data-pagename","data-pagename2","href","generateSendMoneyUrl","moreAboutUser","toLowerCase","obj","keys","reduce","qs","key","push","join","l10nSettings","isMobile","test","navigator","userAgent","ShareYourLinkStyling","SVGParent","span","marginRight","SpanText","left","TooltipCopied","bottom","right","content","borderLeft","borderRight","marginLeft","trackShareLinks","linkName","trackLink","ShareYourLink","isCopied","e","preventDefault","sharing","shareURLByFacebook","twitterShareLink","shareByTwitter","shareByWhatsApp","shareURLByMessenger","showCopyText","lang","text","onCopy","copyToClipboard","background","border","ref","input","_ref","readOnly","className","tabIndex","onKeyPress","click","clipBoard","handleFBClick","facebook","handleMessengerClick","messenger","handleTwitterClick","twitter","isMarketkingFlow","paddingLeft","handleWhatsappClick","whatsapp","workaroundScoreBot","dangerProps","__html","GraphQLClient","requestURI","credentials","mode","headers","csrf","elementID","maximumDuration","overlayedElement","getElementById","classList","add","elementWithSpinner","getElementsByClassName","remove"],"mappings":"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","file":"ppme-grab~ppme-settings~ppme-slug.bundle.js","sourcesContent":["export const activateProfile = `\n mutation ActivateProfile ($slugName: String!) {\n activateProfile (slug: $slugName) {\n isSuccess\n }\n}`\n","export const editProfileSettings = `\n mutation EditProfileSettings ($editUserSettings: [PatchOptions]!, $slugName: String!) {\n editProfileSettings (editSlugDetails: $editUserSettings, slug: $slugName) {\n isSuccess\n }\n }\n`\n","import { Container } from 'unstated'\nimport clientData from 'utils/client-data'\nimport _ from 'lodash'\nimport { activateProfile } from 'gql/mutation/activate-profile'\nimport { deactivateProfile } from 'gql/mutation/deactivate-profile'\nimport { editProfileSettings } from 'gql/mutation/edit-user-preferences'\nimport { editCoverPhotoDetails } from 'gql/mutation/edit-cover-photo'\nimport { removeCoverPhoto } from 'gql/mutation/remove-cover-photo'\nimport { locationQuery } from 'gql/query/location'\nimport { privacyQuery } from 'gql/query/privacy'\nimport { uploadCoverPhoto } from 'gql/mutation/upload-cover-photo'\nimport { personalMessageQuery } from 'gql/query/personal-message'\nimport { networkIdentityStatusQuery } from 'gql/query/network-identity-status'\nimport { coverPhotoQuery } from 'gql/query/cover-photo'\nimport { preferencesQuery } from 'gql/query/preference'\nimport { client } from 'utils/client'\nimport { addLoader, removeLoader } from 'utils/loader'\nimport { normalizeImage } from 'utils/image-utils'\n\nclass SettingsState extends Container {\n state = {\n pan: '50',\n isReviewPage: true,\n userHasCoverPhoto: !!_.get(\n clientData,\n 'slugDetails.userPayPalMeDetails.personalizationSettings.coverPhotoUrl',\n '',\n ),\n userHasProfilePicture:\n _.get(clientData, 'slugDetails.userInfo.profilePhotoUrl') !==\n 'https://www.paypalobjects.com/digitalassets/c/consumer/paypalme/networkidentity/profile_man.svg',\n imagePreviewUrl: _.get(\n clientData,\n 'slugDetails.userPayPalMeDetails.personalizationSettings.coverPhotoUrl',\n '',\n ),\n fileName: '',\n shouldLoadPayPalMe: false,\n slugDetails: _.get(clientData, 'slugDetails.userPayPalMeDetails', {}),\n imageRef: {},\n personalMessageValue: _.get(\n clientData,\n 'slugDetails.userPayPalMeDetails.personalizationSettings.welcomeNote',\n '',\n ),\n }\n\n getSlugDetails = slugDetails => {\n this.setState({\n slugDetails,\n })\n }\n\n updateProfile = profile => {\n this.setState({\n slugDetails: profile,\n userHasCoverPhoto: !!profile.personalizationSettings.coverPhotoUrl,\n personalMessageValue: profile.personalizationSettings.welcomeNote,\n imagePreviewUrl: profile.personalizationSettings.coverPhotoUrl,\n })\n }\n\n async accountUpgradeOrSwitchOnOrOff(toggle) {\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n const slugName = {\n slugName: paypalmeSlugName,\n }\n\n addLoader()\n await client.request(toggle, slugName)\n }\n\n async profileToggle(toggle) {\n await this.accountUpgradeOrSwitchOnOrOff(toggle)\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n isProfileStatusActive: !this.state.slugDetails.isProfileStatusActive,\n },\n })\n }\n\n updateProfilePhoto(profilePhotoUrl) {\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n userInfo: {\n ...this.state.slugDetails.userInfo,\n profilePhotoUrl,\n },\n },\n })\n }\n\n async turnOff() {\n await this.profileToggle(deactivateProfile)\n removeLoader()\n }\n\n async turnOn() {\n await this.profileToggle(activateProfile)\n removeLoader()\n }\n\n async upgradeAccount() {\n const enrollUserToNetworkIdentity = [\n {\n op: 'replace',\n path: '/network_identity_status',\n value: 'OPTED_IN',\n },\n ]\n\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n const variables = {\n editUserSettings: enrollUserToNetworkIdentity,\n slugName: paypalmeSlugName,\n }\n\n addLoader()\n\n await client.request(editProfileSettings, variables)\n\n // TODO: should we do this?\n if (!this.state.slugDetails.isProfileStatusActive) {\n await this.profileToggle(activateProfile)\n }\n\n await client.request(networkIdentityStatusQuery)\n removeLoader()\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n isProfileStatusActive: true,\n networkIdentityStatus: 'OPTED_IN',\n },\n })\n }\n\n async editLocationPreference(variables) {\n addLoader()\n await client.request(editProfileSettings, variables)\n\n const {\n userPayPalMeDetails: {\n userInfo: { displayAddress },\n privacySettings: { location = [] } = {},\n } = {},\n } = await client.request(locationQuery)\n removeLoader()\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n userInfo: {\n ...this.state.slugDetails.userInfo,\n displayAddress,\n },\n privacySettings: {\n ...this.state.slugDetails.privacySettings,\n location,\n },\n },\n })\n }\n\n async editUserPreferenceSettings(variables) {\n addLoader()\n await client.request(editProfileSettings, variables)\n\n const {\n userPayPalMeDetails: {\n personalizationSettings: { transactionType = 'PERSONAL' } = {},\n } = {},\n } = await client.request(preferencesQuery)\n removeLoader()\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n personalizationSettings: {\n ...this.state.slugDetails.personalizationSettings,\n transactionType,\n },\n },\n })\n }\n\n async editUserPrivacySettings(variables) {\n addLoader()\n await client.request(editProfileSettings, variables)\n const {\n userPayPalMeDetails: {\n privacySettings: {\n emailSearchEnabled = false,\n phoneSearchEnabled = false,\n } = {},\n } = {},\n } = await client.request(privacyQuery)\n removeLoader()\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n privacySettings: {\n ...this.state.slugDetails.privacySettings,\n emailSearchEnabled,\n phoneSearchEnabled,\n },\n },\n })\n\n return undefined\n }\n\n async updateCoverPhotoStatus() {\n const {\n userPayPalMeDetails: {\n personalizationSettings: {\n coverPhotoUrl = '',\n coverPhotoVerticalPan = '50',\n } = {},\n } = {},\n } = await client.request(coverPhotoQuery)\n\n this.setState({\n userHasCoverPhoto: Boolean(coverPhotoUrl),\n slugDetails: {\n ...this.state.slugDetails,\n userInfo: {\n ...this.state.slugDetails.userInfo,\n },\n personalizationSettings: {\n ...this.state.slugDetails.personalizationSettings,\n coverPhotoUrl,\n coverPhotoVerticalPan,\n },\n },\n })\n }\n\n async uploadCoverPhotoPreference({\n imagePreviewUrl,\n filename,\n pan,\n slugDetails,\n }) {\n const {\n slugDetails: {\n personalizationSettings: {\n coverPhotoUrl = '',\n coverPhotoVerticalPan = '50',\n } = {},\n } = {},\n } = this.state\n\n let editCoverPhoto = []\n\n addLoader()\n\n /**\n * if user hasn't changed either cover photo url or pan then don't call any api\n * and just return back to settings page (this use case will only happen during edit photo)\n * second case is when user has changed or added the photo then update both pan and image\n * third case is when only pan is updated but not photo then just update the pan\n */\n if (coverPhotoUrl === imagePreviewUrl && coverPhotoVerticalPan === pan) {\n removeLoader()\n return undefined\n } else if (coverPhotoUrl !== imagePreviewUrl) {\n const variables = {\n filename,\n file: imagePreviewUrl,\n slug: slugDetails.paypalmeSlugName,\n }\n\n // upload the new photo\n await client.request(uploadCoverPhoto, variables)\n\n editCoverPhoto = [\n {\n op: 'replace',\n path: '/personalization_settings/cover_photo_vertical_pan',\n value: Math.abs(pan).toString(),\n },\n ]\n } else if (\n coverPhotoUrl === imagePreviewUrl &&\n coverPhotoVerticalPan !== pan\n ) {\n editCoverPhoto = [\n {\n op: 'replace',\n path: '/personalization_settings/cover_photo_vertical_pan',\n value: Math.abs(pan).toString(),\n },\n ]\n }\n\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n const coverPhotoEdit = {\n editCoverPhoto,\n slugName: paypalmeSlugName,\n }\n\n await client.request(editCoverPhotoDetails, coverPhotoEdit)\n\n await this.updateCoverPhotoStatus()\n\n removeLoader()\n\n // make flow happy!\n return undefined\n }\n\n pan = relativePan => {\n this.setState({ pan: relativePan })\n }\n\n reviewPage = isReviewPage => {\n this.setState({\n isReviewPage,\n })\n }\n\n userImagePreviewUrl = (imagePreviewUrl, filename) => {\n this.setState({\n imagePreviewUrl,\n filename,\n })\n }\n\n imageReference = imageRef => {\n this.setState({\n imageRef,\n })\n }\n\n personalMessage(personalMessageValue) {\n this.setState({\n personalMessageValue,\n })\n }\n\n async editPersonalMessage() {\n const {\n slugDetails: {\n personalizationSettings: { welcomeNote: currentWelcomeNote = '' } = {},\n } = {},\n } = this.state\n\n if (currentWelcomeNote === this.state.personalMessageValue) {\n return undefined\n }\n\n const editUserSettings = [\n {\n op: 'replace',\n path: '/personalization_settings/welcome_note',\n value: this.state.personalMessageValue || '',\n },\n ]\n\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n const variables = {\n editUserSettings,\n slugName: paypalmeSlugName,\n }\n\n addLoader()\n\n await client.request(editProfileSettings, variables)\n\n const {\n userPayPalMeDetails: {\n personalizationSettings: { welcomeNote = '' } = {},\n } = {},\n } = await client.request(personalMessageQuery)\n removeLoader()\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n userInfo: {\n ...this.state.slugDetails.userInfo,\n },\n personalizationSettings: {\n ...this.state.slugDetails.personalizationSettings,\n welcomeNote,\n },\n },\n })\n\n return undefined\n }\n\n async removeCoverPhoto() {\n addLoader()\n\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n\n await client.request(removeCoverPhoto, { slugName: paypalmeSlugName })\n\n await this.updateCoverPhotoStatus()\n\n removeLoader()\n }\n\n loadImage(fileSelectEvent) {\n addLoader()\n let fileReader = new FileReader()\n let file\n fileReader.onload = onLoadEvent => {\n let url = onLoadEvent.target.result\n let options = { mimeType: file.type }\n\n // options.normalizeImageSize = true\n normalizeImage(url, 1600, 1600, options, normalizedUrl => {\n this.userImagePreviewUrl(normalizedUrl, file && file.name)\n removeLoader()\n })\n }\n\n file = fileSelectEvent.target.files[0]\n\n if (file) {\n fileReader.readAsDataURL(file)\n }\n }\n}\n\nexport default SettingsState\n","export const deactivateProfile = `\n mutation DeactivateProfile ($slugName: String!) {\n deactivateProfile (slug: $slugName) {\n isSuccess\n }\n}`\n","export const networkIdentityStatusQuery = `\n query {\n userPayPalMeDetails {\n isProfileStatusActive\n networkIdentityStatus\n }\n }\n`\n","export const locationQuery = `\n query {\n userPayPalMeDetails {\n userInfo {\n displayAddress\n }\n privacySettings {\n location\n }\n }\n }\n`\n","export const preferencesQuery = `\n query {\n userPayPalMeDetails {\n personalizationSettings {\n transactionType\n }\n }\n }\n`\n","export const privacyQuery = `\n query {\n userPayPalMeDetails {\n privacySettings {\n emailSearchEnabled\n phoneSearchEnabled\n }\n }\n }\n`\n","export const coverPhotoQuery = `\n query {\n userPayPalMeDetails {\n personalizationSettings {\n coverPhotoUrl\n coverPhotoVerticalPan\n }\n }\n }\n`\n","export const uploadCoverPhoto = `\n mutation UploadCoverPhoto ($filename: String!, $file: String!, $slug: String!) {\n uploadCoverPhoto(filename: $filename, file: $file, slug: $slug) {\n uploadedCoverPhotoUrl\n }\n}\n`\n","export const editCoverPhotoDetails = `\n mutation EditProfileSettings ($editCoverPhoto: [PatchOptions]!, $slugName: String!) {\n editProfileSettings (editSlugDetails: $editCoverPhoto, slug: $slugName) {\n isSuccess\n }\n }\n`\n","export const personalMessageQuery = `\n query {\n userPayPalMeDetails {\n personalizationSettings {\n welcomeNote\n }\n }\n }\n`\n","export const removeCoverPhoto = `\n mutation RemoveCoverPhoto($slugName: String!) {\n removeCoverPhoto(slug: $slugName) {\n isSuccess\n }\n}`\n","// @flow\n\nimport EXIF from 'exif-js'\n\ntype EXIFHTMLImageElement = HTMLImageElement & {\n exifdata?: {\n Orientation: number,\n },\n}\n\n//options are:\n//normalizeImageSize - decrease image size to fit in toWidth and toHeight\nexport function normalizeImage(\n dataUrl: string,\n toWidth: number,\n toHeight: number,\n {\n normalizeImageSize = false,\n mimeType = 'image/jpeg',\n }: { normalizeImageSize?: boolean, mimeType?: string } = {},\n callback: string => void,\n) {\n const img: EXIFHTMLImageElement = document.createElement('img')\n img.onload = () => {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n let changed\n let resizeWidth = img.width\n let resizeHeight = img.height\n\n // PNGs weigh too much\n if (mimeType === 'image/png') {\n mimeType = 'image/jpeg'\n }\n\n if (normalizeImageSize) {\n if (resizeWidth > toWidth) {\n resizeHeight *= toWidth / resizeWidth\n resizeWidth = toWidth\n changed = true\n }\n\n if (resizeHeight > toHeight) {\n resizeWidth *= toHeight / resizeHeight\n resizeHeight = toHeight\n changed = true\n }\n\n if (changed) {\n resizeWidth = Math.floor(resizeWidth)\n resizeHeight = Math.floor(resizeHeight)\n canvas.width = resizeWidth\n canvas.height = resizeHeight\n }\n }\n\n EXIF.getData(img, () => {\n if (img.exifdata && img.exifdata.Orientation) {\n if (!changed) {\n canvas.width = resizeWidth = img.width\n canvas.height = resizeHeight = img.height\n }\n\n // in exif orientations 5,6,7,8 the image width and height flips, so we need to flip\n // the canvas dimensions as well\n if (img.exifdata.Orientation >= 5 && img.exifdata.Orientation <= 8) {\n const swapCanvasDimensions = canvas.height\n\n canvas.height = canvas.width\n canvas.width = swapCanvasDimensions\n }\n\n switch (img.exifdata.Orientation) {\n case 2:\n ctx.transform(-1, 0, 0, 1, resizeWidth, 0)\n break\n case 3:\n ctx.transform(-1, 0, 0, -1, resizeWidth, resizeHeight)\n break\n case 4:\n ctx.transform(1, 0, 0, -1, 0, resizeHeight)\n break\n case 5:\n ctx.transform(0, 1, 1, 0, 0, 0)\n break\n case 6:\n ctx.transform(0, 1, -1, 0, resizeHeight, 0)\n break\n case 7:\n ctx.transform(0, -1, -1, 0, resizeHeight, resizeWidth)\n break\n case 8:\n ctx.transform(0, -1, 1, 0, 0, resizeWidth)\n break\n default:\n ctx.transform(1, 0, 0, 1, 0, 0)\n }\n ctx.drawImage(img, 0, 0, resizeWidth, resizeHeight)\n return callback(canvas.toDataURL(mimeType))\n } else if (changed) {\n ctx.drawImage(img, 0, 0, resizeWidth, resizeHeight)\n return callback(canvas.toDataURL(mimeType))\n }\n return callback(dataUrl)\n })\n }\n\n // the animation acts wonky if we don't add the animation here\n // we wait for 800ms once the image is selected, and do the transition as required\n setTimeout(() => {\n img.src = dataUrl\n }, 800)\n}\n","// @flow\n/* eslint consumerweb/require-pagename:0 */\n// This allows us to make styled React components that can\n// either use or based on whether they\n// provide a `to` prop.\nimport PropTypes from 'prop-types'\n\nimport React from 'react'\nimport { Link } from 'react-router-dom'\nimport glamorous from 'glamorous'\n\n// this creates a glamorousComponentFactory\n// for the react-router Link component\n// with all the configuration needed\nfunction ConditionalLink(props) {\n if (props.to) {\n return \n }\n return \n}\nConditionalLink.propTypes = {\n to: PropTypes.string,\n}\n\nconst glamorousLink = glamorous(ConditionalLink, {\n rootEl: 'a',\n displayName: 'glamorous(RouterLink)',\n forwardProps: [\n 'to',\n 'query',\n 'hash',\n 'state',\n 'activeClassName',\n 'activeStyle',\n 'onlyActiveOnIndex',\n ],\n})\n\nexport { glamorousLink }\n","// @flow\n\nimport React, { PureComponent, Component } from 'react'\nimport glamorous from 'glamorous'\n\ntype LazyProps = {\n imageURL: string,\n render: ({ loaded: boolean, imageURL: string }) => React$Element,\n}\n\ntype LazyState = {\n loaded: boolean,\n}\n\nexport class Lazy extends Component {\n state = {\n loaded: false,\n }\n\n componentDidMount() {\n if (!this.state.loaded) {\n if (this.props.imageURL) {\n const cacheImage = new Image()\n cacheImage.onload = () => {\n this.setState({\n loaded: true,\n })\n }\n cacheImage.src = this.props.imageURL\n }\n }\n }\n\n render() {\n const payload = { loaded: this.state.loaded, imageURL: this.props.imageURL }\n return this.props.render(payload)\n }\n}\n\nconst LazyImageTag = glamorous.div(\n {\n opacity: 0,\n transition: 'opacity 0.3s',\n backgroundSize: 'cover',\n },\n ({ loaded, imageURL }) =>\n loaded\n ? {\n width: '100%',\n height: '100%',\n backgroundImage: `url('${imageURL}')`,\n opacity: 1,\n }\n : null,\n)\n\ntype LazyImageProps = {\n imageURL: string,\n loaded: boolean,\n containerStyles?: {},\n}\n\nclass LazyImage extends PureComponent {\n render() {\n return (\n \n )\n }\n}\n\ntype LazyLoaderProps = {\n imageURL: string,\n containerStyles?: {},\n}\n\nconst containerStyles = {\n overflow: 'hidden',\n backgroundColor: 'white',\n width: 100,\n height: 100,\n boxShadow: '8px 14px 38px rgba(39,44,49,.06), 1px 3px 8px rgba(39,44,49,.03)',\n}\n\nexport default class LazyLoader extends Component {\n static defaultProps = {\n containerStyles: {},\n }\n\n render() {\n return (\n {\n if (!imageURL) {\n return null\n }\n return (\n \n \n \n )\n }}\n />\n )\n }\n}\n","// @flow\n\nimport React, { Component, Fragment } from 'react'\nimport glamorous from 'glamorous'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport getContent from 'pp-react-l10n'\nimport PPAmountField from 'pp-amount-field/basic/v3'\nimport clientData from 'utils/client-data'\nimport LazyLoader from 'components/lazy-load-image'\nimport ShareYourLink from 'components/share-with-friends'\nimport { glamorousLink } from 'components/glamorous-link'\nimport * as amountUtils from '../amount-utils'\nimport _ from 'lodash'\nimport _unescape from 'lodash/unescape'\nimport { svgImages } from 'components/index'\nimport SVG from 'components/svg-logo'\n\nconst l10n = getContent('pages/shared')\nconst DURATION = 300\n\nconst ProfileReviewStyling = glamorous.div(props => ({\n backgroundColor: props.backgroundColor ? props.backgroundColor : '#f4f6f9',\n margin: '0 auto',\n textAlign: 'center',\n boxShadow: !props.myProfilePage\n ? '0 2px 2px 0 rgba(139, 139, 139, 0.5)'\n : null,\n padding: props.userHasCoverPhoto ? '0' : '36px 0 31px 0',\n position: 'relative',\n top: props.userHasCoverPhoto ? '-45px' : 'auto',\n}))\n\nconst ProfileReviewInnerChild = glamorous.div(props => ({\n position: 'relative',\n top: props.userHasCoverPhoto ? '-45px' : 'auto',\n display: 'inline',\n}))\n\nconst MoreInfoAboutUserStyling = glamorous.div({\n color: '#6c7378',\n fontSize: '13px',\n lineHeight: '1.38',\n width: '85%',\n display: 'inline-block',\n paddingBottom: '6px',\n textTransform: 'uppercase',\n})\n\nconst WelcomeNoteStyling = glamorous.div(\n {\n fontSize: '15px',\n lineHeight: '1.6',\n color: '#2c2e2f',\n textAlign: 'center',\n width: '95%',\n margin: '0 auto',\n overflowWrap: 'break-word',\n wordWrap: 'break-word',\n position: 'relative',\n },\n ({ isReviewPage, isCoverUploadPage, shouldShowMoreMessage }) =>\n (isReviewPage || isCoverUploadPage) && !shouldShowMoreMessage\n ? {\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n maxHeight: '71px',\n }\n : null,\n)\n\nconst NameAndSlugDetailLocation = glamorous.div({\n marginBottom: '4px',\n paddingTop: 12,\n paddingBottom: 6,\n margin: 0,\n fontSize: 20,\n color: '#2c2e2f',\n})\n\nconst NameAndSlugDetailMessage = glamorous.div(props => ({\n paddingBottom: props.showAmountInput\n ? 0\n : props.personalMessagePaddingBottomStyling,\n fontSize: 15,\n color: '#2c2e2f',\n}))\n\nconst NextButtonStyling = glamorousLink(\n {\n marginBottom: 40,\n width: '70% !important',\n '@media (min-width: 540px) and (max-width: 690px)': {\n width: '50% !important',\n },\n },\n 'vx_btn vx_btn-block',\n)\n\nconst ShowMoreDiv = glamorous.div(props => ({\n color: '#0070ba',\n fontSize: 14,\n fontWeight: 500,\n lineHeight: 1.43,\n cursor: 'pointer',\n padding: '8.5px 0 0 0',\n display: props.shouldShowMoreMessage ? 'none' : 'inline-block',\n}))\n\nconst SVGStyling = glamorous(SVG, {\n forwardProps: ['svgString'],\n rootEl: 'span',\n})({\n padding: '0 5px',\n cursor: 'pointer',\n})\n\ntype AmountFieldProps = {\n onChange: (value: string, currencyCode: string) => void,\n currencyCode: string,\n value: string,\n}\n\nclass AmountField extends React.Component {\n currencySymbolMap: CurrencySymbolMap\n currencyDecimal: CurrencyDecimal\n constructor(...args) {\n super(...args)\n const {\n currencySymbolMap,\n currencyDecimal,\n } = amountUtils.getAmountFieldInfo()\n Object.assign(this, {\n currencySymbolMap,\n currencyDecimal,\n })\n }\n getFormattedValue = amount => {\n return amountUtils.getFormattedValue({\n amount,\n currencyCode: this.props.currencyCode,\n })\n }\n render() {\n const { currencyCode, value } = this.props\n return (\n \n )\n }\n}\n\ntype ProfileViewProps = {\n slugInfo: { slugDetails: SlugDetails },\n initialAmount?: string,\n initialCurrencyCode?: string,\n isReviewPage?: boolean,\n userHasCoverPhoto: boolean,\n backgroundColor?: string,\n showAmountInput?: boolean,\n myProfilePage?: boolean,\n isCoverUploadPage?: boolean,\n isUserLoggedIn?: boolean,\n isUserInGuestTreatment?: boolean,\n isUserInHomepageTreatment?: boolean,\n isCreateFlow?: boolean,\n personalMessagePaddingBottomStyling: number,\n recipientSlugPage?: boolean,\n isDev: boolean,\n isProd: boolean,\n isStage: boolean,\n}\n\ntype ProfileViewState = {\n amountValue: string,\n amountCurrencyCode: string,\n userHasProfilePicture: boolean,\n shouldShowMoreMessage: boolean,\n}\n\nclass ProfileView extends Component {\n static defaultProps = {\n isUserLoggedIn: clientData.isUserLoggedIn,\n isUserInGuestTreatment: clientData.isUserInGuestTreatment,\n isUserInHomepageTreatment: clientData.isUserInHomepageTreatment,\n isStage: clientData.isStage,\n isDev: clientData.isDev,\n isProd: clientData.isProd,\n }\n\n state = {\n amountValue: this.props.initialAmount,\n amountCurrencyCode: this.props.initialCurrencyCode,\n userHasProfilePicture:\n _.get(this, 'props.slugInfo.slugDetails.userInfo.profilePhotoUrl', '') !==\n 'https://www.paypalobjects.com/digitalassets/c/consumer/paypalme/networkidentity/profile_man.svg',\n shouldShowMoreMessage: false,\n isShowMore: true,\n }\n\n handleAmountChange = (amountValue: string, amountCurrencyCode: string) => {\n this.setState({ amountValue, amountCurrencyCode })\n }\n\n showDottedLines = () => {\n return (\n \n {this.props.myProfilePage ? (\n \n ) : null}\n \n )\n }\n\n handleShowMoreClick = () => {\n this.setState({\n shouldShowMoreMessage: true,\n })\n }\n\n moreInfo = () => {\n this.setState(state => ({ isShowMore: !state.isShowMore }))\n }\n\n moreAboutUser = () => {\n let {\n slugInfo: {\n slugDetails: {\n userInfo: { givenName = '', displayAddress = '' } = {},\n personalizationSettings: { welcomeNote = '' } = {},\n } = {},\n },\n isCoverUploadPage = false,\n isReviewPage = false,\n } = this.props\n\n const shouldShowMoreAboutUser =\n Boolean(displayAddress) || Boolean(welcomeNote)\n\n let welcomeNoteLength = welcomeNote && welcomeNote.length\n\n return (\n \n {shouldShowMoreAboutUser ? (\n \n {!isReviewPage && !isCoverUploadPage && (\n \n {l10n('label.moreabout')} {givenName}\n {this.props.recipientSlugPage && (\n \n )}\n \n )}\n {this.state.isShowMore ? (\n \n \n {displayAddress}\n \n \n {welcomeNote}\n \n {(this.props.isReviewPage || this.props.isCoverUploadPage) &&\n welcomeNoteLength > 50 && (\n \n {l10n('label.showmore')}\n \n )}\n \n ) : (\n \n )}\n \n ) : (\n this.showDottedLines()\n )}\n \n )\n }\n\n generateUrlLoggedOutState() {\n const {\n slugInfo: {\n slugDetails: {\n paypalmeSlugName = '',\n userInfo: { displayName = '' } = {},\n personalizationSettings: { transactionType = '' } = {},\n } = {},\n },\n isUserInHomepageTreatment = false,\n } = this.props\n\n const { amountValue = '0', amountCurrencyCode } = this.state\n const flow = transactionType === 'PERSONAL' ? 'send' : 'buy'\n const {\n locality: { locale, country },\n } = clientData\n\n const queryString = queryify({\n profile: paypalmeSlugName,\n currencyCode: amountCurrencyCode,\n amount: String(amountUtils.normalizeNumber(amountValue)),\n 'locale.x': locale,\n 'country.x': country,\n flowType: flow,\n })\n\n // if logged out get onboarding data...\n // ${window.location.origin}\n const formattedAmount = amountUtils.getFormattedAmount({\n amount: this.state.amountValue,\n currencyCode: this.state.amountCurrencyCode,\n })\n\n let host = 'https://www.paypal.com'\n if (this.props.isDev) {\n host = 'https://localhost.paypal.com'\n }\n\n if (this.props.isStage) {\n host = window.location.origin\n }\n\n if (this.props.isProd) {\n host = 'https://www.paypal.com'\n }\n\n const sendRoute = isUserInHomepageTreatment ? 'homepage' : flow\n const onboardDataRegularSignUp = JSON.stringify({\n 'country.x': country,\n 'locale.x': locale,\n intent: 'paypalme',\n redirect_url: `${host}/myaccount/transfer/${sendRoute}/external/ppme?${encodeURIComponent(\n queryString,\n )}`,\n sendMoneyText: encodeURIComponent(\n `${l10n('msg.send')} ${displayName} ${formattedAmount}`,\n ),\n })\n\n const guestQueryString = queryify({\n env: 'ppme',\n recipientIdType: 'ppme',\n recipientId: paypalmeSlugName,\n currencyCode: amountCurrencyCode,\n amount: String(amountUtils.normalizeNumber(amountValue)),\n 'locale.x': locale,\n 'country.x': country,\n flowType: flow,\n })\n\n const onboardDataGuest = JSON.stringify({\n signUpRequest: {\n method: 'get',\n url: `${encodeURIComponent(\n `${host}/myaccount/transfer/guestLogin/paypalme?${guestQueryString}`,\n )}`,\n },\n })\n\n const onboardData = this.props.isUserInGuestTreatment\n ? `expId=ppme&onboardData=${encodeURIComponent(onboardDataGuest)}`\n : `onboardData=${encodeURIComponent(onboardDataRegularSignUp)}`\n\n return `${host}/signin?returnUri=${host}/myaccount/transfer/${sendRoute}/external/ppme?${encodeURIComponent(\n queryString,\n )}&${onboardData}`\n }\n\n generateUrlLoggedInState() {\n const {\n slugInfo: {\n slugDetails: {\n paypalmeSlugName = '',\n personalizationSettings: { transactionType = '' } = {},\n } = {},\n },\n isUserInHomepageTreatment = false,\n } = this.props\n const flow = transactionType === 'PERSONAL' ? 'send' : 'buy'\n const { amountValue, amountCurrencyCode } = this.state\n const {\n locality: { locale, country },\n } = clientData\n\n const queryString = queryify({\n profile: paypalmeSlugName,\n currencyCode: amountCurrencyCode,\n amount: String(amountUtils.normalizeNumber(amountValue)),\n 'locale.x': locale,\n 'country.x': country,\n flowType: flow,\n })\n\n let host = 'https://www.paypal.com'\n if (this.props.isDev) {\n host = 'https://localhost.paypal.com'\n }\n\n if (this.props.isStage) {\n host = window.location.origin\n }\n\n if (this.props.isProd) {\n host = 'https://www.paypal.com'\n }\n\n const sendRoute = isUserInHomepageTreatment ? 'homepage' : flow\n return `${host}/myaccount/transfer/${sendRoute}/external/ppme?${queryString}`\n }\n\n generateSendMoneyUrl = () => {\n return this.props.isUserLoggedIn\n ? this.generateUrlLoggedInState()\n : this.generateUrlLoggedOutState()\n }\n\n render() {\n const {\n slugInfo: {\n slugDetails: {\n paypalmeSlugName = '',\n userInfo: {\n displayName = '',\n profilePhotoUrl = '',\n displayAddress = '',\n } = {},\n personalizationSettings: { welcomeNote = '' } = {},\n } = {},\n },\n showAmountInput = false,\n } = this.props\n const { amountValue, amountCurrencyCode } = this.state\n const { locality: { locale, country = 'US' } = {} } = clientData\n const shouldShowMoreAboutUser =\n Boolean(displayAddress) || Boolean(welcomeNote)\n\n const personalMessagePaddingBottomStyling =\n this.props.isCreateFlow ||\n (!shouldShowMoreAboutUser && !this.props.myProfilePage)\n ? 0\n : 24\n\n return (\n \n \n \n \n \n \n \n {_unescape(displayName)}\n \n \n {l10n('ppmeUrl', { slug: paypalmeSlugName })}\n \n {showAmountInput && (\n \n \n \n \n \n {l10n('button.next')}\n \n \n )}\n\n {!this.props.isCreateFlow && this.moreAboutUser()}\n\n {this.props.myProfilePage && (\n \n )}\n \n \n {this.props.recipientSlugPage && (\n \n {l10n('button.report')}\n \n )}\n \n )\n }\n}\n\nfunction queryify(obj: { [key: string]: string }) {\n return Object.keys(obj)\n .reduce((qs, key) => {\n qs.push(`${key}=${encodeURIComponent(obj[key])}`)\n return qs\n }, [])\n .join('&')\n}\n\nexport default ProfileView\n","// @flow\n\nimport React, { Fragment } from 'react'\nimport glamorous from 'glamorous'\nimport { css } from 'glamor'\nimport getContent from 'pp-react-l10n'\nimport { svgImages } from 'components/index'\nimport sharing from 'consumerweb-sharing'\nimport CopyToClipboard from 'react-copy-to-clipboard'\nimport { CSSTransitionGroup } from 'react-transition-group'\nimport SVG from 'components/svg-logo'\nimport { trackLink } from 'lib/analytics'\n\nconst l10n = getContent('pages/shared')\nconst l10nSettings = getContent('pages/settings')\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent,\n)\n\ntype Props = {\n slugInfo: { slugDetails: SlugDetails },\n showCopyText?: boolean,\n isMarketkingFlow?: boolean,\n locale?: string,\n}\n\nconst ShareYourLinkStyling = glamorous.div({\n color: '#6c7378',\n fontSize: '13px',\n lineHeight: '1.38',\n width: '80%',\n display: 'inline-block',\n textTransform: 'uppercase',\n marginTop: 22,\n padding: 0,\n})\n\nconst SVGParent = glamorous.span({\n display: 'inline-block',\n width: '60px',\n marginRight: '20px',\n cursor: 'pointer',\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 '@media (max-width: 320px)': {\n transform: 'scale(0.9)',\n marginRight: 0,\n },\n})\n\nconst SVGStyling = glamorous(SVG, {\n forwardProps: ['svgString'],\n rootEl: 'span',\n})({\n padding: '0 20px',\n '@media (max-width: 320px)': {\n padding: 0,\n },\n})\n\nconst SpanText = glamorous.span({\n display: 'inline-table',\n fontSize: '13px',\n color: '#ababab',\n position: 'relative',\n left: '10px',\n '@media (max-width: 320px)': {\n left: 0,\n },\n})\n\nconst TooltipCopied = glamorous.span({\n padding: '4px',\n bottom: '0',\n right: '75px',\n backgroundColor: '#e1e7eb',\n color: 'black',\n width: '66px',\n position: 'absolute',\n borderRadius: '2px',\n top: '10px',\n height: '30px',\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\nconst trackShareLinks = linkName =>\n trackLink(linkName, 'main:ppme:profile', 'main:ppme:profile:::', 'link')\n\ntype State = {\n isCopied: boolean,\n}\n\nclass ShareYourLink extends React.Component {\n _ref: ?HTMLElement = null\n\n state = {\n isCopied: false,\n }\n handleFBClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n trackShareLinks('facebook')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n sharing.shareURLByFacebook(\n `https://paypal.me/${paypalmeSlugName}?locale.x=${this.props.locale}`,\n 575,\n 400,\n )\n }\n\n handleTwitterClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n trackShareLinks('twitter')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n const twitterShareLink = `${l10n(\n 'share.twitter',\n )} https://paypal.me/${encodeURIComponent(paypalmeSlugName)}?locale.x=${\n this.props.locale\n }`\n sharing.shareByTwitter(twitterShareLink, 575, 400)\n }\n\n handleWhatsappClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n trackShareLinks('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 trackShareLinks('messenger')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n sharing.shareURLByMessenger(\n `https://paypal.me/${encodeURIComponent(paypalmeSlugName)}?locale.x=${\n this.props.locale\n }`,\n '1624118454533304',\n window.location.href,\n )\n }\n\n copyToClipboard() {\n trackShareLinks('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 {!this.props.showCopyText && (\n \n {l10n('header.shareyourlink')}\n \n )}\n\n {this.props.showCopyText && (\n \n {\n this.copyToClipboard()\n }}\n >\n \n (this._ref = input)}\n value={`paypal.me/${paypalmeSlugName}`}\n readOnly={true}\n />\n \n {l10n('button.copy')}\n \n \n {this.state.isCopied && (\n \n {l10n('msg.copied')}\n \n )}\n \n \n \n \n )}\n\n \n {!this.props.showCopyText && (\n {\n this.copyToClipboard()\n }}\n tabIndex=\"0\"\n role=\"button\"\n >\n \n e.key === 'Enter' && this._ref && this._ref.click()\n }\n ref={input => (this._ref = input)}\n >\n \n \n {l10nSettings('share.copy')}\n \n \n \n )}\n \n \n \n {l10nSettings('share.facebook')}\n \n \n \n \n \n {l10nSettings('share.messenger')}\n \n \n \n \n \n {l10nSettings('share.twitter')}\n \n \n {this.props.isMarketkingFlow && isMobile && (\n \n \n \n {l10nSettings('share.whatsapp')}\n \n \n )}\n \n \n {this.state.isCopied && !this.props.showCopyText && (\n \n {l10n('msg.copied')}\n \n )}\n \n \n )\n }\n}\n\nexport default ShareYourLink\n","// @flow\n\nimport React from 'react'\n\ntype Props = {\n svgString: string,\n props: {},\n}\n\n/**\n * SRE bot's throws an error for dangerouslySetInnerHTML. This is a workaround for\n * legitimate use cases\n */\nconst workaroundScoreBot = ['dangerously', 'Set', 'Inner', 'HTML'].join('')\nexport default function SVG({ svgString, ...props }: Props) {\n const dangerProps = { [workaroundScoreBot]: { __html: svgString } }\n return \n}\n","// @flow\n\nimport { GraphQLClient } from 'graphql-request'\nimport clientData from './client-data'\n\ntype Client = {|\n request: (query: string, variables?: {}) => Promise<*>,\n|}\n\nconst client: Client = new GraphQLClient(\n `${window.location.origin}${clientData.requestURI}/v1/graphql`,\n {\n credentials: 'include',\n mode: 'cors',\n headers: {\n 'x-csrf-token': clientData.csrf,\n },\n },\n)\n\nexport { client }\n\nexport type { Client }\n","// @flow\n\nexport const addLoader = function(\n elementID?: string = 'core-white-overpanel-navigation',\n maximumDuration?: number = 15000,\n) {\n if (typeof elementID !== 'string' || typeof maximumDuration !== 'number') {\n elementID = 'core-white-overpanel-navigation'\n }\n\n const overlayedElement = document.getElementById(elementID)\n\n if (overlayedElement) {\n overlayedElement.classList.add('vx_has-spinner-large')\n }\n}\n\nexport const removeLoader = function() {\n const elementWithSpinner = document.getElementsByClassName(\n 'vx_has-spinner-large',\n )\n\n if (elementWithSpinner && elementWithSpinner[0]) {\n elementWithSpinner[0].classList.remove('vx_has-spinner-large')\n }\n}\n"],"sourceRoot":""}