{"version":3,"file":"blocks-commons.js","mappings":"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","sources":["webpack://wcPPCP/./packages/blocks/assets/js/hooks/use-load-paypal-script.js","webpack://wcPPCP/./packages/blocks/assets/js/hooks/use-process-payment-failure.js","webpack://wcPPCP/./packages/blocks/assets/js/hooks/use-breakpoint-width.js","webpack://wcPPCP/./packages/blocks/assets/js/paylater-messaging/index.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://wcPPCP/./packages/blocks/assets/js/payment-methods/paypal/simple-paypal.js","webpack://wcPPCP/./packages/blocks/assets/js/payment-methods/paypal/hooks/use-paypal-options.js","webpack://wcPPCP/./packages/blocks/assets/js/payment-methods/paypal/hooks/use-process-payment.js","webpack://wcPPCP/./packages/blocks/assets/js/payment-methods/paypal/index.js","webpack://wcPPCP/./packages/blocks/assets/js/payment-methods/paypal/hooks/use-validate-checkout.js","webpack://wcPPCP/./packages/blocks/assets/js/payment-methods/paypal/hooks/use-paypal-funding-sources.js","webpack://wcPPCP/./packages/blocks/assets/js/utils.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["import {useEffect, useState} from \"@wordpress/element\";\nimport {loadPayPalSdk} from \"@ppcp/utils\";\n\n/*\n'client-id': this.getClientId(),\n'components': this.settings?.components,\n'currency': this.getOption('currency'),\n'intent': this.getOption('intent'),\n'vault': this.getOption('vault')\n */\n\n/**\n *\n * @param params - client-id, components, currency, intent, vault\n * @returns {*}\n */\nexport const useLoadPayPalScript = (params) => {\n const [paypal, setPayPal] = useState(null);\n\n useEffect(() => {\n if (!paypal) {\n loadPayPalSdk(params).then(paypal => setPayPal(paypal));\n }\n }, [paypal]);\n\n return paypal;\n}","import {useEffect} from '@wordpress/element';\n\nexport const useProcessPaymentFailure = ({event, responseTypes, messageContext = null, setPaymentData}) => {\n useEffect(() => {\n const unsubscribe = event((data) => {\n if (data?.processingResponse?.paymentDetails?.ppcpErrorMessage) {\n setPaymentData(null);\n const message = data.processingResponse.paymentDetails.ppcpErrorMessage;\n return {\n type: responseTypes.ERROR,\n message,\n messageContext\n }\n }\n return null;\n });\n return () => unsubscribe();\n }, [event]);\n}\n\nexport default useProcessPaymentFailure;","import {useState, useEffect, useRef} from '@wordpress/element';\n\nexport const useBreakpointWidth = ({width, node, className = 'wc-ppcp-sm__container'}) => {\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n const [element, setElement] = useState(node);\n useEffect(() => {\n setElement(node);\n }, [node]);\n\n useEffect(() => {\n const handleResize = () => setWindowWidth(window.innerWidth);\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n useEffect(() => {\n if (element) {\n if (element.clientWidth <= width) {\n element.classList.add(className);\n } else {\n element.classList.remove(className);\n }\n }\n }, [windowWidth, width, element]);\n}","import {useEffect, useRef, useMemo} from '@wordpress/element';\nimport {ExperimentalOrderMeta, TotalsWrapper} from '@woocommerce/blocks-checkout';\nimport {registerPlugin} from '@wordpress/plugins';\nimport {getSetting} from '@woocommerce/settings';\nimport {useLoadPayPalScript} from \"../hooks\";\n\nconst data = getSetting('paylaterParams');\n\nconst PayLaterMessaging = ({cart, extensions, context}) => {\n const isEnabled = data.enabled;\n const el = useRef(null);\n const {cartTotals} = cart;\n const {currency_code: currency, total_price} = cartTotals;\n const paypal = useLoadPayPalScript(getSetting('paypalQueryParams'));\n\n const options = useMemo(() => {\n return {\n amount: total_price / (10 ** cartTotals.currency_minor_unit),\n currency,\n placement: 'payment',\n ...data.options\n }\n });\n\n useEffect(() => {\n if (paypal) {\n paypal.Messages(options).render(el.current);\n }\n }, [paypal, options]);\n if (isEnabled) {\n return (\n <TotalsWrapper>\n <div className='wc-block-components-totals-item'>\n <div ref={el} className='wc-ppcp-paylater-msg__container'/>\n </div>\n </TotalsWrapper>\n )\n }\n return null;\n}\n\nconst render = () => {\n return (\n <ExperimentalOrderMeta>\n <PayLaterMessaging/>\n </ExperimentalOrderMeta>\n )\n}\n\nregisterPlugin('wc-ppcp', {render, scope: 'woocommerce-checkout'});\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","const SimplePayPal = (props) => {\n return (\n <PayPalRedirectNotice {...props}/>\n )\n}\n\nconst PayPalRedirectNotice = (\n {\n data\n }) => {\n return (\n <div className=\"wc-ppcp-popup__container\">\n <img src={data('redirectIcon')}/>\n <p dangerouslySetInnerHTML={{__html: data('i18n').redirectText}}/>\n </div>\n )\n}\n\nexport default SimplePayPal;","import {useEffect, useCallback, useRef} from '@wordpress/element';\nimport {__} from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport {convertPayPalAddressToCart, extractShippingMethod} from \"@ppcp/utils\";\nimport {\n extractShippingRateParams,\n getRestPath,\n} from '../../../utils';\n\nexport const usePayPalOptions = (\n {\n isExpress,\n paypal,\n vault,\n buttonStyles,\n shippingData,\n billing,\n setError,\n setPaymentData,\n onClick,\n onClose\n }) => {\n const currentShippingData = useRef(shippingData);\n const currentBilling = useRef(billing);\n const currentData = useRef({onClick, onClose, buttonState: true, actions: {}});\n useEffect(() => {\n currentShippingData.current = shippingData;\n currentBilling.current = billing;\n currentData.current = {...currentData.current, onClick, onClose};\n });\n\n const disableButtons = useCallback(() => {\n Object.keys(currentData.current.actions).forEach(key => {\n currentData.current.actions[key].disable();\n currentData.current.buttonState = false;\n });\n }, []);\n\n const getOptions = useCallback(fundingSource => {\n const {needsShipping, shippingAddress} = currentShippingData.current;\n const billingAddress = billing.billingData;\n const options = {\n fundingSource: fundingSource,\n style: getButtonStyle(fundingSource),\n onApprove,\n onError\n };\n if (isExpress) {\n options.onClick = () => currentData.current.onClick();\n options.onCancel = () => currentData.current.onClose()\n } else {\n options.onClick = () => {\n setError(null);\n // if address is not valid, show a notification that address data must be filled out first\n if (!isExpress && !currentData.current.buttonState) {\n if (needsShipping) {\n setError(__('Please fill out all billing and shipping fields before clicking PayPal.', 'pymntpl-paypal-woocommerce'));\n } else {\n setError(__('Please fill out all billing fields before clicking PayPal.', 'pymntpl-paypal-woocommerce'));\n }\n }\n }\n }\n options.onInit = (data, actions) => {\n if (!isExpress) {\n currentData.current.actions[fundingSource] = actions;\n }\n }\n if (isCheckoutFlow()) {\n options.createOrder = createOrder;\n if (isExpress && needsShipping && fundingSource !== 'venmo') {\n options.onShippingChange = onShippingChange;\n }\n } else {\n options.createBillingAgreement = createBillingAgreement;\n }\n\n return options;\n }, [\n paypal,\n isExpress,\n onApprove,\n onError,\n createOrder,\n createBillingAgreement,\n onShippingChange,\n setError\n ]);\n\n const getButtonStyle = useCallback(fundingSource => {\n let styles = {};\n switch (fundingSource) {\n case paypal.FUNDING.PAYPAL:\n styles = buttonStyles.paypal;\n break;\n case paypal.FUNDING.PAYLATER:\n styles = buttonStyles.paylater;\n break;\n case paypal.FUNDING.CREDIT:\n const colors = ['black', 'white'];\n const color = colors.includes(buttonStyles.paylater.color) ? buttonStyles.paylater.color : 'darkblue';\n styles = {...buttonStyles.paylater, color};\n break;\n case paypal.FUNDING.CARD:\n styles = buttonStyles.card;\n break;\n case paypal.FUNDING.VENMO:\n styles = buttonStyles.venmo;\n break;\n }\n return styles;\n }, [paypal, buttonStyles]);\n\n const isCheckoutFlow = useCallback(() => !vault, [vault]);\n\n const onApprove = useCallback(async (data, actions) => {\n const paymentData = {\n order: {},\n orderId: data.orderID,\n billingToken: data.billingToken || '',\n billingTokenData: null\n }\n if (data.billingToken) {\n try {\n paymentData.billingTokenData = await handleBillingToken(data.billingToken);\n setPaymentData(paymentData);\n } catch (error) {\n setError(error);\n }\n } else {\n actions.order.get().then(response => {\n setPaymentData({...paymentData, order: response});\n }).catch(error => {\n setError(error);\n });\n }\n }, [setError, handleBillingToken]);\n\n const onShippingChange = useCallback((data, actions) => {\n const shippingData = currentShippingData.current;\n const {setSelectedRates} = shippingData;\n const intermediateAddress = convertPayPalAddressToCart(data?.shipping_address || {}, true);\n const selectedShippingOption = data?.selected_shipping_option?.id || '';\n return apiFetch({\n method: 'POST',\n url: getRestPath('wc-ppcp/v1/cart/shipping'),\n data: {\n order_id: data.orderID,\n address: intermediateAddress,\n shipping_method: extractShippingMethod(selectedShippingOption),\n payment_method: 'ppcp'\n }\n }).then(response => {\n if (response.code) {\n return actions.reject();\n } else {\n return actions.resolve();\n }\n }).catch(error => {\n return actions.reject();\n }).finally(() => {\n if (selectedShippingOption) {\n setSelectedRates(...extractShippingRateParams(selectedShippingOption))\n }\n })\n }, []);\n\n const onError = useCallback(error => {\n if (error?.message?.indexOf('Window is closed') > -1) {\n return;\n }\n if (error?.code === 'validation_errors') {\n setError(error.data.errors[0]);\n } else {\n setError(error);\n }\n }, [setError]);\n\n const createOrder = useCallback(async (data, actions) => {\n const {needsShipping, shippingAddress} = currentShippingData.current;\n const {billingAddress, email} = currentBilling.current;\n try {\n const response = await apiFetch({\n method: 'POST',\n url: getRestPath('wc-ppcp/v1/cart/order'),\n data: {\n payment_method: 'ppcp',\n address_provided: !isExpress && needsShipping,\n checkout_blocks: true,\n context: !isExpress ? 'checkout' : null,\n ...(needsShipping ? {\n shipping_first_name: shippingAddress.first_name,\n shipping_last_name: shippingAddress.last_name,\n shipping_address_1: shippingAddress.address_1,\n shipping_address_2: shippingAddress.address_2,\n shipping_postcode: shippingAddress.postcode,\n shipping_city: shippingAddress.city,\n shipping_state: shippingAddress.state,\n shipping_country: shippingAddress.country\n } : null),\n ...{\n billing_first_name: billingAddress.first_name,\n billing_last_name: billingAddress.last_name,\n billing_address_1: billingAddress.address_1,\n billing_address_2: billingAddress.address_2,\n billing_postcode: billingAddress.postcode,\n billing_city: billingAddress.city,\n billing_state: billingAddress.state,\n billing_country: billingAddress.country,\n billing_email: billingAddress.email,\n billing_phone: billingAddress.phone,\n billing_company: billingAddress.company\n }\n }\n });\n return response;\n } catch (error) {\n console.log(error.message);\n throw error;\n }\n }, []);\n\n const createBillingAgreement = useCallback((data, actions) => {\n return apiFetch({\n method: 'POST',\n url: getRestPath('/wc-ppcp/v1/billing-agreement/token'),\n data: {\n context: !isExpress ? 'checkout' : null,\n payment_method: 'ppcp',\n }\n }).then(token => {\n return token;\n }).catch(error => setError(error));\n }, [isExpress, setError]);\n\n const handleBillingToken = useCallback(async (billingToken) => {\n try {\n return apiFetch({\n method: 'GET',\n path: `/wc-ppcp/v1/billing-agreement/token/${billingToken}`\n });\n } catch (error) {\n throw error;\n }\n }, []);\n\n return {getOptions};\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\nimport {convertPayPalAddressToCart, extractFullName} from \"@ppcp/utils\";\nimport {isEmpty} from 'lodash';\nimport {getSetting} from '@woocommerce/settings';\nimport {\n DEFAULT_BILLING_ADDRESS,\n DEFAULT_SHIPPING_ADDRESS\n} from \"../../../utils\";\n\nexport const useProcessPayment = (\n {\n isExpress,\n onSubmit,\n billingData,\n shippingData,\n onPaymentSetup,\n responseTypes,\n activePaymentMethod,\n paymentMethodId\n }) => {\n const [paymentData, setPaymentData] = useState(null);\n const currentPaymentData = useRef(null);\n const currentBillingData = useRef(null);\n const currentShippingData = useRef(null);\n\n useEffect(() => {\n currentPaymentData.current = paymentData;\n currentBillingData.current = billingData;\n currentShippingData.current = shippingData;\n });\n\n useEffect(() => {\n if (!isEmpty(paymentData)) {\n onSubmit();\n }\n }, [paymentData, onSubmit]);\n\n const convertOrderDataToAddress = useCallback((order) => {\n const {needsShipping} = currentShippingData.current;\n let address = {};\n if (!isEmpty(order?.payer?.address?.address_line_1)) {\n address = convertPayPalAddressToCart(order.payer.address);\n } else if (needsShipping && !isEmpty(order?.purchase_units?.[0]?.shipping)) {\n const shipping = order.purchase_units[0].shipping;\n address = convertPayPalAddressToCart(shipping.address);\n }\n if (order?.payer?.name) {\n address = {...address, ...extractName(order.payer.name)};\n }\n if (order?.payer?.email_address && isExpress) {\n // only override email address if express checkout is being used\n address = {...address, email: order.payer.email_address};\n }\n if (order?.payer?.phone?.phone_number?.national_number) {\n address = {...address, phone: order.payer.phone.phone_number.national_number};\n }\n return address;\n }, []);\n\n const convertBillingTokenToAddress = useCallback((data, type = 'billing') => {\n let address = {};\n const {needsShipping} = currentShippingData.current;\n if (type === 'billing') {\n if (data?.payer_info?.billing_address) {\n address = convertPayPalAddressToCart(data.payer_info.billing_address);\n }\n } else {\n if (needsShipping && data.shipping_address) {\n address = convertPayPalAddressToCart(data.shipping_address);\n }\n }\n if (data?.payer_info?.first_name) {\n address = {...address, first_name: data.payer_info.first_name};\n }\n if (data?.payer_info?.last_name) {\n address = {...address, last_name: data.payer_info.last_name};\n }\n if (data?.payer_info?.email && isExpress) {\n address = {...address, email: data.payer_info.email};\n }\n if (data?.payer_info?.phone) {\n address = {...address, phone: data.payer_info.phone};\n }\n return address;\n }, []);\n\n const extractName = useCallback((name) => {\n let first_name, last_name;\n if (Array.isArray(name)) {\n [first_name, last_name] = name;\n } else {\n ({given_name: first_name, surname: last_name} = name);\n }\n return {first_name, last_name};\n }, []);\n\n const convertShippingAddress = useCallback(order => {\n let address = {};\n if (order?.purchase_units?.[0]?.shipping) {\n const shipping = order.purchase_units[0].shipping;\n address = convertPayPalAddressToCart(shipping.address);\n if (shipping?.name?.full_name) {\n const name = extractFullName(shipping.name.full_name);\n address = {...address, ...extractName(name)};\n }\n }\n return address;\n }, []);\n\n useEffect(() => {\n if (activePaymentMethod === paymentMethodId) {\n const unsubscribe = onPaymentSetup(() => {\n const billingData = currentBillingData.current;\n const shippingData = currentShippingData.current;\n const {shippingAddress, needsShipping} = shippingData;\n const {orderId, billingToken, billingTokenData = null, order = {}} = currentPaymentData.current;\n const response = {\n meta: {\n paymentMethodData: {\n ppcp_paypal_order_id: orderId,\n ppcp_billing_token: billingToken\n },\n billingAddress: {\n ...DEFAULT_BILLING_ADDRESS,\n ...billingData,\n ...convertOrderDataToAddress(order),\n ...(billingTokenData && convertBillingTokenToAddress(billingTokenData))\n }\n }\n }\n if (needsShipping) {\n response.meta.shippingAddress = {\n ...DEFAULT_SHIPPING_ADDRESS,\n ...shippingAddress,\n ...convertShippingAddress(order),\n ...(billingTokenData && convertBillingTokenToAddress(billingTokenData, 'shipping'))\n }\n }\n return {type: responseTypes.SUCCESS, ...response};\n });\n\n return () => unsubscribe();\n }\n }, [onPaymentSetup, activePaymentMethod]);\n\n return {paymentData, setPaymentData};\n}","import {useState, useCallback} from '@wordpress/element';\nimport {registerPaymentMethod, registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSetting} from '@woocommerce/settings';\nimport {__} from '@wordpress/i18n';\nimport SimplePayPal from './simple-paypal';\nimport {useBreakpointWidth, useLoadPayPalScript} from \"../../hooks\";\nimport {usePayPalOptions, usePayPalFundingSources, useProcessPayment, useValidateCheckout} from \"./hooks\";\nimport './styles.scss';\nimport {useProcessPaymentFailure} from \"../../hooks\";\nimport {isCartPage, isCheckoutPage} from \"../../utils\";\n\nconst getData = (key) => {\n const data = getSetting(key);\n return (key, defaultValue = null) => {\n if (!data.hasOwnProperty(key)) {\n data[key] = defaultValue;\n }\n return data[key];\n };\n}\n\nconst data = getData('ppcp_data');\nconst generalData = getData('ppcpGeneralData');\n\nconst isExpressEnabled = () => {\n const sections = ['paypalSections', 'payLaterSections', 'creditCardSections', 'venmoSections'];\n for (const section of sections) {\n if (data(section, []).includes('express_checkout')) {\n return true;\n }\n }\n return false;\n}\n\nconst isCartEnabled = () => data('paypalSections').includes('cart');\n\nconst ExpressPaymentMethod = ({context = 'express_checkout', ...props}) => {\n return <PayPalPaymentMethod\n context={context}\n isExpress={true}\n paymentMethodId='paymentplugins_ppcp_express'\n {...props}/>;\n}\n\nconst PayPalPaymentMethod = (\n {\n isExpress = false,\n context,\n billing,\n shippingData,\n eventRegistration,\n emitResponse,\n onError,\n onClick,\n onClose,\n onSubmit,\n activePaymentMethod,\n paymentMethodId,\n ...props\n }) => {\n const [error, setError] = useState(false);\n const queryParams = getSetting('paypalQueryParams');\n const vault = queryParams.vault === 'true';\n const {billingData} = billing;\n const {\n onPaymentSetup,\n onCheckoutFail,\n onCheckoutValidation\n } = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const [buttonsContainer, setButtonsContainer] = useState();\n\n useBreakpointWidth({width: 375, node: buttonsContainer});\n\n if (!isExpress) {\n onError = useCallback((error) => {\n setError(error?.message ? error.message : error);\n }, []);\n }\n\n const setButtonContainerRef = useCallback(el => {\n setButtonsContainer(el?.parentElement?.parentElement);\n }, []);\n\n const {paymentData, setPaymentData} = useProcessPayment({\n isExpress,\n onSubmit,\n billingData,\n shippingData,\n onPaymentSetup,\n responseTypes,\n activePaymentMethod,\n paymentMethodId\n });\n\n useProcessPaymentFailure({\n event: onCheckoutFail,\n responseTypes,\n messageContext: isExpress ? noticeContexts.EXPRESS_PAYMENTS : noticeContexts.PAYMENTS,\n setPaymentData\n });\n\n useValidateCheckout({\n isExpress,\n onCheckoutValidation,\n paymentData\n });\n\n const paypal = useLoadPayPalScript(queryParams);\n\n const {getOptions} = usePayPalOptions({\n isExpress,\n paypal,\n vault,\n intent: queryParams.intent,\n buttonStyles: data('buttons'),\n billing,\n shippingData,\n eventRegistration,\n setError: onError,\n setPaymentData,\n onClick,\n onClose\n });\n const sources = usePayPalFundingSources({\n data,\n paypal,\n context,\n vault\n });\n const cancelPayment = e => {\n e.preventDefault();\n setPaymentData(null);\n }\n\n if (!isExpress && paymentData) {\n return (\n <>\n <div className={'wc-ppcp-order-review__message'}>\n {__('Your PayPal payment method is ready to be processed. Please review your order details then click Place Order',\n 'pymntpl-paypal-woocommerce')}\n </div>\n <a href={'#'} onClick={cancelPayment} className={'wc-ppcp-cancel__payment'}>{__('Cancel', 'pymntpl-paypal-woocommerce')}</a>\n </>\n );\n }\n if (paypal && sources) {\n const Button = paypal.Buttons.driver(\"react\", {React, ReactDOM});\n const BUTTONS = sources.map(source => {\n const options = getOptions(source);\n const button = paypal.Buttons(options);\n return button.isEligible() ? <Button key={source} {...options}/> : null;\n });\n return (\n <>\n {!isExpress && <ErrorMessage msg={error}/>}\n <div className='wc-ppcp-paypal__buttons' ref={setButtonContainerRef}>\n {BUTTONS}\n </div>\n </>\n );\n }\n return null;\n}\n\nconst PaymentMethodLabel = ({components, title, icons, id}) => {\n if (!Array.isArray(icons)) {\n icons = [icons];\n }\n const {PaymentMethodLabel: Label, PaymentMethodIcons} = components;\n return (\n <div className={`wc-ppcp-blocks-payment-method__label ${id}`}>\n <Label text={title}/>\n <PaymentMethodIcons icons={icons}/>\n </div>\n )\n};\n\nconst ErrorMessage = ({msg}) => {\n if (msg) {\n return (\n <div className={'wc-ppcp-error__message'} dangerouslySetInnerHTML={{__html: msg}}/>\n )\n }\n return null;\n}\n\nif ((isCartPage() && isCartEnabled()) || (isCheckoutPage() && isExpressEnabled())) {\n let context = 'express_checkout';\n if (isCartPage()) {\n context = 'cart';\n }\n registerExpressPaymentMethod({\n name: 'paymentplugins_ppcp_express',\n canMakePayment: () => true,\n content: <ExpressPaymentMethod context={context}/>,\n edit: <ExpressPaymentMethod context={context}/>,\n supports: {\n features: data('features')\n }\n });\n}\n\nif (isCheckoutPage()) {\n if (data('placeOrderButtonEnabled')) {\n registerPaymentMethod({\n name: 'ppcp',\n label: <PaymentMethodLabel\n id='ppcp'\n title={data('title')}\n icons={data('icons')}/>,\n ariaLabel: 'PayPal',\n canMakePayment: () => true,\n content: <SimplePayPal data={data}/>,\n edit: <SimplePayPal data={data}/>,\n placeOrderButtonLabel: data('i18n').buttonLabel,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: data('features')\n }\n });\n } else {\n registerPaymentMethod({\n name: 'ppcp',\n label: <PaymentMethodLabel\n id='ppcp'\n title={data('title')}\n icons={data('icons')}/>,\n ariaLabel: 'PayPal',\n canMakePayment: () => true,\n content: <PayPalPaymentMethod context={'checkout'} paymentMethodId={'ppcp'}/>,\n edit: <PayPalPaymentMethod context={'checkout'} paymentMethodId={'ppcp'}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: data('features')\n }\n });\n }\n}\n\n\n\n","import {useEffect} from '@wordpress/element';\nimport {__} from '@wordpress/i18n';\n\nexport const useValidateCheckout = (\n {\n isExpress,\n paymentData,\n onCheckoutValidation\n }) => {\n useEffect(() => {\n if (!isExpress) {\n const unsubscribe = onCheckoutValidation(() => {\n // validate that the order has been created.\n if (!paymentData?.orderId) {\n return {\n errorMessage: __('Please click the PayPal button before placing your order.', 'pymntpl-paypal-woocommerce')\n }\n }\n return true;\n });\n return unsubscribe;\n }\n }, [isExpress, paymentData]);\n}","import {useEffect, useState} from '@wordpress/element';\n\nexport const usePayPalFundingSources = ({data, paypal, context, vault = false}) => {\n const [sources, setSources] = useState(false);\n useEffect(() => {\n if (paypal) {\n let sources = [];\n const buttonOrder = data('buttonOrder', []);\n if (context === 'express_checkout') {\n if (data('paypalSections', []).includes(context)) {\n sources.push(paypal.FUNDING.PAYPAL);\n }\n } else {\n sources.push(paypal.FUNDING.PAYPAL);\n }\n if (data('payLaterEnabled') && data('payLaterSections', []).includes(context)) {\n if (vault) {\n sources.push(paypal.FUNDING.CREDIT)\n } else {\n sources.push(paypal.FUNDING.PAYLATER)\n }\n }\n if (data('cardEnabled') && data('creditCardSections', []).includes(context)) {\n sources.push(paypal.FUNDING.CARD)\n }\n if (data('venmoEnabled') && data('venmoSections', []).includes(context)) {\n sources.push(paypal.FUNDING.VENMO);\n }\n sources.sort((a, b) => {\n return buttonOrder.indexOf(a) < buttonOrder.indexOf(b) ? -1 : 1;\n });\n setSources([...sources]);\n }\n }, [paypal]);\n\n return sources;\n}","import {SHIPPING_OPTION_REGEX} from '@ppcp/utils';\nimport {getSetting} from '@woocommerce/settings';\n\nexport const getShippingOptionId = (packageId, rateId) => `${packageId}:${rateId}`;\n\nexport const getSelectedShippingOptionId = (shippingRates) => {\n let shippingOption = '';\n shippingRates.forEach((shippingPackage, idx) => {\n shippingPackage.shipping_rates.forEach(rate => {\n if (rate.selected) {\n shippingOption = getShippingOptionId(idx, rate.rate_id);\n }\n });\n });\n return shippingOption;\n}\n\nexport const extractShippingRateParams = (id) => {\n const result = id.match(SHIPPING_OPTION_REGEX);\n if (result) {\n const {1: packageIdx, 2: rate} = result;\n return [rate, packageIdx];\n }\n return [];\n}\n\nexport const removeNumberPrecision = (value, unit) => {\n return value / 10 ** unit;\n}\n\nexport const hasShippingOptions = (shippingRates) => shippingRates.map(rate => rate?.shipping_rates.length > 0).filter(Boolean).length > 0;\n\nexport const createPatchRequest = ({billing, shippingData, selectedShippingOption = null}) => {\n const {shippingRates} = shippingData;\n const {currency, cartTotal, cartTotalItems} = billing;\n return [\n {\n 'op': 'replace',\n 'path': '/purchase_units/@reference_id==\\'default\\'/amount',\n 'value': {\n currency_code: currency.code,\n value: removeNumberPrecision(cartTotal.value, currency.minorUnit),\n breakdown: getAmountBreakdown(cartTotalItems, currency)\n }\n },\n {\n 'op': !selectedShippingOption ? 'add' : 'replace',\n 'path': '/purchase_units/@reference_id==\\'default\\'/shipping/options',\n 'value': getFormattedShippingOptions(shippingRates)\n }\n ];\n};\n\nexport const getAmountBreakdown = (cartTotalItems, currency) => {\n const breakdown = {\n item_total: 0\n };\n for (const cartItem of cartTotalItems) {\n switch (cartItem.key) {\n case 'total_items':\n case 'total_fees':\n breakdown.item_total += cartItem.value;\n break;\n case 'total_discount':\n breakdown.discount = getBreakdownItem(cartItem, currency);\n break;\n case 'total_shipping':\n breakdown.shipping = getBreakdownItem(cartItem, currency)\n break;\n case 'total_tax':\n breakdown.tax_total = getBreakdownItem(cartItem, currency)\n break;\n }\n }\n breakdown.item_total = {\n value: removeNumberPrecision(breakdown.item_total, currency.minorUnit),\n currency_code: currency.code\n };\n return breakdown;\n}\n\nexport const getFormattedShippingOptions = (shippingRates) => {\n let options = [];\n shippingRates.forEach((shippingPackage, idx) => {\n let rates = shippingPackage.shipping_rates.map(rate => {\n let txt = document.createElement('textarea');\n txt.innerHTML = rate.name;\n return {\n id: getShippingOptionId(idx, rate.rate_id),\n label: txt.value,\n type: 'SHIPPING',\n selected: rate.selected,\n amount: {\n value: removeNumberPrecision(rate.price, rate.currency_minor_unit),\n currency_code: rate.currency_code\n }\n }\n });\n options = [...options, ...rates];\n });\n return options;\n}\n\nexport const getBreakdownItem = (cartItem, currency) => {\n return {\n value: removeNumberPrecision(cartItem.value, currency.minorUnit),\n currency_code: currency.code\n }\n}\nexport const getFormattedCartItems = (cartTotalItems, currency) => {\n return cartTotalItems.map(cartItem => getFormattedCartItem(cartItem, currency));\n}\n\nexport const getFormattedCartItem = (cartItem, currency) => ({\n name: cartItem.label,\n unit_amount: {\n value: removeNumberPrecision(cartItem.value, currency.minorUnit),\n currency_code: currency.code\n },\n quantity: 1\n})\n\n/**\n * Returns a rest route in ajax form given a route path.\n * @param path\n * @returns {*}\n */\nexport const getRestPath = (path) => {\n path = path.replace(/^\\//, '');\n return getSetting('ppcpGeneralData')?.ajaxRestPath?.replace('%s', path);\n}\n\nexport const isUserAdmin = () => getSetting('ppcpGeneralData')?.isAdmin\n\nconst getLocaleFields = (country) => {\n const countryLocale = getSetting('countryLocale', {});\n let localeFields = {...countryLocale.default};\n if (country && countryLocale.hasOwnProperty(country)) {\n localeFields = Object.entries(countryLocale[country]).reduce((locale, [key, value]) => {\n locale[key] = {...locale[key], ...value}\n return locale;\n }, localeFields);\n }\n return localeFields;\n}\n\nexport const isAddressValid = (address, exclude = []) => {\n const fields = getLocaleFields(address.country);\n for (const [key, value] of Object.entries(address)) {\n if (!exclude.includes(key) && fields?.[key] && fields[key].required) {\n if (isEmpty(value)) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * Returns true if the provided value is empty.\n * @param value\n * @returns {boolean}\n */\nconst isEmpty = (value) => {\n if (typeof value === 'string') {\n return value.length == 0 || value == '';\n }\n if (Array.isArray(value)) {\n return array.length == 0;\n }\n if (typeof value === 'object') {\n return Object.keys(value).length == 0;\n }\n if (typeof value === 'undefined') {\n return true;\n }\n return true;\n}\n\nexport const isCartPage = () => {\n return getSetting('ppcpGeneralData').context === 'cart';\n}\n\nexport const isCheckoutPage = () => {\n return getSetting('ppcpGeneralData').context === 'checkout';\n}\n\nexport const DEFAULT_SHIPPING_ADDRESS = {\n 'first_name': '',\n 'last_name': '',\n 'company': '',\n 'address_1': '',\n 'address_2': '',\n 'city': '',\n 'state': '',\n 'postcode': '',\n 'country': '',\n 'phone': '',\n}\n\nexport const DEFAULT_BILLING_ADDRESS = {\n ...DEFAULT_SHIPPING_ADDRESS,\n 'email': ''\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}"],"names":["useLoadPayPalScript","params","useState","paypal","setPayPal","useEffect","loadPayPalSdk","then","useProcessPaymentFailure","event","responseTypes","messageContext","setPaymentData","unsubscribe","data","processingResponse","paymentDetails","ppcpErrorMessage","message","type","ERROR","useBreakpointWidth","width","node","className","window","innerWidth","windowWidth","setWindowWidth","element","setElement","handleResize","addEventListener","removeEventListener","clientWidth","classList","add","remove","getSetting","PayLaterMessaging","cart","isEnabled","extensions","context","enabled","el","useRef","cartTotals","currency","currency_code","total_price","options","useMemo","amount","currency_minor_unit","placement","Messages","render","current","TotalsWrapper","ref","registerPlugin","ExperimentalOrderMeta","scope","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","PayPalRedirectNotice","src","dangerouslySetInnerHTML","__html","redirectText","props","getData","defaultValue","ExpressPaymentMethod","PayPalPaymentMethod","isExpress","paymentMethodId","billing","shippingData","eventRegistration","emitResponse","onError","onClick","onClose","onSubmit","activePaymentMethod","error","setError","queryParams","vault","billingData","onPaymentSetup","onCheckoutFail","onCheckoutValidation","noticeContexts","buttonsContainer","setButtonsContainer","useCallback","setButtonContainerRef","parentElement","paymentData","currentPaymentData","currentBillingData","currentShippingData","isEmpty","convertOrderDataToAddress","order","needsShipping","address","payer","address_line_1","purchase_units","shipping","convertPayPalAddressToCart","name","extractName","email_address","email","phone","phone_number","national_number","convertBillingTokenToAddress","payer_info","billing_address","shipping_address","first_name","last_name","Array","isArray","given_name","surname","convertShippingAddress","full_name","extractFullName","shippingAddress","orderId","billingToken","billingTokenData","response","meta","paymentMethodData","ppcp_paypal_order_id","ppcp_billing_token","billingAddress","DEFAULT_BILLING_ADDRESS","DEFAULT_SHIPPING_ADDRESS","SUCCESS","useProcessPayment","EXPRESS_PAYMENTS","PAYMENTS","errorMessage","__","useValidateCheckout","buttonStyles","currentBilling","currentData","buttonState","actions","keys","forEach","disable","getOptions","fundingSource","style","getButtonStyle","onApprove","onCancel","onInit","isCheckoutFlow","createOrder","onShippingChange","createBillingAgreement","styles","FUNDING","PAYPAL","PAYLATER","paylater","CREDIT","color","includes","CARD","card","VENMO","venmo","orderID","handleBillingToken","get","catch","setSelectedRates","intermediateAddress","selectedShippingOption","selected_shipping_option","id","apiFetch","method","url","getRestPath","order_id","shipping_method","extractShippingMethod","payment_method","code","reject","resolve","finally","extractShippingRateParams","errors","address_provided","checkout_blocks","shipping_first_name","shipping_last_name","shipping_address_1","address_1","shipping_address_2","address_2","shipping_postcode","postcode","shipping_city","city","shipping_state","state","shipping_country","country","billing_first_name","billing_last_name","billing_address_1","billing_address_2","billing_postcode","billing_city","billing_state","billing_country","billing_email","billing_phone","billing_company","company","console","log","token","path","usePayPalOptions","intent","sources","setSources","buttonOrder","push","sort","a","b","usePayPalFundingSources","href","e","preventDefault","Button","Buttons","driver","React","ReactDOM","BUTTONS","map","isEligible","ErrorMessage","msg","PaymentMethodLabel","components","title","icons","Label","PaymentMethodIcons","text","isCartPage","isCheckoutPage","isExpressEnabled","registerExpressPaymentMethod","canMakePayment","content","edit","supports","features","registerPaymentMethod","label","ariaLabel","placeOrderButtonLabel","buttonLabel","showSavedCards","showSaveOption","result","match","SHIPPING_OPTION_REGEX","packageIdx","replace","ajaxRestPath","_arrayLikeToArray","arr","len","arr2","_arrayWithoutHoles","asyncGeneratorStep","gen","_next","_throw","arg","info","value","done","Promise","_asyncToGenerator","fn","self","args","err","undefined","_defineProperty","obj","defineProperty","enumerable","configurable","writable","_iterableToArray","iter","Symbol","iterator","from","_nonIterableSpread","TypeError","_objectWithoutPropertiesLoose","sourceKeys","_slicedToArray","_i","_s","_e","_arr","_n","_d","next","unsupportedIterableToArray","_toConsumableArray","_unsupportedIterableToArray","o","minLen","n","toString","slice","constructor","test"],"sourceRoot":""}