{"version":3,"sources":["webpack:///./src/pages/integration-builder/sections/HelpModal.tsx","webpack:///./src/pages/integration-builder/sections/Configure.tsx","webpack:///./src/pages/integration-builder/sections/Preview.tsx","webpack:///./src/pages/integration-builder/sections/TakeLive.tsx","webpack:///./src/pages/integration-builder/sections/CardGenerator.tsx","webpack:///./src/components/integration-builder/info-card/index.tsx","webpack:///./src/components/integration-builder/code-selector/assets/codeSelectorDefaultOptions.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/frontend/html/app.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/preview/standard-checkout.ts","webpack:///./src/components/integration-builder/codeblock-highlight/code-snippets/resolveFullSnipperPath.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/frontend/html/checkout.html.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/frontend/react/app.jsx.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/frontend/angular/app.component.ts.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/backend/nodejs/server.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/backend/python/server.py.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/backend/php/server.php.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/angular/main.ts.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/preview/advanced-checkout.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/angular/index.html.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/angular/app.component.html.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/angular/app.component.ts.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/angular/app.module.ts.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/html/checkout_ejs.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/html/app.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/html/acdc_app.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/html/3ds/checkout_ejs.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/html/3ds/app.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/react/index.html.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/react/app.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/react/main.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/react/paymentForm.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/react/paymentForm.module.css.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/backend/nodejs/server.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/backend/nodejs/server_react.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/backend/nodejs/3ds/server.js.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/backend/python/index.py.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/backend/python/server.py.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/backend/php/index.php.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/frontend/html/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/frontend/react/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/frontend/angular/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/backend/nodejs/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/backend/python/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/standard/backend/php/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/html/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/react/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/frontend/angular/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/backend/nodejs/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/backend/python/index.ts","webpack:///./src/components/integration-builder/code-selector/code-snippets/checkout/advanced/backend/php/index.ts","webpack:///./src/components/integration-builder/context/checkoutSimulatorReducer.ts","webpack:///./src/components/integration-builder/context/CheckoutSimulatorProvider.tsx","webpack:///./src/components/article-feedback/index.tsx","webpack:///./src/pages/integration-builder/index.tsx","webpack:///./src/pages/integration-builder/sections/KnowBeforeYouCode.tsx","webpack:///./src/pages/integration-builder/sections/Demo.tsx","webpack:///./src/components/integration-builder/code-selector/CodeSelectorButtons.tsx","webpack:///./src/components/integration-builder/code-selector/CodeSelector.tsx","webpack:///./src/components/integration-builder/content-card/index.tsx","webpack:///./src/components/icons/PayComplete/PayComplete.tsx"],"names":["withAnalytics","HelpModal","isOpen","setIsOpen","useState","fptiData","window","fpti","React","createElement","Fragment","Button","secondary","onClick","recordAnalytics","_window$PAYPAL","_window$PAYPAL$analyt","PAYPAL","analytics","instance","record","data","_objectSpread","component","page","pgrp","e","link","event_action","Dialog","title","id","closeOnBackgroundClick","skipFormFocus","onClose","Col","Row","href","target","rel","Configure","_parameters$buttons","_parameters$buttons2","_parameters$buttons3","show3ds","setShow3ds","checked3ds","setChecked3ds","integrationType","setParameter","parameters","options","updateSnippets","useContext","CheckoutSimulatorContext","buttonsError","setButtonsError","useEffect","_options$find","_options$find2","find","option","name","value","optionName","category","event","buttonStyle","buttonLayout","className","styles","checkout_simulator__accordion_container","Accordion","number","color","heading","content","checkout_simulator__subtitle_wrapper","checkout_simulator__fragment_subtitle","Tooltip","description","windowId","imagePosition","paypal_payment","CheckboxGroup","onChange","buttons","filter","button","length","checked","push","selectedButtons","map","replace","toString","ContextualAlert","type","Checkbox","label","defaultChecked","paymentModel","includes","helperText","InfoCard","Link","integration_builder__external_link","ExternalLink","RadioButton","checkout_simulator__radio_button","Preview","iframeRef","useRef","transactionDialog","setTransactionDialog","subtitle","step","snippets","clientId","setClientId","appSecret","setAppSecret","baseURL","async","generateClientToken","accessToken","auth","Buffer","from","response","fetch","method","body","headers","Authorization","json","access_token","generateAccessToken","client_token","frontendFiles","setFrontendFiles","standardSuccess","frontend","addEventListener","ev","action","tds","previewTitle","substring","toUpperCase","slice","handleTransactionOkay","checkout_simulator__preview","hideTitle","center","style","display","width","height","justifyContent","flexDirection","alignItems","marginTop","marginBottom","PayComplete","fontFamily","fontStyle","fontWeight","fontSize","lineHeight","checkout_simulator__preview_title","cls","integration_builder__horizontal_btns_wrapper","snippet","injectionCode","ref","key","integration_builder__iframe_vertical","srcDoc","TakeLive","defaultCollapsed","_ref","testid","copied","setCopied","copyToClipboard","fieldName","navigator","clipboard","writeText","then","event_category","data-testid","checkout_simulator__card_generator","_ref2","checkout_simulator__card_generator_text_wrapper","TextInput","disabled","checkout_simulator__card_generator_background_circle","Icon","integration_builder__copyIconSuccess","integration_builder__copyIcon","InformationIcon","path","fullPath","props","nonce","useApplicationContext","fundingSourceCodeMap","PAYLATER","CARD","selectedSources","split","source","Boolean","snippetPath","relativePath","location","host","getSelectedSources","parseSelectedSources","unselectedButtons","parseUnselectedSources","getUnselectedSources","scriptString","join","conditions","parameter","checkoutSimulatorSnippets","environments","samples","language","files","app_js","checkout_html","app_jsx","app_component_ts","server_js","server_py","server_php","checkout_ejs","acdc_app_js","ds_checkout_js","ds_app_js","index_html","main_js","paymentForm_js","paymentForm_module_css","main_ts","app_component_html","app_module_ts","server_react_js","ds_server_js","index_py","index_php","environment","sample","file","integration","checkoutSimulatorReducer","state","_toConsumableArray","payload","initialState","snippetSchema","CheckoutSimulatorProvider","children","dispatch","useReducer","Provider","setOptions","setOptionValue","setIntegrationType","setParameters","_state$options$find","schema","environmentLanguages","_state$options$find2","environmentLanguageFiles","environmentLanguage","_schema$environments$","_schema$environments$2","condition","conditionOption","conditionParameter","Array","isArray","reduce","environmentFile","isFbCaptured","setIsFbCaptured","isFbRating","setIsFbRating","isFbReason","setIsFbReason","selectedReason","setSelectedReason","selectedRating","setSelectedRating","reasonDescription","setReasonDescription","FeedbackAnswers","reasonMap","toomuchinfo","notenoughinfo","lookingfor","incorrect","dontlike","other","reasons","Object","keys","HCAR_MAPPINGS","answer","hcar","YES","hcaf","maskRegEx","dataMasking","fbAnswerHandler","fbRatingHandler","rating","renderFbReason","Card","BodyText","strong","reason","fbReasonHandler","TextArea","maxCharacters","inputClassName","showCharacterCounter","placeholder","fullWidthOnMobile","size","NO","HeadingText","Alert","primary","user","userLoggedOut","loggedIn","lastUpdated","document","Intl","DateTimeFormat","year","month","day","hour","minute","second","hour12","format","Date","lastModified","Layout","inverseHeaderScheme","keywords","Banner","checkout_simulator__banner","checkout_simulator__header","checkout_simulator__header_loggedOut","checkout_simulator__header_loggedIn","checkout_simulator__go_back_wrapper","aria-label","checkout_simulator__go_back","handleGoBack","history","navigate","ArrowLeftIcon","checkout_simulator__go_back_title","checkout_simulator__header_title","checkout_simulator__header_badge_wrapper","Badge","checkout_simulator__update_date","KnowBeforeYouCode","CodeSelector","checkout_simulator__container_content","checkout_simulator__left_section","Build","Demo","checkout_simulator__right_section","Code","ArticleFeedback","TITLES","testA","standardName","standardAllows","advanceName","advanceAllows","testB","StandardTooltip","AdvanceTooltip","KBYC","_experiments$integrat","experiments","treatment","integrationBuilderKBYC","startsWith","cardStandardName","cardStandardAllows","cardAdvanceName","cardAdvanceAllows","checkout_simulator__card_wrapper","checkout_simulator__head_title","checkout_simulator__cards_wrapper","sm","md","ContentCard","icon","AcceptPayments","badgeType","badgeText","checkout_simulator__card_title","integration_builder__tooltip","checkout_simulator__card_content","AcceptCards","CardGeneratorLayout","cardDetails","positiveTestCard","negativeTestCard","CodeSelectorButtons","SingleSelectionGroup","responsive","buttonSelected","viewBox","fill","xmlns","d","fillRule","clipRule","defaultProps"],"mappings":"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","file":"component---src-pages-integration-builder-index-tsx-db7877335685518cc970.js","sourcesContent":["import React, { FunctionComponent, useState } from 'react'\nimport { Button, Col, Row, Dialog } from '@paypalcorp/pp-react'\nimport withAnalytics from '../../../utils/withAnalytics'\n\nimport styles from '../integration-builder.module.css'\n\nconst HelpModal: FunctionComponent = () => {\n const [isOpen, setIsOpen] = useState(false)\n const fptiData = typeof window !== `undefined` && window.fpti\n\n const recordAnalytics = () => {\n if (fptiData && window.PAYPAL?.analytics?.instance) {\n window.PAYPAL.analytics.instance.record({\n data: {\n component: 'devdiscoverynodeweb',\n page: 'main:developer:integration-builder',\n pgrp: 'main:developer:integration-builder',\n e: 'cl',\n link: 'help',\n event_action: 'help',\n ...fptiData,\n },\n })\n }\n }\n\n return (\n <>\n {\n setIsOpen(true)\n recordAnalytics()\n }}\n >\n Help/FAQs\n \n {\n setIsOpen(false)\n }}\n >\n \n \n

\n What is Integration Builder?\n

\n

\n Integration Builder is a tool that allows you to choose the\n payment options you want, customize your button layout, and\n preview your checkout experience. Once you've configured your\n experience, you can use the provided front-end and back-end code\n files to add the PayPal checkout experience to your website.\n

\n
\n \n

\n \n How does Integration Builder help me with checkout payment\n solutions?\n \n

\n

\n With the Integration Builder, you can choose your payment options,\n adjust the layout, and see a preview of the checkout experience.\n Instead of coding the integration, you can download the provided\n code files and add them to your website's code.\n

\n
\n \n

\n Is the Integration Builder a no-code tool?\n

\n

\n The Integration Builder is a low-code tool. You can configure the\n PayPal checkout experience from the Integration Builder, but you\n will need to incorporate the provided code files into your website\n code.\n

\n

\n For a solution that doesn't require coding or a website, check out{' '}\n \n build a pay link and button\n \n .\n

\n
\n \n

\n \n Can I configure or customize the checkout layout for standard\n checkout?\n \n

\n

\n Yes. You can choose from either a horizontal or vertical button\n layout.\n

\n
\n \n

\n \n What is the difference between Standard vs Advanced Checkout?\n \n

\n

\n Standard Checkout is a branded PayPal checkout experience that\n allows you to offer payment via PayPal, Pay Later, and Venmo.\n Users can also checkout using a debit or credit card through a\n PayPal-hosted guest checkout.\n

\n

\n Advanced Checkout is an unbranded checkout experience that allows\n you to offer payment via PayPal, Pay Later, Venmo, and Alternative\n Payment Methods. Advanced Checkout also offers customizable credit\n and debit form fields. You'll need to use PayPal's Orders API to\n process debit and credit payments directly through your website.\n Advanced Checkout also supports 3D Secure transactions and offers\n fraud protection.\n

\n
\n \n

\n \n What are the different types of accounts required for the\n integration and where do I sign up for them?\n \n

\n

\n PayPal Developer Account – Use this account to access the Sandbox\n and Live environments on the Developer Dashboard -\n \n https://www.paypal.com/signin\n \n
\n Sandbox Accounts – Create dummy accounts in the sandbox\n environment to test transactions –\n \n https://developer.paypal.com/dashboard/accounts\n \n
\n PayPal Business Account – A verified business account is required\n to process transactions -\n \n https://www.paypal.com/us/business/open-business-account\n \n

\n
\n \n

\n Which account approval is required to go live?\n

\n

\n Your app must be registered, and your business account must be\n verified before going live. See the Go Live checklist for more\n information:{' '}\n \n https://developer.paypal.com/api/rest/production/\n \n

\n
\n \n

\n \n Is business account approval mandatory for both Standard and\n Advanced Checkout?\n \n

\n

\n Yes. You will need a verified business account to process\n transactions through both a Standard or Advanced Checkout\n integration.\n

\n
\n \n

\n \n What is the difference between the demo using sample credentials\n and sandbox testing and go-live?\n \n

\n

\n The demo using sample credentials uses the default client ID and\n secret to simulate a credit transaction using test card numbers.\n You can see what the transaction flow looks like from the buyer\n and seller perspectives.\n

\n

\n Sandbox testing allows you to test your checkout integration on\n your website by making transactions using sandbox accounts and\n credentials. You can ensure your checkout integration works as\n intended before using your live credentials.\n

\n
\n \n \n \n )\n}\n\nexport default withAnalytics(HelpModal)\n","import {\n Checkbox,\n CheckboxGroup,\n RadioButton,\n Tooltip,\n Link,\n ContextualAlert,\n} from '@paypalcorp/pp-react'\nimport React, {\n ChangeEvent,\n FormEvent,\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport { Accordion } from '../../../components/integration-builder/accordion'\nimport { CheckoutSimulatorContext } from '../../../components/integration-builder/context/CheckoutSimulatorContext'\nimport { InfoCard } from '../../../components/integration-builder/info-card'\nimport withAnalytics from '../../../utils/withAnalytics'\nimport styles from '../integration-builder.module.css'\nimport { ExternalLink } from '../../../components/icons'\n\nconst Configure: FunctionComponent = () => {\n const fptiData = typeof window !== `undefined` && window.fpti\n const [show3ds, setShow3ds] = useState(false)\n const [checked3ds, setChecked3ds] = useState(true)\n const { integrationType, setParameter, parameters, options, updateSnippets } =\n useContext(CheckoutSimulatorContext)\n\n const [buttonsError, setButtonsError] = useState('')\n\n useEffect(() => {\n setShow3ds(\n options.find((option) => option.name === 'frontend')?.value === 'html' &&\n options.find((option) => option.name === 'backend')?.value === 'nodejs',\n )\n }, [options])\n\n useEffect(() => {\n updateSnippets()\n }, [parameters])\n\n const recordAnalytics = (optionName: string, category: string) => {\n if (fptiData && window.PAYPAL?.analytics?.instance) {\n let event = ''\n switch (category) {\n case 'payment-button':\n event = `${category}:${optionName}:${integrationType}`\n break\n case 'payment-freq':\n event = `${category}:${optionName}:${integrationType}`\n break\n case 'btn-layout-shape':\n event = `${category}:${optionName}_${parameters.buttonStyle}:${integrationType}`\n break\n case 'btn-style':\n event = `${category}:${parameters.buttonLayout}_${optionName}:${integrationType}`\n break\n default:\n break\n }\n window.PAYPAL.analytics.instance.record({\n data: {\n component: 'devdiscoverynodeweb',\n page: 'main:developer:integration-builder',\n pgrp: 'main:developer:integration-builder',\n e: 'cl',\n link: event,\n event_action: event,\n ...fptiData,\n },\n })\n }\n }\n\n const handleButtonsCheckboxChange = (\n event: FormEvent,\n ) => {\n const target = event.target as HTMLInputElement\n let buttons = parameters.buttons || []\n if (\n target.name === 'payment-buttons_card' &&\n parameters.buttonLayout === 'horizontal'\n ) {\n setButtonsError(\n 'Debit or credit card button can only be selected if layout is vertical',\n )\n return\n }\n\n if (integrationType !== 'advanced')\n buttons = buttons.filter(\n (button: string) => button !== 'payment-buttons_3ds',\n )\n\n if (integrationType !== 'standard')\n buttons = buttons.filter(\n (button: string) => button !== 'payment-buttons_card',\n )\n\n buttons = buttons.filter((button: string) => button !== target.name)\n\n if (\n parameters.buttonLayout === 'horizontal' &&\n buttons.filter((button: string) => button !== 'payment-buttons_3ds')\n .length >= 2\n ) {\n setButtonsError(\n 'Only one additional button is allowed in horizontal layout',\n )\n target.checked = false\n } else {\n setButtonsError('')\n }\n\n if (target.checked) {\n buttons.push(target.name)\n }\n\n setParameter('buttons', buttons)\n\n if (target.name === 'payment-buttons_3ds') {\n setChecked3ds(target.checked)\n }\n const selectedButtons = buttons.map((button: string) => {\n return button.replace('payment-buttons_', '')\n })\n recordAnalytics(selectedButtons.toString(), 'payment-button')\n }\n\n const handlePaymentModelChange = (event: ChangeEvent) => {\n setParameter('paymentModel', event.target.value)\n\n if (event.target.value === 'subscription') {\n setParameter(\n 'buttons',\n parameters.buttons.filter(\n (button: string) => button !== 'payment-buttons_venmo',\n ),\n )\n }\n\n recordAnalytics(event.target.value, 'payment-freq')\n }\n const handleButtonLayoutChange = (event: ChangeEvent) => {\n setParameter('buttonLayout', event.target.value)\n if (event.target.value === 'horizontal') {\n setParameter('buttons', [\n 'payment-buttons_paypal',\n 'payment-buttons_venmo',\n ])\n } else {\n setButtonsError('')\n setParameter('buttons', [\n 'payment-buttons_paypal',\n 'payment-buttons_paylater',\n 'payment-buttons_venmo',\n 'payment-buttons_card',\n ])\n }\n recordAnalytics(event.target.value, 'btn-layout-shape')\n }\n const handleButtonStyleChange = (event: ChangeEvent) => {\n setParameter('buttonStyle', event.target.value)\n recordAnalytics(event.target.value, 'btn-style')\n }\n\n return (\n
\n \n
\n

\n Select the payment methods\n

\n \n
\n

\n These relevant payment methods will show up next to your PayPal\n button.\n

\n
\n PayPal\n Payment using a PayPal account.\n
\n \n {buttonsError ? (\n {buttonsError}\n ) : (\n <>\n )}\n \n \n {integrationType === 'advanced' && show3ds ? (\n \n ) : (\n <>\n )}\n\n {integrationType === 'advanced' && !show3ds ? (\n \n At this time, 3DS can only be configured for select\n languages.{' '}\n \n See our 3DS documentation\n \n \n for help adding 3DS to your integration.\n

\n }\n />\n ) : (\n <>\n )}\n\n {integrationType !== 'advanced' ? (\n \n ) : (\n <>\n )}\n
\n {integrationType === 'advanced' ? (\n <>\n \n A{' '}\n \n client token\n \n \n is required to uniquely identify your buyer. This is\n required to use card fields. You can find a complete\n example in the{' '}\n \n client token\n \n .\n

\n }\n />\n

\n Button and field customization options\n

\n

\n You can modify the checkout user interface to match your style\n needs. See the{' '}\n \n Card Fields Style Guide\n \n for a full list of attributes.\n

\n \n ) : null}\n {integrationType === 'standard' ? (\n <>\n
\n

\n Choose a payment model\n

\n \n
\n

\n Process one-time payments using the JavaScript SDK or payments\n for fixed amounts at regular intervals using the Catalog\n Product API, Subscriptions API, and the{' '}\n \n JavaScript SDK\n \n \n

\n \n

\n Choose your button layout\n

\n

Choose between vertical or horizontal button layouts

\n \n \n ) : (\n <>\n )}\n

\n Choose your button style\n

\n

Choose between rectangular or pill-shaped buttons

\n \n \n }\n />\n
\n )\n}\n\nexport default withAnalytics(Configure)\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport styles from '../integration-builder.module.css'\nimport { Accordion } from '../../../components/integration-builder/accordion'\nimport cls from 'classnames'\nimport { CheckoutSimulatorContext } from '../../../components/integration-builder/context/CheckoutSimulatorContext'\nimport { SnippetSchemaEnvironmentSampleFile } from '../../../components/integration-builder/code-selector/code-snippets/interfaces'\nimport { Button, Dialog, Tooltip } from '@paypalcorp/pp-react'\nimport { PayComplete } from '../../../components/icons/PayComplete/PayComplete'\n\nconst Preview: FunctionComponent = () => {\n const iframeRef = useRef(null)\n const isForcedHorizontal = false\n const expandPreview = true\n const [transactionDialog, setTransactionDialog] = useState({\n isOpen: false,\n title: '',\n subtitle: '',\n step: 0,\n })\n\n const {\n snippets = {},\n parameters,\n integrationType,\n options,\n setParameter,\n } = useContext(CheckoutSimulatorContext)\n\n const [clientId, setClientId] = useState(\n 'ARo8VkLiF5aVnlHgZ1SwTPt7Pq218nO7pjJ68qLZ6jcl5JLQEenqJ8nAixxfh6btGoC8v8zASZ2awDwb',\n )\n const [appSecret, setAppSecret] = useState(\n 'EHVT_O8TIvB1SM0iY0acwtHuYIz2AtDxkD8-ATnfH4F-jsHOwsb3c7_EvDWh7tjhtYxGZce4TUNMwBIw',\n )\n\n const baseURL = 'https://api-m.sandbox.paypal.com'\n\n async function generateClientToken() {\n const accessToken = await generateAccessToken()\n const response = await fetch(`${baseURL}/v1/identity/generate-token`, {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n 'Accept-Language': 'en_US',\n 'Content-Type': 'application/json',\n },\n })\n const data = await response.json()\n setParameter('client_token', data.client_token)\n }\n\n // access token is used to authenticate all REST API requests\n async function generateAccessToken() {\n const auth = Buffer.from(clientId + ':' + appSecret).toString('base64')\n const response = await fetch(`${baseURL}/v1/oauth2/token`, {\n method: 'POST',\n body: 'grant_type=client_credentials',\n headers: {\n Authorization: `Basic ${auth}`,\n },\n })\n const data = await response.json()\n return data.access_token\n }\n\n useEffect(() => {\n generateClientToken()\n }, [])\n\n const [frontendFiles, setFrontendFiles] =\n useState()\n\n const standardSuccess = () => {\n setTransactionDialog({\n isOpen: true,\n title: 'Transaction completed',\n subtitle: 'Transaction ID - 25A49506MV7427301',\n step: 0,\n })\n }\n\n const standardError = () => {\n setTransactionDialog({\n isOpen: true,\n title: 'Payment could not be captured',\n subtitle: 'Error - invalid card number Debug ID - 9b2f285198d36',\n step: 0,\n })\n }\n\n const tdsSuccess = () => {\n setTransactionDialog({\n isOpen: true,\n title: 'Additional verification',\n subtitle: 'Your bank has requested additional verification',\n step: 1,\n })\n }\n\n useEffect(() => {\n setFrontendFiles(snippets.frontend)\n }, [snippets])\n useEffect(() => {\n if (transactionDialog.isOpen === false && transactionDialog.step > 0) {\n setTransactionDialog({\n isOpen: true,\n title: 'Transaction completed',\n subtitle: 'Transaction ID - ABCDEFG123456',\n step: 0,\n })\n }\n }, [transactionDialog])\n\n useEffect(() => {\n window.addEventListener(\n 'message',\n (\n ev: MessageEvent<{\n action: string\n integrationType: string\n tds: string\n }>,\n ) => {\n if (typeof ev.data !== 'object') return\n if (!ev.data.action) return\n\n if (ev.data.action === 'done') {\n if (ev.data.integrationType === 'standard') standardSuccess()\n else if (ev.data.tds === 'true') tdsSuccess()\n else standardSuccess()\n }\n },\n )\n }, [])\n\n const previewTitle = integrationType\n ? integrationType.substring(0, 1).toUpperCase() + integrationType.slice(1)\n : ''\n\n const handleTransactionOkay = () => {\n if (transactionDialog.step > 0) {\n standardSuccess()\n } else {\n setTransactionDialog({ ...transactionDialog, isOpen: false })\n }\n }\n\n return (\n
\n handleTransactionOkay()}\n center\n >\n \n \n \n \n {transactionDialog.title}\n \n \n {transactionDialog.subtitle}\n \n \n Okay\n \n
\n \n \n \n \n {`${previewTitle} Checkout Preview`}\n \n }\n content={\n <>\n {expandPreview && !isForcedHorizontal && (\n <>\n \n {frontendFiles &&\n frontendFiles.length > 0 &&\n frontendFiles\n .filter((snippet) => snippet.injectionCode)\n .map((snippet) => {\n return (\n \n )\n })}\n \n \n )}\n \n }\n />\n \n )\n}\n\nexport default Preview\n","import React, { FunctionComponent, useContext } from 'react'\nimport { Accordion } from '../../../components/integration-builder/accordion'\nimport styles from '../integration-builder.module.css'\nimport { Tooltip, Link } from '@paypalcorp/pp-react'\nimport { CheckoutSimulatorContext } from '../../../components/integration-builder/context/CheckoutSimulatorContext'\nimport { ExternalLink } from '../../../components/icons'\n\nconst TakeLive: FunctionComponent = () => {\n const { integrationType } = useContext(CheckoutSimulatorContext)\n\n return (\n
\n \n
\n

\n Move your application to PayPal's live environment\n

\n \n
\n {integrationType === 'advanced' ? (\n
    \n
  1. \n Copy the sample code based on your front-end and back-end\n framework to your checkout page.\n
  2. \n
  3. Customize your code (optional).
  4. \n
  5. \n Get your Live credentials from the{' '}\n \n \n Developer Dashboard\n \n .\n \n Replace 'CLIENT_ID' and 'APP_SECRET' in the front-end and\n back-end files with your own app's Client ID and App Secret.\n
  6. \n
  7. \n In Live App Settings, go to Accept Payments {'>'} Advanced\n Options. Make sure the Advanced Credit and Debit Card Payments\n checkbox is checked.\n
  8. \n
  9. Test your live integration.
  10. \n
\n ) : (\n
    \n
  1. \n Ensure your application adheres to the{' '}\n \n \n PayPal Application Policies and Guidelines\n \n .\n \n
  2. \n
  3. Obtain your live credentials.
  4. \n
  5. \n Replace your test credentials in your integration with your\n live credentials.\n
  6. \n
  7. Update your PayPal endpoint.
  8. \n
\n )}\n \n }\n />\n
\n )\n}\n\nexport default TakeLive\n","import { TextInput, Icon } from '@paypalcorp/pp-react'\nimport styles from '../integration-builder.module.css'\nimport React, { FC } from 'react'\nimport withAnalytics from '../../../utils/withAnalytics'\n\ntype CardGeneratorLayoutProps = {\n data: Record[]\n testid: string\n}\n\nconst CardGeneratorLayout: FC = ({\n data,\n testid,\n}) => {\n const [copied, setCopied] = React.useState('')\n const fptiData = typeof window !== `undefined` && window.fpti\n const recordAnalytics = (fieldName: string) => {\n if (fptiData && window.PAYPAL?.analytics?.instance) {\n window.PAYPAL.analytics.instance.record({\n data: {\n component: 'devdiscoverynodeweb',\n page: 'main:developer:integration-builder',\n pgrp: 'main:developer:integration-builder',\n e: 'cl',\n event_action: `copy_field_${fieldName}`,\n event_category: testid,\n link: testid,\n ...fptiData,\n },\n })\n }\n }\n const copyToClipboard = (name: string, value: string) => {\n navigator.clipboard.writeText(value).then(() => {\n setCopied(`${name}-${value}`)\n })\n recordAnalytics(name)\n }\n\n return (\n \n {data?.map(({ name, label, value }) => (\n \n \n \n {copied === `${name}-${value}` ? (\n \n ) : (\n copyToClipboard(name, value)}\n />\n )}\n \n \n ))}\n \n )\n}\n\nexport default withAnalytics(CardGeneratorLayout)\n","import React, { ReactNode, useState } from 'react'\nimport { InformationIcon } from '@paypalcorp/pp-react'\nimport './info-card.css'\n\ninterface InfoCardProps {\n content: ReactNode\n}\n\nexport const InfoCard: React.FC = ({ content }) => {\n return (\n <>\n
\n
\n \n
{content}
\n
\n
\n \n )\n}\n","import { SingleSelectionOption } from '../interfaces'\nexport interface CodeSelectorOption {\n name: string\n label: string\n value: string\n buttons: SingleSelectionOption[]\n}\nexport const codeSelectorDefaultOptions: CodeSelectorOption[] = [\n {\n name: 'integration',\n label: 'Integration:',\n value: 'standard',\n buttons: [\n {\n label: 'Standard',\n value: 'standard',\n },\n {\n label: 'Advanced',\n value: 'advanced',\n },\n ],\n },\n {\n name: 'frontend',\n label: 'Front end language:',\n value: 'html',\n buttons: [\n {\n label: 'HTML',\n value: 'html',\n },\n {\n label: 'React',\n value: 'react',\n },\n // {\n // label: 'Angular',\n // value: 'angular',\n // },\n ],\n },\n {\n name: 'backend',\n label: 'Back end language:',\n value: 'nodejs',\n buttons: [\n {\n label: 'Node JS',\n value: 'nodejs',\n },\n // {\n // conditions: [\n // {\n // option: 'integration',\n // value: 'advanced',\n // },\n // ],\n // label: 'Java',\n // value: 'java',\n // },\n // {\n // label: 'Python',\n // value: 'python',\n // },\n // {\n // label: 'PHP',\n // value: 'php',\n // },\n ],\n },\n]\n","const type = 'standard'\nconst path = 'client/html'\nconst name = 'app.js'\nconst fullPath = `${path}/${name}`\n\nexport { type, path, name, fullPath }\n","import { useApplicationContext } from '../../../../../../provider'\nimport { resolveFullSnippetPath } from '../../../../codeblock-highlight/code-snippets/resolveFullSnipperPath'\nimport {\n getSelectedSources,\n getUnselectedSources,\n parseSelectedSources,\n parseUnselectedSources,\n} from '../../helpers/fundingSourcesAssets'\n\nexport default (props: any) => {\n const { nonce } = useApplicationContext()\n const { paymentModel } = props\n const integrationType = props.options.find(\n (option: any) => option.name === 'integration',\n ).value\n\n const fundingSourceCodeMap: any = {\n PAYPAL: 'PAYPAL',\n PAYLATER: 'CREDIT',\n CARD: 'CARD',\n }\n\n let selectedSources = props.buttons.map((button: string) =>\n button.split('payment-buttons_')[1].toUpperCase(),\n )\n\n if (paymentModel === 'recurring') {\n selectedSources = selectedSources\n .map((source: string) => fundingSourceCodeMap[source])\n .filter(Boolean)\n }\n\n let snippetPath = resolveFullSnippetPath(\n `/jscript/integration-examples/standard-checkout.js`,\n )\n\n const buttons = getSelectedSources(props.buttons)\n\n const selectedButtons = parseSelectedSources(props, buttons)\n const unselectedButtons = parseUnselectedSources(\n props,\n getUnselectedSources(buttons),\n )\n\n const scriptString = `https://www.paypal.com/sdk/js?client-id=test&enable-funding=${\n selectedButtons.length > 0 ? selectedButtons : 'paypal'\n }${\n unselectedButtons.length > 0 ? `&disable-funding=${unselectedButtons}` : ''\n }`\n\n return `\n \n \n \n \n PayPal Standard Payments Integration | Client Demo\n \n \n \n \n
\n \n \n \n \n \n `\n}\n","export const resolveFullSnippetPath = (relativePath: string) => {\n return `${\n window.location.host.includes('localhost')\n ? 'http://localhost:3000'\n : 'https://www.paypalobjects.com/ppdevdocs/ecmramp'\n }${relativePath}`\n}\n","import injectionCode from '../../../preview/standard-checkout'\n\nconst type = 'standard'\nconst path = 'client/html'\nconst name = 'checkout.html'\nconst fullPath = `${path}/${name}`\n\nexport { type, path, name, fullPath, injectionCode }\n","import injectionCode from '../../../preview/standard-checkout'\n\nconst type = 'standard'\nconst path = 'client/react'\nconst name = 'App.jsx'\nconst fullPath = `${path}/${name}`\n\nexport { type, path, name, injectionCode, fullPath }\n","import injectionCode from '../../../preview/standard-checkout'\n\nconst type = 'standard'\nconst path = '/standard/angular-node/client/src/app/'\nconst name = 'app.component.ts'\n\nexport { type, path, name, injectionCode }\n","const type = 'standard'\nconst path = 'server/nodejs'\nconst name = 'server.js'\nconst fullPath = `${path}/${name}`\n\nexport { type, path, name, fullPath }\n","const type = 'standard'\nconst path = '/standard/html-python/'\nconst name = 'server.py'\n\nexport { type, path, name }\n","const type = 'standard'\nconst path = '/standard/html-php/'\nconst name = 'server.php'\n\nexport { type, path, name }\n","const type = 'advanced'\nconst path = '/advance/angular-node/angular/src/'\nconst name = 'main.ts'\n\nexport { type, path, name }\n","import { useApplicationContext } from '../../../../../../provider'\n\nexport default (props: any) => {\n const { nonce } = useApplicationContext()\n const integrationType = props.options.find(\n (option: any) => option.name === 'integration',\n ).value\n const tds = props.buttons.includes('payment-buttons_3ds')\n\n let selectedSources = props.buttons.map((button: string) =>\n button.split('payment-buttons_')[1].toUpperCase(),\n )\n\n return `\n \n \n \n \n \n \n \n \n \n
\n
\n
\n

\n or \n

\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n \n \n
\n The CSC is the 3-digit number on the back of your card.\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n \n \n
\n
\n
\n
\n By clicking Place Order, you agree to Terms & Conditions\n
\n \n `\n}\n","import injectionCode from '../../../preview/advanced-checkout'\n\nconst type = 'advanced'\nconst path = '/advance/angular-node/angular/src/'\nconst name = 'index.html'\n\nexport { path, name, type, injectionCode }\n","const type = 'advanced'\nconst path = '/advance/angular-node/angular/src/app/'\nconst name = 'app.component.html'\n\nexport { type, path, name }\n","const type = 'advanced'\nconst path = '/advance/angular-node/angular/src/app/'\nconst name = 'app.component.ts'\n\nexport { type, path, name }\n","const type = 'advanced'\nconst path = '/advance/angular-node/angular/src/app/'\nconst name = 'app.module.ts'\n\nexport { type, path, name }\n","import injectionCode from '../../../preview/advanced-checkout'\n\nconst type = 'advanced'\nconst path = 'server/nodejs/html/views'\nconst name = 'checkout.ejs'\nconst fullPath = `${path}/${name}`\n\nconst conditions = [\n {\n option: 'backend',\n type: 'different',\n value: 'java',\n },\n {\n parameter: 'buttons',\n type: 'not_includes',\n value: 'payment-buttons_3ds',\n },\n]\n\nexport { type, path, name, fullPath, conditions, injectionCode }\n","const type = 'advanced'\nconst path = 'client/html'\nconst name = 'app.js'\nconst fullPath = `${path}/${name}`\n\nconst conditions = [\n {\n option: 'backend',\n type: 'different',\n value: 'java',\n },\n {\n parameter: 'buttons',\n type: 'not_includes',\n value: 'payment-buttons_3ds',\n },\n]\n\nexport { type, path, name, fullPath, conditions }\n","const type = 'advanced'\nconst path = '/advance/html-node/public/'\nconst name = 'acdc_app.js'\n\nconst conditions = [\n {\n option: 'backend',\n value: 'java',\n },\n {\n parameter: 'buttons',\n type: 'not_includes',\n value: 'payment-buttons_3ds',\n },\n]\nexport { path, name, conditions }\n","import injectionCode from '../../../../preview/advanced-checkout'\n\nconst type = 'advanced'\nconst path = 'server/html/views'\nconst name = 'checkout.ejs'\nconst fullPath = `${path}/${name}`\n\nconst conditions = [\n {\n parameter: 'buttons',\n type: 'includes',\n value: 'payment-buttons_3ds',\n },\n]\n\nexport { type, path, name, fullPath, conditions, injectionCode }\n","const type = 'advanced'\nconst path = 'client/html'\nconst name = 'app.js'\nconst fullPath = `${path}/${name}`\n\nconst conditions = [\n {\n parameter: 'buttons',\n type: 'includes',\n value: 'payment-buttons_3ds',\n },\n]\n\nexport { type, path, name, fullPath, conditions }\n","import injectionCode from '../../../preview/advanced-checkout'\n\nconst type = 'advanced'\nconst path = 'client/react'\nconst name = 'index.html'\nconst fullPath = `${path}/${name}`\n\nexport { type, path, name, fullPath, injectionCode }\n","const type = 'advanced'\nconst path = 'client/react'\nconst name = 'App.jsx'\nconst fullPath = `${path}/${name}`\n\nexport { type, path, name, fullPath }\n","const type = 'advanced'\nconst path = 'client/react'\nconst name = 'main.jsx'\nconst fullPath = `${path}/${name}`\n\nexport { type, path, name, fullPath }\n","const type = 'advanced'\nconst path = 'client/react'\nconst name = 'PaymentForm.jsx'\nconst fullPath = `${path}/${name}`\n\nexport { type, path, name, fullPath }\n","const type = 'advanced'\nconst path = 'client/react'\nconst name = 'PaymentForm.module.css'\nconst fullPath = `${path}/${name}`\n\nexport { type, path, name, fullPath }\n","const type = 'advanced'\nconst path = 'server/nodejs/html'\nconst name = 'server.js'\nconst fullPath = `${path}/${name}`\n\nconst conditions = [\n {\n option: 'frontend',\n value: 'html',\n },\n {\n parameter: 'buttons',\n type: 'not_includes',\n value: 'payment-buttons_3ds',\n },\n]\n\nexport { type, path, name, fullPath, conditions }\n","const type = 'advanced'\nconst path = 'server/nodejs/react'\nconst name = 'server.js'\nconst fullPath = `${path}/${name}`\n\nconst conditions = [\n {\n option: 'frontend',\n value: 'react',\n },\n]\n\nexport { type, path, name, fullPath, conditions }\n","const type = 'advanced'\nconst path = 'server/html'\nconst name = 'server.js'\nconst fullPath = `${path}/${name}`\n\nconst conditions = [\n {\n option: 'frontend',\n type: 'equals',\n value: 'html',\n },\n {\n parameter: 'buttons',\n type: 'includes',\n value: 'payment-buttons_3ds',\n },\n]\n\nexport { type, path, name, fullPath, conditions }\n","const type = 'advanced'\nconst path = '/advance/html-python/'\nconst name = 'index.py'\n\nconst conditions = [\n {\n option: 'frontend',\n type: 'different',\n value: 'angular',\n },\n]\n\nexport { type, path, name, conditions }\n","const type = 'advanced'\nconst path = '/advance/angular-python/'\nconst name = 'server.py'\n\nconst conditions = [\n {\n option: 'frontend',\n value: 'angular',\n },\n]\n\nexport { type, path, name, conditions }\n","const type = 'advanced'\nconst path = '/advance/html-php/'\nconst name = 'index.php'\n\nexport { type, path, name }\n","import standard_frontend_html from './standard/frontend/html'\nimport standard_frontend_react from './standard/frontend/react'\nimport standard_frontend_angular from './standard/frontend/angular'\nimport standard_backend_node from './standard/backend/nodejs'\nimport standard_backend_python from './standard/backend/python'\nimport standard_backend_php from './standard/backend/php'\n\nimport advanced_frontend_angular from './advanced/frontend/angular'\nimport advanced_frontend_html from './advanced/frontend/html'\nimport advanced_frontend_react from './advanced/frontend/react'\n\nimport advanced_backend_java from './advanced/backend/java'\nimport advanced_backend_nodejs from './advanced/backend/nodejs'\nimport advanced_backend_python from './advanced/backend/python'\nimport advanced_backend_php from './advanced/backend/php'\n\nimport { SnippetSchema } from '../interfaces/SnippetSchema'\n\nexport const checkoutSimulatorSnippets: SnippetSchema[] = [\n {\n name: 'standard',\n environments: [\n {\n name: 'frontend',\n samples: [\n {\n language: 'html',\n files: standard_frontend_html,\n },\n {\n language: 'react',\n files: standard_frontend_react,\n },\n {\n language: 'angular',\n files: standard_frontend_angular,\n },\n ],\n },\n {\n name: 'backend',\n samples: [\n {\n language: 'nodejs',\n files: standard_backend_node,\n },\n {\n language: 'python',\n files: standard_backend_python,\n },\n {\n language: 'php',\n files: standard_backend_php,\n },\n ],\n },\n ],\n },\n {\n name: 'advanced',\n environments: [\n {\n name: 'frontend',\n samples: [\n {\n language: 'html',\n files: advanced_frontend_html,\n },\n {\n language: 'react',\n files: advanced_frontend_react,\n },\n {\n language: 'angular',\n files: advanced_frontend_angular,\n },\n ],\n },\n {\n name: 'backend',\n samples: [\n // {\n // language: 'java',\n // files: advanced_backend_java,\n // },\n {\n language: 'nodejs',\n files: advanced_backend_nodejs,\n },\n {\n language: 'python',\n files: advanced_backend_python,\n },\n {\n language: 'php',\n files: advanced_backend_php,\n },\n ],\n },\n ],\n },\n].map((snippet) => ({\n ...snippet,\n environments: snippet.environments.map((environment) => ({\n ...environment,\n samples: environment.samples.map((sample) => ({\n ...sample,\n files: sample.files.map((file: any) => ({\n ...file,\n integration: snippet.name,\n environment: environment.name,\n language: sample.language,\n })),\n })),\n })),\n}))\n","import * as app_js from './app.js'\nimport * as checkout_html from './checkout.html'\n\nexport default [app_js, checkout_html]\n","import * as app_jsx from './app.jsx'\n\nexport default [app_jsx]\n","import * as app_component_ts from './app.component.ts'\n\nexport default [app_component_ts]\n","import * as server_js from './server.js'\n\nexport default [server_js]\n","import * as server_py from './server.py'\n\nexport default [server_py]\n","import * as server_php from './server.php'\n\nexport default [server_php]\n","import * as checkout_ejs from './checkout_ejs'\nimport * as app_js from './app.js'\nimport * as acdc_app_js from './acdc_app.js'\nimport * as ds_checkout_js from './3ds/checkout_ejs'\nimport * as ds_app_js from './3ds/app.js'\n\nexport default [checkout_ejs, app_js, acdc_app_js, ds_checkout_js, ds_app_js]\n","import * as index_html from './index.html'\nimport * as app_js from './app.js'\nimport * as main_js from './main.js'\nimport * as paymentForm_js from './paymentForm.js'\nimport * as paymentForm_module_css from './paymentForm.module.css'\n\nexport default [\n index_html,\n app_js,\n main_js,\n paymentForm_js,\n paymentForm_module_css,\n]\n","import * as main_ts from './main.ts'\nimport * as index_html from './index.html'\nimport * as app_component_html from './app.component.html'\nimport * as app_component_ts from './app.component.ts'\nimport * as app_module_ts from './app.module.ts'\n\nexport default [\n index_html,\n main_ts,\n app_component_html,\n app_component_ts,\n app_module_ts,\n]\n","import * as server_js from './server.js'\nimport * as server_react_js from './server_react.js'\nimport * as ds_server_js from './3ds/server.js'\n\nexport default [server_js, server_react_js, ds_server_js]\n","import * as index_py from './index.py'\nimport * as server_py from './server.py'\n\nexport default [index_py, server_py]\n","import * as index_php from './index.php'\n\nexport default [index_php]\n","import { SnippetSchemaEnvironmentSampleFile } from '../code-selector/code-snippets/interfaces'\nimport { CodeSelectorOption } from '../code-selector/interfaces'\nimport {\n CheckoutSimulatorParametersProps,\n CheckoutSimulatorState,\n} from './interfaces'\n\ntype CheckoutSimulatorAction =\n | {\n type: '[Checkout_Simulator] Set option value'\n payload: {\n name: string\n value: string\n }\n }\n | {\n type: '[Checkout_Simulator] Set buttons options'\n payload: CodeSelectorOption[]\n }\n | {\n type: '[Checkout_Simulator] Set integration type'\n payload: {\n integrationType: string\n }\n }\n | {\n type: '[Checkout_Simulator] Set snippets'\n payload: { [environment: string]: SnippetSchemaEnvironmentSampleFile[] }\n }\n | {\n type: '[Checkout_Simulator] Set parameters'\n payload: CheckoutSimulatorParametersProps\n }\n | {\n type: '[Checkout_Simulator] Set parameter'\n payload: {\n name: string\n value: any\n }\n }\n\nexport const checkoutSimulatorReducer = (\n state: CheckoutSimulatorState,\n action: CheckoutSimulatorAction,\n): CheckoutSimulatorState => {\n switch (action.type) {\n case '[Checkout_Simulator] Set option value':\n return {\n ...state,\n options: [\n ...state.options.map((option) =>\n option.name === action.payload.name\n ? {\n ...option,\n value: action.payload.value,\n }\n : option,\n ),\n ],\n }\n case '[Checkout_Simulator] Set integration type':\n return {\n ...state,\n integrationType: action.payload.integrationType,\n }\n case '[Checkout_Simulator] Set buttons options':\n return {\n ...state,\n options: action.payload,\n }\n case '[Checkout_Simulator] Set snippets':\n return {\n ...state,\n snippets: action.payload,\n }\n case '[Checkout_Simulator] Set parameters':\n return {\n ...state,\n parameters: action.payload,\n }\n case '[Checkout_Simulator] Set parameter':\n return {\n ...state,\n parameters: {\n ...state.parameters,\n [action.payload.name]: action.payload.value,\n },\n }\n default:\n return state\n }\n}\n","import React, { FC, useReducer, useState } from 'react'\nimport { codeSelectorDefaultOptions } from '../code-selector/assets'\nimport { checkoutSimulatorSnippets } from '../code-selector/code-snippets/checkout'\nimport { CodeSelectorOption } from '../code-selector/interfaces'\nimport { CheckoutSimulatorContext } from './CheckoutSimulatorContext'\nimport { checkoutSimulatorReducer } from './checkoutSimulatorReducer'\nimport {\n CheckoutSimulatorParametersProps,\n CheckoutSimulatorState,\n} from './interfaces'\n\nconst initialState: CheckoutSimulatorState = {\n snippetSchema: checkoutSimulatorSnippets,\n options: codeSelectorDefaultOptions,\n integrationType: 'standard',\n snippets: {},\n parameters: {\n clientId: 'test',\n appSecret: '',\n buttons: [\n 'payment-buttons_paypal',\n 'payment-buttons_paylater',\n 'payment-buttons_venmo',\n 'payment-buttons_3ds',\n 'payment-buttons_card',\n ],\n paymentModel: 'onetime-payment',\n buttonStyle: 'rect',\n buttonLayout: 'vertical',\n },\n}\n\nexport const CheckoutSimulatorProvider: FC = ({ children }) => {\n const [state, dispatch] = useReducer(checkoutSimulatorReducer, initialState)\n\n const setOptions = (options: CodeSelectorOption[]) => {\n dispatch({\n type: '[Checkout_Simulator] Set buttons options',\n payload: options,\n })\n }\n\n const setOptionValue = (name: string, value: string) => {\n dispatch({\n type: '[Checkout_Simulator] Set option value',\n payload: {\n name,\n value,\n },\n })\n }\n\n const setIntegrationType = (integrationType: string) => {\n dispatch({\n type: '[Checkout_Simulator] Set integration type',\n payload: {\n integrationType,\n },\n })\n }\n\n const setParameters = (parameters: CheckoutSimulatorParametersProps) => {\n dispatch({\n type: '[Checkout_Simulator] Set parameters',\n payload: parameters,\n })\n }\n\n const setParameter = (name: string, value: any) => {\n dispatch({\n type: '[Checkout_Simulator] Set parameter',\n payload: {\n name,\n value,\n },\n })\n }\n\n const updateSnippets = () => {\n const integrationType = state.options.find(\n (option) => option.name === 'integration',\n )?.value\n\n const schema = state.snippetSchema.find(\n (schema) => schema.name === integrationType,\n )\n\n const environmentLanguages = schema?.environments.map((environment) => ({\n environment: environment.name,\n language: state.options.find((option) => option.name === environment.name)\n ?.value,\n }))\n\n const environmentLanguageFiles = environmentLanguages?.map(\n (environmentLanguage) => ({\n environment: environmentLanguage.environment,\n files: schema?.environments\n .find(\n (environment) =>\n environment.name === environmentLanguage.environment,\n )\n ?.samples.find(\n (sample) => sample.language === environmentLanguage.language,\n )\n ?.files.filter(\n (file) =>\n file &&\n (!file.conditions ||\n file.conditions.filter((condition) => {\n if (condition.option) {\n let conditionOption = state.options.find(\n (conditionOption) =>\n conditionOption.name === condition.option,\n )\n if (condition.type === 'different')\n return conditionOption?.value !== condition.value\n return conditionOption?.value === condition.value\n } else if (condition.parameter) {\n let conditionParameter =\n state.parameters[condition.parameter]\n switch (condition.type) {\n case 'includes':\n if (!Array.isArray(conditionParameter)) return false\n return conditionParameter.includes(condition.value)\n case 'not_includes':\n if (!Array.isArray(conditionParameter)) return false\n return !conditionParameter.includes(condition.value)\n case 'different':\n return conditionParameter !== condition.value\n default:\n return conditionParameter === condition.value\n }\n }\n }).length === file.conditions.length),\n ),\n }),\n )\n\n const snippets = environmentLanguageFiles?.reduce(\n (files: any, environmentFile: any) => {\n return {\n ...files,\n [environmentFile.environment]: environmentFile.files,\n }\n },\n {},\n )\n\n dispatch({\n type: '[Checkout_Simulator] Set snippets',\n payload: snippets,\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","import {\n Alert,\n BodyText,\n Button,\n Card,\n HeadingText,\n TextArea,\n} from '@paypalcorp/pp-react'\nimport React, { FunctionComponent, useState } from 'react'\nimport './article-feedback.css'\nimport withAnalytics from '../../utils/withAnalytics'\n\nconst ArticleFeedback: FunctionComponent = ({}) => {\n const [isFbCaptured, setIsFbCaptured] = useState(false)\n const [isFbRating, setIsFbRating] = useState(false)\n const [isFbReason, setIsFbReason] = useState(false)\n const [selectedReason, setSelectedReason] = useState('')\n const [selectedRating, setSelectedRating] = useState(0)\n const [reasonDescription, setReasonDescription] = useState('')\n\n const fptiData = typeof window !== `undefined` && window.fpti\n\n enum FeedbackAnswers {\n YES = 'Y',\n NO = 'N',\n }\n\n const reasonMap: { [x: string]: string } = {\n toomuchinfo: 'Too much information',\n notenoughinfo: 'Not enough information to answer my question',\n lookingfor: 'This isn´t what i was looking for',\n incorrect: 'I tried this and it didn´t solve the problem',\n dontlike: 'I don´t like this feature or policy',\n other: 'Other',\n }\n\n const reasons: string[] = Object.keys(reasonMap)\n\n const HCAR_MAPPINGS: { [x: string]: string } = {\n toomuchinfo: 'N1',\n notenoughinfo: 'N2',\n lookingfor: 'N3',\n incorrect: 'N4',\n dontlike: 'N5',\n other: 'N99',\n }\n\n const dataMasking = (data: string) => {\n const maskRegEx =\n /(\\d\\d+|(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,}))/g // eslint-disable-line\n const maskPattern = '#########'\n\n if (data) {\n return data.replace(maskRegEx, maskPattern)\n }\n\n return data\n }\n\n const recordAnalytics = (answer: FeedbackAnswers) => {\n if (fptiData && window.PAYPAL?.analytics?.instance) {\n let category = 'feedback'\n let hcar =\n answer === FeedbackAnswers.YES\n ? answer.toString()\n : HCAR_MAPPINGS[selectedReason]\n let hcaf = `${category}|${hcar}${\n selectedReason\n ? `|${selectedRating}|${dataMasking(reasonDescription)}`\n : ''\n }`\n\n window.PAYPAL.analytics.instance.record({\n data: {\n ...fptiData,\n page: 'main:developer:integration-builder',\n pgrp: 'main:developer:integration-builder',\n e: 'cl',\n hcar,\n hcaf,\n component: 'devdiscoverynodeweb',\n },\n })\n }\n }\n\n const fbAnswerHandler = (answer: FeedbackAnswers) => {\n if (answer === FeedbackAnswers.YES) {\n recordAnalytics(answer)\n setIsFbCaptured(true)\n } else {\n setIsFbRating(true)\n }\n }\n\n const fbRatingHandler = (rating: number) => {\n setSelectedRating(rating)\n setIsFbReason(true)\n }\n\n const fbFeedbackHandler = () => {\n recordAnalytics(FeedbackAnswers.NO)\n\n setIsFbRating(false)\n setIsFbReason(false)\n setIsFbCaptured(true)\n }\n\n const fbReasonHandler = (reason: string) => {\n setSelectedReason(reason)\n }\n\n const renderFbReason = () => {\n return isFbReason ? (\n
\n \n \n Why wasn't this information helpful?\n \n
    \n {reasons.map((reason: string) => (\n
  • \n fbReasonHandler(reason)}\n >\n {reasonMap[reason]}\n \n {reason === selectedReason ? (\n <>\n setReasonDescription(e.target.value)}\n data-testid=\"hc-fb-reason-option-desc\"\n />\n fbFeedbackHandler()}\n >\n Send\n \n \n ) : null}\n
  • \n ))}\n
\n
\n
\n ) : null\n }\n\n const renderFbSection = () => {\n return !isFbCaptured && !isFbRating ? (\n
\n \n Was the integration builder helpful?\n \n
\n fbAnswerHandler(FeedbackAnswers.YES)}\n >\n Yes\n \n \n
\n
\n ) : null\n }\n\n const renderFbReceived = () => {\n return isFbCaptured ? (\n
\n \n Feedback sent\n \n
\n ) : null\n }\n\n const renderFbRating = () => {\n return isFbRating ? (\n
\n \n Please rate your experience with this tool based on how useful it is\n \n\n
\n fbRatingHandler(1)}\n >\n 1\n \n fbRatingHandler(2)}\n >\n 2\n \n fbRatingHandler(3)}\n >\n 3\n \n fbRatingHandler(4)}\n >\n 4\n \n fbRatingHandler(5)}\n >\n 5\n \n
\n\n {renderFbReason()}\n
\n ) : null\n }\n\n return (\n
\n {renderFbSection()}\n {renderFbReceived()}\n {renderFbRating()}\n
\n )\n}\n\nexport default withAnalytics(ArticleFeedback)\n","import { ArrowLeftIcon, Badge, Banner } from '@paypalcorp/pp-react'\nimport { navigate } from '@reach/router'\nimport { isEmpty } from 'lodash'\nimport React, { FunctionComponent, useEffect } from 'react'\nimport { CodeSelector } from '../../components/integration-builder'\nimport { CheckoutSimulatorProvider } from '../../components/integration-builder/context/CheckoutSimulatorProvider'\nimport { useApplicationContext } from '../../provider'\nimport withAnalytics from '../../utils/withAnalytics'\nimport Layout from '../layout'\nimport styles from './integration-builder.module.css'\nimport Build from './sections/Build'\nimport Configure from './sections/Configure'\nimport Demo from './sections/Demo'\nimport Preview from './sections/Preview'\nimport TakeLive from './sections/TakeLive'\nimport Code from './sections/Code'\nimport HelpModal from './sections/HelpModal'\nimport KnowBeforeYouCode from './sections/KnowBeforeYouCode'\nimport ArticleFeedback from '../../components/article-feedback'\n\nconst CheckoutSimulatorNew: FunctionComponent = ({}) => {\n const { user } = useApplicationContext()\n const userLoggedOut = !user?.loggedIn\n const fptiData = typeof window !== `undefined` && window.fpti\n\n let options: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: true,\n }\n\n const lastUpdated =\n typeof document !== 'undefined'\n ? new Intl.DateTimeFormat('en-US', options)\n .format(new Date(document.lastModified))\n .replace(',', '')\n .replace(' at ', ', @ ')\n .replace('AM', 'am')\n .replace('PM', 'pm')\n : ''\n\n // ANALYTICS WHEN PAGE LOADED\n useEffect(() => {\n if (fptiData && window.PAYPAL?.analytics?.instance) {\n window.PAYPAL.analytics.instance.record({\n data: {\n page: 'main:developer:integration-builder',\n pgrp: 'main:developer:integration-builder',\n e: 'page-load',\n ...fptiData,\n },\n })\n }\n })\n\n const handleGoBack = () => {\n if (window.history.length > 2) {\n navigate(-1)\n } else {\n navigate('/home/')\n }\n }\n\n return (\n <>\n \n \n \n \n
\n \n \n \n Back\n \n \n
\n
\n

Integration Builder

\n \n
\n
\n JS SDK\n

\n Last updated: {lastUpdated}\n

\n
\n
\n \n \n
\n
\n \n \n \n \n
\n
\n \n \n
\n
\n \n \n \n \n )\n}\n\nexport default withAnalytics(CheckoutSimulatorNew)\n","import React, { FunctionComponent } from 'react'\nimport { Accordion, ContentCard } from '../../../components/integration-builder'\nimport { AcceptCards, AcceptPayments } from '../../../components/icons'\n\nimport { Tooltip, Row, Col } from '@paypalcorp/pp-react'\nimport styles from '../integration-builder.module.css'\nimport { useApplicationContext } from '../../../provider'\n\nconst TITLES = {\n testA: {\n standardName: 'PayPal Payments',\n standardAllows: 'allows you to offer a variety of payment options:',\n advanceName: 'Card processing and preferred ways to pay',\n advanceAllows:\n 'allows you to offer the same PayPal Payments options as well as:',\n },\n testB: {\n standardName: 'Standard Checkout',\n standardAllows: 'allows you to offer a variety of payment options:',\n advanceName: 'Advanced Checkout',\n advanceAllows:\n 'allows you to accept all of the Standard Checkout payment types as well as:',\n },\n}\n\nconst StandardTooltip = (\n \n)\nconst AdvanceTooltip = (\n \n)\n\nconst KBYC: FunctionComponent = () => {\n const { experiments } = useApplicationContext()\n\n const treatment = experiments.integrationBuilderKBYC?.startsWith('Trmt_')\n ? 'testA'\n : 'testB'\n const cardStandardName = TITLES[treatment].standardName\n const cardStandardAllows = TITLES[treatment].standardAllows\n const cardAdvanceName = TITLES[treatment].advanceName\n const cardAdvanceAllows = TITLES[treatment].advanceAllows\n\n return (\n
\n \n Know before you code\n \n }\n content={\n
\n \n \n }\n badgeType=\"feature\"\n badgeText=\"Standard\"\n content={\n <>\n \n {cardStandardName}\n \n \n {StandardTooltip}\n \n \n {cardStandardAllows}\n \n
    \n
  • PayPal
  • \n
  • Pay Later
  • \n
  • Venmo
  • \n
  • \n Debit and Credit through a PayPal-managed guest\n checkout\n
  • \n
\n \n }\n />\n \n \n }\n badgeType=\"feature\"\n badgeText=\"Advanced\"\n content={\n <>\n \n {cardAdvanceName}\n \n \n {AdvanceTooltip}\n \n \n {cardAdvanceAllows}\n \n
    \n
  • Direct Debit and Credit card processing
  • \n
  • Customizable Payment Protection
  • \n
  • \n Unbranded checkout, with customizable buttons and form\n fields\n
  • \n
  • Region-specific alternative payments methods
  • \n
\n \n }\n />\n \n
\n
\n }\n />\n
\n )\n}\n\nexport default KBYC\n","import React, { FunctionComponent, useContext } from 'react'\nimport { Accordion } from '../../../components/integration-builder/accordion'\nimport styles from '../integration-builder.module.css'\nimport cardDetails from './cardDetails.json'\nimport { Tooltip, Link } from '@paypalcorp/pp-react'\nimport { CheckoutSimulatorContext } from '../../../components/integration-builder/context/CheckoutSimulatorContext'\nimport CardGeneratorLayout from './CardGenerator'\nimport { ExternalLink } from '../../../components/icons'\n\nconst Demo: FunctionComponent = () => {\n const { integrationType } = useContext(CheckoutSimulatorContext)\n\n return (\n
\n \n

\n Demo checkout as a payer and merchant\n

\n
    \n
  1. \n In the Checkout Preview, select a payment button to demo\n checkout.\n
  2. \n
  3. \n Log in to the payer's sandbox account using pre-populated\n credentials.\n
  4. \n
  5. Select a payment method to start the transaction.
  6. \n
  7. \n Confirm that payment was successful by logging in to the\n merchant's sandbox account using the pre-populated credentials.\n
  8. \n
  9. \n On a successful transaction, the payment is shown in the\n merchant sandbox account.\n
  10. \n
\n {integrationType === 'advanced' ? (\n

\n Simulate a successful credit card capture or 3D Secure test\n cards to test different 3DS scenarios and generate a 3DS\n response in the order details.\n

\n ) : (\n

Simulate successful and unsuccessful credit card capture.

\n )}\n
\n

\n Successful test transaction\n

\n \n
\n

\n Use the following card information\n {integrationType === 'advanced'\n ? ` only when 3DS is unchecked. `\n : '. '}\n \n \n See more test cases here\n \n \n \n .\n

\n \n
\n

\n Negative test transaction\n

\n \n
\n

\n Use the following card information\n {integrationType === 'advanced'\n ? `only when 3DS is unchecked. `\n : '. '}\n \n \n See more test cases here\n \n \n \n .\n

\n \n {integrationType === 'advanced' ? (\n <>\n
\n

\n 3D Secure Test Transaction\n

\n \n
\n

\n Use the following card information{' '}\n {integrationType === 'advanced'\n ? `only when 3DS is checked. `\n : '. '}\n \n \n See more test cases here\n \n \n \n .\n

\n \n \n ) : null}\n \n }\n />\n
\n )\n}\n\nexport default Demo\n","import { SingleSelectionGroup } from '@paypalcorp/pp-react'\nimport React, { ChangeEvent, useContext, useEffect } from 'react'\nimport './code-selector.css'\nimport { CheckoutSimulatorContext } from '../context/CheckoutSimulatorContext'\nimport withAnalytics from '../../../utils/withAnalytics'\n\nconst CodeSelectorButtons: React.FC = () => {\n const fptiData = typeof window !== `undefined` && window.fpti\n const {\n options,\n parameters,\n setOptionValue,\n setIntegrationType,\n updateSnippets,\n setParameter,\n } = useContext(CheckoutSimulatorContext)\n\n const recordAnalytics = (buttonSelected: string) => {\n if (fptiData && window.PAYPAL?.analytics?.instance) {\n const event = `button_${buttonSelected}`\n window.PAYPAL.analytics.instance.record({\n data: {\n page: 'main:developer:integration-builder',\n pgrp: 'main:developer:integration-builder',\n e: 'cl',\n link: event,\n event_action: event,\n ...fptiData,\n },\n })\n }\n }\n\n useEffect(() => {\n updateSnippets()\n }, [options])\n\n return (\n <>\n {options.map((option) => {\n return (\n \n !button.conditions ||\n button.conditions.filter((condition) => {\n let conditionOption = options.find(\n (conditionOption) =>\n conditionOption.name === condition.option,\n )\n return conditionOption?.value === condition.value\n }).length === button.conditions.length,\n )}\n onChange={(event: ChangeEvent) => {\n recordAnalytics(event.target.value)\n\n setOptionValue(option.name, event.target.value)\n\n if (option.name === 'integration') {\n // Without this the integration type doesn't change and it flickers\n setIntegrationType(event.target.value)\n if (\n event.target.value === 'standard' &&\n options.find((option) => option.name === 'backend')?.value ===\n 'java'\n )\n setOptionValue('backend', 'nodejs')\n }\n }}\n value={\n typeof option.value === 'function' ? option.value() : option.value\n }\n />\n )\n })}\n \n )\n}\n\nexport default withAnalytics(CodeSelectorButtons)\n","import React from 'react'\nimport './code-selector.css'\nimport CodeSelectorButtons from './CodeSelectorButtons'\n\nexport const CodeSelector: React.FC = () => {\n return (\n
\n
\n \n
\n
\n )\n}\n","import React, { ReactNode } from 'react'\nimport './content-card.css'\nimport { Badge } from '@paypalcorp/pp-react'\n\ninterface ContentCardProps {\n badgeType?:\n | 'feature'\n | 'success'\n | 'warning'\n | 'critical'\n | 'neutral'\n | undefined\n badgeText?: string\n icon?: ReactNode\n onClick?: () => void\n content: ReactNode | ReactNode[]\n}\n\nexport const ContentCard: React.FC = ({\n badgeType = 'feature',\n badgeText = '',\n icon,\n onClick,\n content,\n}) => {\n return (\n
\n
\n {icon}\n {badgeText}\n
\n
{content}
\n
\n )\n}\n","import React from 'react'\n\ninterface IPayCompleteProps {\n width?: string\n height?: string\n}\n\nconst defaultProps: IPayCompleteProps = {\n width: '72',\n height: '72',\n}\n\nexport const PayComplete: React.FC = ({ width, height }) => {\n return (\n \n \n \n \n \n \n )\n}\n\nPayComplete.defaultProps = defaultProps\n"],"sourceRoot":""}