{"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;\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 {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).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\nloadPayPalSdk().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 },\n onClick: (...args) => {\n this.onClick(...args);\n },\n onApprove: (data, actions) => {\n this.onApprove(data, actions);\n },\n onCancel: (data) => {\n this.orderId = data.orderID;\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 },\n onDestroy: () => {\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) {\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 }\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.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 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.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();\n return this.cart.createOrder(formData);\n } else {\n return this.cart.doOrderPay(this.id);\n }\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 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 super.handleBillingToken(token);\n if (this.needsShipping()) {\n this.update_required = true;\n }\n this.maybeShipToDifferentAddress();\n this.processCheckout(data);\n }\n\n populateCheckoutFields(response) {\n if (!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.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 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 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\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 }\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.initialize();\n }\n\n initialize() {\n this.cart.on('fragmentsChanged', super.initialize.bind(this));\n super.initialize();\n }\n\n needsShipping() {\n return this.cart.needsShipping();\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 const count = Object.keys(this.buttons).length;\n this.$button.addClass(`button-count_${count}`);\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","el","document","getElementById","find","length","prepend","getPayPalQueryParams","loadPayPalSdk","catch","PayLaterMessageCheckout","PayLaterMessageMiniCart","remove","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","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","url","getRestPath","payment_method","extraData","shipping_method","extractShippingMethod","selected_shipping_option","getRestRoute","order_id","address_1","address_2","state","city","postcode","country","page","body","is","name","prefix","Array","isArray","given_name","surname","payer","email_address","phone_number","national_number","purchase_units","shipping","full_name","showProcessing","getCartCheckoutData","result","window","location","redirect","messages","fieldsToJson","getProcessingSelector","block","getProcessingMessage","overlayCSS","background","unblock","names","filter","Boolean","CheckoutGateway","updatedCheckout","paymentMethodSelected","validateCheckoutFields","cancelPayment","handleTermsClick","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","doOrderPay","getButton","hidePlaceOrderButton","displayPlaceOrderButton","getPlaceOrderButton","removeClass","addClass","buttonPlacement","getButtonPlacement","append","val","submitErrorMessage","getForm","processCheckout","update_required","one","submitCheckoutForm","shipToDifferentAddressChecked","update_shipping_method","maybeShipToDifferentAddress","cartAddress","getFullName","validateTerms","isPlaceOrderPlacement","enableButtons","disableButtons","shippingMethod","index","txt","text","replace","preventDefault","hidePaymentReadyMessage","hideProcessing","getVariable","serializeArray","reduce","prev","current","applyFilters","submit","CartGateway","onCartUpdated","doCartHtml","outerWidth","css","ProductGateway","setMaxWidth","querySelectorAll","button_width","buttonWidth","marginLeft","addToCart","product_id","getId","variation_id","getVariationId","getQuantity","variation","getVariationData","hasChanged","destroyButtons","MiniCartGateway","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":""}