{"version":3,"file":"frontend-commons.js","mappings":"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","sources":["webpack://wcPPCP/./assets/js/paylater-message/base.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://wcPPCP/./assets/js/paylater-message/cart.js","webpack://wcPPCP/./assets/js/paylater-message/checkout.js","webpack://wcPPCP/./assets/js/paylater-message/minicart.js","webpack://wcPPCP/./assets/js/paylater-message/product.js","webpack://wcPPCP/./assets/js/paylater-message/shop.js","webpack://wcPPCP/./assets/js/payments/classes/class-base-gateway.js","webpack://wcPPCP/./assets/js/payments/classes/class-checkout-gateway.js","webpack://wcPPCP/./assets/js/payments/classes/class-cart-gateway.js","webpack://wcPPCP/./assets/js/payments/classes/class-product-gateway.js","webpack://wcPPCP/./assets/js/payments/classes/class-minicart-gateway.js","webpack://wcPPCP/./assets/js/ppcp/paypal-cart.js","webpack://wcPPCP/./assets/js/ppcp/paypal-checkout.js","webpack://wcPPCP/./assets/js/ppcp/paypal-express-checkout.js","webpack://wcPPCP/./assets/js/ppcp/paypal-minicart.js","webpack://wcPPCP/./assets/js/ppcp/paypal-product.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/inherits.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/objectWithoutProperties.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://wcPPCP/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["import $ from 'jquery';\nimport {getPaymentMethod, getSetting, loadPayPalSdk} from \"@ppcp/utils\";\nimport {defaultHooks} from \"@wordpress/hooks\";\n\nclass PayLaterBaseMessage {\n\n constructor(context, {queryParams}) {\n this.context = context;\n this.queryParams = queryParams;\n defaultHooks.addAction('paypalInstanceCreated', 'wcPPCP', this.paypalInstanceCreated.bind(this));\n }\n\n paypalInstanceCreated(paypal, queryParams) {\n if (this.paypal !== paypal) {\n this.paypal = paypal;\n this.queryParams = queryParams;\n this.createMessage();\n }\n }\n\n isCheckoutFlow() {\n return this.queryParams?.vault !== 'true';\n }\n\n initialize() {\n this.createMessage();\n }\n\n createMessage() {\n const container = this.getMessageContainer();\n if (container) {\n if (this.isCheckoutFlow() && this.isActive()) {\n this.showContainer(container);\n const params = {\n amount: this.getTotal(),\n currency: this.getCurrency(),\n placement: this.getPlacement(),\n style: this.getStyleOptions(this.context),\n onRender: () => {\n this.onRender(container);\n }\n };\n this.paypal.Messages(params).render(container);\n } else {\n this.hideMessage(container);\n }\n }\n }\n\n showContainer(container) {\n $(container).closest('.wc-ppcp-paylater-msg__container').show();\n }\n\n hideMessage(container) {\n $(container).closest('.wc-ppcp-paylater-msg__container').hide();\n }\n\n getMessageContainer() {\n\n }\n\n getStyleOptions(context) {\n return getSetting('payLaterMessage')?.[context]?.style;\n }\n\n getSetting(key) {\n return getSetting('payLaterMessage')?.[key];\n }\n\n getTotal() {\n return 0;\n }\n\n getPlacement() {\n return '';\n }\n\n getCurrency() {\n return this.queryParams?.currency;\n }\n\n isActive() {\n return getSetting('payLaterMessage').enabled;\n }\n\n onRender(container) {\n const show = () => {\n const iframe = container.querySelector('[name^=\"__zoid__paypal_message\"]');\n if (iframe) {\n iframe.style.width = '100%';\n iframe.style.opacity = '1';\n }\n }\n show();\n setTimeout(show, 1000);\n }\n}\n\nexport default PayLaterBaseMessage;","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}","import $ from 'jquery';\nimport PayLaterBaseMessage from \"./base\";\nimport cart from '@ppcp/cart';\nimport {loadPayPalSdk, getPayPalQueryParams} from \"@ppcp/utils\";\n\nclass PayLaterMessageCart extends PayLaterBaseMessage {\n constructor(paypal, cart, props) {\n super('cart', props);\n this.paypal = paypal;\n this.cart = cart;\n this.initialize();\n }\n\n initialize() {\n super.initialize();\n this.cart.on('cartUpdated', this.refreshMessage.bind(this));\n }\n\n async refreshMessage() {\n this.createMessage();\n }\n\n getTotal() {\n return this.cart.getTotal();\n }\n\n getMessageContainer() {\n const location = this.getSetting('cartLocation');\n let el = document.getElementById('wc-ppcp-paylater-msg-cart');\n if (el && this.getSetting('isShortcode')) {\n return el;\n }\n switch (location) {\n case 'shop_table':\n el = document.getElementById('wc-ppcp-paylater-msg-cart');\n break;\n case 'above_button':\n el = document.getElementById('wc-ppcp-cart-button-container');\n if (el) {\n if (!$(el).find('#wc-ppcp-paylater-msg-cart')?.length) {\n $(el).prepend('
');\n }\n el = document.getElementById('wc-ppcp-paylater-msg-cart');\n }\n }\n return el;\n }\n\n getPlacement() {\n return 'cart';\n }\n}\n\nconst queryParams = getPayPalQueryParams();\n\nloadPayPalSdk(queryParams).then(paypal => {\n new PayLaterMessageCart(paypal, cart, {queryParams});\n}).catch(error => {\n});\n\nexport {PayLaterMessageCart}","import $ from 'jquery';\nimport PayLaterBaseMessage from \"./base\";\nimport {getSetting, getPayPalQueryParams, loadPayPalSdk} from \"@ppcp/utils\";\nimport cart from '@ppcp/cart';\n\nclass PayLaterMessageCheckout extends PayLaterBaseMessage {\n constructor(paypal, cart, props) {\n super('checkout', props);\n this.paypal = paypal;\n this.cart = cart;\n this.initialize();\n }\n\n initialize() {\n this.cart.on('updatedCheckout', this.createMessage.bind(this), 20);\n super.initialize();\n }\n\n getMessageContainer() {\n const fk = this.getSetting('checkoutLocation');\n let el;\n switch (fk) {\n case 'shop_table':\n el = document.getElementById('wc-ppcp-paylater-msg-checkout');\n break;\n case 'above_button':\n el = document.querySelector('.wc-ppcp-checkout-container');\n if (el) {\n $(el).find('#wc-ppcp-paylater-msg-checkout').remove();\n $(el).prepend('
');\n el = document.getElementById('wc-ppcp-paylater-msg-checkout');\n } else {\n setTimeout(this.createMessage.bind(this), 500);\n }\n }\n return el;\n }\n\n getPlacement() {\n return 'payment';\n }\n\n getTotal() {\n return this.cart.getTotal();\n }\n}\n\nlet params = null;\nconst paypalGatewayData = getSetting('ppcp_data');\n\nif (paypalGatewayData && paypalGatewayData.placeOrderEnabled) {\n params = getPayPalQueryParams();\n}\n\nloadPayPalSdk(params).then(paypal => {\n new PayLaterMessageCheckout(paypal, cart, {queryParams: getPayPalQueryParams()});\n})\n\nexport default PayLaterMessageCheckout;\n\nexport {PayLaterMessageCheckout}\n","import $ from 'jquery';\nimport PayLaterBaseMessage from \"./base\";\nimport cart from '@ppcp/cart';\nimport {loadPayPalSdk, getPayPalQueryParams} from \"@ppcp/utils\";\n\nclass PayLaterMessageMiniCart extends PayLaterBaseMessage {\n\n constructor(paypal, cart, props) {\n super('minicart', props);\n this.paypal = paypal;\n this.cart = cart;\n this.initialize();\n }\n\n initialize() {\n super.initialize();\n this.cart.on('fragmentsChanged', this.createMessage.bind(this));\n }\n\n getMessageContainer() {\n let el = null;\n $('#wc-ppcp-minicart-msg').remove();\n switch (this.getSetting('miniCartLocation')) {\n case 'cart_total':\n el = document.querySelector('.woocommerce-mini-cart__total');\n $(el).after('

');\n break;\n case 'checkout':\n el = document.querySelector('.woocommerce-mini-cart__buttons .checkout');\n $(el).after('');\n break;\n\n }\n if (el) {\n return document.getElementById('wc-ppcp-minicart-msg');\n }\n return document.querySelector('.woocommerce-mini-cart__total');\n }\n\n showContainer(container) {\n $(container).show();\n }\n\n hideMessage(container) {\n $(container).hide();\n }\n\n getTotal() {\n return this.cart.getTotal();\n }\n\n getPlacement() {\n return 'cart';\n }\n}\n\nconst queryParams = getPayPalQueryParams();\n\nloadPayPalSdk(queryParams).then(paypal => {\n new PayLaterMessageMiniCart(paypal, cart, {queryParams});\n}).catch(error => {\n});","import $ from 'jquery';\nimport PayLaterBaseMessage from \"./base\";\nimport Product from '@ppcp/product';\nimport {loadPayPalSdk, getPayPalQueryParams} from \"@ppcp/utils\";\n\nclass PayLaterMessageProduct extends PayLaterBaseMessage {\n\n constructor(paypal, product, props) {\n super('product', props);\n this.paypal = paypal;\n this.product = product;\n this.initialize();\n }\n\n initialize() {\n this.product.on('quantityChange', this.onQuantityChange.bind(this));\n this.product.on('foundVariation', this.onFoundVariation.bind(this));\n this.product.on('resetVariation', this.onResetVariation.bind(this));\n super.initialize();\n }\n\n onQuantityChange(qty) {\n this.createMessage();\n }\n\n onFoundVariation(changed) {\n this.createMessage();\n }\n\n onResetVariation(product) {\n this.createMessage();\n }\n\n getMessageContainer() {\n const el = document.getElementById('wc-ppcp-paylater-msg-product');\n if (!el) {\n $('form.checkout .shop_table').after('
');\n }\n return document.getElementById('wc-ppcp-paylater-msg-product');\n }\n\n getTotal() {\n return this.product.getTotal();\n }\n\n getPlacement() {\n return 'product';\n }\n}\n\nconst queryParams = getPayPalQueryParams();\nloadPayPalSdk(queryParams).then(paypal => {\n new PayLaterMessageProduct(paypal, new Product(), {queryParams});\n}).catch(error => {\n\n})\n\nexport default PayLaterMessageProduct;\nexport {PayLaterMessageProduct};","import $ from 'jquery';\nimport {loadPayPalSdk, getPayPalQueryParams, getSetting} from \"@ppcp/utils\";\nimport PayLaterBaseMessage from \"./base\";\n\n\nclass PayLaterMessageShop extends PayLaterBaseMessage {\n\n constructor() {\n super('shop', {queryParams: getPayPalQueryParams()});\n this.data = getSetting('payLaterMessage');\n this.initialize();\n }\n\n initialize() {\n loadPayPalSdk(getPayPalQueryParams());\n }\n\n getValidProductTypes() {\n return this.data.shop.product_types;\n }\n\n isSupportedProduct(type) {\n return this.getValidProductTypes().includes(type);\n }\n\n createMessage() {\n for (const product of this.data.shop.products) {\n if (this.isSupportedProduct(product.product_type)) {\n this.currentProduct = product;\n super.createMessage();\n }\n }\n }\n\n getMessageContainer() {\n const el = document.getElementById(`wc-ppcp-paylater-msg-${this.currentProduct.id}`);\n if (!el) {\n if (this.isBelowPrice()) {\n $(`.post-${this.currentProduct.id} .price`).after(`
`);\n } else {\n $(`.post-${this.currentProduct.id} a.button`).after(`
`);\n }\n }\n return document.getElementById(`wc-ppcp-paylater-msg-${this.currentProduct.id}`);\n }\n\n getTotal() {\n return this.currentProduct.total;\n }\n\n getPlacement() {\n return 'category';\n }\n\n isBelowPrice() {\n return this.data.shop.msgLocation === 'below_price';\n }\n\n showContainer(container) {\n $(container).show();\n }\n\n hideMessage(container) {\n $(container).hide();\n }\n\n}\n\nnew PayLaterMessageShop();\n\n","import $ from 'jquery';\nimport apiFetch from \"@wordpress/api-fetch\";\nimport {defaultHooks} from \"@wordpress/hooks\";\nimport {\n loadPayPalSdk,\n getFieldValue,\n isValidAddress,\n extractShippingMethod,\n getRestRoute,\n getRestPath,\n convertPayPalAddressToCart,\n fieldsToJson,\n extractFullName,\n getSetting,\n setFieldValue,\n isValid,\n isValidFieldValue,\n getPayPalQueryParams,\n getErrorMessage\n} from \"@ppcp/utils\";\nimport {isEmpty} from \"lodash\";\n\nclass BaseGateway {\n\n constructor({id, context, container = null}) {\n this.id = id;\n this.buttons = {};\n this.actions = {};\n this.context = context;\n this.settings = getSetting(`${id}_data`);\n this.container = container ? container : `li.payment_method_${id}`;\n this.order_field_key = `${this.id}_paypal_order_id`;\n this.billing_token_key = `${this.id}_billing_token`;\n }\n\n initialize() {\n //load the paypal script\n this.loadPayPalScript().then(() => {\n // setup required events;\n this.initializeEvents();\n // render the button\n this.createButton();\n });\n }\n\n initializeEvents() {\n\n }\n\n isActive() {\n return this.getData() !== null;\n }\n\n /**\n * Loads the PayPal JS SDK\n */\n loadPayPalScript() {\n return new Promise((resolve, reject) => {\n loadPayPalSdk(this.getPayPalSDKArgs()).then(paypal => {\n this.paypal = paypal;\n resolve();\n }).catch(error => {\n console.log(error);\n if (error?.code) {\n this.submitError(getErrorMessage(error));\n }\n reject();\n })\n })\n }\n\n /**\n * Returns params used to laod the PayPal SDK\n * @returns {{}}\n */\n getPayPalSDKArgs() {\n return getPayPalQueryParams();\n }\n\n getClientId() {\n let {clientId = null, environment} = getSetting('generalData');\n if (!clientId && environment == 'sandbox') {\n clientId = 'sb';\n }\n return clientId;\n }\n\n getData() {\n let data = $(`${this.container}`).find('.wc-ppcp-payment-method-data').data('payment-method-data');\n if (!data) {\n return null;\n }\n return data;\n }\n\n setData(data) {\n $(`${this.container}`).find('.wc-ppcp-payment-method-data').data('payment-method-data', data);\n }\n\n setOption(key, value) {\n const data = this.getData();\n if (data) {\n data[key] = value;\n this.setData(data);\n }\n }\n\n setVariable(key, value) {\n const data = getSetting(`${this.id}_data`);\n data[key] = value;\n }\n\n getVariable(key, defaultValue = null) {\n const data = getSetting(`${this.id}_data`);\n if (data.hasOwnProperty(key)) {\n return data[key];\n }\n if (defaultValue) {\n this.setVariable(key, defaultValue);\n }\n return defaultValue;\n }\n\n /**\n * Fetches an option from the payment method data object.\n * @param key\n * @param defaultValue\n * @returns {null|*}\n */\n getOption(key, defaultValue = null) {\n const data = this.getData();\n if (data.hasOwnProperty(key)) {\n return data[key];\n } else {\n if (defaultValue) {\n this.setOption(key, defaultValue);\n }\n }\n return defaultValue;\n }\n\n createButton() {\n const container = this.getButtonContainer();\n if (container && !$(container).find('.paypal-buttons').length) {\n this.getSortedFunding(this.getFunding()).forEach(source => {\n const button = this.paypal.Buttons(this.getButtonOptions(source));\n this.buttons[source] = button;\n if (button.isEligible()) {\n if (container instanceof NodeList) {\n for (const node of container) {\n button.render(node);\n }\n } else {\n button.render(container);\n }\n }\n });\n this.$button = $(container);\n defaultHooks.doAction('wcPPCPButtonCreated', this);\n }\n }\n\n getButton() {\n return this.$button;\n }\n\n destroyButtons() {\n Object.keys(this.buttons).forEach(key => {\n if (this.buttons[key]['close']) {\n this.buttons[key].close();\n }\n })\n }\n\n disableButtons() {\n Object.keys(this.actions).forEach(key => {\n this.actions[key].disable();\n });\n }\n\n enableButtons() {\n Object.keys(this.actions).forEach(key => {\n this.actions[key].enable();\n });\n }\n\n getFunding() {\n const funding = [];\n const settings = this.settings?.funding || [];\n if (this.settings?.paypal_sections?.includes(this.getPage())) {\n funding.push(paypal.FUNDING.PAYPAL);\n }\n if (settings.includes('paylater') && this.settings?.paylater_sections?.includes(this.getPage())) {\n if (this.isCheckoutFlow()) {\n funding.push(paypal.FUNDING.PAYLATER);\n }\n }\n if (settings.includes('card') && this.settings?.credit_card_sections?.includes(this.getPage())) {\n funding.push(paypal.FUNDING.CARD);\n }\n return funding;\n }\n\n isFundingActive(type) {\n return this.settings?.funding?.includes(type);\n }\n\n isSectionEnabled(type, section) {\n const key = `${type}_sections`;\n return this.settings?.[key]?.includes(section);\n }\n\n getSortedFunding(funding) {\n const sortOrder = this.settings.buttons_order || [];\n funding.sort((a, b) => {\n const indexA = sortOrder.indexOf(a);\n const indexB = sortOrder.indexOf(b);\n return indexA < indexB ? -1 : 1;\n });\n return funding;\n }\n\n getButtonContainer() {\n return null;\n }\n\n getButtonOptions(source) {\n const options = {\n fundingSource: source,\n style: this.getButtonStyle(source),\n onInit: (...args) => {\n this.onInit(source, ...args);\n $(document.body).triggerHandler('wc_ppcp_on_init', [this, source]);\n },\n onClick: (...args) => {\n this.onClick(...args);\n $(document.body).triggerHandler('wc_ppcp_on_click', [this, source]);\n },\n onApprove: (data, actions) => {\n this.onApprove(data, actions);\n $(document.body).triggerHandler('wc_ppcp_on_approve', [this, source]);\n },\n onCancel: (data) => {\n this.orderId = data.orderID;\n $(document.body).triggerHandler('wc_ppcp_on_cancel', [this, source, data]);\n },\n onError: (error) => {\n if (this.currentError) {\n this.submitError(this.currentError);\n this.currentError = null;\n } else {\n this.submitError(error);\n }\n $(document.body).triggerHandler('wc_ppcp_on_error', [this, source, error]);\n },\n onDestroy: () => {\n $(document.body).triggerHandler('wc_ppcp_on_destroy', [this, source]);\n }\n };\n if (this.isCheckoutFlow()) {\n options.createOrder = (data, actions) => {\n return this.createOrder(data, actions);\n }\n if (this.needsShipping() && source !== paypal.FUNDING.VENMO) {\n options.onShippingChange = (...args) => {\n return this.onShippingChange(...args);\n }\n }\n } else {\n options.createBillingAgreement = (...args) => {\n return this.createBillingAgreement(...args);\n }\n }\n return options;\n }\n\n needsShipping() {\n return this.getOption('needsShipping', false);\n }\n\n isCheckoutFlow() {\n return getPayPalQueryParams()?.vault !== 'true';\n }\n\n getTotal() {\n return this.getOption('total', 0);\n }\n\n getButtonStyle(source) {\n let style = null;\n switch (source) {\n case paypal.FUNDING.PAYPAL:\n style = this.settings?.buttons?.paypal;\n break;\n case paypal.FUNDING.PAYLATER:\n style = this.settings?.buttons?.paylater;\n break;\n case paypal.FUNDING.CARD:\n style = {...this.settings?.buttons?.card};\n if (style.tagline) {\n delete style.tagline;\n style.layout = 'vertical';\n } else {\n style.layout = 'horizontal';\n }\n break;\n case paypal.FUNDING.VENMO:\n const {color = '', label = '', ...venmoStyle} = this.settings?.buttons?.paypal;\n style = venmoStyle;\n break;\n }\n if (style?.height) {\n style.height = parseInt(style.height);\n }\n return style;\n }\n\n onApprove(data, actions) {\n setFieldValue(this.order_field_key, data.orderID, '');\n if (data.billingToken) {\n setFieldValue(this.billing_token_key, data.billingToken, '');\n return this.fetchBillingToken(data.billingToken).then(response => {\n this.handleBillingToken(response, data);\n }).catch(error => {\n return this.submitError(error?.message);\n });\n } else {\n actions.order.get().then((res) => {\n this.handleOnApproveResponse(data, res);\n }).catch(error => this.submitError(error));\n }\n }\n\n handleOnApproveResponse(data, response) {\n this.populateCheckoutFields(response);\n this.processCartCheckout();\n }\n\n fetchBillingToken(token) {\n return apiFetch({\n method: 'GET',\n path: `/wc-ppcp/v1/billing-agreement/token/${token}`\n });\n }\n\n handleBillingToken(token, data) {\n if (!isEmpty(token.payer_info.billing_address)) {\n this.populateBillingAddressFields(convertPayPalAddressToCart(token.payer_info.billing_address));\n }\n if (token?.payer_info?.first_name) {\n if (!isValid('billing_first_name')) {\n setFieldValue('first_name', token.payer_info.first_name, 'billing');\n }\n }\n if (token?.payer_info?.last_name) {\n if (!isValid('billing_last_name')) {\n setFieldValue('last_name', token.payer_info.last_name, 'billing');\n }\n }\n if (token?.payer_info?.email) {\n if (!isValid('billing_email')) {\n setFieldValue('billing_email', token.payer_info.email);\n }\n }\n if (token?.payer_info?.phone) {\n if (!isValid('billing_phone')) {\n setFieldValue('billing_phone', token.payer_info.phone);\n }\n }\n if (this.needsShipping() && token.shipping_address) {\n if (!isEmpty(token.shipping_address)) {\n let address = convertPayPalAddressToCart(token.shipping_address);\n this.populateNameFields(extractFullName(token.shipping_address.recipient_name), 'shipping');\n this.populateShippingAddressFields(address);\n if (!isValidAddress(this.getCartFullAddress('billing'), ['phone', 'email'])) {\n if (!isValidFieldValue(getFieldValue('billing_first_name')) && !isValidFieldValue(getFieldValue('billing_last_name'))) {\n this.populateNameFields(token.shipping_address.recipient_name, 'billing');\n }\n this.populateBillingAddressFields(address);\n }\n }\n }\n }\n\n createOrder(data, actions) {\n return actions.order.create(args);\n }\n\n createBillingAgreement(data, actions, extraData = null) {\n return apiFetch({\n method: 'POST',\n url: getRestPath('/wc-ppcp/v1/billing-agreement/token'),\n data: {\n payment_method: this.id,\n context: this.getPage(),\n ...extraData\n }\n }).then(token => {\n return token;\n }).catch(error => {\n this.currentError = error;\n })\n }\n\n onShippingChange(data, actions, extraData = {}) {\n const address = convertPayPalAddressToCart(data?.shipping_address || {}, true);\n const shipping_method = extractShippingMethod(data?.selected_shipping_option?.id || '');\n return apiFetch({\n method: 'POST',\n url: getRestRoute('cart/shipping'),\n data: {\n order_id: data.orderID,\n address,\n shipping_method,\n payment_method: this.id,\n ...extraData\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 })\n }\n\n submitError(error) {\n\n }\n\n getShippingPrefix() {\n return 'shipping';\n }\n\n getCartAddress(type) {\n return {\n address_1: getFieldValue('address_1', type),\n address_2: getFieldValue('address_2', type),\n state: getFieldValue('state', type),\n city: getFieldValue('city', type),\n postcode: getFieldValue('postcode', type),\n country: getFieldValue('country', type)\n }\n }\n\n getCartFullAddress(type) {\n return {\n first_name: getFieldValue('first_name', type),\n last_name: getFieldValue('last_name', type),\n address_1: getFieldValue('address_1', type),\n address_2: getFieldValue('address_2', type),\n state: getFieldValue('state', type),\n city: getFieldValue('city', type),\n postcode: getFieldValue('postcode', type),\n country: getFieldValue('country', type)\n }\n }\n\n onInit(source, data, actions) {\n this.actions[source] = actions;\n }\n\n onClick(data, actions) {\n\n }\n\n isPage(page) {\n return this.getPage() === page;\n }\n\n getPage() {\n let page = getSetting('generalData')?.page;\n if (page == 'cart' && $(document.body).is('.woocommerce-checkout')) {\n page = 'checkout';\n }\n return page;\n }\n\n populateShippingAddressFields(address) {\n for (let key in address) {\n setFieldValue(key, address[key], 'shipping');\n }\n }\n\n populateBillingAddressFields(address) {\n for (let key in address) {\n setFieldValue(key, address[key], 'billing');\n }\n }\n\n populateNameFields(name, prefix = '') {\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 setFieldValue('first_name', first_name, prefix);\n setFieldValue('last_name', last_name, prefix);\n }\n\n populateCheckoutFields(response) {\n if (!isEmpty(response?.payer?.address)) {\n let address = convertPayPalAddressToCart(response.payer.address);\n this.populateBillingAddressFields(address);\n }\n if (response?.payer?.name) {\n this.populateNameFields(response.payer.name, 'billing');\n }\n if (response?.payer?.email_address) {\n setFieldValue('billing_email', response.payer.email_address);\n }\n if (response?.payer?.phone?.phone_number?.national_number) {\n setFieldValue('billing_phone', response.payer.phone.phone_number.national_number);\n setFieldValue('shipping_phone', response.payer.phone.phone_number.national_number);\n }\n if (this.needsShipping() && response?.purchase_units?.[0]?.shipping) {\n const address = convertPayPalAddressToCart(response.purchase_units[0].shipping.address)\n this.populateShippingAddressFields(address);\n if (response.purchase_units[0].shipping?.name?.full_name) {\n const name = extractFullName(response.purchase_units[0].shipping.name.full_name);\n this.populateNameFields(name, 'shipping');\n }\n // add billing address if possible\n if (!isValidAddress(this.getCartFullAddress('billing'), ['phone', 'email'])) {\n this.populateBillingAddressFields(address);\n }\n }\n }\n\n processCartCheckout() {\n this.showProcessing();\n return apiFetch({\n method: 'POST',\n url: getRestRoute('cart/checkout'),\n data: this.getCartCheckoutData()\n }).then(response => {\n if (response.result && 'success' == response.result) {\n window.location = response.redirect;\n } else {\n if (response.messages) {\n return this.submitError(response.messages);\n }\n }\n }).catch(error => {\n if (error.code) {\n this.submitError(error.message);\n }\n });\n }\n\n getCartCheckoutData() {\n return {payment_method: this.id, context: this.getPage(), ...fieldsToJson()};\n }\n\n getProcessingSelector() {\n return 'body';\n }\n\n showProcessing() {\n $(this.getProcessingSelector())?.block({\n message: this.getProcessingMessage(),\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n\n hideProcessing() {\n $(this.getProcessingSelector())?.unblock();\n }\n\n getProcessingMessage() {\n return `
\n
\n
\n
\n
`;\n }\n\n getFullName(prefix) {\n const names = [\n getFieldValue('first_name', prefix),\n getFieldValue('last_name', prefix)\n ].filter(Boolean);\n if (names.length == 0) {\n return null;\n } else if (names.length == 1) {\n return names[0];\n }\n return `${names[0]} ${names[1]}`\n }\n}\n\nexport {BaseGateway};\nexport default BaseGateway;","import $ from 'jquery';\nimport BaseGateway from './class-base-gateway';\nimport {\n getFieldValue,\n submitErrorMessage,\n setFieldValue,\n convertPayPalAddressToCart,\n extractFullName,\n isValidAddress,\n isValid,\n extractShippingMethod,\n getPage\n} from \"@ppcp/utils\";\nimport {isEmpty, isEqual} from 'lodash';\n\nclass CheckoutGateway extends BaseGateway {\n\n constructor(cart, props) {\n super(props);\n this.cart = cart;\n this.shippingAddressChanged = false;\n this.initialize();\n }\n\n\n initialize() {\n super.initialize();\n this.setVariable('readyToCheckout', false);\n this.actions = {};\n this.cart.on('updatedCheckout', this.updatedCheckout.bind(this));\n $(document.body).on('payment_method_selected', this.paymentMethodSelected.bind(this));\n $(document.body).on(`checkout_place_order_${this.id}`, this.validateCheckoutFields.bind(this));\n $(document.body).on('click', '.wc-ppcp-cancel__payment', this.cancelPayment.bind(this));\n $(document.body).on('change', '[name=\"terms\"]', this.handleTermsClick.bind(this));\n $(document.body).on('change', '[type=\"checkbox\"]', this.handleCheckboxChange.bind(this));\n window.addEventListener('hashchange', this.handleHashError.bind(this));\n this.handleOrderPay();\n }\n\n needsShipping() {\n return getPage() !== 'order_pay' && this.cart.needsShipping();\n }\n\n getFunding() {\n const funding = super.getFunding();\n if (this.isFundingActive('venmo') && this.isSectionEnabled('venmo', 'checkout')) {\n funding.push(paypal.FUNDING.VENMO);\n }\n return funding;\n }\n\n updatedCheckout() {\n super.initialize();\n this.paymentMethodSelected();\n if (this.isOrderReview()) {\n this.displayPaymentReadyMessage();\n } else if (this.isReadyToCheckout()) {\n this.displayPaymentReadyMessage();\n }\n }\n\n /**\n * Method that is called when a payment method is selected\n */\n paymentMethodSelected() {\n if (this.isPaymentGatewaySelected() && !this.isReadyToCheckout()) {\n this.displayPaymentButton();\n } else {\n this.hidePaymentButton();\n }\n }\n\n handleHashError(e) {\n var match = e.newURL.match(/ppcp_error=(.*)/);\n if (match) {\n const {1: error} = match;\n if (error == 'true') {\n this.displayPaymentButton();\n history.pushState({}, '', window.location.pathname + window.location.search);\n }\n }\n }\n\n isOrderReview() {\n let match = window?.location?.search?.match(/_ppcp_order_review=(.*)/);\n return match?.length > 0;\n }\n\n handleOrderPay() {\n if (this.isOrderReview()) {\n try {\n let match = window?.location?.search?.match(/_ppcp_order_review=(.*)/);\n const {1: obj} = match;\n const {payment_method, paypal_order, fields} = JSON.parse(atob(decodeURIComponent(obj)));\n setFieldValue(this.order_field_key, paypal_order, '');\n if (!isEmpty(fields)) {\n for (let key in fields) {\n setFieldValue(key, fields[key], '');\n }\n }\n this.setVariable('readyToCheckout', true);\n this.hidePaymentButton();\n if (this.needsShipping() && $('[name=\"ship_to_different_address\"]')?.length) {\n const bool = !isEqual(this.getCartAddress('billing'), this.getCartAddress('shipping'))\n $('[name=\"ship_to_different_address\"]').prop('checked', bool).trigger('change');\n }\n } catch (error) {\n console.log(error);\n }\n }\n }\n\n createOrder(data, actions) {\n if (this.isPage('checkout')) {\n const formData = {...this.convertFormToData(), context: this.getPaymentType()};\n return this.cart.createOrder(formData);\n } else {\n return this.cart.doOrderPay(this.id);\n }\n }\n\n createBillingAgreement(data, actions, extraData = null) {\n if (this.isPage('checkout')) {\n extraData = {...this.convertFormToData(), context: this.getPaymentType()};\n }\n return super.createBillingAgreement(data, actions, extraData);\n }\n\n createButton() {\n super.createButton();\n this.paymentMethodSelected();\n }\n\n displayPaymentButton() {\n this.getButton()?.show();\n this.hidePlaceOrderButton();\n }\n\n hidePaymentButton() {\n this.getButton()?.hide();\n this.displayPlaceOrderButton();\n }\n\n displayPlaceOrderButton() {\n this.getPlaceOrderButton()?.removeClass('wc-ppcp-hide-button');\n }\n\n hidePlaceOrderButton() {\n this.getPlaceOrderButton()?.addClass('wc-ppcp-hide-button');\n }\n\n getPlaceOrderButton() {\n let $button = $('#place_order');\n if (!$button.length) {\n $button = $('[name=\"woocommerce_checkout_place_order\"]');\n }\n if (!$button.length) {\n $button = $('form.checkout button[type=\"submit\"]');\n }\n if (!$button.length) {\n $button = $('form[id=\"order_review\"] button[type=\"submit\"]');\n }\n return $button;\n }\n\n getButtonPlacement() {\n return this.settings?.buttonPlacement || 'place_order';\n }\n\n isPlaceOrderPlacement() {\n return this.getButtonPlacement() == 'place_order';\n }\n\n getButtonContainer() {\n let $parent = null;\n switch (this.getButtonPlacement()) {\n case 'place_order':\n let $checkoutContainer = $('.wc-ppcp-checkout-container');\n if (!$checkoutContainer.length) {\n this.getPlaceOrderButton().after('
');\n }\n break;\n case 'payment_method':\n $parent = $(`div.payment_method_${this.id}`);\n $('.wc-ppcp-payment-method__container').append('
');\n break;\n }\n // add container to parent;\n return document.querySelector('.wc-ppcp-checkout-container');\n }\n\n isPaymentGatewaySelected() {\n return $('[name=\"payment_method\"]:checked')?.val() === this.id;\n }\n\n submitError(error) {\n if (error?.code === 'validation_errors') {\n return submitErrorMessage(error.data.messages, this.getForm(), 'checkout');\n }\n return submitErrorMessage(error, this.getForm(), 'checkout');\n }\n\n getShippingPrefix() {\n if ($('[name=\"ship_to_different_address\"]')?.length) {\n if ($('[name=\"ship_to_different_address\"]').is(':checked')) {\n return 'shipping';\n }\n }\n return 'billing';\n }\n\n handleOnApproveResponse(data, response) {\n this.populateCheckoutFields(response);\n this.processCheckout(data, response);\n }\n\n processCheckout(data, response) {\n this.hidePaymentButton();\n this.setVariable('readyToCheckout', true);\n if (this.update_required) {\n $(document.body).one('updated_checkout', () => {\n if (data.billingToken && this.needsShipping()) {\n // show message that they can click place order\n this.displayPaymentReadyMessage();\n } else {\n this.submitCheckoutForm(response);\n }\n });\n $('[name=\"billing_country\"],[name=\"billing_state\"]').trigger('change');\n if (this.shipToDifferentAddressChecked()) {\n $('[name=\"shipping_country\"],[name=\"shipping_state\"]').trigger('change');\n }\n $(document.body).trigger('update_checkout', {update_shipping_method: false});\n } else {\n this.submitCheckoutForm(response);\n }\n }\n\n handleBillingToken(token, data) {\n this.update_required = this.isCheckoutReviewRequired(token);\n super.handleBillingToken(token);\n this.maybeShipToDifferentAddress();\n this.processCheckout(data);\n }\n\n isCheckoutReviewRequired(token) {\n if (this.needsShipping() && !this.isPayPalAddressDisabled()) {\n // if the address changed, then an update is required\n if (!isEmpty(token.shipping_address)) {\n if (!isEqual(\n {\n city: token.shipping_address.city,\n state: token.shipping_address.state,\n postal_code: token.shipping_address.postal_code,\n country_code: token.shipping_address.country_code\n },\n {\n city: getFieldValue('shipping_city'),\n state: getFieldValue('shipping_state'),\n postal_code: getFieldValue('shipping_postcode'),\n country_code: getFieldValue('shipping_country')\n }\n )) {\n return true;\n }\n }\n }\n return false;\n }\n\n populateCheckoutFields(response) {\n if (!this.isAddressPopulationDisabled() && !isEmpty(response?.payer?.address)) {\n let address = convertPayPalAddressToCart(response.payer.address);\n if (isValidAddress(address, ['first_name', 'last_name']) && !isEqual(this.getCartAddress('billing'), address)) {\n this.populateBillingAddressFields(address);\n }\n }\n if (response?.payer?.name) {\n if (!isValid('billing_first_name')) {\n this.populateNameFields(response.payer.name, 'billing');\n }\n }\n // only overwrite billing email if the field is blank\n if (response?.payer?.email_address && !isValid('billing_email')) {\n setFieldValue('billing_email', response.payer.email_address);\n }\n if (response?.payer?.phone?.phone_number?.national_number) {\n setFieldValue('billing_phone', response.payer.phone.phone_number.national_number);\n if (this.needsShipping()) {\n setFieldValue('shipping_phone', response.payer.phone.phone_number.national_number);\n }\n }\n // update the shipping address if one is included\n if (!this.isAddressPopulationDisabled() && this.needsShipping()) {\n if (!isEmpty(response?.purchase_units?.[0]?.shipping?.address)) {\n let address = convertPayPalAddressToCart(response.purchase_units[0].shipping.address);\n let name = '';\n if (!isEqual(this.cartAddress, address)) {\n this.update_required = true;\n this.cartAddress = address;\n this.populateShippingAddressFields(address);\n $(document.body).one('updated_checkout', () => this.populateShippingAddressFields(address));\n }\n if (response.purchase_units[0].shipping?.name?.full_name) {\n name = extractFullName(response.purchase_units[0].shipping.name.full_name);\n this.populateNameFields(name, 'shipping');\n }\n // add billing address if possible\n if (!isValidAddress(this.getCartFullAddress('billing'), ['phone', 'email'])) {\n if (name && !isValid('billing_first_name') && !isValid('billing_last_name')) {\n this.populateNameFields(name, 'billing');\n }\n this.populateBillingAddressFields(address);\n }\n }\n this.maybeShipToDifferentAddress();\n }\n }\n\n maybeShipToDifferentAddress() {\n // compare billing and shipping address. If not equal, then select ship to different address\n if ($('[name=\"ship_to_different_address\"]')?.length) {\n const bool = !isEqual({\n ...this.getCartAddress('billing'),\n name: this.getFullName('billing')\n }, {...this.getCartAddress('shipping'), name: this.getFullName('shipping')})\n $('[name=\"ship_to_different_address\"]').prop('checked', bool).trigger('change');\n }\n }\n\n getForm() {\n if (this.isPage('checkout')) {\n return $(this.container).closest('form.checkout');\n } else {\n return $(this.container).closest('form');\n }\n }\n\n validateTerms() {\n if ($('[name=\"terms\"]').length) {\n return $('[name=\"terms\"]').is(':checked');\n }\n return true;\n }\n\n validateCheckoutFields() {\n if (!this.validateTerms()) {\n this.submitError({code: 'terms'});\n return false;\n }\n return true;\n }\n\n handleTermsClick() {\n if (this.isPlaceOrderPlacement()) {\n if ($('[name=\"terms\"]').length) {\n const checked = $('[name=\"terms\"]').is(':checked');\n if (checked) {\n this.enableButtons();\n } else {\n this.disableButtons();\n }\n }\n }\n }\n\n handleCheckboxChange() {\n setTimeout(this.handleTermsClick.bind(this), 250);\n }\n\n onInit(source, data, actions) {\n super.onInit(source, data, actions);\n this.handleTermsClick();\n }\n\n onClick(data, actions) {\n if (this.isPlaceOrderPlacement() && !this.validateTerms()) {\n this.submitError({code: 'terms'});\n }\n }\n\n onShippingChange(data, actions) {\n let shippingMethod;\n if (data?.selected_shipping_option?.id) {\n shippingMethod = extractShippingMethod(data.selected_shipping_option.id);\n for (let index of Object.keys(shippingMethod)) {\n const method = shippingMethod[index];\n const el = $(`[name=\"shipping_method[${index}]\"][value=\"${method}\"]`);\n if (el.length) {\n el.prop('checked', true);\n }\n }\n }\n if (data.shipping_address) {\n this.shippingAddressChanged = !isEqual(\n convertPayPalAddressToCart(data.shipping_address, true),\n {\n city: getFieldValue('shipping_city'),\n state: getFieldValue('shipping_state'),\n postcode: getFieldValue('shipping_postcode'),\n country: getFieldValue('shipping_country')\n }\n );\n }\n this.cart.trigger('checkout_on_shipping_change', data, shippingMethod, this);\n return super.onShippingChange(data, actions, this.convertFormToData());\n }\n\n shipToDifferentAddressChecked() {\n if ($('[name=\"ship_to_different_address\"]')?.length) {\n return $('[name=\"ship_to_different_address\"]').is(':checked');\n }\n return false;\n }\n\n displayPaymentReadyMessage() {\n $('.wc-ppcp-popup__container').hide();\n $('.wc-ppcp-order-review-message__container').show();\n const txt = $('.wc-ppcp-order-review__message').text().replace('%s', $('#place_order').text());\n $('.wc-ppcp-order-review__message').text(txt);\n }\n\n hidePaymentReadyMessage() {\n $('.wc-ppcp-popup__container').show();\n $('.wc-ppcp-order-review-message__container').hide();\n }\n\n /**\n * Cancels an existing payment method\n */\n cancelPayment(e) {\n e.preventDefault();\n this.setVariable('readyToCheckout', false);\n this.hidePaymentReadyMessage();\n this.displayPaymentButton();\n }\n\n getProcessingSelector() {\n return this.container;\n }\n\n getProcessingMessage() {\n return null;\n }\n\n fetchBillingToken(token) {\n this.showProcessing();\n return super.fetchBillingToken(token).then(response => {\n this.hideProcessing();\n return response;\n });\n }\n\n isReadyToCheckout() {\n return this.getVariable('readyToCheckout', false);\n }\n\n convertFormToData() {\n return $('form.checkout').serializeArray().reduce((prev, current) => ({...prev, [current.name]: current.value}), {});\n }\n\n submitCheckoutForm(order) {\n if (this.cart.applyFilters('checkout_submit_form', true, order, this)) {\n this.getForm().submit();\n }\n }\n\n getPaymentType() {\n return 'checkout';\n }\n\n isPayPalAddressDisabled() {\n return this.settings.paypalAddressDisabled;\n }\n\n isValidationEnabled() {\n return this.settings.checkoutValidationEnabled;\n }\n\n isAddressPopulationDisabled() {\n return this.isPayPalAddressDisabled() || !this.shippingAddressChanged;\n }\n}\n\nexport {\n CheckoutGateway\n}","import $ from 'jquery';\nimport BaseGateway from \"./class-base-gateway\";\nimport {\n submitErrorMessage\n} from \"@ppcp/utils\";\n\nclass CartGateway extends BaseGateway {\n\n constructor(cart, props) {\n super(props);\n this.cart = cart;\n this.initialize();\n }\n\n initialize() {\n this.cart.on('cartUpdated', this.onCartUpdated.bind(this));\n $(window).on('resize', this.doCartHtml.bind(this));\n super.initialize();\n this.doCartHtml();\n }\n\n onInit(...params) {\n super.onInit(...params);\n this.cart.trigger('cartButtonOnInit');\n }\n\n needsShipping() {\n return this.cart.needsShipping();\n }\n\n getButtonContainer() {\n return document.getElementById('wc-ppcp-cart-button-container');\n }\n\n onCartUpdated() {\n super.initialize();\n this.doCartHtml();\n }\n\n submitError(error) {\n this.hideProcessing();\n submitErrorMessage(error, 'div.woocommerce-notices-wrapper', 'checkout');\n }\n\n handleBillingToken(response) {\n super.handleBillingToken(response);\n this.processCartCheckout();\n }\n\n createOrder(data, actions) {\n return this.cart.createOrder({payment_method: this.id}).catch(error => {\n this.currentError = error;\n return error;\n });\n }\n\n doCartHtml() {\n const $button = $('.checkout-button');\n const width = $button.outerWidth();\n if (width && $('.wc-ppcp-cart-payments__container').length) {\n $('.wc-ppcp-cart-payments__container').width(width);\n }\n if ($button.css('float') !== 'none') {\n $('.wc-ppcp-cart-payments__container ').css('float', $button.css('float'));\n }\n }\n}\n\nexport {CartGateway};","import $ from 'jquery';\nimport {submitErrorMessage} from \"@ppcp/utils\";\nimport BaseGateway from \"./class-base-gateway\";\n\nclass ProductGateway extends BaseGateway {\n\n constructor(product, cart, props) {\n super(props);\n this.product = product;\n this.cart = cart;\n this.initialize();\n }\n\n initialize() {\n this.product.on('foundVariation', this.onFoundVariation.bind(this));\n this.product.on('resetVariation', this.onResetVariation.bind(this));\n this.setMaxWidth();\n super.initialize();\n }\n\n onInit(...params) {\n super.onInit(...params);\n this.cart.trigger('productButtonOnInit');\n if (this.product.isVariableProduct() && !this.product.isVariationSelected()) {\n this.disableButtons();\n }\n }\n\n setOptions(options) {\n for (let key in options) {\n this.setOption(key, options[key]);\n }\n }\n\n needsShipping() {\n return this.product.needsShipping();\n }\n\n getButtonContainer() {\n const container = document.querySelectorAll('.wc-ppcp-product-button-container');\n if (container && container.length > 0) {\n return container;\n }\n return document.getElementById('wc-ppcp-product-button-container');\n }\n\n setMaxWidth() {\n if (this.settings?.product?.button_width == 'add_to_cart') {\n this.buttonWidth = $('form.cart div.quantity').outerWidth(true) + $('.single_add_to_cart_button').outerWidth();\n var marginLeft = $('.single_add_to_cart_button').css('marginLeft');\n if (marginLeft) {\n this.buttonWidth += parseInt(marginLeft.replace('px', ''));\n }\n $(this.container).css('max-width', this.buttonWidth + 'px');\n }\n }\n\n submitError(error) {\n this.hideProcessing();\n submitErrorMessage(error, 'div.woocommerce-notices-wrapper');\n }\n\n getFunding() {\n const funding = [];\n const settings = this.settings?.funding || [];\n if (settings.includes('paypal')) {\n funding.push(paypal.FUNDING.PAYPAL);\n }\n if (settings.includes('paylater')) {\n funding.push(paypal.FUNDING.PAYLATER);\n }\n if (settings.includes('card')) {\n funding.push(paypal.FUNDING.CARD);\n }\n return this.getSortedFunding(funding);\n }\n\n addToCart() {\n return this.cart.addToCart({\n payment_method: this.id,\n product_id: this.product.getId(),\n variation_id: this.product.getVariationId(),\n qty: this.product.getQuantity(),\n variation: this.product.getVariationData()\n }).then(response => {\n if (response.code) {\n this.currentError = response;\n }\n return response;\n }).catch(err => {\n this.currentError = err;\n return this.submitError(err);\n })\n }\n\n createOrder(data, actions) {\n return this.addToCart();\n }\n\n createBillingAgreement(data, actions) {\n return this.addToCart().then(() => {\n return super.createBillingAgreement(data, actions);\n });\n }\n\n handleBillingToken(response) {\n super.handleBillingToken(response);\n this.processCartCheckout();\n }\n\n onFoundVariation(hasChanged, product) {\n if (this.hasChanged) {\n this.destroyButtons();\n this.createButton();\n } else {\n this.enableButtons();\n }\n }\n\n onResetVariation() {\n this.disableButtons();\n }\n\n enableButtons() {\n this?.$button?.removeClass('disabled');\n super.enableButtons();\n }\n\n disableButtons() {\n this?.$button?.addClass('disabled');\n super.disableButtons();\n }\n}\n\nexport {ProductGateway};","import $ from 'jquery';\nimport BaseGateway from \"./class-base-gateway\";\n\nclass MiniCartGateway extends BaseGateway {\n\n constructor(cart, props) {\n super(props);\n this.cart = cart;\n this.retryCount = 0;\n this.initialize();\n }\n\n initialize() {\n this.cart.on('fragmentsChanged', super.initialize.bind(this));\n $(document.body).on('wc_ppcp_on_destroy', this.createButton.bind(this));\n super.initialize();\n }\n\n needsShipping() {\n return this.cart.needsShipping();\n }\n\n createButton() {\n const container = this.getButtonContainer();\n if (!container && this.retryCount < 10) {\n this.retryCount += 1;\n return setTimeout(this.createButton.bind(this), 500);\n }\n super.createButton();\n }\n\n getButtonContainer() {\n const el = document.querySelectorAll(`.wc-ppcp-minicart-${this.id}`);\n if (el && el.length > 0) {\n return el;\n }\n $('.woocommerce-mini-cart__buttons').append(``);\n return document.getElementById(`wc-ppcp-minicart-${this.id}`);\n }\n\n getPage() {\n return 'minicart';\n }\n\n handleBillingToken(response) {\n super.handleBillingToken(response);\n this.processCartCheckout();\n }\n\n createOrder(data, actions) {\n return this.cart.createOrder({payment_method: this.id}).then(orderId => {\n return orderId;\n });\n }\n}\n\nexport {MiniCartGateway}","import {CartGateway} from '../payments/classes';\nimport cart from '@ppcp/cart';\n\nnew CartGateway(cart, {id: 'ppcp', context: 'cart'});\n","import {CheckoutGateway} from '../payments/classes';\nimport cart from '@ppcp/cart';\nimport {isPluginConnected} from '@ppcp/utils';\n\nif (isPluginConnected()) {\n new CheckoutGateway(cart, {id: 'ppcp', context: 'checkout'});\n}","import {CheckoutGateway, BaseGateway} from '../payments/classes';\nimport $ from 'jquery';\nimport cart from '@ppcp/cart';\n\nclass PayPalExpressCheckoutGateway extends CheckoutGateway {\n\n updatedCheckout() {\n BaseGateway.prototype.initialize.apply(this, arguments);\n this.paymentMethodSelected();\n }\n\n paymentMethodSelected() {\n\n }\n\n hidePaymentButton() {\n this.displayPlaceOrderButton();\n this.displayPaymentReadyMessage();\n const container = super.getButtonContainer();\n if (container) {\n $(container).hide();\n }\n }\n\n getButtonContainer() {\n if (this.settings?.expressElement) {\n const container = document.querySelector(this.settings.expressElement);\n if (container) {\n return container;\n }\n }\n return document.getElementById('wc-ppcp-express-button');\n }\n\n onInit(source, data, actions) {\n this.cart.trigger('expressCheckoutButtonOnInit');\n }\n\n onClick(data, actions) {\n $('[name=\"terms\"]').prop('checked', true).trigger('change');\n $(`[name=\"payment_method\"][value=\"${this.id}\"]`).prop(\"checked\", true).trigger('click');\n }\n\n getFunding() {\n const funding = [];\n if (this.isFundingActive('paypal') && this.isSectionEnabled('paypal', 'express_checkout')) {\n funding.push(paypal.FUNDING.PAYPAL);\n }\n if (this.isFundingActive('paylater') && this.isSectionEnabled('paylater', 'express_checkout')) {\n funding.push(paypal.FUNDING.PAYLATER);\n }\n if (this.isFundingActive('venmo') && this.isSectionEnabled('venmo', 'express_checkout')) {\n funding.push(paypal.FUNDING.VENMO);\n }\n if (this.isFundingActive('card') && this.isSectionEnabled('credit_card', 'express_checkout')) {\n funding.push(paypal.FUNDING.CARD);\n }\n return funding;\n }\n\n createButton() {\n super.createButton();\n this.$button?.show();\n this.addExpressClasses();\n }\n\n addExpressClasses() {\n if (this.$button) {\n const count = Object.keys(this.buttons).length;\n this.$button.addClass(`button-count_${count}`);\n }\n }\n\n getPaymentType() {\n return 'express';\n }\n\n isCheckoutReviewRequired(token) {\n return true;\n }\n}\n\nnew PayPalExpressCheckoutGateway(cart, {id: 'ppcp', context: 'checkout'});","import {MiniCartGateway} from \"../payments/classes\";\nimport cart from '@ppcp/cart';\n\nclass PaypalMinicart extends MiniCartGateway {\n\n}\n\nnew PaypalMinicart(cart, {id: 'ppcp', context: 'cart'});","import {ProductGateway} from \"../payments/classes\";\nimport Product from '@ppcp/product';\nimport cart from '@ppcp/cart';\n\nnew ProductGateway(new Product(), cart, {id: 'ppcp', context: 'product'});","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}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\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}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\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 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}","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}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\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}","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":["PayLaterBaseMessage","context","queryParams","this","defaultHooks","paypalInstanceCreated","bind","paypal","createMessage","vault","container","getMessageContainer","isCheckoutFlow","isActive","showContainer","params","amount","getTotal","currency","getCurrency","placement","getPlacement","style","getStyleOptions","onRender","Messages","render","hideMessage","$","closest","show","hide","getSetting","key","enabled","iframe","querySelector","width","opacity","setTimeout","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","PayLaterMessageCart","fn","cart","props","initialize","on","refreshMessage","self","args","arguments","apply","err","undefined","location","el","document","getElementById","find","length","prepend","getPayPalQueryParams","loadPayPalSdk","catch","PayLaterMessageCheckout","remove","paypalGatewayData","placeOrderEnabled","PayLaterMessageMiniCart","after","PayLaterMessageProduct","product","onQuantityChange","onFoundVariation","onResetVariation","qty","changed","Product","PayLaterMessageShop","data","shop","product_types","type","getValidProductTypes","includes","products","isSupportedProduct","product_type","currentProduct","id","isBelowPrice","total","msgLocation","BaseGateway","buttons","actions","settings","order_field_key","billing_token_key","loadPayPalScript","initializeEvents","createButton","getData","getPayPalSDKArgs","console","log","code","submitError","getErrorMessage","clientId","environment","setData","defaultValue","hasOwnProperty","setVariable","setOption","getButtonContainer","getSortedFunding","getFunding","forEach","source","button","Buttons","getButtonOptions","isEligible","NodeList","node","$button","Object","keys","close","disable","enable","funding","paypal_sections","getPage","push","FUNDING","PAYPAL","paylater_sections","PAYLATER","credit_card_sections","CARD","section","sortOrder","buttons_order","sort","a","b","indexOf","options","fundingSource","getButtonStyle","onInit","body","triggerHandler","onClick","onApprove","onCancel","orderId","orderID","onError","currentError","onDestroy","createOrder","needsShipping","VENMO","onShippingChange","createBillingAgreement","getOption","paylater","card","tagline","layout","color","label","height","parseInt","setFieldValue","billingToken","fetchBillingToken","response","handleBillingToken","message","order","get","res","handleOnApproveResponse","populateCheckoutFields","processCartCheckout","token","apiFetch","method","path","isEmpty","payer_info","billing_address","populateBillingAddressFields","convertPayPalAddressToCart","first_name","isValid","last_name","email","phone","shipping_address","address","populateNameFields","extractFullName","recipient_name","populateShippingAddressFields","isValidAddress","getCartFullAddress","isValidFieldValue","getFieldValue","create","extraData","url","getRestPath","payment_method","shipping_method","extractShippingMethod","selected_shipping_option","getRestRoute","order_id","address_1","address_2","state","city","postcode","country","page","is","name","prefix","Array","isArray","given_name","surname","payer","email_address","phone_number","national_number","purchase_units","shipping","full_name","showProcessing","getCartCheckoutData","result","window","redirect","messages","fieldsToJson","getProcessingSelector","block","getProcessingMessage","overlayCSS","background","unblock","names","filter","Boolean","CheckoutGateway","shippingAddressChanged","updatedCheckout","paymentMethodSelected","validateCheckoutFields","cancelPayment","handleTermsClick","handleCheckboxChange","addEventListener","handleHashError","handleOrderPay","isFundingActive","isSectionEnabled","isOrderReview","isReadyToCheckout","displayPaymentReadyMessage","isPaymentGatewaySelected","displayPaymentButton","hidePaymentButton","e","match","newURL","history","pushState","pathname","search","obj","JSON","parse","atob","decodeURIComponent","paypal_order","fields","bool","isEqual","getCartAddress","prop","trigger","isPage","formData","convertFormToData","getPaymentType","doOrderPay","getButton","hidePlaceOrderButton","displayPlaceOrderButton","getPlaceOrderButton","removeClass","addClass","buttonPlacement","getButtonPlacement","append","val","submitErrorMessage","getForm","processCheckout","update_required","one","submitCheckoutForm","shipToDifferentAddressChecked","update_shipping_method","isCheckoutReviewRequired","maybeShipToDifferentAddress","isPayPalAddressDisabled","postal_code","country_code","isAddressPopulationDisabled","cartAddress","getFullName","validateTerms","isPlaceOrderPlacement","enableButtons","disableButtons","shippingMethod","index","txt","text","replace","preventDefault","hidePaymentReadyMessage","hideProcessing","getVariable","serializeArray","reduce","prev","current","applyFilters","submit","paypalAddressDisabled","checkoutValidationEnabled","CartGateway","onCartUpdated","doCartHtml","outerWidth","css","ProductGateway","setMaxWidth","isVariableProduct","isVariationSelected","querySelectorAll","button_width","buttonWidth","marginLeft","addToCart","product_id","getId","variation_id","getVariationId","getQuantity","variation","getVariationData","hasChanged","destroyButtons","MiniCartGateway","retryCount","isPluginConnected","PayPalExpressCheckoutGateway","expressElement","addExpressClasses","count","PaypalMinicart","_arrayLikeToArray","arr","len","i","arr2","_arrayWithHoles","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","prototype","_defineProperty","_superPropBase","object","property","call","getPrototypeOf","_get","Reflect","receiver","base","desc","getOwnPropertyDescriptor","_getPrototypeOf","o","setPrototypeOf","__proto__","_setPrototypeOf","p","_inherits","subClass","superClass","constructor","_iterableToArrayLimit","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","_nonIterableRest","_objectWithoutProperties","excluded","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutPropertiesLoose","sourceKeys","_typeof","_possibleConstructorReturn","ReferenceError","_slicedToArray","_unsupportedIterableToArray","minLen","n","toString","slice","from","test"],"sourceRoot":""}