{"version":3,"file":"blocks-commons.js","mappings":"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","sources":["webpack://wcPPCP/./packages/blocks/assets/js/blocks/checkout/frontend.js","webpack://wcPPCP/./packages/blocks/assets/js/blocks/checkout/block.js","webpack://wcPPCP/./packages/blocks/assets/js/components/PaymentMethodCard.js","webpack://wcPPCP/./packages/blocks/assets/js/hooks/use-load-paypal-script.js","webpack://wcPPCP/./packages/blocks/assets/js/hooks/use-payment-method-notices.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/./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-paypal-funding-sources.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/utils.js"],"sourcesContent":["import {registerCheckoutBlock} from '@woocommerce/blocks-checkout';\n\nimport metadata from './block.json';\nimport {Block} from './block';\n\nregisterCheckoutBlock({\n    metadata,\n    component: Block\n});","import {useState, useEffect, useCallback} from \"@wordpress/element\";\nimport {useSelect, dispatch} from '@wordpress/data';\nimport {PAYMENT_STORE_KEY} from '@woocommerce/block-data';\nimport {getSetting} from '@woocommerce/settings';\n\nexport const Block = ({checkoutExtensionData, extensions}) => {\n    const {createErrorNotice} = dispatch('core/notices');\n    const {\n        __internalSetActivePaymentMethod: setActivePaymentMethod\n    } = dispatch(PAYMENT_STORE_KEY);\n\n    const data = getSetting('ppcp_data');\n\n    useEffect(() => {\n        if (setActivePaymentMethod && data.errorMessage) {\n            createErrorNotice(data.errorMessage, {\n                context: 'wc/checkout'\n            });\n            setActivePaymentMethod('ppcp');\n        }\n    }, []);\n\n    return null;\n}","export const PaymentMethodCard = (\n    {\n        label,\n        icon,\n        description,\n        onCancel\n    }) => {\n    return (\n        <div className={'wc-ppcp-components-payment-card__container'}>\n            <div className={'wc-ppcp-components-payment-card__card'}>\n                <img\n                    className={'wc-ppcp-components-payment-card__icon'}\n                    alt={icon.alt}\n                    src={icon.src}/>\n                <div className={'wc-ppcp-components-payment-card__description'}>\n                    <span>{description}</span>\n                </div>\n            </div>\n            <div\n                className={'wc-ppcp-components-payment-card-cancel__container'}>\n                <span\n                    className={'wc-ppcp-components-payment-card-cancel__label'}\n                    onClick={onCancel}\n                    onClick={onCancel}>{label}</span>\n            </div>\n        </div>\n    )\n}","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 {useState, useCallback} from '@wordpress/element';\n\nexport const usePaymentMethodNotices = () => {\n    const [notices, setNotices] = useState([]);\n\n    const addNotice = useCallback((message, options, type) => {\n        setNotices(prevNotices => {\n            const {isDismissable = true} = options;\n            const notice = {\n                message,\n                options,\n                type\n            }\n            return [...prevNotices, notice];\n        });\n    }, []);\n\n    const addErrorNotice = useCallback((message, options = {}) => {\n        addNotice(message, options, 'error');\n    }, [addNotice]);\n\n    const addSuccessNotice = useCallback((message, options = {}) => {\n        addNotice(message, options, 'success');\n    }, [addNotice]);\n\n    const addInfoNotice = useCallback((message, options = {}) => {\n        addNotice(message, options, 'info');\n    }, [addNotice]);\n\n    return {\n        addErrorNotice,\n        addSuccessNotice,\n        addInfoNotice\n    }\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                    retry: true,\n                    message,\n                    messageContext\n                }\n            }\n            return null;\n        });\n        return () => {\n            unsubscribe();\n        };\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","import {useState, useEffect, useCallback} from '@wordpress/element';\nimport {PaymentMethodCard} from \"../../components\";\nimport {i18n} from \"../../utils\";\nimport {useProcessPaymentFailure} from \"../../hooks\";\n\nconst SimplePayPal = (props) => {\n    return (\n        <PayPalRedirectNotice {...props}/>\n    )\n}\n\nconst PayPalRedirectNotice = (\n    {\n        data,\n        eventRegistration,\n        activePaymentMethod,\n        emitResponse,\n        ...props\n    }) => {\n    const {onPaymentSetup, onCheckoutFail} = eventRegistration;\n    const {responseTypes, noticeContexts} = emitResponse;\n    const [paymentData, setPaymentData] = useState(data('paymentData'));\n\n    const clearPaymentData = useCallback(() => {\n        setPaymentData(null);\n    }, []);\n\n    useProcessPaymentFailure({\n        event: onCheckoutFail,\n        responseTypes,\n        messageContext: noticeContexts.CHECKOUT,\n        setPaymentData\n    });\n\n    useEffect(() => {\n        if (activePaymentMethod === 'ppcp' && paymentData) {\n            const unsubscribe = onPaymentSetup(() => {\n                const {orderId = '', billingToken = ''} = paymentData;\n                const response = {\n                    meta: {\n                        paymentMethodData: {\n                            ppcp_paypal_order_id: orderId,\n                            ppcp_billing_token: billingToken\n                        }\n                    }\n                }\n                return {\n                    type: responseTypes.SUCCESS,\n                    ...response\n                };\n            });\n            return unsubscribe;\n        }\n    }, [\n        paymentData,\n        responseTypes,\n        onPaymentSetup,\n        activePaymentMethod\n    ]);\n\n    if (paymentData && paymentData?.order) {\n        if (paymentData.billingTokenData) {\n            return (\n                <PaymentMethodCard\n                    description={paymentData.billingTokenData.payer_info.email}\n                    icon={data('icons').find(icon => icon.id === 'paypal_simple')}\n                    label={i18n.cancel}\n                    onCancel={clearPaymentData}/>\n            );\n        }\n        return (\n            <PaymentMethodCard\n                description={paymentData.order.payer.email_address}\n                icon={data('icons').find(icon => icon.id === 'paypal_simple')}\n                label={i18n.cancel}\n                onCancel={clearPaymentData}/>\n        )\n    }\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 apiFetch from '@wordpress/api-fetch';\nimport {convertPayPalAddressToCart, extractShippingMethod} from \"@ppcp/utils\";\nimport {\n    extractShippingRateParams,\n    getRestPath,\n    i18n\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: {}, error: null});\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                // 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(i18n.order_missing_address);\n                    } else {\n                        setError(i18n.order_missing_billing_address);\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 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    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 (currentData.current.error) {\n            if (currentData.current.error?.code === 'validation_errors') {\n                return setError(currentData.current.error.data.errors[0]);\n            } else {\n                return setError(currentData.current.error.message);\n            }\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            throw error;\n        }\n    }, []);\n\n    const createBillingAgreement = useCallback((data, actions) => {\n        const {needsShipping, shippingAddress} = currentShippingData.current;\n        const {billingAddress, email} = currentBilling.current;\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                ...(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        }).then(token => {\n            return token;\n        }).catch(error => {\n            currentData.current.error = error;\n        });\n    }, [isExpress, setError]);\n\n    return {getOptions};\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 {useState, useEffect, useRef, useCallback} from '@wordpress/element';\nimport {convertPayPalAddressToCart, extractFullName} from \"@ppcp/utils\";\nimport {isEmpty} from 'lodash';\nimport {\n    DEFAULT_BILLING_ADDRESS,\n    DEFAULT_SHIPPING_ADDRESS\n} from \"../../../utils\";\n\nexport const useProcessPayment = (\n    {\n        isExpress,\n        onSubmit,\n        billingAddress,\n        shippingData,\n        onPaymentSetup,\n        responseTypes,\n        activePaymentMethod,\n        paymentMethodId\n    }) => {\n    const [paymentData, updatePaymentData] = useState(null);\n    const currentPaymentData = useRef(null);\n    const currentBillingAddress = useRef(null);\n    const currentShippingData = useRef(null);\n\n    const setPaymentData = useCallback((value, submit = true) => {\n        if (value === null || value === '') {\n            updatePaymentData(null);\n        } else {\n            updatePaymentData({...value, submit});\n        }\n    }, []);\n\n    const clearPaymentData = useCallback(() => {\n        updatePaymentData(null);\n    }, []);\n\n    useEffect(() => {\n        currentPaymentData.current = paymentData;\n        currentBillingAddress.current = billingAddress;\n        currentShippingData.current = shippingData;\n    });\n\n    useEffect(() => {\n        if (!isEmpty(paymentData) && paymentData.submit) {\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 billingAddress = currentBillingAddress.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                        ...(isExpress && {\n                            billingAddress: {\n                                ...DEFAULT_BILLING_ADDRESS,\n                                ...billingAddress,\n                                ...convertOrderDataToAddress(order),\n                                ...(billingTokenData && convertBillingTokenToAddress(billingTokenData))\n                            }\n                        })\n                    }\n                }\n                if (needsShipping && isExpress) {\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    }, [\n        isExpress,\n        onPaymentSetup,\n        activePaymentMethod\n    ]);\n\n    return {\n        paymentData,\n        setPaymentData,\n        clearPaymentData\n    };\n}","import {useState, useCallback, useEffect} from '@wordpress/element';\nimport {registerPaymentMethod, registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSetting} from '@woocommerce/settings';\nimport {dispatch} from '@wordpress/data';\nimport SimplePayPal from './simple-paypal';\nimport {useBreakpointWidth, useLoadPayPalScript} from \"../../hooks\";\nimport {usePayPalOptions, usePayPalFundingSources, useProcessPayment, useValidateCheckout} from \"./hooks\";\nimport {PaymentMethodCard} from \"../../components\";\nimport './styles.scss';\nimport {useProcessPaymentFailure} from \"../../hooks\";\nimport {isCartPage, isCheckoutPage, i18n} 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 queryParams = getSetting('paypalQueryParams');\n    const vault = queryParams.vault === 'true';\n    const {billingAddress} = billing;\n    const {\n        onPaymentSetup,\n        onCheckoutFail,\n        onCheckoutValidation\n    } = eventRegistration;\n    const {responseTypes, noticeContexts} = emitResponse;\n    const [buttonsContainer, setButtonsContainer] = useState();\n    const {createErrorNotice} = dispatch('core/notices');\n\n    useBreakpointWidth({width: 375, node: buttonsContainer});\n\n    if (!isExpress) {\n        onError = useCallback((error) => {\n            createErrorNotice(error?.message ? error.message : error, {\n                context: noticeContexts.PAYMENTS\n            });\n        }, []);\n    }\n\n    const setButtonContainerRef = useCallback(el => {\n        setButtonsContainer(el?.parentElement?.parentElement);\n    }, []);\n\n    const {\n        paymentData,\n        setPaymentData,\n        clearPaymentData\n    } = useProcessPayment({\n        isExpress,\n        onSubmit,\n        billingAddress,\n        shippingData,\n        onPaymentSetup,\n        responseTypes,\n        activePaymentMethod,\n        paymentMethodId\n    });\n\n    useProcessPaymentFailure({\n        event: onCheckoutFail,\n        responseTypes,\n        messageContext: 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\n    useEffect(() => {\n        const paymentData = data('paymentData');\n        if (paymentData && paymentData.order) {\n            setPaymentData(paymentData, false);\n        }\n    }, []);\n\n    if (!isExpress && paymentData) {\n        if (paymentData.billingTokenData) {\n            return (\n                <PaymentMethodCard\n                    description={paymentData.billingTokenData.payer_info.email}\n                    icon={data('icons').find(icon => icon.id === 'paypal_simple')}\n                    label={i18n.cancel}\n                    onCancel={clearPaymentData}/>\n            );\n        }\n        return (\n            <PaymentMethodCard\n                description={paymentData.order.payer.email_address}\n                icon={data('icons').find(icon => icon.id === 'paypal_simple')}\n                label={i18n.cancel}\n                onCancel={clearPaymentData}/>\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            <div className='wc-ppcp-paypal__buttons' ref={setButtonContainerRef}>\n                {BUTTONS}\n            </div>\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\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').find(icon => icon.id === 'paypal')}/>,\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').find(icon => icon.id === 'paypal')}/>,\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 {i18n} from '../../../utils';\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: i18n.order_button_click\n                    }\n                }\n                return true;\n            });\n            return unsubscribe;\n        }\n    }, [isExpress, paymentData]);\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\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\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}\n\nexport const i18n = getSetting('ppcpGeneralData').i18n;"],"names":["registerCheckoutBlock","metadata","component","_ref","checkoutExtensionData","extensions","createErrorNotice","dispatch","setActivePaymentMethod","PAYMENT_STORE_KEY","__internalSetActivePaymentMethod","data","getSetting","useEffect","errorMessage","context","PaymentMethodCard","label","icon","description","onCancel","React","createElement","className","alt","src","onClick","useLoadPayPalScript","params","_useState2","useState","paypal","setPayPal","loadPayPalSdk","then","useProcessPaymentFailure","event","responseTypes","_ref$messageContext","messageContext","setPaymentData","unsubscribe","_data$processingRespo","_data$processingRespo2","processingResponse","paymentDetails","ppcpErrorMessage","message","type","ERROR","retry","useBreakpointWidth","width","node","_ref$className","_slicedToArray","window","innerWidth","windowWidth","setWindowWidth","_useState4","element","setElement","handleResize","addEventListener","removeEventListener","clientWidth","classList","add","remove","PayLaterMessaging","cart","isEnabled","enabled","el","useRef","cartTotals","currency","currency_code","total_price","options","useMemo","_objectSpread","amount","Math","pow","currency_minor_unit","placement","Messages","render","current","TotalsWrapper","ref","registerPlugin","ExperimentalOrderMeta","scope","PayPalRedirectNotice","eventRegistration","activePaymentMethod","emitResponse","onPaymentSetup","_objectWithoutProperties","_excluded","onCheckoutFail","noticeContexts","paymentData","clearPaymentData","useCallback","CHECKOUT","_paymentData$orderId","orderId","_paymentData$billingT","billingToken","response","meta","paymentMethodData","ppcp_paypal_order_id","ppcp_billing_token","SUCCESS","order","billingTokenData","payer_info","email","find","id","i18n","payer","email_address","dangerouslySetInnerHTML","__html","redirectText","props","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","Context","_invoke","state","method","arg","Error","undefined","done","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","_typeof","__await","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","getData","defaultValue","ExpressPaymentMethod","_ref$context","PayPalPaymentMethod","_extends","isExpress","paymentMethodId","_ref2","_ref2$isExpress","billing","shippingData","onError","onClose","onSubmit","queryParams","_excluded2","vault","billingAddress","onCheckoutValidation","buttonsContainer","setButtonsContainer","PAYMENTS","setButtonContainerRef","_el$parentElement","parentElement","_useProcessPayment","updatePaymentData","currentPaymentData","currentBillingAddress","currentShippingData","submit","isEmpty","convertOrderDataToAddress","_order$payer","_order$payer$address","_order$purchase_units","_order$purchase_units2","_order$payer2","_order$payer3","_order$payer4","_order$payer4$phone","_order$payer4$phone$p","needsShipping","address","address_line_1","purchase_units","shipping","convertPayPalAddressToCart","extractName","phone","phone_number","national_number","convertBillingTokenToAddress","_data$payer_info2","_data$payer_info3","_data$payer_info4","_data$payer_info5","_data$payer_info","billing_address","shipping_address","first_name","last_name","Array","isArray","_name","given_name","surname","convertShippingAddress","_order$purchase_units3","_order$purchase_units4","_shipping$name","full_name","extractFullName","shippingAddress","_currentPaymentData$c","_currentPaymentData$c2","_currentPaymentData$c3","DEFAULT_BILLING_ADDRESS","DEFAULT_SHIPPING_ADDRESS","useProcessPayment","useValidateCheckout","_usePayPalOptions","buttonStyles","setError","currentBilling","currentData","buttonState","actions","disable","getOptions","fundingSource","_currentShippingData$","billingData","style","getButtonStyle","onApprove","onInit","isCheckoutFlow","createOrder","onShippingChange","createBillingAgreement","styles","FUNDING","PAYPAL","PAYLATER","paylater","CREDIT","color","includes","CARD","card","VENMO","venmo","handleBillingToken","_callee","_context","apiFetch","path","concat","t0","_x","_ref3","_callee2","_context2","orderID","get","_x2","_x3","_data$selected_shippi","setSelectedRates","intermediateAddress","selectedShippingOption","selected_shipping_option","url","getRestPath","order_id","shipping_method","extractShippingMethod","payment_method","code","finally","_toConsumableArray","extractShippingRateParams","_error$message","indexOf","_currentData$current$","errors","_ref4","_callee3","_currentShippingData$2","_currentBilling$curre","_context3","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","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","_x4","_x5","_currentShippingData$3","_currentBilling$curre2","token","usePayPalOptions","intent","sources","_ref$vault","setSources","buttonOrder","sort","a","b","usePayPalFundingSources","Button","Buttons","driver","ReactDOM","BUTTONS","map","isEligible","PaymentMethodLabel","components","title","icons","Label","PaymentMethodIcons","text","isCartPage","isCheckoutPage","_i","_sections","isExpressEnabled","registerExpressPaymentMethod","canMakePayment","content","edit","supports","features","registerPaymentMethod","ariaLabel","SimplePayPal","placeOrderButtonLabel","buttonLabel","showSavedCards","showSaveOption","match","SHIPPING_OPTION_REGEX","packageIdx","_getSetting","_getSetting$ajaxRestP","replace","ajaxRestPath"],"sourceRoot":""}