{"version":3,"file":"int_braintree/cartridge/static/default/js/int_braintree.min.js","mappings":"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","sources":["webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/alertHandler.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/apma.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/alerthandler/applePayAlertHandlerModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/applePay.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/braintreesdk/braintreeApplePayModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/braintreesdk/braintreeApplePayModelBuilder.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/braintreesdk/braintreeApplePaySDK.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/components/applePayCart.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/components/applePayCheckout.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/components/applePayPaymentProcessing.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/constants/applePayPaymentProcessingConstants.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/constants/errorMessages.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/helpers/applePayHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/helpers/applePayPaymentProcessingHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeGeneral.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeSFRA.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeUtils.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/alertHandler/creditCardAlertHandlerModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/alertHandler/creditCardFormFieldsValidator.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/braintreesdk/braintreeCreditCardModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/braintreesdk/braintreeCreditCardModelBuilder.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/braintreesdk/braintreeCreditCardSDK.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/braintreesdk/hostedFieldsModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/components/creditCardAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/components/creditCardFields.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/components/creditCardList.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/components/creditCardPaymentProcessing.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/components/creditCardSessionAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/components/creditCardVaultManagerModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/constants/creditCardPaymentProcessingConstants.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/creditCard.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/helpers/braintreeCreditCardSdkHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/helpers/creditCardAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/helpers/creditCardBillingAddressHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/helpers/creditCardFormFieldsHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/helpers/creditCardHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/helpers/creditCardPaymentProcessingHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/helpers/creditCardSessionAccountHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/alerthandler/googlePayAlertHandlerModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/braintreesdk/braintreeGooglePayModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/braintreesdk/braintreeGooglePayModelBuilder.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/braintreesdk/braintreeGooglePaySDK.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/components/googlePayCart.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/components/googlePayCheckout.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/components/googlePayList.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/components/googlePayPaymentProcessing.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/components/googlePaySessionAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/constants/errorMessages.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/constants/googlePayPaymentProcessingConstants.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/googlePay.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/helpers/googlePayHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/helpers/googlePayPaymentProcessingHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/helpers/googlePaySDKHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/helper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/loaderHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/alerthandler/lpmAlertHandlerModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/braintreesdk/braintreeLpmModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/braintreesdk/braintreeLpmModelBuilder.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/braintreesdk/braintreeLpmSDK.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/components/lpmPaymentProcessing.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/constants/errorMessages.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/helpers/lpmHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/helpers/lpmPaymentProcessorHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/lpm.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/local/lpmFallBack.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paymentMethodGeneral.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paymentMethodGeneralHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/alerthandler/paypalAlertHandlerModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/braintreesdk/braintreePayPalSDK.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/apmaPage.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/connectWithPayPal.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalAccountPage.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalButtonDisplayBehavior.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalCartPage.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalCheckoutPage.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalList.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalMiniCartPage.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalProductPage.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalProductViewPage.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalSessionAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/components/payPalStoredBillingAddress.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/helpers/payPalAccountModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/helpers/payPalAccountPage.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/helpers/payPalBillingFormHelperGlobal.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/helpers/payPalCheckoutModelHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/helpers/payPalExpressModelHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/helpers/payPalListHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/helpers/payPalProductPageModelHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/helpers/payPalRequestsHelperGlobal.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/helpers/payPalSessionAccountHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/models/apma.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/models/payPalAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/models/payPalBaseModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/models/payPalCartModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/models/payPalCheckoutModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/models/payPalExpressModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/models/payPalProductModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/models/payPalScriptLoading.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/payPal.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/alerthandler/srcAlertHandlerModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/braintreesdk/braintreeSrcSDK.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/components/srcAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/components/srcCart.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/components/srcCheckout.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/components/srcList.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/components/srcSessionAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/constants/srcConstants.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/helpers/srcButtonHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/helpers/srcHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/helpers/srcListHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/helpers/srcPaymentProcessingHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/models/srcAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/models/srcBaseModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/models/srcCartModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/models/srcCheckoutModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/src/src.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/alerthandler/venmoAlertHandlerModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/braintreesdk/braintreeVenmoModel.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/braintreesdk/braintreeVenmoModelBuilder.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/braintreesdk/braintreeVenmoSDK.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/components/venmoAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/components/venmoBillingAddress.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/components/venmoButton.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/components/venmoCheckout.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/components/venmoList.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/components/venmoProcessing.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/components/venmoSessionAccount.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/constants/venmoConstants.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/helpers/venmoHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/helpers/venmoProcessingHelper.js","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/venmo.js","webpack://int_braintree/./cartridges/int_braintree_ext/cartridge/client/default/js/braintree/creditcard/braintreesdk/braintreeCreditCardSDK.js","webpack://int_braintree/./cartridges/int_braintree_ext/cartridge/client/default/js/braintree/creditcard/braintreesdk/hostedFieldsModel.js","webpack://int_braintree/./cartridges/int_braintree_ext/cartridge/client/default/js/braintree/creditcard/helpers/creditCardFormFieldsHelper.js","webpack://int_braintree/./cartridges/int_braintree_ext/cartridge/client/default/js/braintree/creditcard/helpers/creditCardPaymentProcessingHelper.js","webpack://int_braintree/./cartridges/int_braintree_ext/cartridge/client/default/js/braintree/helper.js","webpack://int_braintree/./cartridges/int_braintree_ext/cartridge/client/default/js/braintree/paymentMethodGeneral.js","webpack://int_braintree/../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js","webpack://int_braintree/../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js","webpack://int_braintree/../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/product/base.js","webpack://int_braintree/webpack/bootstrap","webpack://int_braintree/./cartridges/int_braintree/cartridge/client/default/js/int_braintree.js"],"sourcesContent":["'use strict';\n\n/**\n * Alert handler model\n */\nclass AlertHandlerModel {\n constructor() {\n this.$flashMessagesContainer = document.querySelector('.js-flash-messages-container');\n this.$alertTemplate = document.querySelector('.js-alert-template');\n }\n\n /**\n * Creates an alert message\n * @param {string} alertMessage alert message\n * @param {string} alertType alert type, i.e. danger, warning, info etc\n */\n createAlertMessage(alertMessage, alertType) {\n const $alertContainer = this.$alertTemplate.cloneNode(true);\n\n $alertContainer.classList.add(`alert-${alertType}`, 'show');\n $alertContainer.classList.remove('d-none');\n\n $alertContainer.append(alertMessage);\n this.$flashMessagesContainer.append($alertContainer);\n }\n\n /**\n * ---- General method which should be used for cases when error came from Braintree ----\n * Shows an error notification by message\n * @param {string} errorMessage message to display inside error notification\n */\n showError(errorMessage) {\n this.createAlertMessage(errorMessage, window.braintreeConstants.FLASH_MESSAGE_DANGER);\n }\n\n /**\n * ---- General method which should be used for cases when error came from Braintree ----\n * Shows an error notification by error Object from BT\n * NOTE this.alertMessages come from a child class that has alertMessages as an argument\n * @param {Object} error error object from BT\n * @param {Object} errorMessages object with error messages\n */\n showBraintreeError(error, errorMessages) {\n const message = error.message;\n const errorCode = error.code;\n const alertMessages = errorMessages || this.alertMessages;\n const errorMessage = alertMessages[errorCode] || message || alertMessages.CLIENT_GATEWAY_NETWORK;\n\n this.showError(errorMessage);\n }\n\n /**\n * Shows a warning message\n * @param {string} warningMessage warning message\n */\n showWarning(warningMessage) {\n this.createAlertMessage(warningMessage, window.braintreeConstants.FLASH_MESSAGE_WARNING);\n }\n\n /**\n * Shows a warning message\n * @param {string} infoMessage warning message\n */\n showInfo(infoMessage) {\n this.createAlertMessage(infoMessage, window.braintreeConstants.FLASH_MESSAGE_INFO);\n }\n\n /**\n * Hides alert messages that are created by AlertHandler model\n */\n hideAlerts() {\n const $alertContainers = document.querySelectorAll('.js-alert-template');\n\n $alertContainers.forEach((element) => element.classList.add('d-none'));\n }\n\n /**\n * Hides alert messages that are created by FlashMessages controller\n */\n hideControllerCreatedAlerts() {\n const $alertContainers = document.querySelectorAll('.js-alert-dismissible');\n\n $alertContainers.forEach((element) => element.classList.add('d-none'));\n }\n}\n\nmodule.exports = AlertHandlerModel;\n","'use strict';\n\n/**\n * Inits APMA functionality\n */\nfunction init() {\n const payPalBusinessLogic = require('./paypal/payPal');\n const paymentMethodGeneral = require('./paymentMethodGeneral');\n\n payPalBusinessLogic.init(paymentMethodGeneral.createGeneralClientInstancePromise());\n payPalBusinessLogic.initAPMA(paymentMethodGeneral.createGeneralClientInstancePromise());\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst AlertHandlerModel = require('../../alertHandler');\n\n/**\n * ApplePay alert handler model\n */\nclass ApplePayAlertHandlerModel extends AlertHandlerModel {\n constructor(alertMessages) {\n super();\n this.alertMessages = alertMessages;\n }\n\n /**\n * Handles an error by type\n * @param {Object} error Error object or error message\n */\n handleApplePayError(error) {\n if (error.name === 'BraintreeError') {\n this.showBraintreeError(error);\n } else {\n this.showError(error.message);\n }\n }\n}\n\nmodule.exports = ApplePayAlertHandlerModel;\n","'use strict';\n\nconst braintreeApplePayModelBuilder = require('./braintreesdk/braintreeApplePayModelBuilder');\nconst applePayPaymentProcessing = require('./components/applePayPaymentProcessing');\nconst applePayErrorMessages = require('./constants/errorMessages');\n\nconst AlertHandlerModel = require('./alerthandler/applePayAlertHandlerModel');\n\nlet braintreeApplePayModelResponse;\nlet applePayMessages;\n\n/**\n * Inits Apple Pay payment processing on Cart/Checkout Page\n */\nfunction initApplePay() {\n const alertHandler = new AlertHandlerModel(applePayMessages);\n\n if (!braintreeApplePayModelResponse || braintreeApplePayModelResponse.error) {\n const error = braintreeApplePayModelResponse.error || applePayErrorMessages.NO_APPLE_PAY_BRAINTREE_CONFIGURATIONS;\n\n alertHandler.handleApplePayError(error);\n }\n\n applePayPaymentProcessing.init(braintreeApplePayModelResponse.btApplePayModel,\n alertHandler);\n}\n\n/**\n * Inits Apple Pay on the Cart/Billing-Checkout Pages\n */\nfunction init() {\n braintreeApplePayModelResponse = braintreeApplePayModelBuilder.init();\n\n if (!braintreeApplePayModelResponse.error) {\n applePayMessages = braintreeApplePayModelResponse.btApplePayConfigs.messages;\n }\n}\n\nmodule.exports = {\n init,\n initApplePay\n};\n","'use strict';\n\n/* global Promise braintree $ */\n\nconst applePayErrorMessages = require('../constants/errorMessages');\n\nconst braintreeApplePaySDK = require('./braintreeApplePaySDK');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst helper = require('../../helper');\n\n// Global variables\n// Is Froud tools enabled\nlet isFtEnabled;\nlet btClientInstancePromise;\nlet apInstance;\nlet amount;\n\n/**\n * Init braintree Apple Pay model\n * @param {Promise} braintreeClientInstancePromise Braintree client instance promise\n * @param {boolean} isFraudToolsEnabled Is fraud tools enabled value\n */\nfunction init(braintreeClientInstancePromise, isFraudToolsEnabled) {\n braintreeApplePaySDK.init(braintreeClientInstancePromise);\n\n btClientInstancePromise = braintreeClientInstancePromise;\n isFtEnabled = isFraudToolsEnabled;\n}\n\n/**\n * Returns fraud data from dataCollector payload\n * @returns {Object} Payload with fraud data\n */\nfunction collectFraudData() {\n let response;\n\n if (isFtEnabled) {\n response = braintreeGeneral.collectFraudData(btClientInstancePromise);\n } else {\n response = Promise.resolve({\n customMessage: applePayErrorMessages.FRAUD_DATA_CELLECTION_ISNOT_ENABLED\n });\n }\n\n return response;\n}\n\n/**\n * Preparing Apple Pay payment\n * @param {Object} ApplePaySession Apple Pay session\n * @returns {Promise} Promise with 'canMakePayments' boolean value\n */\nfunction initApplePay(ApplePaySession) {\n return braintreeApplePaySDK.createApplePayPayment()\n .then(function(applePayInstance) {\n apInstance = applePayInstance;\n\n return ApplePaySession.canMakePaymentsWithActiveCard(applePayInstance.merchantIdentifier);\n });\n}\n\n/**\n * Merges a payment request with Braintree defaults to return an {external:ApplePayPaymentRequest}\n * @param {Object} applePayConfigs Apple Pay config object\n * @returns {Object} Payment request object\n */\nfunction createPaymentDataRequest(applePayConfigs) {\n return braintreeApplePaySDK.createPaymentDataRequest(apInstance, applePayConfigs, amount);\n}\n\n/**\n * Validates merchant website, as required by ApplePaySession before payment can be authorized\n * @param {Object} sessionEvent Apple Pay session event\n * @param {Object} applePayConfigs Apple Pay config object\n * @returns {Promise} Promise with merchant session\n */\nfunction onValidateMerchant(sessionEvent, applePayConfigs) {\n return braintreeApplePaySDK.performValidation(apInstance, sessionEvent, applePayConfigs);\n}\n\n/**\n * Tokenizes an Apple Pay payment\n * @param {Object} sessionEvent Apple Pay session event\n * @returns {Promise} Promise with tokenized payload\n */\nfunction onPaymentAuthorized(sessionEvent) {\n return braintreeApplePaySDK.tokenize(apInstance, sessionEvent);\n}\n\n/**\n * Adds shipping methods based on the address\n * @param {Object} sessionEvent Apple Pay session event\n * @param {Object} applePayConfigs Apple Pay config object\n * @returns {Promise} Promise with applicable shipping options\n */\nasync function onShippingContactSelected(sessionEvent, applePayConfigs) {\n const shippingAddress = sessionEvent.shippingContact;\n const city = shippingAddress.locality;\n const stateCode = shippingAddress.administrativeArea;\n const countryCode = shippingAddress.countryCode;\n const postalCode = shippingAddress.postalCode;\n const addressQueryString = `city=${city}&stateCode=${stateCode}&countryCode=${countryCode}&postalCode=${postalCode}`;\n const paymentMethodId = window.braintreeConstants.PAYMENT_METHOD_ID_APPLEPAY;\n const url = `${window.braintreeUrls.getApplicableShippingOptions}?paymentMethodId=${paymentMethodId}&${addressQueryString}`;\n\n const shippingOptions = await helper.getApplicableShippingOptions(url);\n\n return {\n newTotal: {\n label: applePayConfigs.options.displayName,\n amount: amount\n },\n newShippingMethods: shippingOptions\n };\n}\n\n/**\n * Updates price based on a selected shipping method\n * @param {Object} sessionEvent Apple Pay session event\n * @param {Object} applePayConfigs Apple Pay config object\n * @returns {Promise} Promise with new order amount\n */\nasync function onShippingMethodSelected(sessionEvent, applePayConfigs) {\n const newShippingMethod = sessionEvent.shippingMethod;\n const shippingOptionId = newShippingMethod.identifier;\n\n const updatedAmount = await helper.updateAmountForShippingOption(shippingOptionId);\n\n return {\n newTotal: {\n label: applePayConfigs.options.displayName,\n amount: updatedAmount\n }\n };\n}\n\n/**\n * Update order amount\n * @param {Object} applePayConfigs Apple Pay config object\n */\nfunction updateApplePayAmount(applePayConfigs) {\n fetch(helper.getUrlWithCsrfToken(applePayConfigs.getOrderInfoUrl))\n .then((response) => response.json())\n .then((data) => {\n amount = data.amount;\n })\n .catch(() => window.location.reload());\n}\n\nmodule.exports = {\n init,\n collectFraudData,\n initApplePay,\n createPaymentDataRequest,\n onValidateMerchant,\n onPaymentAuthorized,\n updateApplePayAmount,\n onShippingContactSelected,\n onShippingMethodSelected\n};\n","'use strict';\n\nconst applePayHelper = require('../helpers/applePayHelper');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst braintreeApplePayModel = require('./braintreeApplePayModel');\n\nconst applePayErrorMessages = require('../constants/errorMessages');\n\n/**\n * Initialize Braintree Apple Pay Model. Pattern Builder is used\n * @returns {Object} Object with booleam \"error\" flag and \"message\" attribute with error message\n */\nfunction init() {\n const braintreeApplePayConfigs = applePayHelper.getBraintreeApplePayConfigs();\n const response = {\n error: false,\n message: '',\n btApplePayModel: null,\n btApplePayConfigs: null\n };\n\n let clientToken;\n let btClientInstancePromise;\n\n if (braintreeApplePayConfigs) {\n clientToken = braintreeApplePayConfigs.clientToken;\n btClientInstancePromise = braintreeGeneral.createClientInstance(clientToken);\n\n braintreeApplePayModel.init(btClientInstancePromise,\n braintreeApplePayConfigs.isFraudToolsEnabled);\n\n response.btApplePayModel = braintreeApplePayModel;\n response.btApplePayConfigs = braintreeApplePayConfigs;\n } else {\n response.error = true;\n response.message = applePayErrorMessages.NO_APPLE_PAY_BRAINTREE_CONFIGURATIONS;\n }\n\n return response;\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\n/* global braintreeUtils braintree $ */\n\nlet btClientInstancePromise;\n\n/**\n * Creates Apple Pay payment instance\n * @returns {Promise} A promise resolve with the Apple Pay instance\n */\n\nfunction createApplePayPayment() {\n return btClientInstancePromise\n .then(function(btClientInstance) {\n return braintree.applePay.create({\n client: btClientInstance\n });\n });\n}\n\n/**\n * Creates a configuration object for creation an Apple Pay session\n * @param {applePayInstance} applePayInstance Apple Pay instance\n * @param {Object} applePayConfigs Apple Pay configs object\n * @param {number} amount Order total amount\n * @returns {Object} Configuration object\n */\nfunction createPaymentDataRequest(applePayInstance, applePayConfigs, amount) {\n return applePayInstance.createPaymentRequest({\n total: {\n label: applePayConfigs.options.displayName,\n amount: amount\n }\n });\n}\n\n/**\n * Validates merchant website, as required by Apple Pay Session before payment can be authorized\n * @param {applePayInstance} applePayInstance Apple Pay instance\n * @param {Object} sessionEvent Apple Pay session event\n * @param {Object} applePayConfigs Apple Pay configs object\n * @returns {Promise} Promise that resolve with 'merchantSession'\n */\nfunction performValidation(applePayInstance, sessionEvent, applePayConfigs) {\n return applePayInstance.performValidation({\n validationURL: sessionEvent.validationURL,\n displayName: applePayConfigs.options.displayName\n });\n}\n\n/**\n * Tokenizes an Apple Pay payment\n * @param {applePayInstance} applePayInstance Apple pay instance\n * @param {Object} sessionEvent Apple pay session event\n * @returns {Promise} Promise that resolve with 'tokenizePayload'\n */\nfunction tokenize(applePayInstance, sessionEvent) {\n return applePayInstance.tokenize({\n token: sessionEvent.payment.token\n });\n}\n\n/**\n * Inits braintreeApplePaySDK with client instance promise\n * @param {Promise} braintreeClientInstancePromise Braintree client instance promise\n */\n\nfunction init(braintreeClientInstancePromise) {\n btClientInstancePromise = braintreeClientInstancePromise;\n}\n\nmodule.exports = {\n createApplePayPayment,\n createPaymentDataRequest,\n performValidation,\n tokenize,\n init\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst paymentMethodGeneral = require('../../paymentMethodGeneral');\nconst $applePayButton = document.querySelector('.js-braintree-applepay-button');\n\nlet paymentData;\nlet $braintreeCartButtons;\nlet applePayCheckoutFormData;\nlet alertHandler;\n\n/**\n * Expends Apple Pay Checkout Form with required data\n */\nfunction expandApplePayCheckoutFormData() {\n const $csrfToken = document.querySelector('.js-braintree-cart-buttons-wrap #csrf_token');\n\n applePayCheckoutFormData.append($csrfToken.name, $csrfToken.value);\n applePayCheckoutFormData.append('braintreeApplePayNonce', paymentData.nonce);\n applePayCheckoutFormData.append('braintreeApplePayDeviceDataInput', paymentData.deviceData);\n applePayCheckoutFormData.append('braintreeApplePayShippingAddress',\n JSON.stringify(paymentData.shippingAddress) || '{}');\n applePayCheckoutFormData.append('braintreeApplePayBillingAddress',\n JSON.stringify(paymentData.billingAddress) || '{}');\n}\n\n/**\n * Process Apple Pay on the Cart Page\n */\nfunction processCartFlow() {\n const billingAddressData = paymentData.billingAddress;\n const paymentMethodName = helper.tryParseJSON($applePayButton.getAttribute('data-braintree-config')).paymentMethodName;\n const placeOrderUrl = window.braintreeUrls.placeOrderUrl;\n const checkoutSubmitPayment = window.braintreeUrls.checkoutSubmitPayment;\n const checkoutFormFields = $braintreeCartButtons.getAttribute('data-checkout-form-fields');\n const paymentFieldData = helper.getPaymentFieldsData(billingAddressData, paymentMethodName);\n\n applePayCheckoutFormData = helper.createPaymentFormData(checkoutFormFields, paymentFieldData);\n applePayCheckoutFormData.append('pageFlowCart', true);\n expandApplePayCheckoutFormData();\n // submit customer form with email (CheckoutServices-SubmitCustomer)\n // as we skip step \"login via guest/registered user\" while express checkout\n // email is set only in case of guest checkout and if email is not already set\n paymentMethodGeneral.submitCustomerForm(billingAddressData.email);\n\n fetch(helper.getUrlWithCsrfToken(checkoutSubmitPayment), {\n method: 'POST',\n body: applePayCheckoutFormData\n })\n .then((response) => response.json())\n .then((data) => {\n if (!helper.handleSubmitPaymentErrors(data, alertHandler)) {\n window.location.href = placeOrderUrl;\n }\n })\n .catch((error) => {\n if (error && error.redirectUrl) {\n window.location.href = error.redirectUrl;\n }\n });\n}\n\n/**\n * Inits Apple Pay Cart components\n * @param {Object} data Apple Pay payment data\n * @param {Constructor} alertHandlingModel Alert handling model\n */\nfunction init(data, alertHandlingModel) {\n paymentData = data;\n $braintreeCartButtons = document.querySelector('.js-braintree-cart-buttons-wrap');\n $applePayButton.setAttribute('data-is-inited', true);\n alertHandler = alertHandlingModel;\n\n processCartFlow();\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\nlet paymentData;\n\n/**\n * Process Apple Pay on the Checkout page\n */\nfunction processCheckoutFlow() {\n document.getElementById(('braintreeApplePayNonce')).value = paymentData.nonce;\n document.getElementById(('braintreeApplePayBillingAddress')).value = JSON.stringify(paymentData.billingAddress);\n\n // Updating Storefront Billing Form data with ApplePay Billing\n const storeFrontBillingData = helper.getUpdatedStoreFrontBillingData(paymentData.billingAddress);\n\n helper.updateBillingFormValues(storeFrontBillingData);\n}\n\n/**\n * Inits Apple Pay checkout components\n * @param {Object} data Apple Pay payment data\n */\nfunction init(data) {\n paymentData = data;\n\n processCheckoutFlow();\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\n/* global braintreeUtils braintree $ ApplePaySession */\n\n// Helpers\nconst loaderInstance = require('../../loaderHelper');\nconst applePayHelper = require('../helpers/applePayHelper');\nconst applePayPaymentProcessingHelper = require('../helpers/applePayPaymentProcessingHelper');\nconst helper = require('../../helper');\n\nconst applePayPaymentProcessingConstants = require('../constants/applePayPaymentProcessingConstants');\n\n// Components\nconst applePayCart = require('./applePayCart');\nconst applePayCheckout = require('./applePayCheckout');\n\nconst $braintreeApplePayLoader = document.querySelector('.js-braintree-applepay-loader');\nconst $applePayButtonContainer = document.querySelector('.js-braintree-applepay-button');\n\nconst $continueButton = document.querySelector('button.submit-payment');\nconst applePayEnabledOnCheckout = Boolean(document.querySelector('.js-braintree-applepay-content'));\n\n// global variables\nlet loader;\nlet applePayModel;\nlet applePayButtonConfig;\nlet alertHandler;\n\n/**\n * Functionality over tokenized payment\n * @param {Object} paymentData Apple Pay payment data\n */\nfunction onTokenizedPayment(paymentData) {\n const applePayFlow = applePayPaymentProcessingHelper.getApplePayFlowId();\n\n helper.removeActiveSessionPayment();\n\n switch (applePayFlow) {\n case applePayPaymentProcessingConstants.FLOW_CHECKOUT_NAME:\n applePayCheckout.init(paymentData);\n $continueButton.click();\n\n break;\n case applePayPaymentProcessingConstants.FLOW_CART_NAME:\n applePayCart.init(paymentData, alertHandler);\n\n break;\n default:\n break;\n }\n}\n\n/**\n * Creates Apple Pay session. Opens and processes Apple Pay payment window.\n */\nasync function createApplePaySession() {\n // Updates order amount for paymentDataRequest\n await applePayModel.updateApplePayAmount(applePayButtonConfig);\n\n // Creates a configuration object for creating Apple pay session\n const paymentDataRequest = applePayModel.createPaymentDataRequest(applePayButtonConfig);\n\n if (applePayButtonConfig.isRequiredBillingContactFields) {\n paymentDataRequest.requiredBillingContactFields = ['postalAddress', 'name'];\n }\n\n if (applePayButtonConfig.isRequiredShippingContactFields) {\n paymentDataRequest.requiredShippingContactFields = ['postalAddress', 'name', 'phone', 'email'];\n }\n\n // Creates new Apple Pay session\n const session = new ApplePaySession(1, paymentDataRequest);\n const applePayFlow = applePayPaymentProcessingHelper.getApplePayFlowId();\n\n if (applePayFlow === applePayPaymentProcessingConstants.FLOW_CART_NAME) {\n // Adds shipping methods based on the address\n session.onshippingcontactselected = function(event) {\n applePayModel.onShippingContactSelected(event, applePayButtonConfig)\n .then((applePayShippingContactUpdate) => {\n session.completeShippingContactSelection(applePayShippingContactUpdate);\n })\n .catch((error) => {\n alertHandler.handleApplePayError(error);\n session.abort();\n });\n };\n\n // Updates price based on a selected shipping method\n session.onshippingmethodselected = function(event) {\n applePayModel.onShippingMethodSelected(event, applePayButtonConfig)\n .then((applePayShippingMethodUpdate) => {\n session.completeShippingMethodSelection(applePayShippingMethodUpdate);\n })\n .catch((error) => {\n alertHandler.handleApplePayError(error);\n session.abort();\n });\n };\n }\n\n // Validates merchant website\n session.onvalidatemerchant = function(event) {\n applePayModel.onValidateMerchant(event, applePayButtonConfig)\n .then(function(merchantSession) {\n session.completeMerchantValidation(merchantSession);\n })\n .catch(function(error) {\n alertHandler.handleApplePayError(error);\n session.abort();\n });\n };\n\n // Tokenizes an Apple Pay payment\n session.onpaymentauthorized = function(event) {\n loader.show();\n\n applePayModel.onPaymentAuthorized(event)\n .then(function(tokenizedPayload) {\n session.completePayment(ApplePaySession.STATUS_SUCCESS);\n\n const TokenizedPaymentData = applePayPaymentProcessingHelper.getTokenizedPaymentData(event, tokenizedPayload);\n\n onTokenizedPayment(TokenizedPaymentData);\n\n loader.hide();\n })\n .catch(function(error) {\n session.completePayment(ApplePaySession.STATUS_FAILURE);\n loader.hide();\n alertHandler.handleApplePayError(error);\n });\n };\n\n session.begin();\n}\n\n/**\n * Call back function to be resolved when Apple Pay payment button is clicked\n */\nfunction onApplePayButtonClick() {\n alertHandler.hideAlerts();\n\n // Billing flow\n if (applePayEnabledOnCheckout) {\n // Validates email and phone fields on the Billing page\n if (applePayHelper.validateBillingFields()) {\n createApplePaySession();\n }\n // Cart flow\n } else {\n createApplePaySession();\n }\n}\n\n/**\n * Init and add Apple Pay on the Cart or Billing page\n */\nfunction initApplePay() {\n loader.show();\n\n const result = applePayModel.collectFraudData()\n .then(function(fraudDataPayload) {\n applePayHelper.setApplePayDeviceData(fraudDataPayload);\n loader.hide();\n\n return applePayModel.initApplePay(ApplePaySession)\n .then(function(canMakePayments) {\n loader.hide();\n applePayHelper.renderApplePayButton(applePayButtonConfig.applePayConfig.style);\n\n if (!canMakePayments) {\n applePayHelper.makeApplePayButtonDisabled();\n } else {\n const $applePayBtn = document.getElementById('apple-pay-btn');\n\n $applePayBtn.addEventListener('click', onApplePayButtonClick);\n }\n });\n });\n\n result\n .catch(function(error) {\n loader.hide();\n alertHandler.handleApplePayError(error);\n });\n}\n\n/**\n * Inits Apple Pay payment processing components\n * @param {Object} braintreeApplePayModel Apple Pay model\n * @param {Constructor} alertHandlingModel Alert handling model\n */\nfunction init(braintreeApplePayModel, alertHandlingModel) {\n loader = loaderInstance($braintreeApplePayLoader);\n applePayModel = braintreeApplePayModel;\n applePayButtonConfig = helper.tryParseJSON($applePayButtonContainer.getAttribute('data-braintree-config'));\n alertHandler = alertHandlingModel;\n\n if (window.ApplePaySession) {\n initApplePay();\n } else {\n applePayHelper.hideApplePayTab();\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nmodule.exports = {\n FLOW_CHECKOUT_NAME: 'checkout',\n FLOW_CART_NAME: 'cart'\n};\n","'use strict';\n\nmodule.exports = {\n NO_APPLE_PAY_BRAINTREE_CONFIGURATIONS: 'No Apple Pay Braintree Configurations',\n FRAUD_DATA_CELLECTION_ISNOT_ENABLED: 'Fraud Data collection isn\\t enabled via Custom Site Preference'\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst paymentMethodGeneralHelper = require('../../paymentMethodGeneralHelper');\n\nconst $applePayButton = document.querySelector('.js-braintree-applepay-button');\nconst $applepayDataMethod = document.querySelector('.payment-options[role=tablist] .nav-item[data-method-id=\"ApplePay\"]');\nconst $phoneField = document.querySelector('.contact-info-block [name=dwfrm_billing_contactInfoFields_phone]');\n\n/**\n * Returns Braintree Apple Pay configs\n * @returns {Object} Braintree Apple Pay configs\n */\nfunction getBraintreeApplePayConfigs() {\n let braintreeApplePayButtonConfigs = null;\n\n try {\n braintreeApplePayButtonConfigs = helper.tryParseJSON(document.querySelector('.js-braintree-applepay-button')\n .getAttribute('data-braintree-config'));\n } catch (error) {\n return braintreeApplePayButtonConfigs;\n }\n\n return braintreeApplePayButtonConfigs;\n}\n\n/**\n * Sets device data from 'data collector' to corresponding input field\n * @param {Object} fraudDataPayload Froud payload data\n */\n\nfunction setApplePayDeviceData(fraudDataPayload) {\n const $braintreeApplePayDeviceData = document.getElementById('braintreeApplePayDeviceData');\n\n if (fraudDataPayload.deviceData) {\n $braintreeApplePayDeviceData.value = fraudDataPayload.deviceData;\n }\n}\n\n/**\n * Builds and shows Apple Pay button\n * @param {Object} buttonStyles An object with Apple pay button styles\n */\nfunction renderApplePayButton(buttonStyles) {\n const $applePayBtn = document.getElementById('apple-pay-btn');\n\n // Builds an Apple pay button by parameters\n $applePayBtn.setAttribute('type', buttonStyles.type);\n $applePayBtn.setAttribute('buttonstyle', buttonStyles.buttonStyle);\n\n // Shows an Apple pay container\n $applePayButton.classList.add('d-block');\n\n // Shows an Apple pay tab on the billing page\n if ($applepayDataMethod) {\n $applepayDataMethod.classList.add('d-block');\n }\n}\n\n/**\n * Hides Apple Pay tab on the Checkout/Billing page\n */\nfunction hideApplePayTab() {\n const $applePayButtonContainer = document.querySelector('.js-applepay-container');\n\n if ($applepayDataMethod) {\n $applepayDataMethod.classList.add('d-none');\n }\n\n if ($applePayButtonContainer) {\n $applePayButtonContainer.classList.add('d-none');\n }\n}\n\n/**\n * Marks Apple Pay button as disabled\n */\nfunction makeApplePayButtonDisabled() {\n $applePayButton.classList.add('js-braintree-applepay-button_disabled');\n}\n\n/**\n * Remove session Apple Pay nonce\n */\nfunction removeSessionNonce() {\n document.getElementById('braintreeApplePayNonce').value = '';\n document.getElementById('braintreeApplePayDeviceData').value = '';\n}\n\n/**\n * Validates required billing form fields\n * @returns {boolean} Whether billing form fields are valid\n */\nfunction isBilligFiledsValid() {\n return helper.isValidInputField($phoneField);\n}\n/**\n * Custom function for returning validity for billing form. \n * Custom: if not valid - scrolls to input\n * @returns {boolean} Whether billing form fields are valid\n */\nfunction validateBillingFields() {\n const isValid = isBilligFiledsValid();\n if (!isValid) {\n paymentMethodGeneralHelper.showPhoneField();\n $phoneField.scrollIntoView();\n }\n return isValid;\n}\n\n/**\n * Depends of the 'data-paypal-is-hide-continue-button' hides or shows continue button on the Billing Page\n */\nfunction toggleContinueButtonOnBillingPage() {\n const applePayContent = document.querySelector('.js-braintree-applepay-content');\n\n helper.continueButtonToggle(applePayContent.getAttribute('data-paypal-is-hide-continue-button'));\n}\n\nmodule.exports = {\n getBraintreeApplePayConfigs,\n setApplePayDeviceData,\n renderApplePayButton,\n makeApplePayButtonDisabled,\n removeSessionNonce,\n isBilligFiledsValid,\n hideApplePayTab,\n toggleContinueButtonOnBillingPage,\n validateBillingFields\n};\n","'use strict';\n\nconst applePayPaymentProcessingConstants = require('../constants/applePayPaymentProcessingConstants');\n\n/**\n * Returns current Apple Pay flow\n * @returns {string} Flow id checkout/cart\n */\nfunction getApplePayFlowId() {\n const applePayEnabledOnCheckout = Boolean(document.querySelector('.js-braintree-applepay-content'));\n\n return applePayEnabledOnCheckout ? applePayPaymentProcessingConstants.FLOW_CHECKOUT_NAME : applePayPaymentProcessingConstants.FLOW_CART_NAME;\n}\n\n/**\n * Returns shipping address based on Apple Pay payment shipping contact\n * @param {Object} shippingContact Shipping address data\n * @returns {Object} Shipping address with required fields\n */\nfunction getShippingAddress(shippingContact) {\n return {\n streetAddress: shippingContact.addressLines[0],\n extendedAddress: shippingContact.addressLines[1],\n locality: shippingContact.locality,\n region: shippingContact.administrativeArea.toUpperCase(),\n postalCode: decodeURIComponent(shippingContact.postalCode),\n countryCodeAlpha2: shippingContact.countryCode.toUpperCase(),\n firstName: shippingContact.givenName,\n lastName: shippingContact.familyName,\n phone: shippingContact.phoneNumber,\n email: shippingContact.emailAddress\n };\n}\n\n/**\n * Returns billing address based on Apple Pay payment billing contact\n * @param {Object} billingContact Billing address data\n * @param {string} email Email\n * @param {string} phone Phone number\n * @returns {Object} Billing address with required fields\n */\nfunction getBillingAddress(billingContact, email, phone) {\n return {\n streetAddress: billingContact.addressLines[0],\n extendedAddress: billingContact.addressLines[1],\n locality: billingContact.locality,\n region: billingContact.administrativeArea.toUpperCase(),\n postalCode: decodeURIComponent(billingContact.postalCode),\n countryCodeAlpha2: billingContact.countryCode.toUpperCase(),\n firstName: billingContact.givenName,\n lastName: billingContact.familyName,\n email: email,\n phone: phone\n };\n}\n\n/**\n * Returns Apple Pay payment object with required data for backend\n * @param {Object} sessionEvent Apple Pay Session event\n * @param {Object} tokenizedPayload Apple Pay payment data\n * @returns {Object} Apple Pay payment object with required fileds\n */\nfunction getTokenizedPaymentData(sessionEvent, tokenizedPayload) {\n const data = {\n event: sessionEvent,\n payload: tokenizedPayload,\n nonce: tokenizedPayload.nonce,\n deviceData: document.getElementById('braintreeApplePayDeviceData').value\n };\n\n let shippingAddressData = sessionEvent.payment.shippingContact;\n\n if (shippingAddressData) {\n data.shippingAddress = getShippingAddress(shippingAddressData);\n } else {\n shippingAddressData = {\n emailAddress: document.querySelector('.customer-summary-email').innerHTML,\n phoneNumber: document.querySelector('.contact-info-block [name=dwfrm_billing_contactInfoFields_phone]').value\n };\n }\n\n const billingAddressData = sessionEvent.payment.billingContact;\n\n if (billingAddressData) {\n data.billingAddress = getBillingAddress(billingAddressData, shippingAddressData.emailAddress, shippingAddressData.phoneNumber);\n }\n\n return data;\n}\n\nmodule.exports = {\n getApplePayFlowId,\n getShippingAddress,\n getBillingAddress,\n getTokenizedPaymentData\n};\n","'use strict';\n\n/**\n* This file was created to provide functionality and business logic for Credit and SRC payment methods. Do not expand this file!\n* Changes and additions to the code should be made to the appropriate files in the folders, depending on the payment method required, to maintain a clear code architecture.\n*/\n\nconst AlertHandlerModel = require('./alertHandler');\nconst helper = require('./helper');\n\nconst cssClass = {\n D_NONE: 'd-none',\n FONT_WEIGHT_BOLD: 'font-weight-bold'\n};\n\nconst errorHandler = new AlertHandlerModel();\nlet creditCardListLoader;\n\n/**\n* Shows the new card block on the Account Page\n*/\nfunction showAddNewCardOptions() {\n const $addNewCardButton = document.querySelector('.js-braintree-add-new-card-btn');\n const $addNewCardBlock = document.querySelector('.js-braintree-add-new-card-block');\n\n // Hide \"Credit Card error message\" container\n errorHandler.hideAlerts();\n // Hide \"Add New Card\" button\n $addNewCardButton.classList.add(cssClass.D_NONE);\n // Display \"Add New Card\" form\n $addNewCardBlock.classList.remove(cssClass.D_NONE);\n}\n\n/**\n * Removes card from Credit/SRC Cards list\n * @param {Object} e Event object\n */\nfunction initRemoveCardEvent() {\n const $removeCardBtns = document.querySelectorAll('.js-credit-card-accounts .js-remove-bt-payment');\n\n $removeCardBtns.forEach((el) => el.addEventListener('click', function(e) {\n const target = e.target;\n\n creditCardListLoader.show();\n\n fetch(helper.getUrlWithCsrfToken(`${window.braintreeUrls.deletePaymentUrl}?UUID=${target.getAttribute('data-id')}`), { method: 'GET' })\n .then((response) => {\n return response.json();\n })\n .then((data) => {\n if (data.error && data.error.message) {\n // Show error message in a case of current PI removal is not allowed\n errorHandler.showError(data.error.message);\n } else {\n document.getElementById(`uuid-${data.UUID}`).remove();\n\n if (data.newDefaultAccount) {\n document.getElementById(`uuid-${data.newDefaultAccount}`).classList.add(cssClass.FONT_WEIGHT_BOLD);\n document.getElementsByClassName(`uuid-${data.newDefaultAccount}`).classList.add(cssClass.D_NONE);\n }\n }\n\n creditCardListLoader.hide();\n })\n .catch(() => {\n location.reload();\n });\n }));\n}\n\n/**\n * Select default card in Credit/SRC Cards list\n * @param {Object} e Event object\n */\nfunction initMakeDefaultCardEvent() {\n const $makeDefaultCardBtns = document.querySelectorAll('.js-credit-card-accounts .js-braintree-make-default-card');\n\n $makeDefaultCardBtns.forEach((el) => el.addEventListener('click', function(e) {\n const target = e.target;\n const url = window.braintreeUrls.makePaymentMethodDefaultUrl;\n const id = target.getAttribute('data-id');\n const paymentMethodID = 'CARD';\n\n // Hide \"Credit Card error message\" container\n errorHandler.hideAlerts();\n creditCardListLoader.show();\n\n fetch(helper.getUrlWithCsrfToken(`${url}?UUID=${id}&pmID=${paymentMethodID}`))\n .then((response) => response.json())\n .then((data) => {\n // New default Card changes\n document.querySelector(`#uuid-${data.newDefaultProperty} .js-braintree-make-default-card`).classList.add(cssClass.FONT_WEIGHT_BOLD);\n document.querySelector('.js-braintree-make-default-card.uuid-' + data.newDefaultProperty).classList.add(cssClass.D_NONE);\n\n // Previous default Card changes\n document.querySelector(`#uuid-${data.toRemoveDefaultProperty} .js-braintree-make-default-card`).classList.remove(cssClass.FONT_WEIGHT_BOLD);\n document.querySelector('.js-braintree-make-default-card.uuid-' + data.toRemoveDefaultProperty).classList.remove(cssClass.D_NONE);\n\n creditCardListLoader.hide();\n })\n .catch(() => {\n creditCardListLoader.hide();\n });\n }));\n}\n\n/**\n * Inits braintree account page functionality\n */\nfunction initAccount() {\n const loaderInstance = require('./loaderHelper');\n\n const $creditCardAccountBtLoader = document.getElementById('creditCardAccountBtLoader');\n const $addNewCard = document.querySelector('.js-braintree-add-new-card-btn');\n const $submitCwppUnlinkBtn = document.querySelector('.js-unlink-submit');\n const $unlinkSection = document.querySelector('.js-unlink-section');\n\n const creditCardListLoaderExists = Boolean($creditCardAccountBtLoader);\n\n if (creditCardListLoaderExists) {\n creditCardListLoader = loaderInstance($creditCardAccountBtLoader);\n }\n\n if ($addNewCard) {\n // \"Add new card\" area link functionality initiation\n $addNewCard.addEventListener('click', showAddNewCardOptions);\n }\n\n // User unlinking functionality initiation\n if ($submitCwppUnlinkBtn && $unlinkSection) {\n $submitCwppUnlinkBtn.addEventListener('click', () => {\n fetch(helper.getUrlWithCsrfToken(window.braintreeUrls.unlinkCwppUrl), {\n method: 'POST'\n })\n .then((res) => res.json())\n .then((res) => {\n if (res.errorMessage) {\n errorHandler.showError(res.errorMessage);\n } else {\n $unlinkSection.classList.add('d-none');\n\n errorHandler.showInfo(res.alertMessage);\n }\n })\n .catch(() => {\n location.reload();\n });\n });\n }\n\n // \"Make default\" link functionality initiation\n initMakeDefaultCardEvent();\n\n // \"Remove Card\" link functionality initiation\n initRemoveCardEvent();\n}\n\nmodule.exports = {\n initAccount,\n initRemoveCardEvent,\n initMakeDefaultCardEvent\n};\n","'use strict';\n\n/* global braintree $ */\n\n/**\n * Create Braintree Client Instance from Client Token\n * @param {string} clientToken Braintree client token\n * @returns {Promise} returns promise with Braintree Client Instance\n */\nfunction createClientInstance(clientToken) {\n return braintree.client.create({\n authorization: clientToken\n });\n}\n\n/**\n * Fraud data generation\n * @param {Promise} btClientInstancePromise Promise with Client Instance\n * @returns {Promise} returns promise with fraud data\n */\nfunction collectFraudData(btClientInstancePromise) {\n return btClientInstancePromise\n .then(function(btClientInstance) {\n return braintree.dataCollector.create({\n client: btClientInstance,\n kount: true\n });\n });\n}\n\n/**\n * Get array with Braintree Customer Payment Mehtods by Personalized Client Instance\n * @param {Promise} btClientInstancePromise Promise with Client Instance\n * @returns {array} array with Braintree Customer Payment Mehtod (if any) in opposite case empty array will be returned\n */\nfunction getBtCustomerPaymentMethods(btClientInstancePromise) {\n return btClientInstancePromise\n .then(function(clientInstance) {\n return braintree.vaultManager.create({\n client: clientInstance\n });\n })\n .then(function(vaultManager) {\n return vaultManager.fetchPaymentMethods({\n defaultFirst: true\n });\n });\n}\n\nmodule.exports = {\n createClientInstance,\n collectFraudData,\n getBtCustomerPaymentMethods\n};\n","'use strict';\n\n/**\n * Inits credit card functionality on Storefront\n * @returns {void}\n */\nfunction initCreditCardFunctionality() {\n const creditCardOnAccountEnabled = Boolean(document.querySelector('.js-braintree-add-credit-card-form'));\n const creditCardEnabledOnCheckout = Boolean(document.querySelector('.js-braintree-credit-card-content'));\n\n let creditCardBusinessLogic;\n\n if (creditCardOnAccountEnabled || creditCardEnabledOnCheckout) {\n creditCardBusinessLogic = require('./creditcard/creditCard');\n creditCardBusinessLogic.init();\n }\n\n if (creditCardOnAccountEnabled) {\n creditCardBusinessLogic.initAccount();\n }\n\n if (creditCardEnabledOnCheckout) {\n creditCardBusinessLogic.initCheckout();\n }\n}\n\n/**\n * Inits PayPal functionality on Storefront\n * @param {Promise} clientTokenPromise promise with Braintree Client Instance\n * @returns {void}\n */\nasync function initPayPalFunctionality(clientTokenPromise) {\n const payPalBusinessLogic = require('./paypal/payPal');\n\n const payPalEnabledOnCheckout = Boolean(document.querySelector('.js-braintree-paypal-content'));\n const payPalEnabledOnProduct = Boolean(document.querySelector('.prices-add-to-cart-actions .js-braintree-paypal-cart-button'));\n const payPalEnabledOnPvp = Boolean(document.querySelector('#quickViewModal .js-braintree-paypal-cart-button'));\n const payPalEnabledOnCart = Boolean(document.querySelector('.cart-page .js-braintree-paypal-cart-button'));\n const payPalEnabledOnAccountPage = Boolean(document.querySelector('.js-paypal-accounts'));\n const payPalEnabledOnLoginPage = Boolean(document.querySelector('.login-form-nav'));\n const cwppEnabledOnPage = Boolean(document.getElementById('js-cwpp-button'));\n const payPalBannerOnCategory = Boolean(document.querySelector('.js-category-banner'));\n\n payPalBusinessLogic.init(clientTokenPromise);\n\n const availablePages = [\n payPalEnabledOnProduct, payPalEnabledOnCart,\n payPalEnabledOnCheckout, payPalEnabledOnLoginPage,\n payPalEnabledOnAccountPage, cwppEnabledOnPage,\n payPalEnabledOnPvp\n ];\n\n if (availablePages.includes(true)) {\n const PayPalScriptLoading = require('./paypal/models/payPalScriptLoading');\n const cwpp = require('./paypal/components/connectWithPayPal.js');\n\n const payPalScriptLoading = new PayPalScriptLoading();\n\n if (cwpp.isContainerExist()) {\n await payPalScriptLoading.loadPayPalSDK();\n\n payPalScriptLoading.loadConnectWithPayPal(cwpp.init);\n }\n }\n\n if (payPalBannerOnCategory) {\n const PayPalScriptLoading = require('./paypal/models/payPalScriptLoading');\n const payPalScriptLoading = new PayPalScriptLoading();\n\n payPalScriptLoading.loadPayPalCreditMessages();\n }\n\n if (payPalEnabledOnCheckout) {\n payPalBusinessLogic.initCheckout();\n }\n\n if (payPalEnabledOnProduct) {\n payPalBusinessLogic.initProduct();\n }\n\n if (payPalEnabledOnPvp) {\n payPalBusinessLogic.initQuickView();\n }\n\n // Validation on enabled/disabled PayPal button for MiniCart located isinside MiniCart component\n payPalBusinessLogic.initMiniCart();\n\n if (payPalEnabledOnCart) {\n payPalBusinessLogic.initCart();\n }\n\n if (payPalEnabledOnAccountPage) {\n payPalBusinessLogic.initAccount();\n }\n}\n\n/**\n * Inits GooglePay functionality on Storefront\n * @returns {void}\n */\nfunction initGooglePayFunctionality() {\n const googlePayBusinnessLogic = require('./googlepay/googlePay');\n\n const googlePayEnabledOnCheckout = Boolean(document.querySelector('.js-braintree-billing-googlepay-button'));\n const googlePayEnabledOnCart = Boolean(document.querySelector('.js-braintree-cart-googlepay-button'));\n\n googlePayBusinnessLogic.init();\n\n if (googlePayEnabledOnCheckout) {\n googlePayBusinnessLogic.initCheckout();\n }\n\n if (googlePayEnabledOnCart) {\n googlePayBusinnessLogic.initCart();\n }\n}\n\n/**\n * Inits ApplePay functionality on Storefront\n * @returns {void}\n */\nfunction initApplePayFunctionality() {\n const applePayBusinessLogic = require('./applepay/applePay');\n\n const applePayEnabledOnCheckout = Boolean(document.querySelector('.js-braintree-applepay-content'));\n const applePayEnabledOnCart = Boolean(document.querySelector('.js-braintree-applepay-button'));\n\n applePayBusinessLogic.init();\n\n if (applePayEnabledOnCart || applePayEnabledOnCheckout) {\n applePayBusinessLogic.initApplePay();\n }\n}\n\n/**\n * Inits Venmo functionality on Storefront\n * @returns {void}\n */\nfunction initVenmoFunctionality() {\n const venmoBusinessLogic = require('./venmo/venmo');\n\n const isVenmoEnabledOnAccountPage = Boolean(document.querySelector('.js-venmo-accounts'));\n const isVenmoEnabledOnBillingPage = Boolean(document.querySelector('.js-braintree-venmo-content'));\n\n if (isVenmoEnabledOnAccountPage || isVenmoEnabledOnBillingPage) {\n venmoBusinessLogic.init();\n }\n\n if (isVenmoEnabledOnAccountPage) {\n venmoBusinessLogic.initAccount();\n }\n\n if (isVenmoEnabledOnBillingPage) {\n venmoBusinessLogic.initBillingCheckout();\n }\n}\n\n/**\n * Inits SRC functionality on Storefront\n * @returns {void}\n */\nfunction initSRCFunctionality() {\n const srcBusinessLogic = require('./src/src');\n\n const isSrcEnabledOnAccountPage = Boolean(document.querySelector('.js-braintree-account-add-src'));\n const isSrcEnabledOnCartPage = Boolean(document.querySelector('.js-braintree-cart-src-button'));\n const isSrcEnabledOnBillingPage = Boolean(document.querySelector('.js-braintree-billing-src-button'));\n\n srcBusinessLogic.init();\n\n if (isSrcEnabledOnAccountPage) {\n srcBusinessLogic.initAccount();\n }\n\n if (isSrcEnabledOnCartPage) {\n srcBusinessLogic.initCartCheckout();\n }\n\n if (isSrcEnabledOnBillingPage) {\n srcBusinessLogic.initBillingCheckout();\n }\n}\n\n/**\n * Inits LPM functionality on Storefront\n * @returns {void}\n */\nfunction initLPMFunctionality() {\n const lpmBusinessLogic = require('./local/lpm');\n const isLpmEnebledOnBillingPage = Boolean(document.querySelector('.js-braintree-lpm-content'));\n\n if (isLpmEnebledOnBillingPage) {\n lpmBusinessLogic.init();\n }\n\n // LPM fallback process\n if (document.querySelector('.js-lpm-fallback')) {\n const lpmFallback = require('./local/lpmFallBack');\n\n lpmFallback.process();\n }\n}\n\n/**\n * Inits APMA functionality on Storefront\n * @returns {void}\n */\nfunction initAPMAFunctionality() {\n const apmaBusinessLogic = require('./apma');\n const isApmaEnebled = Boolean(document.getElementById('js-apma-button-paypal'));\n\n if (isApmaEnebled) {\n apmaBusinessLogic.init();\n }\n}\n\n/**\n * Handle payment`s errors on checkout page\n * @returns {void}\n */\nfunction handlePaymentMethodErrorCheckout() {\n const helper = require('./helper');\n\n $(document).on('ajaxSuccess', function(event, jqXHR, ajaxSettings, response) {\n if (response.error && response.action === 'CheckoutServices-PlaceOrder') {\n fetch(helper.getUrlWithCsrfToken(`${window.braintreeUrls.deleteSessionPayments}`))\n .catch(() => {\n location.reload();\n });\n\n helper.removeActiveSessionPayment(true);\n }\n });\n}\n\nmodule.exports = async function() {\n // Used only for Paypal. In future \"client token\" generation approach will be refactored\n const paymentMethodGeneral = require('./paymentMethodGeneral');\n\n // General global variables\n const isCheckoutPage = Boolean(document.getElementById('checkout-main'));\n const isAccountPage = Boolean(document.querySelector('.js-account-dashboard'));\n\n /* ------------------------General Account functionality------------------------ */\n if (isAccountPage) {\n const btAccountBusinessLogic = require('./braintreeAccount');\n // Common Credit Card and SRC Account functionality\n\n btAccountBusinessLogic.initAccount();\n }\n\n /* ------------------------General Checkout functionality----------------------- */\n if (isCheckoutPage) {\n paymentMethodGeneral.fillPaymentSummaryContainer();\n paymentMethodGeneral.initPaymentMethodTabClickBehavior();\n paymentMethodGeneral.initChangeShippingBehavior();\n paymentMethodGeneral.initBillingSelectorChangeFunctionality();\n paymentMethodGeneral.initAmountObserver();\n handlePaymentMethodErrorCheckout();\n\n const lastAmount = parseFloat(window.sessionStorage.getItem('amount-used'));\n const isSessionPaymentsEnabled = window.braintreePreferences.isSessionPaymentsEnabled;\n\n if ((window.braintreePreferences.is3DSecureEnabled\n || window.braintreePreferences.is3DSecureFallback) && lastAmount && isSessionPaymentsEnabled) {\n paymentMethodGeneral.handleActiveCCSessionPayment(lastAmount);\n }\n }\n\n /* ------------------------Credit Card------------------------ */\n\n initCreditCardFunctionality();\n\n /* --------------------------PayPal-------------------------- */\n\n $('body').on('quickview:ready', async() => {\n await initPayPalFunctionality(paymentMethodGeneral.createGeneralClientInstancePromise());\n });\n\n await initPayPalFunctionality(paymentMethodGeneral.createGeneralClientInstancePromise());\n\n /* --------------------------GooglePay------------------------- */\n\n initGooglePayFunctionality();\n\n /* --------------------------ApplePay------------------------- */\n\n initApplePayFunctionality();\n\n /* --------------------------Venmo---------------------------- */\n\n initVenmoFunctionality();\n\n /* --------------------------SRC------------------------------ */\n\n initSRCFunctionality();\n\n /* --------------------------LPM-------------------------- */\n\n initLPMFunctionality();\n\n /* --------------------------APMA-------------------------- */\n\n initAPMAFunctionality();\n};\n","'use strict';\n\nmodule.exports = {\n getSelectedData: function(selectElement) {\n let option = null;\n\n if (!selectElement) {\n return option;\n }\n\n const options = selectElement.getElementsByTagName('option');\n\n for (let i = 0; i < options.length; i++) {\n option = options[i];\n\n if (option.selected) {\n break;\n }\n }\n\n return option.attributes;\n }\n};\n","'use strict';\n\nconst AlertHandlerModel = require('../../alertHandler');\nconst creditCardFormFieldValidation = require('./creditCardFormFieldsValidator');\n\n/**\n * Credit card alert handler model\n */\nclass CreditCardAlertHandlerModel extends AlertHandlerModel {\n constructor(alertMessages) {\n super();\n this.alertMessages = alertMessages;\n }\n\n /**\n * Converts Braintree fields\n * @param {Array} arrayOfBtFormFields Credit Cards hosted fileds in array\n * @returns {Array} Converted array\n */\n convertBtFromFieldsToDw(arrayOfBtFormFields) {\n const creditCardFieldsMap = {\n cardholderName: 'braintreeCardOwner',\n number: 'braintreeCardNumber',\n cvv: 'braintreeCvv',\n expirationDate: 'braintreeExpirationDate'\n };\n\n return arrayOfBtFormFields.map((fieldName) => creditCardFieldsMap[fieldName]);\n }\n\n /**\n * Handles all fields are empty behavior\n */\n allFieldsAreEmptyErrorBehavior() {\n creditCardFormFieldValidation.makeAllFormFieldsInvalid(this.ccFields);\n }\n\n /**\n * Handles some fileds are empty behavior\n * @param {Array} btInvalidHostedFields Invalid fileds\n */\n someFieldsAreInvalidErrorBehavior(btInvalidHostedFields) {\n const convertedFormFields = this.convertBtFromFieldsToDw(btInvalidHostedFields);\n\n creditCardFormFieldValidation.makeFormFieldsInvalid(convertedFormFields, this.ccFields);\n }\n\n /**\n * Process and validates case when buyer left hosted feieds empty\n * @param {Object} errorPayload Payload with error information\n * @param {string} braintreeErrorCode Error code\n */\n processBraintreeHostedFiledsErrors(errorPayload, braintreeErrorCode) {\n const ALL_HOSTED_FIELDS_FIELDS_EMPTY = 'HOSTED_FIELDS_FIELDS_EMPTY';\n const HOSTED_FIELDS_FIELDS_INVALID = 'HOSTED_FIELDS_FIELDS_INVALID';\n\n switch (braintreeErrorCode) {\n case ALL_HOSTED_FIELDS_FIELDS_EMPTY:\n this.allFieldsAreEmptyErrorBehavior();\n\n break;\n\n case HOSTED_FIELDS_FIELDS_INVALID: {\n const invalidFields = errorPayload.details.invalidFieldKeys;\n\n this.someFieldsAreInvalidErrorBehavior(invalidFields);\n\n break;\n }\n\n default:\n break;\n }\n }\n\n /**\n * Handle \"Credit Card\" error cases.\n * Cases can be split on Custom (errors trigered via \"Promise.reject\" from our side)\n * and on Braintree (errors from Braintree Client SDK)\n * @param {Object} error Error payload from \".catch()\" block\n * @param {Object} ccFieldsInitiated An object with initiated hosted fields\n */\n handleCreditCardError(error, ccFieldsInitiated) {\n if (error.name === 'BraintreeError') {\n this.ccFields = ccFieldsInitiated;\n // Puts error on the top of the Credit Page\n this.showBraintreeError(error);\n this.processBraintreeHostedFiledsErrors(error, error.code);\n } else {\n let errorMsg;\n\n // Handles the cases when 3ds secure failed\n if (error.customError) {\n errorMsg = this.alertMessages.secure3DFailed;\n // Not braintree errors\n } else {\n errorMsg = error.message ? error.message : error;\n }\n\n this.showError(errorMsg);\n }\n }\n}\n\nmodule.exports = CreditCardAlertHandlerModel;\n","'use strict';\n\n// File for form fields validation (applying red, green, yellow frame)\n// This file is used ONLY for validation of Owner field (since Owner field isn't a Hosted Field provided by Braintree client SDK)\n\nconst creditCardFormFieldsHelper = require('../helpers/creditCardFormFieldsHelper');\n\nconst BRAINTREE_ERROR_SELECTOR = 'braintree-hosted-fields-invalid';\nconst BRAINTREE_VALID_SELECTOR = 'braintree-hosted-fields-valid';\nconst BRAINTREE_FOCUSED_SELECTOR = 'braintree-hosted-fields-focused';\n\n/**\n * Returns array of filed containers\n * @param {Array} arrayOfFormFields Array of invalid fields\n * @param {Object} ccFields An object of DOM credit card fields\n * @returns {Array} Array of filed containers\n */\nfunction getArrayOfFieldContainers(arrayOfFormFields, ccFields) {\n const arrayOfFieldContainers = [];\n let fieldContainer;\n\n arrayOfFormFields.forEach(function(fieldName) {\n fieldContainer = ccFields[fieldName];\n\n if (fieldContainer) {\n arrayOfFieldContainers.push(fieldContainer);\n }\n });\n\n return arrayOfFieldContainers;\n}\n\n/**\n * Sets 'BRAINTREE_ERROR_SELECTOR' selector to the invalid form fields\n * @param {Array} arrayOfInvalidFieldsFrom Array of invalisd fields\n * @param {Object} ccFields An object of DOM credit card fields\n */\nfunction makeFormFieldsInvalid(arrayOfInvalidFieldsFrom, ccFields) {\n const arrayOfInvalidFormFields = getArrayOfFieldContainers(arrayOfInvalidFieldsFrom, ccFields);\n\n arrayOfInvalidFormFields.forEach(function($field) {\n // remove \"field valid\" class\n $field.classList.remove(BRAINTREE_VALID_SELECTOR);\n // add \"field not valid\" class\n $field.classList.add(BRAINTREE_ERROR_SELECTOR);\n });\n}\n\n/**\n * Makes all fields invalid\n * @param {Object} ccFields An object of DOM credit card fields\n */\nfunction makeAllFormFieldsInvalid(ccFields) {\n const arrayOfCreditCardFieldNames = Object.keys(ccFields);\n\n makeFormFieldsInvalid(arrayOfCreditCardFieldNames, ccFields);\n}\n\n/**\n * Makes all form fields valid\n */\nfunction makeAllFormFieldsValid() {\n const arrayOfCreditCardFields = creditCardFormFieldsHelper.getCCFields().asArray;\n\n arrayOfCreditCardFields.forEach(function($field) {\n // remove \"field in focuse\" class\n $field.classList.remove(BRAINTREE_FOCUSED_SELECTOR);\n // remove \"field not valid\" class\n $field.classList.remove(BRAINTREE_ERROR_SELECTOR);\n // add \"field valid\" class\n $field.classList.add(BRAINTREE_VALID_SELECTOR);\n });\n}\n\nmodule.exports = {\n makeFormFieldsInvalid,\n makeAllFormFieldsInvalid,\n makeAllFormFieldsValid\n};\n","'use strict';\n\nconst braintreeCreditCardSDK = require('./braintreeCreditCardSDK');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst helper = require('../../helper');\n\n/* global Promise braintree $ */\n\n// global variables\nlet btClientInstancePromise;\nlet orderData;\nlet sitePrefs = {};\n\n/**\n * Init Braintree Credit Card model\n * @param {Promise} braintreeClientInstancePromise Braintree client instance promise\n * @param {boolean} is3dSecureEnabled 'BRAINTREE_CREDIT_3DSecure_Enabled' site preference value\n * @param {boolean} isFraudToolsEnabled Is fraud tools enabled value\n * @param {boolean} is3dSecureFallback Is fraud tools enabled value\n */\nfunction init(braintreeClientInstancePromise, is3dSecureEnabled, isFraudToolsEnabled, is3dSecureFallback) {\n braintreeCreditCardSDK.init(braintreeClientInstancePromise);\n\n btClientInstancePromise = braintreeClientInstancePromise;\n sitePrefs = {\n is3dSecureEnabled: is3dSecureEnabled,\n is3dSecureFallback: is3dSecureFallback,\n isFraudToolsEnabled: isFraudToolsEnabled\n };\n}\n\n/**\n * Gets required additional shipping info for 3ds\n *\n * @param {Object} orderAddress - User's shipping address\n * @returns {Object} an object with required fields\n */\nfunction getShippingAdditionalInfo(orderAddress) {\n return {\n workPhoneNumber: orderAddress.phone,\n shippingGivenName: orderAddress.recipientName.split(' ').slice(0, -1).join(' '),\n shippingSurname: orderAddress.recipientName.split(' ').slice(-1).join(' '),\n shippingPhone: orderAddress.phone,\n shippingAddress: {\n streetAddress: orderAddress.line1,\n extendedAddress: orderAddress.line2,\n locality: orderAddress.city,\n region: orderAddress.state,\n postalCode: decodeURIComponent(orderAddress.postalCode),\n countryCodeAlpha2: orderAddress.countryCode\n }\n };\n}\n\n/**\n * Updates Order data on Checkout\n */\nfunction updateOrderData() {\n fetch(helper.getUrlWithCsrfToken(`${window.braintreeUrls.getOrderInfoUrl}?qwe=2344`))\n .then((response) => {\n if (!response.ok) {\n window.location.reload();\n }\n\n return response.json();\n })\n .then((data) => {\n data.shippingAdditionalInfo = data.shippingAddress ? getShippingAdditionalInfo(data.shippingAddress) : null;\n orderData = data;\n });\n}\n\n/**\n * Returns fraud data from dataCollector payload\n * @returns {Object} Payload with fraud data\n */\nfunction collectFraudData() {\n let response;\n\n if (sitePrefs && sitePrefs.isFraudToolsEnabled) {\n response = braintreeGeneral.collectFraudData(btClientInstancePromise);\n } else {\n response = Promise.resolve({\n customMessage: 'Fraud Data collection isn\\t enabled via Custom Site Preference'\n });\n }\n\n return response;\n}\n\n/**\n * @param {Object} tokenizationOptions Tokenize options\n */\nfunction addAuthenticationInsight(tokenizationOptions) {\n const braintreeCreditCardConfigs = require('../helpers/creditCardHelper').getCheckoutBraintreeCreditCardConfigs();\n\n if (braintreeCreditCardConfigs) {\n tokenizationOptions.authenticationInsight = {\n merchantAccountId: braintreeCreditCardConfigs.merchantAccountId\n };\n }\n}\n\n/**\n * @param {string} nonce payment nonce value\n * @returns {Object} regulation environment value of false if an error occurs\n */\nfunction getAuthInsightRegulationEnvironment(nonce) {\n const config = require('../helpers/creditCardHelper').getCheckoutBraintreeCreditCardConfigs();\n const token = document.querySelector('#dwfrm_billing [name=\"csrf_token\"]').value;\n\n return fetch(config.vaultCreditCardUrl, {\n method: 'POST',\n body: `nonce=${nonce}&csrf_token=${token}`,\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' }\n }).then(response => response.json());\n}\n\n/**\n * Launch the 3D Secure login flow, returning a nonce payload.\n * @param {string} nonce Payment method nonce\n * @param {string} bin Payment method bin\n * @param {number} amount Total amount\n * @param {string} email Email\n * @param {Object} billingData Object with Credit Card billing data\n * @param {Object} shippingAdditionalInfo Object with shipping info\n * @param {Object} btTokenizePayload Tokenize payload\n * @returns {Object} Object with nonce payload or custom error\n */\nfunction apply3dSecureValidation(nonce, bin, amount, email, billingData, shippingAdditionalInfo, btTokenizePayload) {\n return braintreeCreditCardSDK.apply3dSecureValidation(nonce, bin, amount, email, billingData, shippingAdditionalInfo)\n .then(function(payload) {\n if (payload.liabilityShifted) {\n // \"Nonce\" is changed after successful 3DS validation. We need this line to store the last \"nonce\" value\n if (btTokenizePayload) {\n // For stored card use case we don't need this param\n btTokenizePayload.nonce = payload.nonce;\n }\n\n return {\n threeDSecureDataValidationPayload: payload,\n btTokenizePayload: btTokenizePayload\n };\n }\n\n // Case when buyer \"canceled\" 3DS window\n return {\n customError: '3DS popup was canceled by buyer'\n };\n });\n}\n\n/**\n * @param {Object} payload Payload\n * @returns {boolean} Triggered 3DSecure Flow or not\n */\nfunction isTrigger3DSecureFlow(payload) {\n const is3dSecureDisabled = sitePrefs && !sitePrefs.is3dSecureEnabled;\n const is3dSecureFallback = sitePrefs && sitePrefs.is3dSecureFallback;\n const regulationEnvironment = payload.authenticationInsight ? payload.authenticationInsight.regulationEnvironment : '';\n\n return is3dSecureDisabled && is3dSecureFallback && ['unavailable', 'psd2', 'psdtwo'].includes(regulationEnvironment);\n}\n\n/**\n * Process the new Credit Card\n * @param {string} email Email\n * @param {Object} billingData Object with Credit Card billing data\n * @param {boolean} isCheckoutPage Is checkout flow flag\n * @param {HostedFields} hfInstance A hosted fields instance\n * @returns {Object} Object with nonce payload or custom error\n */\nfunction processNewCard(email, billingData, isCheckoutPage, hfInstance) {\n const is3dSecureEnabled = sitePrefs && sitePrefs.is3dSecureEnabled;\n const is3dSecureFallback = sitePrefs && sitePrefs.is3dSecureFallback;\n const orderAmount = orderData.amount;\n const shippingAdditionalInfo = orderData.shippingAdditionalInfo;\n\n let result = hfInstance.tokenize(isCheckoutPage);\n\n if (is3dSecureEnabled || is3dSecureFallback) {\n const resultTokenize = result;\n\n result = result\n .then(function(payload) {\n const nonce = payload.btTokenizePayload.nonce;\n const bin = payload.btTokenizePayload.details ? payload.btTokenizePayload.details.bin : '';\n\n if (is3dSecureFallback && !isTrigger3DSecureFlow(payload.btTokenizePayload)) {\n return resultTokenize;\n }\n\n return apply3dSecureValidation(nonce,\n bin,\n orderAmount,\n email,\n billingData,\n shippingAdditionalInfo,\n payload.btTokenizePayload);\n });\n }\n\n return result;\n}\n\n/**\n * Process the stored Credit Card\n * @param {string} email Email\n * @param {Object} billingData Object with Credit Card billing data\n * @param {Object} paymentMethodResponse Payment method resonse\n * @returns {Object} Object with nonce payload or custom error\n */\nfunction processStoredCard(email, billingData, paymentMethodResponse) {\n const nonce = paymentMethodResponse.nonce;\n const bin = paymentMethodResponse.details ? paymentMethodResponse.details.bin : '';\n\n const orderAmount = orderData.amount;\n const shippingAdditionalInfo = orderData.shippingAdditionalInfo;\n const is3dSecureEnabled = sitePrefs && sitePrefs.is3dSecureEnabled;\n\n let result = Promise.resolve({\n nonce,\n email,\n bin\n });\n\n // Case when we have a nonce, it is the case when buyer use stored credit card\n // otherwise, it is the case when buyer use new credit card\n if (is3dSecureEnabled || isTrigger3DSecureFlow(paymentMethodResponse)) {\n result = apply3dSecureValidation(nonce,\n bin,\n orderAmount,\n email,\n billingData,\n shippingAdditionalInfo);\n }\n\n return result;\n}\n\n/**\n * In case of session card we can do nothing since the nonce, 3ds, hosted fields validation already was passed\n * @returns {Promise} return Promise with success data\n */\nfunction processSessionCard() {\n return Promise.resolve({});\n}\n\n/**\n * Checks whether the basket is valid\n * @param {string} errorMessage Error message\n * @returns {Object} response object\n */\nfunction isBasketDataValid(errorMessage) {\n const response = {\n error: false,\n customErrorMessage: ''\n };\n\n if (!orderData || orderData.amount === 0) {\n response.error = true;\n response.customErrorMessage = errorMessage;\n }\n\n return response;\n}\n\n/**\n * Get BT client instance which is used currently in the model\n * @returns {Promise} BT client instance promise\n */\nfunction getClientInstancePromise() {\n return btClientInstancePromise;\n}\n\nmodule.exports = {\n init,\n // \"tokenize\" or \"processNewCard\", or \"processStoredCard\"\n // can be called only after excution of \"initCreditCardFields\"\n processNewCard,\n processStoredCard,\n processSessionCard,\n getClientInstancePromise,\n getAuthInsightRegulationEnvironment,\n addAuthenticationInsight,\n // \"isBasketDataValid\" can be called only after calling of \"updateOrderData\"\n isBasketDataValid,\n updateOrderData,\n collectFraudData,\n isTrigger3DSecureFlow\n};\n","'use strict';\n\nconst braintreeCreditCardModel = require('./braintreeCreditCardModel');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst creditCardHelper = require('../helpers/creditCardHelper');\n\n/**\n * Initialize Braintree Credit Card Model. Pattern Builder is used\n * @returns {Object} object with booleam \"error\" flag and \"message\" attribute with error message\n */\nfunction init() {\n const braintreeCreditCardConfigs = creditCardHelper.getCheckoutBraintreeCreditCardConfigs();\n const response = {\n error: false,\n message: '',\n btCreditCardModel: null,\n btCreditCardConfigs: null\n };\n\n let clientToken;\n let btClientInstancePromise;\n let is3dSecureEnabled;\n let is3dSecureFallback;\n let isFraudToolsEnabled;\n\n if (braintreeCreditCardConfigs) {\n clientToken = braintreeCreditCardConfigs.clientToken;\n btClientInstancePromise = braintreeGeneral.createClientInstance(clientToken);\n is3dSecureEnabled = braintreeCreditCardConfigs.is3dSecureEnabled;\n is3dSecureFallback = braintreeCreditCardConfigs.is3dSecureFallback;\n isFraudToolsEnabled = braintreeCreditCardConfigs.isFraudToolsEnabled;\n\n braintreeCreditCardModel.init(btClientInstancePromise,\n is3dSecureEnabled,\n isFraudToolsEnabled,\n is3dSecureFallback);\n\n response.btCreditCardModel = braintreeCreditCardModel;\n response.btCreditCardConfigs = braintreeCreditCardConfigs;\n } else {\n response.error = true;\n response.message = 'No Credit Card Braintree Configurations';\n }\n\n return response;\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\n/* global braintreeUtils braintree $ */\n\nlet btClientInstancePromise;\n\n/**\n * Returns a promise that resolves with the HostedFields instance.\n * @param {Object} hostedFieldsParams Object of hosted fieds parameters\n * @returns {Object} Object with hosted field parameters\n */\nfunction createHostedFields(hostedFieldsParams) {\n return btClientInstancePromise\n .then(function(btClientInstance) {\n return braintree.hostedFields.create({\n client: btClientInstance,\n styles: hostedFieldsParams.styles,\n fields: hostedFieldsParams.configs\n });\n });\n}\n\n/**\n * Launch the 3D Secure login flow, returning a nonce payload.\n * @param {string} nonce Payment method nonce\n * @param {string} bin Payment method bin\n * @param {number} amount Total amount\n * @param {string} email Email\n * @param {Object} billingData Object with Credit Card billing data\n * @param {Object} shippingAdditionalInfo Object with Credit Card shipping info\n * @returns {Object} 3DS instance\n */\nfunction apply3dSecureValidation(nonce, bin, amount, email, billingData, shippingAdditionalInfo) {\n return btClientInstancePromise\n .then(function(btClientInstance) {\n return braintree.threeDSecure.create({\n client: btClientInstance,\n version: 2\n })\n .then(function(threeDSecure) {\n return threeDSecure.verifyCard({\n amount: amount,\n nonce: nonce,\n bin: bin || '',\n email: email,\n billingAddress: {\n givenName: billingData.firstName,\n surname: billingData.lastName,\n phoneNumber: billingData.phone,\n streetAddress: billingData.address1,\n extendedAddress: billingData.address2,\n locality: billingData.city,\n region: billingData.stateCode,\n postalCode: decodeURIComponent(billingData.postalCode),\n countryCodeAlpha2: billingData.country\n },\n additionalInformation: shippingAdditionalInfo,\n onLookupComplete: function(data, next) {\n next();\n }\n });\n });\n });\n}\n\n/**\n * Tokenizes a Credit Card and returns a nonce payload.\n * @param {HostedFileds} hfInstance Hosted fieled instance\n * @param {Object} tokenizationOptions Credit Card tokenization option\n * @returns {Promise} A promise that resolves with a tokenizePayload.\n */\nfunction tokenize(hfInstance, tokenizationOptions) {\n const tokenizeOption = tokenizationOptions || {};\n\n return hfInstance.tokenize(tokenizeOption);\n}\n\n/**\n *\n * @param {Promise} braintreeClientInstancePromise Braintree Credit Card instance promise\n */\nfunction init(braintreeClientInstancePromise) {\n btClientInstancePromise = braintreeClientInstancePromise;\n}\n\nlet base = {\n init,\n createHostedFields,\n apply3dSecureValidation,\n tokenize\n};\n\nObject.assign(base, require('braintree_ext/braintree/creditcard/braintreesdk/braintreeCreditCardSDK'));\n\nmodule.exports = base;\n","'use strict';\n\n/* global Promise */\n\nconst braintreeCreditCardSDK = require('./braintreeCreditCardSDK');\nconst creditCardFormFieldHelper = require('../helpers/creditCardFormFieldsHelper');\nconst braintreeCreditCardSdkHelper = require('../helpers/braintreeCreditCardSdkHelper');\nconst helper = require('../../helper');\n\n/**\n * Returns a hosted fields config object\n * @returns {Object} A hosted fields config object\n */\nconst getHostedFieldsConfig = () => {\n const $braintreeCreditCardsFields = document.querySelector('.js-braintree-credit-card-fields');\n\n return helper.tryParseJSON($braintreeCreditCardsFields.getAttribute('data-braintree-config'));\n};\n\n/**\n * HostedFields constructor\n */\nfunction HostedFieldsModel() {\n this.sdkHfInstance = null;\n this.fieldsOptions = null;\n this.hostedFieldsConfigs = getHostedFieldsConfig();\n this.verifiedCardsArray = [];\n}\n\n/**\n * Returns an object of hosted fields initiated to the DOM\n * @returns {Object} An object of dom elements\n */\nHostedFieldsModel.prototype.getCcFields = function() {\n return Object.keys(this.fieldsOptions.configs).reduce((accum, curr) => {\n const selector = this.fieldsOptions.configs[curr].selector;\n\n accum[selector.slice(1)] = document.querySelector(selector);\n\n return accum;\n }, {});\n};\n\n/**\n * Sets an UUID of a Credit card if it is already verified\n * @param {string} ccUUID A Credit card UUID\n */\nHostedFieldsModel.prototype.setVerifiedCardUUIDtoArray = function(ccUUID) {\n this.verifiedCardsArray.push(ccUUID);\n};\n\n/**\n * Returns whether a given credit card need to be verify\n * @param {string} ccUUID A Credit card UUID\n * @returns {boolean} True/False\n */\nHostedFieldsModel.prototype.isCcReVerifyRequired = function(ccUUID) {\n return this.hostedFieldsConfigs.isCcReVerifyEnabled && !this.verifiedCardsArray.includes(ccUUID);\n};\n\n/**\n * Initiates an observer to handle a credit card re-verify, when it is sucessfully occurred\n * @param {string} ccUUID A credit card UUID\n */\nHostedFieldsModel.prototype.initPaymentDetailsSelectorObserver = function(ccUUID) {\n const that = this;\n\n const observer = new MutationObserver(function() {\n if (that.hostedFieldsConfigs.isCcReVerifyEnabled) {\n if (!that.verifiedCardsArray.includes(ccUUID)) {\n that.setVerifiedCardUUIDtoArray(ccUUID);\n }\n\n creditCardFormFieldHelper.hideCardElements(creditCardFormFieldHelper.getCcCvvField().asArray);\n creditCardFormFieldHelper.showCardElements(creditCardFormFieldHelper.getCcCvvToDisplayField().asArray);\n document.getElementById('braintreeCvvOnlyNonce').value = '';\n }\n });\n\n observer.observe(document.querySelector('.js-braintree-payment-details'), { childList: true });\n};\n\n/**\n * Validates whether the sdkHfInstance exist\n * @returns {Object} An object\n */\nHostedFieldsModel.prototype.sdkHfInstanceValidation = function() {\n if (!this.sdkHfInstance) {\n return {\n exist: false,\n errorMessage: this.hostedFieldsConfigs.customMessages.HOSTED_FIELDS_INSTANCE_NOT_DEFINE\n };\n }\n\n return {\n exist: true\n };\n};\n\n/**\n * Sets whether a re-verify or basic hosted fields options to the instance\n * @param {Object} options A hosted fields options\n */\nHostedFieldsModel.prototype.setHostedFieldsOptions = function(options) {\n this.fieldsOptions = options;\n};\n\n/**\n * Initiates a hosted fileds instance\n * @returns {HostedFields} A Hosted fields instance\n */\nHostedFieldsModel.prototype.initHostedFields = function() {\n const that = this;\n\n return braintreeCreditCardSDK.createHostedFields(this.fieldsOptions)\n .then(function(hfInstance) {\n // init hosted fields instance globally\n that.sdkHfInstance = hfInstance;\n\n return hfInstance;\n });\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * Tokenizes previouselly filled hosted Credit Card fields and returns a nonce payload\n * @returns {Promise} Promise with { error: false, result: 'ok'} inside in case of positive response and\n * { error: true} in case of negative (reject, case)\n */\nHostedFieldsModel.prototype.tokenize = function(isCheckoutPage) {\n const btCreditCardModel = require('../braintreesdk/braintreeCreditCardModel');\n\n let tokenizationOptions;\n\n if (isCheckoutPage) {\n // Pull billing address from Storefront. Passed data will be tokenized and sent to Braintree\n tokenizationOptions = braintreeCreditCardSdkHelper.createTokenizationOptions();\n } else {\n tokenizationOptions = {};\n }\n\n btCreditCardModel.addAuthenticationInsight(tokenizationOptions);\n\n return braintreeCreditCardSDK.tokenize(this.sdkHfInstance, tokenizationOptions)\n .then(function(payload) {\n return {\n btTokenizePayload: payload\n };\n });\n};\n\n/**\n * Tokenizes previouselly filled hosted Credit Card fields and returns a nonce payload\n * @returns {Promise} Promise with { error: false, result: 'ok'} inside in case of positive response and\n * { error: true} in case of negative (reject, case)\n */\nHostedFieldsModel.prototype.tokenizeCvv = function() {\n return braintreeCreditCardSDK.tokenize(this.sdkHfInstance)\n .then(function(cvvPayload) {\n return {\n btTokenizePayload: cvvPayload\n };\n });\n};\n\n/**\n * Clear Credit Card hosted fields\n */\nHostedFieldsModel.prototype.clearHostedFields = function() {\n const that = this;\n\n Object.keys(this.fieldsOptions.configs).forEach(option => {\n that.sdkHfInstance.clear(option);\n });\n};\n\n/**\n * Cleanly remove anything set up to the Hosted fields\n */\nHostedFieldsModel.prototype.teardown = function() {\n this.sdkHfInstance.teardown();\n};\n\n/**\n * Returns An object contains the hosted fileds options for basic as weel as re-verify flow\n * @returns {Object} The hosted fields options\n */\nHostedFieldsModel.prototype.getFieldsOptions = function() {\n const braintreeCvvElId = '#braintreeCvv';\n const reverifyFlow = {\n cvv: {\n selector: braintreeCvvElId,\n placeholder: this.hostedFieldsConfigs.customMessages.REVERIFY_CC\n }\n };\n\n const basicFlow = {\n cardholderName: {\n selector: '#braintreeCardOwner'\n },\n number: {\n selector: '#braintreeCardNumber'\n },\n cvv: {\n selector: braintreeCvvElId\n },\n expirationDate: {\n selector: '#braintreeExpirationDate'\n }\n };\n\n const styles = creditCardFormFieldHelper.getHostedFieldsStyles();\n\n return {\n reverifyFlowConfigs: reverifyFlow,\n basicFlowConfigs: basicFlow,\n styles: styles\n };\n};\n\n\nObject.assign(HostedFieldsModel.prototype, require('braintree_ext/braintree/creditcard/braintreesdk/hostedFieldsModel'));\n\nmodule.exports = HostedFieldsModel;\n","'use strict';\n\nconst helper = require('../../helper');\n\nlet braintreeCreditCardModel;\nlet addNewCreditCardLoader;\nlet alertHandler;\nlet ccMessages;\n\nlet hfFieldsInstance;\n\n/**\n * Closes js-braintree-add-new-card-block & clears hosted fields input data\n */\nfunction closeAddNewCardBlock() {\n const $addNewCardButton = document.querySelector('.js-braintree-add-new-card-btn');\n const $addNewCardBlock = document.querySelector('.js-braintree-add-new-card-block');\n\n // Hide \"Add New Card\" form\n $addNewCardBlock.classList.add('d-none');\n // Show \"Add New Card\" button\n $addNewCardButton.classList.remove('d-none');\n // Clear hosted fields input data\n hfFieldsInstance.clearHostedFields();\n}\n\n/**\n * Shows message if Credit Card was updated\n * @param {Object} data addCreditCard response\n */\nfunction showCardUpdateMessage(data) {\n if (data.isCardNumberUpdated) {\n alertHandler.showInfo(data.cardNumberUpdatedMessage);\n }\n}\n\n/**\n * Stores new Credit Card on account page\n * @param {Object} event Event object\n * @returns {void}\n */\nfunction storeNewCreditCard(event) {\n const creditCardAccountHelper = require('../helpers/creditCardAccount');\n const braintreeAccount = require('../../braintreeAccount');\n\n const $customCreditCardErrorContainer = document.getElementById('customCreditCardErrorContainer');\n const customErrorList = helper.tryParseJSON($customCreditCardErrorContainer.getAttribute('data-errors'));\n\n const isCheckoutPage = false;\n\n // Clears error messages on the top of the Account Page\n alertHandler.hideAlerts();\n\n try {\n if (!braintreeCreditCardModel) {\n throw ccMessages.CLIENT_MISSING_GATEWAY_CONFIGURATION;\n }\n\n addNewCreditCardLoader.show();\n\n const $addCreditCardForm = document.querySelector('.js-braintree-add-credit-card-form');\n\n helper.clearForm($addCreditCardForm);\n\n hfFieldsInstance.tokenize(isCheckoutPage)\n .then(function(btModelPayload) {\n const formValidation = require('base/components/formValidation');\n\n const tokenizePayload = btModelPayload.btTokenizePayload;\n const addCreditCardFormUrl = $addCreditCardForm.getAttribute('action');\n\n if (!helper.validateForm($addCreditCardForm)) {\n addNewCreditCardLoader.hide();\n\n return Promise.reject(customErrorList.VALIDATION_INVALID); // eslint-disable-line no-undef\n }\n\n return helper.checkForDuplicatedCC(tokenizePayload)\n .then(function(result) {\n if (result.error) {\n throw result;\n }\n })\n .then(function() {\n return creditCardAccountHelper.verifyCard3dSecure(braintreeCreditCardModel, tokenizePayload, customErrorList);\n })\n .then(function() {\n // Sets value of Credit Card hidden fields needed for server side\n creditCardAccountHelper.setCardHiddenFields(tokenizePayload);\n\n // Call to Braintree-AccountAddCreditCardHandle preparation\n const formData = new FormData($addCreditCardForm);\n const $braintreeCreditCardNonce = document.getElementById('braintreeCreditCardNonce');\n\n fetch(`${addCreditCardFormUrl}?braintreePaymentMethodNonce=${$braintreeCreditCardNonce.value}`, {\n method: 'POST',\n body: formData\n })\n .then((response) => response.json())\n .then((data) => {\n if (data.error) {\n addNewCreditCardLoader.hide();\n alertHandler.handleCreditCardError(data.error);\n delete data.error;\n\n formValidation($addCreditCardForm, data);\n } else {\n fetch(data.renderAccountsUrl)\n .then((template) => template.text())\n .then((templateHtml) => {\n closeAddNewCardBlock();\n addNewCreditCardLoader.hide();\n document.querySelector('.js-credit-card-accounts').innerHTML = templateHtml;\n // \"Make default\" link functionality reinitiation\n braintreeAccount.initMakeDefaultCardEvent();\n // \"Remove Card\" link functionality reinitiation\n braintreeAccount.initRemoveCardEvent();\n showCardUpdateMessage(data);\n });\n }\n });\n });\n })\n .catch(function(error) {\n addNewCreditCardLoader.hide();\n alertHandler.handleCreditCardError(error, hfFieldsInstance.getCcFields());\n\n helper.validateForm($addCreditCardForm);\n });\n\n event.preventDefault();\n event.stopPropagation();\n } catch (error) {\n addNewCreditCardLoader.hide();\n alertHandler.handleCreditCardError(error);\n }\n}\n\n/**\n * Inits Credit Card account loaders\n */\nfunction initCreditCartAccountLoaders() {\n const loaderInstance = require('../../loaderHelper');\n const $braintreeCreditCardLoader = document.getElementById('braintreeCreditCardLoader');\n const braintreeCreditCardLoaderExists = Boolean($braintreeCreditCardLoader);\n\n if (braintreeCreditCardLoaderExists) {\n addNewCreditCardLoader = loaderInstance($braintreeCreditCardLoader);\n }\n}\n\n/**\n * Init Credit Card Account functionality\n * @param {Object} btCreditCardModel Braintree Credit Card model\n * @param {Constructor} alertHandlerModel Alert handling model\n * @param {Object} creditCardMessages List of Credit Card error messages\n * @param {Object} hostedFieldsInstance A Hosted fields instance\n */\nfunction init(btCreditCardModel, alertHandlerModel, creditCardMessages, hostedFieldsInstance) {\n ccMessages = creditCardMessages;\n alertHandler = alertHandlerModel;\n braintreeCreditCardModel = btCreditCardModel;\n hfFieldsInstance = hostedFieldsInstance;\n\n const addNewCreditCardFormExists = Boolean(document.querySelector('.js-braintree-add-credit-card-form'));\n\n initCreditCartAccountLoaders();\n\n if (addNewCreditCardFormExists) {\n document.querySelector('.js-braintree-add-new-card-save-btn').addEventListener('click', storeNewCreditCard);\n document.querySelector('.js-braintree-add-new-card-cancel-btn').addEventListener('click', closeAddNewCardBlock);\n }\n}\n\nmodule.exports = {\n init,\n closeAddNewCardBlock\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * General validation of params needed for initialization of hosted fields\n * @param {Object} $braintreeCreditCardFieldsContainer Braintree Credit Card fields container\n * @param {Object} braintreeCreditCardConfig Braintree Credit Card configurations (they came from server via data attr)\n * @returns {Object} object with \"error\" boolean flag and array of error messages from \"massages\" attr\n */\nfunction generalHfValidation($braintreeCreditCardFieldsContainer, braintreeCreditCardConfig) {\n const response = {\n error: false,\n messages: ''\n };\n\n try {\n const isHostedFieldsWasInited = helper.tryParseJSON($braintreeCreditCardFieldsContainer.getAttribute('data-is-inited'));\n const isBraintreeCreditCardConfigValid = typeof braintreeCreditCardConfig !== 'object' || braintreeCreditCardConfig !== null;\n\n if (isHostedFieldsWasInited) {\n // do not add error msg since this case is expected (hosted fields should be inited just once)\n response.error = true;\n }\n\n if (!isBraintreeCreditCardConfigValid) {\n response.error = true;\n response.messages = '.js-braintree-credit-card-fields has not valid data-braintree-config';\n }\n } catch (error) {\n response.error = true;\n response.messages = error;\n }\n\n return response;\n}\n\n/**\n * Init Credit Card fields functionality\n * @param {Object} btCreditCardModel Braintree Credit Card model\n * @param {Constructor} alertHandlerModel Alert handling model\n * @param {Object} hostedFieldsInstance A Hosted fields instance\n */\nfunction init(btCreditCardModel, alertHandlerModel, hostedFieldsInstance) {\n alertHandlerModel.hideAlerts();\n\n document.querySelectorAll('.js-braintree-credit-card-fields').forEach(function(el) {\n try {\n const $braintreeCreditCardFieldsContainer = el;\n const braintreeCreditCardConfig = helper.tryParseJSON($braintreeCreditCardFieldsContainer.getAttribute('data-braintree-config'));\n const generalHostedFieldsValidation = generalHfValidation($braintreeCreditCardFieldsContainer, braintreeCreditCardConfig);\n\n if (generalHostedFieldsValidation.error && generalHostedFieldsValidation.messages.length) {\n throw generalHostedFieldsValidation.messages;\n }\n\n // Fraud Data will be only collected in case if corresponding Site Preference is enabled\n // For more details go inside \"btCreditCardModel.collectFraudData\" function logic\n btCreditCardModel.collectFraudData()\n .then(function(fraudDataPayload) {\n const $braintreeDeviceData = document.getElementById('braintreeDeviceData');\n\n if (fraudDataPayload.deviceData) {\n $braintreeDeviceData.value = fraudDataPayload.deviceData;\n }\n\n // Init \"Credit Card Hosted Fields\"\n return hostedFieldsInstance.initHostedFields();\n })\n .catch(function(error) {\n alertHandlerModel.handleCreditCardError(error);\n });\n\n // Update order data inside BT model each time when buyer update checkout view\n $('body').on('checkout:updateCheckoutView', btCreditCardModel.updateOrderData);\n\n // To prevent from repeatable Credit Card hosted fields initialization\n $braintreeCreditCardFieldsContainer.setAttribute('data-is-inited', true);\n } catch (error) {\n alertHandlerModel.handleCreditCardError(error);\n }\n });\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst creditCardFormFieldHelper = require('../helpers/creditCardFormFieldsHelper');\nconst creditCardHelper = require('../helpers/creditCardHelper');\nconst paymentMethodGeneralHelper = require('../../paymentMethodGeneralHelper');\nconst creditCardBillingAddressHelper = require('../helpers/creditCardBillingAddressHelper');\n\nlet hostedFieldsInstance;\n\n/**\n * Makes the necessary setting for 'Save Credit Card block' on the Billing Page\n * @param {boolean} saveCreditCard true/false\n * @param {boolean} displaySaveCreditCardBlock true/false\n */\nfunction saveCreditCardBlockManipulation(saveCreditCard, displaySaveCreditCardBlock) {\n const $saveCreditCard = document.getElementById('braintreeSaveCreditCard');\n const $braintreeSaveCardContainer = document.getElementById('braintreeSaveCardContainer');\n\n if ($braintreeSaveCardContainer) {\n $braintreeSaveCardContainer.style.display = displaySaveCreditCardBlock ? 'block' : 'none';\n $saveCreditCard.checked = saveCreditCard;\n }\n}\n\n/**\n * Handles changing of Credit Card list on the Billing Page\n * @param {Constructor} alertHandlerModel Alert handling model\n */\nfunction cardListChange(alertHandlerModel) {\n const btUtils = require('../../braintreeUtils');\n\n const $creditCardList = creditCardFormFieldHelper.getCreditCardListContainer();\n const $braintreeCreditCardNonce = creditCardFormFieldHelper.getCreditCardNonceFieldContainer();\n const $braintreeCardPaymentMethod = document.getElementById('braintreeCardPaymentMethod');\n const creditCardOption = $creditCardList.selectedOptions[0];\n const creditCardOptionID = creditCardOption.id;\n const creditCardFiledsToDisplayObject = creditCardFormFieldHelper.getCCFieldsToDisplay().asObject;\n const braintreeCvvOnlyNonce = document.getElementById('braintreeCvvOnlyNonce');\n\n let creditCardFieldsToDisplayArray = creditCardFormFieldHelper.getCCFieldsToDisplay().asArray;\n let creditCardHostedFieldsArray = creditCardFormFieldHelper.getCCFields().asArray;\n // Variables only for \"braintreeSessionCreditAccount\" case\n let selectedCreditCard;\n let nonce = '';\n let saveCreditCard = true;\n let showSaveCreditCardBlock = true;\n\n const isReVerifyFlow = hostedFieldsInstance.hostedFieldsConfigs.isCcReVerifyEnabled\n && hostedFieldsInstance.hostedFieldsConfigs.isSavedCreditCard;\n\n const ccCvvToDisplayField = creditCardFormFieldHelper.getCcCvvToDisplayField();\n const ccCvvField = creditCardFormFieldHelper.getCcCvvField();\n const $selectedCcAccountOption = creditCardHelper.getSelectedCcAccountOption();\n const savedBillingAddress = $selectedCcAccountOption.getAttribute('data-billing-address');\n const isCcReVerifyRequired = hostedFieldsInstance.isCcReVerifyRequired($selectedCcAccountOption.value);\n\n // Clear error messages on the Billing Page\n alertHandlerModel.hideAlerts();\n\n if (!savedBillingAddress) {\n paymentMethodGeneralHelper.enableBillingAddressFunctionality();\n }\n\n creditCardBillingAddressHelper.displaySelectedStoredBillingAddress($selectedCcAccountOption);\n\n // Shows or hides a billing info alert for Credit card payment\n creditCardBillingAddressHelper.initBillingInfoAlert(savedBillingAddress);\n\n if (braintreeCvvOnlyNonce) {\n braintreeCvvOnlyNonce.value = '';\n }\n\n switch (creditCardOptionID) {\n // When buyer selected \"new cc\"\n case 'newCardAccount':\n // Initiates a basic hosted fields for new card only\n if (hostedFieldsInstance.sdkHfInstance && isReVerifyFlow) {\n const { basicFlowConfigs, styles } = hostedFieldsInstance.getFieldsOptions();\n\n hostedFieldsInstance.teardown();\n // Sets an appropriate hosted fields options object for Checkout page\n hostedFieldsInstance.setHostedFieldsOptions({\n styles: styles,\n configs: basicFlowConfigs\n });\n // Initiates the appropriate hosted fileds for new Card account\n hostedFieldsInstance.initHostedFields();\n }\n\n // Hide 'toDisplay' fields\n creditCardFormFieldHelper.hideCardElements(creditCardFieldsToDisplayArray.concat(ccCvvToDisplayField.asArray));\n\n creditCardFormFieldHelper.showCardElements(creditCardHostedFieldsArray.concat(ccCvvField.asArray));\n\n // Display \"Save Credit Card\" block, and mark it as checked\n saveCreditCardBlockManipulation(saveCreditCard, showSaveCreditCardBlock);\n\n $braintreeCreditCardNonce.value = '';\n $braintreeCardPaymentMethod.value = 'CREDIT';\n\n break;\n\n case 'braintreeSessionCreditAccount':\n selectedCreditCard = btUtils.getSelectedData($creditCardList);\n nonce = selectedCreditCard['data-nonce'].value;\n saveCreditCard = selectedCreditCard['data-save-card'].value;\n\n // Display \"Save Credit Card\" block, and mark it as checked\n saveCreditCardBlockManipulation(saveCreditCard, showSaveCreditCardBlock);\n\n creditCardFiledsToDisplayObject.cardCvvToDisplay = ccCvvToDisplayField.asObject.cardCvvToDisplay;\n\n // Add values to the \"toDisplay\" and hidden input fields.\n creditCardFormFieldHelper.setCardFields(selectedCreditCard, creditCardFiledsToDisplayObject);\n\n creditCardFormFieldHelper.hideCardElements(creditCardHostedFieldsArray.concat(ccCvvField.asArray));\n creditCardFormFieldHelper.showCardElements(creditCardFieldsToDisplayArray.concat(ccCvvToDisplayField.asArray));\n\n $braintreeCreditCardNonce.value = nonce;\n $braintreeCardPaymentMethod.value = selectedCreditCard['data-payment-method'].value.toUpperCase();\n\n break;\n\n // Case for saved credit cards\n default:\n if (hostedFieldsInstance.sdkHfInstance && isCcReVerifyRequired) {\n const { reverifyFlowConfigs, styles } = hostedFieldsInstance.getFieldsOptions();\n\n hostedFieldsInstance.teardown();\n // Sets an appropriate hosted fields options object for Checkout page\n hostedFieldsInstance.setHostedFieldsOptions({\n styles: styles,\n configs: reverifyFlowConfigs\n });\n // Initiates the appropriate hosted fileds for new Card account\n hostedFieldsInstance.initHostedFields();\n }\n\n saveCreditCard = false;\n showSaveCreditCardBlock = false;\n selectedCreditCard = btUtils.getSelectedData($creditCardList);\n\n if (isCcReVerifyRequired) {\n creditCardFieldsToDisplayArray = creditCardFieldsToDisplayArray.concat(ccCvvField.asArray);\n creditCardHostedFieldsArray = creditCardHostedFieldsArray.concat(ccCvvToDisplayField.asArray);\n } else {\n creditCardFieldsToDisplayArray = creditCardFieldsToDisplayArray.concat(ccCvvToDisplayField.asArray);\n creditCardHostedFieldsArray = creditCardHostedFieldsArray.concat(ccCvvField.asArray);\n }\n\n // Add values to the 'toDisplay' and hidden input fields\n creditCardFormFieldHelper.setCardFields(selectedCreditCard, creditCardFiledsToDisplayObject);\n\n // Show these fields to the buyer\n creditCardFormFieldHelper.showCardElements(creditCardFieldsToDisplayArray);\n\n // Hide hosted fields (since we don't need them)\n creditCardFormFieldHelper.hideCardElements(creditCardHostedFieldsArray);\n\n // Display \"Save Credit Card\" block, and uncheck it\n saveCreditCardBlockManipulation(saveCreditCard, showSaveCreditCardBlock);\n\n if (savedBillingAddress) {\n paymentMethodGeneralHelper.disableBillingAddressFunctionality();\n }\n\n $braintreeCreditCardNonce.value = nonce;\n $braintreeCardPaymentMethod.value = selectedCreditCard['data-payment-method'].value.toUpperCase();\n\n break;\n }\n}\n\n/**\n * Inits Credit Card list functionality\n * @param {Object} btCreditCardModel BT Credit Card model\n * @param {Constructor} alertHandlerModel alertHandlerModel Error handling model\n * @param {Object} hfInstance A Hosted fields instance\n */\nfunction init(btCreditCardModel, alertHandlerModel, hfInstance) {\n const $creditCardList = document.getElementById('braintreeCreditCardList');\n const creditCardListExist = Boolean($creditCardList);\n\n hostedFieldsInstance = hfInstance;\n\n if (creditCardListExist) {\n $creditCardList.addEventListener('change', function() {\n cardListChange(alertHandlerModel);\n });\n }\n\n cardListChange(alertHandlerModel);\n}\n\nmodule.exports = {\n init,\n cardListChange\n};\n","/* eslint-disable no-console */\n\n'use strict';\n\n/* global Promise braintree $ */\n\nconst helper = require('../../helper');\nconst btCreditCardModel = require('../braintreesdk/braintreeCreditCardModel');\nconst creditCardPaymentProcessingHelper = require('../helpers/creditCardPaymentProcessingHelper');\nconst loaderInstance = require('../../loaderHelper');\nconst creditCardPaymentProcessingConstants = require('../constants/creditCardPaymentProcessingConstants');\nconst creditCardHelper = require('../helpers/creditCardHelper');\n\nconst creditCardBillingAddressHelper = require('../helpers/creditCardBillingAddressHelper');\n\nconst $continueButton = document.querySelector('button.submit-payment');\nconst $creditCardList = document.getElementById('braintreeCreditCardList');\nconst $braintreeCreditCardLoader = document.getElementById('braintreeCreditCardLoader');\nconst $customCreditCardErrorContainer = document.getElementById('customCreditCardErrorContainer');\n\nlet loader;\nlet alertHandler;\n\nlet hfInstance;\n\n/**\n * Checking for customError property in payload\n * @param {Object} payload object with btPayload\n * @throws {Object} when customError property exists in payload\n */\nfunction checkForErrorInPayload(payload) {\n if (Object.hasOwnProperty.call(payload, 'customError')) {\n throw payload;\n }\n}\n\n/**\n * Process a stored card\n * @param {clientInstancePromise} clientInstancePromise A ClientInstancePromise\n * @param {string} email An email address\n * @param {string} billingData A billing address data\n * @returns {Promise} A promise\n */\nconst processStoredCard = (clientInstancePromise, email, billingData) => {\n const savedCcBillingAddressAsString = creditCardHelper.getSavedCcBillingAddressAsString();\n\n // Fills a credit card billing address input with billing address data\n if (savedCcBillingAddressAsString) {\n // Case when a Credit card has a saved billing address\n // Using only for updating a billing address on the server side\n creditCardBillingAddressHelper.setCreditCardBillingAddress(helper.tryParseJSON(savedCcBillingAddressAsString));\n } else {\n // Case when a Credit Card does not have a saved billing address\n creditCardBillingAddressHelper.setCreditCardBillingAddress(creditCardBillingAddressHelper.createCreditCardBillingAddress());\n }\n\n const $selectedCcOption = creditCardHelper.getSelectedCcAccountOption();\n const selectedCcOptionId = $selectedCcOption.value;\n\n if (hfInstance.isCcReVerifyRequired(selectedCcOptionId)) {\n hfInstance\n .tokenizeCvv()\n .then(tokenizePaylaod => {\n hfInstance.initPaymentDetailsSelectorObserver(selectedCcOptionId);\n document.getElementById('braintreeCvvOnlyNonce').value = tokenizePaylaod.btTokenizePayload.nonce;\n }).catch(() => {\n document.getElementById('braintreeCvvOnlyNonce').value = 'error';\n });\n }\n\n return creditCardPaymentProcessingHelper.getNonceFromStoredCard(clientInstancePromise, $creditCardList)\n .then(function(response) {\n if (!response) {\n throw Error('Payment method was not found in vault manager.');\n }\n\n return btCreditCardModel.getAuthInsightRegulationEnvironment(response.nonce);\n })\n .then(function(response) {\n return creditCardPaymentProcessingHelper.getNonceFromStoredCard(clientInstancePromise, $creditCardList)\n .then(function(paymentMethodResponse) {\n paymentMethodResponse.authenticationInsight = {\n regulationEnvironment: response.regulationEnvironment\n };\n\n return btCreditCardModel.processStoredCard(email, billingData, paymentMethodResponse)\n .then(function(btStoredCardPayload) {\n checkForErrorInPayload(btStoredCardPayload);\n\n const threeDSecureDataValidationPayload = btStoredCardPayload.threeDSecureInfo;\n\n if (threeDSecureDataValidationPayload) {\n creditCardPaymentProcessingHelper.fill3DsData(threeDSecureDataValidationPayload);\n }\n\n return Promise.resolve(btStoredCardPayload);\n });\n });\n });\n};\n\n/**\n * Processes a new card\n * @param {Object} btPayload Payload from Braintree\n * @returns {Promise} A promise\n */\nconst processNewCard = (btPayload) => {\n const isSessionPaymentsEnabled = window.braintreePreferences.isSessionPaymentsEnabled;\n\n // Fills a credit card billing address input with billing address data\n creditCardBillingAddressHelper.setCreditCardBillingAddress(creditCardBillingAddressHelper.createCreditCardBillingAddress());\n\n document.getElementById('braintreeCreditCardBin').value = btPayload.btTokenizePayload.details.bin;\n\n // Fill hidden inputs CreditCard fields and Session CreditCard div fields\n creditCardPaymentProcessingHelper.fillCreditCardFormWithPayloadData(btPayload);\n\n // Filling of session card attributes for using them in business logic (client/server)\n creditCardPaymentProcessingHelper.setCreditCardDataAttributes(btPayload, isSessionPaymentsEnabled);\n\n if (isSessionPaymentsEnabled) {\n const creditCardFormFieldHelper = require('../helpers/creditCardFormFieldsHelper');\n\n // Fill 'toDisplay' fields with data to display them for buyer\n creditCardPaymentProcessingHelper.fillSessionCreditCardFormWithPayloadData(btPayload);\n // Select \"Session Account Option\" in \"Account List\"\n creditCardPaymentProcessingHelper.markAsSelectedSessionAccount();\n // Display \"Stored Accounts\" list\n creditCardPaymentProcessingHelper.displayStoredCreditCardList();\n // Show \"Session Credit Card\" fields (in div blocks)\n creditCardFormFieldHelper.showCardElements(creditCardFormFieldHelper\n .getCCFieldsToDisplay().asArray.concat(creditCardFormFieldHelper.getCcCvvToDisplayField().asArray));\n // Hide hosted fields (iframe fields)\n creditCardFormFieldHelper.hideCardElements(creditCardFormFieldHelper\n .getCCFields().asArray.concat(creditCardFormFieldHelper.getCcCvvField().asArray));\n }\n\n // Clear \"Hosted Fields\" (from iframe)\n hfInstance.clearHostedFields();\n\n helper.continueButtonToggle(false);\n\n return Promise.resolve(btPayload);\n};\n\n/**\n * Process Credit Card on the Billing Page\n * @param {Object} event Event object\n * @returns {void}\n */\nfunction processCreditCard(event) {\n event.preventDefault();\n event.stopPropagation();\n\n // Removes error messages on the Billing Page\n alertHandler.hideAlerts();\n\n try {\n const customErrorMessages = helper.tryParseJSON($customCreditCardErrorContainer.getAttribute('data-errors'));\n const basketDataValidResponse = btCreditCardModel.isBasketDataValid(customErrorMessages.TOTAL_BASKET_AMOUNT_INVALID);\n const clientInstancePromise = btCreditCardModel.getClientInstancePromise();\n const creditCardFlow = creditCardPaymentProcessingHelper.getCreditCardFlowID($creditCardList);\n\n if (basketDataValidResponse.error) {\n throw basketDataValidResponse.customErrorMessage;\n }\n\n // Data passed inside \"braintreeCreditCardModel\"\n const billingData = helper.getBillingAddressFormValues();\n const email = document.querySelector('.customer-summary-email').textContent;\n const isCheckoutFlow = true;\n\n let result;\n\n // \"Hosted Field Instance\" validation\n const sdkHfInstanceValResult = hfInstance.sdkHfInstanceValidation();\n\n if (!sdkHfInstanceValResult.exist) {\n throw sdkHfInstanceValResult.errorMessage;\n }\n\n loader.show();\n\n const $billingForm = document.getElementById('dwfrm_billing');\n\n helper.clearForm($billingForm);\n\n switch (creditCardFlow) {\n // Case for new card\n case creditCardPaymentProcessingConstants.FLOW_NEW_CARD_NAME:\n result = btCreditCardModel.processNewCard(email, billingData, isCheckoutFlow, hfInstance)\n .then((btPayload) => {\n checkForErrorInPayload(btPayload);\n\n if (!helper.validateForm($billingForm)) {\n loader.hide();\n\n return Promise.reject(customErrorMessages.VALIDATION_INVALID);\n }\n\n const $saveCardCheckbox = document.getElementById('braintreeSaveCreditCard');\n\n if ($saveCardCheckbox && $saveCardCheckbox.checked) {\n const response = helper.checkForDuplicatedCC(btPayload);\n\n if (response.error) {\n return Promise.reject(response.message);\n }\n }\n\n return btPayload;\n })\n .then((btPayload) => processNewCard(btPayload));\n\n break;\n\n // Case for session card\n case creditCardPaymentProcessingConstants.FLOW_SESSION_CARD_NAME:\n result = btCreditCardModel.processSessionCard();\n\n break;\n\n // Case for stored card\n case creditCardPaymentProcessingConstants.FLOW_STORED_CARD_NAME:\n result = processStoredCard(clientInstancePromise, email, billingData);\n\n break;\n default:\n // Handle error with wrong checkout flow\n result = Promise.reject(customErrorMessages.WROND_CHECKOUT_FLOW);\n\n break;\n }\n\n result\n .then(function() {\n loader.hide();\n // Trigger \"Submit Payment\" button\n event.target.click();\n })\n .catch(function(error) {\n loader.hide();\n\n // Braintree Errors\n alertHandler.handleCreditCardError(error, hfInstance.getCcFields());\n\n helper.validateForm($billingForm);\n });\n } catch (error) {\n loader.hide();\n alertHandler.handleCreditCardError(error);\n }\n}\n\n/**\n * Inits Credit Card process on the Billing Page\n * @param {Constructor} alertHandlerModel Alert handling constructor\n * @param {Object} hostedFieldsInstance A hosted fields instance\n */\nfunction init(alertHandlerModel, hostedFieldsInstance) {\n loader = loaderInstance($braintreeCreditCardLoader);\n alertHandler = alertHandlerModel;\n hfInstance = hostedFieldsInstance;\n\n $continueButton.addEventListener('click', function(event) {\n const isCreditCardTabActive = creditCardPaymentProcessingHelper.isActiveCreditCardTab();\n\n // Removes active session payment method once 'Next: Place order' button clicked\n helper.removeActiveSessionPayment();\n\n if (!event.isTrusted || !isCreditCardTabActive) {\n return;\n }\n\n processCreditCard(event);\n });\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst creditCardPaymentProcessingHelper = require('../helpers/creditCardPaymentProcessingHelper');\nconst creditCardHelper = require('../helpers/creditCardHelper');\nconst creditCardFormFieldHelper = require('../helpers/creditCardFormFieldsHelper');\nconst creditCardSessionAccountHelper = require('../helpers/creditCardSessionAccountHelper');\n\n/**\n * Update Session account\n * @param {Object} sessionOption - session option\n */\nfunction clearSessionAccount(sessionOption) {\n sessionOption.selected = false;\n sessionOption.classList.add('used-creditcard-account-hide');\n sessionOption.classList.remove('used-creditcard-account');\n sessionOption.text = '';\n sessionOption.setAttribute('data-session-account', false);\n sessionOption.setAttribute('data-owner', false);\n sessionOption.setAttribute('data-expiration', false);\n sessionOption.setAttribute('data-number', false);\n sessionOption.setAttribute('data-nonce', false);\n sessionOption.setAttribute('data-type', false);\n sessionOption.setAttribute('data-save-card', false);\n}\n\n/**\n * Remove Credit Card session account\n */\nfunction removeSessionNonce() {\n const defaultCreditCard = helper.getOptionByDataDefault('#braintreeCreditCardList');\n const creditCardFieldstoDisplay = creditCardFormFieldHelper.getCCFieldsToDisplay();\n const creditCardFieldsAsArray = creditCardFormFieldHelper.getCCFields().asArray;\n const ccCvvToDisplayField = creditCardFormFieldHelper.getCcCvvToDisplayField().asArray;\n const ccCvvField = creditCardFormFieldHelper.getCcCvvField().asArray;\n const sessionOption = helper.getSessionAccountOption({\n querySelector: '#braintreeCreditCardList',\n id: 'braintreeSessionCreditAccount'\n });\n\n if (!sessionOption) {\n return;\n }\n\n const sessionLastFour = sessionOption.getAttribute('data-last-four');\n const sessionType = sessionOption.getAttribute('data-type').toLowerCase();\n\n clearSessionAccount(sessionOption);\n\n // Handles case when stored and session credit card have the same type and last four digest\n // Makes visable already stored Credit Card in Credit Card List\n creditCardPaymentProcessingHelper.showAlreadyStoredCard(sessionLastFour,\n sessionType);\n\n creditCardSessionAccountHelper.clearCreditCardFields();\n creditCardSessionAccountHelper.clearCreditCardNonceField();\n\n if (defaultCreditCard) {\n defaultCreditCard.selected = true;\n\n creditCardFormFieldHelper.setCreditCardFieldsToDisplay(defaultCreditCard, creditCardFieldstoDisplay.asObject);\n\n // Uncheck Save Credit Card checkbox\n creditCardHelper.saveCreditCard(false);\n creditCardHelper.hideSaveCreditCardBlock(true);\n } else {\n creditCardFormFieldHelper.hideCardElements(creditCardFieldstoDisplay.asArray.concat(ccCvvToDisplayField));\n creditCardFormFieldHelper.showCardElements(creditCardFieldsAsArray.concat(ccCvvField));\n\n // Hides 'Select a Credit Card block' on the Billing Page\n const ccAccount = document.querySelector('.js-braintree-used-creditcard-account');\n\n ccAccount.classList.remove('used-creditcard-account');\n ccAccount.classList.add('used-creditcard-account-hide');\n }\n}\n\nmodule.exports = {\n removeSessionNonce\n};\n","'use strict';\n\nconst braintreeGeneral = require('../../braintreeGeneral');\n\n/**\n * Constructor of VaultMgr model\n * @param {Promise} personalizedClientTokenPromise BT clietn instance promise\n */\nfunction CreditCardVaultManagerModel(personalizedClientTokenPromise) {\n this.customerPaymentMethodsFromVaultPromise = braintreeGeneral.getBtCustomerPaymentMethods(personalizedClientTokenPromise);\n}\n\n/**\n * Find CC by data within VaultMgr\n * @param {Promise} customerPaymentMethodsFromVaultPromise Array with Payment Methods from VaultMgr\n * @param {string} lastFour Last four credit card digits\n * @param {string} cardType Credit Card type (Visa, Mastercard)\n * @param {Object} expiration Month and year\n * @returns {Promise} Promise with found Credit Card\n */\nfunction getCardFromVaultMgrByData(customerPaymentMethodsFromVaultPromise, lastFour, cardType, expiration) {\n return customerPaymentMethodsFromVaultPromise\n .then(function(vaultMgrPaymentMethods) {\n return vaultMgrPaymentMethods.find(function(paymentMethod) {\n const isCardType = paymentMethod.type === 'CreditCard' || paymentMethod.type === 'VisaCheckoutCard';\n const pmDetails = paymentMethod.details;\n const isExpirationMatched = pmDetails.expirationMonth === expiration.month && pmDetails.expirationYear.endsWith(expiration.year);\n\n return isCardType && isExpirationMatched && pmDetails.cardType.toLowerCase() === cardType && pmDetails.lastFour === lastFour;\n });\n });\n}\n\n/**\n * Return CC from VaultManager by passed data\n * @param {string} lastFour Last four credit card digits\n * @param {string} cardType Credit Card type (Visa, Mastercard)\n * @param {Object} expiration Month and year\n * @returns {Promise} Promise with nonce or empty string\n */\nCreditCardVaultManagerModel.prototype.getNonceByCardData = function(lastFour, cardType, expiration) {\n return getCardFromVaultMgrByData(this.customerPaymentMethodsFromVaultPromise,\n lastFour,\n cardType,\n expiration);\n};\n\nmodule.exports = CreditCardVaultManagerModel;\n","'use strict';\n\nmodule.exports = {\n FLOW_NEW_CARD_NAME: 'newcard',\n FLOW_SESSION_CARD_NAME: 'sessioncard',\n FLOW_STORED_CARD_NAME: 'js-stored-card'\n};\n","'use strict';\n\n// Braintree SDK model builder, we need to init Braintree Credit Card model on this level, since we are using it on step of \"creditCardFields.init()\"\n// and on step of \"creditCardPayment.init()\".\n\nconst creditCardFields = require('./components/creditCardFields');\n\nconst HostedFieldsModel = require('./braintreesdk/hostedFieldsModel');\nconst CreditCardAlertHandlerModel = require('../creditcard/alertHandler/creditCardAlertHandlerModel');\n\nconst hostedFieldsInstance = new HostedFieldsModel();\n\nlet btCreditCardModelResponse;\nlet creditCardMessages;\n\n/**\n * Inits Credit Card functionality on the Account Page\n * @returns {void}\n */\nfunction initAccount() {\n const creditCardAccount = require('./components/creditCardAccount');\n\n const alertHandler = new CreditCardAlertHandlerModel(creditCardMessages);\n const { basicFlowConfigs, styles } = hostedFieldsInstance.getFieldsOptions();\n\n // Sets an appropriate hosted fields options object for Account page\n hostedFieldsInstance.setHostedFieldsOptions({\n styles: styles,\n configs: basicFlowConfigs\n });\n\n if (!btCreditCardModelResponse || btCreditCardModelResponse.error) {\n alertHandler.handleCreditCardError(btCreditCardModelResponse.message);\n }\n\n creditCardAccount.init(btCreditCardModelResponse.btCreditCardModel,\n alertHandler,\n creditCardMessages,\n hostedFieldsInstance);\n\n creditCardFields.init(btCreditCardModelResponse.btCreditCardModel,\n alertHandler,\n hostedFieldsInstance);\n}\n\n/**\n * Inits Credit Card functionality on the Checkout Page\n * @returns {void}\n */\nasync function initCheckout() {\n const creditCardList = require('./components/creditCardList');\n const creditCardPaymentProcessing = require('./components/creditCardPaymentProcessing');\n\n const alertHandler = new CreditCardAlertHandlerModel(creditCardMessages);\n // Hosted fields options initializations\n const fieldsOptions = hostedFieldsInstance.getFieldsOptions();\n const isReVerifyFlow = hostedFieldsInstance.hostedFieldsConfigs.isCcReVerifyEnabled && hostedFieldsInstance.hostedFieldsConfigs.isSavedCreditCard;\n const configs = isReVerifyFlow ? fieldsOptions.reverifyFlowConfigs : fieldsOptions.basicFlowConfigs;\n\n // Sets an appropriate hosted fields options object for Checkout page\n hostedFieldsInstance.setHostedFieldsOptions({\n styles: fieldsOptions.styles,\n configs\n });\n\n if (!btCreditCardModelResponse || btCreditCardModelResponse.error) {\n alertHandler.handleCreditCardError(btCreditCardModelResponse.message);\n }\n\n // Call server to update data from basket\n await btCreditCardModelResponse.btCreditCardModel.updateOrderData();\n\n creditCardFields.init(btCreditCardModelResponse.btCreditCardModel,\n alertHandler,\n hostedFieldsInstance);\n\n creditCardList.init(btCreditCardModelResponse.btCreditCardModel,\n alertHandler,\n hostedFieldsInstance);\n\n creditCardPaymentProcessing.init(alertHandler,\n hostedFieldsInstance);\n}\n\n/**\n * Inits 'braintreeCreditCardModelBuilder' on creditCard level\n */\nfunction init() {\n const braintreeCreditCardModelBuilder = require('./braintreesdk/braintreeCreditCardModelBuilder');\n\n btCreditCardModelResponse = braintreeCreditCardModelBuilder.init();\n\n if (!btCreditCardModelResponse.error) {\n creditCardMessages = btCreditCardModelResponse.btCreditCardConfigs.messages;\n }\n}\n\nmodule.exports = {\n initAccount,\n initCheckout,\n init\n};\n","'use strict';\n\n/**\n * Creates tokenization options for 'tokenize' function.\n * @returns {Object} Object with tokenization options.\n */\nfunction createTokenizationOptions() {\n const creditCardBillingAddressHelper = require('./creditCardBillingAddressHelper');\n\n return {\n billingAddress: creditCardBillingAddressHelper.createCreditCardBillingAddress()\n };\n}\n\nmodule.exports = {\n createTokenizationOptions\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * Sets value of credit card hidden fields needed for server side\n * @param {Object} tokenizePayload Tokenize payload\n */\nfunction setCardHiddenFields(tokenizePayload) {\n const tokenizePayloadDetails = tokenizePayload.details;\n\n document.getElementById('braintreeCreditCardNonce').value = tokenizePayload.nonce;\n document.getElementById('braintreeCardType').value = tokenizePayloadDetails.cardType;\n document.getElementById('braintreeCardMaskNumber').value = tokenizePayloadDetails.lastFour;\n document.getElementById('braintreeCardHolder').value = tokenizePayloadDetails.cardholderName;\n}\n\n/**\n * @param {Object} billingAddress billing address\n * @returns {Object} preperad data\n */\nfunction getDataForVerifyCard(billingAddress) {\n let preparedData = {};\n\n const $customerInfo = document.querySelector('.js-braintree-add-new-card-block');\n\n if ($customerInfo) {\n preparedData = helper.tryParseJSON($customerInfo.getAttribute('data-customer-info-card'));\n }\n\n if (Object.keys(preparedData.billingData).length === Object.keys(billingAddress).length) {\n preparedData.billingData = billingAddress;\n }\n\n return preparedData;\n}\n\n/**\n * @param {Object} braintreeCreditCardModel credit card model\n * @param {Object} tokenizePayload payload\n * @param {Object} errorList object with errors\n * @returns {Object} result of validation\n */\nfunction verifyCard3dSecure(braintreeCreditCardModel, tokenizePayload, errorList) {\n const creditCardHelper = require('../helpers/creditCardHelper');\n\n const prefs = creditCardHelper.getCheckoutBraintreeCreditCardConfigs();\n const is3DSecureFlow = prefs.is3dSecureEnabled || braintreeCreditCardModel.isTrigger3DSecureFlow(tokenizePayload);\n\n if (prefs.is3DSecureVerificationAccountPage && is3DSecureFlow) {\n // Fill in this data\n const billingData = {};\n const orderAmount = '0.00';\n const customerInfo = getDataForVerifyCard(billingData);\n\n const nonce = tokenizePayload.nonce;\n const bin = tokenizePayload.details ? tokenizePayload.details.bin : '';\n\n const braintreeCreditCardSDK = require('../braintreesdk/braintreeCreditCardSDK');\n\n return braintreeCreditCardSDK.apply3dSecureValidation(nonce,\n bin,\n orderAmount,\n customerInfo.email,\n customerInfo.billingData,\n customerInfo.shippingAdditionalInfo).then(function(payload) {\n if (payload.liabilityShifted) {\n // \"Nonce\" is changed after successful 3DS validation. We need this line to store the last \"nonce\" value\n if (tokenizePayload) {\n // For stored card use case we don't need this param\n tokenizePayload.nonce = payload.nonce;\n }\n\n return {\n threeDSecureDataValidationPayload: payload,\n btTokenizePayload: tokenizePayload\n };\n }\n\n // Case when buyer \"canceled\" 3DS window\n throw new Error(errorList.CARD_VERIFY_ERROR_MESSAGE);\n });\n }\n\n return {};\n}\n\nmodule.exports = {\n verifyCard3dSecure,\n setCardHiddenFields,\n getDataForVerifyCard\n};\n","'use strict';\n\n/**\n * Display billing address of passed payment option (of selected Credit Card payment option)\n * @param {Object} $selectedCreditCardPayment Selected PayPal payment option\n */\nfunction displaySelectedStoredBillingAddress($selectedCreditCardPayment) {\n const paymentMethodGeneralHelper = require('../../paymentMethodGeneralHelper');\n\n if ($selectedCreditCardPayment) {\n const selectedOptionClassList = $selectedCreditCardPayment.classList;\n const storedCcAddressClassName = 'js-stored-credit-card-address';\n const $storedCreditCardAddressOption = document.querySelector(`.${storedCcAddressClassName}`);\n\n if (selectedOptionClassList.contains('js-stored-card')) {\n const billingAddressAsString = paymentMethodGeneralHelper.getBillingAddressAsString($selectedCreditCardPayment);\n\n if (billingAddressAsString !== '') {\n if ($storedCreditCardAddressOption) {\n $storedCreditCardAddressOption.innerText = billingAddressAsString;\n $storedCreditCardAddressOption.selected = true;\n } else {\n const option = document.createElement('option');\n\n option.innerHTML = billingAddressAsString;\n option.selected = true;\n option.classList.add(storedCcAddressClassName);\n\n document.getElementById('billingAddressSelector').append(option);\n }\n }\n } else if ($storedCreditCardAddressOption) {\n $storedCreditCardAddressOption.selected = false;\n }\n }\n}\n\n/**\n * Shows or hides a billing info alert for the credit cart payment method\n * @param {Object} savedBillingAddress A billing Address object\n */\nfunction initBillingInfoAlert(savedBillingAddress) {\n const $creditCardBillingInfoAlert = document.querySelector('.js-creditcard-billing-address-info-alert');\n // Shows or hides a billing info alert for Credit card payment\n\n if (savedBillingAddress) {\n $creditCardBillingInfoAlert.style.display = 'block';\n } else {\n $creditCardBillingInfoAlert.style.display = 'none';\n }\n}\n\n/**\n * Creates a valid billing address for Credit card payment method\n * @returns {Object} A billing address object\n */\nfunction createCreditCardBillingAddress() {\n const helper = require('../../helper');\n\n const billingData = helper.getBillingAddressFormValues();\n\n return {\n firstName: billingData.firstName,\n lastName: billingData.lastName,\n address1: decodeURIComponent(billingData.address1),\n address2: decodeURIComponent(billingData.address2),\n city: decodeURIComponent(billingData.city),\n stateCode: billingData.stateCode,\n postalCode: decodeURIComponent(billingData.postalCode),\n country: decodeURIComponent(billingData.country),\n phone: billingData.phone\n };\n}\n\n/**\n * Fills a credit card billing address input the with billing address data\n * @param {Object} billingAddress A billing address object\n */\nfunction setCreditCardBillingAddress(billingAddress) {\n document.getElementById('braintreeCardBillingAddress').value = JSON.stringify(billingAddress);\n}\n\nmodule.exports = {\n initBillingInfoAlert,\n createCreditCardBillingAddress,\n setCreditCardBillingAddress,\n displaySelectedStoredBillingAddress\n};\n","'use strict';\n\n// This file is about form fields manipulations.\n\n/**\n * Returns an object contains an object and an array of credit card fields to Display\n * @returns {Object} Object\n */\nfunction getCCFieldsToDisplay() {\n const ccToDisplayFieldsAsObject = {\n cardOwnerToDisplay: document.getElementById('braintreeCardOwnerToDisplay'),\n cardNumberToDisplay: document.getElementById('braintreeCardNumberToDisplay'),\n cardExpirationToDisplay: document.getElementById('braintreeExpirationToDisplay')\n };\n\n return {\n asObject: ccToDisplayFieldsAsObject,\n asArray: Object.values(ccToDisplayFieldsAsObject)\n };\n}\n\n/**\n * Returns an object contains an object and an array of credit card cvv field to Display\n * @returns {Object} Object\n */\nconst getCcCvvToDisplayField = () => {\n const asObject = {\n cardCvvToDisplay: document.getElementById('braintreeCvvToDisplay')\n };\n\n return {\n asObject: asObject,\n asArray: Object.values(asObject)\n };\n};\n\n/**\n * Returns an object contains an object and an array of cvv credit card field\n * @returns {Object} Object\n */\nconst getCcCvvField = () => {\n const asObject = {\n braintreeCvv: document.getElementById('braintreeCvv')\n };\n\n return {\n asObject: asObject,\n asArray: Object.values(asObject)\n };\n};\n\n/**\n * Returns an object contains an object and an array of credit card fields\n * @returns {Object} Object\n */\nfunction getCCFields() {\n const ccFieldsAsObject = {\n braintreeCardOwner: document.getElementById('braintreeCardOwner'),\n braintreeExpirationDate: document.getElementById('braintreeExpirationDate'),\n braintreeCardNumber: document.getElementById('braintreeCardNumber')\n };\n\n return {\n asObject: ccFieldsAsObject,\n asArray: Object.values(ccFieldsAsObject)\n };\n}\n\n/**\n * Returns braintreeCreditCardNonce container\n * @returns {Object} Input element\n */\nfunction getCreditCardNonceFieldContainer() {\n return document.getElementById('braintreeCreditCardNonce');\n}\n\n/**\n * Returns braintreeCreditCardList container\n * @returns {Object} Select element\n */\nfunction getCreditCardListContainer() {\n return document.getElementById('braintreeCreditCardList');\n}\n\n/**\n * Sets Credit Card field to display\n * @param {Object} selectedCard The values of fields to be set\n * @param {Object} cacheCardFields Object of elements contain credit cards fields to display\n */\nfunction setCreditCardFieldsToDisplay(selectedCard, cacheCardFields) {\n const cartNumber = selectedCard.dataset.number;\n\n cacheCardFields.cardNumberToDisplay.innerHTML = cartNumber;\n cacheCardFields.cardExpirationToDisplay.innerHTML = selectedCard.dataset.expiration;\n cacheCardFields.cardOwnerToDisplay.innerHTML = selectedCard.dataset.owner;\n\n if (cacheCardFields.cardCvvToDisplay) {\n cacheCardFields.cardCvvToDisplay.innerHTML = '***';\n }\n\n document.getElementById('braintreeCardType').value = selectedCard.dataset.type;\n document.getElementById('braintreeCardMaskNumber').value = cartNumber;\n}\n\n/**\n * Sets Credit Card fileds on the Billing Page\n * @param {Object} selectedCard The values of fields to be set\n * @param {Object} cacheCardFields Object of elements contain credit cards fields\n */\nfunction setCardFields(selectedCard, cacheCardFields) {\n cacheCardFields.cardNumberToDisplay.innerHTML = selectedCard['data-number'].value;\n cacheCardFields.cardExpirationToDisplay.innerHTML = selectedCard['data-expiration'].value;\n cacheCardFields.cardOwnerToDisplay.innerHTML = selectedCard['data-owner'].value;\n\n if (cacheCardFields.cardCvvToDisplay) {\n cacheCardFields.cardCvvToDisplay.innerHTML = '***';\n }\n\n document.getElementById('braintreeCardType').value = selectedCard['data-type'].value;\n document.getElementById('braintreeCardMaskNumber').value = selectedCard['data-number'].value;\n}\n\n/**\n * Shows Credit Card fileds on the Billing Page\n * @param {Array} cardFields Array of credit card fileds\n */\nfunction showCardElements(cardFields) {\n cardFields.forEach(function(el) {\n el.style.display = '';\n });\n}\n\n/**\n * Hides Credit Card fileds on the Billing Page\n * @param {Array} cardFields Array of Credit Card fileds\n */\nfunction hideCardElements(cardFields) {\n cardFields.forEach(function(el) {\n el.style.display = 'none';\n });\n}\n\n/**\n * Returns Credit Card hosted fileds styles\n * @returns {Object} Object of styles\n */\nfunction getHostedFieldsStyles() {\n return {\n input: {\n 'font-size': '12px',\n color: '#b7802a'\n },\n ':focus': {\n color: 'blue'\n },\n '.valid': {\n color: 'green'\n },\n '.invalid': {\n color: 'red'\n },\n '.cvv::placeholder': {\n color: 'red'\n }\n };\n}\n\nlet base = {\n getCCFieldsToDisplay,\n getCCFields,\n getCreditCardNonceFieldContainer,\n getCreditCardListContainer,\n showCardElements,\n hideCardElements,\n setCreditCardFieldsToDisplay,\n setCardFields,\n getHostedFieldsStyles,\n getCcCvvToDisplayField,\n getCcCvvField\n};\n\nObject.assign(base, require('braintree_ext/braintree/creditcard/helpers/creditCardFormFieldsHelper'));\n\nmodule.exports = base;\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * Uncheck Save Credit Card checkbox\n * @param {boolean} save true/false\n */\nfunction saveCreditCard(save) {\n const isSave = save ? true : false; // eslint-disable-line\n\n document.getElementById('braintreeSaveCreditCard').checked = isSave;\n}\n\n/**\n * Hides or Display 'braintreeSaveCardContainer' container\n * @param {boolean} hide true/false\n */\nfunction hideSaveCreditCardBlock(hide) {\n const isHide = hide ? true : false; // eslint-disable-line\n\n document.getElementById('braintreeSaveCardContainer').style.display = isHide ? 'none' : 'block';\n}\n\n/**\n * Returns Braintree Credit Card configs\n * @returns {Object} Braintree Credit Card configs\n */\nfunction getCheckoutBraintreeCreditCardConfigs() {\n let braintreeCreditCardFieldsConfigs = null;\n\n try {\n braintreeCreditCardFieldsConfigs = helper.tryParseJSON(document.querySelector('.js-braintree-credit-card-fields')\n .getAttribute('data-braintree-config'));\n } catch (error) {\n return braintreeCreditCardFieldsConfigs;\n }\n\n return braintreeCreditCardFieldsConfigs;\n}\n\n/**\n * Returns a selected credit card option\n * @returns {DomElement} A selected credit card option\n */\nfunction getSelectedCcAccountOption() {\n const creditCardFormFieldHelper = require('../helpers/creditCardFormFieldsHelper');\n const $creditCardList = creditCardFormFieldHelper.getCreditCardListContainer();\n\n return document.getElementById('braintreeCreditCardList').options[$creditCardList.selectedIndex];\n}\n\n/**\n * Returns a credit card billing address as string from data attribute\n * @returns {string} A credit card billing address as string\n */\nfunction getSavedCcBillingAddressAsString() {\n return getSelectedCcAccountOption().getAttribute('data-billing-address');\n}\n\nmodule.exports = {\n getCheckoutBraintreeCreditCardConfigs,\n saveCreditCard,\n hideSaveCreditCardBlock,\n getSavedCcBillingAddressAsString,\n getSelectedCcAccountOption\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst CreditCardVaultManagerModel = require('../components/creditCardVaultManagerModel');\n\nconst cardPlaceholder = '************';\nconst btSessionCreditAccountSelectorID = 'braintreeSessionCreditAccount';\nconst ATTR_DATA_EXPIRATION = 'data-expiration';\n\n/**\n * Displays stores Credit Cards list on the Billing Page\n */\nfunction displayStoredCreditCardList() {\n const $creditCardAccount = document.querySelector('.js-braintree-used-creditcard-account');\n\n $creditCardAccount.classList.remove('used-creditcard-account-hide');\n $creditCardAccount.classList.add('used-creditcard-account');\n}\n\n/**\n * Fills the Credit Card form hidden inputs with payload data\n * @param {Object} braintreeResponse Object contains the data of new payment method\n */\nfunction fillCreditCardFormWithPayloadData(braintreeResponse) {\n const btResponse = braintreeResponse.btTokenizePayload;\n const $creditCardFieldsCardNumber = document.querySelector('input[name=dwfrm_billing_creditCardFields_cardNumber]');\n\n if (btResponse) {\n const btResponseDetails = btResponse.details;\n\n document.getElementById('braintreeCardType').value = btResponseDetails.cardType;\n document.getElementById('braintreeCardMaskNumber').value = cardPlaceholder + btResponseDetails.lastFour;\n document.getElementById('braintreeCardExpirationMonth').value = btResponseDetails.expirationMonth;\n document.getElementById('braintreeCardExpirationYear').value = btResponseDetails.expirationYear.substr(2);\n document.getElementById('braintreeCardHolder').value = btResponseDetails.cardholderName;\n\n if ($creditCardFieldsCardNumber) {\n $creditCardFieldsCardNumber.value = cardPlaceholder + btResponseDetails.lastFour;\n }\n\n document.querySelector('input[name=braintreePaymentMethodNonce]').value = btResponse.nonce;\n }\n}\n\n/**\n * Fills the session Credit Card form inputs with payload data\n * @param {Object} braintreeResponse Object contains the data of new payment method\n */\nfunction fillSessionCreditCardFormWithPayloadData(braintreeResponse) {\n const btResponse = braintreeResponse.btTokenizePayload;\n const usedCreditCardAccount = Boolean(document.querySelector('.js-braintree-used-creditcard-account'));\n\n if (usedCreditCardAccount && btResponse) {\n const btResponseDetails = btResponse.details;\n const $sessionCreditCard = document.getElementById(btSessionCreditAccountSelectorID);\n\n // Fields filling for displaying session card fields to the buyer\n document.getElementById('braintreeCardOwnerToDisplay').textContent = btResponseDetails.cardholderName;\n document.getElementById('braintreeCardNumberToDisplay').textContent = cardPlaceholder + btResponseDetails.lastFour;\n document.getElementById('braintreeExpirationToDisplay').textContent\n = `${btResponseDetails.expirationMonth}/${btResponseDetails.expirationYear.substr(2)}`;\n\n // Fields filling for displaying session card option value\n $sessionCreditCard.textContent = `${$sessionCreditCard.getAttribute('data-type')}\n ${$sessionCreditCard.getAttribute('data-number')}\n ${$sessionCreditCard.getAttribute(ATTR_DATA_EXPIRATION)}\n ${$sessionCreditCard.getAttribute('data-owner')}`;\n }\n}\n\n/**\n * Fills new/session credit card attributes to available option for using them in business logic (client/server)\n * @param {Object} braintreeResponse Tokenize payload from braintree\n * @param {boolean} isSessionCard Whether session card or not, depending on Session Payments Enabled pref\n */\nfunction setCreditCardDataAttributes(braintreeResponse, isSessionCard) {\n const $sessionCreditCard = document.getElementById(`${isSessionCard ? btSessionCreditAccountSelectorID : 'newCardAccount'}`);\n const $braintreeSaveCreditCard = document.getElementById('braintreeSaveCreditCard');\n\n const btResponse = braintreeResponse.btTokenizePayload;\n const btResponseDetails = btResponse.details;\n const isSavedCard = $braintreeSaveCreditCard ? $braintreeSaveCreditCard.checked : false;\n\n $sessionCreditCard.classList.remove('used-creditcard-account-hide');\n $sessionCreditCard.setAttribute('data-number', cardPlaceholder + btResponseDetails.lastFour);\n $sessionCreditCard.setAttribute(ATTR_DATA_EXPIRATION, `${btResponseDetails.expirationMonth}/${btResponseDetails.expirationYear.substr(2)}`);\n $sessionCreditCard.setAttribute('data-type', btResponseDetails.cardType);\n $sessionCreditCard.setAttribute('data-last-four', btResponseDetails.lastFour);\n $sessionCreditCard.setAttribute('data-owner', btResponseDetails.cardholderName);\n $sessionCreditCard.setAttribute('data-nonce', btResponse.nonce);\n $sessionCreditCard.setAttribute('data-session-account', isSessionCard);\n $sessionCreditCard.setAttribute('data-save-card', isSavedCard);\n}\n\n/**\n * Marks a session Credit Card account as selected\n */\nfunction markAsSelectedSessionAccount() {\n const $newCCAccount = document.getElementById('newCardAccount');\n const $sessionCreditCard = document.getElementById(btSessionCreditAccountSelectorID);\n\n $newCCAccount.removeAttribute('selected');\n $sessionCreditCard.selected = true;\n}\n\n/**\n * Returns a Credit Card flow ID from selector\n * @param {Object} $creditCardList Selector contained the Credit Card flow ID\n * @returns {string} Credit Card flow ID\n */\nfunction getCreditCardFlowID($creditCardList) {\n const selectedOptionValue = $creditCardList.value;\n const newCardID = 'newcard';\n const sessionCardID = 'sessioncard';\n const storedCardID = 'js-stored-card';\n\n let selectedOption = null;\n let creditCardFlowID = null;\n\n switch (selectedOptionValue) {\n case newCardID:\n creditCardFlowID = newCardID;\n\n break;\n\n case sessionCardID:\n creditCardFlowID = sessionCardID;\n\n break;\n\n default:\n selectedOption = helper.getSelectedOption($creditCardList);\n\n if (selectedOption.classList.contains(storedCardID)) {\n creditCardFlowID = storedCardID;\n }\n\n break;\n }\n\n return creditCardFlowID;\n}\n\n/**\n * Returns object with nonce related to stored card\n * @param {Promise} clientInstancePromise Client instance promise\n * @param {Object} $creditCardList Selector with needed data\n * @returns {Object} Response object\n */\nfunction getNonceFromStoredCard(clientInstancePromise, $creditCardList) {\n const CreditCardVaultManagerModelInstance = new CreditCardVaultManagerModel(clientInstancePromise);\n const $selectedOption = helper.getSelectedOption($creditCardList);\n const cardType = $selectedOption.getAttribute('data-type').toLowerCase();\n const lastFour = $selectedOption.getAttribute('data-last-four').toString();\n const [month, year] = $selectedOption.getAttribute(ATTR_DATA_EXPIRATION).split('/');\n const expiration = { month, year };\n\n return CreditCardVaultManagerModelInstance.getNonceByCardData(lastFour, cardType, expiration);\n}\n\n/**\n * Fills 3DS data\n * @param {Object} threeDSecureDataValidationPayload 3DS information about the card\n */\nfunction fill3DsData(threeDSecureDataValidationPayload) {\n const $braintreeIs3dSecureRequired = document.getElementById('braintreeIs3dSecureRequired');\n\n if (threeDSecureDataValidationPayload && threeDSecureDataValidationPayload.liabilityShifted) {\n $braintreeIs3dSecureRequired.value = 'true';\n }\n}\n\n/**\n * Returns whether Credit Card tab is active on the Billing Page\n * @returns {boolean} true/false\n */\nfunction isActiveCreditCardTab() {\n return document\n .querySelector('.payment-options[role=tablist] a[data-toggle=\"tab\"][href=\"#creditcard-content\"]')\n .classList\n .contains('active');\n}\n\n/**\n * Get stored card by last four digits and card type\n * @param {string} lastFour Last four card digits\n * @param {string} cardType Card type\n * @returns {Object} Jquery object of found stored card\n */\nfunction getStoredCardByData(lastFour, cardType) {\n return Array.from(document.querySelectorAll('.js-stored-card')).find(($card) => {\n const storedCardType = $card.dataset.type.toLowerCase();\n const storedCardLastFour = $card.dataset.lastFour.toString();\n\n return storedCardType === cardType && storedCardLastFour === lastFour;\n });\n}\n\n/**\n * Shows already stored card by last four digits and card type\n * @param {string} lastFour Last four card digits\n * @param {string} cardType Card type\n * @returns {boolean} true in case if stored card with provided params (lastFour, cardType) was found\n */\nfunction showAlreadyStoredCard(lastFour, cardType) {\n const $storedCard = getStoredCardByData(lastFour, cardType);\n let flag = false;\n\n if ($storedCard) {\n flag = true;\n }\n\n return flag;\n}\n\nlet base = {\n displayStoredCreditCardList,\n fillCreditCardFormWithPayloadData,\n fillSessionCreditCardFormWithPayloadData,\n setCreditCardDataAttributes,\n markAsSelectedSessionAccount,\n getCreditCardFlowID,\n getNonceFromStoredCard,\n fill3DsData,\n isActiveCreditCardTab,\n showAlreadyStoredCard\n};\n\nObject.assign(base, require('braintree_ext/braintree/creditcard/helpers/creditCardPaymentProcessingHelper'));\n\nmodule.exports = base;\n","'use strict';\n\nconst creditCardFormFieldHelper = require('../helpers/creditCardFormFieldsHelper');\n\n/**\n * Clears Credit Card fields of session account\n */\nfunction clearCreditCardFields() {\n const creditCardFieldsArray = creditCardFormFieldHelper.getCCFields().asArray;\n\n creditCardFieldsArray.forEach(function(el) {\n el.value = '';\n });\n}\n\n/**\n * Clears Credit Card nonce of session account\n */\nfunction clearCreditCardNonceField() {\n document.getElementById('braintreeCreditCardNonce').value = '';\n}\n\nmodule.exports = {\n clearCreditCardFields,\n clearCreditCardNonceField\n};\n","'use strict';\n\nconst AlertHandlerModel = require('../../alertHandler');\nconst googlePayErrorMessages = require('../constants/errorMessages');\n\n/**\n * Google Pay alert handler model\n */\nclass GooglePayAlertHandlerModel extends AlertHandlerModel {\n constructor(alertMessages) {\n super();\n this.alertMessages = alertMessages;\n }\n\n /**\n * Shows order total equal 0 error\n */\n showOrderTotalError() {\n const zeroAmountErrorMsg = googlePayErrorMessages.ORDER_TOTAL_0;\n\n this.showError(zeroAmountErrorMsg);\n throw zeroAmountErrorMsg;\n }\n\n /**\n * Handles Google Pay error by types\n * @param {Object} error Error object or error message\n */\n handleGooglePayError(error) {\n if (error.name === 'BraintreeError') {\n this.showBraintreeError(error);\n } else if (error.statusCode === 'DEVELOPER_ERROR') {\n this.showError(error.statusMessage);\n } else if (error.message !== googlePayErrorMessages.GOOGLE_PAY_WINDOW_CLOSED) {\n this.showError(error.message);\n }\n }\n\n /**\n * Creates a Google Pay error object to show on Google Pay popup\n * @param {string} intent Intent of Google Pay error\n * @param {string} errorMessage Error message\n * @returns {Object} An error pbject\n */\n getPaymentDataError(intent, errorMessage) {\n const googlePayConstants = require('../constants/googlePayPaymentProcessingConstants');\n const errorMessages = require('../constants/errorMessages');\n\n if (intent === googlePayConstants.INTENT_SHIPPING_OPTION) {\n return {\n reason: googlePayConstants.REASON_SHIPPING_OPTION_INVALID,\n message: errorMessage || errorMessages.SHIPPING_OPTION_INVALID,\n intent: intent\n };\n }\n\n if (intent === googlePayConstants.INTENT_SHIPPING_ADDRESS) {\n return {\n reason: googlePayConstants.REASON_SHIPPING_ADDRESS_UNSERVICEABLE,\n message: errorMessages.SHIPPING_ADDRESS_UNSERVICEABLE,\n intent: intent\n };\n }\n\n return {};\n }\n}\n\nmodule.exports = GooglePayAlertHandlerModel;\n","'use strict';\n\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst braintreeGooglePaySDK = require('../braintreesdk/braintreeGooglePaySDK');\nconst helper = require('../../helper');\n\n/* global Promise braintree $ */\n\n// Global variables\n// Is Froud tools enabled\nlet isFtEnabled;\nlet btClientInstancePromise;\nlet googlePaymentInstance;\nlet paymentsClient;\n\nlet amount;\nlet currencyCode;\n\nlet shippingOptionId;\n\n/**\n * Init Baintree Credit Card model\n * @param {Promise} braintreeClientInstancePromise Braintree client instance promise\n * @param {boolean} isFraudToolsEnabled Is fraud tools enabled value\n */\nfunction init(braintreeClientInstancePromise, isFraudToolsEnabled) {\n braintreeGooglePaySDK.init(braintreeClientInstancePromise);\n\n btClientInstancePromise = braintreeClientInstancePromise;\n isFtEnabled = isFraudToolsEnabled;\n}\n\n/**\n * Returns fraud data from dataCollector payload\n * @returns {Object} Payload with fraud data\n */\nfunction collectFraudData() {\n let response;\n\n if (isFtEnabled) {\n response = braintreeGeneral.collectFraudData(btClientInstancePromise);\n } else {\n response = Promise.resolve({\n customMessage: 'Fraud Data collection isn\\t enabled via Custom Site Preference'\n });\n }\n\n return response;\n}\n\n/**\n * Preparing googlePay payment\n * @param {string} googleMerchantId Google Pay merchant identifier\n * @returns {Promise} Promise with resolve 'true' if ready to pay\n */\nfunction initGooglePay(googleMerchantId) {\n return braintreeGooglePaySDK.createGooglePayment(googleMerchantId)\n .then(function(gpInstance) {\n const allowedPaymentMethods = gpInstance.createPaymentDataRequest().allowedPaymentMethods;\n\n googlePaymentInstance = gpInstance;\n\n return paymentsClient.isReadyToPay({\n // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest\n apiVersion: 2,\n apiVersionMinor: 0,\n allowedPaymentMethods: allowedPaymentMethods\n });\n });\n}\n\n/**\n * Creates a configuration object for use in the loadPaymentData method.\n * @param {Object} options Object with payment options\n * @returns {Object} Configuration object\n */\nfunction createPaymentDataRequest(options) {\n return braintreeGooglePaySDK.createPaymentDataRequest(googlePaymentInstance, options, amount);\n}\n\n/**\n * Parse the response from the tokenization.\n * @param {Object} paymentData The response back from the Google Pay tokenization.\n * @returns {Promise} Promise that resolve with a tokenizePayload\n */\nfunction parseResponse(paymentData) {\n return braintreeGooglePaySDK.parseResponse(paymentData, googlePaymentInstance);\n}\n\n/**\n * Update order amount\n * @returns {Promise} resolved promise which updates the amount\n */\nfunction googlePayUpdateAmount() {\n const config = helper.tryParseJSON(document.querySelector('.js-braintree-googlepay-button').getAttribute('data-braintree-config'));\n\n return fetch(helper.getUrlWithCsrfToken(config.getOrderInfoUrl))\n .then((response) => {\n if (!response.ok) {\n window.location.reload();\n }\n\n return response.json();\n })\n .then((data) => {\n amount = data.amount;\n currencyCode = data.currencyCode;\n });\n}\n\n/**\n * Handles dynamic buy flow shipping address and shipping options callback intents.\n * @param {Object} intermediatePaymentData response from Google Pay API a shipping address or shipping option is selected in the payment sheet.\n * @returns {Promise} Promise of PaymentDataRequestUpdate object to update the payment sheet.\n */\nasync function onPaymentDataChanged(intermediatePaymentData) {\n const googlePayConstants = require('../constants/googlePayPaymentProcessingConstants');\n const GooglePayAlertHandlerModel = require('../alerthandler/googlePayAlertHandlerModel');\n\n const alertHandler = new GooglePayAlertHandlerModel();\n const shippingAddress = intermediatePaymentData.shippingAddress;\n const paymentDataRequestUpdate = {};\n\n let isShippingMethodApplicable;\n\n shippingOptionId = intermediatePaymentData.shippingOptionData.id;\n\n if (shippingAddress) {\n const city = shippingAddress.locality;\n const stateCode = shippingAddress.administrativeArea;\n const countryCode = shippingAddress.countryCode;\n const postalCode = shippingAddress.postalCode;\n const addressQueryString = `city=${city}&stateCode=${stateCode}&countryCode=${countryCode}&postalCode=${postalCode}`;\n const paymentMethodId = window.braintreeConstants.PAYMENT_METHOD_ID_GOOGLEPAY;\n const url = `${window.braintreeUrls.getApplicableShippingOptions}?paymentMethodId=${paymentMethodId}&${addressQueryString}`;\n\n const applicableShippingMethods = await helper.getApplicableShippingOptions(url);\n\n isShippingMethodApplicable = applicableShippingMethods.find((shippingMethod) => shippingMethod.id === shippingOptionId);\n }\n\n if (intermediatePaymentData.callbackTrigger === googlePayConstants.INTENT_INITIALIZE\n || intermediatePaymentData.callbackTrigger === googlePayConstants.INTENT_SHIPPING_ADDRESS) {\n // Showing error if store doesn't ship to the address selected in Google Pay\n if (!shippingAddress) {\n return Promise.reject(paymentDataRequestUpdate);\n }\n\n if (!isShippingMethodApplicable) {\n paymentDataRequestUpdate.error = alertHandler.getPaymentDataError(googlePayConstants.INTENT_SHIPPING_ADDRESS);\n }\n } else if (intermediatePaymentData.callbackTrigger === googlePayConstants.INTENT_SHIPPING_OPTION) {\n // Showing error if store doesn't ship to the address selected in Google Pay\n if (!isShippingMethodApplicable) {\n paymentDataRequestUpdate.error = alertHandler.getPaymentDataError(googlePayConstants.INTENT_SHIPPING_OPTION);\n }\n\n // Recalculation amount taking into account new shipping price\n // Showing new amount in Google Pay\n const totalAmount = await helper.updateAmountForShippingOption(shippingOptionId);\n\n paymentDataRequestUpdate.newTransactionInfo = {\n currencyCode: currencyCode,\n totalPriceStatus: 'FINAL',\n totalPrice: totalAmount,\n totalPriceLabel: 'Final'\n };\n }\n\n return Promise.resolve(paymentDataRequestUpdate);\n}\n\n/**\n * Inits 'Google Pay' payment client object into braintreeGooglePayModel\n * @param {string} instanceType The type of the instance TEST/PRODUCTION\n * @param {string} flow Page flow\n */\nfunction initPaymentsClient(instanceType, flow) {\n const paymentDataCallbacks = {\n onPaymentAuthorized: () => Promise.resolve({ transactionState: 'SUCCESS' })\n };\n\n if (flow === window.braintreeConstants.PAGE_FLOW_CART) {\n paymentDataCallbacks.onPaymentDataChanged = onPaymentDataChanged;\n }\n\n paymentsClient = new google.payments.api.PaymentsClient({ // eslint-disable-line no-undef\n environment: instanceType, // TEST/PRODUCTION\n paymentDataCallbacks: paymentDataCallbacks\n });\n}\n\n/**\n * Gets 'Google Pay' payment client object\n * @returns {Object} 'Google Pay' payment client object\n */\nfunction getPaymentsClient() {\n return paymentsClient;\n}\n\nmodule.exports = {\n init,\n collectFraudData,\n initGooglePay,\n createPaymentDataRequest,\n parseResponse,\n googlePayUpdateAmount,\n // initialize a Google Pay 'PaymentsClient' object\n initPaymentsClient,\n getPaymentsClient\n};\n","'use strict';\n\nconst braintreeGooglePayModel = require('./braintreeGooglePayModel');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst googlePayHelper = require('../helpers/googlePayHelper');\n\nconst googlePayErrorMessages = require('../constants/errorMessages');\n\n/**\n * Initialize Braintree Google Pay Model. Pattern Builder is used\n * @returns {Object} Object with booleam \"error\" flag and \"message\" attribute with error message\n */\nfunction init() {\n const braintreeGooglePayConfigs = googlePayHelper.getBraintreeGooglePayConfigs();\n const response = {\n error: false,\n message: '',\n btGooglePayModel: null,\n btGooglePayConfigs: null\n };\n\n let clientToken;\n let btClientInstancePromise;\n\n if (braintreeGooglePayConfigs) {\n clientToken = braintreeGooglePayConfigs.clientToken;\n btClientInstancePromise = braintreeGeneral.createClientInstance(clientToken);\n\n braintreeGooglePayModel.init(btClientInstancePromise,\n braintreeGooglePayConfigs.isFraudToolsEnabled);\n\n response.btGooglePayModel = braintreeGooglePayModel;\n response.btGooglePayConfigs = braintreeGooglePayConfigs;\n } else {\n response.error = true;\n response.message = googlePayErrorMessages.NO_GOOGLE_PAY_BRAINTREE_CONFIGURATIONS;\n }\n\n return response;\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\n/* global braintreeUtils braintree $ */\n\nconst googlePaySDKHelper = require('../helpers/googlePaySDKHelper');\n\nlet btClientInstancePromise;\n\n/**\n * Creates googlePayment instance\n * @param {string} googleMerchantId Google Pay merchant identifier\n * @returns {Promise} A promise resolve with with the GooglePaymnet instance\n */\nfunction createGooglePayment(googleMerchantId) {\n return btClientInstancePromise\n .then(function(btClientInstance) {\n const googlePayOptions = googlePaySDKHelper.createGooglePayOptions(btClientInstance,\n googleMerchantId);\n\n return braintree.googlePayment.create(googlePayOptions);\n });\n}\n\n/**\n * Creates a configuration object for use in the loadPaymentData method.\n * @param {googlePaymentInstance} googlePaymentInstance Google Pay instance\n * @param {Object} options Object with payment options\n * @param {number} amount Order total amount\n * @returns {Object} Configuration object\n */\nfunction createPaymentDataRequest(googlePaymentInstance, options, amount) {\n const requestObject = {\n transactionInfo: {\n currencyCode: options.currency,\n totalPriceStatus: 'FINAL',\n totalPrice: String(amount)\n },\n merchantInfo: {\n merchantName: options.displayName\n },\n shippingAddressRequired: options.isShippingAddressRequired,\n shippingAddressParameters: {\n allowedCountryCodes: options.countries,\n phoneNumberRequired: true\n },\n emailRequired: true,\n callbackIntents: ['PAYMENT_AUTHORIZATION']\n };\n\n if (options.isShippingOptionRequired) {\n requestObject.shippingOptionRequired = options.isShippingOptionRequired;\n requestObject.shippingOptionParameters = {\n defaultSelectedOptionId: googlePaySDKHelper.getSelectedShippingId(),\n shippingOptions: options.shippingOptions\n };\n requestObject.callbackIntents.push('SHIPPING_ADDRESS', 'SHIPPING_OPTION');\n }\n\n if (options.merchantId) {\n requestObject.merchantInfo.merchantId = options.merchantId;\n }\n\n return googlePaymentInstance.createPaymentDataRequest(requestObject);\n}\n\n/**\n * Parse the response from the tokenization.\n * @param {Object} paymentData The response back from the Google Pay tokenization.\n * @param {googlePaymentInstance} googlePaymentInstance Google Pay instance\n * @returns {Promise} Promise that resolve with a tokenizePayload\n */\nfunction parseResponse(paymentData, googlePaymentInstance) {\n return googlePaymentInstance.parseResponse(paymentData);\n}\n\n/**\n * Inits braintreeGooglePaySDK with client instance promise\n * @param {Promise} braintreeClientInstancePromise Braintree client instance promise\n */\nfunction init(braintreeClientInstancePromise) {\n btClientInstancePromise = braintreeClientInstancePromise;\n}\n\nmodule.exports = {\n createGooglePayment,\n createPaymentDataRequest,\n parseResponse,\n init\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst loaderInstance = require('../../loaderHelper');\nconst paymentMethodGeneral = require('../../paymentMethodGeneral');\n\nconst $braintreeGooglePayLoader = document.querySelector('.js-braintree-googlepay-loader');\n\n// Global variables\nlet googlePayConfigs;\nlet googlePayBillingAddressData;\nlet googlePayShippingAddressData;\nlet googlePayNonce;\nlet googlepayPaymentType;\nlet googlePayCardDescription;\nlet googlepayCheckoutFormData;\nlet alertHandler;\nlet loader;\n\n/**\n * Expends Google Pay checkout form with required data\n */\nfunction expandGooglePayCheckoutFormData() {\n const deviceData = document.getElementById('braintreeGooglePayDeviceData').value;\n const $csrfToken = document.querySelector('.js-braintree-cart-buttons-wrap #csrf_token');\n\n googlepayCheckoutFormData.append($csrfToken.name, $csrfToken.value);\n googlepayCheckoutFormData.append('braintreeGooglePayNonce', googlePayNonce);\n googlepayCheckoutFormData.append('braintreeGooglePayDeviceData', deviceData);\n googlepayCheckoutFormData.append('braintreeGooglePayCardDescription', googlePayCardDescription);\n googlepayCheckoutFormData.append('braintreeGooglepayPaymentType', googlepayPaymentType);\n googlepayCheckoutFormData.append('braintreeGooglePayShippingAddress', JSON.stringify(googlePayShippingAddressData) || '{}');\n googlepayCheckoutFormData.append('braintreeGooglePayBillingAddress', JSON.stringify(googlePayBillingAddressData) || '{}');\n}\n\n/**\n * Process Google Pay on the Cart Page\n */\nfunction processCartFlow() {\n const $braintreeCartButtons = document.querySelector('.js-braintree-cart-buttons-wrap');\n const placeOrderUrl = window.braintreeUrls.placeOrderUrl;\n const checkoutSubmitPayment = window.braintreeUrls.checkoutSubmitPayment;\n const checkoutFormFields = $braintreeCartButtons.getAttribute('data-checkout-form-fields');\n const paymentFieldsData = helper.getPaymentFieldsData(googlePayBillingAddressData, googlePayConfigs.paymentMethodName);\n\n // Creates and updates Google Pay checkout form for service side\n googlepayCheckoutFormData = helper.createPaymentFormData(checkoutFormFields, paymentFieldsData);\n googlepayCheckoutFormData.append('pageFlowCart', true);\n expandGooglePayCheckoutFormData();\n // submit customer form with email (CheckoutServices-SubmitCustomer)\n // as we skip step \"login via guest/registered user\" while express checkout\n // email is set only in case of guest checkout and if email is not already set\n paymentMethodGeneral.submitCustomerForm(googlePayBillingAddressData.email);\n\n fetch(helper.getUrlWithCsrfToken(checkoutSubmitPayment), {\n method: 'POST',\n body: googlepayCheckoutFormData\n })\n .then((response) => response.json())\n .then((data) => {\n if (!helper.handleSubmitPaymentErrors(data, alertHandler)) {\n sessionStorage.setItem('pageState', 'cart');\n window.location.href = placeOrderUrl;\n }\n\n loader.hide();\n })\n .catch((error) => {\n if (error && error.redirectUrl) {\n window.location.href = error.redirectUrl;\n }\n });\n}\n\n/**\n * Inits Google Pay cart components\n * @param {Object} billingAddressData Billing address data object\n * @param {Object} shippingAddressData Shipping address data object\n * @param {string} nonce Payment method nonce\n * @param {string} paymentType Payment method type\n * @param {string} description Google Pay card description\n * @param {Constructor} alertHandlerModel Alert handler Model\n */\nfunction init(billingAddressData, shippingAddressData, nonce, paymentType, description, alertHandlerModel) {\n const $googlepayButton = document.querySelector('.js-braintree-googlepay-button');\n\n googlePayConfigs = helper.tryParseJSON($googlepayButton.getAttribute('data-braintree-config'));\n googlePayBillingAddressData = billingAddressData;\n googlePayShippingAddressData = shippingAddressData;\n googlePayNonce = nonce;\n googlepayPaymentType = paymentType;\n googlePayCardDescription = description;\n loader = loaderInstance($braintreeGooglePayLoader);\n alertHandler = alertHandlerModel;\n\n processCartFlow();\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n// Global variables\nlet googlePayBillingAddressData;\nlet googlePayNonce;\nlet googlepayPaymentType;\nlet googlePayCardDescription;\n\nconst $googlepayNonce = document.getElementById('braintreeGooglePayNonce');\nconst $googlepayCardDescription = document.getElementById('braintreeGooglePayCardDescription');\nconst $braintreeGooglepayPaymentType = document.getElementById('braintreeGooglepayPaymentType');\nconst $googlePayBillingAddress = document.getElementById('braintreeGooglePayBillingAddress');\n\n/**\n * Process Google Pay on the Checkout Page\n */\nfunction processCheckoutFlow() {\n $googlepayNonce.value = googlePayNonce;\n $googlepayCardDescription.value = googlePayCardDescription;\n $braintreeGooglepayPaymentType.value = googlepayPaymentType;\n\n // Updating Storefront Billing Form data with GooglePay Billing\n const storeFrontBillingData = helper.getUpdatedStoreFrontBillingData(googlePayBillingAddressData);\n\n $googlePayBillingAddress.value = JSON.stringify(googlePayBillingAddressData);\n\n helper.updateBillingFormValues(storeFrontBillingData);\n}\n\n/**\n * Inits Google Pay checkout components\n * @param {string} nonce Payment method nonce\n * @param {string} description Google Pay card description\n * @param {string} paymentType Payment method type\n * @param {Object} billingAddressData Billing address data object\n */\nfunction init(nonce, description, paymentType, billingAddressData) {\n googlePayBillingAddressData = billingAddressData;\n googlePayNonce = nonce;\n googlepayPaymentType = paymentType;\n googlePayCardDescription = description;\n\n processCheckoutFlow();\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst googlePayHelper = require('../helpers/googlePayHelper');\n\n/**\n * Inits Google Pay list components\n */\nfunction init() {\n const $googlepayCardDescription = document.getElementById('braintreeGooglePayCardDescription');\n const $btGooglepayAccountsList = document.getElementById('braintreeGooglepayAccountsList');\n const googlePayAccountListExist = Boolean($btGooglepayAccountsList);\n\n if (googlePayAccountListExist) {\n $btGooglepayAccountsList.addEventListener('change', function() {\n googlePayHelper.googlePayContentTabHandler(true);\n });\n }\n\n if ($googlepayCardDescription.value === 'GooglePay') {\n $googlepayCardDescription.value = $btGooglepayAccountsList.selectedOptions[0].label;\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\n// Helpers\nconst googlePayHelper = require('../helpers/googlePayHelper');\nconst loaderInstance = require('../../loaderHelper');\nconst googlePayPaymentProcessingHelper = require('../helpers/googlePayPaymentProcessingHelper');\nconst helper = require('../../helper');\n\n// Components\nconst googlePayCart = require('../components/googlePayCart');\nconst googlePayCheckout = require('../components/googlePayCheckout');\nconst googlePaySessionAccount = require('../components/googlePaySessionAccount');\nconst googlePayPaymentProcessingConstants = require('../constants/googlePayPaymentProcessingConstants');\n\n// Global varibales\nlet googlePayModel;\nlet paymentsClient;\nlet googlePayConfig;\nlet alertHandler;\n\nconst $googlePayButton = document.querySelector('.js-braintree-googlepay-button');\nconst $braintreeGooglePayLoader = document.querySelector('.js-braintree-googlepay-loader');\nconst $continueButton = document.querySelector('button.submit-payment');\n\nlet loader;\n\n/**\n * Functionality over tokenized payment\n * @param {Objet} data data object\n * @param {Object} result data object\n */\nfunction onTokenizePayment(data, result) {\n // General functionality for Cart and Billing Page\n const googlePayNonce = result.nonce;\n const googlePayPaymentType = result.type;\n const gpCardDescription = `${result.details.cardType} ${result.details.lastFour}`;\n const billingAddressData = googlePayPaymentProcessingHelper.createGooglepayBillingAddressData(data);\n const googlePayFlow = googlePayPaymentProcessingHelper.getGooglePayFlowId();\n\n let shippingAddressData;\n\n helper.removeActiveSessionPayment();\n\n switch (googlePayFlow) {\n case googlePayPaymentProcessingConstants.FLOW_CART_NAME:\n shippingAddressData = googlePayPaymentProcessingHelper.createGooglepayShippingAddressData(data.shippingAddress);\n\n googlePayCart.init(billingAddressData, shippingAddressData, googlePayNonce, googlePayPaymentType, gpCardDescription, alertHandler);\n\n break;\n case googlePayPaymentProcessingConstants.FLOW_CHECKOUT_NAME:\n const isSessionPaymentsEnabled = window.braintreePreferences.isSessionPaymentsEnabled;\n\n googlePayCheckout.init(googlePayNonce, gpCardDescription, googlePayPaymentType, billingAddressData);\n\n if (isSessionPaymentsEnabled) {\n googlePaySessionAccount.showGooglepayAccount(gpCardDescription);\n }\n\n $continueButton.click();\n\n break;\n default:\n break;\n }\n}\n\n/**\n * Call back function to be resolved when on Google Pay payment button is clicked\n * @returns {void}\n */\nasync function onGooglePaymentButtonClicked() { // eslint-disable-line no-inner-declarations\n const options = googlePayConfig.options;\n const amount = options.amount;\n\n if (googlePayConfig.googleMerchantId) {\n options.merchantId = googlePayConfig.googleMerchantId;\n }\n\n alertHandler.hideAlerts();\n\n try {\n if (amount === 0) {\n alertHandler.showOrderTotalError();\n }\n\n loader.show();\n\n // Updates order amount for paymentDataRequest\n await googlePayModel.googlePayUpdateAmount();\n\n if (options.isShippingOptionRequired) {\n const paymentMethodId = window.braintreeConstants.PAYMENT_METHOD_ID_GOOGLEPAY;\n const url = `${window.braintreeUrls.getApplicableShippingOptions}?paymentMethodId=${paymentMethodId}`;\n const shippingOptions = await helper.getApplicableShippingOptions(url);\n\n options.shippingOptions = shippingOptions;\n }\n\n // Create a configuration object for use in the loadPaymentData method.\n const paymentDataRequest = googlePayModel.createPaymentDataRequest(options);\n\n // Update card payment methods to require billing address\n const cardPaymentMethod = paymentDataRequest.allowedPaymentMethods[0];\n\n cardPaymentMethod.parameters.billingAddressRequired = true;\n cardPaymentMethod.parameters.billingAddressParameters = {\n format: 'FULL',\n phoneNumberRequired: true\n };\n\n paymentsClient.loadPaymentData(paymentDataRequest)\n .then(function(paymentData) {\n googlePayModel.parseResponse(paymentData)\n .then(function(tokenizePayload) {\n onTokenizePayment(paymentData, tokenizePayload);\n });\n loader.hide();\n })\n .catch(function(error) {\n loader.hide();\n alertHandler.handleGooglePayError(error);\n });\n } catch (error) {\n alertHandler.handleGooglePayError(error);\n }\n}\n\n/**\n * Init and add Google Pay on the Cart or Billing Page\n */\nfunction initGooglePay() {\n // This class generated by the Google Pay API, if size mode in BM is set to fill\n const $googlePayButtonFillStyle = document.querySelector('.gpay-button-fill-new-style');\n\n if (!$googlePayButtonFillStyle) {\n $googlePayButton.classList.add('googlepay-container');\n }\n\n // added default Google Pay style configuration in case of an error\n let googlePayButtonStyle = {\n buttonColor: 'black',\n buttonType: 'buy',\n buttonSizeMode: 'static'\n };\n\n const googlePayButtonConfigs = googlePayHelper.getBraintreeGooglePayConfigs();\n\n if (googlePayButtonConfigs && googlePayButtonConfigs.style) {\n googlePayButtonStyle = googlePayButtonConfigs.style;\n }\n\n const result = googlePayModel.collectFraudData()\n .then(function(fraudDataPayload) {\n googlePayHelper.setGooglePayDeviceData(fraudDataPayload);\n loader.hide();\n\n return googlePayModel.initGooglePay(googlePayConfig.googleMerchantId)\n .then(function(response) {\n if (response.result) {\n // Creates 'Google Pay Button' and append to the DOM\n googlePayButtonStyle.onClick = onGooglePaymentButtonClicked;\n const button = paymentsClient.createButton(googlePayButtonStyle);\n\n $googlePayButton.appendChild(button);\n }\n });\n });\n\n result.catch(function(error) {\n loader.hide();\n alertHandler.handleGooglePayError(error);\n });\n}\n\n/**\n * Inits Google Pay payment processing components\n * @param {Object} braintreeGooglePayModel Google Pay model\n * @param {Constructor} alertHandlerModel Alert handler model\n */\nfunction init(braintreeGooglePayModel, alertHandlerModel) {\n loader = loaderInstance($braintreeGooglePayLoader);\n googlePayModel = braintreeGooglePayModel;\n paymentsClient = braintreeGooglePayModel.getPaymentsClient();\n googlePayConfig = helper.tryParseJSON($googlePayButton.getAttribute('data-braintree-config'));\n alertHandler = alertHandlerModel;\n\n initGooglePay();\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst $googlepayButton = document.querySelector('.js-braintree-googlepay-button');\nconst $googlepayContent = document.querySelector('.js-braintree-googlepay-content');\n\n// Helpers\nconst helper = require('../../helper');\nconst googlePayHelper = require('../helpers/googlePayHelper');\n\nconst usedGooglePayAccountClassName = 'used-googlepay-account';\nconst usedGooglePayAccountHideClassName = 'used-googlepay-account-hide';\n\n/**\n * Shows session Google Pay account on the Billing Page\n * @param {string} cardDescription Session card description\n */\nfunction showGooglepayAccount(cardDescription) {\n const $newGPAccount = document.getElementById('newGPAccount');\n const $gpAccount = document.querySelector('.js-braintree-used-googlepay-account');\n const $sessionAccount = document.getElementById('sessionGPAccount');\n\n $newGPAccount.removeAttribute('selected');\n\n // Sets new session account\n $sessionAccount.classList.remove(usedGooglePayAccountHideClassName);\n $sessionAccount.classList.add(usedGooglePayAccountClassName);\n $sessionAccount.text = cardDescription;\n $sessionAccount.selected = true;\n $sessionAccount.setAttribute('data-session-account', 'true');\n\n $gpAccount.classList.remove(usedGooglePayAccountHideClassName);\n $gpAccount.classList.add(usedGooglePayAccountClassName);\n\n $googlepayButton.classList.add('d-none');\n $googlepayContent.setAttribute('data-paypal-is-hide-continue-button', false);\n helper.continueButtonToggle(false);\n}\n\n/*\n Remove method was used and change appearance of Google Pay tab\n* */\nfunction removeSessionNonce() {\n const $gpAccount = document.querySelector('.js-braintree-used-googlepay-account');\n\n $gpAccount.classList.remove(usedGooglePayAccountClassName);\n $gpAccount.classList.add(usedGooglePayAccountHideClassName);\n\n const $sessionAccount = document.getElementById('sessionGPAccount');\n\n if ($sessionAccount) {\n $sessionAccount.classList.add(usedGooglePayAccountHideClassName);\n $sessionAccount.classList.remove(usedGooglePayAccountClassName);\n $sessionAccount.value = '';\n $sessionAccount.text = '';\n $sessionAccount.setAttribute('data-session-account', false);\n $sessionAccount.setAttribute('data-save', false);\n }\n\n document.getElementById('braintreeGooglePayNonce').value = '';\n document.getElementById('braintreeGooglePayBillingAddress').value = '';\n document.getElementById('braintreeGooglepayPaymentType').value = '';\n document.getElementById('braintreeGooglePayDeviceData').value = '';\n\n document.getElementById('newGPAccount').selected = true;\n googlePayHelper.googlePayContentTabHandler(false);\n}\n\nmodule.exports = {\n showGooglepayAccount,\n removeSessionNonce\n};\n","'use strict';\n\nmodule.exports = {\n NO_GOOGLE_PAY_BRAINTREE_CONFIGURATIONS: 'No Google Pay Braintree Configurations',\n ORDER_TOTAL_0: 'Order total 0 is not allowed for GooglePay',\n GOOGLE_PAY_WINDOW_CLOSED: 'User closed the Payment Request UI.',\n SHIPPING_ADDRESS_UNSERVICEABLE: 'Cannot ship to the selected address. Please choose another shipping address or shipping method.',\n SHIPPING_OPTION_INVALID: 'This shipping option is invalid for the given address'\n};\n","'use strict';\n\nmodule.exports = {\n FLOW_CHECKOUT_NAME: 'checkout',\n FLOW_CART_NAME: 'cart',\n FLOW_NEW_GP_ACCOUNT_NAME: 'newGpAccount',\n INTENT_INITIALIZE: 'INITIALIZE',\n INTENT_SHIPPING_ADDRESS: 'SHIPPING_ADDRESS',\n INTENT_SHIPPING_OPTION: 'SHIPPING_OPTION',\n REASON_SHIPPING_ADDRESS_UNSERVICEABLE: 'SHIPPING_ADDRESS_UNSERVICEABLE',\n REASON_SHIPPING_OPTION_INVALID: 'SHIPPING_OPTION_INVALID'\n};\n","'use strict';\n\nconst braintreeGooglePayModelBuilder = require('./braintreesdk/braintreeGooglePayModelBuilder');\n\nconst googlePayHelper = require('./helpers/googlePayHelper');\n\n// Components\nconst googlePayList = require('./components/googlePayList');\nconst googlePayPaymentProcessing = require('./components/googlePayPaymentProcessing');\n\nconst GooglePayAlertHandlerModel = require('./alerthandler/googlePayAlertHandlerModel');\n\nconst googlePayErrorMessages = require('./constants/errorMessages');\n\nlet braintreeGooglePayModelResponse;\nlet googlePayMessages;\n\n/**\n * Inits Google Pay on the Cart Page\n */\nfunction initCart() {\n const alertHandler = new GooglePayAlertHandlerModel(googlePayMessages);\n\n if (!braintreeGooglePayModelResponse || braintreeGooglePayModelResponse.error) {\n const error = braintreeGooglePayModelResponse.error || googlePayErrorMessages.NO_GOOGLE_PAY_BRAINTREE_CONFIGURATIONS;\n\n alertHandler.handleGooglePayError(error);\n }\n\n // Initialize a Google Pay 'PaymentsClient' object\n braintreeGooglePayModelResponse.btGooglePayModel.initPaymentsClient(braintreeGooglePayModelResponse.btGooglePayConfigs.instanceType,\n window.braintreeConstants.PAGE_FLOW_CART);\n\n googlePayPaymentProcessing.init(braintreeGooglePayModelResponse.btGooglePayModel,\n alertHandler);\n}\n\n/**\n * Inits Google Pay on the Checkout Page\n */\nfunction initCheckout() {\n const alertHandler = new GooglePayAlertHandlerModel(googlePayMessages);\n\n if (!braintreeGooglePayModelResponse || braintreeGooglePayModelResponse.error) {\n const error = braintreeGooglePayModelResponse.error || googlePayErrorMessages.NO_GOOGLE_PAY_BRAINTREE_CONFIGURATIONS;\n\n alertHandler.handleGooglePayError(error);\n }\n\n // Triggers the Google Pay tab if Google Pay session account uses\n googlePayHelper.triggerGooglePayTab(braintreeGooglePayModelResponse.btGooglePayConfigs);\n\n // Initialize a Google Pay 'PaymentsClient' object\n braintreeGooglePayModelResponse.btGooglePayModel.initPaymentsClient(braintreeGooglePayModelResponse.btGooglePayConfigs.instanceType);\n\n googlePayPaymentProcessing.init(braintreeGooglePayModelResponse.btGooglePayModel,\n alertHandler);\n\n googlePayList.init();\n}\n\n/**\n * Inits Google Pay components\n */\nfunction init() {\n braintreeGooglePayModelResponse = braintreeGooglePayModelBuilder.init();\n\n if (!braintreeGooglePayModelResponse.error) {\n googlePayMessages = braintreeGooglePayModelResponse.btGooglePayConfigs.messages;\n }\n}\n\nmodule.exports = {\n init,\n initCart,\n initCheckout\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * Returns Braintree Google Pay configs\n * @returns {Object} Braintree Google Pay configs\n */\nfunction getBraintreeGooglePayConfigs() {\n let braintreeGooglePayButtonConfigs = null;\n\n try {\n braintreeGooglePayButtonConfigs = helper.tryParseJSON(document.querySelector('.js-braintree-googlepay-button')\n .getAttribute('data-braintree-config'));\n } catch (error) {\n return braintreeGooglePayButtonConfigs;\n }\n\n return braintreeGooglePayButtonConfigs;\n}\n\n/**\n * Sets device data from 'data collector' to corresponding input field\n * @param {Object} fraudDataPayload Froud payload data\n */\nfunction setGooglePayDeviceData(fraudDataPayload) {\n const $braintreeGooglePayDeviceData = document.getElementById('braintreeGooglePayDeviceData');\n\n if (fraudDataPayload.deviceData) {\n $braintreeGooglePayDeviceData.value = fraudDataPayload.deviceData;\n }\n}\n\n/**\n * Handles all behavior related to the Google Pay content tab\n * @param {boolean} isActiveGooglePayTab Whether Google Pay tab is active\n */\nfunction googlePayContentTabHandler(isActiveGooglePayTab) {\n const $btGooglepayAccountsList = document.getElementById('braintreeGooglepayAccountsList');\n const $googlepayButton = document.querySelector('.js-braintree-googlepay-button');\n const $googlepayContent = document.querySelector('.js-braintree-googlepay-content');\n\n if ($btGooglepayAccountsList.value === 'newaccount') {\n $googlepayButton.classList.remove('d-none');\n\n if (isActiveGooglePayTab) {\n helper.continueButtonToggle(true);\n }\n\n $googlepayContent.setAttribute('data-paypal-is-hide-continue-button', true);\n } else {\n $googlepayButton.classList.add('d-none');\n helper.continueButtonToggle(false);\n $googlepayContent.setAttribute('data-paypal-is-hide-continue-button', false);\n }\n}\n\n/**\n * Triggers the Google Pay tab if Google Pay session account uses\n * @param {Object} googlePayConfigs Google Pay config object\n */\nfunction triggerGooglePayTab(googlePayConfigs) {\n const sessionPaymentMethodId = googlePayConfigs.sessionPaymentMethodId;\n const $googlePayTab = document.querySelector('.js-googlepay-tab');\n\n if (sessionPaymentMethodId === 'GooglePay') {\n $googlePayTab.click();\n }\n}\n\nmodule.exports = {\n getBraintreeGooglePayConfigs,\n setGooglePayDeviceData,\n googlePayContentTabHandler,\n triggerGooglePayTab\n};\n","'use strict';\n\nconst googlePayPaymentProcessingConstants = require('../constants/googlePayPaymentProcessingConstants');\n\n/**\n * Returns current Google Pay flow\n * @returns {string} Flow id checkout/cart/newGpAccount\n */\nfunction getGooglePayFlowId() {\n const googlePayEnabledOnCart = Boolean(document.querySelector('.js-braintree-cart-googlepay-button'));\n const googlePayEnabledOnCheckout = Boolean(document.querySelector('.js-braintree-billing-googlepay-button'));\n let googlePayFlowId = null;\n\n const flows = {\n checkout: googlePayPaymentProcessingConstants.FLOW_CHECKOUT_NAME,\n cart: googlePayPaymentProcessingConstants.FLOW_CART_NAME,\n newGpAccount: googlePayPaymentProcessingConstants.FLOW_NEW_GP_ACCOUNT_NAME\n };\n\n if (googlePayEnabledOnCart) {\n googlePayFlowId = flows.cart;\n } else if (googlePayEnabledOnCheckout) {\n googlePayFlowId = flows.checkout;\n } else {\n googlePayFlowId = flows.newGpAccount;\n }\n\n return googlePayFlowId;\n}\n\n/**\n * Creates Google Pay billing address from payload data\n * @param {Object} data Data object\n * @returns {Objcet} billing address data object\n */\nfunction createGooglepayBillingAddressData(data) {\n const billingData = data.paymentMethodData.info.billingAddress;\n const billingAddress = {};\n const recipientName = billingData.name.split(' ');\n\n billingAddress.firstName = recipientName[0];\n billingAddress.lastName = recipientName[1];\n billingAddress.phone = billingData.phoneNumber;\n billingAddress.countryCodeAlpha2 = billingData.countryCode;\n billingAddress.streetAddress = billingData.address1;\n billingAddress.extendedAddress = billingData.address2;\n billingAddress.locality = billingData.locality;\n billingAddress.stateCode = billingData.administrativeArea;\n billingAddress.postalCode = decodeURIComponent(billingData.postalCode);\n billingAddress.email = data.email;\n\n return billingAddress;\n}\n\n/**\n * Creates shipping address object\n * @param {Object} shippingData Shipping data object\n * @returns {Object} Shipping data object in required format\n */\nfunction createGooglepayShippingAddressData(shippingData) {\n const shippingAddress = {};\n const recipientName = shippingData.name.split(' ');\n\n shippingAddress.firstName = recipientName[0];\n shippingAddress.lastName = recipientName[1];\n shippingAddress.phone = shippingData.phoneNumber;\n shippingAddress.countryCodeAlpha2 = shippingData.countryCode;\n shippingAddress.streetAddress = shippingData.address1;\n shippingAddress.extendedAddress = shippingData.address2;\n shippingAddress.locality = shippingData.locality;\n shippingAddress.region = shippingData.administrativeArea;\n shippingAddress.postalCode = decodeURIComponent(shippingData.postalCode);\n\n return shippingAddress;\n}\n\nmodule.exports = {\n getGooglePayFlowId,\n createGooglepayBillingAddressData,\n createGooglepayShippingAddressData\n};\n","'use strict';\n\n/**\n * Creates an object of configuration for creating a Google Pay payment\n * @param {Client} btClientInstance A client instance\n * @param {string} googleMerchantId Google Pay merchant identifier\n * @returns {Object} Configuration object\n */\nfunction createGooglePayOptions(btClientInstance, googleMerchantId) {\n const gpOptions = {\n client: btClientInstance,\n googlePayVersion: 2\n };\n\n if (googleMerchantId !== '' && googleMerchantId !== null) {\n gpOptions.googleMerchantId = googleMerchantId;\n }\n\n return gpOptions;\n}\n\n/**\n * Gets selected shipping id\n * @returns {string} Selected shipping id\n */\nfunction getSelectedShippingId() {\n const shippingMethods = document.getElementById('shippingMethods');\n const selectedShippingMethod = shippingMethods.options[shippingMethods.selectedIndex];\n\n return selectedShippingMethod.dataset.shippingId;\n}\n\nmodule.exports = {\n createGooglePayOptions,\n getSelectedShippingId\n};\n","'use strict';\n\nconst $continueButton = document.querySelector('button.submit-payment');\n\nconst cssClass = {\n D_NONE: 'd-none',\n FONT_WEIGHT_BOLD: 'font-weight-bold'\n};\n\nconst INVALID_CLASSNAME = 'is-invalid';\n\n/**\n * function to proceed a save parsing\n * @param {string} element string what should be parsed\n * @returns {Object} result of parsing\n */\nfunction tryParseJSON(element) {\n const AlertHandlerModel = require('./alertHandler');\n const alertHandler = new AlertHandlerModel();\n\n let result = null;\n\n try {\n result = JSON.parse(element);\n } catch (error) {\n alertHandler.showError('External server error. Try again');\n }\n\n return result;\n}\n\n/**\n * Get CSRF Token\n * @returns {string} - csrf token value\n */\nfunction getCsrfToken() {\n let $element = document.querySelector('[name=\"csrf_token\"]');\n\n if ($element && $element.value !== '') {\n return $element.value;\n }\n\n $element = document.querySelector('[data-tokenname=\"csrf_token\"]');\n\n if ($element && $element.getAttribute('data-token') !== '') {\n return $element.getAttribute('data-token');\n }\n\n return '';\n}\n\n/**\n * Add csrf token param to url\n * @param {string} url - source url\n * @returns {string} - url with csrf_token param\n */\nfunction getUrlWithCsrfToken(url) {\n const urlInstance = new URL(url, location.origin);\n\n urlInstance.searchParams.append('csrf_token', getCsrfToken());\n\n return urlInstance.toString();\n}\n\n/**\n * Depends on the value flag, sets style.display to the $continueButton\n * @param {boolean} flag Boolean value\n * @returns {void}\n */\nfunction continueButtonToggle(flag) {\n const stage = window.location.hash.substring(1);\n\n if (stage === 'placeOrder' || stage === 'shipping' || stage === null || stage === '') {\n return;\n }\n\n $continueButton.style.display = flag ? 'none' : '';\n}\n\n/**\n * Return payment method name in lovercase\n * @param {string} paymentMethodName Payment method name\n * @returns {string} Paymnet method name\n */\nfunction getPaymentMethodToLowerCase(paymentMethodName) {\n let paymentMethod = paymentMethodName.split('_');\n\n if (paymentMethod.length === 1) {\n return paymentMethodName;\n }\n\n paymentMethod = paymentMethod.map(function(element) {\n return element.charAt(0) + element.slice(1).toLocaleLowerCase();\n });\n\n return `${paymentMethod[0]} ${paymentMethod[1]}`;\n}\n\n/**\n * Appends a div to payment summary\n * @param {Element} $element HTML element\n * @param {*} text inner text\n * @returns {void}\n */\nfunction appendDivToElement($element, text) {\n const $div = $element.cloneNode(false);\n const innerText = document.createTextNode(text);\n\n $div.removeAttribute('class');\n $div.appendChild(innerText);\n $element.appendChild($div);\n}\n\n/**\n * Updates checkout view\n * @param {Object} e Event object\n * @param {Object} data Data object\n */\nfunction updateCheckoutView(e, data) {\n const $paymentSummary = document.querySelector('.summary-details .js-braintree-payment-details');\n const order = data.order;\n const payment = order.billing.payment;\n\n if (payment?.selectedPaymentInstruments?.length === 0 || !$paymentSummary) {\n return;\n }\n\n payment.selectedPaymentInstruments.forEach(selectedPaymentInstrument => {\n const paymentMethodId = selectedPaymentInstrument.paymentMethod;\n const fundingSource = selectedPaymentInstrument.fundingSource;\n\n $paymentSummary.innerHTML = '';\n\n if (fundingSource === window.braintreeConstants.PP_FUNDING_SOURCE_PAYLATER) {\n appendDivToElement($paymentSummary, window.braintreeConstants.PP_PAYLATER_PAYMENT_TYPE);\n } else if (fundingSource === window.braintreeConstants.PP_FUNDING_SOURCE_CARD) {\n appendDivToElement($paymentSummary, window.braintreeConstants.PP_DEBIT_CREDIT_PAYMENT_TYPE);\n } else {\n appendDivToElement($paymentSummary, getPaymentMethodToLowerCase(paymentMethodId));\n }\n\n if (selectedPaymentInstrument.maskedCreditCardNumber) {\n appendDivToElement($paymentSummary, selectedPaymentInstrument.maskedCreditCardNumber);\n }\n\n if (paymentMethodId === window.braintreeConstants.PAYMENT_METHOD_ID_PAYPAL) {\n appendDivToElement($paymentSummary, selectedPaymentInstrument.braintreePaypalEmail);\n } else if (paymentMethodId === window.braintreeConstants.PAYMENT_METHOD_ID_VENMO) {\n appendDivToElement($paymentSummary, selectedPaymentInstrument.braintreeVenmoUserId);\n }\n\n if (selectedPaymentInstrument.type) {\n appendDivToElement($paymentSummary, selectedPaymentInstrument.type);\n }\n\n appendDivToElement($paymentSummary, `${order.priceTotal.charAt(0)}${selectedPaymentInstrument.amount}`);\n });\n}\n\n/**\n * Validates whether input field is valid\n * @param {Object} field Input filed\n * @returns {boolean} true/false\n */\nfunction isValidInputField(field) {\n if (!field.checkValidity()) {\n if (!field.classList.contains(INVALID_CLASSNAME)) {\n field.classList.add(INVALID_CLASSNAME);\n }\n\n return false;\n }\n\n if (field.checkValidity() && field.classList.contains(INVALID_CLASSNAME)) {\n field.classList.remove(INVALID_CLASSNAME);\n }\n\n return true;\n}\n\n/**\n * Gets Billing Address Form Values\n *\n * @returns {Object} with Billing Address\n */\nfunction getBillingAddressFormValues() {\n const billingFormData = Object.fromEntries(new FormData(document.getElementById('dwfrm_billing')));\n\n return Array.from(Object.entries(billingFormData)).reduce(function(accumulator, [key, value]) {\n let elem = key.lastIndexOf('_');\n\n if (elem < 0) {\n accumulator[key] = value;\n } else {\n elem = key.substring(elem + 1);\n accumulator[elem] = value;\n }\n\n return accumulator;\n }, {});\n}\n\n/**\n * Gets Nonce depending on payment method name\n *\n * @param {string} paymentMethodName - payment method name\n * @returns {boolean} nonce exist\n */\nfunction isNonceExist(paymentMethodName) {\n // Payment method name\n let pmName = paymentMethodName;\n\n // Сhange 'CREDIT_CARD' to 'CreditCard' in order to get braintreewCreditCardNonce input\n if (paymentMethodName === 'CREDIT_CARD') {\n pmName = 'CreditCard';\n }\n\n const $nonce = document.querySelector(`#braintree${pmName}Nonce`);\n\n if (!$nonce) {\n return false;\n }\n\n const nonceValue = $nonce.value;\n const $tab = document.querySelector(`.${pmName.toLowerCase()}-tab`);\n let isActiveTab;\n\n if ($tab) {\n isActiveTab = $tab.classList.contains('active');\n }\n\n return !isActiveTab && nonceValue;\n}\n\n/**\n * Removing BT payment from account page\n * @param {Object} e Event object\n * @returns {void}\n */\nfunction removeBtPayment(e) {\n const loaderInstance = require('./loaderHelper');\n\n const target = e.target;\n\n const $loaderContainter = document.getElementById(target.getAttribute('data-loader'));\n const accountsLoader = loaderInstance($loaderContainter);\n\n accountsLoader.show();\n\n fetch(getUrlWithCsrfToken(`${window.braintreeUrls.deletePaymentUrl}?UUID=${target.getAttribute('data-id')}`))\n .then((response) => response.json())\n .then((data) => {\n document.getElementById(`uuid-${data.UUID}`).remove();\n\n if (data.newDefaultAccount) {\n document.querySelector(`#uuid-${data.newDefaultAccount} span`).classList.add(cssClass.FONT_WEIGHT_BOLD);\n document.querySelector(`#uuid-${data.newDefaultAccount} button.js-braintree-make-default-card`).classList.add(cssClass.D_NONE);\n }\n\n $('body').trigger('cart:update');\n accountsLoader.hide();\n })\n .catch(() => {\n location.reload();\n accountsLoader.hide();\n });\n}\n\n/**\n * Create formData from fields data\n *\n * @param {Object} paymentFields fields data values\n * @param {Object} fieldsData fields data values\n * @returns {Object} cart billing form data\n */\nfunction createPaymentFormData(paymentFields, fieldsData) {\n let paymentFieldsParsed;\n\n if (paymentFields instanceof Object) {\n paymentFieldsParsed = paymentFields;\n } else {\n paymentFieldsParsed = tryParseJSON(paymentFields);\n }\n\n return Object.entries(paymentFieldsParsed).reduce(function(formData, entry) {\n const [key, field] = entry;\n\n if (field instanceof Object) {\n formData.append(field.name, fieldsData && fieldsData[key] !== null ? fieldsData[key] : field.value);\n }\n\n return formData;\n }, new FormData());\n}\n\n// eslint-disable-next-line require-jsdoc\nfunction setDefaultProperty(params) {\n return fetch(getUrlWithCsrfToken(`${params.url}?UUID=${params.id}&pmID=${params.paymentMethodID}`))\n .then((response) => response.json())\n .then((data) => {\n document.querySelector(`#uuid-${data.newDefaultProperty} span`).classList.add(cssClass.FONT_WEIGHT_BOLD);\n document.querySelector(`.js-braintree-make-default-card.uuid-${data.newDefaultProperty}`).classList.add(cssClass.D_NONE);\n document.querySelector(`#uuid-${data.toRemoveDefaultProperty} span`).classList.remove(cssClass.FONT_WEIGHT_BOLD);\n document.querySelector(`.js-braintree-make-default-card.uuid-${data.toRemoveDefaultProperty}`).classList.remove(cssClass.D_NONE);\n params.loader.hide();\n })\n .catch(() => params.loader.hide());\n}\n\n/**\n * Checks authenticated customer, account list for default Payment Method\n *\n * @param {string} selector - querySelector\n * @returns {Object} default data attribute or null\n */\nfunction getOptionByDataDefault(selector) {\n if (!document.querySelector(selector)) {\n return null;\n }\n\n return Array.apply(null, document.querySelector(selector).options).find(function(el) {\n return el.getAttribute('data-default') ? tryParseJSON(el.getAttribute('data-default')) : null;\n });\n}\n\n/**\n * Checks authenticated customer, account list for session Account\n *\n * @param {Object} params querySelector + el.id\n * @returns {Object} session account object\n */\nfunction getSessionAccountOption(params) {\n return Array.apply(null, document.querySelector(params.querySelector).options).find(function(el) {\n return el.id === params.id && tryParseJSON(el.getAttribute('data-session-account'));\n });\n}\n\n/**\n * This method is called to remove active session account\n *\n * @param {Object} isCurrent determines if delete session account for current payment\n * @returns {void}\n */\nfunction removeActiveSessionPayment(isCurrent = false) {\n const helpers = {\n PayPal: require('./paypal/components/payPalSessionAccount'),\n Venmo: require('./venmo/components/venmoSessionAccount'),\n GooglePay: require('./googlepay/components/googlePaySessionAccount'),\n CREDIT_CARD: require('./creditcard/components/creditCardSessionAccount'),\n SRC: require('./src/components/srcSessionAccount'),\n ApplePay: require('./applepay/helpers/applePayHelper')\n };\n\n const activePaymentMethods = [];\n\n let selectedPaymentMethod;\n\n document.querySelectorAll('.payment-options li').forEach(function(el) {\n activePaymentMethods.push(el.dataset.methodId);\n\n if (el.querySelector('.active')) {\n selectedPaymentMethod = el.dataset.methodId;\n }\n });\n\n if (isCurrent) {\n helpers[selectedPaymentMethod].removeSessionNonce();\n } else {\n // removes active session account but just in case if tab of currently active\n // session payment isn't active (buyer submited another payment method)\n const activePM = activePaymentMethods.find(function(el) {\n return isNonceExist(el);\n });\n\n if (activePM) {\n helpers[activePM].removeSessionNonce();\n }\n }\n}\n\n/**\n * Update Checkout Billing form values\n *\n * @param {Object} billingData fields data values\n */\nfunction updateBillingFormValues(billingData) {\n const $billingFormFields = document.querySelectorAll('.billing-address select, .billing-address input, .contact-info-block input');\n\n $billingFormFields.forEach(function(el) {\n if (billingData[el.name]) {\n el.value = billingData[el.name];\n }\n });\n}\n\n/**\n * Returns selected option from select container\n * @param {Object} $selectContainer Select container\n * @returns {Object} Selected option\n */\nfunction getSelectedOption($selectContainer) {\n const selectedOptionIndex = $selectContainer.selectedIndex;\n\n return $selectContainer.options[selectedOptionIndex];\n}\n\n/**\n * Returns payment field data to be send on backend\n * @param {Object} addressData Address data to be set\n * @param {string} paymentMethodName Payment method name\n * @returns {Object} payment data\n */\nfunction getPaymentFieldsData(addressData, paymentMethodName) {\n return {\n firstName: addressData.firstName,\n lastName: addressData.lastName,\n address1: addressData.streetAddress,\n address2: addressData.extendedAddress || '',\n city: addressData.locality,\n postalCode: decodeURIComponent(addressData.postalCode),\n stateCode: addressData.stateCode || addressData.region,\n country: addressData.countryCodeAlpha2,\n phone: addressData.phone,\n paymentMethod: paymentMethodName\n };\n}\n\n// eslint-disable-next-line require-jsdoc\nfunction getUpdatedStoreFrontBillingData(billingAddress) {\n const storeFrontBillingData = tryParseJSON(document.querySelector('.js-braintree-billing-payment-wrap')\n .getAttribute('data-billing-form-fields-names'));\n\n storeFrontBillingData.dwfrm_billing_addressFields_firstName = billingAddress.firstName;\n storeFrontBillingData.dwfrm_billing_addressFields_lastName = billingAddress.lastName;\n storeFrontBillingData.dwfrm_billing_addressFields_address1 = billingAddress.streetAddress;\n storeFrontBillingData.dwfrm_billing_addressFields_address2 = billingAddress.extendedAddress || '';\n storeFrontBillingData.dwfrm_billing_addressFields_city = billingAddress.locality;\n storeFrontBillingData.dwfrm_billing_addressFields_postalCode = decodeURIComponent(billingAddress.postalCode);\n storeFrontBillingData.dwfrm_billing_addressFields_states_stateCode = billingAddress.stateCode || billingAddress.region;\n storeFrontBillingData.dwfrm_billing_addressFields_country = billingAddress.countryCodeAlpha2;\n storeFrontBillingData.dwfrm_billing_contactInfoFields_phone = billingAddress.phone;\n\n return storeFrontBillingData;\n}\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {HTMLFormElement} form - Form to be cleared\n * @returns {void}\n */\nfunction clearForm(form) {\n Array.from(form.querySelectorAll('input, select')).forEach((element) => {\n if (element.classList.contains(INVALID_CLASSNAME)) {\n element.classList.remove(INVALID_CLASSNAME);\n }\n });\n}\n\n/**\n * Validate whole form\n * @param {HTMLFormElement} form - Form elemenent\n * @returns {boolean} - true if valid otherwise false\n */\nfunction validateForm(form) {\n if (form.checkValidity && !form.checkValidity()) {\n Array.from(form.querySelectorAll('input, select')).forEach((element) => {\n if (!element.validity.valid) {\n element.classList.add(INVALID_CLASSNAME);\n }\n });\n\n return false;\n }\n\n return true;\n}\n\n/**\n * It checks for duplicated Credit Card and returns response as JSON object.\n * @param {string} body - request body.\n * @returns {Promise} A promise that resolves to a JSON object.\n */\nfunction checkForDuplicatedCC(body) {\n return fetch(getUrlWithCsrfToken(window.braintreeUrls.validateCreditCardUrl), {\n method: 'POST',\n body: JSON.stringify(body),\n headers: { 'Content-Type': 'application/json' }\n }).then(response => response.json());\n}\n\n/**\n * Gets applicable shipping methods\n * @param {string} url Validate address url\n * @returns {Object} Object with applicable shipping options\n */\nasync function getApplicableShippingOptions(url) {\n let shippingOptions;\n\n const response = await fetch(getUrlWithCsrfToken(url));\n\n if (response.ok) {\n const data = await response.json();\n\n shippingOptions = data.applicableShippingMethods;\n }\n\n return shippingOptions;\n}\n\n/**\n * Updates order amount when a certain shipping option gets selected\n * @param {string} shippingOptionID the id of the user choosen shipping method from GP pop-up\n * @returns {Promise} resolved promise which returns the amount\n */\nfunction updateAmountForShippingOption(shippingOptionID) {\n return fetch(getUrlWithCsrfToken(window.braintreeUrls.getAmountForShippingOption), {\n method: 'POST',\n body: shippingOptionID\n })\n .then((response) => {\n if (!response.ok) {\n window.location.reload();\n }\n\n return response.json();\n })\n .then((data) => {\n return data.amount;\n });\n}\n\n/**\n * Handle Submit Payment Errors from response data.\n * @param {Object} response - Response data.\n * @param {Object} alertHandler - Alert instance.\n * @returns {boolean} - true if there is an error otherwise.\n */\nfunction handleSubmitPaymentErrors(response, alertHandler) {\n if (response.error) {\n let errorMessage = '';\n\n if (response.fieldErrors.length) {\n response.fieldErrors.forEach((error, index) => {\n const keys = Object.keys(error);\n\n if (keys.length) {\n errorMessage += `${keys[index].replace('dwfrm_billing_', '')\n .replace('_', ' ')} ${response.fieldErrors[index][keys[index]]}. `;\n }\n });\n\n alertHandler.showError(errorMessage);\n }\n\n if (response.serverErrors.length) {\n response.serverErrors.forEach((error) => {\n errorMessage += `${error}. `;\n });\n\n alertHandler.showError(errorMessage);\n }\n\n // Usually in case of any errors \"cartError\" will be \"true\"\n if (response.cartError) {\n window.location.href = response.redirectUrl;\n }\n\n return true;\n }\n\n return false;\n}\n\nlet base = {\n continueButtonToggle,\n updateCheckoutView,\n isValidInputField,\n getBillingAddressFormValues,\n removeBtPayment,\n createPaymentFormData,\n isNonceExist,\n setDefaultProperty,\n getOptionByDataDefault,\n removeActiveSessionPayment,\n getSessionAccountOption,\n updateBillingFormValues,\n getSelectedOption,\n getPaymentFieldsData,\n getUpdatedStoreFrontBillingData,\n clearForm,\n validateForm,\n checkForDuplicatedCC,\n getUrlWithCsrfToken,\n getApplicableShippingOptions,\n updateAmountForShippingOption,\n tryParseJSON,\n appendDivToElement,\n handleSubmitPaymentErrors\n};\n\nObject.assign(base, require('braintree_ext/braintree/helper'));\n\nmodule.exports = base;","module.exports = function(containerElement) {\n if (!containerElement) {\n // eslint-disable-next-line no-console\n console.error('Braintree: No container for showing loaders');\n }\n\n function Constructor() {\n this.containerEl = containerElement;\n }\n\n Constructor.prototype.show = function() {\n this.containerEl.style.display = 'block';\n };\n\n Constructor.prototype.hide = function() {\n this.containerEl.style.display = 'none';\n };\n\n return new Constructor();\n};\n","'use strict';\n\nconst lpmHelper = require('../helpers/lpmHelper');\nconst lpmErrorMessages = require('../constants/errorMessages');\nconst AlertHandlerModel = require('../../alertHandler');\n\n/**\n * LPM alert handler model\n */\nclass LpmAlertHandlerModel extends AlertHandlerModel {\n constructor() {\n super();\n const lpmConfigs = lpmHelper.getBraintreeLpmConfigs();\n\n if (lpmConfigs) {\n this.alertMessages = lpmConfigs.messages;\n }\n }\n\n /**\n * Process error form Braintree or Braintree-PaymentConfirm endpoint\n * @param {Object} error Error object\n */\n handleLpmError(error) {\n if (error.name === 'BraintreeError') {\n this.showBraintreeError(error);\n } else {\n this.showError(error.responseText);\n }\n }\n\n /**\n * Creates and throws an error if order amount is 0\n * @param {string} paymentMethodName Payment method name\n */\n handleZeroAmountOnCheckoutError(paymentMethodName) {\n const zeroAmountErrorMsg = lpmErrorMessages.ORDER_TOTAL_0.concat('', paymentMethodName);\n\n this.showError(zeroAmountErrorMsg);\n throw zeroAmountErrorMsg;\n }\n}\n\nmodule.exports = LpmAlertHandlerModel;\n","'use strict';\n\nconst lpmHelper = require('../helpers/lpmHelper');\nconst braintreeLpmSDK = require('./braintreeLpmSDK');\n\nconst lpmConfigs = lpmHelper.getBraintreeLpmConfigs();\n// Global variables\nlet lpmInstance;\nlet shippingAddress;\nlet amount;\n\n/**\n * Init Braintree LPM pay model\n * @param {Promise} braintreeClientInstancePromise Braintree client instance promise\n */\n\nfunction init(braintreeClientInstancePromise) {\n braintreeLpmSDK.init(braintreeClientInstancePromise);\n}\n\n/**\n * Inits LPM instance for the next payment actions\n * @returns {Promise} Promise resolved with the 'createLpmClickListener' boolean value\n */\nfunction initLpm() {\n return braintreeLpmSDK.createLpmPayment()\n .then(function(localPaymentInstance) {\n lpmInstance = localPaymentInstance;\n\n return {\n createLpmClickListener: true\n };\n });\n}\n\n/**\n * Updates order data\n * @param {Object} updatedShippingAddress Updates order shipping address from backend\n * @param {number} updatedAmount Updated order amount from backend\n */\nfunction updateLpmOrderData(updatedShippingAddress, updatedAmount) {\n shippingAddress = updatedShippingAddress;\n amount = updatedAmount;\n}\n\n/**\n * Returns order shipping address\n * @returns {Object} Shipping address\n */\nfunction getShippingAddress() {\n return shippingAddress;\n}\n\n/**\n * Creates and returns object with all options for initiating the lpm payment flow\n * @param {string} paymentMethodName Payment method name\n * @param {string} email Email address\n * @returns {Object} {Object} Options object\n */\nfunction createRequestData(paymentMethodName, email) {\n return Object.assign(braintreeLpmSDK.createRequestData(shippingAddress,\n lpmConfigs,\n paymentMethodName,\n email,\n amount),\n {\n onPaymentStart: function(_, continueCallback) {\n continueCallback();\n }\n });\n}\n\n/**\n * Launches the local payment flow and returns a nonce payload\n * @param {Object} reqData Options object\n * @returns {Promise} Promise resolved with a startPaymentPayload\n */\nfunction startPayment(reqData) {\n return braintreeLpmSDK.startPayment(lpmInstance, reqData);\n}\n\nmodule.exports = {\n init,\n initLpm,\n updateLpmOrderData,\n getShippingAddress,\n createRequestData,\n startPayment\n};\n","'use strict';\n\nconst lpmHelper = require('../helpers/lpmHelper');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst braintreeLpmModel = require('./braintreeLpmModel');\n\nconst lpmErrorMessages = require('../constants/errorMessages');\n\n/**\n * Initialize Braintree Lpm Model. Pattern Builder is used\n * @returns {Object} Object with booleam \"error\" flag and \"message\" attribute with error message\n */\nfunction init() {\n const braintreeLpmConfigs = lpmHelper.getBraintreeLpmConfigs();\n const response = {\n error: false,\n message: '',\n btLpmModel: null\n };\n\n let clientToken;\n let btClientInstancePromise;\n\n if (braintreeLpmConfigs) {\n clientToken = braintreeLpmConfigs.clientToken;\n btClientInstancePromise = braintreeGeneral.createClientInstance(clientToken);\n\n braintreeLpmModel.init(btClientInstancePromise);\n\n response.btLpmModel = braintreeLpmModel;\n } else {\n response.error = true;\n response.message = lpmErrorMessages.NO_LPM_BRAINTREE_CONFIGURATIONS;\n }\n\n return response;\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\n/* global braintreeUtils braintree $ */\n\nlet btClientInstancePromise;\n\n/**\n * Creates Lpm payment instance\n * @returns {Promise} A promise resolved with the Lpm instance\n */\n\nfunction createLpmPayment() {\n return btClientInstancePromise\n .then(function(btClientInstance) {\n return braintree.localPayment.create({\n client: btClientInstance\n });\n });\n}\n\n/**\n * Creates and returns object with all options for initiating the LPM payment flow\n * @param {Object} shippingData Order Shipping address\n * @param {Object} lpmConfigs LPM configs object\n * @param {string} paymentMethodName Payment method name\n * @param {string} email Email address\n * @param {number} amount Order total amount\n * @returns {Object} Options object\n */\nfunction createRequestData(shippingData, lpmConfigs, paymentMethodName, email, amount) {\n const recipientName = shippingData.recipientName.split(' ');\n\n shippingData.firstName = recipientName[0];\n shippingData.lastName = recipientName[1];\n\n return {\n paymentType: paymentMethodName,\n amount: amount,\n fallback: {\n url: `${lpmConfigs.fallbackUrl}?lpmName=${paymentMethodName}&email=${email}`,\n buttonText: 'Complete Payment'\n },\n currencyCode: lpmConfigs.options.currency,\n shippingAddressRequired: false,\n email: email,\n phone: shippingData && shippingData.phone,\n givenName: shippingData && shippingData.firstName,\n surname: shippingData && shippingData.lastName,\n address: {\n countryCode: shippingData && shippingData.countryCode\n }\n };\n}\n\n/**\n *\n * @param {lpmInstance} localPaymentInstance LPM instance\n * @param {Object} reqData Options object\n * @returns {Promise} Promise resolved with a startPaymentPayload\n */\nfunction startPayment(localPaymentInstance, reqData) {\n return localPaymentInstance.startPayment(reqData);\n}\n\n/**\n * Inits braintreeLpmSDK with client instance promise\n * @param {Promise} braintreeClientInstancePromise Braintree client instance promise\n */\nfunction init(braintreeClientInstancePromise) {\n btClientInstancePromise = braintreeClientInstancePromise;\n}\n\nmodule.exports = {\n init,\n createLpmPayment,\n createRequestData,\n startPayment\n};\n","'use strict';\n\n// Helpers\nconst lpmHelper = require('../helpers/lpmHelper');\nconst loaderInstance = require('../../loaderHelper');\nconst lpmPaymentProcessingHelper = require('../helpers/lpmPaymentProcessorHelper');\n\nconst LpmAlertHandlerModel = require('../alerthandler/lpmAlertHandlerModel');\nconst helper = require('../../helper');\nconst alertHandler = new LpmAlertHandlerModel();\n\nconst $braintreeLpmLoader = document.querySelector('.js-braintree-loader-container');\n\n// Global variables\nlet lpmConfigs;\nlet loader;\nlet lpmModel;\n\n/**\n * Opens LPM page and process a payment\n * @param {Object} reqData Options object\n * @param {string} paymentMethodName Payment method name\n */\nfunction startLpmPayment(reqData, paymentMethodName) {\n lpmModel.startPayment(reqData)\n .then(function(startPaymentPayload) {\n // Handles LPM processing messages on the Billing-Checkout Page\n alertHandler.hideAlerts();\n alertHandler.showInfo(alertHandler.alertMessages.LPM_PAYMENT_SUCCESS);\n\n // Sends payment details to the backend\n return lpmPaymentProcessingHelper.confirmPayment(lpmConfigs,\n paymentMethodName,\n reqData.email,\n startPaymentPayload);\n })\n .then(function(response) {\n return response.json();\n })\n .then(function(data) {\n lpmPaymentProcessingHelper.processLpmConfirmForm(data.redirectUrl);\n loader.hide();\n })\n .catch(function(error) {\n loader.hide();\n alertHandler.handleLpmError(error);\n });\n}\n\n/**\n * Prepares and checks all necessary options for start LPM payment\n * @param {Object} event On LPM button click event\n */\nfunction onLpmButtonClick(event) {\n const $email = document.querySelector('.customer-summary-email');\n const paymentMethodName = this.dataset.localPaymentMethodName;\n\n alertHandler.hideAlerts();\n event.preventDefault();\n\n try {\n if (lpmConfigs.options.amount === 0) {\n loader.hide();\n alertHandler.handleZeroAmountOnCheckoutError(paymentMethodName);\n }\n\n fetch(helper.getUrlWithCsrfToken(lpmConfigs.getOrderInfoUrl))\n .then((response) => response.json())\n .then((data) => {\n loader.show();\n alertHandler.showInfo(alertHandler.alertMessages.LPM_PAYMENT_PROCESSING);\n\n // Updates shipping address and amount of order from server\n lpmModel.updateLpmOrderData(data.shippingAddress, data.amount);\n\n // Creates all options for initiating the local payment payment flow.\n const reqData = lpmModel.createRequestData(paymentMethodName, $email.textContent);\n\n startLpmPayment(reqData, paymentMethodName);\n })\n // Handles errors form Braintree-GetOrderInfo endpoint\n .catch((error) => {\n loader.hide();\n alertHandler.showError(error.responseJSON.message);\n });\n loader.hide();\n } catch (error) {\n alertHandler.showError(error);\n }\n}\n\n/**\n * Inits LPM functionality on the Checkout-Billing Page\n */\nfunction initLpm() {\n lpmModel.initLpm()\n .then(function(response) {\n if (response.createLpmClickListener) {\n document.querySelectorAll('.js-braintree-lpm-button').forEach((button) => {\n button.addEventListener('click', onLpmButtonClick);\n });\n }\n })\n .catch(function(error) {\n alertHandler.showError(error.message);\n });\n}\n\n/**\n * Inits LPM payment processing components\n * @param {Object} braintreeLpmModel LPM model\n */\nfunction init(braintreeLpmModel) {\n loader = loaderInstance($braintreeLpmLoader);\n lpmConfigs = lpmHelper.getBraintreeLpmConfigs();\n lpmModel = braintreeLpmModel;\n\n initLpm();\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nmodule.exports = {\n NO_LPM_BRAINTREE_CONFIGURATIONS: 'No Lpm Braintree Configurations',\n ORDER_TOTAL_0: 'Order total 0 is not allowed for '\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * Returns Braintree LPM configs\n * @returns {Object} Braintree LPM configs\n */\nfunction getBraintreeLpmConfigs() {\n const $braintreeLpmButton = document.querySelector('.js-braintree-lpm-button');\n\n let braintreeLpmConfigs = {};\n\n try {\n if ($braintreeLpmButton) {\n braintreeLpmConfigs = helper.tryParseJSON($braintreeLpmButton.getAttribute('data-braintree-config'));\n }\n } catch (error) {\n return braintreeLpmConfigs;\n }\n\n return braintreeLpmConfigs;\n}\n\nmodule.exports = {\n getBraintreeLpmConfigs\n};\n","'use strict';\n\nconst lpmModel = require('../braintreesdk/braintreeLpmModel');\nconst helper = require('../../helper');\n\n/**\n * Whether 'details' parameter is exist returns 'details' or shipping address if not exist\n *\n * @param {Object} details Details object from StartPaymentPayload\n * @param {string} email Email Address\n * @returns {Object} Details object\n */\nfunction getPaymentDetailsParameter(details, email) {\n const shippingAddress = lpmModel.getShippingAddress();\n\n shippingAddress.email = email;\n\n return jQuery.isEmptyObject(details) ? shippingAddress : details;\n}\n\n/**\n *\n * @param {Object} lpmConfigs LPM configs object\n * @param {string} paymentMethodName Payment method name\n * @param {string} email Email address\n * @param {Object} startPaymentPayload StartPaymnetPayload\n * @returns {Promise} Promise resolved with 'redirectUrl'\n */\nfunction confirmPayment(lpmConfigs, paymentMethodName, email, startPaymentPayload) {\n return fetch(helper.getUrlWithCsrfToken(lpmConfigs.paymentConfirmUrl), {\n method: 'POST',\n body: JSON.stringify({\n nonce: startPaymentPayload.nonce,\n lpmName: paymentMethodName,\n details: getPaymentDetailsParameter(startPaymentPayload.details, email),\n deviceData: JSON.stringify({ correlation_id: startPaymentPayload.correlationId })\n })\n });\n}\n\n/**\n * Creates a redirecting form to Order-Confirm endpoint\n * @param {Object} params The helping object for creating a from\n * @returns {Object} form element\n */\nfunction createConfirmForm(params) {\n const form = document.createElement('form');\n const orderIdInput = document.createElement('input');\n const orderTokenInput = document.createElement('input');\n\n form.method = 'POST';\n form.action = params.url;\n\n orderIdInput.value = params.orderID;\n orderIdInput.name = 'orderID';\n form.appendChild(orderIdInput);\n\n orderTokenInput.value = params.orderToken;\n orderTokenInput.name = 'orderToken';\n form.appendChild(orderTokenInput);\n\n document.body.appendChild(form);\n\n return form;\n}\n\n/**\n * Prepare and submits form in order to confirm order with Lpm\n * @param {string} redirectUrl Redirect Url\n */\nfunction processLpmConfirmForm(redirectUrl) {\n const splitUrl = redirectUrl.split('?');\n const url = splitUrl.shift();\n const searchParams = new URLSearchParams(splitUrl.join());\n const formParam = {\n orderID: searchParams.get('orderID'),\n orderToken: searchParams.get('orderToken'),\n url: url\n };\n\n const form = createConfirmForm(formParam);\n\n form.submit();\n}\n\nmodule.exports = {\n getPaymentDetailsParameter,\n confirmPayment,\n processLpmConfirmForm,\n createConfirmForm\n};\n","'use strict';\n\nconst braintreeLpmModelBuilder = require('./braintreesdk/braintreeLpmModelBuilder');\nconst lpmPaymentProcessing = require('./components/lpmPaymentProcessing');\n\n/**\n * Inits LPM on the Billing-Checkout Page\n */\nfunction init() {\n const braintreeLpmModelResponse = braintreeLpmModelBuilder.init();\n\n lpmPaymentProcessing.init(braintreeLpmModelResponse.btLpmModel);\n}\n\nmodule.exports = {\n init\n};\n","const LpmAlertHandlerModel = require('./alerthandler/lpmAlertHandlerModel');\nconst helper = require('../helper');\n\nconst $lpmFallback = document.querySelector('.js-lpm-fallback');\nconst $lpmLoader = document.querySelector('.js-braintree-loader-container');\nconst lpmData = helper.tryParseJSON($lpmFallback.getAttribute('data-braintree-lpm'));\nconst alertHandler = new LpmAlertHandlerModel();\n\n/**\n * LPM fallback process\n */\nconst process = () => {\n braintree.client.create({\n authorization: lpmData.clientToken\n })\n .then(clientInstance => {\n $lpmLoader.style.display = 'block';\n\n return braintree.localPayment.create({\n client: clientInstance\n });\n })\n .then(localPaymentInstance => {\n localPaymentInstance.tokenize()\n .then(function({ nonce, details }) {\n const buyerAddressDetails = Object.keys(details).length ? details : { email: lpmData.customerEmail };\n\n alertHandler.showInfo(alertHandler.alertMessages.LPM_PAYMENT_SUCCESS);\n\n fetch(helper.getUrlWithCsrfToken(lpmData.paymentConfirmUrl), {\n method: 'POST',\n body: JSON.stringify({\n nonce: nonce,\n lpmName: lpmData.lpmName,\n details: buyerAddressDetails\n }),\n headers: { 'Content-Type': 'application/json' }\n })\n .then(response => response.json())\n .then(data => {\n const lpmPaymentProcessorHelper = require('../local/helpers/lpmPaymentProcessorHelper');\n\n lpmPaymentProcessorHelper.processLpmConfirmForm(data.redirectUrl);\n });\n })\n .catch(() => {\n alertHandler.showError(alertHandler.alertMessages.LPM_PAYMENT_ERROR);\n });\n });\n};\n\nmodule.exports = {\n process\n};\n","'use strict';\n\nconst braintreeGeneral = require('./braintreeGeneral');\n\n// Components\nconst payPalStoredBillingAddressComponent = require('./paypal/components/payPalStoredBillingAddress');\nconst venmoBillingAddressComponent = require('./venmo/components/venmoBillingAddress');\n\n// Helpers\nconst paymentMethodGeneralHelper = require('./paymentMethodGeneralHelper');\nconst helper = require('./helper');\nconst googlePayHelper = require('./googlepay/helpers/googlePayHelper');\nconst srcHelper = require('./src/helpers/srcHelper');\nconst venmoHelper = require('./venmo/helpers/venmoHelper');\nconst applePayHelper = require('./applepay/helpers/applePayHelper');\nconst payPalListHelper = require('./paypal/helpers/payPalListHelper');\nconst creditCardPaymentProcessingHelper = require('./creditcard/helpers/creditCardPaymentProcessingHelper');\n\n// Constants used only for \"createGeneralClientInstancePromise\" function\nconst creditCardPaymentProcessingConstants = require('./creditcard/constants/creditCardPaymentProcessingConstants');\n\nconst CHECKOUT_PAGE = 'checkout_page';\nconst CART_MINICART_PRODUCT_PAGE = 'cart_minicart_product_page';\nconst LOCAL_PAYMENT_METHODS_LIST = ['sepa', 'bancontact', 'eps', 'giropay', 'ideal', 'mybank', 'p24', 'sofort'];\nconst PAYMENT_METHODS_WITH_DISABLED_BILLING_ADDRESS_FUNCTIONALITY = ['PayPal', 'GooglePay', 'SRC', 'ApplePay', 'Venmo'];\n\n// Other constants\nconst DATA_METHOD_ID_ATTRIBUTE = 'data-method-id';\nconst DATA_BILLING_ADDRESS_ATTRIBUTE = 'data-billing-address';\nconst PAYMENT_OPTIONS_CLASS = '.payment-options';\n\n/**\n * Returns current page name\n * @returns {string} name of the current page\n */\nfunction getApplicablePageType() {\n const isCheckoutPage = Boolean(document.getElementById('checkout-main'));\n // It is so, since MiniCart is exists on all mentioned pages\n const isCartMiniCartProductPage = Boolean(document.getElementsByClassName('minicart').length);\n\n let currentPageType;\n\n if (isCheckoutPage) {\n currentPageType = CHECKOUT_PAGE;\n } else if (isCartMiniCartProductPage) {\n currentPageType = CART_MINICART_PRODUCT_PAGE;\n }\n\n return currentPageType;\n}\n\n/**\n* Create Braintree Client Instance\n* @returns {Promise} with Braintree Client Instance\n*/\nfunction createGeneralClientInstancePromise() {\n const applycablePageType = getApplicablePageType();\n const attrBtClientToken = 'data-bt-client-token';\n\n let clientToken = null;\n let clientInstancePromise = null;\n let $billingElement;\n let $btExpressCheckoutPayPalButtonWrapper;\n let $btAccountPayPalButtonWrapper;\n let $btApmaPayPalButtonWrapper;\n\n // eslint-disable-next-line default-case\n switch (applycablePageType) {\n case CHECKOUT_PAGE:\n $billingElement = document.querySelector('.summary-details.billing');\n\n clientToken = $billingElement.getAttribute(attrBtClientToken);\n\n break;\n\n case CART_MINICART_PRODUCT_PAGE:\n $btExpressCheckoutPayPalButtonWrapper = document.querySelector('.js-braintree-cart-paypal-buttons-wrap');\n $btAccountPayPalButtonWrapper = document.querySelector('.js-braintree-account-paypal-button-wrapper');\n $btApmaPayPalButtonWrapper = document.querySelector('.js-braintree-apma-paypal-button-wrapper');\n\n if ($btExpressCheckoutPayPalButtonWrapper) {\n clientToken = $btExpressCheckoutPayPalButtonWrapper.getAttribute(attrBtClientToken);\n } else if ($btAccountPayPalButtonWrapper) {\n clientToken = $btAccountPayPalButtonWrapper.getAttribute(attrBtClientToken);\n } else if ($btApmaPayPalButtonWrapper) {\n clientToken = $btApmaPayPalButtonWrapper.getAttribute(attrBtClientToken);\n }\n\n break;\n }\n\n if (clientToken) {\n clientInstancePromise = braintreeGeneral.createClientInstance(clientToken);\n }\n\n return clientInstancePromise;\n}\n\n/**\n * Method override default SFRA payment-details filling behavior.\n * Method fill payment-details block with the right payment methdo data (like name, account, etc.)\n */\nfunction fillPaymentSummaryContainer() {\n const $summaryDetails = document.querySelector('.summary-details .payment-details');\n\n if ($summaryDetails) {\n $summaryDetails.classList.add('js-braintree-payment-details');\n $summaryDetails.classList.remove('payment-details');\n\n $('body').on('checkout:updateCheckoutView', helper.updateCheckoutView);\n }\n}\n\n/**\n * May be used for all payment methods\n * Create error container and append it after PayPal button\n * @param {string} payPalButtonSelector selector of PayPal button\n * @returns {Object} return created error container\n */\nfunction createErrorContainerAfterPayPalButton(payPalButtonSelector) {\n const $errorContainer = document.createElement('div');\n const $payPalButton = document.querySelector(payPalButtonSelector);\n\n $errorContainer.classList.add('alert-danger');\n $errorContainer.style.cssText = 'text-align: center';\n\n $payPalButton.parentNode.insertBefore($errorContainer, $payPalButton.nextSibling);\n\n return $errorContainer;\n}\n\n/**\n * Initiates all necessary manipulation for credit card billing address due tab click\n *\n * @param {Element} paymentOption - payment option for which specific billing address needs to be selected\n */\nfunction initCreditCardBillingAddressBehavior(paymentOption) {\n const creditCardHelper = require('./creditcard/helpers/creditCardHelper');\n const creditCardBillingAddressHelper = require('./creditcard/helpers/creditCardBillingAddressHelper');\n\n const $creditCardList = document.getElementById('braintreeCreditCardList');\n const $selectedCcAccountOption = creditCardHelper.getSelectedCcAccountOption();\n const creditCardFlow = creditCardPaymentProcessingHelper.getCreditCardFlowID($creditCardList);\n const savedBillingAddress = $selectedCcAccountOption.getAttribute('data-billing-address');\n\n if ((creditCardFlow === creditCardPaymentProcessingConstants.FLOW_STORED_CARD_NAME && savedBillingAddress)) {\n paymentMethodGeneralHelper.disableBillingAddressFunctionality();\n creditCardBillingAddressHelper.displaySelectedStoredBillingAddress($selectedCcAccountOption);\n } else {\n const billingAddressSelector = document.getElementById('billingAddressSelector');\n const billingAddressId = paymentMethodGeneralHelper.getStoredBillingAddressId(paymentOption);\n\n if (billingAddressId) {\n const billingAddressToSelect = Array.from(billingAddressSelector.children).find((option) => {\n const stroredBillingAddress = option.getAttribute('value');\n\n return stroredBillingAddress === billingAddressId\n || stroredBillingAddress === `ab_${billingAddressId}`\n || `ab_${stroredBillingAddress}` === billingAddressId;\n });\n\n if (billingAddressToSelect) {\n billingAddressToSelect.selected = true;\n }\n }\n\n paymentMethodGeneralHelper.enableBillingAddressFunctionality();\n }\n}\n\n/**\n * Deselects all selected options\n * @param {Element} billingAddressSelector selector of billing addresses\n */\nfunction deselectAllOptions(billingAddressSelector) {\n Array.from(billingAddressSelector.children).forEach((option) => {\n option.selected = false;\n option.removeAttribute('selected');\n });\n}\n\n/**\n * Removes option that was added by payment method\n */\nfunction removeAddedOption() {\n const optionToRemove = document.querySelector('.stored-billing-address');\n\n if (optionToRemove) {\n optionToRemove.remove();\n }\n}\n\n/**\n * Selects billing address\n *\n * @param {Element} paymentOption payment option for which specific billing address needs to be selected\n */\nfunction selectBillingAddress(paymentOption) {\n const selectedMethodID = paymentOption.getAttribute(DATA_METHOD_ID_ATTRIBUTE);\n const optionClass = 'stored-billing-address';\n\n switch (selectedMethodID) {\n case window.braintreeConstants.PAYMENT_METHOD_ID_PAYPAL: {\n const payPalAccountList = document.getElementById('braintreePaypalAccountsList');\n const selectedPayPalAccountOption = payPalAccountList.options[payPalAccountList.selectedIndex];\n\n // Display billing address of selected PayPal account\n payPalStoredBillingAddressComponent.displaySelectedStoredBillingAddress(selectedPayPalAccountOption);\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_GOOGLEPAY: {\n const googlePayBtn = document.querySelector('.js-braintree-googlepay-button');\n\n paymentMethodGeneralHelper.createBillingAddressOption(optionClass, googlePayBtn.getAttribute(DATA_BILLING_ADDRESS_ATTRIBUTE));\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_SRC: {\n const srcBtn = document.querySelector('.js-braintree-src-button');\n\n paymentMethodGeneralHelper.createBillingAddressOption(optionClass, srcBtn.getAttribute(DATA_BILLING_ADDRESS_ATTRIBUTE));\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_APPLEPAY: {\n const applePayBtn = document.querySelector('.js-braintree-applepay-button');\n\n paymentMethodGeneralHelper.createBillingAddressOption(optionClass, applePayBtn.getAttribute(DATA_BILLING_ADDRESS_ATTRIBUTE));\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_VENMO: {\n // Display shipping address as selected billing address\n venmoBillingAddressComponent.displayShippingAddressAsSelected();\n\n break;\n }\n\n default:\n }\n}\n\n/**\n * Handles billing address functionality (disable/enable)\n * @param {Element} paymentOption payment option\n */\nfunction handleBillingAddressFunctionality(paymentOption) {\n const selectedMethodID = paymentOption.getAttribute(DATA_METHOD_ID_ATTRIBUTE);\n\n if (PAYMENT_METHODS_WITH_DISABLED_BILLING_ADDRESS_FUNCTIONALITY.includes(selectedMethodID)) {\n paymentMethodGeneralHelper.disableBillingAddressFunctionality();\n } else if (selectedMethodID === 'CREDIT_CARD') {\n initCreditCardBillingAddressBehavior(paymentOption);\n } else {\n paymentMethodGeneralHelper.enableBillingAddressFunctionality();\n }\n}\n\n/**\n * Handles submit payment button for specific payment method\n * @param {Element} paymentOption payment option\n */\nfunction handlePaymentMethodsFunctionality(paymentOption) {\n let selectedMethodID = paymentOption.getAttribute(DATA_METHOD_ID_ATTRIBUTE);\n\n if (LOCAL_PAYMENT_METHODS_LIST.includes(selectedMethodID)) {\n selectedMethodID = 'LPM';\n }\n\n switch (selectedMethodID) {\n case window.braintreeConstants.PAYMENT_METHOD_ID_PAYPAL: {\n // Submit Payment button behavior\n const isAccountListHidden = document.querySelector('.js-braintree-used-paypal-account').classList.contains('used-paypal-account-hide');\n\n if (isAccountListHidden) {\n paymentMethodGeneralHelper.hideSubmitPaymentButton();\n } else if (!payPalListHelper.isNewPayPalAccountOptionSelected()) {\n paymentMethodGeneralHelper.showSubmitPaymentButton();\n } else {\n paymentMethodGeneralHelper.hideSubmitPaymentButton();\n }\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_GOOGLEPAY: {\n googlePayHelper.googlePayContentTabHandler(true);\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_SRC: {\n srcHelper.srcContentTabHandler(true);\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_APPLEPAY: {\n applePayHelper.toggleContinueButtonOnBillingPage();\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_CREDIT_CARD: {\n // Submit Payment button behavior\n paymentMethodGeneralHelper.showSubmitPaymentButton();\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_VENMO: {\n const isBtVenmoAccountsList = Boolean(document.getElementById('braintreeVenmoAccountsList'));\n const isSessionAccountExist = Boolean(document.querySelector('.js-used-venmo-account'));\n // Handles continue button visibility on the Billing Page in Venmo tab\n // Case for the registered user with saved account\n\n if (isBtVenmoAccountsList) {\n venmoHelper.venmoContentTabHandler();\n } else if (isSessionAccountExist) {\n // Case when only session account exist without saved account\n helper.continueButtonToggle(false);\n } else {\n // Case when no session/saved account exist and Venmo button is shown\n helper.continueButtonToggle(true);\n }\n\n break;\n }\n\n case window.braintreeConstants.PAYMENT_METHOD_ID_LPM: {\n paymentMethodGeneralHelper.hideSubmitPaymentButton();\n\n break;\n }\n\n default:\n }\n}\n\n/**\n * Saves selected billing address on tab changing\n */\nfunction saveSelectedBillingAddressFromPreviousTab() {\n const billingAddressSelector = document.getElementById('billingAddressSelector');\n const paymentOptions = document.querySelector(PAYMENT_OPTIONS_CLASS);\n\n const paymentOptionToSaveBillingAddress = Array.from(paymentOptions.children).find((option) => {\n return option.firstElementChild.classList.contains('active');\n });\n\n const selectedMethodID = paymentOptionToSaveBillingAddress.getAttribute(DATA_METHOD_ID_ATTRIBUTE);\n\n if (!PAYMENT_METHODS_WITH_DISABLED_BILLING_ADDRESS_FUNCTIONALITY.includes(selectedMethodID)) {\n const selectedBillingAddressOption = billingAddressSelector.options[billingAddressSelector.selectedIndex];\n\n paymentMethodGeneralHelper.setStoredBillingAddressId(paymentOptionToSaveBillingAddress, selectedBillingAddressOption);\n }\n}\n\n/**\n * Inits billing address behavior on shipping change, so that:\n * When the checkout stage changes to payment, trigger a custom event that will select the billing\n * address based on the active payment option.\n */\nfunction initChangeShippingBehavior() {\n const checkoutStageElement = document.querySelector('.data-checkout-stage');\n\n const observer = new MutationObserver(() => {\n if (checkoutStageElement.getAttribute('data-checkout-stage') === 'payment') {\n const shippingChangeEvent = new Event('shipping:update');\n\n document.dispatchEvent(shippingChangeEvent);\n }\n });\n\n observer.observe(checkoutStageElement, { attributes: true });\n\n document.addEventListener('shipping:update', () => {\n const paymentOptions = document.querySelector(PAYMENT_OPTIONS_CLASS);\n const billingAddressSelector = document.getElementById('billingAddressSelector');\n\n if (paymentOptions && billingAddressSelector) {\n const activePaymentOption = Array.from(paymentOptions.children).find((option) => {\n return option.firstElementChild.classList.contains('active');\n });\n\n selectBillingAddress(activePaymentOption);\n handleBillingAddressFunctionality(activePaymentOption);\n }\n });\n}\n\n/**\n * Inits functionality of billing selector change\n */\nfunction initBillingSelectorChangeFunctionality() {\n const billingAddressSelector = document.getElementById('billingAddressSelector');\n const paymentOptions = document.querySelector(PAYMENT_OPTIONS_CLASS);\n\n if (billingAddressSelector && paymentOptions) {\n billingAddressSelector.addEventListener('change', () => {\n const selectedBillingAddressOption = billingAddressSelector.options[billingAddressSelector.selectedIndex];\n const activePaymentOption = Array.from(paymentOptions.children).find((option) => {\n return option.firstElementChild.classList.contains('active');\n });\n\n paymentMethodGeneralHelper.setStoredBillingAddressId(activePaymentOption, selectedBillingAddressOption);\n });\n }\n}\n\n/**\n * Init behavior which should be triggered when buyer clicked on Payment Method tab.\n * Currently we handle billing address modification enabling/disabling.\n * We also have init behavior of \"Submit Payment\" button\n */\nfunction initPaymentMethodTabClickBehavior() {\n const navLinks = document.querySelectorAll('.payment-options .nav-item .nav-link');\n\n navLinks.forEach((navLink) => {\n navLink.addEventListener('click', (e) => {\n const clickedPaymentOption = e.target.closest('.nav-item');\n const billingAddressSelector = document.getElementById('billingAddressSelector');\n\n saveSelectedBillingAddressFromPreviousTab();\n\n removeAddedOption();\n deselectAllOptions(billingAddressSelector);\n\n handleBillingAddressFunctionality(clickedPaymentOption);\n handlePaymentMethodsFunctionality(clickedPaymentOption);\n\n selectBillingAddress(clickedPaymentOption);\n });\n });\n}\n\n/**\n * Creates customer form with email to submit it to CheckoutServices-SubmitCustomer endpoint\n * @param {string} email email from payment method's response\n * @returns {Object} customer form data\n */\nfunction createCustomerFormData(email) {\n const data = {\n email: email\n };\n\n const $csrfToken = document.querySelector('.js-braintree-cart-buttons-wrap #csrf_token');\n const checkoutCustomerFormFields = document.querySelector('.js-braintree-cart-buttons-wrap').getAttribute('data-checkout-customer-form-fields');\n const customerFormData = helper.createPaymentFormData(checkoutCustomerFormFields, data);\n\n customerFormData.append($csrfToken.name, $csrfToken.value);\n\n return customerFormData;\n}\n\n/**\n * Submits customer form with email to CheckoutServices-SubmitCustomer endpoint\n * Call is triggered only in case if email in basket is empty (guest first checkout from cart)\n * @param {string} email email from payment method's response\n * @returns {Promise} call to CheckoutServices-SubmitCustomer endpoint\n */\nasync function submitCustomerForm(email) {\n const buttonsWrapper = document.querySelector('.js-braintree-cart-buttons-wrap');\n const isCustomerEmailEmpty = helper.tryParseJSON(buttonsWrapper.getAttribute('data-is-customer-email-empty'));\n\n let result;\n // Could be \"true\" only in case if email in basket is empty (first guest checkout from cart)\n\n if (isCustomerEmailEmpty) {\n const submitCustomerUrl = window.braintreeUrls.submitCustomerUrl;\n const customerFormData = createCustomerFormData(email);\n\n result = await fetch(submitCustomerUrl, {\n method: 'POST',\n body: customerFormData\n });\n }\n\n return result;\n}\n\n/**\n * Handles active CC session payment, removes active session payment if order amount changed\n * to avoid a mismatch error between nonce amount and actual amount\n * @param {number} lastAmount - amount of the last order\n */\nfunction handleActiveCCSessionPayment(lastAmount) {\n fetch(helper.getUrlWithCsrfToken(window.braintreeUrls.getOrderInfoUrl))\n .then((response) => response.json())\n .then((data) => {\n if (data.amount !== lastAmount) {\n const creditCardSessionAccount = require('./creditcard/components/creditCardSessionAccount');\n\n creditCardSessionAccount.removeSessionNonce();\n }\n });\n}\n\n/**\n * Inits payment amount observer\n */\nfunction initAmountObserver() {\n const checkoutStageElement = document.querySelector('.data-checkout-stage');\n\n const observer = new MutationObserver(() => {\n if (checkoutStageElement.getAttribute('data-checkout-stage') === 'placeOrder') {\n const amountElement = document.querySelector('.grand-total-sum');\n const amount = parseFloat(amountElement.textContent.replace(/[^0-9.]/g, ''));\n\n window.sessionStorage.setItem('amount-used', amount);\n }\n });\n\n observer.observe(checkoutStageElement, { attributes: true });\n}\n\nconst base = {\n createGeneralClientInstancePromise,\n fillPaymentSummaryContainer,\n createErrorContainerAfterPayPalButton,\n initPaymentMethodTabClickBehavior,\n initChangeShippingBehavior,\n initBillingSelectorChangeFunctionality,\n submitCustomerForm,\n saveSelectedBillingAddressFromPreviousTab,\n handleActiveCCSessionPayment,\n initAmountObserver\n};\n\nObject.assign(base, require('braintree_ext/braintree/paymentMethodGeneral'));\n\nmodule.exports = base;\n","'use strict';\n\nconst helper = require('./helper');\n\nfunction hideBillingAddressManipulationButtons() {\n document.querySelector('.address-selector-block .btn-show-details').style.display = 'none';\n document.querySelector('.address-selector-block .btn-add-new').style.display = 'none';\n}\n\nfunction showBillingAddressManipulationButtons() {\n document.querySelector('.address-selector-block .btn-show-details').style.display = '';\n document.querySelector('.address-selector-block .btn-add-new').style.display = '';\n}\n\nfunction disableBillingAddressList() {\n document.getElementById('billingAddressSelector').setAttribute('disabled', 'disabled');\n}\n\nfunction enableBillingAddressList() {\n document.getElementById('billingAddressSelector').removeAttribute('disabled');\n}\n\nfunction hideSubmitPaymentButton() {\n document.querySelector('.submit-payment').style.display = 'none';\n}\n\nfunction showSubmitPaymentButton() {\n document.querySelector('.submit-payment').style.display = '';\n}\n\n/**\n * Hides biiling address form on the Billing Page for appropriate tabs.\n * Case when customer clicked 'Updated address' or 'Add New' button and flipped through the payment method tabs\n */\nfunction hideBillingAddressForm() {\n document.querySelector('.billing-address-block .billing-address').style.display = 'none';\n}\n\n/**\n * Shows biiling address form on the Billing Page for appropriate tabs.\n * Case when customer clicked 'Updated address' or 'Add New' button and flipped through the payment method tabs\n */\nfunction showBillingAddressForm() {\n document.querySelector('.billing-address-block .billing-address').style.display = '';\n}\n\n/**\n * Hides phone field on the Billing Page for appropriate tabs\n */\nfunction hidePhoneField() {\n document.querySelector('.dwfrm_billing_contactInfoFields_phone').style.display = 'none';\n}\n\n/**\n * Shows phone field on the Billing Page for appropriate tabs\n */\nfunction showPhoneField() {\n document.querySelector('.dwfrm_billing_contactInfoFields_phone').style.display = '';\n}\n\n/**\n * Disabled billing address functionality on the Billing Page\n */\nfunction disableBillingAddressFunctionality() {\n disableBillingAddressList();\n hideBillingAddressManipulationButtons();\n hideBillingAddressForm();\n hidePhoneField();\n}\n\n/**\n * Enabled billing address functionality on the Billing Page\n */\nfunction enableBillingAddressFunctionality() {\n showBillingAddressManipulationButtons();\n enableBillingAddressList();\n showBillingAddressForm();\n showPhoneField();\n}\n\n/**\n * Returns a billing address represented as a string\n * @param {Object} billingAddress A billing address object\n * @returns {string} A string represented a billing address\n */\nfunction formatBaAsString(billingAddress) {\n const firstName = billingAddress.firstName || '';\n const lastname = billingAddress.lastName || '';\n const address1 = billingAddress.line1 || billingAddress.address1 || billingAddress.streetAddress || '';\n const city = billingAddress.city || billingAddress.locality || '';\n const state = billingAddress.state || billingAddress.stateCode || billingAddress.region || '';\n const postalCode = decodeURIComponent(billingAddress.postalCode) || '';\n\n return `${firstName} ${lastname} ${address1} ${city}, ${state} ${postalCode}`;\n}\n\n/**\n * Extract billing address of corresponding payment account from account option\n * @param {Object} $selectedPayment PayPal payment option\n * @returns {string} return string representation of extracted address\n */\nfunction getBillingAddressAsString($selectedPayment) {\n const selectedBillingAddressStr = $selectedPayment.getAttribute('data-billing-address');\n\n let billingAddressRepresentationString = '';\n\n if (selectedBillingAddressStr) {\n const selectedBillingAddressObj = helper.tryParseJSON(selectedBillingAddressStr);\n\n if (selectedBillingAddressObj && selectedBillingAddressStr !== '{}') {\n billingAddressRepresentationString = formatBaAsString(selectedBillingAddressObj);\n }\n }\n\n return billingAddressRepresentationString;\n}\n\n/**\n * It gets the ID of the last billing address used for the selected payment method\n * @param {Element} paymentOption - The payment option that was selected.\n * @returns {string} - The billing address ID that was stored in session storage.\n */\nfunction getStoredBillingAddressId(paymentOption) {\n const selectedPaymentMethod = paymentOption.getAttribute('data-method-id');\n\n return sessionStorage.getItem(`${selectedPaymentMethod}-last-billing-id`);\n}\n\n/**\n * It sets the billing address ID in session storage for the selected payment method\n * @param {Element} paymentOption - The payment method that was selected.\n * @param {Element} billingOption - The billing address option that was selected.\n */\nfunction setStoredBillingAddressId(paymentOption, billingOption) {\n const selectedPaymentMethodName = paymentOption.getAttribute('data-method-id');\n\n if (billingOption.getAttribute('value') !== null) {\n sessionStorage.setItem(`${selectedPaymentMethodName}-last-billing-id`, billingOption.getAttribute('value'));\n }\n}\n\n/**\n * It creates an option element, sets its text, class, and selected property, and then appends it to\n * the billingAddressSelector element\n * @param {string} className - Class name of the option element.\n * @param {string} innerText - Text that will be displayed in the dropdown menu.\n */\nfunction createBillingAddressOption(className, innerText) {\n const billingAddressSelector = document.getElementById('billingAddressSelector');\n const option = document.createElement('option');\n\n option.innerText = innerText;\n option.className = className;\n option.selected = true;\n\n billingAddressSelector.append(option);\n}\n\nmodule.exports = {\n disableBillingAddressFunctionality,\n enableBillingAddressFunctionality,\n hideBillingAddressManipulationButtons,\n showBillingAddressManipulationButtons,\n disableBillingAddressList,\n enableBillingAddressList,\n hideBillingAddressForm,\n showBillingAddressForm,\n hideSubmitPaymentButton,\n showSubmitPaymentButton,\n hidePhoneField,\n showPhoneField,\n getStoredBillingAddressId,\n setStoredBillingAddressId,\n createBillingAddressOption,\n getBillingAddressAsString\n};\n","'use strict';\n\nconst AlertHandlerModel = require('../../alertHandler');\n\n/**\n * Paypal alert handler model\n */\nclass PaypalAlertHandlerModel extends AlertHandlerModel {\n constructor(alertMessages) {\n super();\n this.alertMessages = alertMessages;\n }\n\n /**\n * Show \"Billing Address is not Supported\" error\n */\n showBillingAddressIsNotSupportedError() {\n this.showError(this.alertMessages.PAYPAL_BILLING_ADDRESS_NOT_SUPPORTED);\n }\n\n /**\n * Shows \"Zero amount\" error\n */\n showZeroAmountError() {\n this.showError(this.alertMessages.CUSTOM_PAYPAL_ZERO_AMOUNT_ERROR);\n }\n}\n\nmodule.exports = PaypalAlertHandlerModel;\n","'use strict';\n\n/* global paypal braintree $ */\n\nlet btPayPalCheckoutInstancePromise;\n\n/**\n * Function creates PayPal Checkout instance\n * @param {Promise} btClientInstancePromise BT Client Instance Promise\n * @param {Object} payPalPaymentProcessingModal Instance of PayPalPaymentProcessing model. Is needed to have customize CheckoutInstance generation\n * depending on PayPalPaymentProcessing instance configs\n * @returns {Promise} Promise with PayPal Checkout Instance\n */\nfunction createPayPalCheckoutInstance(btClientInstancePromise, payPalPaymentProcessingModal) {\n return btClientInstancePromise\n .then(function(btClientInstance) {\n const payPalCheckoutConfigs = payPalPaymentProcessingModal.payPalCheckoutInstanceConfigs(btClientInstance);\n\n return braintree.paypalCheckout.create(payPalCheckoutConfigs);\n });\n}\n\n/**\n * Creates PayPal button style configs\n * @param {Object} btPayPalConfigurations Configurations of PayPal button\n * @returns {Object} Style configs with the right format\n */\nfunction createPayPalStyleConfigurations(btPayPalConfigurations) {\n const payPalButtonStyleConfigs = btPayPalConfigurations.paypalConfig.style;\n\n return {\n height: payPalButtonStyleConfigs.height,\n color: payPalButtonStyleConfigs.color,\n shape: payPalButtonStyleConfigs.shape,\n layout: payPalButtonStyleConfigs.layout,\n label: payPalButtonStyleConfigs.label,\n tagline: payPalButtonStyleConfigs.tagline\n };\n}\n\n/**\n * Callback which is came from PayPal configurations. Should trigger only \"enable\" action\n * @param {Object} validateActions Object from Braintree\n */\nconst payPalFormValidationControl = function(validateActions) {\n const isFormValid = true;\n\n if (isFormValid) {\n validateActions.enable();\n } else {\n validateActions.disable();\n }\n};\n\nconst onApprove = function(data, checkoutInstance, paymentProcessingModal) {\n // Some logic here before tokenization happens below\n return checkoutInstance.tokenizePayment(data)\n .then(function(payload) {\n paymentProcessingModal.onApprovePaymentCallback(payload);\n });\n};\n\nconst createOrder = async function(checkoutInstance, paymentProcessingModal) {\n // Logic which executed after buyer clicked on the button, and PayPal modal start loading\n // \"onOrderCreateCallback\" is used for forming of order data object\n const paymentObject = await paymentProcessingModal.onOrderCreateCallback();\n\n return checkoutInstance.createPayment(paymentObject);\n};\n\n/**\n * Returns PayPal button behavior configs which are used when VaultMode is enabled\n * @param {Promise} btPayPalCheckoutInstance Promise with PayPal Checkout Instance\n * @param {Object} btPayPalConfigurations Object with PayPal configurations\n * @param {Object} payPalPaymentProcessingModal Instance of PayPalPaymentProcessing model\n * @returns {Object} Object with PayPal button configs & callbacks which will handle PayPal button behavior\n */\nfunction getVaultModeButtonConfigurations(btPayPalCheckoutInstance,\n btPayPalConfigurations,\n payPalPaymentProcessingModal) {\n let vaultModePayPalButtonConfigs = {};\n const payPalButtonStyleConfigs = createPayPalStyleConfigurations(btPayPalConfigurations);\n\n vaultModePayPalButtonConfigs = {\n onClick: function(_, actions) {\n return payPalPaymentProcessingModal.onPayPalButtonClickCallback(_, actions);\n },\n createBillingAgreement: function() {\n return createOrder(btPayPalCheckoutInstance, payPalPaymentProcessingModal);\n },\n onApprove: function(data) {\n return onApprove(data, btPayPalCheckoutInstance, payPalPaymentProcessingModal);\n },\n onCancel: function() {\n payPalPaymentProcessingModal.onCancelPaymentCallback();\n },\n\n onError: function(err) {\n payPalPaymentProcessingModal.onErrorPaymentCallback(err);\n },\n style: payPalButtonStyleConfigs,\n validate: function(validateActions) {\n payPalFormValidationControl(validateActions);\n }\n };\n\n return vaultModePayPalButtonConfigs;\n}\n\n/**\n * Returns PayPal button behavior configs which are used when VaultMode is disabled or \"Checkout with Vault\" is enabled\n * @param {Promise} btPayPalCheckoutInstance Promise with PayPal Checkout Instance\n * @param {Object} btPayPalConfigurations Object with PayPal configurations\n * @param {Object} payPalPaymentProcessingModal Instance of PayPalPaymentProcessing model\n * @returns {Object} Object with PayPal button configs & callbacks which will handle PayPal button behavior\n */\nfunction getCheckoutModeButtonConfigurations(btPayPalCheckoutInstance,\n btPayPalConfigurations,\n payPalPaymentProcessingModal) {\n let vaultModePayPalButtonConfigs = {};\n const payPalButtonStyleConfigs = createPayPalStyleConfigurations(btPayPalConfigurations);\n\n vaultModePayPalButtonConfigs = {\n onClick: function(_, actions) {\n return payPalPaymentProcessingModal.onPayPalButtonClickCallback(_, actions);\n },\n createOrder: function() {\n return createOrder(btPayPalCheckoutInstance, payPalPaymentProcessingModal);\n },\n onApprove: function(data) {\n return onApprove(data, btPayPalCheckoutInstance, payPalPaymentProcessingModal);\n },\n onCancel: function() {\n payPalPaymentProcessingModal.onCancelPaymentCallback();\n },\n\n onError: function(err) {\n payPalPaymentProcessingModal.onErrorPaymentCallback(err);\n },\n style: payPalButtonStyleConfigs,\n validate: function(validateActions) {\n payPalFormValidationControl(validateActions);\n }\n };\n\n return vaultModePayPalButtonConfigs;\n}\n\n/**\n * Hide PayPal banner block if eligible\n * @returns {void}\n */\nfunction hidePayPalBannerIfEligible() {\n const payPalCreditBtn = paypal.Buttons({ fundingSource: paypal.FUNDING.CREDIT });\n const isPayPalCreditEligible = payPalCreditBtn.isEligible();\n const $payPalBanner = document.querySelector('.js-pp-banner');\n\n if (isPayPalCreditEligible && $payPalBanner) {\n $payPalBanner.classList.add('d-none');\n }\n}\n\n/**\n * Function which result is rendered PayPal button\n * @param {Promise} btClientInstancePromise Client instance promise\n * @param {boolean} isVaultMode \"true\" in case if VaultMode is enabled\n * @param {Object} btPayPalConfigurations Object with PayPal configurations\n * @param {Array} payPalPaymentProcessingModels array of instances for PayPalPaymentProcessing model\n * @returns {Promise} PayPal button\n */\nfunction payPalButtonRendering(btClientInstancePromise,\n isVaultMode,\n btPayPalConfigurations,\n payPalPaymentProcessingModels) {\n // Get ppModel to identify the flow and create sdk config\n const ppPaymentProcessingModel = payPalPaymentProcessingModels.find(Boolean);\n\n if (!btPayPalCheckoutInstancePromise) {\n // In case if paypal SDK is loaded only for credit messages, we need to delete it\n // and load again to avoid getting unhandled errors in console\n if (window.isPayPalCreditMessageLoaded) {\n delete window.paypal;\n }\n\n btPayPalCheckoutInstancePromise = createPayPalCheckoutInstance(btClientInstancePromise, ppPaymentProcessingModel);\n }\n\n function getPayPalButtonConfig(changePMButtonEnabled,\n vaultMode,\n btPayPalCheckoutInstance,\n btPayPalConfig,\n payPalPaymentProcessingModel) {\n if (changePMButtonEnabled) {\n return getCheckoutModeButtonConfigurations(btPayPalCheckoutInstance,\n btPayPalConfig,\n payPalPaymentProcessingModel);\n }\n\n if (vaultMode) {\n return getVaultModeButtonConfigurations(btPayPalCheckoutInstance,\n btPayPalConfig,\n payPalPaymentProcessingModel);\n }\n\n return getCheckoutModeButtonConfigurations(btPayPalCheckoutInstance,\n btPayPalConfig,\n payPalPaymentProcessingModel);\n }\n\n return btPayPalCheckoutInstancePromise\n .then(function(btPayPalCheckoutInstance) {\n let paypalButtonSdkUrlConfigs = null;\n\n const changePMButtonEnabled = ppPaymentProcessingModel.changePMButtonEnabled;\n\n if (changePMButtonEnabled) {\n paypalButtonSdkUrlConfigs = ppPaymentProcessingModel.payPalCheckoutSdkConfigs();\n } else if (isVaultMode) {\n paypalButtonSdkUrlConfigs = ppPaymentProcessingModel.payPalVaultSdkConfigs();\n // If checkout mode (single use token)\n } else {\n paypalButtonSdkUrlConfigs = ppPaymentProcessingModel.payPalCheckoutSdkConfigs();\n }\n\n // PayPal button loading\n if (!window.isPayPalSDKLoaded) {\n // We pass params to customize PayPal SDK loading.\n btPayPalCheckoutInstance.loadPayPalSDK(paypalButtonSdkUrlConfigs).then(function() {\n window.isPayPalSDKLoaded = true;\n\n // Loop through instances and render PP button\n payPalPaymentProcessingModels.forEach(payPalPaymentProcessingModel => {\n const paypalButtonConfigs = getPayPalButtonConfig(changePMButtonEnabled,\n isVaultMode,\n btPayPalCheckoutInstance,\n btPayPalConfigurations,\n payPalPaymentProcessingModel);\n\n // eslint-disable-next-line new-cap\n paypal.Buttons(paypalButtonConfigs).render(payPalPaymentProcessingModel.payPalButtonSelector);\n\n hidePayPalBannerIfEligible();\n });\n });\n } else {\n // In case if PayPal SDK was already loaded (with custom parameters), we can simply load PP buttons\n payPalPaymentProcessingModels.forEach(payPalPaymentProcessingModel => {\n const paypalButtonConfigs = getPayPalButtonConfig(changePMButtonEnabled,\n isVaultMode,\n btPayPalCheckoutInstance,\n btPayPalConfigurations,\n payPalPaymentProcessingModel);\n\n // eslint-disable-next-line new-cap\n paypal.Buttons(paypalButtonConfigs).render(payPalPaymentProcessingModel.payPalButtonSelector);\n });\n }\n });\n}\n\nmodule.exports = {\n payPalButtonRendering\n};\n","'use strict';\n\nconst ApmaModel = require('../models/apma');\nconst PaypalAlertHandlerModel = require('../alerthandler/paypalAlertHandlerModel');\nconst helper = require('../../helper');\n\n/**\n * Function which initiate PayPal functionality on the Account Page\n * @param {Object} btClientInstancePromise BT Client Instance promise\n */\nfunction init(btClientInstancePromise) {\n const payPalButtonSelector = '#js-apma-button-paypal';\n const $payPalButton = document.querySelector(payPalButtonSelector);\n\n if ($payPalButton) {\n const redirectUrl = $payPalButton.getAttribute('data-redirect-url');\n const isAccountPage = redirectUrl.toLowerCase().includes(window.braintreeConstants.PAGE_FLOW_ACCOUNT);\n const addressObject = helper.tryParseJSON($payPalButton.getAttribute('data-address-object'));\n const payPalConfigurations = helper.tryParseJSON($payPalButton.getAttribute('data-braintree-config'));\n const addPayPalAccountUrl = $payPalButton.getAttribute('data-paypal-add-account-handler');\n\n const errorMessages = payPalConfigurations.messages;\n\n const alertHandler = new PaypalAlertHandlerModel(errorMessages);\n const PayPalAPMA = new ApmaModel(\n alertHandler,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n {\n addPayPalAccountUrl,\n addressObject,\n isAccountPage,\n redirectUrl\n }\n );\n\n PayPalAPMA.initPayment();\n PayPalAPMA.initAddButtonEvent();\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\nfunction showPayPalStaticImageButton() {\n const $staticImage = document.getElementById('js-cwpp-static-image');\n\n if ($staticImage) {\n $staticImage.classList.remove('d-none');\n }\n}\n\nfunction isContainerExist() {\n if (!document.getElementById('js-cwpp-button')) {\n showPayPalStaticImageButton();\n\n return false;\n }\n\n return true;\n}\n\n/**\n * Connect with PayPal\n * @link {https://developer.paypal.com/docs/log-in-with-paypal/integrate/generate-button}\n */\nfunction initConnectWithPayPal() {\n const $container = document.getElementById('js-cwpp-button');\n\n if (!isContainerExist()) {\n return;\n }\n\n const MIN_NUMBER_OF_PARAMETERS = 8;\n const parameters = helper.tryParseJSON($container.getAttribute('data-parameters'));\n\n if (!(window.paypal && Object.keys(parameters).length > MIN_NUMBER_OF_PARAMETERS)) {\n showPayPalStaticImageButton();\n\n return;\n }\n\n window.paypal.use(['login'], function(login) {\n login.render(parameters);\n });\n}\n\n/**\n * Function which initiate PayPal functionality on the Login Page\n */\nfunction init() {\n initConnectWithPayPal();\n}\n\nmodule.exports = {\n init,\n isContainerExist\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * Init add new PayPal account button\n * @param {Object} PayPalAccount PayPal Account model instance\n */\nfunction initAddNewPayPalAccountEvent(PayPalAccount) {\n const payPalAccountPageHelper = require('../helpers/payPalAccountPage');\n const $addNewPayPalAccountButton = document.querySelector('.js-add-paypal-account');\n\n $addNewPayPalAccountButton.addEventListener('click', function() {\n payPalAccountPageHelper.showPayPalAccountBtn();\n\n if (!window.accountPayPalButtonInited) {\n window.accountPayPalButtonInited = true;\n PayPalAccount.initPayment();\n }\n });\n}\n\n/**\n * Function which initiate PayPal functionality on the Account Page\n * @param {Object} btClientInstancePromise BT Client Instance promise\n */\nfunction init(btClientInstancePromise) {\n const payPalButtonSelector = '.js-braintree-account-paypal-button-wrapper .js-braintree-account-paypal-button';\n const $payPalButton = document.querySelector(payPalButtonSelector);\n\n if ($payPalButton) {\n const PaypalAlertHandlerModel = require('../alerthandler/paypalAlertHandlerModel');\n const PayPalAccountModel = require('../models/payPalAccount');\n\n const payPalConfigurations = helper.tryParseJSON($payPalButton.getAttribute('data-braintree-config'));\n const addPayPalAccountUrl = window.braintreeUrls.paypalAddAccountHandlerUrl;\n\n const $csrfToken = document.querySelector('.js-braintree-account-paypal-button-wrapper #csrf_token');\n const $loaderContainer = document.getElementById('braintreePayPalAccLoader');\n\n // Init params for AccountErrorHandling model\n const errorMessages = payPalConfigurations.messages;\n\n const alertHandler = new PaypalAlertHandlerModel(errorMessages);\n const PayPalAccount = new PayPalAccountModel(alertHandler,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $csrfToken,\n addPayPalAccountUrl,\n $loaderContainer);\n\n initAddNewPayPalAccountEvent(PayPalAccount);\n PayPalAccount.initRemovePayPalAccountEvent();\n PayPalAccount.initMakeDefaultPayPalAccountEvent();\n } else {\n const $allRemovePayPalAccountButtons = document.querySelectorAll('.js-paypal-accounts .js-remove-bt-payment');\n\n $allRemovePayPalAccountButtons.forEach((btn) => btn.addEventListener('click', helper.removeBtPayment));\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst PRICE_SELECTOR = '.price .sales .value';\nconst MINI_CART_QUANTITY_SELECTOR = '.minicart-quantity';\nconst PRODUCT_STATUS_UPDATE = 'product:statusUpdate';\nconst ADD_TO_CART_BTN_SELECTOR = '.js-add-to-cart, .js-add-to-cart-global';\nconst PAYPAL_BANNER_SELECTOR = '.js-pp-banner';\n\n/**\n * Hide PayPal button\n * @param {Object} $payPalButton PayPal button js container\n */\nfunction hidePayPalButton($payPalButton) {\n $payPalButton.style.display = 'none';\n}\n\n/**\n * Show PayPal button\n * @param {Object} $payPalButton PayPal button js container\n */\nfunction showPayPalButton($payPalButton) {\n $payPalButton.style.display = '';\n}\n\n/**\n * Check if PDP product price is zero\n * @returns {boolean} \"true\" in case if PDP product price is zero\n */\nfunction isZeroPdpProductPrice() {\n const $productPriceSelector = document.querySelector(PRICE_SELECTOR);\n\n if ($productPriceSelector) {\n const price = parseInt($productPriceSelector.getAttribute('content'), 0);\n\n return price <= 0;\n }\n\n return true;\n}\n\n/**\n * Is add to cart button disabled\n * @returns {boolean} \"true\" in case if add to cart button disabled\n */\nfunction isAddToCartButtonDisabled() {\n const $addToCartButton = document.querySelector('.js-add-to-cart, .js-add-to-cart-global');\n\n return $addToCartButton.disabled;\n}\n\n/**\n * Return mini cart quantity\n * @param {Object} $miniCartQuantitySelector Mini cart quantity selector\n * @returns {Int} Quantity\n */\nfunction getMiniCartQuantity($miniCartQuantitySelector) {\n let quantity = null;\n\n if ($miniCartQuantitySelector) {\n quantity = parseInt($miniCartQuantitySelector.textContent, 0);\n }\n\n return quantity;\n}\n\n/**\n * Check if basket is empty\n * @returns {boolean} \"true\" in case if basket is not empty\n */\nfunction isBasketNotEmpty() {\n const miniCartQuantityElement = document.querySelector(MINI_CART_QUANTITY_SELECTOR);\n\n return getMiniCartQuantity(miniCartQuantityElement) !== 0;\n}\n\n/**\n * Check if current total basket price is zero\n * @returns {boolean} \"true\" in case if current total basket price is zero\n */\nfunction isCurrentTotalBasketPriceZero() {\n const $basketTotalAmount = document.querySelector('.js-sub-total');\n\n if ($basketTotalAmount) {\n const basketTotalAmount = $basketTotalAmount.textContent.slice(1);\n\n return parseInt(basketTotalAmount, 10) === 0;\n }\n\n return false;\n}\n\n/**\n * Updates PayPal credit message amount\n * @param {Object} productData - product info after update\n * @param {Element} $creditMessage - credit message element\n * @returns {void}\n */\nfunction updateCreditMessageAmount(productData, $creditMessage) {\n const { price, selectedQuantity } = productData.data?.product || productData;\n const productPrice = price.max?.sales?.value || price.sales.value;\n\n const newPrice = parseFloat(productPrice) * parseFloat(selectedQuantity);\n\n $creditMessage.setAttribute('data-pp-amount', newPrice);\n}\n\n/**\n * Show or hide PayPal button\n * @param {Object} paypalMinicartButton paypal button js container\n */\nfunction paypalMinicartButtonBehavior(paypalMinicartButton) {\n if (!isCurrentTotalBasketPriceZero()) {\n showPayPalButton(paypalMinicartButton);\n } else {\n hidePayPalButton(paypalMinicartButton);\n }\n}\n\n/**\n * Handles PP credit messages behavior on PDP\n * @returns {void}\n */\nfunction initPaypalCreditMessagesBehaviorOnPdp() {\n $('body').on('product:afterAttributeSelect', function(_, productData) {\n const $creditMessage = document.querySelector(PAYPAL_BANNER_SELECTOR);\n\n // If PayPal credit message is available, then update credit message amount\n if ($creditMessage) {\n updateCreditMessageAmount(productData, $creditMessage);\n }\n });\n}\n\n/**\n * Handles PP credit messages behavior on PDP for Product bandle\n * @returns {void}\n */\nfunction initPaypalCreditMessagesBehaviorOnPdpBundle() {\n const $price = document.querySelector(PRICE_SELECTOR);\n const $quantitySelector = document.querySelector('.quantity-select');\n const $creditMessage = document.querySelector(PAYPAL_BANNER_SELECTOR);\n\n if ($creditMessage) {\n $quantitySelector.addEventListener('change', (event) => {\n const price = parseFloat($price.getAttribute('content'));\n const quantity = parseFloat(event.target.value);\n\n const newPrice = price * quantity;\n\n $creditMessage.setAttribute('data-pp-amount', newPrice);\n });\n }\n}\n\n/**\n * Handles PP credit messages behavior on PDP for Product set\n * @returns {void}\n */\nfunction initPaypalCreditMessagesBehaviorOnPdpSet() {\n $('body').on('product:afterAttributeSelect', function(_, productData) {\n const $productIds = document.querySelectorAll('.product-id');\n const $targerProduct = Array.from($productIds).find((el) => el.textContent === productData.data.product.id);\n const $setItemContainer = $targerProduct && $targerProduct.closest('.set-item');\n const $creditMessage = $setItemContainer && $setItemContainer.querySelector(PAYPAL_BANNER_SELECTOR);\n\n // If PayPal credit message is available, then update credit message amount\n if ($creditMessage) {\n updateCreditMessageAmount(productData, $creditMessage);\n }\n });\n}\n\n/**\n * Handles PP button behavior on PDP\n * @param {Object} $payPalButton - paypal button element\n * @returns {void}\n */\nfunction initPaypalButtonBehaviorOnPdp($payPalButton) {\n let addToCartButtonDisabled = isAddToCartButtonDisabled();\n let zeroProductPrice = isZeroPdpProductPrice();\n let basketNotEmpty = isBasketNotEmpty();\n\n if (addToCartButtonDisabled || zeroProductPrice || basketNotEmpty) {\n hidePayPalButton($payPalButton);\n }\n\n $('body').on('product:afterAddToCart', function() {\n hidePayPalButton($payPalButton);\n });\n\n // Case when buyer remove product from Cart\n $('body').on('cart:update', function() {\n const addToCartButtonEnabled = !isAddToCartButtonDisabled();\n\n zeroProductPrice = isZeroPdpProductPrice();\n basketNotEmpty = isBasketNotEmpty();\n\n if (!basketNotEmpty && addToCartButtonEnabled && !zeroProductPrice) {\n showPayPalButton($payPalButton);\n } else {\n hidePayPalButton($payPalButton);\n }\n });\n\n // When buyer change some attribute of the product on PDP\n $('body').on(PRODUCT_STATUS_UPDATE, function() {\n addToCartButtonDisabled = isAddToCartButtonDisabled();\n zeroProductPrice = isZeroPdpProductPrice();\n basketNotEmpty = isBasketNotEmpty();\n\n if (addToCartButtonDisabled || zeroProductPrice || basketNotEmpty) {\n hidePayPalButton($payPalButton);\n } else {\n showPayPalButton($payPalButton);\n }\n });\n}\n\n/**\n * Hides all PayPal buttons on Set.\n * @param {string} selector - The selector for the PayPal button.\n * @returns {void}\n */\nfunction hideAllPayPalButtonsOnSet(selector) {\n const addToCartButtons = document.querySelectorAll(ADD_TO_CART_BTN_SELECTOR);\n\n addToCartButtons.forEach((btn) => {\n const paypalButton = btn.closest('.attributes, .prices-add-to-cart-actions').querySelector(selector);\n\n hidePayPalButton(paypalButton);\n });\n}\n\n/**\n * Handling PVP button behavior on Quick View\n * @param {Object} $payPalButton - paypal button element\n * @returns {void}\n */\nfunction initPaypalButtonBehaviorOnPvp($payPalButton) {\n const isProductReadyToOrderElement = document.querySelector('.js-is-show-pp-button');\n const isProductReadyToOrder = isProductReadyToOrderElement && isProductReadyToOrderElement.value === 'true';\n\n let addToCartButtonDisabled = isAddToCartButtonDisabled();\n let zeroProductPrice = isZeroPdpProductPrice();\n let basketNotEmpty = isBasketNotEmpty();\n\n if (addToCartButtonDisabled || zeroProductPrice || basketNotEmpty || !isProductReadyToOrder) {\n hidePayPalButton($payPalButton);\n }\n\n $('body').on(PRODUCT_STATUS_UPDATE, function() {\n basketNotEmpty = isBasketNotEmpty();\n addToCartButtonDisabled = isAddToCartButtonDisabled();\n zeroProductPrice = isZeroPdpProductPrice();\n\n if (addToCartButtonDisabled || zeroProductPrice || basketNotEmpty) {\n hidePayPalButton($payPalButton);\n } else {\n showPayPalButton($payPalButton);\n }\n });\n}\n\n/**\n * Handling PP button behavior on Product Set\n * @param {string} ppBtnSelector - selector for PP buttons on product set\n * @returns {void}\n */\nfunction initPaypalButtonBehaviorOnSet(ppBtnSelector) {\n const PP_BTN_CONTAINER_SELECTOR = '.attributes, .prices-add-to-cart-actions, .global-availability';\n const addToCartButtons = document.querySelectorAll(ADD_TO_CART_BTN_SELECTOR);\n\n let basketNotEmpty = isBasketNotEmpty();\n\n addToCartButtons.forEach((btn) => {\n const paypalButton = btn.closest(PP_BTN_CONTAINER_SELECTOR).querySelector(ppBtnSelector);\n const isProductReadyToOrderElement = btn.closest(PP_BTN_CONTAINER_SELECTOR).querySelector('.js-is-show-pp-button');\n const isProductReadyToOrder = isProductReadyToOrderElement && isProductReadyToOrderElement.value === 'true';\n\n const prices = document.querySelectorAll(PRICE_SELECTOR);\n\n let isWrongAmount;\n\n if (prices) {\n isWrongAmount = Array.from(prices).some((price) => {\n return parseFloat(price.getAttribute('content')) <= 0;\n });\n }\n\n if (!basketNotEmpty && !isWrongAmount && isProductReadyToOrder && !btn.disabled) {\n showPayPalButton(paypalButton);\n } else {\n hidePayPalButton(paypalButton);\n }\n });\n\n $('body').on(PRODUCT_STATUS_UPDATE, function(event) {\n const addToCartButton = event.target;\n\n const prices = document.querySelectorAll(PRICE_SELECTOR);\n const paypalButton = addToCartButton.closest(PP_BTN_CONTAINER_SELECTOR).querySelector(ppBtnSelector);\n\n let isWrongAmount;\n\n basketNotEmpty = isBasketNotEmpty();\n\n if (prices) {\n isWrongAmount = Array.from(prices).some((price) => {\n return parseFloat(price.getAttribute('content')) <= 0;\n });\n }\n\n if (!basketNotEmpty && !isWrongAmount && !addToCartButton.disabled) {\n showPayPalButton(paypalButton);\n } else {\n hidePayPalButton(paypalButton);\n }\n });\n}\n\n/**\n * Handles PayPal button behavior on PDP for Product set.\n * @param {string} selector - The selector for the PayPal button.\n * @returns {void}\n */\nfunction initPaypalButtonBehaviorOnPdpSet(selector) {\n initPaypalButtonBehaviorOnSet(selector);\n\n $('body').on('product:afterAddToCart', function() {\n hideAllPayPalButtonsOnSet(selector);\n });\n\n // Case when buyer remove product from Cart\n $('body').on('cart:update', function() {\n const addToCartButtons = document.querySelectorAll(ADD_TO_CART_BTN_SELECTOR);\n const basketNotEmpty = isBasketNotEmpty();\n\n addToCartButtons.forEach((btn) => {\n const paypalButton = btn.closest('.attributes, .prices-add-to-cart-actions').querySelector(selector);\n\n const prices = document.querySelectorAll(PRICE_SELECTOR);\n\n let isWrongAmount;\n\n if (prices) {\n isWrongAmount = Array.from(prices).some((price) => {\n return parseFloat(price.getAttribute('content')) <= 0;\n });\n }\n\n if (!basketNotEmpty && !isWrongAmount && !btn.disabled) {\n showPayPalButton(paypalButton);\n } else {\n hidePayPalButton(paypalButton);\n }\n });\n });\n}\n\n/**\n * Init PayPal button display behavior. This code is handle only PayPal button on PVP page\n * @returns {void}\n */\nfunction initProductViewPage() {\n const PP_BUTTONS_SELECTOR = '.js-braintree-pvp-button, .js-braintree-pvp-button-global';\n\n const paypalButton = document.querySelector('.quick-view-dialog .js-braintree-pvp-button-global');\n const isProductSet = Boolean(document.querySelector('.set-items'));\n\n if (isProductSet) {\n initPaypalButtonBehaviorOnSet(PP_BUTTONS_SELECTOR);\n } else if (paypalButton) {\n initPaypalButtonBehaviorOnPvp(paypalButton);\n }\n}\n\n/**\n * Init PayPal button display behavior on PDP.\n */\nfunction initProductPage() {\n const PP_BUTTONS_SELECTOR = '.js-braintree-pdp-button, .js-braintree-pdp-button-global';\n\n const paypalButton = document.querySelector(PP_BUTTONS_SELECTOR);\n const paypalCreditBanner = document.querySelector(PAYPAL_BANNER_SELECTOR);\n const isProductSet = Boolean(document.querySelector('.set-items'));\n const isProductBundle = Boolean(document.querySelector('.product-bundle'));\n\n if (isProductSet) {\n initPaypalButtonBehaviorOnPdpSet(PP_BUTTONS_SELECTOR);\n } else if (paypalButton) {\n initPaypalButtonBehaviorOnPdp(paypalButton);\n }\n\n if (paypalCreditBanner) {\n if (isProductSet) {\n initPaypalCreditMessagesBehaviorOnPdpSet();\n } else if (isProductBundle) {\n initPaypalCreditMessagesBehaviorOnPdpBundle();\n } else {\n initPaypalCreditMessagesBehaviorOnPdp();\n }\n }\n}\n\nmodule.exports = {\n initProductPage,\n initProductViewPage,\n paypalMinicartButtonBehavior\n};\n","'use strict';\n\nconst PayPalCartModel = require('../models/payPalCartModel');\nconst PaypalAlertHandlerModel = require('../alerthandler/paypalAlertHandlerModel');\nconst helper = require('../../helper');\n\n/**\n * Initialize Cart page PayPal button\n * @param {Promise} clientInstancePromise Client instance promise\n */\nfunction init(clientInstancePromise) {\n const payPalButtonSelector = '.cart-page .js-braintree-paypal-cart-button';\n const $payPalButton = document.querySelector(payPalButtonSelector);\n const payPalConfigurations = helper.tryParseJSON($payPalButton.getAttribute('data-braintree-config'));\n\n const $csrfToken = document.querySelector('.js-braintree-cart-paypal-buttons-wrap #csrf_token');\n const $loaderContainer = document.querySelector('.js-braintree-paypal-loader');\n\n const alertHandler = new PaypalAlertHandlerModel(payPalConfigurations.messages);\n const PayPalExpress = new PayPalCartModel(alertHandler,\n clientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $csrfToken,\n $loaderContainer);\n\n // Generate Fraud Data if enabled\n PayPalExpress.generateFraudData();\n // Init PayPal button\n PayPalExpress.initPayment();\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst PayPalCheckoutModel = require('../models/payPalCheckoutModel');\nconst PaypalAlertHandlerModel = require('../alerthandler/paypalAlertHandlerModel');\nconst payPalAccountList = require('./payPalList');\nconst helper = require('../../helper');\n\nlet braintreeClientInstancePromise;\nlet payPalConfigs;\n\n/**\n * Initialize Checkout PayPal button functionality\n * @param {Promise} btClientInstancePromise BT Client Instance promise\n * @param {Object} payPalConfigurations PayPal checkout configurations object\n */\nfunction initCheckout(btClientInstancePromise, payPalConfigurations) {\n const payPalButtonSelector = '.js-braintree-paypal-billing-button';\n const $continueButton = document.querySelector('button.submit-payment');\n\n const $loaderContainer = document.querySelector('.js-braintree-paypal-loader');\n\n const alertHandler = new PaypalAlertHandlerModel(payPalConfigurations.messages);\n const PayPalCheckoutPayment = new PayPalCheckoutModel(alertHandler,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $continueButton,\n $loaderContainer);\n\n // Generate Fraud Data if enabled\n PayPalCheckoutPayment.generateFraudData();\n // Init account list\n payPalAccountList.init(PayPalCheckoutPayment.fraudDataPromise);\n // Init PayPal button\n PayPalCheckoutPayment.initPayment();\n}\n\n/**\n * Initialize Checkout PayPal button functionality.\n * Additional code was added which is used for total amount extracting which is needed for \"Change Payment Method button\" feature\n * @param {Promise} btClientInstancePromise BT Client Instance promise\n */\nfunction init(btClientInstancePromise) {\n const $payPalButton = document.querySelector('.js-braintree-paypal-billing-button');\n const $paypalTab = document.querySelector('.payment-options .nav-item[data-method-id=\"PayPal\"]');\n\n payPalConfigs = helper.tryParseJSON($payPalButton.getAttribute('data-braintree-config'));\n braintreeClientInstancePromise = btClientInstancePromise;\n\n const sessionPaymentMethodId = payPalConfigs.sessionPaymentMethodId;\n\n // To load PayPal button only when buyer click (or from code) on PayPal Checkout tab\n $paypalTab.addEventListener('click', function() {\n const selectedMethodID = this.dataset.methodId;\n\n if (selectedMethodID === 'PayPal' && !window.payPalCheckoutWasInited) {\n window.payPalCheckoutWasInited = true;\n\n initCheckout(braintreeClientInstancePromise, payPalConfigs);\n }\n });\n\n // Case when buyer use 'ChangePM' button\n // After click we select PayPal PM and init the rest of PP logic\n if (sessionPaymentMethodId === 'PayPal') {\n $paypalTab.click();\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst payPalSessionAccountComponent = require('./payPalSessionAccount');\nconst payPalStoredBillingAddressComponent = require('./payPalStoredBillingAddress');\nconst {\n isVaultModeEnabled,\n getAccountType,\n setNonceInputValue,\n hideSavePayPalAccountBlock,\n displaySavePayPalAccountBlock,\n displayPayPalButton,\n hidePayPalButon,\n displayContinueButton,\n hideContinueButon,\n isBuyerAuthenticated,\n selectPayPalCheckoutTab,\n setBraintreePayPalEmailInput,\n handleStoredAccountsShowing\n} = require('../helpers/payPalListHelper');\n\nconst paymentMethodGeneral = require('../../paymentMethodGeneral');\n\nlet $payPalAccountList;\nlet $continueButton;\nlet $savePaypalAccountCountainer;\nlet $braintreePayPalNonce;\nlet $paypalButton;\nlet $payPalTab;\nlet $braintreePaypalEmail;\n\nconst constantList = {\n SESSION_ACCOUNT: 'session_account',\n NEW_ACCOUNT: 'new_account',\n STORED_ACCOUNT: 'stored_account'\n};\n\n/**\n * The function which manages what should be done when session/stored/new account was selected from the account dropdown\n * @param {Promise} fraudDataPromise A promise received as a result of generating fraud data\n */\nasync function accountsListChange(fraudDataPromise) {\n const billingFormHelper = require('../helpers/payPalBillingFormHelperGlobal');\n\n const accountType = getAccountType($payPalAccountList, constantList);\n const buyerAuthentificated = isBuyerAuthenticated($payPalAccountList);\n const vaultModeEnabled = isVaultModeEnabled($paypalButton);\n const $selectedPayPalAccountOption = $payPalAccountList.options[$payPalAccountList.selectedIndex];\n\n $continueButton.removeEventListener('click', payPalSessionAccountComponent.removeSessionNonce);\n\n // eslint-disable-next-line default-case\n switch (accountType) {\n // Buyer selected new PayPal account\n case constantList.NEW_ACCOUNT:\n displayPayPalButton($paypalButton);\n hideContinueButon($continueButton);\n\n if (vaultModeEnabled && buyerAuthentificated) {\n displaySavePayPalAccountBlock($savePaypalAccountCountainer);\n }\n\n payPalStoredBillingAddressComponent.displaySelectedStoredBillingAddress($selectedPayPalAccountOption);\n\n break;\n\n // Buyer selected session account\n case constantList.SESSION_ACCOUNT:\n const storedAccountWithSessionAccountEmail = billingFormHelper.getStoredAccountBySesionAccountEmail();\n const $selectedOption = $payPalAccountList.selectedOptions[0];\n const selectedOptionNonceValue = $selectedOption.getAttribute('data-nonce');\n\n setNonceInputValue($braintreePayPalNonce, selectedOptionNonceValue);\n displayContinueButton($continueButton);\n hidePayPalButon($paypalButton);\n\n // A case when a buyer re-added a PayPal account that he already had saved (session account\n // has the same email as stored accoutnt)\n if (vaultModeEnabled && buyerAuthentificated) {\n if (storedAccountWithSessionAccountEmail) {\n hideSavePayPalAccountBlock($savePaypalAccountCountainer);\n } else {\n displaySavePayPalAccountBlock($savePaypalAccountCountainer);\n }\n }\n\n selectPayPalCheckoutTab($payPalTab);\n\n break;\n\n // Buyer selected stored account\n case constantList.STORED_ACCOUNT:\n const selectedAccountEmail = $selectedPayPalAccountOption.text;\n\n if (vaultModeEnabled) {\n hideSavePayPalAccountBlock($savePaypalAccountCountainer);\n }\n\n setNonceInputValue($braintreePayPalNonce, '');\n displayContinueButton($continueButton);\n hidePayPalButon($paypalButton);\n\n selectPayPalCheckoutTab($payPalTab);\n setBraintreePayPalEmailInput($braintreePaypalEmail, selectedAccountEmail);\n\n // Display billing address of selected PayPal account\n payPalStoredBillingAddressComponent.displaySelectedStoredBillingAddress($selectedPayPalAccountOption);\n\n // Set Device data\n const fraudData = await fraudDataPromise;\n\n if (!fraudData.fraudDataCollectionDisabled) {\n billingFormHelper.fillFraudDataInput(fraudData);\n }\n\n $continueButton.addEventListener('click', payPalSessionAccountComponent.removeSessionNonce);\n\n break;\n }\n}\n\n/**\n * Init PayPal Account list functionality\n * @param {Promise} fraudDataPromise A promise received as a result of generating fraud data\n */\nfunction init(fraudDataPromise) {\n $payPalAccountList = document.getElementById('braintreePaypalAccountsList');\n $savePaypalAccountCountainer = document.getElementById('braintreeSavePaypalAccountContainer');\n $braintreePayPalNonce = document.getElementById('braintreePayPalNonce');\n $paypalButton = document.querySelector('.js-braintree-paypal-billing-button');\n $continueButton = document.querySelector('button.submit-payment');\n $payPalTab = document.querySelector('.js-paypal-tab');\n $braintreePaypalEmail = document.getElementById('braintreePaypalEmail');\n\n const buyerAuthenticated = isBuyerAuthenticated($payPalAccountList);\n const isSessionPaymentsEnabled = window.braintreePreferences.isSessionPaymentsEnabled;\n\n // Add on change \"account list\" event\n $payPalAccountList.addEventListener('change', () => accountsListChange(fraudDataPromise));\n // Saves selected billing address from CREDIT_CARD tab\n paymentMethodGeneral.saveSelectedBillingAddressFromPreviousTab();\n // Execute \"account list\" change function to setup init values\n accountsListChange(fraudDataPromise);\n // Check whether buyer has proceeded with the same email which is already stored\n // if yes we hide stored account with the same email in dropdown\n // if no we show all existent PP accounts in dropdown (stored + new session account)\n handleStoredAccountsShowing(buyerAuthenticated, isSessionPaymentsEnabled);\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst PayPalExpressModel = require('../models/payPalExpressModel');\nconst PaypalAlertHandlerModel = require('../alerthandler/paypalAlertHandlerModel');\nconst paymentMethodGeneral = require('../../paymentMethodGeneral');\nconst paypalMinicartButtonBehavior = require('./payPalButtonDisplayBehavior');\nconst helper = require('../../helper');\n\nconst PAYPAL_BUTTON_SELECTOR = '.js-paypal-minicart-button .js-braintree-paypal-cart-button';\n\nlet $payPalButton;\n\n/**\n * Init PayPal on the MiniCart Page\n * @returns {void} stop function execution in case if PayPal button wasn't rendered\n */\nfunction initPayPalOnMiniCart() {\n const $paypalMinicartButton = document.querySelector('.js-paypal-minicart-button');\n\n // Case when buyer remove product from the Cart\n $('body').on('cart:update', function() {\n paypalMinicartButtonBehavior.paypalMinicartButtonBehavior($paypalMinicartButton);\n });\n\n paypalMinicartButtonBehavior.paypalMinicartButtonBehavior($paypalMinicartButton);\n\n const payPalConfigurations = helper.tryParseJSON($payPalButton.getAttribute('data-braintree-config'));\n const isPayPalButtonWasInited = helper.tryParseJSON($payPalButton.getAttribute('data-is-inited'));\n\n // Do not init PayPal button if it was already inited or PayPal configs are empty\n if (isPayPalButtonWasInited || typeof payPalConfigurations !== 'object' || payPalConfigurations === null) {\n return;\n }\n\n const $csrfToken = document.querySelector('.js-braintree-cart-paypal-buttons-wrap #csrf_token');\n const $loaderContainer = document.querySelector('.js-braintree-paypal-loader');\n\n const clientInstancePromise = paymentMethodGeneral.createGeneralClientInstancePromise();\n\n const alertHandler = new PaypalAlertHandlerModel(payPalConfigurations.messages);\n const PayPalExpress = new PayPalExpressModel(alertHandler,\n clientInstancePromise,\n PAYPAL_BUTTON_SELECTOR,\n payPalConfigurations,\n $csrfToken,\n $loaderContainer);\n\n // Generate Fraud Data if enabled\n PayPalExpress.generateFraudData();\n\n // Init PayPal button\n PayPalExpress.initPayment();\n\n // Indicate that PayPal button was already inited.\n $payPalButton.setAttribute('data-is-inited', true);\n}\n\n/**\n * Init PayPal button on the MiniCart Page\n */\nfunction init() {\n const $minicartPopover = document.querySelector('.minicart .popover');\n\n // To avoid execution of this code on checkout page\n if ($minicartPopover) {\n const observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(mutation) {\n if (mutation.addedNodes.length < 2) {\n return;\n }\n\n $payPalButton = document.querySelector(PAYPAL_BUTTON_SELECTOR);\n\n if ($payPalButton) {\n initPayPalOnMiniCart();\n }\n });\n });\n\n observer.observe($minicartPopover, { childList: true });\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst PayPalProductPageModel = require('../models/payPalProductModel');\nconst PaypalAlertHandlerModel = require('../alerthandler/paypalAlertHandlerModel');\n\nconst payPalButtonDisplayBehavior = require('./payPalButtonDisplayBehavior');\nconst braintreePayPalSDK = require('../braintreesdk/braintreePayPalSDK');\nconst helper = require('../../helper');\n\n/**\n * Init PayPal button on the Product Page\n * @param {Promise} clientInstancePromise Client Instance Promise\n */\nfunction init(clientInstancePromise) {\n const pvpModels = [];\n const PP_BTN_SELECTOR = '.js-braintree-paypal-cart-button';\n const paypalButtonContainers = document.querySelectorAll('.js-braintree-pdp-button, .js-braintree-pdp-button-global');\n\n let isVaultMode;\n let payPalConfigurations;\n\n if (paypalButtonContainers) {\n paypalButtonContainers.forEach((container, index) => {\n const $payPalButton = container.querySelector(PP_BTN_SELECTOR);\n const $loaderContainer = container.querySelector('.js-braintree-paypal-loader');\n const $csrfToken = container.querySelector('.js-braintree-cart-paypal-buttons-wrap #csrf_token');\n\n if ($payPalButton) {\n $payPalButton.classList.add(`${PP_BTN_SELECTOR.slice(1)}-${index}-pdp`);\n\n const selector = `.${Array.from($payPalButton.classList).join('.')}`;\n\n payPalConfigurations = helper.tryParseJSON($payPalButton.getAttribute('data-braintree-config'));\n isVaultMode = payPalConfigurations.options.flow !== 'checkout';\n\n const alertHandler = new PaypalAlertHandlerModel(payPalConfigurations.messages);\n\n const PayPalProductPage = new PayPalProductPageModel(alertHandler,\n clientInstancePromise,\n selector,\n payPalConfigurations,\n $csrfToken,\n $loaderContainer);\n\n // Generate Fraud Data if enabled\n PayPalProductPage.generateFraudData();\n\n pvpModels.push(PayPalProductPage);\n }\n });\n\n // Init PayPal buttons\n braintreePayPalSDK.payPalButtonRendering(clientInstancePromise,\n isVaultMode,\n payPalConfigurations,\n pvpModels);\n\n // Init behavior for hide/show PayPal button\n payPalButtonDisplayBehavior.initProductPage();\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst PayPalProductViewPageModel = require('../models/payPalProductModel');\nconst PaypalAlertHandlerModel = require('../alerthandler/paypalAlertHandlerModel');\n\nconst payPalButtonDisplayBehavior = require('./payPalButtonDisplayBehavior');\nconst braintreePayPalSDK = require('../braintreesdk/braintreePayPalSDK');\nconst helper = require('../../helper');\n\n/**\n * Init PayPal button on the Product View Page\n * @param {Promise} clientInstancePromise Client Instance Promise\n */\nfunction init(clientInstancePromise) {\n const PP_BTN_SELECTOR = '.js-braintree-paypal-cart-button';\n\n const pvpModels = [];\n\n let isVaultMode;\n let payPalConfigurations;\n\n const paypalButtonContainers\n = document.querySelectorAll('.quick-view-dialog .js-braintree-pvp-button, .quick-view-dialog .js-braintree-pvp-button-global');\n\n if (paypalButtonContainers) {\n paypalButtonContainers.forEach((container, index) => {\n const $payPalButton = container.querySelector(PP_BTN_SELECTOR);\n const $loaderContainer = container.querySelector('.js-braintree-paypal-loader');\n const $csrfToken = container.querySelector('.js-braintree-cart-paypal-buttons-wrap #csrf_token');\n\n if ($payPalButton) {\n $payPalButton.classList.add(`${PP_BTN_SELECTOR.slice(1)}-${index}-pvp`);\n\n const selector = `.${Array.from($payPalButton.classList).join('.')}`;\n\n payPalConfigurations = helper.tryParseJSON($payPalButton.getAttribute('data-braintree-config'));\n isVaultMode = payPalConfigurations.options.flow !== 'checkout';\n\n const alertHandler = new PaypalAlertHandlerModel(payPalConfigurations.messages);\n\n const PayPalProductViewPage = new PayPalProductViewPageModel(alertHandler,\n clientInstancePromise,\n selector,\n payPalConfigurations,\n $csrfToken,\n $loaderContainer);\n\n // Generate Fraud Data if enabled\n PayPalProductViewPage.generateFraudData();\n\n pvpModels.push(PayPalProductViewPage);\n }\n });\n\n // Init PayPal buttons\n braintreePayPalSDK.payPalButtonRendering(clientInstancePromise,\n isVaultMode,\n payPalConfigurations,\n pvpModels);\n\n // Init behavior for hide/show PayPal button\n payPalButtonDisplayBehavior.initProductViewPage();\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst payPalSessionAccountHelper = require('../helpers/payPalSessionAccountHelper');\n\n/**\n * Function which remove session nonce and related to the session account data\n */\nfunction removeSessionNonce() {\n const $braintreePayPalNonce = document.getElementById('braintreePayPalNonce');\n const $braintreePaypalAccount = document.getElementById('braintreePaypalAccount');\n\n const sessionOption = helper.getSessionAccountOption({\n querySelector: '#braintreePaypalAccountsList',\n id: 'braintreePaypalAccount'\n });\n\n if (sessionOption) {\n $braintreePayPalNonce.value = '';\n $braintreePaypalAccount.selected = false;\n\n sessionOption.classList.add('used-paypal-account-hide');\n sessionOption.classList.remove('used-paypal-account');\n sessionOption.value = '';\n sessionOption.text = '';\n sessionOption.setAttribute('data-session-account', false);\n sessionOption.setAttribute('data-save', false);\n\n // Handles a behavior inside PayPal tab, when session PayPal account was deleted\n payPalSessionAccountHelper.handlePaypalTabBehavior();\n }\n}\n\nmodule.exports = {\n removeSessionNonce\n};\n","'use strict';\n\n/**\n * Display billing address of passed paypal payment option (of selected paypal payment option)\n * @param {Object} selectedPayPalPayment Selected PayPal payment option\n */\nfunction displaySelectedStoredBillingAddress(selectedPayPalPayment) {\n const paymentMethodGeneralHelper = require('../../../braintree/paymentMethodGeneralHelper');\n\n if (selectedPayPalPayment) {\n const selectedOptionClassList = selectedPayPalPayment.classList;\n const storedPayPalAddressOption = document.querySelector('.stored-billing-address');\n\n let billingAddressAsString;\n\n if (selectedOptionClassList.contains('js-new-paypal-account')) {\n billingAddressAsString = selectedPayPalPayment.getAttribute('data-billing-address');\n } else {\n billingAddressAsString = paymentMethodGeneralHelper.getBillingAddressAsString(selectedPayPalPayment);\n }\n\n if (billingAddressAsString) {\n if (storedPayPalAddressOption) {\n storedPayPalAddressOption.text = billingAddressAsString;\n storedPayPalAddressOption.selected = true;\n } else {\n paymentMethodGeneralHelper.createBillingAddressOption('stored-billing-address', billingAddressAsString);\n }\n }\n }\n}\n\nmodule.exports = {\n displaySelectedStoredBillingAddress\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * Save PayPal account to DW\n * @param {string} addPayPalAccountUrl add PayPal account url\n * @param {FormData} paymentFormData payment FormData\n * @returns {Promise} response from server\n */\nfunction savePayPalAccount(addPayPalAccountUrl, paymentFormData) {\n return fetch(helper.getUrlWithCsrfToken(addPayPalAccountUrl), {\n method: 'POST',\n body: btoa(JSON.stringify(Object.fromEntries(paymentFormData))),\n headers: { 'Content-Type': 'application/json' }\n });\n}\n\n/**\n * Render PayPal account\n * @param {string} renderAccountsUrl render PayPal accounts URL\n * @returns {Promise} promise with html of PayPal account list\n */\nfunction renderPayPalAccounts(renderAccountsUrl) {\n return fetch(renderAccountsUrl);\n}\n\n/**\n * Hide PayPal account button\n */\nfunction hidePaypalAccountBtn() {\n const $addNewPaypalAccountBtn = document.querySelector('.js-add-paypal-account');\n const $paypalAccountButtonWrapper = document.querySelector('.js-braintree-account-paypal-button-wrapper');\n\n // Display add new paypal account button\n $addNewPaypalAccountBtn.classList.remove('d-none');\n // Hide PayPal Account button\n $paypalAccountButtonWrapper.classList.add('d-none');\n}\n\n/**\n * Add PayPal accounts html template to the DOM\n * @param {string} accountListTemplate html template with PayPal account list\n */\nfunction addPayPalAccountsToTheTemplate(accountListTemplate) {\n const $payPalAccountsContainer = document.querySelector('.js-paypal-accounts');\n\n $payPalAccountsContainer.innerHTML = accountListTemplate;\n}\n\n/**\n * Trigger cart:updates event\n */\nfunction throwCartUpdate() {\n $('body').trigger('cart:update');\n}\n\nmodule.exports = {\n savePayPalAccount,\n renderPayPalAccounts,\n hidePaypalAccountBtn,\n addPayPalAccountsToTheTemplate,\n throwCartUpdate\n};\n","'use strict';\n\n/**\n * Show PayPal Account button\n */\nfunction showPayPalAccountBtn() {\n const $addPaypalAccountBtn = document.querySelector('.js-add-paypal-account');\n const $paypalAccountWrapper = document.querySelector('.js-braintree-account-paypal-button-wrapper');\n\n $addPaypalAccountBtn.classList.add('d-none');\n $paypalAccountWrapper.classList.remove('d-none');\n}\n\nmodule.exports = {\n showPayPalAccountBtn\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\nconst btPaypalAccontSelectorID = 'braintreePaypalAccount';\n\n/**\n * Store payment as session payment\n * @param {string} nonce Nonce\n * @param {string} sessionAccountEmail Session account email\n */\nfunction storePaymentAsSessionPayment(nonce, sessionAccountEmail) {\n const $accountListBlock = document.querySelector('.js-braintree-used-paypal-account');\n const $braintreePaypalNonceInput = document.querySelector('input[name=braintreePaypalNonce]');\n const $sessionPyapalAccount = document.getElementById(btPaypalAccontSelectorID);\n\n if ($braintreePaypalNonceInput) {\n $braintreePaypalNonceInput.value = nonce;\n }\n\n $sessionPyapalAccount.setAttribute('data-session-account', 'true');\n $sessionPyapalAccount.setAttribute('data-nonce', nonce);\n $sessionPyapalAccount.innerText = sessionAccountEmail;\n $sessionPyapalAccount.classList.remove('used-paypal-account-hide');\n\n // Show account list block\n $accountListBlock.classList.remove('used-paypal-account-hide');\n}\n\n/**\n * Select session paypal accounts.\n * Every time when buyer adds new account, the New Account option is selected (doesn't matter logged in buyer or not)\n */\nfunction setSessionAccountOptionDefault() {\n const $savedPayPalAccountList = document.getElementById('braintreePaypalAccountsList');\n const $sessionPyapalAccount = document.getElementById(btPaypalAccontSelectorID);\n\n Array.prototype.forEach.call($savedPayPalAccountList, function(element) {\n element.removeAttribute('selected');\n });\n\n $sessionPyapalAccount.selected = true;\n}\n\n/**\n * Get stored account by session account email\n * @returns {Object} js container with stored account\n */\nfunction getStoredAccountBySesionAccountEmail() {\n const sessionPaypalAccount = document.getElementById('braintreePaypalAccount');\n const paypalAccountsList = document.getElementById('braintreePaypalAccountsList');\n const sessionEmail = sessionPaypalAccount.value || null;\n\n return Array.apply(null, paypalAccountsList.options).find(function(el) {\n return el.getAttribute('data-id') && sessionEmail && sessionEmail === el.innerText.trim();\n });\n}\n\n/**\n * Fill DW billing form with billing address from Bt\n * @param {Object} braintreeAddress Billing address from BT\n * @param {Object} btDetails Details from BT\n * @returns {Object} Object with billing form fields and it's values\n */\nfunction mapBraintreeWithDwBillingAddress(braintreeAddress, btDetails) {\n const $btPaymentMethodWrapper = document.querySelector('.js-braintree-billing-payment-wrap');\n const dwBillingFormFieldNames = helper.tryParseJSON($btPaymentMethodWrapper.getAttribute('data-billing-form-fields-names'));\n\n dwBillingFormFieldNames.dwfrm_billing_addressFields_firstName = btDetails.firstName;\n dwBillingFormFieldNames.dwfrm_billing_addressFields_lastName = btDetails.lastName;\n dwBillingFormFieldNames.dwfrm_billing_addressFields_address1 = braintreeAddress.line1;\n dwBillingFormFieldNames.dwfrm_billing_addressFields_address2 = braintreeAddress.line2;\n dwBillingFormFieldNames.dwfrm_billing_addressFields_city = braintreeAddress.city;\n dwBillingFormFieldNames.dwfrm_billing_addressFields_postalCode = decodeURIComponent(braintreeAddress.postalCode);\n dwBillingFormFieldNames.dwfrm_billing_addressFields_states_stateCode = braintreeAddress.state;\n dwBillingFormFieldNames.dwfrm_billing_addressFields_country = braintreeAddress.countryCode;\n dwBillingFormFieldNames.dwfrm_billing_contactInfoFields_phone = btDetails.phone;\n\n return dwBillingFormFieldNames;\n}\n\n/**\n * Create billing address data\n * @param {Object} payloadDetails BT paymload details\n * @returns {Object} Mapped billing data\n */\nfunction createBillingAddressData(payloadDetails) {\n const billingAddress = payloadDetails.billingAddress;\n\n billingAddress.firstName = payloadDetails.firstName;\n billingAddress.lastName = payloadDetails.lastName;\n billingAddress.email = payloadDetails.email;\n billingAddress.phone = payloadDetails.phone;\n billingAddress.countryCodeAlpha2 = billingAddress.countryCode;\n billingAddress.streetAddress = billingAddress.line1;\n billingAddress.extendedAddress = billingAddress.line2;\n billingAddress.locality = billingAddress.city;\n billingAddress.region = billingAddress.state;\n\n return billingAddress;\n}\n\n/**\n * Copy PayPal billing address to DW billing form\n * @param {Object} braintreeBillingAddress Billing address from BT\n * @param {Object} btDetails Details from bt\n */\nfunction copyPayPalBillingAddressToDw(braintreeBillingAddress, btDetails) {\n const $braintreePaypalBillingAddressInput = document.querySelector('input[name=braintreePaypalBillingAddress]');\n const paypalBillingData = mapBraintreeWithDwBillingAddress(braintreeBillingAddress, btDetails);\n\n // Store billing address inside hidden input in order to send it to the server and\n // proccess with billing address server logic (the logic - billing address can't be overrided by\n // buyer. Only PayPal billing address should be used)\n $braintreePaypalBillingAddressInput.value = JSON.stringify(paypalBillingData);\n helper.updateBillingFormValues(paypalBillingData);\n}\n\n/**\n * Create billig address FormData\n * @param {Object} paypalBillingFormFields PayPal billing form fields\n * @param {Object} billingAddressData Billing address data\n * @returns {FormData} Billing FormData\n */\nfunction createBillingAddressFormData(paypalBillingFormFields, billingAddressData) {\n return helper.createPaymentFormData(paypalBillingFormFields, {\n firstName: billingAddressData.firstName,\n lastName: billingAddressData.lastName,\n address1: billingAddressData.streetAddress,\n address2: billingAddressData.extendedAddress || '',\n city: billingAddressData.locality,\n postalCode: decodeURIComponent(billingAddressData.postalCode),\n stateCode: billingAddressData.state,\n country: billingAddressData.countryCodeAlpha2,\n email: billingAddressData.email,\n phone: billingAddressData.phone,\n paymentMethod: 'PayPal'\n });\n}\n\n/**\n * Fill PayPal payment fields with payment data\n * @param {Object} btDetails Details from BT\n * @param {boolean} isSessionPaymentsEnabled Whether session card or not, depending on Session Payments Enabled pref\n */\nfunction fillPayPalPaymentFields(btDetails, isSessionPaymentsEnabled) {\n const $braintreePaypalEmailInput = document.getElementById('braintreePaypalEmail');\n const $paypalAccountOption = document.getElementById(`${isSessionPaymentsEnabled ? btPaypalAccontSelectorID : 'newPPAccount'}`);\n const btEmail = btDetails.email;\n\n $braintreePaypalEmailInput.value = btEmail;\n $paypalAccountOption.value = btEmail;\n $paypalAccountOption.innerText = btEmail;\n\n // Hide Continue button\n if (window.braintreePreferences.isSessionPaymentsEnabled) {\n helper.continueButtonToggle(false);\n }\n}\n\n/**\n * Fill fraud data input with fraud data\n * @param {Object} data Fraud data\n */\nfunction fillFraudDataInput(data) {\n const $braintreePaypalRiskDataInput = document.querySelector('input[name=braintreePaypalRiskData]');\n\n $braintreePaypalRiskDataInput.value = data.deviceData;\n}\n\n/**\n * Append CSRF token to the billing FormData\n * @param {FormData} formData Billing form data\n * @param {Object} $csrfToken CSRF token js container\n */\nfunction appendCsrfTokenToFormData(formData, $csrfToken) {\n formData.append($csrfToken.name, $csrfToken.value);\n}\n\n/**\n * Append funding source to the billing FormData\n * @param {FormData} formData Billing form data\n * @param {string} fundingSource funding source\n */\nfunction appendBraintreePaypalFundingSourceToFormData(formData, fundingSource) {\n formData.append('braintreePaypalFundingSource', fundingSource);\n}\n\n/**\n * Append email to the billing FormData\n * @param {FormData} formData billing form data\n * @param {string} email user email\n */\nfunction appendEmailAsStringToFormData(formData, email) {\n formData.append('braintreePaypalEmail', email);\n}\n\n/**\n * Append fraud data to the FormData\n * @param {FormData} billingFromData billing FormData\n * @param {Object} fraudData fraud data\n */\nfunction appendFraudDataToFormData(billingFromData, fraudData) {\n billingFromData.append('braintreePaypalRiskData', fraudData);\n}\n\n/**\n * Append billing address data as a string to the FromData\n * @param {FormData} billingFromData Billing FormData\n * @param {Object} billingData Billing data\n */\nfunction appendBillingAddressAsStringToFormData(billingFromData, billingData) {\n billingFromData.append('braintreePaypalBillingAddress', JSON.stringify(billingData));\n}\n\n/**\n * Append BT payment fields to the FromData\n * @param {FormData} billingFromData Billing FormData\n * @param {Object} payload payload from BT\n */\nfunction appendBtPaymentFieldsToFormData(billingFromData, payload) {\n billingFromData.append('braintreePaypalNonce', payload.nonce);\n billingFromData.append('braintreeSavePaypalAccount', false);\n}\n\n/**\n * Append params to the URL\n * @param {string} url To which append params\n * @param {Object} param Which should be appended to the URL\n * @returns {string} Final URL with passed params\n */\nfunction appendToUrl(url, param) {\n let newUrl = url;\n\n newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') + Object.keys(param).map(function(key) {\n return `${key }=${encodeURIComponent(param[key])}`;\n }).join('&');\n\n return newUrl;\n}\n\nmodule.exports = {\n storePaymentAsSessionPayment,\n setSessionAccountOptionDefault,\n getStoredAccountBySesionAccountEmail,\n copyPayPalBillingAddressToDw,\n createBillingAddressFormData,\n createBillingAddressData,\n fillPayPalPaymentFields,\n fillFraudDataInput,\n appendCsrfTokenToFormData,\n appendFraudDataToFormData,\n appendBillingAddressAsStringToFormData,\n appendBtPaymentFieldsToFormData,\n appendEmailAsStringToFormData,\n appendBraintreePaypalFundingSourceToFormData,\n // Utils\n appendToUrl\n};\n","'use strict';\n\n/**\n * Hide PayPal button\n */\nfunction hidePayPalButtons() {\n const payPalButtonsContainer = document.querySelector('.js-braintree-paypal-billing-button');\n\n payPalButtonsContainer.classList.add('d-none');\n}\n\n/* -------------------------------------------- Account\\Options Manipulations -------------------------------------------- */\n\n/**\n * Hide account option from account dropdown\n * @param {Object} $accountOption vanilla js account option container\n */\nfunction hideAccount($accountOption) {\n $accountOption.style.display = 'none';\n}\n\n/**\n * Hide Save New Account checkbox with corresponding block\n */\nfunction hideSaveNewAccountContainer() {\n const savePaypalAccountCheckbox = document.getElementById('braintreeSavePaypalAccount');\n const savePaypalAccountContainer = document.getElementById('braintreeSavePaypalAccountContainer');\n\n savePaypalAccountCheckbox.value = false;\n savePaypalAccountContainer.style.display = 'none';\n}\n\n/**\n * Make all hidden stored paypal accounts visible for buyer\n */\nfunction displayAllStoredAccounts() {\n const braintreePaypalAccountsList = document.getElementById('braintreePaypalAccountsList');\n\n Array.prototype.forEach.call(braintreePaypalAccountsList, function(el) {\n if (el.style.display === 'none') {\n el.style.display = 'block';\n }\n });\n}\n\n/**\n * Hides 'Save PayPal Account' checkbox on the Billing Page\n */\nfunction hideSavePayPalAccountBlock() {\n const $savePaypalAccountCountainer = document.getElementById('braintreeSavePaypalAccountContainer');\n\n $savePaypalAccountCountainer.style.display = 'none';\n}\n\n/**\n * Function which store billing data on session payment option level\n * @param {Object} btPayloadDetails braintree payload details\n */\nfunction addBillingAddressOnPaymentOptionLevel(btPayloadDetails) {\n const $sessionPyapalAccount = document.getElementById('braintreePaypalAccount');\n const btBillingAddress = btPayloadDetails.billingAddress;\n\n $sessionPyapalAccount.setAttribute('data-billing-address', JSON.stringify({\n firstName: btPayloadDetails.firstName,\n lastName: btPayloadDetails.lastName,\n line1: btBillingAddress.line1,\n city: btBillingAddress.city,\n state: btBillingAddress.state,\n postalCode: decodeURIComponent(btBillingAddress.postalCode)\n }));\n}\n\nmodule.exports = {\n hidePayPalButtons,\n // Account\\Options Manipulations\n hideAccount,\n hideSaveNewAccountContainer,\n displayAllStoredAccounts,\n hideSavePayPalAccountBlock,\n addBillingAddressOnPaymentOptionLevel\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * Create shipping address data\n * @param {Object} payloadDetails BT payload details\n * @returns {Object} Shipping address\n */\nfunction createShippingAddressData(payloadDetails) {\n const shippingAddressPayPalData = payloadDetails.shippingAddress;\n const shippingAddressData = {\n line1: shippingAddressPayPalData.line1,\n streetAddress: shippingAddressPayPalData.line1,\n city: shippingAddressPayPalData.city,\n locality: shippingAddressPayPalData.city,\n state: shippingAddressPayPalData.state,\n region: shippingAddressPayPalData.state,\n countryCode: shippingAddressPayPalData.countryCode,\n countryCodeAlpha2: shippingAddressPayPalData.countryCode,\n postalCode: decodeURIComponent(shippingAddressPayPalData.postalCode),\n email: payloadDetails.email,\n phone: payloadDetails.phone\n };\n\n if (!shippingAddressPayPalData.recipientName) {\n shippingAddressData.firstName = payloadDetails.firstName;\n shippingAddressData.lastName = payloadDetails.lastName;\n shippingAddressData.recipientName = `${payloadDetails.firstName} ${payloadDetails.lastName}`;\n } else {\n shippingAddressData.recipientName = shippingAddressPayPalData.recipientName;\n }\n\n return shippingAddressData;\n}\n\n/**\n * Append Shipping data as a String to the FormData\n * @param {FormData} billingFromData Billing FormData\n * @param {Object} shippingData Shipping data\n */\nfunction appendShippingDataAsStringToFormData(billingFromData, shippingData) {\n billingFromData.append('braintreePaypalShippingAddress', JSON.stringify(shippingData));\n billingFromData.append('expressCheckoutFlow', true);\n}\n\n/**\n * Creates customer form with email to submit it to CheckoutServices-SubmitCustomer endpoint\n * @param {string} email Email from payment method's response\n * @returns {Object} Customer form data\n */\nfunction createCustomerFormData(email) {\n const data = {\n email: email\n };\n\n const csrfToken = document.querySelector('.js-braintree-cart-paypal-buttons-wrap #csrf_token');\n const checkoutCustomerFormFields = document.querySelector('.js-braintree-cart-paypal-buttons-wrap')\n .getAttribute('data-checkout-customer-form-fields');\n\n const customerFormData = helper.createPaymentFormData(checkoutCustomerFormFields, data);\n\n customerFormData.append(csrfToken.name, csrfToken.value);\n\n return customerFormData;\n}\n\n/**\n * Submits customer form with email to CheckoutServices-SubmitCustomer endpoint\n * Call is triggered only in case if email in basket is empty (guest first checkout from cart)\n * @param {string} email Email from payment method's response\n * @returns {Ajax} Ajax call to CheckoutServices-SubmitCustomer endpoint\n */\nfunction submitCustomerForm(email) {\n const paypalButtonsWrapper = document.querySelector('.js-braintree-cart-paypal-buttons-wrap');\n const isCustomerEmailEmpty = helper.tryParseJSON(paypalButtonsWrapper.getAttribute('data-is-customer-email-empty'));\n // Could be true only in case if email in basket is empty (first guest checkout from cart)\n\n if (isCustomerEmailEmpty) {\n const submitCustomerUrl = window.braintreeUrls.submitCustomerUrl;\n const customerFormData = createCustomerFormData(email);\n\n return fetch(submitCustomerUrl, {\n method: 'POST',\n body: customerFormData\n });\n }\n\n return false;\n}\n\n/**\n * Returns customer shipping address for 'createPayment' method of braintree SDK\n * @param {string} buttonSelector Class name of selector\n * @returns {Object} Shipping address object\n */\nfunction getSavedPaypalAddress(buttonSelector) {\n let payPalAccountData = {};\n const $paypalButton = document.querySelector(buttonSelector);\n\n payPalAccountData = helper.tryParseJSON($paypalButton.getAttribute('data-dafault-paypal-address'));\n\n return payPalAccountData;\n}\n\nmodule.exports = {\n createShippingAddressData,\n appendShippingDataAsStringToFormData,\n submitCustomerForm,\n getSavedPaypalAddress\n};\n","'use strict';\n\nconst billingFormHelper = require('./payPalBillingFormHelperGlobal');\nconst paypalCheckoutModelHelper = require('./payPalCheckoutModelHelper');\nconst helper = require('../../helper');\n\n/**\n * Is vault mode enabled\n * @param {Object} $paypalButton PayPal button js container\n * @returns {boolean} 'true' in case if vault mode is enabled\n */\nfunction isVaultModeEnabled($paypalButton) {\n const payPalConfigurations = helper.tryParseJSON($paypalButton.getAttribute('data-braintree-config'));\n\n return payPalConfigurations.vaultModeEnabled;\n}\n\n/**\n * Function which return account type.\n * Possible values are: new account, session account, stored account\n * @param {Object} $payPalAccountList PayPal account list js container\n * @param {Object} constantList Object with paypal account constants\n * @returns {string} Account type\n */\nfunction getAccountType($payPalAccountList, constantList) {\n let accountType;\n\n if ($payPalAccountList.value === 'newaccount') {\n accountType = constantList.NEW_ACCOUNT;\n } else if ($payPalAccountList.selectedOptions[0].id === 'braintreePaypalAccount') {\n accountType = constantList.SESSION_ACCOUNT;\n } else {\n accountType = constantList.STORED_ACCOUNT;\n }\n\n return accountType;\n}\n\n/**\n * Set nonce in to corresponding hidden input\n * @param {Object} $braintreePayPalNonce BT input nonce js container\n * @param {string} nonceValue Nonce\n */\nfunction setNonceInputValue($braintreePayPalNonce, nonceValue) {\n $braintreePayPalNonce.value = nonceValue;\n}\n\n/**\n * Hide save PayPal account block\n * @param {Object} $savePaypalAccountCountainer Save PayPal account js container\n */\nfunction hideSavePayPalAccountBlock($savePaypalAccountCountainer) {\n $savePaypalAccountCountainer.style.display = 'none';\n}\n\n/**\n * Display save PayPal account block\n * @param {Object} $savePaypalAccountCountainer Save PayPal account js container\n */\nfunction displaySavePayPalAccountBlock($savePaypalAccountCountainer) {\n $savePaypalAccountCountainer.style.display = 'block';\n}\n\n/* --------------- PayPal button manipulations --------------- */\n/**\n * Show PayPal button\n * @param {Object} $paypalButton PayPal button js container\n */\nfunction displayPayPalButton($paypalButton) {\n $paypalButton.classList.remove('d-none');\n}\n\n/**\n * Hide PayPal button\n * @param {Object} $paypalButton PayPal button js container\n */\nfunction hidePayPalButon($paypalButton) {\n $paypalButton.classList.add('d-none');\n}\n\n/* --------------- Continue button manipulations --------------- */\n/**\n * Display Continue button\n * @param {Object} $continueButton Continue button js container\n */\nfunction displayContinueButton($continueButton) {\n $continueButton.style.display = '';\n}\n\n/**\n * Hide Continue button\n * @param {Object} $continueButton Continue button js container\n */\nfunction hideContinueButon($continueButton) {\n $continueButton.style.display = 'none';\n}\n\n/**\n * Return \"true\" if buyer is authenticated\n * Needed on the Checkout Page only\n * @param {Object} $payPalAccountList PayPal account list js container\n * @returns {boolean} \"true\" in case if buyer is authenticated\n */\nfunction isBuyerAuthenticated($payPalAccountList) {\n return helper.tryParseJSON($payPalAccountList.dataset.customerAuthenticated);\n}\n\n/**\n * Select PayPal account tab\n * @param {Object} $payPalTab PayPal payment tab js container\n */\nfunction selectPayPalCheckoutTab($payPalTab) {\n $payPalTab.click();\n}\n\n/**\n * Set email in to corresponding input\n * @param {Object} $braintreePaypalEmail BT PayPal email input js container\n * @param {string} email Email\n */\nfunction setBraintreePayPalEmailInput($braintreePaypalEmail, email) {\n $braintreePaypalEmail.value = email;\n}\n\n/**\n * Returns whether the new PayPal account option is selected\n * @returns {boolean} Whether the new PayPal account option is selected\n */\nfunction isNewPayPalAccountOptionSelected() {\n const $payPalAccountList = document.getElementById('braintreePaypalAccountsList');\n\n if ($payPalAccountList) {\n return $payPalAccountList.value === 'newaccount';\n }\n\n return false;\n}\n\n/**\n * Handles showing stored PP account in dropdown\n * Checks whether buyer has proceeded with the same email which is already stored\n * Triggered while tokenization callback and page reload\n * @param {boolean} buyerAuthenticated Whether customer is authenticated\n * @param {boolean} isSessionPaymentsEnabled Whether session card or not, depending on Session Payments Enabled pref\n */\nfunction handleStoredAccountsShowing(buyerAuthenticated, isSessionPaymentsEnabled) {\n if (!buyerAuthenticated) {\n return;\n }\n\n // Get stored account by session account email\n let $storedAccountOptionWithSameEmail;\n\n if (isSessionPaymentsEnabled) {\n $storedAccountOptionWithSameEmail = billingFormHelper.getStoredAccountBySesionAccountEmail();\n }\n\n // The buyer added an account with the same email address already in the buyer's wallet\n if ($storedAccountOptionWithSameEmail) {\n // Hide stored account with same email\n paypalCheckoutModelHelper.hideAccount($storedAccountOptionWithSameEmail);\n } else {\n // We need this to undo what was done by \"if\" statement\n paypalCheckoutModelHelper.displayAllStoredAccounts();\n }\n}\n\nmodule.exports = {\n isVaultModeEnabled,\n getAccountType,\n setNonceInputValue,\n hideSavePayPalAccountBlock,\n displaySavePayPalAccountBlock,\n displayPayPalButton,\n hidePayPalButon,\n displayContinueButton,\n hideContinueButon,\n isBuyerAuthenticated,\n selectPayPalCheckoutTab,\n setBraintreePayPalEmailInput,\n isNewPayPalAccountOptionSelected,\n handleStoredAccountsShowing\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * Remove product from Cart\n */\nfunction removeProductFromCart() {\n fetch(helper.getUrlWithCsrfToken(window.braintreeUrls.removeAllProductsFromCart));\n}\n\nmodule.exports = {\n removeProductFromCart\n};\n","'use strict';\n\nconst base = require('base/product/base');\nconst helper = require('../../helper');\n\nconst PRODUCT_DETAIL_SELECTOR = '.product-detail';\n\n/**\n * Add product to the Cart on PVP\n * @param {string} ppBtnSelector - payPal button selector\n * @param {string} flow - payPal button flow (pdp/pvp)\n * @returns {void}\n */\nfunction addProductToCart(ppBtnSelector, flow) {\n /**\n * Gets options\n * @param {Object} productContainer - product container\n * @returns {string} options\n */\n function getOptions(productContainer) {\n return JSON.stringify(Array.from(productContainer.querySelectorAll('.product-option'))\n .map(elOption => {\n const selectedValue = elOption.querySelector('.options-select').value;\n const selectedOption = elOption.querySelector(`.options-select option[value=\"${selectedValue}\"]`);\n\n return {\n optionId: elOption.getAttribute('data-option-id'),\n selectedValueId: selectedOption.getAttribute('data-value-id')\n };\n }));\n }\n\n const bundleItems = document.querySelectorAll('.bundle-item');\n const setItems = document.querySelectorAll('.set-item');\n\n const ppBtnContainer = document.querySelector(ppBtnSelector).closest(`.js-braintree-${flow}-button, .js-braintree-${flow}-button-global`);\n const isGlobalButton = ppBtnContainer.classList.contains(`js-braintree-${flow}-button-global`);\n\n const pid = base.getPidValue(ppBtnContainer);\n const form = new FormData();\n\n let productContainer;\n let data = {};\n\n if (isGlobalButton || !setItems.length) {\n productContainer = document.querySelector(ppBtnSelector).closest(PRODUCT_DETAIL_SELECTOR) || document.querySelector(PRODUCT_DETAIL_SELECTOR);\n } else {\n productContainer = document.querySelector(ppBtnSelector).closest('.set-item');\n }\n\n if (bundleItems.length) {\n const quantity = document.querySelector('.modal-footer, .bundle-footer').querySelector('.quantity-select').value;\n\n data = {\n pid: pid,\n quantity: quantity\n };\n\n const items = Array.from(bundleItems).map(function(item) {\n return {\n pid: item.querySelector('.product-id').innerText,\n quantity: parseInt(item.querySelector('.quantity').getAttribute('data-quantity'), 10)\n };\n });\n\n data.childProducts = JSON.stringify(items);\n } else if (setItems.length && isGlobalButton) {\n const items = Array.from(setItems).map(function(item) {\n return {\n pid: base.getPidValue(item),\n qty: parseInt(base.getQuantitySelected(item), 10),\n options: getOptions(item)\n };\n });\n\n data.pidsObj = JSON.stringify(items);\n } else {\n data = {\n pid: pid,\n quantity: base.getQuantitySelected(ppBtnContainer),\n options: getOptions(productContainer)\n };\n }\n\n Object.keys(data).forEach((key) => {\n form.append(key, data[key]);\n });\n\n return fetch(document.querySelector('.js-add-to-cart-url').value, {\n method: 'POST',\n body: form\n });\n}\n\n/**\n * Get basket data\n * @param {string} url Braintree-GetOrderInfo URL\n * @returns {Object} Object with basket data from DW\n */\nfunction getBasketData(url) {\n return fetch(helper.getUrlWithCsrfToken(url)).then((response) => response.json());\n}\n\n/**\n * @param {string} url Validate address url\n * @param {Object} payload Payload form data\n * @returns {Promise} Promise with response result\n */\nfunction validateAddresses(url, payload) {\n return fetch(helper.getUrlWithCsrfToken(url), {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: { 'Content-Type': 'application/json' }\n }).then((response) => response.json());\n}\n\n/**\n * Submit payment (billing) data to the server\n * @param {string} submitPaymentUrl Submit payment URL\n * @param {FormData} billingFormData Billing Form Data\n * @param {string} redirectUrl Redirect URL after succesfull payment data submit\n * @param {Object} loader Loader\n * @param {Object} alertHandler Alert Handler Model instance\n * @returns {Promise} Promise with response result\n */\nfunction submitPaymentDataToServerPromise(submitPaymentUrl, billingFormData, redirectUrl, loader, alertHandler) {\n return fetch(helper.getUrlWithCsrfToken(submitPaymentUrl), {\n method: 'POST',\n body: billingFormData\n })\n .then(function(data) {\n if (!helper.handleSubmitPaymentErrors(data, alertHandler)) {\n sessionStorage.setItem('pageState', 'cart');\n window.location.href = redirectUrl;\n }\n\n loader.hide();\n })\n .catch(function(error) {\n loader.hide();\n\n if (error && error.redirectUrl) {\n window.location.href = error.redirectUrl;\n }\n });\n}\n\nmodule.exports = {\n addProductToCart,\n getBasketData,\n validateAddresses,\n submitPaymentDataToServerPromise\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\nconst $btSavePaypalAccountContainer = document.getElementById('braintreeSavePaypalAccountContainer');\nconst $paypalContent = document.querySelector('.js-braintree-paypal-content');\nconst $btPayPalBillingButton = document.querySelector('.js-braintree-paypal-billing-button');\n\n/**\n * Hides PayPal Smart Button functionality inside PayPal tab\n */\nfunction hidePaypalSmartButtonFunctionality() {\n $btSavePaypalAccountContainer.style.display = 'none';\n $btPayPalBillingButton.classList.add('d-none');\n $paypalContent.setAttribute('data-paypal-is-hide-continue-button', false);\n}\n\n/**\n * Shows PayPal Smart Button functionality inside PayPal tab\n */\nfunction showPaypalSmartButtonFunctionality() {\n $btPayPalBillingButton.classList.remove('d-none');\n $paypalContent.setAttribute('data-paypal-is-hide-continue-button', true);\n}\n\n/**\n * Handles a behavior inside PayPal tab, when session PayPal account was deleted\n */\nfunction handlePaypalTabBehavior() {\n const $payPalAccountList = document.getElementById('braintreePaypalAccountsList');\n const $defaultOption = helper.getOptionByDataDefault('#braintreePaypalAccountsList');\n const $selectedOption = helper.getSelectedOption($payPalAccountList);\n const isSelectedPaypalAccount = $selectedOption.value !== 'newaccount';\n const paypalButtonConfigs = helper.tryParseJSON($btPayPalBillingButton.getAttribute('data-braintree-config'));\n const isChangePmButton = paypalButtonConfigs.changePMButtonEnabled;\n\n // Case when buyer selected another PM (CC,GP..)\n if ($defaultOption && !isSelectedPaypalAccount) {\n // Shows ChangePM button if buyer has already saved PP account and ChangePM button is enabled\n if (isChangePmButton) {\n $btSavePaypalAccountContainer.style.display = 'block';\n\n showPaypalSmartButtonFunctionality();\n // Shows default PayPal account\n } else {\n $defaultOption.selected = true;\n\n hidePaypalSmartButtonFunctionality();\n }\n // Case when buyer selected PayPal account from paypalAccountList\n } else if (isSelectedPaypalAccount) {\n hidePaypalSmartButtonFunctionality();\n // Case when buyer does not have saved PayPal account\n } else {\n const $btUsedPayPalAccount = document.querySelector('.js-braintree-used-paypal-account');\n\n $btUsedPayPalAccount.classList.remove('used-paypal-account');\n $btUsedPayPalAccount.classList.add('used-paypal-account-hide');\n\n showPaypalSmartButtonFunctionality();\n }\n\n [].forEach.call($payPalAccountList, function(el) {\n if (el.style.display === 'none') {\n el.style.display = 'block';\n }\n });\n}\n\nmodule.exports = {\n handlePaypalTabBehavior,\n hidePaypalSmartButtonFunctionality,\n showPaypalSmartButtonFunctionality\n};\n","'use strict';\n\nconst PayPalBaseModel = require('./payPalBaseModel');\nconst helper = require('../../helper');\nconst payPalAccountModelHelper = require('../helpers/payPalAccountModel');\nconst billingFormHelper = require('../helpers/payPalBillingFormHelperGlobal');\n\nconst $loaderContainer = document.querySelector('.braintree-loader-container');\n\n/**\n * @param {Object} apmaModelInstance apma model instance\n * Save address details to address book from PP side\n * @returns {Promise} apmaModelInstance\n */\nfunction saveAddressDetails(apmaModelInstance) {\n return apmaModelInstance.savePaypalDefaultAddress()\n .then(() => {\n window.location.href = apmaModelInstance.redirectUrl;\n });\n}\n\n/**\n * PayPal APMA model constructor\n * @param {Object} alertHandlerModel alert handler model\n * @param {Promise} btClientInstancePromise BT client instance promise\n * @param {string} payPalButtonSelector PayPal button selector\n * @param {Object} payPalConfigurations Configs from server (taken from data attr)\n * @param {Object} additional - Additional data\n * @param {string} additional.addPayPalAccountUrl Add PayPal account URL\n * @param {Object} additional.addressObject Address object we get from CWPP\n * @param {boolean} additional.isAccountPage Account flow identifier\n * @param {string} additional.redirectUrl Account show URL\n */\nfunction PayPalAPMAModel(\n alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n {\n addPayPalAccountUrl,\n addressObject,\n isAccountPage,\n redirectUrl\n }\n) {\n PayPalBaseModel.call(this,\n alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $loaderContainer);\n\n this.addPayPalAccountUrl = addPayPalAccountUrl + window.braintreeConstants.APMA_QUERY_PARAMETER_TRUE;\n this.addressObject = addressObject;\n this.isAccountPage = isAccountPage;\n this.redirectUrl = redirectUrl;\n}\n\n// ES5 inheritance\nPayPalAPMAModel.prototype = Object.create(PayPalBaseModel.prototype);\n\n/**\n * Makes call on saving a PayPal default address to the storefront customer.\n * @returns {Object} Whether a success or failed JSON response body.\n */\nPayPalAPMAModel.prototype.savePaypalDefaultAddress = function() {\n const addressObject = this.addressObject;\n const isAccountPage = this.isAccountPage;\n\n return fetch(window.braintreeUrls.savePaypalDefaultAddressUrl, {\n method: 'POST',\n contentType: 'application/json',\n body: JSON.stringify({ addressObject, isAccountPage })\n });\n};\n\nPayPalAPMAModel.prototype.initAddButtonEvent = function() {\n const $apmaButtonPayPal = document.querySelector(this.payPalButtonSelector);\n const addingStage = $apmaButtonPayPal.getAttribute('data-adding-stage');\n\n if (addingStage === window.braintreeConstants.APMA_STAGE_ADDRESS) {\n $apmaButtonPayPal.classList.add('hide-block');\n\n document.getElementById('js-apma-button-yes').addEventListener('click', () => {\n saveAddressDetails(this);\n });\n }\n};\n\n/**\n * For whole description open \"payPalBaseModel\".\n * We don't generate and send fraud data from Account. That's why \"generateFraudData\" isn't used\n * @param {Object} payload Buyer data from PayPal (like address, nonce, etc.)\n */\nPayPalAPMAModel.prototype.onApprovePaymentCallback = function(payload) {\n // Calling parrent method to proceed with PayPal payload validation\n PayPalBaseModel.prototype.onApprovePaymentCallback.call(this, payload);\n\n // Error will be handled on BaseModel level\n if (this.error) {\n return;\n }\n\n this.loader.show();\n\n const apmaModelInstance = this;\n const btDetails = payload.details;\n const nonce = payload.nonce;\n const email = payload.details.email;\n const $payPalButton = document.querySelector(this.payPalButtonSelector);\n const paypalAccountFormFields = $payPalButton.getAttribute('data-paypal-account-form-fields');\n // Append Shippig/Billing data to FormData\n const payPalBraintreeAddressData = billingFormHelper.createBillingAddressData(btDetails);\n const paypalAccountFormData = helper.createPaymentFormData(paypalAccountFormFields, {\n nonce: nonce,\n email: email,\n addresses: JSON.stringify(payPalBraintreeAddressData),\n shippingAddress: JSON.stringify(payload.details.shippingAddress)\n });\n\n // Apped CSRF token\n const $csrfToken = document.getElementById('csrf_token');\n\n billingFormHelper.appendCsrfTokenToFormData(paypalAccountFormData, $csrfToken);\n // Save payment instrument from PP side\n payPalAccountModelHelper.savePayPalAccount(this.addPayPalAccountUrl, paypalAccountFormData)\n .then(() => {\n saveAddressDetails(apmaModelInstance);\n })\n .catch(function(errorPayload) {\n const error = errorPayload.responseJSON.error;\n\n apmaModelInstance.alertHandlerModel.showError(error);\n apmaModelInstance.loader.hide();\n });\n};\n\n/**\n * Triggers when buyer clicked on the PayPal button and PayPal modal started loading\n * @returns {Object} Object which will be passed directly into Braintree PayPal SDK as an order data\n */\nPayPalAPMAModel.prototype.onOrderCreateCallback = async function() {\n const payPalButtonConfigs = this.payPalConfigurations;\n const orderCreateParams = payPalButtonConfigs.options;\n\n // Hide custom error on buyer PayPal button click.\n this.alertHandlerModel.hideAlerts();\n\n return {\n flow: orderCreateParams.flow,\n enableShippingAddress: orderCreateParams.enableShippingAddress,\n displayName: orderCreateParams.displayName,\n billingAgreementDescription: orderCreateParams.billingAgreementDescription\n };\n};\n\nmodule.exports = PayPalAPMAModel;\n","'use strict';\n\nconst PayPalBaseModel = require('./payPalBaseModel');\nconst helper = require('../../helper');\n\nfunction PayPalAccountModel(alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $csrfToken,\n addPayPalAccountUrl,\n $loaderContainer) {\n PayPalBaseModel.call(this,\n alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $loaderContainer);\n\n this.$csrfToken = $csrfToken;\n this.addPayPalAccountUrl = addPayPalAccountUrl;\n}\n\n// ES5 inheritance\nPayPalAccountModel.prototype = Object.create(PayPalBaseModel.prototype);\n\n/**\n * For whole description open \"payPalBaseModel\".\n * We don't generate and send fraud data from Account. That's why \"generateFraudData\" isn't used\n * @param {Object} payload Buyer data from PayPal (like address, nonce, etc.)\n */\nPayPalAccountModel.prototype.onApprovePaymentCallback = function(payload) {\n // Calling parrent method to proceed with PayPal payload validation\n PayPalBaseModel.prototype.onApprovePaymentCallback.call(this, payload);\n\n // Error will be handled on BaseModel level\n if (this.error) {\n return;\n }\n\n this.loader.show();\n\n const payPalAccountModelHelper = require('../helpers/payPalAccountModel');\n const billingFormHelper = require('../helpers/payPalBillingFormHelperGlobal');\n\n const $payPalButton = document.querySelector(this.payPalButtonSelector);\n const paypalAccountFormFields = $payPalButton.getAttribute('data-paypal-account-form-fields');\n\n const payPalAccountModelInstance = this;\n const btDetails = payload.details;\n const payPalBraintreeAddressData = billingFormHelper.createBillingAddressData(btDetails);\n const paypalAccountFormData = helper.createPaymentFormData(paypalAccountFormFields, {\n nonce: payload.nonce,\n email: payload.details.email,\n addresses: JSON.stringify(payPalBraintreeAddressData),\n shippingAddress: JSON.stringify(payload.details.shippingAddress)\n });\n // Apped CSRF token\n\n billingFormHelper.appendCsrfTokenToFormData(paypalAccountFormData, this.$csrfToken);\n\n payPalAccountModelHelper.savePayPalAccount(this.addPayPalAccountUrl, paypalAccountFormData)\n .then((response) => response.json())\n .then((data) => {\n if (data.error) {\n const error = data.error;\n\n payPalAccountModelInstance.alertHandlerModel.showError(error);\n payPalAccountModelInstance.loader.hide();\n } else {\n const renderAccountsUrl = data.renderAccountsUrl;\n\n payPalAccountModelHelper.hidePaypalAccountBtn();\n payPalAccountModelHelper.renderPayPalAccounts(renderAccountsUrl)\n .then((accountListTemplate) => accountListTemplate.text())\n .then((accountListTemplateHTML) => {\n payPalAccountModelHelper.addPayPalAccountsToTheTemplate(accountListTemplateHTML);\n payPalAccountModelHelper.throwCartUpdate();\n payPalAccountModelInstance.initRemovePayPalAccountEvent();\n payPalAccountModelInstance.initMakeDefaultPayPalAccountEvent();\n\n payPalAccountModelInstance.loader.hide();\n });\n }\n });\n};\n\n/**\n * Triggers when buyer clicked on the PayPal button and PayPal modal started loading\n * @returns {Object} Object which will be passed directly into Braintree PayPal SDK as an order data\n */\nPayPalAccountModel.prototype.onOrderCreateCallback = async function() {\n const orderCreateParams = this.payPalConfigurations.options;\n\n // Hide custom error on buyer PayPal button click.\n this.alertHandlerModel.hideAlerts();\n\n return {\n flow: orderCreateParams.flow,\n enableShippingAddress: orderCreateParams.enableShippingAddress,\n displayName: orderCreateParams.displayName,\n billingAgreementDescription: orderCreateParams.billingAgreementDescription\n };\n};\n\n/**\n * Init Remove PayPal Account button listner\n */\nPayPalAccountModel.prototype.initRemovePayPalAccountEvent = function() {\n const $allRemovePayPalAccountButtons = document.querySelectorAll('.js-paypal-accounts .js-remove-bt-payment');\n\n $allRemovePayPalAccountButtons.forEach((btn) => btn.addEventListener('click', helper.removeBtPayment));\n};\n\n/**\n * Init Make Default PayPal account button\n */\nPayPalAccountModel.prototype.initMakeDefaultPayPalAccountEvent = function() {\n const loaderInstance = require('../../loaderHelper');\n const $makeDefaultBtns = document.querySelectorAll('.js-paypal-accounts .js-braintree-make-default-card');\n\n $makeDefaultBtns.forEach((btn) => btn.addEventListener('click', function() {\n const makeDefaultUrl = window.braintreeUrls.makePaymentMethodDefaultUrl;\n const paymentMehtodId = this.dataset.id;\n const paymentProcessorId = window.braintreePreferences.paymentMethods.BRAINTREE_PAYPAL.paymentMethodId;\n const loaderContainer = document.getElementById('paypalAccountBtLoader');\n const loader = loaderInstance(loaderContainer);\n\n loader.show();\n\n helper.setDefaultProperty({\n url: makeDefaultUrl,\n id: paymentMehtodId,\n paymentMethodID: paymentProcessorId,\n loader\n });\n }));\n};\n\nmodule.exports = PayPalAccountModel;\n","'use strict';\n\n/* global Promise $ */\n\nconst braintreePayPalSDK = require('../braintreesdk/braintreePayPalSDK');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst requestsHelper = require('../helpers/payPalRequestsHelperGlobal');\n\nconst loaderInstance = require('../../loaderHelper');\n\n/**\n * PayPal base model constructor\n * @param {Object} alertHandlerModel alert handler model\n * @param {Promise} btClientInstancePromise BT client instance promise\n * @param {string} payPalButtonSelector PayPal button selector\n * @param {Object} payPalConfigurations configs from server (taken from data attr)\n * @param {Object} $loaderContainer loader js container\n */\nfunction PayPalBaseModel(alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $loaderContainer) {\n this.isVaultMode = payPalConfigurations.options.flow !== 'checkout';\n this.requestBillingAgreement = Boolean(payPalConfigurations.options.requestBillingAgreement) && this.isVaultMode;\n this.btClientInstancePromise = btClientInstancePromise;\n this.payPalButtonSelector = payPalButtonSelector;\n this.payPalConfigurations = payPalConfigurations;\n // Fraud data related\n this.isFraudToolsEnabled = payPalConfigurations.isFraudToolsEnabled;\n // Setup init fraudData value for default case (default case: fraud data disabled)\n this.fraudDataPromise = Promise.resolve({ fraudDataCollectionDisabled: true });\n\n // URLs\n this.basketDataUrl = payPalConfigurations.getOrderInfoUrl;\n this.submitPaymentUrl = payPalConfigurations.paypalHandle;\n this.placeOrderStageUrl = payPalConfigurations.redirectUrl;\n this.validateAddressesUrl = payPalConfigurations.validateAddressesUrl;\n this.updateShippingMethodsListUrl = payPalConfigurations.updateShippingMethodsListUrl;\n\n this.braintreePayPalSDK = braintreePayPalSDK.payPalButtonRendering;\n\n this.alertHandlerModel = alertHandlerModel;\n this.loader = loaderInstance($loaderContainer);\n\n this.basketData = null;\n this.error = null;\n}\n\n/* -------------------- Payment Callbacks -------------------- */\n\n/**\n * Method triggers when buyer approved payment in PayPal modal and they passed succesfully\n * THIS METHOD NEEDS TO BE OVERRIDDEN in children class\n * @param {Object} payload buyer's data from PayPal\n * @param {boolean} isExpressCheckout true or false/undefined depending on whether it's EC or not\n * @returns {void} either updates paypalBaseModel error/placeOrderStageUrl properties or payload billing address\n */\nPayPalBaseModel.prototype.onApprovePaymentCallback = function(payload, isExpressCheckout) {\n // basic payload validation\n const ppDetails = payload.details;\n const ppShippingAddress = ppDetails.shippingAddress;\n const city = ppShippingAddress.city;\n const state = ppShippingAddress.state;\n const country = ppShippingAddress.countryCode;\n const postalCode = ppShippingAddress.postalCode;\n\n if (!ppDetails.billingAddress) {\n try {\n ppDetails.billingAddress = {\n city: city,\n countryCode: country,\n line1: ppShippingAddress.line1,\n line2: ppShippingAddress.line2 || '',\n postalCode: postalCode,\n state: state\n };\n } catch (error) {\n this.alertHandlerModel.showBillingAddressIsNotSupportedError();\n this.error = error;\n }\n }\n\n if (isExpressCheckout) {\n const helper = require('../../helper');\n\n const paymentMethodId = window.braintreeConstants.PAYMENT_METHOD_ID_PAYPAL;\n const addressQueryString = `city=${city.replaceAll(' ', '%20')}&stateCode=${state}&countryCode=${country}&postalCode=${postalCode}`;\n const url = `${window.braintreeUrls.getApplicableShippingOptions}?paymentMethodId=${paymentMethodId}&${addressQueryString}`;\n\n helper.getApplicableShippingOptions(url)\n .then((shippingOptions) => {\n if (!shippingOptions.some((shippingOption) => shippingOption.selected === true)) {\n this.placeOrderStageUrl = `${window.braintreeUrls.chooseShippingUrl}&errorId=error.shippingoption.invalid`;\n }\n });\n }\n};\n\n/**\n * Method triggers when buyer canceled payment in PayPal modal\n * THIS METHOD CAN BE OVERRIDDEN in children class\n */\nPayPalBaseModel.prototype.onCancelPaymentCallback = function() {};\n\n/**\n * Method triggers when buyer clicked on PayPal button and PayPal modal is opening\n * THIS METHOD CAN BE OVERRIDDEN in children class\n * @returns {Object} Amount and Shipping address from basket\n */\nPayPalBaseModel.prototype.onOrderCreateCallback = async function() {\n // Hide custom error on buyer PayPal button click.\n this.alertHandlerModel.hideAlerts();\n\n // Get basket again in case if \"onPayPalButtonClickCallback\" wasn't triggered (Change Payment Method Button case)\n const basketData = this.basketData || await requestsHelper.getBasketData(this.basketDataUrl);\n const shippingAddress = basketData.shippingAddress || this.savedPaypalAddress;\n\n const payPalConfigurations = this.payPalConfigurations;\n const mainPayPalConfigurations = payPalConfigurations.options;\n const requestBillingAgreement = mainPayPalConfigurations.requestBillingAgreement;\n\n const paymentObjectData = {\n amount: basketData.amount,\n currency: mainPayPalConfigurations.currency,\n flow: mainPayPalConfigurations.flow,\n intent: mainPayPalConfigurations.intent,\n locale: mainPayPalConfigurations.locale,\n enableShippingAddress: mainPayPalConfigurations.enableShippingAddress,\n billingAgreementDescription: mainPayPalConfigurations.billingAgreementDescription,\n displayName: mainPayPalConfigurations.displayName\n };\n\n // \"requestBillingAgreement\" will be enabled or when Checkout with Vault is enabled\n // Vault mode should be also enabled\n if (requestBillingAgreement) {\n paymentObjectData.requestBillingAgreement = requestBillingAgreement;\n\n if (mainPayPalConfigurations.billingAgreementDetails) {\n paymentObjectData.billingAgreementDetails = {\n description: mainPayPalConfigurations.billingAgreementDetails.description\n };\n }\n }\n\n // Case when process from PDP & Cart & Mini Cart & Checkout and basket isn't empty or we on Account page\n if (shippingAddress) {\n // shippingAddressEditable should be always false for ChangePaymentMehtod button, and true for smart PayPal button\n paymentObjectData.shippingAddressEditable = !payPalConfigurations.changePMButtonEnabled;\n paymentObjectData.shippingAddressOverride = {\n line1: shippingAddress.line1,\n line2: shippingAddress.line2,\n city: shippingAddress.city,\n state: shippingAddress.state,\n postalCode: shippingAddress.postalCode,\n countryCode: shippingAddress.countryCode,\n phone: shippingAddress.phone,\n recipientName: shippingAddress.recipientName\n };\n }\n\n return paymentObjectData;\n};\n\n/**\n * Callback triggers when buyer clicked on PayPal button\n * @param {Object} _ first not used param\n * @param {Object} actions BT actions object\n */\n// eslint-disable-next-line no-unused-vars\nPayPalBaseModel.prototype.onPayPalButtonClickCallback = async function(fundingSourceResponse) {\n // Hide custom error on buyer PayPal button click.\n this.alertHandlerModel.hideAlerts();\n this.basketData = this.basketDataUrl ? await requestsHelper.getBasketData(this.basketDataUrl) : null;\n\n if (document.getElementById('braintreePaypalFundingSource')) {\n document.getElementById('braintreePaypalFundingSource').value = fundingSourceResponse.fundingSource;\n }\n};\n\n/**\n * Method triggers when error happens during PayPal modal payment processing\n * THIS METHOD CAN BE OVERRIDDEN in children class\n * @param {Object} error error object with \"message\" and \"code\" inside\n */\nPayPalBaseModel.prototype.onErrorPaymentCallback = function(error) {\n this.alertHandlerModel.showBraintreeError(error);\n};\n\n/**\n * This method is executed when creating paypalCheckoutInstance. Should contain configs for \"braintree.paypalCheckout.create\" method.\n * Should only be used inside \"braintreePayPalSDK\" file\n * @param {Object} btClientInstance Braintree client instance\n * @returns {Object} object with additional configurations\n */\nPayPalBaseModel.prototype.payPalCheckoutInstanceConfigs = function(btClientInstance) {\n return {\n client: btClientInstance\n };\n};\n\n/**\n * This method is executed when loading PayPal SDK\n * @returns {Object} object with Checkout mode PayPal SDK configs\n */\nPayPalBaseModel.prototype.payPalCheckoutSdkConfigs = function() {\n const isChangePaymentButtonActive = this.payPalConfigurations.changePMButtonEnabled;\n const intent = this.payPalConfigurations.options.intent;\n const currency = this.payPalConfigurations.options.currency;\n const enableFundingList = this.payPalConfigurations.options.enableFundingList;\n let disableFundingList = this.payPalConfigurations.options.disableFundingList;\n const payPalSDKConfigObject = {\n intent: intent,\n currency: currency,\n components: 'buttons,messages',\n commit: false\n };\n\n // Functionality for disabling Debit/Credit Card Button when Change Payment Method Button is enabled\n if (isChangePaymentButtonActive && disableFundingList !== undefined) {\n disableFundingList += ',card';\n } else if (isChangePaymentButtonActive && disableFundingList === undefined) {\n disableFundingList = 'card';\n }\n\n if (enableFundingList !== undefined) {\n payPalSDKConfigObject['enable-funding'] = enableFundingList;\n }\n\n if (disableFundingList !== undefined) {\n payPalSDKConfigObject['disable-funding'] = disableFundingList;\n }\n\n return payPalSDKConfigObject;\n};\n\n/**\n * This method is executed when loading PayPal SDK\n * @returns {Object} object with Vault mode PayPal SDK configs\n */\nPayPalBaseModel.prototype.payPalVaultSdkConfigs = function() {\n const isChangePaymentButtonActive = this.payPalConfigurations.changePMButtonEnabled;\n const enableFundingList = this.payPalConfigurations.options.enableFundingList;\n let disableFundingList = this.payPalConfigurations.options.disableFundingList;\n\n // Functionality for disabling Debit/Credit Card Button when Change Payment Method Button is enabled\n if (isChangePaymentButtonActive && disableFundingList !== undefined) {\n disableFundingList += ',card';\n } else if (isChangePaymentButtonActive && disableFundingList === undefined) {\n disableFundingList = 'card';\n }\n\n const payPalVaultSdkConfigsObject = {\n vault: true,\n components: 'buttons,messages'\n };\n\n if (enableFundingList !== undefined) {\n payPalVaultSdkConfigsObject['enable-funding'] = enableFundingList;\n }\n\n if (disableFundingList !== undefined) {\n payPalVaultSdkConfigsObject['disable-funding'] = disableFundingList;\n }\n\n return payPalVaultSdkConfigsObject;\n};\n\n/* -------------------- Payment logic -------------------- */\n\n/**\n * Function which should be called when we need to init PayPal payment button\n * @returns {Promise} PayPal button\n */\nPayPalBaseModel.prototype.initPayment = function() {\n const CurrentPayPalPaymenProcessorModelInstance = this;\n\n return this.braintreePayPalSDK(this.btClientInstancePromise,\n this.isVaultMode,\n this.payPalConfigurations,\n [CurrentPayPalPaymenProcessorModelInstance]);\n};\n\n/**\n * Generate fraud data if enabled\n */\nPayPalBaseModel.prototype.generateFraudData = function() {\n if (this.isFraudToolsEnabled) {\n this.fraudDataPromise = braintreeGeneral.collectFraudData(this.btClientInstancePromise);\n }\n // Don't need \"else\" case, since default value was inited in constructor\n};\n\nmodule.exports = PayPalBaseModel;\n","'use strict';\n\nconst PayPalExpressModel = require('./payPalExpressModel');\n\n/**\n * PayPal cart model constructor\n * @param {Object} alertHandlerModel alert handler model\n * @param {Promise} btClientInstancePromise BT client instance promise\n * @param {string} payPalButtonSelector PayPal button selector\n * @param {Object} payPalConfigurations configs from server (taken from data attr)\n * @param {Object} $csrfToken CSRF token js container\n * @param {Object} $loaderContainer loader js container\n */\nfunction PayPalCartModel(alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $csrfToken,\n $loaderContainer) {\n // Init PayPalExpressModel constructor\n PayPalExpressModel.call(this,\n alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $csrfToken,\n $loaderContainer);\n\n this.changePMButtonEnabled = payPalConfigurations.changePMButtonEnabled;\n}\n\n// ES5 inheritance\nPayPalCartModel.prototype = Object.create(PayPalExpressModel.prototype);\n\n// Show error in case if current basket has zero total price\nPayPalCartModel.prototype.onPayPalButtonClickCallback = async function(_, actions) {\n await PayPalExpressModel.prototype.onPayPalButtonClickCallback.call(this, _, actions);\n let action;\n\n if (this.basketData.amount === 0) {\n this.alertHandlerModel.showZeroAmountError();\n\n action = actions.reject();\n }\n\n return action;\n};\n\nmodule.exports = PayPalCartModel;\n","'use strict';\n\nconst PayPalBaseModel = require('./payPalBaseModel');\nconst helper = require('../../helper');\nconst payPalCheckoutModelHelper = require('../helpers/payPalCheckoutModelHelper');\nconst billingFormHelper = require('../helpers/payPalBillingFormHelperGlobal');\nconst paypalListHelper = require('../helpers/payPalListHelper');\n\n/**\n * PayPal checkout model constructor\n * @param {Object} alertHandlerModel alert handler model\n * @param {Promise} btClientInstancePromise BT client instance promise\n * @param {string} payPalButtonSelector PayPal button selector\n * @param {Object} payPalConfigurations configs from server (taken from data attr)\n * @param {Object} $continueButton continue button js container\n * @param {Object} $loaderContainer loader js container\n */\nfunction PayPalCheckoutPaymentModel(alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $continueButton,\n $loaderContainer) {\n PayPalBaseModel.call(this,\n alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $loaderContainer);\n\n this.$continueButton = $continueButton;\n this.changePMButtonEnabled = payPalConfigurations.changePMButtonEnabled;\n}\n\n// ES5 inheritance\nPayPalCheckoutPaymentModel.prototype = Object.create(PayPalBaseModel.prototype);\n\n// For more details see same method from \"PayPalBaseModel\"\n// Add additional configs which are needed for \"Change Payment Method Button\" feature\nPayPalCheckoutPaymentModel.prototype.payPalCheckoutInstanceConfigs = function(btClientInstance) {\n const checkoutInstanceConfigs = PayPalBaseModel.prototype.payPalCheckoutInstanceConfigs.call(this, btClientInstance);\n\n if (this.changePMButtonEnabled) {\n checkoutInstanceConfigs.autoSetDataUserIdToken = true;\n }\n\n return checkoutInstanceConfigs;\n};\n\n// For more details see same method from \"PayPalBaseModel\"\n// Show error in case if current basket has zero total price\nPayPalCheckoutPaymentModel.prototype.onPayPalButtonClickCallback = async function(_, actions) {\n await PayPalBaseModel.prototype.onPayPalButtonClickCallback.call(this, _, actions);\n let action;\n\n if (this.basketData.amount === 0) {\n this.alertHandlerModel.showZeroAmountError();\n\n action = actions.reject();\n }\n\n return action;\n};\n\n// For more details see same method from \"PayPalBaseModel\"\n// Mark new account as the session one, fill billing form with data from paypal\nPayPalCheckoutPaymentModel.prototype.onApprovePaymentCallback = function(payload) {\n // Calling parrent method to proceed with PayPal payload validation\n PayPalBaseModel.prototype.onApprovePaymentCallback.call(this, payload);\n\n // Error will be handled on BaseModel level\n if (this.error) {\n return;\n }\n\n this.loader.show();\n const PayPalCheckoutPaymentModelInstance = this;\n const isBuyerAuthenificated = PayPalCheckoutPaymentModelInstance.payPalConfigurations.isBuyerAuthenticated;\n const btDetails = payload.details;\n const nonce = payload.nonce;\n const email = payload.details.email;\n const btBillingAddress = btDetails ? btDetails.billingAddress : null;\n const isSessionPaymentsEnabled = window.braintreePreferences.isSessionPaymentsEnabled;\n\n // Remove all other Payments session payments\n helper.removeActiveSessionPayment();\n\n // Fill just PayPal related form fields\n billingFormHelper.fillPayPalPaymentFields(btDetails, isSessionPaymentsEnabled);\n\n // Copy billing address from PayPal to DW billing address form fields\n if (btBillingAddress && btDetails) {\n billingFormHelper.copyPayPalBillingAddressToDw(btBillingAddress, btDetails);\n }\n\n if (isSessionPaymentsEnabled) {\n // Hide PayPal buttons block\n payPalCheckoutModelHelper.hidePayPalButtons();\n\n // Make current PayPal account as a session account\n billingFormHelper.storePaymentAsSessionPayment(nonce, email);\n\n billingFormHelper.setSessionAccountOptionDefault();\n\n // Add billing address on session payment option level\n payPalCheckoutModelHelper.addBillingAddressOnPaymentOptionLevel(btDetails);\n }\n\n // Check whether buyer has proceeded with the same email which is already stored\n // if \"yes\" we hide stored account with the same email in dropdown\n // if \"no\" we show all existent PP accounts in dropdown (stored + new session account)\n paypalListHelper.handleStoredAccountsShowing(isBuyerAuthenificated, isSessionPaymentsEnabled);\n\n const $formNonce = document.getElementById('braintreePayPalNonce');\n\n if ($formNonce && $formNonce.value === '' && nonce) {\n $formNonce.value = nonce;\n }\n\n // Gennerate and add fraud data in to the billing form\n PayPalCheckoutPaymentModelInstance.fraudDataPromise\n .then(function(data) {\n // We have \"fraudDataCollectionDisabled\" flag only in case if we have fraud data collection disabled\n if (!data.fraudDataCollectionDisabled) {\n billingFormHelper.fillFraudDataInput(data);\n }\n })\n .then(function() {\n // Submit payment to server\n PayPalCheckoutPaymentModelInstance.$continueButton.click();\n\n PayPalCheckoutPaymentModelInstance.loader.hide();\n });\n};\n\nmodule.exports = PayPalCheckoutPaymentModel;\n","'use strict';\n\nconst PayPalBaseModel = require('./payPalBaseModel');\nconst payPalExpressModelHelper = require('../helpers/payPalExpressModelHelper');\nconst billingFormHelper = require('../helpers/payPalBillingFormHelperGlobal');\nconst requestHelper = require('../helpers/payPalRequestsHelperGlobal');\nconst productHelper = require('../helpers/payPalProductPageModelHelper');\nconst helper = require('../../helper');\n\n/**\n * PayPal express model constructor\n * @param {Object} alertHandlerModel alert handler model\n * @param {Promise} btClientInstancePromise BT client instance promise\n * @param {string} payPalButtonSelector PayPal button selector\n * @param {Object} payPalConfigurations configs from server (taken from data attr)\n * @param {Object} $csrfToken CSRF token js container\n * @param {Object} $loaderContainer loader js container\n */\nfunction PayPalExpressModel(alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $csrfToken,\n $loaderContainer) {\n // Init PayPalBaseModel constructor\n PayPalBaseModel.call(this,\n alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $loaderContainer);\n\n this.$csrfToken = $csrfToken;\n this.changePMButtonEnabled = payPalConfigurations.changePMButtonEnabled;\n}\n\n// ES5 inheritance\nPayPalExpressModel.prototype = Object.create(PayPalBaseModel.prototype);\n\n// For more details see same method from \"PayPalBaseModel\"\n// Add additional configs which are needed for \"Change payment method button\" feature\nPayPalExpressModel.prototype.payPalCheckoutInstanceConfigs = function(btClientInstance) {\n const checkoutInstanceConfigs = PayPalBaseModel.prototype.payPalCheckoutInstanceConfigs.call(this, btClientInstance);\n\n if (this.changePMButtonEnabled) {\n checkoutInstanceConfigs.autoSetDataUserIdToken = true;\n }\n\n return checkoutInstanceConfigs;\n};\n\n/**\n * Method triggers when buyer clicked on PayPal button and PayPal modal is opening\n * @returns {Object} Amount and Shipping address from basket\n */\nPayPalExpressModel.prototype.onOrderCreateCallback = async function() {\n const basketDataUrl = this.basketDataUrl;\n\n this.basketData = await requestHelper.getBasketData(basketDataUrl);\n\n const isUseSavedPaypalAddress = this.changePMButtonEnabled && !this.basketData.shippingAddress;\n\n if (isUseSavedPaypalAddress) {\n this.savedPaypalAddress = payPalExpressModelHelper.getSavedPaypalAddress(this.payPalButtonSelector);\n }\n\n return PayPalBaseModel.prototype.onOrderCreateCallback.call(this);\n};\n\n// For more details see same method from \"PayPalBaseModel\"\n// Create and submit billing data to the server. Redirect on order reivew checkout step\nPayPalExpressModel.prototype.onApprovePaymentCallback = function(payload) {\n // Calling parrent method to proceed with PayPal payload validation\n PayPalBaseModel.prototype.onApprovePaymentCallback.call(this, payload, true);\n\n // Error will be handled on BaseModel level\n if (this.error) {\n return;\n }\n\n this.loader.show();\n\n const PayPalExpressInstance = this;\n const payloadDetails = payload.details;\n const $payPalButtonWrapper = document.querySelector('.js-braintree-cart-paypal-buttons-wrap');\n const $braintreePayPalFundingSource = document.getElementById('braintreePaypalFundingSource');\n const braintreePayPalFundingSource = $braintreePayPalFundingSource.value;\n\n const paypalCheckoutFormFields = helper.tryParseJSON($payPalButtonWrapper.getAttribute('data-paypal-checkout-form-fields'));\n const billingAddressData = billingFormHelper.createBillingAddressData(payloadDetails);\n\n // Create form data only with billing address\n const billingFormData = billingFormHelper.createBillingAddressFormData(paypalCheckoutFormFields, billingAddressData);\n\n billingFormHelper.appendCsrfTokenToFormData(billingFormData, PayPalExpressInstance.$csrfToken);\n billingFormHelper.appendBraintreePaypalFundingSourceToFormData(billingFormData, braintreePayPalFundingSource);\n\n // REGEX for js-braintree-(pdp|pvp)-button, js-braintree-(pdp|pvp)-button-global\n const BRAINTREE_BUTTON_REGEX = /(^|\\s)js-braintree-p[dv]p-button(-global)?(\\s|$)/;\n\n // It will generate FFraud data only if it Fraud Data collection was enabled\n PayPalExpressInstance.fraudDataPromise\n .then(function(data) {\n if (!data.fraudDataCollectionDisabled) {\n billingFormHelper.appendFraudDataToFormData(billingFormData, data.deviceData);\n }\n })\n .then(function() {\n return requestHelper.validateAddresses(PayPalExpressInstance.validateAddressesUrl,\n payloadDetails);\n })\n .then(function(validationResult) {\n if (validationResult.error) {\n const parentWrapper = $payPalButtonWrapper.parentElement.parentElement;\n\n if (BRAINTREE_BUTTON_REGEX.test(parentWrapper.className)) {\n productHelper.removeProductFromCart();\n }\n\n throw new Error(validationResult.message);\n }\n\n let shippingAddressData;\n\n // If shipping address was presented in PayPal payload, create a shipping address object,\n // stringify it and store in FormData as an input\n if (payloadDetails.shippingAddress) {\n shippingAddressData = payPalExpressModelHelper.createShippingAddressData(payloadDetails);\n\n payPalExpressModelHelper.appendShippingDataAsStringToFormData(billingFormData, shippingAddressData);\n }\n\n // Create a shipping address object, stringify it and store in FormData as an input\n billingFormHelper.appendBillingAddressAsStringToFormData(billingFormData, billingAddressData);\n\n billingFormHelper.appendEmailAsStringToFormData(billingFormData, payloadDetails.email);\n\n billingFormHelper.appendBtPaymentFieldsToFormData(billingFormData, payload);\n })\n .then(function() {\n // Submit customer form with email (CheckoutServices-SubmitCustomer)\n // as we skip step \"login via guest/registered user\" while express checkout\n // email is set only in case of guest checkout and if email is not already set\n payPalExpressModelHelper.submitCustomerForm(payloadDetails.email);\n })\n .then(function() {\n requestHelper.submitPaymentDataToServerPromise(PayPalExpressInstance.submitPaymentUrl,\n billingFormData,\n PayPalExpressInstance.placeOrderStageUrl,\n PayPalExpressInstance.loader,\n PayPalExpressInstance.alertHandlerModel);\n\n PayPalExpressInstance.loader.hide();\n })\n .catch(function(error) {\n PayPalExpressInstance.alertHandlerModel.showError(error);\n\n PayPalExpressInstance.loader.hide();\n });\n};\n\nmodule.exports = PayPalExpressModel;\n","'use strict';\n\nconst PayPalBaseModel = require('./payPalBaseModel');\nconst PayPalExpressModel = require('./payPalExpressModel');\nconst PayPalProductModelHelper = require('../helpers/payPalProductPageModelHelper');\nconst payPalExpressModelHelper = require('../helpers/payPalExpressModelHelper');\nconst requestsHelper = require('../helpers/payPalRequestsHelperGlobal');\n\n/**\n * PayPal product model constructor\n * @param {Object} alertHandlerModel alert handler model\n * @param {Promise} btClientInstancePromise BT client instance promise\n * @param {string} payPalButtonSelector PayPal button selector\n * @param {Object} payPalConfigurations configs from server (taken from data attr)\n * @param {Object} $csrfToken CSRF token js container\n * @param {Object} $loaderContainer loader js container\n */\nfunction PayPalProductModel(alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $csrfToken,\n $loaderContainer) {\n // Init PayPalExpressModel constructor\n PayPalExpressModel.call(this,\n alertHandlerModel,\n btClientInstancePromise,\n payPalButtonSelector,\n payPalConfigurations,\n $csrfToken,\n $loaderContainer);\n\n this.changePMButtonEnabled = payPalConfigurations.changePMButtonEnabled;\n}\n\n// ES5 inheritance\nPayPalProductModel.prototype = Object.create(PayPalExpressModel.prototype);\n\n// Dummy function to override default behavior and do not execute \"GetOrderInfo\" call.\n// Instead, we will get basket data inside \"onOrderCreateCallback\"\nPayPalProductModel.prototype.onPayPalButtonClickCallback = function(e) {\n PayPalBaseModel.prototype.onPayPalButtonClickCallback.call(this, e);\n};\n\n// Add product to the Cart\nPayPalProductModel.prototype.onOrderCreateCallback = async function() {\n const regex = /pdp|pvp/g;\n const flow = this.payPalButtonSelector.match(regex).join();\n\n await requestsHelper.addProductToCart(this.payPalButtonSelector, flow);\n\n this.basketData = await requestsHelper.getBasketData(this.basketDataUrl);\n\n const isUseSavedPaypalAddress = this.changePMButtonEnabled && !this.basketData.shippingAddress;\n\n if (isUseSavedPaypalAddress) {\n this.savedPaypalAddress = payPalExpressModelHelper.getSavedPaypalAddress(this.payPalButtonSelector);\n }\n\n return PayPalBaseModel.prototype.onOrderCreateCallback.call(this);\n};\n\n// On error remove added product from Cart\nPayPalProductModel.prototype.onErrorPaymentCallback = function(error) {\n PayPalExpressModel.prototype.onErrorPaymentCallback.call(this, error);\n\n PayPalProductModelHelper.removeProductFromCart();\n};\n\n// On cancel remove added product from Cart\nPayPalProductModel.prototype.onCancelPaymentCallback = function() {\n PayPalProductModelHelper.removeProductFromCart();\n};\n\nmodule.exports = PayPalProductModel;\n","'use strict';\n\nconst helper = require('../../helper');\nconst PayPalScriptLoading = class {\n constructor() {\n this.clientToken = this.getClientToken();\n this.configurations = this.getConfigurations();\n }\n\n getValueByAttributeName(attributeName) {\n const $element = document.querySelector(`[${attributeName}]`);\n\n return $element ? $element.getAttribute(attributeName) : null;\n }\n\n getClientToken() {\n return this.getValueByAttributeName('data-bt-client-token');\n }\n\n getConfigurations() {\n const attributeName = 'data-braintree-config';\n const $element = document.querySelector(`[${attributeName}*=\"paypalConfig\"]`);\n\n return $element ? helper.tryParseJSON($element.getAttribute(attributeName)) : null;\n }\n\n createClientInstance() {\n return braintree.client.create({\n authorization: this.clientToken\n });\n }\n\n createPayPalCheckoutInstance() {\n return this.createClientInstance().then((clientInstance) => {\n return braintree.paypalCheckout.create({\n client: clientInstance\n });\n });\n }\n\n getPayPalSdkUrlCongifuration() {\n const config = { components: 'buttons,messages' };\n\n const {\n options: configOptions,\n changePMButtonEnabled: isChangePaymentButtonActive\n } = this.configurations;\n\n const isVaultMode = configOptions.flow !== 'checkout';\n const enableFundingList = configOptions.enableFundingList;\n let disableFundingList = configOptions.disableFundingList;\n\n if (isVaultMode) {\n config.vault = true;\n } else {\n config.commit = false;\n config.intent = configOptions.intent;\n config.currency = configOptions.currency;\n }\n\n // Functionality for disabling Debit/Credit Card Button when Change Payment Method Button is enabled\n if (isChangePaymentButtonActive && disableFundingList !== undefined) {\n disableFundingList += ',card';\n } else if (isChangePaymentButtonActive && disableFundingList === undefined) {\n disableFundingList = 'card';\n }\n\n if (enableFundingList !== undefined) {\n config['enable-funding'] = enableFundingList;\n }\n\n if (disableFundingList !== undefined) {\n config['disable-funding'] = disableFundingList;\n }\n\n return config;\n }\n\n loadPayPalSDK() {\n // eslint-disable-next-line no-undef\n const promise = new Promise(resolve => resolve(this));\n\n if (window.isPayPalSDKLoaded) {\n return promise;\n }\n\n // In case if paypal SDK is loaded only for credit messages, we need to delete it\n // and load again to avoid getting unhandled errors in console\n if (window.isPayPalCreditMessageLoaded) {\n delete window.paypal;\n }\n\n if (!this.clientToken || !this.configurations) {\n // eslint-disable-next-line no-console\n console.warn('An error has occurred. Failed to find client token or configuration.');\n\n return promise;\n }\n\n const options = this.getPayPalSdkUrlCongifuration();\n\n return this.createPayPalCheckoutInstance().then((payPalCheckoutInstance) => {\n return payPalCheckoutInstance.loadPayPalSDK(options).then(() => {\n window.isPayPalSDKLoaded = true;\n\n return this;\n });\n });\n }\n\n /**\n * This callback runs after the script is loaded\n * @callback onLoadCallback\n */\n\n /**\n * @param {onLoadCallback} [onLoadCallback] - A callback runs after the script is loaded\n * @returns {ScriptLoading} - A ScriptLoading object\n */\n loadConnectWithPayPal(onLoadCallback) {\n const value = this.getValueByAttributeName('data-cwpp-sdk');\n\n if (!value) {\n return this;\n }\n\n const script = document.createElement('script');\n\n script.src = value;\n script.async = true;\n\n if (onLoadCallback && typeof onLoadCallback === 'function') {\n script.onload = onLoadCallback;\n }\n\n script.onerror = () => {\n // eslint-disable-next-line no-console\n console.error(`An upload error occurred and the file ${value} could not be uploaded.`);\n };\n\n document.body.appendChild(script);\n\n return this;\n }\n\n loadPayPalCreditMessages() {\n const promise = new Promise(resolve => resolve(this));\n\n if (window.isPayPalCreditMessageLoaded || window.isPayPalSDKLoaded) {\n return promise;\n }\n\n if (!this.clientToken) {\n // eslint-disable-next-line no-console\n console.warn('An error has occurred. Failed to find client token.');\n\n return promise;\n }\n\n const options = { components: 'messages', dataAttributes: { namespace: 'paypalSDK' } };\n\n return this.createPayPalCheckoutInstance().then((payPalCheckoutInstance) => {\n return payPalCheckoutInstance.loadPayPalSDK(options).then(() => {\n window.isPayPalCreditMessageLoaded = true;\n\n return this;\n });\n });\n }\n};\n\nmodule.exports = PayPalScriptLoading;\n","'use strict';\n\nconst payPalProductPage = require('./components/payPalProductPage');\nconst payPalProductViewPage = require('./components/payPalProductViewPage');\nconst payPalMiniCartPage = require('./components/payPalMiniCartPage');\nconst payPalCartPage = require('./components/payPalCartPage');\nconst payPalAccountPage = require('./components/payPalAccountPage');\nconst apmaPage = require('./components/apmaPage');\nconst payPalCheckoutPage = require('./components/payPalCheckoutPage');\n\nlet btClientInstancePromise;\n\n/**\n * Init PayPal functionality on PDP\n */\nfunction initProduct() {\n payPalProductPage.init(btClientInstancePromise);\n}\n\n/**\n * Init PayPal functionality on PVP\n */\nfunction initQuickView() {\n payPalProductViewPage.init(btClientInstancePromise);\n}\n\n/**\n * Init PayPal functionality on MiniCart\n */\nfunction initMiniCart() {\n // For MiniCart we generate client instance inside component.\n // This is, since general code which generate client instance executes before client token appear\n // This is only applicable for MiniCart\n payPalMiniCartPage.init();\n}\n\n/**\n * Init PayPal functionality on Cart\n */\nfunction initCart() {\n payPalCartPage.init(btClientInstancePromise);\n}\n\n/**\n * Init PayPal functionality on Checkout\n */\nfunction initCheckout() {\n payPalCheckoutPage.init(btClientInstancePromise);\n}\n\n/**\n * Init PayPal functionality on Account\n */\nfunction initAccount() {\n payPalAccountPage.init(btClientInstancePromise);\n}\n\n/**\n * Init PayPal functionality on APMA page\n */\nfunction initAPMA() {\n apmaPage.init(btClientInstancePromise);\n}\n\n/**\n * Init general variables which are used on all pages\n * @param {Object} clientInstancePromise client instance promise\n */\nfunction init(clientInstancePromise) {\n btClientInstancePromise = clientInstancePromise;\n}\n\nmodule.exports = {\n init,\n initCheckout,\n initProduct,\n initQuickView,\n initMiniCart,\n initCart,\n initAccount,\n initAPMA\n};\n","'use strict';\n\nconst AlertHandlerModel = require('../../alertHandler');\n\n/**\n * SRC error handler model\n */\nclass SrcAlertHandlerModel extends AlertHandlerModel {\n constructor(alertMessages) {\n super();\n this.alertMessages = alertMessages;\n }\n\n /**\n * Shows 'Zero amount' error\n */\n showZeroAmountError() {\n this.showError(this.alertMessages.CUSTOM_SRC_ZERO_AMOUNT_ERROR);\n }\n\n /**\n * Handles SRC error by types\n * @param {Object} error Error object or error message\n */\n handleSrcError(error) {\n if (error.name === 'BraintreeError') {\n this.showBraintreeError(error);\n } else {\n this.showError(error.message || error);\n }\n }\n\n /**\n * Handles error on checkout from cart\n * @param {Object} data error data\n */\n handleCheckoutFromCartError(data) {\n let errorMessage = '';\n\n if (data.fieldErrors.length) {\n data.fieldErrors.forEach((error, index) => {\n const keys = Object.keys(error);\n\n if (keys.length) {\n errorMessage += `${keys[index].replace('dwfrm_billing_', '').replace('_', ' ')} ${data.fieldErrors[index][keys[index]]}. `;\n }\n });\n\n this.showError(errorMessage);\n }\n\n if (data.serverErrors.length) {\n data.serverErrors.forEach((error) => {\n errorMessage += `${error}. `;\n });\n\n this.showError(errorMessage);\n }\n\n if (data.cartError) {\n window.location.href = data.redirectUrl;\n }\n }\n}\n\nmodule.exports = SrcAlertHandlerModel;\n","'use strict';\n\n/* eslint-disable no-undef */\n/* global braintreeUtils braintree $ */\n\n/**\n * Creates visa checkout instance\n * @param {Promise} btClientInstancePromise BT Client Instance Promise\n * @returns {Promise} visaCheckoutInstance SRC instance\n */\nfunction createVisaCheckout(btClientInstancePromise) {\n return btClientInstancePromise\n .then(function(btClientInstance) {\n return braintree.visaCheckout.create({\n client: btClientInstance\n });\n });\n}\n\n/**\n * Initialized SRC with options and pass payload data after tokenize\n * @param {Object} SrcBaseModelInstance Instance of SrcBaseModel or it's child classes\n * @returns {Promise} SRC button\n */\nfunction visaCheckoutInitialized(SrcBaseModelInstance) {\n const visaCheckoutInstancePromise = createVisaCheckout(SrcBaseModelInstance.clientInstancePromise);\n\n return visaCheckoutInstancePromise\n .then(function(visaCheckoutInstance) {\n const srcInitOptions = visaCheckoutInstance.createInitOptions(SrcBaseModelInstance.getInitOptionsObject());\n\n V.init(srcInitOptions);\n\n // Event which is triggered when payment successfully completed on SRC end\n V.on('payment.success', function(payment) {\n visaCheckoutInstance.tokenize(payment).then(function(payload) {\n SrcBaseModelInstance.onTokenizeCallback(payload);\n });\n });\n V.on('payment.error', function(_, error) {\n SrcBaseModelInstance.alertHandler.handleSrcError(error);\n });\n V.on('payment.cancel', function(payment) {\n if (payment.error) {\n SrcBaseModelInstance.alertHandler.showError(SrcBaseModelInstance.alertHandler.alertMessages.CLIENT_GATEWAY_NETWORK);\n }\n });\n });\n}\n\nmodule.exports = {\n visaCheckoutInitialized\n};\n","'use strict';\n\n/**\n * Inits SRC account functionality on the Account Page\n * @param {Promise} clientInstancePromise client instance promise\n */\nfunction init(clientInstancePromise) {\n const loaderInstance = require('../../loaderHelper');\n const srcHelper = require('../helpers/srcHelper');\n\n const SrcAlertHandlerModel = require('../alerthandler/srcAlertHandlerModel');\n const SrcAccountModel = require('../models/srcAccount');\n\n const $braintreeSrcLoader = document.querySelector('.js-braintree-src-loader');\n const $braintreeSrcButton = document.querySelector('.js-braintree-src-account-button');\n\n const srcButtonConfigurations = srcHelper.getBraintreeSRCButtonConfigs();\n const $braintreeSrcDeviceDataInput = null;\n const srcLoader = loaderInstance($braintreeSrcLoader);\n\n const alertHandler = new SrcAlertHandlerModel(srcButtonConfigurations.messages);\n const SrcAccountModelInstance = new SrcAccountModel(clientInstancePromise,\n srcButtonConfigurations,\n $braintreeSrcDeviceDataInput,\n srcLoader,\n alertHandler);\n\n // Hides errors on the Account Page\n $braintreeSrcButton.addEventListener('click', alertHandler.hideAlerts);\n\n SrcAccountModelInstance.initSrcButton();\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst srcHelper = require('../helpers/srcHelper');\nconst loaderInstance = require('../../loaderHelper');\n\n// Models\nconst SrcCartModel = require('../models/srcCartModel');\nconst SrcAlertHandlerModel = require('../alerthandler/srcAlertHandlerModel');\n\nconst $braintreeCartSrcButton = document.querySelector('.js-braintree-cart-src-button');\n\n/**\n * Inits SRC account functionality on the Cart Page\n * @param {Promise} clientInstancePromise client instance promise\n */\nfunction init(clientInstancePromise) {\n const $braintreeSrcLoader = document.querySelector('.js-braintree-src-loader');\n const $totalAmount = document.querySelector('.grand-total');\n const srcLoader = loaderInstance($braintreeSrcLoader);\n const srcButtonConfigurations = srcHelper.getBraintreeSRCButtonConfigs();\n const $braintreeSrcDeviceDataInput = document.querySelector('input[name=braintreeSrcDeviceDataInput]');\n const alertHandler = new SrcAlertHandlerModel(srcButtonConfigurations.messages);\n\n const SrcCheckoutModelInstance = new SrcCartModel(clientInstancePromise,\n srcButtonConfigurations,\n $braintreeSrcDeviceDataInput,\n srcLoader,\n alertHandler);\n\n // Hides errors on the Cart Page\n $braintreeCartSrcButton.addEventListener('click', alertHandler.hideAlerts);\n\n SrcCheckoutModelInstance.initSrcButton();\n\n // Tracks cases when total amount equal zero and throw an error\n srcHelper.zeroAmountSrcButtonBehavior($totalAmount, alertHandler);\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst srcHelper = require('../helpers/srcHelper');\nconst loaderInstance = require('../../loaderHelper');\n\n// Models\nconst SrcCheckoutModel = require('../models/srcCheckoutModel');\nconst SrcAlertHandlerModel = require('../alerthandler/srcAlertHandlerModel');\n\nconst $braintreeBillingPageSrcButton = document.querySelector('.js-braintree-billing-src-button');\n\n/**\n * Inits SRC account functionality on the Checkout Page\n * @param {Promise} clientInstancePromise client instance promise\n */\nfunction init(clientInstancePromise) {\n const $braintreeSrcLoader = document.querySelector('.js-braintree-src-loader');\n const $totalAmount = document.querySelector('.grand-total-sum');\n const srcLoader = loaderInstance($braintreeSrcLoader);\n const srcButtonConfigurations = srcHelper.getBraintreeSRCButtonConfigs();\n const $braintreeSrcDeviceDataInput = document.querySelector('input[name=braintreeSrcDeviceDataInput]');\n const alertHandler = new SrcAlertHandlerModel(srcButtonConfigurations.messages);\n\n const SrcCheckoutModelInstance = new SrcCheckoutModel(clientInstancePromise,\n srcButtonConfigurations,\n $braintreeSrcDeviceDataInput,\n srcLoader,\n alertHandler);\n\n // Hides errors on the Checkout/Billing Page\n $braintreeBillingPageSrcButton.addEventListener('click', alertHandler.hideAlerts);\n\n SrcCheckoutModelInstance.initSrcButton();\n\n // Tracks cases when total amount equal zero and throw an error\n srcHelper.zeroAmountSrcButtonBehavior($totalAmount, alertHandler);\n\n // Click SRC tab if session payment ID is SRC and session account value is filled\n // in case of checkout through saved SRC card session payment id will be SRC\n // but session account value will be empty\n const sessionPaymentMethodId = srcButtonConfigurations.sessionPaymentMethodId;\n const isSrcSessionAccountExist = document.getElementById('sessionSrcAccount')?.value !== '';\n\n if (sessionPaymentMethodId === 'SRC' && isSrcSessionAccountExist) {\n document.querySelector('.src-tab').click();\n }\n\n // Close alert saying to chose a diffrent shipping option on submit shipping button click\n // in case of express checkout with address to which default shipping option doesn't deliver\n // when a customer is redirected to checkout stage shipping\n const $submitShippingBtn = document.querySelector('.submit-shipping');\n\n $submitShippingBtn.addEventListener('click', alertHandler.hideControllerCreatedAlerts);\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst srcHelper = require('../helpers/srcHelper');\nconst srcListHelper = require('../helpers/srcListHelper');\n\n/**\n * Inits SRC list functionality\n */\nfunction init() {\n const $srcAccountList = document.getElementById('braintreeSrcAccountsList');\n const srcListExist = Boolean($srcAccountList);\n\n if (srcListExist) {\n srcListHelper.srsListStateHandler();\n\n $srcAccountList.addEventListener('change', function() {\n srcHelper.srcContentTabHandler(true);\n });\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\n// Helpers\nconst helper = require('../../helper');\nconst srcListHelper = require('../helpers/srcListHelper');\nconst srcHelper = require('../helpers/srcHelper');\n\nconst $srcSessionAccount = document.getElementById('sessionSrcAccount');\nconst $srcCardDescription = document.getElementById('braintreeSrcCardDescription');\nconst $braintreeSrcCardType = document.getElementById('braintreeSrcCardType');\nconst $braintreeSrcLastFourDigits = document.getElementById('braintreeSrcLastFourDigits');\nconst $braintreeSrcCreditCardNumber = document.getElementById('braintreeSrcCreditCardNumber');\nconst $srcButton = document.querySelector('.js-braintree-src-button');\nconst $accountListBlock = document.querySelector('.js-braintree-used-src-account');\n/**\n * Shows used session account(card) in dropdown and handles checkout view\n * @param {Object} srcPayload payload with card data from tokenization\n */\n\nfunction showSrcSessionAccount(srcPayload) {\n // description of used card(ex. Visa ending in 1111)\n const cardDescription = `${srcPayload.details.cardType} ${srcPayload.description}`;\n\n $srcSessionAccount.value = cardDescription;\n $srcSessionAccount.text = cardDescription;\n $srcCardDescription.value = cardDescription;\n $srcSessionAccount.selected = true;\n $accountListBlock.style.display = 'block';\n $srcButton.classList.remove('d-flex');\n $srcButton.classList.add('d-none');\n\n // Inputs required for identifying already saved cards\n $braintreeSrcCardType.value = srcPayload.details.cardType;\n $braintreeSrcLastFourDigits.value = srcPayload.details.lastFour;\n $braintreeSrcCreditCardNumber.value = '************' + srcPayload.details.lastFour;\n\n srcListHelper.handleSaveSrcAccountCheckbox($srcSessionAccount, true);\n srcListHelper.setIsHideContinueButtonAttr(false);\n helper.continueButtonToggle(false);\n}\n\n/*\n* Removes method was used and changes appearance of SRC tab\n* */\nfunction removeSessionNonce() {\n if ($srcSessionAccount) {\n $srcSessionAccount.value = '';\n $srcSessionAccount.text = '';\n $srcSessionAccount.setAttribute('data-save', false);\n }\n\n $accountListBlock.style.display = 'none';\n\n document.getElementById('braintreeSRCNonce').value = '';\n document.getElementById('braintreeSrcBillingAddress').value = '';\n document.getElementById('braintreeSrcCardDescription').value = '';\n document.getElementById('newSrcAccount').selected = true;\n\n srcHelper.srcContentTabHandler(false);\n}\n\nmodule.exports = {\n showSrcSessionAccount,\n removeSessionNonce\n};\n","'use strict';\n\nmodule.exports = {\n FLOW_NAME_ACCOUNT: 'account',\n FLOW_NAME_CART_CHECKOUT: 'cart',\n FLOW_NAME_BILLING_CHECKOUT: 'billing'\n};\n","'use strict';\n\nconst DISPLAY_NONE_CLASS = 'd-none';\n\n/**\n * Shows a zero amount SRC button and hides a normal SRC button\n */\nfunction showZeroAmountSrcButton() {\n document.querySelector('.js-v-button-zero-amount').classList.remove(DISPLAY_NONE_CLASS);\n document.querySelector('.js-v-button').classList.add(DISPLAY_NONE_CLASS);\n}\n\n/**\n * Hides a zero amount SRC button and show a normal SRC button\n */\nfunction hideZeroAmountSrcButton() {\n document.querySelector('.js-v-button-zero-amount').classList.add(DISPLAY_NONE_CLASS);\n document.querySelector('.js-v-button').classList.remove(DISPLAY_NONE_CLASS);\n}\n\n/**\n * Handles whether show or hide zero amount SRC button\n * @param {number} totalAmount Total amount of order\n */\nfunction handleZeroAmountButtonVisibility(totalAmount) {\n if (totalAmount === 0) {\n showZeroAmountSrcButton();\n } else {\n hideZeroAmountSrcButton();\n }\n}\n\n/**\n * Adds event listener to the zero amount button on the Cart/Checkout Page\n * @param {DOMElement} $zeroAmountButton DOM element of zero amount SRC button\n * @param {Object} alertHandler Alert handling model\n */\nfunction addZeroAmountButtonEventListener($zeroAmountButton, alertHandler) {\n $zeroAmountButton.addEventListener('click', () => {\n alertHandler.hideAlerts();\n alertHandler.showZeroAmountError();\n });\n}\n\n/**\n * Creates a mutation obserber for total amount element\n * @param {DOMElement} totalAmountElement DOM Element that includes the total cost\n */\nfunction initTotalAmountElementObserver(totalAmountElement) {\n const config = { attributes: true, childList: true, subtree: true };\n\n const observer = new MutationObserver((element) => {\n const totalAmount = Number.parseFloat(element[0].target.textContent.slice(1));\n\n // Handles whether show or hide zero amount SRC button\n handleZeroAmountButtonVisibility(totalAmount);\n });\n\n observer.observe(totalAmountElement, config);\n}\n\nmodule.exports = {\n initTotalAmountElementObserver: initTotalAmountElementObserver,\n addZeroAmountButtonEventListener: addZeroAmountButtonEventListener,\n hideZeroAmountSrcButton: hideZeroAmountSrcButton,\n showZeroAmountSrcButton: showZeroAmountSrcButton,\n handleZeroAmountButtonVisibility: handleZeroAmountButtonVisibility\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst srcListHelper = require('./srcListHelper');\nconst srcButtonHelper = require('./srcButtonHelper');\n\n/**\n * Returns Braintree SRC configs\n * @returns {Object} Braintree SRC configs\n */\nfunction getBraintreeSRCButtonConfigs() {\n const $srcButton = document.querySelector('.js-braintree-src-button, .js-braintree-src-account-button');\n let braintreeSrcButtonConfigs = null;\n\n try {\n braintreeSrcButtonConfigs = helper.tryParseJSON($srcButton.getAttribute('data-braintree-config'));\n } catch (error) {\n return braintreeSrcButtonConfigs;\n }\n\n return braintreeSrcButtonConfigs;\n}\n\n/**\n * Returns stringified SRC shipping address\n * @param {Object} shippingData SRC shipping\n * @returns {string} stringified shipping address\n */\nfunction createSrcShippingAddressData(shippingData) {\n const shippingAddress = {\n recipientName: `${shippingData.firstName} ${shippingData.lastName}`,\n phone: shippingData.phoneNumber,\n countryCodeAlpha2: shippingData.countryCode,\n streetAddress: shippingData.streetAddress,\n extendedAddress: shippingData.extendedAddress,\n locality: shippingData.locality,\n region: shippingData.region,\n postalCode: decodeURIComponent(shippingData.postalCode)\n };\n\n return JSON.stringify(shippingAddress);\n}\n\n/**\n * Returns stringified SRC billing address\n * @param {Object} billingData SRC billing\n * @param {Object} userData user data with email\n * @returns {string} stringified billing address\n */\nfunction createSrcBillingAddress(billingData, userData) {\n const srcBillingAddress = {\n recipientName: `${billingData.firstName} ${billingData.lastName}`,\n phone: billingData.phoneNumber,\n countryCodeAlpha2: billingData.countryCode,\n streetAddress: billingData.streetAddress,\n extendedAddress: billingData.streetAddress,\n locality: billingData.locality,\n region: billingData.region,\n postalCode: decodeURIComponent(billingData.postalCode),\n email: userData.userEmail\n };\n\n return JSON.stringify(srcBillingAddress);\n}\n\n/**\n * Creates SRC checkout form data\n * @param {Object} srcCheckoutFormData SRC form data\n * @param {Object} srcResponseData payload from SRC\n * @param {string} pageFlow page flow\n * @returns {Object} SRC Checkout Form with appended SRC data\n */\nfunction createSrcCheckoutFormData(srcCheckoutFormData, srcResponseData, pageFlow) {\n const $csrfToken = document.querySelector('.js-braintree-cart-buttons-wrap #csrf_token');\n\n const cardDescription = `${srcResponseData.details.cardType} ${srcResponseData.description}`;\n const deviceData = document.querySelector('input[name=braintreeSrcDeviceDataInput]').value;\n const shippingAddressData = createSrcShippingAddressData(srcResponseData.shippingAddress);\n\n srcCheckoutFormData.append($csrfToken.name, $csrfToken.value);\n srcCheckoutFormData.append('braintreeSrcNonce', srcResponseData.nonce);\n srcCheckoutFormData.append('braintreeSrcDeviceDataInput', deviceData);\n srcCheckoutFormData.append('braintreeSrcShippingAddress', shippingAddressData || '{}');\n srcCheckoutFormData.append('braintreeSrcBillingAddress', JSON.stringify(srcResponseData.billingAddress));\n srcCheckoutFormData.append('braintreeSrcCardDescription', cardDescription);\n srcCheckoutFormData.append('braintreeSrcCardType', srcResponseData.details.cardType);\n srcCheckoutFormData.append('braintreeSrcCreditCardNumber', '************' + srcResponseData.details.lastFour);\n\n if (pageFlow && pageFlow === window.braintreeConstants.PAGE_FLOW_CART) {\n srcCheckoutFormData.append('pageFlowCart', true);\n }\n\n return srcCheckoutFormData;\n}\n\n/**\n * Creates SRC form data\n * @param {Object} responseData data received after SRC tokenize\n * @param {string} paymentMethodName SRC payment method name\n * @returns {Object} SRC payment form data\n */\nfunction createSrcFormData(responseData, paymentMethodName) {\n const srcData = {};\n const checkoutFormFields = document.querySelector('.js-braintree-cart-buttons-wrap').getAttribute('data-checkout-form-fields');\n\n srcData.firstName = responseData.userData.userFirstName;\n srcData.lastName = responseData.userData.userLastName;\n srcData.address1 = responseData.billingAddress.streetAddress;\n srcData.address2 = responseData.billingAddress.extendedAddress || '';\n srcData.city = responseData.billingAddress.locality;\n srcData.postalCode = decodeURIComponent(responseData.billingAddress.postalCode);\n srcData.stateCode = responseData.billingAddress.region;\n srcData.country = responseData.billingAddress.countryCode;\n srcData.email = responseData.userData.userEmail;\n srcData.phone = responseData.billingAddress.phoneNumber;\n srcData.paymentMethod = paymentMethodName;\n\n return helper.createPaymentFormData(checkoutFormFields, srcData);\n}\n\n/**\n * Updates Storefront billing data form with SRC data\n * @param {Object} srcBillingData SRC billing address data/phone/email\n */\nfunction updateStorefrontBillingData(srcBillingData) {\n const storefrontBillingData = helper.tryParseJSON(document\n .querySelector('.js-braintree-billing-payment-wrap')\n .getAttribute('data-billing-form-fields-names'));\n\n storefrontBillingData.dwfrm_billing_addressFields_firstName = srcBillingData.firstName;\n storefrontBillingData.dwfrm_billing_addressFields_lastName = srcBillingData.lastName;\n storefrontBillingData.dwfrm_billing_addressFields_address1 = srcBillingData.streetAddress;\n storefrontBillingData.dwfrm_billing_addressFields_address2 = srcBillingData.extendedAddress || '';\n storefrontBillingData.dwfrm_billing_addressFields_city = srcBillingData.locality;\n storefrontBillingData.dwfrm_billing_addressFields_postalCode = decodeURIComponent(srcBillingData.postalCode);\n storefrontBillingData.dwfrm_billing_addressFields_states_stateCode = srcBillingData.region;\n storefrontBillingData.dwfrm_billing_addressFields_country = srcBillingData.countryCode;\n storefrontBillingData.dwfrm_billing_contactInfoFields_email = srcBillingData.email;\n storefrontBillingData.dwfrm_billing_contactInfoFields_phone = srcBillingData.phoneNumber;\n\n helper.updateBillingFormValues(storefrontBillingData);\n}\n\n/**\n * Handles all behavior related to the src content tab\n * SRC list (dropdown) change - actions for new/session account showing\n * @param {boolean} isSrcTabActive Whether Src tab is active\n */\nfunction srcContentTabHandler(isSrcTabActive) {\n const $srcAccountList = document.getElementById('braintreeSrcAccountsList');\n const $srcSessionAccount = document.getElementById('sessionSrcAccount');\n const $srcButton = document.querySelector('.js-braintree-src-button');\n const $srcZeroAmountButton = document.querySelector('.js-braintree-billing-src-button-zero-amount');\n const $alertInfo = document.querySelector('.js-billing-address-info-alert');\n\n const srcOptionId = $srcAccountList.value;\n\n if (srcOptionId === 'newaccount') {\n $srcButton.classList.remove('d-none');\n $srcButton.classList.add('d-flex');\n $srcZeroAmountButton.style.display = 'block';\n $alertInfo.style.display = 'block';\n\n if (isSrcTabActive) {\n helper.continueButtonToggle(true);\n }\n\n srcListHelper.setIsHideContinueButtonAttr(true);\n // Case when registered user and vaulting is enabled\n srcListHelper.handleSaveSrcAccountCheckbox($srcSessionAccount, true);\n } else {\n $srcButton.classList.add('d-none');\n $srcButton.classList.remove('d-flex');\n $srcZeroAmountButton.style.display = 'none';\n $alertInfo.style.display = 'none';\n\n helper.continueButtonToggle(false);\n srcListHelper.setIsHideContinueButtonAttr(false);\n // Case when registered user and vaulting is enabled\n srcListHelper.handleSaveSrcAccountCheckbox($srcSessionAccount, helper.tryParseJSON($srcSessionAccount.getAttribute('data-save')));\n }\n}\n\n/**\n * Treats the behavior of the SRC button in the SRC tab based on the total cost\n * Shows/hides the required SRC button if the total value is/isn't 0\n * @param {DOMElement} totalAmountElement DOM Element that includes the total cost\n * @param {Object} alertHandler alertHandler model\n */\nfunction zeroAmountSrcButtonBehavior(totalAmountElement, alertHandler) {\n const $braintreeZeroAmountSrcButton = document\n .querySelector('.js-braintree-cart-src-button-zero-amount, .js-braintree-billing-src-button-zero-amount');\n\n const totalAmount = Number.parseFloat(totalAmountElement.textContent.slice(1));\n\n // Add event listener for cart zero amount button\n if ($braintreeZeroAmountSrcButton) {\n srcButtonHelper.addZeroAmountButtonEventListener($braintreeZeroAmountSrcButton, alertHandler);\n }\n\n // Handles whether show or hide zero amount button\n srcButtonHelper.handleZeroAmountButtonVisibility(totalAmount);\n\n // Creates a mutation obserber for total amount element\n srcButtonHelper.initTotalAmountElementObserver(totalAmountElement);\n}\n\nmodule.exports = {\n getBraintreeSRCButtonConfigs,\n createSrcShippingAddressData,\n createSrcBillingAddress,\n createSrcFormData,\n updateStorefrontBillingData,\n srcContentTabHandler,\n createSrcCheckoutFormData,\n zeroAmountSrcButtonBehavior\n};\n","const helper = require('../../helper');\n\nconst $srcAccountList = document.getElementById('braintreeSrcAccountsList');\nconst $saveSRCAccountCheckbox = document.getElementById('braintreeSaveSRCAccount');\nconst $saveSRCAccountCheckboxContainter = document.getElementById('braintreeSaveSRCContainer');\nconst $srcButton = document.querySelector('.js-braintree-src-button');\nconst $accoutnListBlock = document.querySelector('.js-braintree-used-src-account');\nconst $alertInfo = document.querySelector('.js-billing-address-info-alert');\n\n/**\n * Sets value to data-paypal-is-hide-continue-button attribute\n * @param {boolean} value true/false\n */\nfunction setIsHideContinueButtonAttr(value) {\n const $srcContent = document.querySelector('.js-braintree-src-content');\n\n $srcContent.setAttribute('data-paypal-is-hide-continue-button', value);\n}\n\n/**\n * Handles actions based on selected value in SRC dropdown for checkout view\n */\nfunction srsListStateHandler() {\n const srcOptionId = $srcAccountList.value;\n\n if (srcOptionId === 'newaccount') {\n if ($alertInfo) {\n $alertInfo.style.display = 'block';\n }\n\n $accoutnListBlock.style.display = 'none';\n } else {\n $srcButton.style.display = 'none';\n\n if ($alertInfo) {\n $alertInfo.style.display = 'none';\n }\n\n helper.continueButtonToggle(false);\n setIsHideContinueButtonAttr(false);\n }\n}\n\n/**\n * Get stored card by card type and last four digits\n * @param {string} cardType card type\n * @param {string} lastFour last four card digits\n * @returns {Object} jquery object of found stored card\n */\nfunction getStoredCardByData(cardType, lastFour) {\n return Array.from(document.querySelectorAll('.js-stored-card')).find(function($card) {\n const storedCardType = $card.dataset.type.replace(/\\s/g, '').toLowerCase();\n const storedCardLastFour = $card.dataset.lastFour.toString();\n\n return storedCardType === cardType && storedCardLastFour === lastFour;\n });\n}\n\n/**\n * Checks whether SRC session card is already stored\n * @param {string} cardType card type\n * @param {string} lastFour last four card digits\n * @returns {boolean} \"true/false\" value whether session card is already stored\n */\nfunction isSessionCardAlreadyStored(cardType, lastFour) {\n const $storedCard = getStoredCardByData(cardType, lastFour);\n let flag = false;\n\n if ($storedCard) {\n flag = true;\n }\n\n return flag;\n}\n\n/**\n * Sets value to \"Save SRC account\" checkbox\n * @param {Element} srcSessionAccount element from which we recognize session account existence\n * @param {boolean} value true/false\n */\nfunction handleSaveSrcAccountCheckbox(srcSessionAccount, value) {\n const isSrcSessionCardExist = srcSessionAccount?.value !== '';\n const isAddNewOptionSelected = $srcAccountList.value === 'newaccount';\n\n if ($saveSRCAccountCheckbox) {\n // In case if session account exists and is chosen in dropdown\n // we check whether used SRC card is already stored\n // if card is already stored \"save\" checkbox is hidden and unchecked\n if (isSrcSessionCardExist && !isAddNewOptionSelected) {\n const $braintreeSrcCardType = document.getElementById('braintreeSrcCardType');\n const $braintreeSrcLastFourDigits = document.getElementById('braintreeSrcLastFourDigits');\n\n const sessionCardLastFour = $braintreeSrcLastFourDigits.value;\n let sessionCardType = $braintreeSrcCardType.value;\n\n sessionCardType = sessionCardType.replace(/\\s/g, '').toLowerCase();\n\n const isSrcSessionCardAlreadyStored = isSessionCardAlreadyStored(sessionCardType, sessionCardLastFour);\n\n if (isSrcSessionCardAlreadyStored) {\n $saveSRCAccountCheckbox.checked = false;\n $saveSRCAccountCheckboxContainter.style.display = 'none';\n }\n\n return;\n }\n\n // In case if session card does not exist/user chooses option \"Add New\"\n // or session card is not stored yet\n // checkbox is checked and shown\n $saveSRCAccountCheckboxContainter.style.display = 'block';\n $saveSRCAccountCheckbox.checked = value;\n }\n}\n\nmodule.exports = {\n setIsHideContinueButtonAttr,\n srsListStateHandler,\n handleSaveSrcAccountCheckbox\n};\n","'use strict';\n\nconst srcConstants = require('../constants/srcConstants');\nconst paymentMethodGeneral = require('../../paymentMethodGeneral');\n\n/**\n * Gets SRC flow name(corresponding page)\n * @returns {string} Flow id(page) account/cart/billing\n */\nfunction getSrcFlowName() {\n const isSrcEnabledOnAccountPage = Boolean(document.querySelector('.js-braintree-account-add-src'));\n const isSrcEnabledOnCartPage = Boolean(document.querySelector('.js-braintree-cart-src-button'));\n const isSrcEnabledOnBillingPage = Boolean(document.querySelector('.js-braintree-src-content'));\n\n let srcFlowName;\n\n if (isSrcEnabledOnAccountPage) {\n srcFlowName = srcConstants.FLOW_NAME_ACCOUNT;\n } else if (isSrcEnabledOnCartPage) {\n srcFlowName = srcConstants.FLOW_NAME_CART_CHECKOUT;\n } else if (isSrcEnabledOnBillingPage) {\n srcFlowName = srcConstants.FLOW_NAME_BILLING_CHECKOUT;\n }\n\n return srcFlowName;\n}\n\n/**\n * Makes call to checkoutFrom Cart endpoint\n * @param {Object} srcCheckoutFormData SRC form data passed to server side\n * @param {string} email SRC email from response\n * @param {Object} alertHandler Alert handling model\n * @param {string} chooseShippingUrl Link to checkout stage shipping\n * @returns {Promise} call to checkoutFrom Cart endpoint\n */\nfunction checkoutFromCartCall(srcCheckoutFormData, email, alertHandler, chooseShippingUrl) {\n const checkoutSubmitPayment = window.braintreeUrls.checkoutSubmitPayment;\n const redirectUrl = chooseShippingUrl || window.braintreeUrls.placeOrderUrl;\n // Submit customer form with email (CheckoutServices-SubmitCustomer)\n // as we skip step \"login via guest/registered user\" while express checkout\n // email is set only in case of guest checkout and if email is not already set\n\n paymentMethodGeneral.submitCustomerForm(email);\n\n return fetch(checkoutSubmitPayment, {\n method: 'POST',\n body: srcCheckoutFormData\n })\n .then(function(data) {\n if (data.error) {\n alertHandler.handleCheckoutFromCartError(data);\n }\n\n sessionStorage.setItem('pageState', 'cart');\n window.location.href = redirectUrl;\n })\n .catch(function(error) {\n if (error && error.redirectUrl) {\n window.location.href = error.redirectUrl;\n }\n });\n}\n\nmodule.exports = {\n getSrcFlowName,\n checkoutFromCartCall\n};\n","'use strict';\n\nconst SrcBaseModel = require('./srcBaseModel');\nconst helper = require('../../helper');\n\n// See description of \"srcBaseModel\" for more info\n\n/**\n * Creates a new SrcAccountModel instance\n * @param {Promise} clientInstancePromise client instance promise.\n * @param {Object} srcButtonConfigurations - Braintree SRC configs.\n * @param {Object} $braintreeSrcDeviceDataInput - input data.\n * @param {Instance} loader - instance of loaderInstance\n * @param {Instance} alertHandler - instance of SrcAlertHandlerModel\n */\nfunction SrcAccountModel(clientInstancePromise, srcButtonConfigurations, $braintreeSrcDeviceDataInput, loader, alertHandler) {\n SrcBaseModel.call(this,\n clientInstancePromise,\n srcButtonConfigurations,\n $braintreeSrcDeviceDataInput,\n loader,\n alertHandler);\n}\n\nSrcAccountModel.prototype = Object.create(SrcBaseModel.prototype);\n\n// See description of \"srcBaseModel\" for more info\n// Method set nonce data in to hidden input and submit the form to the server\nSrcAccountModel.prototype.onTokenizeCallback = function(srcPayload) {\n SrcBaseModel.prototype.onTokenizeCallback.call(this, srcPayload);\n const srcLoader = this.loader;\n const alertHandler = this.alertHandler;\n const $addSrcAccountForm = document.querySelector('.js-braintree-account-add-src');\n const addSrcFormUrl = $addSrcAccountForm.getAttribute('action');\n const $srcNonce = document.getElementById('braintreeSrcNonce');\n\n srcLoader.show();\n\n $srcNonce.value = srcPayload.nonce;\n\n return helper.checkForDuplicatedCC(srcPayload)\n .then(function(result) {\n if (result.error) {\n throw result.message;\n }\n })\n .then(function() {\n const creditCardAccount = require('../../creditcard/components/creditCardAccount');\n const braintreeAccount = require('../../braintreeAccount');\n\n const formData = new FormData($addSrcAccountForm);\n const encodedCCData = window.btoa(JSON.stringify(Object.fromEntries(formData)));\n\n return fetch(helper.getUrlWithCsrfToken(addSrcFormUrl), {\n method: 'POST',\n body: encodedCCData,\n headers: { 'Content-Type': 'application/json' }\n })\n .then((response) => response.json())\n .then((data) => {\n if (data.error) {\n alertHandler.showError(data.error);\n } else {\n fetch(data.renderAccountsUrl)\n .then((template) => template.text())\n .then((templateHtml) => {\n creditCardAccount.closeAddNewCardBlock();\n document.querySelector('.js-credit-card-accounts').innerHTML = templateHtml;\n // \"Make default\" link functionality reinitiation\n braintreeAccount.initMakeDefaultCardEvent();\n // \"Remove Card\" link functionality reinitiation\n braintreeAccount.initRemoveCardEvent();\n });\n }\n });\n })\n .catch(function(error) {\n srcLoader.hide();\n alertHandler.showError(error);\n })\n .finally(function() {\n srcLoader.hide();\n });\n};\n\n// See description of \"srcBaseModel\" for more info\nSrcAccountModel.prototype.initSrcButton = function() {\n const SrcAccountModelInstance = this;\n\n SrcAccountModelInstance.braintreeSrcSdkButtonInit(SrcAccountModelInstance)\n .catch(function(error) {\n SrcAccountModelInstance.alertHandler.handleSrcError(error);\n });\n};\n\nmodule.exports = SrcAccountModel;\n","'use strict';\n\nconst braintreeSrcSDK = require('../braintreesdk/braintreeSrcSDK');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst helper = require('../../helper');\n\n/**\n * SRC Base Model constructor\n * @param {Promise} clientInstancePromise client instance promise\n * @param {Object} srcButtonConfigurations SRC button configs\n * @param {Object} $braintreeSrcDeviceDataInput BT SRC device data input\n * @param {Object} loader loader instance\n * @param {Object} alertHandler Alert handler model instance\n */\nfunction SrcBaseModel(clientInstancePromise, srcButtonConfigurations, $braintreeSrcDeviceDataInput, loader, alertHandler) {\n this.clientInstancePromise = clientInstancePromise;\n this.srcButtonConfigurations = srcButtonConfigurations;\n this.$braintreeSrcDeviceDataInput = $braintreeSrcDeviceDataInput;\n this.loader = loader;\n this.alertHandler = alertHandler;\n\n this.braintreeSrcSdkButtonInit = braintreeSrcSDK.visaCheckoutInitialized;\n\n // Prop which will be settled after calling of \"getBasketData\" method\n this.basketData = {\n amount: 0\n };\n}\n\n/**\n * Method is triggers when \"initSrcButton\" is called. Update total basket amount\n * @returns {Promise} Promise of get order data response\n */\nSrcBaseModel.prototype.updateBasketData = function() {\n const SrcBaseModelInstance = this;\n\n return fetch(helper.getUrlWithCsrfToken(this.srcButtonConfigurations.getOrderInfoUrl))\n .then((response) => response.json())\n .then((data) => {\n SrcBaseModelInstance.basketData.amount = data.amount;\n })\n .catch(() => window.location.reload());\n};\n\n/**\n * Retrun Init options which are used in SRC initialization\n * @returns {Object} object with Init options\n */\nSrcBaseModel.prototype.getInitOptionsObject = function() {\n return {\n paymentRequest: {\n currencyCode: this.srcButtonConfigurations.options.currency || 'USD',\n subtotal: this.basketData.amount\n },\n settings: {\n locale: this.srcButtonConfigurations.settings.locale,\n payment: {\n cardBrands: this.srcButtonConfigurations.settings.cardBrands,\n acceptCanadianVisaDebit: this.srcButtonConfigurations.settings.acceptCanadianVisaDebit\n },\n shipping: {\n collectShipping: this.srcButtonConfigurations.options.isShippingAddressRequired\n }\n }\n };\n};\n\n/**\n * Callback which is triggered when SRC approved payment on its side\n * This method will be overridden in scope of each child model\n * @param {Object} srcPayload payload from SRC\n */\n// eslint-disable-next-line no-unused-vars\nSrcBaseModel.prototype.onTokenizeCallback = function(srcPayload) {\n};\n\n/**\n * Method add fraud data in to hidden input (if enabled)\n * @returns {Promise} with the result of operation\n */\nSrcBaseModel.prototype.setFraudData = function() {\n // eslint-disable-next-line no-undef\n const SrcBaseModelInstance = this;\n const $braintreeSrcDeviceDataInput = SrcBaseModelInstance.$braintreeSrcDeviceDataInput;\n\n let result = Promise.resolve({});\n\n if (this.srcButtonConfigurations.isFraudToolsEnabled && $braintreeSrcDeviceDataInput) {\n result = braintreeGeneral.collectFraudData(this.clientInstancePromise)\n .then(function(dataCollectorInstance) {\n SrcBaseModelInstance.$braintreeSrcDeviceDataInput.value = dataCollectorInstance.deviceData;\n });\n }\n\n return result;\n};\n\n/**\n * Method is called when we want to init SRC button\n * @returns {Promise} Promise with the result of the operation\n */\nSrcBaseModel.prototype.initSrcButton = function() {\n const SrcBaseModelInstance = this;\n\n return SrcBaseModelInstance.updateBasketData()\n .then(function() {\n return SrcBaseModelInstance.setFraudData()\n .then(function() {\n return SrcBaseModelInstance.braintreeSrcSdkButtonInit(SrcBaseModelInstance);\n });\n })\n .catch(function(error) {\n SrcBaseModelInstance.alertHandler.handleSrcError(error);\n });\n};\n\nmodule.exports = SrcBaseModel;\n","'use strict';\n\nconst SrcBaseModel = require('./srcBaseModel');\nconst srcHelper = require('../helpers/srcHelper');\nconst srcPaymentProcessingHelper = require('../helpers/srcPaymentProcessingHelper');\nconst helper = require('../../helper');\n\n// See description of \"srcBaseModel\" for more info\nfunction SrcCartModel(clientInstancePromise, srcButtonConfigurations, $braintreeSrcDeviceDataInput, loader, alertHandler) {\n SrcBaseModel.call(this,\n clientInstancePromise,\n srcButtonConfigurations,\n $braintreeSrcDeviceDataInput,\n loader,\n alertHandler);\n}\n\nSrcCartModel.prototype = Object.create(SrcBaseModel.prototype);\n\n// See description of \"srcBaseModel\" for more info\n// Add nonce and billing data to the from and submit to the \"CheckoutService-SubmitPayment\" endpoint\nSrcCartModel.prototype.onTokenizeCallback = async function(srcPayload) {\n SrcBaseModel.prototype.onTokenizeCallback.call(this, srcPayload);\n\n this.loader.show();\n // Checking if preselected shipping option delivers to the chosen shipping address\n\n const billingAddress = srcPayload.billingAddress;\n const city = billingAddress.locality;\n const state = billingAddress.region;\n const country = billingAddress.countryCode;\n const postalCode = billingAddress.postalCode;\n const addressQueryString = `city=${city.replace(/\\s/g, '%20')}&stateCode=${state}&countryCode=${country}&postalCode=${postalCode}`;\n const paymentMethodId = window.braintreeConstants.PAYMENT_METHOD_NOT_SUPPORTING_SHIPPING_OPTIONS;\n const url = `${window.braintreeUrls.getApplicableShippingOptions}?paymentMethodId=${paymentMethodId}&${addressQueryString}`;\n\n const shippingOptions = await helper.getApplicableShippingOptions(url);\n\n let chooseShippingUrl;\n\n if (!shippingOptions.find((shippingOption) => shippingOption.selected === true)) {\n chooseShippingUrl = `${window.braintreeUrls.chooseShippingUrl}&errorId=error.shippingoption.invalid`;\n }\n\n // Proceeding with checkout\n const $srcButton = document.querySelector('.js-braintree-src-button');\n\n srcPayload.billingAddressString = srcHelper.createSrcBillingAddress(srcPayload.billingAddress, srcPayload.userData);\n\n const paymentMethodName = helper.tryParseJSON($srcButton.getAttribute('data-braintree-config')).paymentMethodName;\n const srcFormData = srcHelper.createSrcFormData(srcPayload, paymentMethodName);\n const srcCheckoutFormData = srcHelper.createSrcCheckoutFormData(srcFormData, srcPayload, window.braintreeConstants.PAGE_FLOW_CART);\n\n srcPaymentProcessingHelper.checkoutFromCartCall(srcCheckoutFormData, srcPayload.userData.userEmail, this.alertHandler, chooseShippingUrl)\n .always(function() {\n this.loader.hide();\n });\n};\n\nmodule.exports = SrcCartModel;\n","'use strict';\n\nconst SrcBaseModel = require('./srcBaseModel');\n\n// Helpers\nconst srcHelper = require('../helpers/srcHelper');\nconst helper = require('../../helper');\n\n// See description of \"srcBaseModel\" for more info\nfunction SrcCheckoutModel(clientInstancePromise, srcButtonConfigurations, $braintreeSrcDeviceDataInput, loader, alertHandler) {\n SrcBaseModel.call(this,\n clientInstancePromise,\n srcButtonConfigurations,\n $braintreeSrcDeviceDataInput,\n loader,\n alertHandler);\n}\n\nSrcCheckoutModel.prototype = Object.create(SrcBaseModel.prototype);\n\n// See description of \"srcBaseModel\" for more info\n// Add nonce and billing data to the from and trigger click on \"SubmitPayment\" button\nSrcCheckoutModel.prototype.onTokenizeCallback = function(srcPayload) {\n SrcBaseModel.prototype.onTokenizeCallback.call(this, srcPayload);\n\n this.loader.show();\n\n const that = this;\n\n const $saveCardCheckbox = document.getElementById('braintreeSaveSRCAccount');\n let checkForDuplicatedCCPromise;\n\n if ($saveCardCheckbox && $saveCardCheckbox.checked) {\n checkForDuplicatedCCPromise = helper.checkForDuplicatedCC(srcPayload);\n } else {\n checkForDuplicatedCCPromise = Promise.resolve(); // eslint-disable-line no-undef\n }\n\n checkForDuplicatedCCPromise\n .then((response) => {\n if (response && response.error) {\n return Promise.reject(response); // eslint-disable-line no-undef\n }\n\n return Promise.resolve(); // eslint-disable-line no-undef\n })\n .then(() => {\n helper.removeActiveSessionPayment();\n\n const isSessionPaymentsEnabled = window.braintreePreferences.isSessionPaymentsEnabled;\n const $srcNonce = document.getElementById('braintreeSRCNonce');\n const $srcBillingAddress = document.getElementById('braintreeSrcBillingAddress');\n const $continueButton = document.querySelector('button.submit-payment');\n const srcBillingData = srcPayload.billingAddress;\n\n srcPayload.billingAddressString = srcHelper.createSrcBillingAddress(srcPayload.billingAddress, srcPayload.userData);\n\n $srcNonce.value = srcPayload.nonce;\n srcBillingData.email = srcPayload.userData.userEmail;\n $srcBillingAddress.value = JSON.stringify(srcBillingData);\n\n if (isSessionPaymentsEnabled) {\n const srcSessionAccountComponent = require('../components/srcSessionAccount');\n\n srcSessionAccountComponent.showSrcSessionAccount(srcPayload);\n }\n\n srcHelper.updateStorefrontBillingData(srcBillingData);\n\n $continueButton.click();\n })\n .catch((error) => {\n that.alertHandler.handleSrcError(error);\n })\n .finally(() => {\n that.loader.hide();\n });\n};\n\nmodule.exports = SrcCheckoutModel;\n","'use strict';\n\nconst braintreeGeneral = require('../braintreeGeneral');\nconst srcHelper = require('./helpers/srcHelper');\n\n// Components\nconst srcAccount = require('./components/srcAccount');\nconst srcCardList = require('./components/srcList');\nconst checkoutComponent = require('./components/srcCheckout');\nconst cartComponent = require('./components/srcCart');\n\nlet btClientInstancePromise;\n\n/**\n * Inits SRC functionality on the Account Page\n */\nfunction initAccount() {\n srcAccount.init(btClientInstancePromise);\n}\n\n/**\n * Inits SRC functionality on the Cart Page\n */\nfunction initCartCheckout() {\n cartComponent.init(btClientInstancePromise);\n}\n\n/**\n * Inits SRC functionality on the Billing Page\n */\nfunction initBillingCheckout() {\n checkoutComponent.init(btClientInstancePromise);\n srcCardList.init();\n}\n\n/**\n * Inits braintreeSrcModelBuilder on SRC level\n */\nfunction init() {\n const braintreeSrcConfigs = srcHelper.getBraintreeSRCButtonConfigs();\n let clientToken;\n\n if (braintreeSrcConfigs) {\n clientToken = braintreeSrcConfigs.clientToken;\n btClientInstancePromise = braintreeGeneral.createClientInstance(clientToken);\n }\n}\n\nmodule.exports = {\n initAccount,\n initCartCheckout,\n initBillingCheckout,\n init\n};\n","'use strict';\n\nconst AlertHandlerModel = require('../../alertHandler');\n\n/**\n * Venmo error handler model\n */\nclass VenmoAlertHandlerModel extends AlertHandlerModel {\n constructor() {\n super();\n }\n\n /**\n * Handles error flows in case when browser is not supported for Billing/Account Pages\n * @param {Object} braintreeVenmoConfig Braintree Venmo config\n */\n handleNoBrowserSupportError(braintreeVenmoConfig) {\n const $venmoAccountWrapper = document.querySelector('.js-braintree-account-venmo-button-wrapper');\n\n if ($venmoAccountWrapper) {\n this.showError(braintreeVenmoConfig.messages.VENMO_BROWSER_NOT_SUPPORTED);\n } else {\n document.querySelector('.js-braintree-venmo-button').parentElement.firstElementChild.classList.add('d-none');\n document.querySelector('.payment-options[role=tablist] .nav-item[data-method-id=\"Venmo\"]').classList.add('d-none');\n }\n }\n}\n\nmodule.exports = VenmoAlertHandlerModel;\n","'use strict';\n\nconst braintreeVenmoSDK = require('./braintreeVenmoSDK');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst venmoProcessing = require('../components/venmoProcessing');\nconst venmoHelper = require('../helpers/venmoHelper');\n\n/* global Promise braintree $ */\n\n// global variables\nlet btClientInstancePromise;\n\n/**\n * Init Braintree Venmo model\n * @param {Promise} braintreeClientInstancePromise Braintree client instance promise\n */\nfunction init(braintreeClientInstancePromise) {\n braintreeVenmoSDK.init(braintreeClientInstancePromise);\n\n btClientInstancePromise = braintreeClientInstancePromise;\n}\n\n/**\n * Returns fraud data from dataCollector payload\n * @returns {Object} Payload with fraud data\n */\nfunction collectFraudData() {\n let response;\n\n try {\n response = braintreeGeneral.collectFraudData(btClientInstancePromise);\n } catch (error) {\n response = Promise.resolve({\n customMessage: 'Fraud Data collection isn`t enabled via Custom Site Preference'\n });\n }\n\n return response;\n}\n\n/**\n * Checks whether browser supports Venmo\n * @returns {Promise} with isBrowserSupported value\n */\nfunction isBrowserSupported() {\n return braintreeVenmoSDK.isBrowserSupported();\n}\n\n/**\n * Inits Venmo button\n * @param {Element} $venmoButton Venmo button element\n * @param {Booleean} isBillingPage \"true/false\" value to identify flow page\n * @returns {Promise} Promise resolved with a tokenized payload\n */\nfunction initVenmo($venmoButton, isBillingPage) {\n return braintreeVenmoSDK.createVenmo()\n .then(function(venmoInstance) {\n $venmoButton.addEventListener('click', function() {\n // Check billing form to close Venmo pop-up and prevent tokenize action if any error (empty email input)\n // Check if amount is not zero to close Venmo pop-up and show appropriate error\n if (isBillingPage && (!venmoHelper.checkBillingForm() || venmoHelper.checkZeroAmount())) {\n return undefined;\n }\n\n return braintreeVenmoSDK.tokenize(venmoInstance)\n .then(function(payload) {\n return venmoProcessing.processVenmo(payload);\n })\n .catch(function(error) {\n const VenmoAlertHandlerModel = require('../alerthandler/venmoAlertHandlerModel');\n const alertHandler = new VenmoAlertHandlerModel();\n\n alertHandler.showError(error.message);\n });\n });\n });\n}\n\nmodule.exports = {\n init,\n collectFraudData,\n isBrowserSupported,\n initVenmo\n};\n","'use strict';\n\nconst braintreeVenmoModel = require('./braintreeVenmoModel');\nconst braintreeGeneral = require('../../braintreeGeneral');\nconst venmoHelper = require('../helpers/venmoHelper');\n\n/**\n * Initialize Braintree Venmo Model. Pattern Builder is used\n * @returns {Object} object with boolean \"error\" flag and \"message\" attribute with error message\n */\nfunction init() {\n const braintreeVenmoButtonConfigs = venmoHelper.getBraintreeVenmoButtonConfigs();\n const response = {\n error: false,\n message: '',\n btVenmoModel: null\n };\n\n let clientToken;\n let btClientInstancePromise;\n\n if (braintreeVenmoButtonConfigs) {\n clientToken = braintreeVenmoButtonConfigs.clientToken;\n btClientInstancePromise = braintreeGeneral.createClientInstance(clientToken);\n\n braintreeVenmoModel.init(btClientInstancePromise);\n\n response.btVenmoModel = braintreeVenmoModel;\n } else {\n response.error = true;\n response.message = 'No Braintree Venmo Configurations';\n }\n\n return response;\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\n/* global braintreeUtils braintree $ */\n\nlet btClientInstancePromise;\nlet venmoClientInstance;\n\n/**\n * Checks whether browser supports Venmo\n * @returns {Promise} with isBrowserSupported value\n */\nfunction isBrowserSupported() {\n return btClientInstancePromise\n .then(function(btClientInstance) {\n venmoClientInstance = btClientInstance;\n\n return braintree.venmo.isBrowserSupported({\n allowNewBrowserTab: false,\n allowDesktop: true\n });\n });\n}\n\n/**\n * Creates Venmo instance\n * @returns {Promise} Promise resolved with Venmo instance\n */\nfunction createVenmo() {\n return braintree.venmo.create({\n client: venmoClientInstance,\n allowNewBrowserTab: false,\n ignoreHistoryChanges: true,\n allowDesktop: true\n });\n}\n\n/**\n * Tokenizes Venmo payment\n * @param {Object} venmoInstance Venmo instance\n * @returns {Promise} Promise resolved with tokenized payload\n */\nfunction tokenize(venmoInstance) {\n return venmoInstance.tokenize({ processResultsDelay: 10 });\n}\n\n/**\n * Inits braintreeVenmoSDK with client instance promise\n * @param {Promise} braintreeClientInstancePromise Braintree Venmo client instance promise\n */\nfunction init(braintreeClientInstancePromise) {\n btClientInstancePromise = braintreeClientInstancePromise;\n}\n\nmodule.exports = {\n init,\n isBrowserSupported,\n createVenmo,\n tokenize\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst loaderInstance = require('../../loaderHelper');\nconst venmoHelper = require('../helpers/venmoHelper');\nconst VenmoAlertHandlerModel = require('../alerthandler/venmoAlertHandlerModel');\nconst alertHandler = new VenmoAlertHandlerModel();\n\nconst $venmoButton = document.querySelector('.js-braintree-account-venmo-button');\n\nlet venmoLoader;\n\n/**\n * Makes Venmo account as default one\n * @param {Event} e event to identify target element\n */\nfunction makeDefaultVenmo(e) {\n const target = e.target;\n const url = window.braintreeUrls.makePaymentMethodDefaultUrl;\n const id = target.getAttribute('data-id');\n const paymentMethodID = window.braintreePreferences.paymentMethods.BRAINTREE_VENMO.paymentMethodId;\n const $loaderContainter = document.querySelector(`#${target.getAttribute('data-loader')}`);\n const loader = loaderInstance($loaderContainter);\n\n alertHandler.hideAlerts();\n loader.show();\n\n helper.setDefaultProperty({\n url: url,\n id: id,\n paymentMethodID: paymentMethodID,\n loader: loader\n });\n}\n\n/**\n * Remove Venmo account\n * @param {Event} e event to identify target element\n */\nfunction removeVenmoPayment(e) {\n const target = e.target;\n const $loaderContainter = document.getElementById(target.getAttribute('data-loader'));\n\n venmoLoader = loaderInstance($loaderContainter);\n venmoLoader.show();\n\n fetch(helper.getUrlWithCsrfToken(`${window.braintreeUrls.deletePaymentUrl}?UUID=${target.getAttribute('data-id')}`), { method: 'GET' })\n .then((response) => {\n return response.json();\n })\n .then((data => {\n if (data.error && data.error.message) {\n // Show error message in a case of current PI removal is not allowed\n alertHandler.showError(data.error.message);\n } else {\n document.getElementById(`uuid-${data.UUID}`).remove();\n\n if (data.newDefaultAccount) {\n document.getElementById(`uuid-${data.newDefaultAccount}`).classList.add('font-weight-bold');\n document.getElementById(`uuid-${data.newDefaultAccount}`).classList.add('d-none');\n }\n }\n\n venmoLoader.hide();\n }))\n .catch(() => {\n location.reload();\n venmoLoader.hide();\n });\n}\n\n/**\n * Creates Venmo form data on account page\n * @param {string} nonce Braintree Venmo nonce\n * @param {string} userId Braintree Venmo userID\n * @returns {Object} object with Venmo form data\n */\nfunction createVenmoAccountFormData(nonce, userId) {\n const venmoAccountFormFields = $venmoButton.getAttribute('data-venmo-account-form-fields');\n const csrfToken = document.querySelector('.js-braintree-account-venmo-button-wrapper #csrf_token');\n\n const venmoAccountFormData = helper.createPaymentFormData(venmoAccountFormFields, {\n nonce: nonce,\n userId: userId\n });\n\n venmoAccountFormData.append(csrfToken.name, csrfToken.value);\n\n return venmoAccountFormData;\n}\n\n/**\n * Stores new Venmo account\n * @param {Object} data tokenized payload data with Venmo nonce\n * @returns {Promise} call to Braintree-AccountAddVenmoHandle endpoint\n */\nfunction storeNewVenmoAccount(data) {\n const venmoAddAccountHandlerUrl = $venmoButton.getAttribute('data-venmo-add-account-handler');\n const venmoAccountFormData = createVenmoAccountFormData(data.nonce, data.details.username);\n const encodedFormData = btoa(JSON.stringify(Object.fromEntries(venmoAccountFormData)));\n\n venmoLoader.show();\n\n return fetch(helper.getUrlWithCsrfToken(venmoAddAccountHandlerUrl), {\n method: 'POST',\n body: encodedFormData,\n headers: { 'Content-Type': 'application/json' }\n })\n .then((response) => response.json())\n .then((paymentData) => {\n venmoLoader.hide();\n if (paymentData.error) {\n alertHandler.showError(paymentData.error);\n } else {\n venmoHelper.hideVenmoAccountBtn();\n fetch(paymentData.renderAccountsUrl)\n .then((template) => template.text())\n .then((templateHTML => {\n document.querySelector('.js-venmo-accounts').innerHTML = templateHTML;\n document.querySelectorAll('.js-venmo-accounts .js-remove-bt-payment').forEach((el) => {\n el.addEventListener('click', removeVenmoPayment);\n });\n }));\n }\n });\n}\n\n/**\n * Inits Venmo functionality\n * @param {Object} btVenmoModel Braintree Venmo model\n */\nfunction init(btVenmoModel) {\n const isVenmoButtonEnabledOnAccountPage = Boolean(document.querySelector('.js-braintree-account-venmo-button'));\n const isVenmoAccountBlockExists = Boolean(document.querySelector('.js-venmo-accounts'));\n const $braintreeVenmoLoader = document.getElementById('braintreeVenmoAccLoader');\n\n venmoLoader = loaderInstance($braintreeVenmoLoader);\n\n if (isVenmoButtonEnabledOnAccountPage || isVenmoAccountBlockExists) {\n // \"Make default\" button functionality initiation\n document.querySelectorAll('.js-venmo-accounts .js-braintree-make-default-card')\n .forEach((el) => el.addEventListener('click', makeDefaultVenmo));\n // \"Remove\" button functionality initiation\n document.querySelectorAll('.js-venmo-accounts .js-remove-bt-payment')\n .forEach((el) => el.addEventListener('click', removeVenmoPayment));\n }\n\n if (isVenmoButtonEnabledOnAccountPage) {\n const $addVenmoAccountButton = document.querySelector('.js-add-venmo-account');\n\n $addVenmoAccountButton.addEventListener('click', function() {\n const venmoButton = require('../components/venmoButton');\n // Hide venmo account error container\n\n alertHandler.hideAlerts();\n venmoHelper.showVenmoAccountBtn();\n\n if (!window.venmoAccountButtonInited) {\n window.venmoAccountButtonInited = true;\n\n venmoButton.init(btVenmoModel, $venmoButton);\n }\n });\n }\n}\n\nmodule.exports = {\n init,\n storeNewVenmoAccount\n};\n","'use strict';\n\n/**\n * Display shipping address as selected billing address option\n */\nfunction displayShippingAddressAsSelected() {\n const billingAddressSelector = document.getElementById('billingAddressSelector');\n\n if (billingAddressSelector) {\n const shipmentIndex = 2;\n const shippingAddressToSelect = billingAddressSelector.children[shipmentIndex];\n\n if (shippingAddressToSelect) {\n shippingAddressToSelect.selected = true;\n }\n }\n}\n\nmodule.exports = {\n displayShippingAddressAsSelected\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\n/**\n * General validation of params needed for initialization of Venmo button\n * @param {Object} braintreeVenmoConfig Braintree Venmo button configurations (they came from server via data attr)\n * @returns {Object} object with \"error\" boolean flag and array of error messages from \"messages\" attr\n */\nfunction generalVenmoValidation(braintreeVenmoConfig) {\n const response = {\n error: false,\n messages: ''\n };\n\n try {\n const isBraintreeVenmoConfigValid = typeof braintreeVenmoConfig !== 'object' || braintreeVenmoConfig !== null;\n\n if (!isBraintreeVenmoConfigValid) {\n response.error = true;\n response.messages = 'Venmo button has not valid data-braintree-config';\n }\n } catch (error) {\n response.error = true;\n response.messages = error;\n }\n\n return response;\n}\n\n/**\n * Init Venmo button functionality\n * @param {Object} btVenmoModel Braintree Venmo model\n * @param {Object} $venmoButton Venmo button element\n * @param {boolean} isBillingPage value to identify flow page\n */\nfunction init(btVenmoModel, $venmoButton, isBillingPage) {\n const braintreeVenmoConfig = helper.tryParseJSON($venmoButton.getAttribute('data-braintree-config'));\n const VenmoAlertHandlerModel = require('../alerthandler/venmoAlertHandlerModel');\n const alertHandler = new VenmoAlertHandlerModel();\n\n try {\n const generalValidation = generalVenmoValidation(braintreeVenmoConfig);\n\n if (generalValidation.error && generalValidation.messages.length) {\n throw generalValidation.messages;\n }\n\n // Fraud Data collecting\n // For more details go inside \"btVenmoModel.collectFraudData\" function logic\n btVenmoModel.collectFraudData()\n .then(function(fraudDataPayload) {\n const venmoHelper = require('../helpers/venmoHelper');\n\n venmoHelper.setVenmoDeviceData(fraudDataPayload.deviceData);\n\n return btVenmoModel.isBrowserSupported()\n .then(function(isBrowserSupported) {\n if (!isBrowserSupported) {\n alertHandler.handleNoBrowserSupportError(braintreeVenmoConfig);\n }\n\n return btVenmoModel.initVenmo($venmoButton, isBillingPage);\n });\n });\n\n // To prevent repeatable Venmo button initialization\n window.venmoCheckoutButtonInited = true;\n } catch (error) {\n alertHandler.showError(error);\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst loaderInstance = require('../../loaderHelper');\nconst venmoButton = require('./venmoButton');\nconst venmoList = require('./venmoList');\nconst venmoHelper = require('../helpers/venmoHelper');\nconst venmoSessionAccount = require('./venmoSessionAccount');\nconst helper = require('../../helper');\n\nconst $braintreeVenmoNonce = document.getElementById('braintreeVenmoNonce');\nconst $braintreeVenmoUserId = document.getElementById('braintreeVenmoUserId');\nconst $sessionVenmoAccount = document.getElementById('sessionVenmoAccount');\nconst $newVenmoAccount = document.getElementById('newVenmoAccount');\nconst $venmoBillingInput = document.getElementById('braintreeVenmoBilling');\nconst $venmoContent = document.querySelector('.js-braintree-venmo-content');\nconst $venmoButton = document.querySelector('.js-braintree-venmo-button');\nconst $venmoAccountContainer = document.querySelector('.js-braintree-used-venmo-account');\nconst $continueButton = document.querySelector('button.submit-payment');\nconst $submitShippingBtn = document.querySelector('.button, .submit-shipping');\n\nconst dataAttrIsValidStage = 'data-is-valid-stage';\n\nlet hashChange;\n\n/**\n * Process Venmo on the Billing/Checkout Page\n * @param {Object} data tokenized Venmo payload data\n */\nfunction processCheckoutFlow(data) {\n const $loaderContainer = venmoHelper.createLoaderContainter(document.querySelector('.page'));\n\n loaderInstance($loaderContainer).show();\n\n $braintreeVenmoNonce.value = data.nonce;\n $braintreeVenmoUserId.value = data.details.username;\n // In case when stage is correct we proceed with usual flow\n if (window.history.state !== 'shipping') {\n $continueButton.click();\n document.querySelector('.js-braintree-venmo-loader').remove();\n\n return;\n }\n\n // In case when Venmo has returned from Venmo app to NOT correct stage (for example, to shipping stage)\n // we redirect user to correct stage and set required data\n venmoHelper.updateBillingAddressFormValues(helper.tryParseJSON($venmoBillingInput.value));\n // Move to stage payment\n $submitShippingBtn.click();\n $venmoButton.setAttribute(dataAttrIsValidStage, true);\n document.querySelector('.js-braintree-venmo-loader').remove();\n}\n\n/**\n * Inits Venmo checkout components\n * @param {Object} btVenmoModel Braintree Venmo model\n */\nfunction init(btVenmoModel) {\n // MutationObserver is triggered on each URL change to avoid conflict between URL passed to Venmo application\n // and URL with already changed stage on storefront (checkout stage)\n // case when user is redirected from Venmo application\n hashChange = new MutationObserver(function(mutations) {\n let result = false;\n\n const isSessionPaymentsEnabled = window.braintreePreferences.isSessionPaymentsEnabled;\n const mutation = mutations.find(function(element) {\n return element.attributeName === 'data-checkout-stage' && element.target.dataset.checkoutStage === 'payment';\n });\n\n if (!mutation) {\n return result;\n }\n\n if ($braintreeVenmoNonce.value && helper.tryParseJSON($venmoButton.getAttribute(dataAttrIsValidStage))) {\n $venmoButton.setAttribute(dataAttrIsValidStage, false);\n $continueButton.click();\n\n result = true;\n\n return result;\n }\n\n // Case when user has proceeded with Venmo session account and clicked on \"edit\" button\n if (isSessionPaymentsEnabled && $venmoContent.classList.contains('active') && mutation.oldValue === 'placeOrder') {\n // Show dropdown with used Venmo session account\n venmoSessionAccount.showVenmoAccount();\n\n if ($braintreeVenmoUserId && $braintreeVenmoUserId.value !== 'Venmo') {\n $venmoAccountContainer.classList.remove('used-venmo-account-hide');\n $venmoAccountContainer.classList.add('js-used-venmo-account');\n $sessionVenmoAccount.classList.remove('used-venmo-account-hide');\n $sessionVenmoAccount.classList.add('js-used-venmo-account');\n $sessionVenmoAccount.textContent = $braintreeVenmoUserId.value;\n $sessionVenmoAccount.selected = true;\n $newVenmoAccount.selected = false;\n }\n\n // Set attribute to show \"place order\" button\n $venmoContent.setAttribute('data-paypal-is-hide-continue-button', false);\n // Hide Venmo button\n $venmoButton.setAttribute('data-is-hide-venmo-button', true);\n }\n\n return result;\n });\n\n hashChange.observe(document.getElementById('checkout-main'), { attributeOldValue: true });\n\n // Venmo button functionality is initiated once in case if it was not inited yet\n // based on existence of window.venmoCheckoutButtonInited (set while Venmo button initiation)\n if (!window.venmoCheckoutButtonInited) {\n venmoButton.init(btVenmoModel, $venmoButton, true);\n venmoList.init();\n }\n\n const sessionPaymentMethodId = helper.tryParseJSON($venmoContent.getAttribute('data-braintree-config')).sessionPaymentMethodId;\n // if exists Venmo session account - we make Venmo tab active on page reload\n\n if (sessionPaymentMethodId === 'Venmo') {\n document.querySelector('.venmo-tab').click();\n }\n}\n\nmodule.exports = {\n init,\n processCheckoutFlow\n};\n","'use strict';\n\nconst venmoHelper = require('../helpers/venmoHelper');\nconst helper = require('../../helper');\n\nconst $btVenmoAccountsList = document.getElementById('braintreeVenmoAccountsList');\nconst $venmoButton = document.querySelector('.js-braintree-venmo-button');\n\n/**\n * Inits Venmo list functionality\n */\nfunction init() {\n // Attribute is set as \"true\" when user has saved Venmo account in wallet\n // or when user has proceeded with Venmo session account\n const isHideVenmoButtonAttribute = helper.tryParseJSON($venmoButton.getAttribute('data-is-hide-venmo-button'));\n // Case when we already have session account in disabled dropdown\n // and user returns to the Billing Page from Cart or other page (from not billing page/stages)\n // only in this case we need to hide Venmo button\n // in other cases button and dropdown behavior is handled by venmoContentTabHandler function\n // because disabled dropdown with session Venmo account and with saved Venmo and \"new account\" option are separated\n\n if (isHideVenmoButtonAttribute && $btVenmoAccountsList.value !== 'newaccount') {\n $venmoButton.style.display = 'none';\n }\n\n if ($btVenmoAccountsList) {\n $btVenmoAccountsList.addEventListener('change', function() {\n venmoHelper.venmoContentTabHandler();\n });\n }\n}\n\nmodule.exports = {\n init\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst venmoAccount = require('./venmoAccount');\nconst venmoCheckout = require('./venmoCheckout');\nconst venmoConstants = require('../constants/venmoConstants');\nconst venmoProcessingHelper = require('../helpers/venmoProcessingHelper');\n\n/**\n * Process Venmo flow for Account/Billing Page flows\n * @param {Object} venmoData Venmo data received from tokenize\n */\nfunction processVenmo(venmoData) {\n const $venmoButton = document.querySelector('.js-braintree-account-venmo-button, .js-braintree-venmo-button');\n\n if ($venmoButton && helper.tryParseJSON($venmoButton.getAttribute('data-braintree-config'))) {\n const VenmoAlertHandlerModel = require('../alerthandler/venmoAlertHandlerModel');\n const alertHandler = new VenmoAlertHandlerModel();\n\n alertHandler.hideAlerts();\n }\n\n const venmoFlowName = venmoProcessingHelper.getVenmoFlowName();\n\n switch (venmoFlowName) {\n case venmoConstants.FLOW_NAME_ACCOUNT:\n\n venmoAccount.storeNewVenmoAccount(venmoData);\n\n break;\n\n case venmoConstants.FLOW_NAME_BILLING_CHECKOUT:\n helper.removeActiveSessionPayment();\n venmoCheckout.processCheckoutFlow(venmoData);\n\n break;\n\n default:\n break;\n }\n}\n\nmodule.exports = {\n processVenmo\n};\n","'use strict';\n\nconst helper = require('../../helper');\nconst venmoHelper = require('../helpers/venmoHelper');\n\nconst $braintreeVenmoSessionAccount = document.getElementById('braintreeVenmoAccount');\nconst $braintreeVenmoUserId = document.getElementById('braintreeVenmoUserId');\nconst $venmoAccountBlock = document.querySelector('.js-braintree-used-venmo-account');\nconst $venmoButton = document.querySelector('.js-braintree-venmo-button');\n\n/**\n * Handles showing Venmo session account\n */\nfunction showVenmoAccount() {\n const btVenmoAccountsList = document.getElementById('braintreeVenmoAccountsList');\n\n if (!btVenmoAccountsList) {\n $venmoAccountBlock.classList.remove('used-venmo-account-hide');\n $braintreeVenmoSessionAccount.options[0].text = $braintreeVenmoUserId.value;\n }\n\n $venmoButton.style.display = 'none';\n\n helper.continueButtonToggle(false);\n}\n\n/**\n * Removes method was used and change appearance of Venmo tab\n */\nfunction removeSessionNonce() {\n const defaultOption = helper.getOptionByDataDefault('#braintreeVenmoAccountsList');\n const braintreeVenmoNonce = document.getElementById('braintreeVenmoNonce');\n const braintreeVenmoBilling = document.getElementById('braintreeVenmoBilling');\n\n if (defaultOption) {\n defaultOption.selected = true;\n\n venmoHelper.venmoContentTabHandler();\n } else {\n $venmoAccountBlock.classList.remove('js-used-venmo-account');\n $venmoAccountBlock.classList.add('used-venmo-account-hide');\n $venmoButton.style.display = 'block';\n }\n\n braintreeVenmoNonce.value = '';\n braintreeVenmoBilling.value = '';\n}\n\nmodule.exports = {\n showVenmoAccount,\n removeSessionNonce\n};\n","'use strict';\n\nmodule.exports = {\n FLOW_NAME_ACCOUNT: 'account',\n FLOW_NAME_BILLING_CHECKOUT: 'billing'\n};\n","'use strict';\n\nconst helper = require('../../helper');\n\nconst $addVenmoAccountBtn = document.querySelector('.js-add-venmo-account');\nconst $venmoAccountWrapper = document.querySelector('.js-braintree-account-venmo-button-wrapper');\n\nconst btVenmoButtonClassName = '.js-braintree-venmo-button';\n\n/**\n * Returns Braintree Venmo configs\n * @returns {Object} Braintree Venmo configs\n */\nfunction getBraintreeVenmoButtonConfigs() {\n const $venmoButton = document.querySelector(`${btVenmoButtonClassName}, .js-braintree-account-venmo-button`);\n\n return helper.tryParseJSON($venmoButton.getAttribute('data-braintree-config'));\n}\n\n/**\n * Creates loader container on the Billing page\n * @param {Element} $target Venmo button target for which loader container is created\n * @returns {Element} created loader container element\n */\nfunction createLoaderContainter($target) {\n const $loaderContainter = document.createElement('div');\n\n $loaderContainter.classList.add('braintree-venmo-loader', 'js-braintree-venmo-loader');\n\n helper.continueButtonToggle(true);\n\n return $target.parentNode.insertBefore($loaderContainter, $target);\n}\n\n/**\n * Updates the billing address form values within saved billing\n * @param {Object} billingAddress billing address\n */\nfunction updateBillingAddressFormValues(billingAddress) {\n const form = document.querySelector('form[name=dwfrm_billing]');\n const inputNames = ['firstName', 'lastName', 'address1', 'address2', 'city', 'postalCode'];\n\n if (!form) {\n return;\n }\n\n inputNames.forEach((value) => {\n form.querySelector(`input[name$=_${value}]`).value = decodeURIComponent(billingAddress[value]);\n });\n\n // Process the billing address select elements (Country, State)\n ['select[name$=_stateCode]', 'input[name$=_stateCode]', 'select[name$=_country]', 'input[name$=_country]']\n .forEach((elemSelector) => {\n const $elem = form.querySelector(elemSelector);\n\n if ($elem) {\n $elem.value = elemSelector.includes('stateCode') ? billingAddress.stateCode : billingAddress.country;\n }\n });\n}\n\n/**\n * Shows Venmo button on the Account Page and hides \"add new\" button\n */\nfunction showVenmoAccountBtn() {\n $addVenmoAccountBtn.classList.add('d-none');\n $venmoAccountWrapper.classList.remove('d-none');\n}\n\n/**\n * Hides Venmo button on the Account Page and shows \"add new\" button\n */\nfunction hideVenmoAccountBtn() {\n $addVenmoAccountBtn.classList.remove('d-none');\n $venmoAccountWrapper.classList.add('d-none');\n}\n\n/**\n * Saves Venmo device (risk) data to hidden input\n * @param {string} deviceData Venmo device (risk) data\n */\nfunction setVenmoDeviceData(deviceData) {\n const $braintreeVenmoDeviceData = document.getElementById('braintreeVenmoDeviceData');\n\n if ($braintreeVenmoDeviceData) {\n $braintreeVenmoDeviceData.value = deviceData;\n }\n}\n\n/**\n * Checks billing form on the Billing Page\n * If billing form is valid, saves/updates billing address to input\n * If not valid (possible case: empty email) - add error class to email input\n * @returns {boolean} billing form check result value\n */\nfunction checkBillingForm() {\n const $billingForm = document.querySelector('.card-body [id=dwfrm_billing]');\n const $venmoBillingInput = document.getElementById('braintreeVenmoBilling');\n\n if ($billingForm.checkValidity()) {\n /**\n * Setting current customer Billing address to form\n * For the case when SFCC redirects customer from payment stage to shipping stage\n * after successful Venmo app response\n */\n $venmoBillingInput.value = JSON.stringify(helper.getBillingAddressFormValues());\n\n return true;\n }\n\n return false;\n}\n\n/**\n * Checks zero amount on the Billing Page\n * If amount is zero Venmo pop-up is closed and appropriate error is shown\n * If amount is acceptable by Venmo user could proceed through pop-up\n * @returns {boolean} zero amount check result value\n */\nfunction checkZeroAmount() {\n const $venmoButton = document.querySelector(btVenmoButtonClassName);\n const braintreeVenmoConfig = helper.tryParseJSON($venmoButton.getAttribute('data-braintree-config'));\n const amount = braintreeVenmoConfig.options.amount;\n\n if (amount === 0) {\n const VenmoAlertHandlerModel = require('../alerthandler/venmoAlertHandlerModel');\n const alertHandler = new VenmoAlertHandlerModel();\n\n alertHandler.showError(braintreeVenmoConfig.messages.VENMO_ZERO_AMOUNT_ERROR);\n\n return true;\n }\n\n return false;\n}\n\n/**\n * Handles all behavior related to the Venmo content tab\n */\nfunction venmoContentTabHandler() {\n const $btVenmoAccountsList = document.getElementById('braintreeVenmoAccountsList');\n const $saveVenmoAccountCheckboxContainer = document.getElementById('braintreeSaveVenmoAccountContainer');\n const $saveVenmoAccountCheckbox = document.getElementById('braintreeSaveVenmoAccount');\n const $venmoButton = document.querySelector(btVenmoButtonClassName);\n const $venmoContent = document.querySelector('.js-braintree-venmo-content');\n\n const venmoOptionId = $btVenmoAccountsList.value;\n\n if (venmoOptionId === 'newaccount') {\n // Case when option \"new account\" is selected in dropdown\n $venmoButton.style.display = 'block';\n\n helper.continueButtonToggle(true);\n $venmoContent.setAttribute('data-paypal-is-hide-continue-button', true);\n // Case when registered user and vaulting is enabled\n if ($saveVenmoAccountCheckboxContainer) {\n $saveVenmoAccountCheckbox.checked = true;\n $saveVenmoAccountCheckboxContainer.style.display = 'block';\n }\n } else {\n // Case when saved account is selected in dropdown\n $venmoButton.style.display = 'none';\n\n helper.continueButtonToggle(false);\n $venmoContent.setAttribute('data-paypal-is-hide-continue-button', false);\n // Case when registered user and vaulting is enabled\n if ($saveVenmoAccountCheckboxContainer) {\n $saveVenmoAccountCheckbox.checked = false;\n $saveVenmoAccountCheckboxContainer.style.display = 'none';\n }\n }\n}\n\nmodule.exports = {\n getBraintreeVenmoButtonConfigs,\n createLoaderContainter,\n updateBillingAddressFormValues,\n showVenmoAccountBtn,\n hideVenmoAccountBtn,\n setVenmoDeviceData,\n checkBillingForm,\n checkZeroAmount,\n venmoContentTabHandler\n};\n","'use strict';\n\nconst venmoConstants = require('../constants/venmoConstants');\n\n/**\n * Gets Venmo flow name (corresponding page)\n * @returns {string} Flow ID (page) Account/Billing\n */\nfunction getVenmoFlowName() {\n const isVenmoEnabledOnAccountPage = Boolean(document.querySelector('.js-braintree-account-venmo-button'));\n const isVenmoEnabledOnBillingPage = Boolean(document.querySelector('.js-braintree-venmo-content'));\n\n let venmoFlowName;\n\n if (isVenmoEnabledOnAccountPage) {\n venmoFlowName = venmoConstants.FLOW_NAME_ACCOUNT;\n } else if (isVenmoEnabledOnBillingPage) {\n venmoFlowName = venmoConstants.FLOW_NAME_BILLING_CHECKOUT;\n }\n\n return venmoFlowName;\n}\n\nmodule.exports = {\n getVenmoFlowName\n};\n","'use strict';\n\n// Braintree SDK model builder, we need to init Braintree Venmo model on this level, since we are using it on step of \"venmoAccount.init()\"\n// and on step of \"venmoCheckout.init()\".\nconst braintreeVenmoModelBuilder = require('./braintreesdk/braintreeVenmoModelBuilder');\n\n// components\nconst venmoAccount = require('./components/venmoAccount');\nconst venmoCheckout = require('./components/venmoCheckout');\n\nlet btVenmoModelResponse;\n\n/**\n * Inits Venmo functionality on the Account Page\n */\nfunction initAccount() {\n venmoAccount.init(btVenmoModelResponse.btVenmoModel);\n}\n\n/**\n * Inits Venmo functionality on the Billing Page\n */\nfunction initBillingCheckout() {\n venmoCheckout.init(btVenmoModelResponse.btVenmoModel);\n}\n\n/**\n * Inits braintreeVenmoModelBuilder on Venmo level\n */\nfunction init() {\n btVenmoModelResponse = braintreeVenmoModelBuilder.init();\n}\n\nmodule.exports = {\n initAccount,\n initBillingCheckout,\n init\n};\n","'use strict';\n\n/* global braintreeUtils braintree $ */\n\nlet btClientInstancePromise;\n\n/**\n * Returns a promise that resolves with the HostedFields instance.\n * OVERRIDEN: extended with a methods to catch firing event on CC type change and update the icon\n * @param {Object} hostedFieldsParams Object of hosted fieds parameters\n * @returns {Object} Object with hosted field parameters\n */\nfunction createHostedFields(hostedFieldsParams) {\n return btClientInstancePromise\n .then(function (btClientInstance) {\n return braintree.hostedFields.create({\n client: btClientInstance,\n styles: hostedFieldsParams.styles,\n fields: hostedFieldsParams.configs\n });\n })\n .then((hostedFieldsInstance) => {\n const cardIconUseEl = document.querySelector('.braintree-card-icon use');\n const cvvEl = document.querySelector('.js-cvv');\n hostedFieldsInstance.on('cardTypeChange', function (event) {\n const cardsList = event.cards;\n if (!event.fields?.number?.isEmpty && cardsList.length !== 0) {\n if (!!cardsList[0].type && cardIconUseEl) {\n cardIconUseEl.setAttribute('xlink:href', '#icon-' + cardsList[0].type);\n } else {\n cardIconUseEl.setAttribute('xlink:href', '#iconCardFront');\n }\n\n if (!!cardsList[0].code.size && cvvEl?.dataset.template) {\n cvvEl.textContent = cvvEl.dataset.template.replace('{0}', cardsList[0].code.size);\n }\n\n }\n });\n\n return hostedFieldsInstance;\n })\n .catch(console.error);\n}\n\n/**\n *\n * @param {Promise} braintreeClientInstancePromise Braintree Credit Card instance promise\n */\nfunction init(braintreeClientInstancePromise) {\n btClientInstancePromise = braintreeClientInstancePromise;\n}\n\nmodule.exports = {\n init,\n createHostedFields\n};\n","'use strict';\n\n/**\n * Clear Credit Card hosted fields\n */\nfunction clearHostedFields() {\n if (!window.braintreePreferences.clearIframeCardForm) return;\n\n const that = this;\n\n Object.keys(this.fieldsOptions.configs).forEach(option => {\n that.sdkHfInstance.clear(option);\n });\n};\n\nmodule.exports = {\n clearHostedFields\n};\n","'use strict';\n\n/**\n * Returns Credit Card hosted fileds styles\n * @returns {Object} Object of styles\n */\nfunction getHostedFieldsStyles() {\n return {\n input: {\n 'font-size': '1rem',\n 'color': '#2e2e2e',\n 'font-family': 'Avenir Next LT W05 Regular,sans-serif',\n 'letter-spacing': '0.05em'\n }\n };\n}\n\nmodule.exports = {\n getHostedFieldsStyles\n};\n","'use strict';\n\n/**\n * Displays stores Credit Cards list on the Billing Page\n */\n\n/**\n * Returns whether Credit Card tab is active on the Billing Page\n * @override added additional check if selected payment method CREDIT_CARD for casses when dynamically set COUPON_CODE or GIFT_CERTIFICATE\n * @returns {boolean} true/false\n */\nfunction isActiveCreditCardTab() {\n return document\n .querySelector('.payment-options[role=tablist] a[data-toggle=\"tab\"][href=\"#creditcard-content\"]')\n ?.classList\n .contains('active') && $('.payment-information').data('payment-method-id') === 'CREDIT_CARD';\n}\n\nmodule.exports = {\n isActiveCreditCardTab\n};\n","'use strict';\n\n/**\n * Gets Billing Address Form Values\n * OVERRIDDEN: Because dwfrm_billing has bolt fields and specially postalCode - it overrides the actual form field input\n * So here we exclude the bolt fields, because they should not be considered, even more this is only for BT (the address\n * form is actually copied as JSON into hidden form field)\n *\n * @returns {Object} with Billing Address\n */\nfunction getBillingAddressFormValues() {\n const billingFormData = Object.fromEntries(new FormData(document.getElementById('dwfrm_billing')));\n\n return Array.from(Object.entries(billingFormData)).filter(function ([key, value]) {\n return !key.includes('boltCreditCard');\n }).reduce(function (accumulator, [key, value]) {\n let elem = key.lastIndexOf('_');\n\n if (elem < 0) {\n accumulator[key] = value;\n } else {\n elem = key.substring(elem + 1);\n accumulator[elem] = value;\n }\n\n return accumulator;\n }, {});\n}\n\n/**\n * Return payment method name in lovercase\n * OVERRIDDEN: duplicate, because was never exported before\n * @param {string} paymentMethodName Payment method name\n * @returns {string} Paymnet method name\n */\nfunction getPaymentMethodToLowerCase(paymentMethodName) {\n let paymentMethod = paymentMethodName.split('_');\n\n if (paymentMethod.length === 1) {\n return paymentMethodName;\n }\n\n paymentMethod = paymentMethod.map(function(element) {\n return element.charAt(0) + element.slice(1).toLocaleLowerCase();\n });\n\n return `${paymentMethod[0]} ${paymentMethod[1]}`;\n}\n\n/**\n * Appends a div to payment summary\n * OVERRIDDEN: because direct call to parent function wont work\n * @param {Element} $element HTML element\n * @param {*} text inner text\n * @returns {void}\n */\nfunction appendDivToElement($element, text) {\n const $div = $element.cloneNode(false);\n const innerText = document.createTextNode(text);\n\n $div.removeAttribute('class');\n $div.appendChild(innerText);\n $element.appendChild($div);\n}\n\n/**\n * Updates checkout view\n * OVERRIDDEN: because we want to place type of card near the payment method name\n * @param {Object} e Event object\n * @param {Object} data Data object\n */\nfunction updateCheckoutView(e, data) {\n const $paymentSummary = document.querySelector('.summary-details .js-braintree-payment-details');\n const order = data.order;\n const payment = order.billing.payment;\n\n if (payment?.selectedPaymentInstruments?.length === 0 || !$paymentSummary) {\n return;\n }\n\n payment.selectedPaymentInstruments.forEach(selectedPaymentInstrument => {\n const paymentMethodId = selectedPaymentInstrument.paymentMethod;\n const fundingSource = selectedPaymentInstrument.fundingSource;\n\n $paymentSummary.innerHTML = '';\n\n if (fundingSource === window.braintreeConstants.PP_FUNDING_SOURCE_PAYLATER) {\n appendDivToElement($paymentSummary, window.braintreeConstants.PP_PAYLATER_PAYMENT_TYPE);\n } else if (fundingSource === window.braintreeConstants.PP_FUNDING_SOURCE_CARD) {\n appendDivToElement($paymentSummary, window.braintreeConstants.PP_DEBIT_CREDIT_PAYMENT_TYPE);\n } else {\n appendDivToElement(\n $paymentSummary,\n selectedPaymentInstrument.type ?\n getPaymentMethodToLowerCase(paymentMethodId) + ' - ' + selectedPaymentInstrument.type\n : getPaymentMethodToLowerCase(paymentMethodId)\n );\n }\n\n if (selectedPaymentInstrument.maskedCreditCardNumber) {\n appendDivToElement($paymentSummary, selectedPaymentInstrument.maskedCreditCardNumber);\n }\n\n if (paymentMethodId === window.braintreeConstants.PAYMENT_METHOD_ID_PAYPAL) {\n appendDivToElement($paymentSummary, selectedPaymentInstrument.braintreePaypalEmail);\n } else if (paymentMethodId === window.braintreeConstants.PAYMENT_METHOD_ID_VENMO) {\n appendDivToElement($paymentSummary, selectedPaymentInstrument.braintreeVenmoUserId);\n }\n\n if (selectedPaymentInstrument.type) {\n appendDivToElement($paymentSummary, selectedPaymentInstrument.type);\n }\n\n appendDivToElement($paymentSummary, `${order.priceTotal.charAt(0)}${selectedPaymentInstrument.amount}`);\n });\n}\n\nmodule.exports = {\n getBillingAddressFormValues,\n updateCheckoutView,\n appendDivToElement\n};\n","'use strict';\n\nconst baseModule = require('base_braintree/braintree/paymentMethodGeneral');\nconst helper = require('base_braintree/braintree/helper');\n\n/**\n * Method override default SFRA and int_braintree payment-details filling behavior.\n * Method fill payment-details block with the right payment methdo data (like name, account, etc.)\n */\nbaseModule.fillPaymentSummaryContainer = function () {\n const $summaryDetails = document.querySelector('.summary-details .payment-details');\n const selectedPaymentMethod = $('.payment-information').data('payment-method-id');\n\n if ($summaryDetails && ($summaryDetails.dataset.braintreePaymentMethods || '').includes(selectedPaymentMethod)) {\n $summaryDetails.classList.add('js-braintree-payment-details');\n $summaryDetails.classList.remove('payment-details');\n\n $('body').on('checkout:updateCheckoutView', helper.updateCheckoutView);\n }\n};\n\nmodule.exports = baseModule;\n","'use strict';\n\nmodule.exports = {\n setTabNextFocus: function (focusParams) {\n var KEYCODE_TAB = 9;\n var isTabPressed = (focusParams.event.key === 'Tab' || focusParams.event.keyCode === KEYCODE_TAB);\n\n if (!isTabPressed) {\n return;\n }\n\n var firstFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.firstElementSelector);\n var lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.lastElementSelector);\n\n if ($(focusParams.containerSelector + ' ' + focusParams.lastElementSelector).is(':disabled')) {\n lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.nextToLastElementSelector);\n if ($('.product-quickview.product-set').length > 0) {\n var linkElements = $(focusParams.containerSelector + ' a#fa-link.share-icons');\n lastFocusableEl = linkElements[linkElements.length - 1];\n }\n }\n\n if (focusParams.event.shiftKey) /* shift + tab */ {\n if ($(':focus').is(firstFocusableEl)) {\n lastFocusableEl.focus();\n focusParams.event.preventDefault();\n }\n } else /* tab */ {\n if ($(':focus').is(lastFocusableEl)) { // eslint-disable-line\n firstFocusableEl.focus();\n focusParams.event.preventDefault();\n }\n }\n }\n};\n","'use strict';\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearFormErrors(form) {\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\n}\n\nmodule.exports = function (formElement, payload) {\n // clear form validation first\n clearFormErrors(formElement);\n $('.alert', formElement).remove();\n\n if (typeof payload === 'object' && payload.fields) {\n Object.keys(payload.fields).forEach(function (key) {\n if (payload.fields[key]) {\n var feedbackElement = $(formElement).find('[name=\"' + key + '\"]')\n .parent()\n .children('.invalid-feedback');\n\n if (feedbackElement.length > 0) {\n if (Array.isArray(payload[key])) {\n feedbackElement.html(payload.fields[key].join('
'));\n } else {\n feedbackElement.html(payload.fields[key]);\n }\n feedbackElement.siblings('.form-control').addClass('is-invalid');\n }\n }\n });\n }\n if (payload && payload.error) {\n var form = $(formElement).prop('tagName') === 'FORM'\n ? $(formElement)\n : $(formElement).parents('form');\n\n form.prepend('