{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/applepay/applepayHelper.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/braintreeApplepay.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/braintreeCreditCard.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/braintreeGooglepay.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/braintreeLocal.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/braintreeMFRA.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/braintreePaypal.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/braintreeSrc.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/braintreeUtils.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/braintreeVenmo.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/creditcard/creditcardAccount.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/creditcard/creditcardFields.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/creditcard/creditcardHelper.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/creditcard/creditcardPayment.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/googlepay/googlepayAccount.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/googlepay/googlepayHelper.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/googlepay/googlepayPayment.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/helper.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/loaderHelper.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/local/localPayment.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/paybylink/payByLink.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/paypal/minicartHelper.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/paypal/paypalAccount.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/paypal/paypalHelper.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/paypal/paypalPayment.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/paypal/paypalSavedAccountHandler.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/src/srcAccount.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/src/srcHelper.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/src/srcPayment.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/venmo/venmoAccount.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/venmo/venmoHelper.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/braintree/venmo/venmoPayment.js","webpack:///./cartridges/org_braintree/cartridge/client/default/js/int_braintree.js","webpack:///./node_modules/lodash.merge/index.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js"],"names":["applePay","require","isValidInputField","removeActiveSessionPayment","createPaymentFormData","showCartErrorMsg","updateBillingFormValues","$applePayButton","document","querySelector","$applepayButtonsWrap","$applepayDataMethod","$emailField","$phoneField","makeApplePayButtonDisabled","classList","add","hideApplePayButton","style","display","showApplePayButton","initApplepayButton","querySelectorAll","forEach","el","$btn","JSON","parse","getAttribute","config","console","error","addEventListener","isRequiredBillingContactFields","isRequiredShippingContactFields","applePayIns","init","startPayment","updateCartApplepayAmount","loader","show","$","ajax","url","getOrderInfoUrl","type","dataType","success","data","hide","updateAmount","amount","window","location","reload","on","e","responseData","detail","billingAddressData","billingAddress","paymentMethodName","$braintreeCartButtons","placeOrderUrl","checkoutFromCartUrl","checkoutFormFields","applePayCheckoutFormData","firstName","lastName","address1","streetAddress","address2","extendedAddress","city","locality","postalCode","stateCode","region","country","countryCodeAlpha2","email","phone","paymentMethod","csrfToken","append","name","value","nonce","deviceData","stringify","shippingAddress","contentType","processData","errorMessage","fieldErrors","length","index","keys","Object","replace","serverErrors","cartError","href","redirectUrl","GAHelpers","addBillingInformation","order","log","err","setAttribute","applepayPayment","continueButton","applepayButton","authorizedApplePayPayment","applePayBillingData","storeFrontBillingData","dwfrm_billing_addressFields_firstName","dwfrm_billing_addressFields_lastName","dwfrm_billing_addressFields_address1","dwfrm_billing_addressFields_address2","dwfrm_billing_addressFields_city","dwfrm_billing_addressFields_postalCode","dwfrm_billing_addressFields_states_stateCode","state","dwfrm_billing_addressFields_country","dwfrm_billing_contactInfoFields_email","dwfrm_billing_contactInfoFields_phone","click","appleUpdateAmountData","removeSessionNonce","module","exports","braintreeUtils","loaderInstance","bu","Constructor","initParams","$errorContainer","createElement","className","$loaderContainter","parentNode","insertBefore","nextSibling","params","er","createErrorInstance","prototype","createApplePay","that","$braintreeApplePayDeviceDataInput","braintree","client","create","authorization","clientToken","clientErr","clientInstance","isFraudToolsEnabled","dataCollector","paypal","dataCollectorErr","dataCollectorInstance","applePayInstance","createApplePaySession","paymentRequest","createPaymentRequest","total","label","options","displayName","requiredBillingContactFields","requiredShippingContactFields","session","ApplePaySession","onvalidatemerchant","event","performValidation","validationURL","eventError","merchantSession","abort","completeMerchantValidation","onpaymentauthorized","tokenize","token","payment","payload","completePayment","STATUS_FAILURE","STATUS_SUCCESS","shippingContact","addressLines","administrativeArea","toUpperCase","countryCode","givenName","familyName","phoneNumber","emailAddress","billingContact","dispatchEvent","CustomEvent","begin","promise","canMakePaymentsWithActiveCard","merchantIdentifier","then","ins","extend","messages","creditcardHelper","createHostedFields","kount","hostedFields","styles","hostedFieldsStyles","fields","hostedFieldsConfig","hostedFieldsInstance","isFormValid","$cardOwnerEl","validation","remove","clearHostedFields","clear","check3dSecureAndSubmit","response","startTokenizeCb","errorCode","is3dSecureEnabled","billingData","getBillingAddressFormValues","threeDSecure","version","btError","verifyCard","bin","details","cleanAddressString","surname","additionalInformation","shippingAdditionalInfo","onLookupComplete","next","liabilityShifted","isSkip3dSecureLiabilityResult","result","secure3DFailed","createTokenizationOptions","startTokenize","cb","tokenizationOptions","postalcode","fieldsToTokenize","cardholderName","convertCardTypeToDwFormat","cardType","lastFour","expirationMonth","expirationYear","substr","creditCardFieldsCardNumber","$cardOwner","textContent","selectedCard","initFields","$container","creditcardErrorContainer","cardOwnerEvents","getHostedFieldsStyles","input","color","getHostedFieldsConfig","number","selector","cvv","expirationDate","hostedFieldsAdvancedOptions","addString","includes","split","join","getHostedFieldInstance","updateData","paypalHelper","$googlepayCartButton","$googlepayBillingButton","createGooglepay","$braintreeGooglePayDeviceDataInput","paymentsClient","google","payments","api","PaymentsClient","environment","googlePayment","googlePayVersion","googlePaymentErr","googlePaymentInstance","allowedPaymentMethods","createPaymentDataRequest","isReadyToPay","apiVersion","apiVersionMinor","onGooglePaymentButtonClicked","isAccount","zeroAmountErrorMsg","showCheckoutErrorMsg","paymentDataRequest","transactionInfo","currencyCode","currency","totalPriceStatus","totalPrice","String","shippingAddressRequired","isShippingAddressRequired","shippingAddressParameters","allowedCountryCodes","phoneNumberRequired","emailRequired","cardPaymentMethod","parameters","billingAddressRequired","billingAddressParameters","format","loadPaymentData","paymentData","parseResponse","onTokenizePayment","catch","button","createButton","onClick","appendChild","errorText","merge","scrollAnimate","element","position","offset","top","animate","scrollTop","focus","createLocalPayment","localPayment","localPaymentInstance","createLocalPaymentClickListener","emailField","preventDefault","getJSON","reqData","createRequestData","onPaymentStart","_","start","correlationId","processingMsg","finalProcessingMsg","paymentConfirmUrl","lpmName","jQuery","isEmptyObject","correlation_id","text","message","responseText","dataset","localPaymentMethodName","shippingData","recipientName","paymentType","fallback","fallbackUrl","buttonText","address","updateShippingData","localIns","updateShippingAddress","helper","applepayHelper","creditcardPayment","creditCardFields","creditCardAccount","minicartHelper","paypalAccount","paypalPayment","paypalSavedAccountHandler","local","orderStage","getElementById","pageState","sessionStorage","getItem","payByLink","$form","$cartPage","$continueButton","$summaryDetails","$addCreditCardForm","$paypalContent","$creditCardContent","$applepayContent","$braintreePaypalNonce","$minicartPopover","$creditCardList","$staticPaypalButton","$payByLinkWrapper","venmoAccount","venmoPayment","$venmoContent","googlePayAccount","googlepayPayment","$googlepayContent","$googlepayOnCart","$addGooglePayAccountForm","$braintreeGooglePayNonce","braintreeSrc","srcAccount","$addSrcAccountForm","$srcContent","$braintreeSrcNonce","$srcOnCart","NodeList","Array","bubbles","cancelable","undefined","evt","createEvent","initCustomEvent","Event","initWathcherCartUpdate","initAccountAddCreditCard","initAddGooglePayAccount","initAddSrcAccount","miniCartButton","observer","observe","childList","paymentMethodChangeHandle","makePaypalPayment","body","initCreditCardFields","initCardListAndSaveFunctionality","doNotAllowSubmitForm","continueButtonToggle","setTimeout","hide3DSecureContainer","isTrusted","checkValidity","makeCreditCardPayment","makeVenmoPayment","makeGooglepayPayment","initSrcButton","target","cardList","paypalList","changeEvent","hash","initEvent","updateCheckoutView","updatePaymentMethodTab","removeItem","paypalStaticPdpButtonHandler","staticImageHandler","initPayPalEvents","initVenmoEvents","initCardEvents","initPaypalButtonsEvents","initVenmoButtonsEvents","pid","uuid","removeFromCartUrl","$price","sdkUrlConfiguration","isZeroAmount","$braintreePDPButton","$miniCartQuantity","$addToCartButton","$paypalCartButton","$paypalBillingButton","$braintreePaypalRiskDataInput","$loaderContainer","riskData","parseInt","hidePDPButton","paypalCheckout","paypalCheckoutInstance","disabled","showPDPButton","res","pdpOnlickForAsignedPaypalPayment","cart","pliUUID","actionUrls","removeProductLineItemUrl","parseFloat","totals","grandTotal","Error","createPayment","paypalButtonConfig","locale","onApprove","intent","tokenizePayment","onCancel","a","b","urlParams","appendToUrl","spinner","stop","onError","productID","actions","contains","fetch","Urls","validateBasket","headers","json","isValid","reject","resolve","flow","createOrder","components","commit","createBillingAgreement","vault","paypalConfig","isPayPalSDKLoaded","loadPayPalSDK","Buttons","render","shippingAddressOverride","loadSrcButton","$braintreeSrcDeviceDataInput","visaCheckout","srcPaymentErr","visaCheckoutInstance","baseInitOptions","subtotal","settings","cardBrands","acceptCanadianVisaDebit","initOptions","createInitOptions","shipping","collectShipping","V","tokenizeErr","billingAddressString","userData","userEmail","$bundleItem","getOptions","$productContainer","find","map","$elOption","urlValue","val","selectedValueId","optionId","toArray","closest","form","quantity","items","childProducts","method","async","responseJSON","getSelectedData","selectEl","getElementsByTagName","option","i","selected","attributes","postData","formData","FormData","key","errorInstances","containerElement","callback","push","containerEl","msg","code","innerHTML","$braintreeVenmoRiskDataInput","createVenmo","isBrowserSupported","venmo","allowNewBrowserTab","allowDesktop","ignoreHistoryChanges","venmoErr","venmoInstance","deviceNotSupportVenmo","venmoAccountPage","processResultsDelay","handleVenmoError","handleVenmoSuccess","creditCard","submitCreditCardForm","submit","addCreditCardForm","attr","serialize","getShippingAdditionalInfo","orderAddress","workPhoneNumber","shippingGivenName","slice","shippingSurname","shippingPhone","line1","line2","$saveCreditCard","errorIns","errorData","invalidFieldKeys","braintreeType","cardOwnerUpdateClasses","setCardFields","cacheCardFields","cardNumbeberPh","cardCvvPh","cardExpirationPh","cardOwnerPh","showCardElements","cardFields","hideCardElements","getCardFieldsPH","getCardFields","cardListChange","$cardOwnerPh","$cardNumbeber","$cardNumbeberPh","$cardCvv","$cardCvvPh","$cardExpiration","$cardExpirationPh","$braintreeSaveCardContainer","$creditCardFieldsContainer","$braintree3DSecureContainer","changeCardOwnerInput","isSaveCard","checked","selectedOptions","id","updateSessionAccount","sessionOption","getSessionAccountOption","defaultOption","getOptionByDataDefault","cardFieldsPH","ccAccount","call","updateAccountsList","sessionAccount","newCCAccount","isSavedCard","removeAttribute","allowSubmitForm","isActiveCreditCardTab","getNonceUrl","cardUUID","get","stopPropagation","googlepay","submitAddGooglePayAccountForm","$btFormErrorContainer","post","done","fail","$googlepayNonce","$btGooglePayLoader","googlepayIns","saving_paypal_account_error","$btGooglepayAccountsList","$googlepayButton","$saveGooglePayAccountCheckbox","$googlepayTab","showGooglepayAccount","$sessionAccount","$gpAccount","hideShowButtons","createGooglepayBillingAddressData","paymentMethodData","info","createGooglepayShippingAddressData","$googlepayCardDescription","$braintreeGooglepayPaymentType","$googlePayBillingAddress","googlepayNonce","googlepayPaymentType","googlepayCardDescription","shippingAddressData","googlepayCheckoutFormData","setItem","newGPAccount","sessionGPAccount","googlepayUpdateAmount","$grantTotal","currentGrantTotalValue","newGrantTotalValue","updateCartTotals","flag","stage","substring","currentTab","$tabContent","tab","getPaymentMethodToLowerCase","charAt","toLocaleLowerCase","$paymentSummary","paymentOptionsSummaryMarkup","markup","outerHTML","field","braintreePaymentMethod","content","toLowerCase","children","reduce","accumulator","item","elem","lastIndexOf","isNonceExist","$nonce","nonceValue","$tab","isActiveTab","accountsLoader","removeBtPayment","UUID","newDefaultAccount","fontWeight","paymentFields","fieldsData","paymentFieldsParsed","entries","entry","setDefaultProperty","paymentMethodID","newDefaultProperty","toRemoveDefaultProperty","onclick","apply","activePaymentMethods","methodId","helpers","PayPal","Venmo","GooglePay","CreditCard","SRC","ApplePay","activePM","addClass","scrollTo","$billingFormFields","braintreeLocal","$lpmButton","updateAmountData","placeOrderButton","orderData","objectId","wrapper","payByLinkData","dropinCreateCallback","dropinInstance","requestPaymentMethod","reactSystemData","integrationData","braintreePayByLink","payByLinkAuthorize","paymentMethodNonce","merchantAccountId","merchantAccount","orderId","reference","status","dropin","BT_DROP_IN_UI_TOKEN","container","payPal","$paypalMinicartButton","btnInstance","paypalCheckoutFormFields","createBillingAddressData","paypalCheckoutFormData","createShippingAddressData","paypalHandle","paypalIns","updateCartPaypalAmount","$totalPrice","MutationObserver","mutations","mutation","addedNodes","initAddPaypalAccount","$paypalErrorContainer","$paypalLoader","accountPaypalButton","paypalAddAccountHandler","paypalAccountFormFields","paypalBillingAddressData","paypalAccountFormData","addresses","hidePaypalAccountBtn","renderAccountsUrl","tplData","showPaypalAccountBtn","$addPaypalAccountBtn","$paypalAccountWrapper","$savePaypalAccountCountainer","$savePaypalAccountCheckbox","$braintreePayPalNonce","formValidationConrol","validateActions","enable","disable","getOptionByEmail","sessionEmail","setSessionAccountOptionDefault","savedDefaultOption","initAccountListAndSaveFunctionality","$accountsList","$alertInfo","accountsListChange","isSameSessionAccount","removeEventListener","inpShippingAddress","inpBillingAddress","param","newUrl","indexOf","encodeURIComponent","showPayPalAccount","braintreePaypalEmail","braintreePaypalNonce","braintreePaypalAccount","$braintreePaypalAccountsList","customerAuthenticated","$paypalButton","$braintreePaypalNonceInput","$braintreePaypalEmail","$braintreePaypalBillingAddressInput","isSessionAccount","paypalBillingData","newPPAccount","validate","updateAmountAndShippingData","$paypalAddress","newPayPalAddress","ppAccountData","ppAccountAddressData","src","submitAddSrcAccountForm","$btSrcFormErrorContainer","srcIns","$srcNonce","$btSrcLoader","$srcSessionAccount","$srcAccountList","$srcButton","$accoutnListBlock","$saveSRCAccountCheckbox","srcUpdateAmount","setSessionAccountData","cardDescrition","updateSessionAccountDropdown","initSessionAccountDropdownState","createSrcShippingAddressData","srcHelper","$srcCardDescription","$srcBillingAddress","cardDescription","description","scrPayBillingData","srcCheckoutFormData","userFirstName","userLastName","bind","braintreeVenmo","venmoHelper","initAddVenmoAccount","$venmoErrorContainer","$venmoLoader","showVenmoAccountError","VENMO_BROWSER_NOT_SUPPORTED","accountVenmoButton","venmoAddAccountHandler","venmoAccountFormFields","venmoAccountFormData","hideVenmoAccountBtn","$addVenmoAccountBtn","showVenmoAccountBtn","$saveVenmoAccountCountainerEl","$saveVenmoAccountEl","$venmoButton","$braintreeVenmoAccount","$venmoAccount","$braintreeVenmoUserId","$venmoAccountWrapper","showVenmoAccount","createLoaderContainter","$target","hideVenmoButton","parentElement","firstElementChild","updateBillingAddressFormValues","inputNames","each","decodeURIComponent","$btVermoAccountsList","$braintreeVenmoNonce","$submitShippingBtn","$contactEmail","$hideVenmoButton","$billingForm","username","history","hashChange","attributeName","checkoutStage","oldValue","attributeOldValue","ready","LARGE_ARRAY_SIZE","HASH_UNDEFINED","HOT_COUNT","HOT_SPAN","MAX_SAFE_INTEGER","argsTag","arrayTag","asyncTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","proxyTag","regexpTag","setTag","stringTag","undefinedTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reRegExpChar","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","global","freeSelf","self","root","Function","freeExports","nodeType","freeModule","moduleExports","freeProcess","process","nodeUtil","types","binding","nodeIsTypedArray","isTypedArray","func","thisArg","args","baseTimes","n","iteratee","baseUnary","getValue","object","overArg","transform","arg","arrayProto","funcProto","objectProto","coreJsData","funcToString","toString","hasOwnProperty","maskSrcKey","uid","exec","IE_PROTO","nativeObjectToString","objectCtorString","reIsNative","RegExp","Buffer","Symbol","Uint8Array","allocUnsafe","getPrototype","getPrototypeOf","objectCreate","propertyIsEnumerable","splice","symToStringTag","toStringTag","defineProperty","getNative","nativeIsBuffer","isBuffer","nativeMax","Math","max","nativeNow","Date","now","Map","nativeCreate","baseCreate","proto","isObject","Hash","set","hashClear","__data__","size","hashDelete","has","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","pop","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArr","isArray","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","assignMergeValue","eq","baseAssignValue","assignValue","objValue","array","baseFor","createBaseFor","baseGetTag","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsNative","isMasked","pattern","isFunction","test","toSource","baseIsTypedArray","isLength","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","source","srcIndex","customizer","stack","srcValue","baseMergeDeep","newValue","safeGet","keysIn","mergeFunc","stacked","isCommon","isTyped","isArrayLikeObject","copyArray","cloneBuffer","cloneTypedArray","isPlainObject","toPlainObject","initCloneObject","baseRest","setToString","overRest","identity","baseSetToString","string","constant","buffer","isDeep","constructor","copy","cloneArrayBuffer","arrayBuffer","byteLength","typedArray","byteOffset","copyObject","props","isNew","createAssigner","assigner","sources","guard","isIterateeCall","fromRight","keysFunc","iterable","isKeyable","isOwn","tag","unmasked","isArrayLike","Ctor","arguments","otherArgs","shortOut","count","lastCalled","stamp","remaining","other","stubFalse","g","webpackPolyfill","deprecate","paths","enumerable","l"],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAI3F,WAAW,GAAGgB,eAAe,CAAC,YAAW;AAAE,SAAOoE,SAAP;AAAmB,CAAhC,EAAD,CAAf,GAAsDpE,eAAtD,GAAwE,UAASz/B,KAAT,EAAgB;AACxG,SAAO0/B,YAAY,CAAC1/B,KAAD,CAAZ,IAAuBg6B,cAAc,CAAC5V,IAAf,CAAoBpkB,KAApB,EAA2B,QAA3B,CAAvB,IACL,CAACg7B,oBAAoB,CAAC5W,IAArB,CAA0BpkB,KAA1B,EAAiC,QAAjC,CADH;AAED,CAHD;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIu+B,OAAO,GAAGnpB,KAAK,CAACmpB,OAApB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASoF,WAAT,CAAqB3jC,KAArB,EAA4B;AAC1B,SAAOA,KAAK,IAAI,IAAT,IAAiBkgC,QAAQ,CAAClgC,KAAK,CAACS,MAAP,CAAzB,IAA2C,CAACq/B,UAAU,CAAC9/B,KAAD,CAA7D;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqhC,iBAAT,CAA2BrhC,KAA3B,EAAkC;AAChC,SAAO0/B,YAAY,CAAC1/B,KAAD,CAAZ,IAAuB2jC,WAAW,CAAC3jC,KAAD,CAAzC;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIu7B,QAAQ,GAAGD,cAAc,IAAI+I,SAAjC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASvE,UAAT,CAAoB9/B,KAApB,EAA2B;AACzB,MAAI,CAACk8B,QAAQ,CAACl8B,KAAD,CAAb,EAAsB;AACpB,WAAO,KAAP;AACD,GAHwB,CAIzB;AACA;;;AACA,MAAIyjC,GAAG,GAAGnE,UAAU,CAACt/B,KAAD,CAApB;AACA,SAAOyjC,GAAG,IAAIvN,OAAP,IAAkBuN,GAAG,IAAItN,MAAzB,IAAmCsN,GAAG,IAAI3N,QAA1C,IAAsD2N,GAAG,IAAIjN,QAApE;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0J,QAAT,CAAkBlgC,KAAlB,EAAyB;AACvB,SAAO,OAAOA,KAAP,IAAgB,QAAhB,IACLA,KAAK,GAAG,CAAC,CADJ,IACSA,KAAK,GAAG,CAAR,IAAa,CADtB,IAC2BA,KAAK,IAAI21B,gBAD3C;AAED;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuG,QAAT,CAAkBl8B,KAAlB,EAAyB;AACvB,MAAIzC,IAAI,WAAUyC,KAAV,CAAR;;AACA,SAAOA,KAAK,IAAI,IAAT,KAAkBzC,IAAI,IAAI,QAAR,IAAoBA,IAAI,IAAI,UAA9C,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmiC,YAAT,CAAsB1/B,KAAtB,EAA6B;AAC3B,SAAOA,KAAK,IAAI,IAAT,IAAiB,QAAOA,KAAP,KAAgB,QAAxC;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"int_braintree.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./cartridges/org_braintree/cartridge/client/default/js/int_braintree.js\");\n","'use strict';\nvar applePay = require('../braintreeApplepay');\nvar {\n isValidInputField,\n removeActiveSessionPayment,\n createPaymentFormData,\n showCartErrorMsg,\n updateBillingFormValues\n} = require('./../helper');\n\n\nvar $applePayButton = document.querySelector('.js_braintree_applepay_button');\nvar $applepayButtonsWrap = document.querySelector('.js_braintree_applepayButtonsWrap');\nvar $applepayDataMethod = document.querySelector('.payment-options[role=tablist] .nav-item[data-method-id=\"ApplePay\"]');\nvar $emailField = document.querySelector('.contact-info-block [name=dwfrm_billing_contactInfoFields_email]');\nvar $phoneField = document.querySelector('.contact-info-block [name=dwfrm_billing_contactInfoFields_phone]');\n\nfunction makeApplePayButtonDisabled() {\n $applePayButton.classList.add('js_braintree_applepay_button_disabled');\n}\n\nfunction hideApplePayButton() {\n $applepayButtonsWrap.style.display = 'none'; // Remove the ApplePay select payment method radiobutton\n if ($applepayDataMethod) {\n $applepayDataMethod.style.display = 'none';\n }\n}\n\nfunction showApplePayButton() {\n $applepayButtonsWrap.style.display = 'block'; // Show the ApplePay select payment method radiobutton\n if ($applepayDataMethod) {\n $applepayDataMethod.style.display = 'block';\n }\n}\n\nfunction initApplepayButton() {\n document.querySelectorAll('.js_braintree_applepay_button').forEach(function (el) {\n var $btn = el;\n if (JSON.parse($btn.getAttribute('data-is-inited'))) {\n return;\n }\n var config = JSON.parse($btn.getAttribute('data-braintree-config'));\n if (typeof config !== 'object' || config === null) {\n // eslint-disable-next-line no-console\n console.error(el, 'not valid data-braintree-config');\n return;\n }\n\n $btn.addEventListener('braintree:deviceNotSupportApplePay', function () {\n hideApplePayButton();\n }, false);\n $btn.addEventListener('braintree:deviceSupportApplePay', function () {\n showApplePayButton();\n }, false);\n $btn.addEventListener('braintree:ApplePayCanNotMakePaymentWithActiveCard', function () {\n makeApplePayButtonDisabled();\n }, false);\n\n config.isRequiredBillingContactFields = true;\n config.isRequiredShippingContactFields = true;\n var applePayIns = applePay.init(config, $btn);\n\n $btn.addEventListener('click', function () {\n applePayIns.startPayment();\n });\n\n function updateCartApplepayAmount() {\n if (!applePayIns) {\n return;\n }\n applePayIns.loader.show();\n $.ajax({\n url: config.getOrderInfoUrl,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n applePayIns.loader.hide();\n applePayIns.updateAmount(data.amount);\n },\n error: function () {\n window.location.reload();\n }\n });\n return;\n }\n $('body').on('braintree:updateCartTotals', updateCartApplepayAmount);\n\n $btn.addEventListener('braintree:ApplePayPaymentAuthorized', function (e) {\n applePayIns.loader.show();\n var responseData = e.detail.data;\n var billingAddressData = responseData.billingAddress;\n\n var paymentMethodName = JSON.parse($applePayButton.getAttribute('data-braintree-config')).paymentMethodName;\n var $braintreeCartButtons = document.querySelector('.braintree-cart-buttons-wrap');\n var placeOrderUrl = $braintreeCartButtons.getAttribute('data-checkout-placeorder-url');\n var checkoutFromCartUrl = $braintreeCartButtons.getAttribute('data-checkout-from-cart-url');\n var checkoutFormFields = $braintreeCartButtons.getAttribute('data-checkout-form-fields');\n var applePayCheckoutFormData = createPaymentFormData(checkoutFormFields, {\n firstName: billingAddressData.firstName,\n lastName: billingAddressData.lastName,\n address1: billingAddressData.streetAddress,\n address2: billingAddressData.extendedAddress || '',\n city: billingAddressData.locality,\n postalCode: billingAddressData.postalCode,\n stateCode: billingAddressData.region,\n country: billingAddressData.countryCodeAlpha2,\n email: billingAddressData.email,\n phone: billingAddressData.phone,\n paymentMethod: paymentMethodName\n });\n\n var csrfToken = document.querySelector('.braintree-cart-buttons-wrap #csrf_token');\n applePayCheckoutFormData.append(csrfToken.name, csrfToken.value);\n applePayCheckoutFormData.append('braintreeApplePayNonce', responseData.nonce);\n applePayCheckoutFormData.append('braintreeApplePayDeviceDataInput', responseData.deviceData);\n applePayCheckoutFormData.append('braintreeApplePayShippingAddress',\n JSON.stringify(responseData.shippingAddress) || '{}'\n );\n\n $.ajax({\n type: 'POST',\n url: checkoutFromCartUrl,\n data: applePayCheckoutFormData,\n contentType: false,\n processData: false,\n success: function (data) {\n if (data.error) {\n var errorMessage = '';\n if (data.fieldErrors.length) {\n data.fieldErrors.forEach(function (error, index) {\n var keys = Object.keys(error);\n if (keys.length) {\n errorMessage += `${keys[index].replace('dwfrm_billing_', '').replace('_', ' ')} ${data.fieldErrors[index][keys[index]]}. `;\n }\n });\n showCartErrorMsg(errorMessage);\n }\n\n if (data.serverErrors.length) {\n data.serverErrors.forEach(function (error) {\n errorMessage += `${error}. `;\n });\n showCartErrorMsg(errorMessage);\n }\n\n if (data.cartError) {\n window.location.href = data.redirectUrl;\n }\n return;\n }\n\n try {\n const GAHelpers = window.GAHelpers || {};\n if (GAHelpers.addBillingInformation) {\n GAHelpers.addBillingInformation(data.order, 'ApplePay');\n }\n } catch (e) {\n window.console.log('Error pushing ApplePay to DataLayer - ', e)\n }\n window.location.href = placeOrderUrl;\n },\n error: function (err) {\n if (err && err.redirectUrl) {\n window.location.href = err.redirectUrl;\n }\n }\n });\n }, false);\n\n $btn.setAttribute('data-is-inited', true);\n });\n}\n\nfunction applepayPayment(continueButton) {\n var config = JSON.parse($applePayButton.getAttribute('data-braintree-config'));\n if (typeof config !== 'object' || config === null) {\n // eslint-disable-next-line no-console\n console.error($applePayButton, 'not valid data-braintree-config');\n }\n var applepayButton = $('.js_braintree_applepay_button');\n applepayButton.on('braintree:deviceNotSupportApplePay', function () {\n hideApplePayButton();\n });\n applepayButton.on('braintree:deviceSupportApplePay', function () {\n showApplePayButton();\n });\n applepayButton.on('braintree:ApplePayCanNotMakePaymentWithActiveCard', function () {\n makeApplePayButtonDisabled();\n });\n\n config.isRequiredBillingContactFields = true;\n var applePayIns = applePay.init(config, $applePayButton);\n\n function authorizedApplePayPayment(e) {\n removeActiveSessionPayment();\n applePayIns.loader.show();\n document.querySelector(('#braintreeApplePayNonce')).value = e.detail.data.nonce;\n\n // Updating Storefront Billing Form data with ApplePay Billing\n var applePayBillingData = e.detail.data.billingAddress;\n var storeFrontBillingData = JSON.parse(document.querySelector('.braintree-billing-payment-wrap').getAttribute('data-billing-form-fields-names'));\n storeFrontBillingData.dwfrm_billing_addressFields_firstName = applePayBillingData.firstName;\n storeFrontBillingData.dwfrm_billing_addressFields_lastName = applePayBillingData.lastName;\n storeFrontBillingData.dwfrm_billing_addressFields_address1 = applePayBillingData.streetAddress;\n storeFrontBillingData.dwfrm_billing_addressFields_address2 = applePayBillingData.extendedAddress || '';\n storeFrontBillingData.dwfrm_billing_addressFields_city = applePayBillingData.locality;\n storeFrontBillingData.dwfrm_billing_addressFields_postalCode = applePayBillingData.postalCode;\n storeFrontBillingData.dwfrm_billing_addressFields_states_stateCode = applePayBillingData.state;\n storeFrontBillingData.dwfrm_billing_addressFields_country = applePayBillingData.countryCodeAlpha2;\n storeFrontBillingData.dwfrm_billing_contactInfoFields_email = applePayBillingData.email;\n storeFrontBillingData.dwfrm_billing_contactInfoFields_phone = applePayBillingData.phone;\n\n updateBillingFormValues(storeFrontBillingData);\n continueButton.click();\n }\n\n if (!applePayIns) return;\n $applePayButton.addEventListener('click', function () {\n if (isValidInputField($emailField) && isValidInputField($phoneField)) {\n return applePayIns.startPayment();\n }\n });\n\n applepayButton.on('braintree:ApplePayPaymentAuthorized', authorizedApplePayPayment);\n\n function appleUpdateAmountData() { // eslint-disable-line no-inner-declarations\n applePayIns.loader.show();\n $.ajax({\n url: config.getOrderInfoUrl,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n applePayIns.loader.hide();\n applePayIns.updateAmount(data.amount);\n },\n error: function () {\n window.location.reload();\n }\n });\n }\n $('body').on('checkout:updateCheckoutView', appleUpdateAmountData);\n appleUpdateAmountData();\n}\n\n/*\n Remove method was used and change appearance of applepay tab\n**/\nfunction removeSessionNonce() {\n document.querySelector('#braintreeApplePayNonce').value = '';\n document.querySelector('#braintreeApplePayDeviceData').value = '';\n}\n\nmodule.exports = {\n initApplepayButton,\n applepayPayment,\n removeSessionNonce\n};\n","'use strict';\nvar braintreeUtils = require('./braintreeUtils');\nvar loaderInstance = require('./loaderHelper');\n/* global braintreeUtils braintree $ ApplePaySession */\n\nvar bu = braintreeUtils;\nvar loader;\n\nfunction Constructor(initParams, $btn) {\n this.$btn = $btn;\n var $errorContainer = document.createElement('div');\n $errorContainer.className = 'error';\n var $loaderContainter = document.querySelector('.braintreeApplePayLoader');\n loader = loaderInstance($loaderContainter);\n this.loader = loader;\n $btn.parentNode.insertBefore($errorContainer, $btn.nextSibling);\n this.params = initParams;\n this.er = bu.createErrorInstance($errorContainer);\n}\n\nConstructor.prototype.createApplePay = function () {\n var that = this;\n var params = that.params;\n this.$braintreeApplePayDeviceDataInput = document.querySelector('input[name=braintreeApplePayDeviceDataInput]');\n loader.show();\n\n braintree.client.create({\n authorization: bu.clientToken\n }, function (clientErr, clientInstance) {\n if (clientErr) {\n that.er.show(clientErr);\n return;\n }\n\n if (params.isFraudToolsEnabled) {\n braintree.dataCollector.create({\n client: clientInstance,\n paypal: true\n }, function (dataCollectorErr, dataCollectorInstance) {\n if (dataCollectorErr) {\n that.er.show(dataCollectorErr);\n return;\n }\n\n if (that.$braintreeApplePayDeviceDataInput) {\n that.$braintreeApplePayDeviceDataInput.value = dataCollectorInstance.deviceData;\n }\n that.loader.hide();\n });\n }\n\n braintree.applePay.create({\n client: clientInstance\n }, function (error, applePayInstance) {\n loader.hide();\n if (error) {\n that.er.show(error);\n return;\n }\n that.createApplePaySession = function () {\n var paymentRequest = applePayInstance.createPaymentRequest({\n total: {\n label: params.options.displayName,\n amount: params.options.amount\n }\n });\n if (params.isRequiredBillingContactFields) {\n paymentRequest.requiredBillingContactFields = ['postalAddress', 'name'];\n }\n if (params.isRequiredShippingContactFields) {\n paymentRequest.requiredShippingContactFields = ['postalAddress', 'name', 'phone', 'email'];\n }\n\n var session = new ApplePaySession(1, paymentRequest);\n\n session.onvalidatemerchant = function (event) {\n loader.show();\n applePayInstance.performValidation({\n validationURL: event.validationURL,\n displayName: params.options.displayName\n }, function (eventError, merchantSession) {\n loader.hide();\n if (eventError) {\n that.er.show(eventError);\n session.abort();\n return;\n }\n session.completeMerchantValidation(merchantSession);\n });\n };\n session.onpaymentauthorized = function (event) {\n loader.show();\n applePayInstance.tokenize({\n token: event.payment.token\n }, function (eventError, payload) {\n loader.hide();\n if (eventError) {\n that.er.show(eventError);\n session.completePayment(ApplePaySession.STATUS_FAILURE);\n return;\n }\n\n session.completePayment(ApplePaySession.STATUS_SUCCESS);\n\n var data = {\n event: event,\n payload: payload,\n nonce: payload.nonce,\n deviceData: document.querySelector('input[name=braintreeApplePayDeviceDataInput]').value\n };\n var shippingContact = event.payment.shippingContact;\n if (shippingContact) {\n data.shippingAddress = {\n streetAddress: shippingContact.addressLines[0],\n extendedAddress: shippingContact.addressLines[1],\n locality: shippingContact.locality,\n region: shippingContact.administrativeArea.toUpperCase(),\n postalCode: 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 } else {\n shippingContact = {\n emailAddress: document.querySelector('.contact-info-block [name=dwfrm_billing_contactInfoFields_email]').value,\n phoneNumber: document.querySelector('.contact-info-block [name=dwfrm_billing_contactInfoFields_phone]').value\n };\n }\n\n var billingContact = event.payment.billingContact;\n if (billingContact) {\n data.billingAddress = {\n streetAddress: billingContact.addressLines[0],\n extendedAddress: billingContact.addressLines[1],\n locality: billingContact.locality,\n region: billingContact.administrativeArea.toUpperCase(),\n postalCode: billingContact.postalCode,\n countryCodeAlpha2: billingContact.countryCode.toUpperCase(),\n firstName: billingContact.givenName,\n lastName: billingContact.familyName,\n email: shippingContact.emailAddress,\n phone: shippingContact.phoneNumber\n };\n }\n\n that.$btn.dispatchEvent(new CustomEvent('braintree:ApplePayPaymentAuthorized', {\n detail: {\n data: data\n }\n }));\n });\n };\n session.begin();\n };\n var promise = ApplePaySession.canMakePaymentsWithActiveCard(applePayInstance.merchantIdentifier);\n promise.then(function (canMakePaymentsWithActiveCard) {\n if (!canMakePaymentsWithActiveCard) {\n that.$btn.dispatchEvent(new CustomEvent('braintree:ApplePayCanNotMakePaymentWithActiveCard'));\n that.createApplePaySession = null;\n return;\n }\n });\n });\n });\n};\n\nConstructor.prototype.startPayment = function () {\n this.er.hide();\n if (this.createApplePaySession) {\n this.createApplePaySession();\n }\n};\n\nConstructor.prototype.updateAmount = function (amount) {\n this.params.options.amount = amount;\n};\n\nmodule.exports = {\n init: function (params, $btn) {\n if (!window.ApplePaySession) {\n $btn.dispatchEvent(new CustomEvent('braintree:deviceNotSupportApplePay'));\n return false;\n }\n $btn.dispatchEvent(new CustomEvent('braintree:deviceSupportApplePay'));\n var ins = new Constructor(params, $btn);\n bu.clientToken = params.clientToken;\n $.extend(bu.messages, params.messages);\n ins.createApplePay();\n return ins;\n }\n};\n\n","/* eslint-disable block-scoped-var */\n'use strict';\nvar braintreeUtils = require('./braintreeUtils');\nvar loaderInstance = require('./loaderHelper');\nvar creditcardHelper = require('./creditcard/creditcardHelper');\n\n/* global braintreeUtils braintree $ */\n\nvar bu = braintreeUtils;\nvar er = null;\nvar loader;\nvar params;\n\nfunction createHostedFields() {\n if (params.isFraudToolsEnabled) {\n loader.show();\n braintree.dataCollector.create({\n authorization: bu.clientToken,\n kount: true,\n paypal: false\n }, function (error, data) {\n loader.hide();\n if (error) {\n return;\n }\n document.querySelector('#braintreeDeviceData').value = data.deviceData;\n });\n }\n loader.show();\n\n braintree.hostedFields.create({\n authorization: bu.clientToken,\n styles: params.hostedFieldsStyles,\n fields: params.hostedFieldsConfig\n }, function (error, hostedFieldsInstance) {\n loader.hide();\n if (error) {\n er.show(error);\n return;\n }\n params.hostedFieldsInstance = hostedFieldsInstance;\n hostedFieldsInstance.on('validityChange', function () {\n if (params.continueButton && JSON.parse(params.continueButton.getAttribute('data-is-allow-submit-form'))) {\n params.continueButton.setAttribute('data-is-allow-submit-form', false);\n }\n });\n });\n}\n\nfunction isFormValid() {\n if (params.data && params.data.amount === 0) {\n er.show('Order total 0 is not allowed for Credit Card');\n return false;\n }\n var $cardOwnerEl = document.querySelector('#braintreeCardOwner');\n if ($cardOwnerEl.value.length === 0) {\n $cardOwnerEl.parentNode.classList.add('braintree-hosted-fields-invalid');\n er.show(params.messages.validation);\n return false;\n }\n $cardOwnerEl.parentNode.classList.remove('braintree-hosted-fields-invalid');\n er.hide();\n\n return true;\n}\n\nfunction clearHostedFields() {\n params.hostedFieldsInstance.clear('number');\n params.hostedFieldsInstance.clear('cvv');\n params.hostedFieldsInstance.clear('expirationDate');\n}\n\nfunction check3dSecureAndSubmit(response, startTokenizeCb) {\n if (!response.nonce || response.nonce === 'null') {\n document.querySelector('#braintreeCreditCardNonce').value = 'null';\n startTokenizeCb({\n error: true,\n errorCode: 'nonce_is_null'\n });\n return;\n }\n if (!params.is3dSecureEnabled) {\n document.querySelector('#braintreeCreditCardNonce').value = response.nonce;\n startTokenizeCb({\n error: false,\n errorCode: 'ok'\n });\n return;\n }\n\n loader.show();\n\n var billingData = require('./helper').getBillingAddressFormValues();\n\n braintree.threeDSecure.create({\n authorization: bu.clientToken,\n version: 2\n }, function (error, threeDSecure) {\n loader.hide();\n if (error) {\n er.show(error);\n startTokenizeCb({\n error: true,\n errorCode: 'bt_3dsecure_create_error',\n btError: error\n });\n return;\n }\n bu.threeDSecure = threeDSecure;\n loader.show();\n threeDSecure.verifyCard({\n amount: params.data.amount,\n nonce: response.nonce,\n bin: response.details ? response.details.bin : '',\n email: document.querySelector('#email').value,\n billingAddress: {\n givenName: cleanAddressString(billingData.firstName),\n surname: cleanAddressString(billingData.lastName),\n phoneNumber: cleanAddressString(billingData.phone),\n streetAddress: cleanAddressString(billingData.address1),\n extendedAddress: cleanAddressString(billingData.address2),\n locality: cleanAddressString(billingData.city),\n region: cleanAddressString(billingData.stateCode),\n postalCode: cleanAddressString(billingData.postalCode),\n countryCodeAlpha2: cleanAddressString(billingData.country)\n },\n additionalInformation: params.data.shippingAdditionalInfo,\n onLookupComplete: function (data, next) {\n next();\n }\n }, function (err, data) {\n loader.hide();\n if (err) {\n er.show(err);\n startTokenizeCb({\n error: true,\n errorCode: 'bt_3dsecure_verify_error',\n btError: err\n });\n return;\n }\n if (data.liabilityShifted || params.isSkip3dSecureLiabilityResult) {\n document.querySelector('#braintreeIs3dSecureRequired').value = 'true';\n document.querySelector('#braintreeCreditCardNonce').value = data.nonce;\n startTokenizeCb({\n error: false,\n result: 'ok'\n });\n return;\n }\n er.show(params.messages.secure3DFailed);\n startTokenizeCb({\n error: true,\n result: 'secure3DFailed'\n });\n return;\n });\n });\n}\n/**\n * Creates tokenization options for 'tokenize' function.\n * @returns {Object} Object with tokenization options.\n */\nfunction createTokenizationOptions() {\n var billingData = require('./helper').getBillingAddressFormValues();\n return {\n billingAddress: {\n firstName: cleanAddressString(billingData.firstName),\n lastName: cleanAddressString(billingData.lastName),\n streetAddress: cleanAddressString(billingData.address1),\n extendedAddress: cleanAddressString(billingData.address2),\n locality: cleanAddressString(billingData.city),\n region: cleanAddressString(billingData.stateCode),\n postalCode: cleanAddressString(billingData.postalCode),\n countryCodeAlpha2: cleanAddressString(billingData.country)\n }\n };\n}\n\nfunction startTokenize(cb, response) {\n var tokenizationOptions;\n if (response && response.nonce) {\n check3dSecureAndSubmit(response, cb);\n return;\n }\n if (!isFormValid()) {\n cb({\n error: true,\n errorCode: 'fields_not_valid'\n });\n return;\n }\n loader.show();\n\n if ($('#dwfrm_billing').length > 0) {\n tokenizationOptions = createTokenizationOptions();\n } else {\n tokenizationOptions = {\n billingAddress: {postalcode: ''},\n fieldsToTokenize: ['cvv', 'number', 'expirationYear', 'cardholderName', 'expirationMonth', 'expirationDate', 'postalCode']\n };\n }\n tokenizationOptions.cardholderName = document.querySelector('#braintreeCardOwner').getAttribute('data-new-cart-value');\n\n params.hostedFieldsInstance.tokenize(tokenizationOptions, function (error, data) {\n loader.hide();\n if (error) {\n er.show(error);\n cb({\n error: true,\n errorCode: 'bt_tokenize_error',\n btError: error\n });\n return;\n }\n if (data.type === 'CreditCard') {\n document.querySelector('#braintreeCardType').value = creditcardHelper.convertCardTypeToDwFormat(data.details.cardType);\n document.querySelector('#braintreeCardMaskNumber').value = '************' + data.details.lastFour;\n document.querySelector('#braintreeCardExpirationMonth').value = data.details.expirationMonth;\n document.querySelector('#braintreeCardExpirationYear').value = data.details.expirationYear.substr(2);\n if ($('.braintreeAddNewCardBlock').length > 0) {\n document.querySelector('#braintreeCardPostalCode').value = data.details.postalCode;\n }\n var creditCardFieldsCardNumber = document.querySelector('input[name=dwfrm_billing_creditCardFields_cardNumber]');\n if (creditCardFieldsCardNumber) {\n creditCardFieldsCardNumber.value = '************' + data.details.lastFour;\n }\n\n if (document.querySelector('.form-group.braintree_used_creditcard_account')) {\n var $cardOwner = document.querySelector('#braintreeCardOwner').getAttribute('data-new-cart-value');\n document.querySelector('#braintreeCardOwnerPh').textContent = $cardOwner;\n document.querySelector('#braintreeCardNumberPh').textContent = '************' + data.details.lastFour;\n document.querySelector('#braintreeCvvPh').textContent = '***';\n document.querySelector('#braintreeExpirationPh').textContent = data.details.expirationMonth + '/' + data.details.expirationYear.substr(2);\n\n var selectedCard = document.querySelector('#braintreeSessionCreditAccount');\n selectedCard.classList.remove('used-creditcard-account-hide');\n selectedCard.setAttribute('data-number', '************' + data.details.lastFour);\n selectedCard.setAttribute('data-expiration', data.details.expirationMonth + '/' + data.details.expirationYear.substr(2));\n selectedCard.setAttribute('data-type', creditcardHelper.convertCardTypeToDwFormat(data.details.cardType));\n selectedCard.setAttribute('data-owner', $cardOwner);\n selectedCard.setAttribute('data-nonce', data.nonce);\n }\n }\n check3dSecureAndSubmit(data, cb);\n });\n}\n\nfunction init(initParams) {\n params = initParams;\n bu.clientToken = params.clientToken;\n}\n\nfunction initFields(initParams, $container) {\n params = initParams;\n params.$container = $container;\n\n er = bu.createErrorInstance(document.querySelector('#braintreeCreditCardErrorContainer'), creditcardHelper.creditcardErrorContainer);\n loader = loaderInstance(document.querySelector('#braintreeCreditCardLoader'));\n bu.clientToken = params.clientToken;\n $.extend(bu.messages, params.messages);\n\n creditcardHelper.cardOwnerEvents();\n\n function 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 };\n }\n\n function getHostedFieldsConfig() {\n const config = {\n number: {\n selector: '#braintreeCardNumber'\n },\n cvv: {\n selector: '#braintreeCvv'\n },\n expirationDate: {\n selector: '#braintreeExpirationDate'\n }\n };\n\n if ($('.braintreeAddNewCardBlock').length > 0) {\n config.postalCode = {\n selector: '#braintreePostalCode'\n }\n }\n return config;\n }\n\n if (!params.hostedFieldsStyles) {\n params.hostedFieldsStyles = getHostedFieldsStyles();\n }\n\n params.hostedFieldsConfig = getHostedFieldsConfig();\n\n $.extend(params.hostedFieldsConfig, params.hostedFieldsAdvancedOptions);\n\n createHostedFields();\n}\n\nfunction cleanAddressString(addString) {\n var result = addString;\n if (addString) {\n if (addString.includes('%20')) {\n result = addString.split('%20').join(' ');\n } else if (addString.includes('+')) {\n result = addString.split('+').join(' ');\n }\n }\n return result;\n}\n\nmodule.exports = {\n init,\n initFields,\n startTokenize,\n isFormValid,\n getHostedFieldInstance: function () {\n return params ? params.hostedFieldsInstance : null;\n },\n updateData: function (data) {\n params.data = data;\n },\n clearHostedFields\n};\n","'use strict';\nvar braintreeUtils = require('./braintreeUtils');\nvar loaderInstance = require('./loaderHelper');\nvar paypalHelper = require('./paypal/paypalHelper');\nvar { showCartErrorMsg } = require('./helper');\n/* global braintreeUtils braintree $ Googlepay */\n\nvar bu = braintreeUtils;\nvar loader;\n\nvar $googlepayCartButton = document.querySelector('.braintree-cart-google-button');\nvar $googlepayBillingButton = document.querySelector('.braintree-billingpage-google-button');\n\nfunction Constructor(initParams, $btn) {\n this.$btn = $btn;\n var $errorContainer = document.createElement('div');\n $errorContainer.className = 'error';\n var $loaderContainter = document.querySelector('.braintreeGooglepayLoader');\n loader = loaderInstance($loaderContainter);\n this.loader = loader;\n $btn.parentNode.insertBefore($errorContainer, $btn.nextSibling);\n this.params = initParams;\n this.er = bu.createErrorInstance($errorContainer);\n}\n\nConstructor.prototype.createGooglepay = function () {\n var that = this;\n var params = that.params;\n this.$braintreeGooglePayDeviceDataInput = document.querySelector('input[name=braintreeGooglePayDeviceDataInput]');\n\n var paymentsClient = new google.payments.api.PaymentsClient({ // eslint-disable-line no-undef\n environment: 'TEST' // Or 'PRODUCTION'\n });\n\n braintree.client.create({\n authorization: params.clientToken\n }, function (clientErr, clientInstance) {\n if (clientErr) {\n that.er.show(clientErr);\n return;\n }\n if (params.isFraudToolsEnabled) {\n braintree.dataCollector.create({\n client: clientInstance,\n paypal: true\n }, function (dataCollectorErr, dataCollectorInstance) {\n if (dataCollectorErr) {\n that.er.show(dataCollectorErr);\n return;\n }\n\n if (that.$braintreeGooglePayDeviceDataInput) {\n that.$braintreeGooglePayDeviceDataInput.value = dataCollectorInstance.deviceData;\n }\n that.loader.hide();\n });\n }\n braintree.googlePayment.create({\n client: clientInstance,\n googlePayVersion: 2\n }, function (googlePaymentErr, googlePaymentInstance) {\n if (googlePaymentErr) {\n that.er.show(googlePaymentErr);\n return;\n }\n var allowedPaymentMethods = googlePaymentInstance.createPaymentDataRequest().allowedPaymentMethods;\n paymentsClient.isReadyToPay({\n // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest\n apiVersion: 2,\n apiVersionMinor: 0,\n allowedPaymentMethods: allowedPaymentMethods\n }).then(function (response) {\n if (response.result) {\n function onGooglePaymentButtonClicked() { // eslint-disable-line no-inner-declarations\n if (params.options.amount === 0 && !params.options.isAccount) {\n var zeroAmountErrorMsg = 'Order total 0 is not allowed for GooglePay';\n if ($googlepayCartButton) showCartErrorMsg(zeroAmountErrorMsg);\n if ($googlepayBillingButton) paypalHelper.showCheckoutErrorMsg(zeroAmountErrorMsg);\n return;\n }\n loader.show();\n var paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n transactionInfo: {\n currencyCode: params.options.currency,\n totalPriceStatus: 'FINAL',\n totalPrice: String(params.options.amount)\n },\n shippingAddressRequired: params.options.isShippingAddressRequired,\n shippingAddressParameters: {\n allowedCountryCodes: ['US'],\n phoneNumberRequired: true\n },\n emailRequired: true\n });\n var cardPaymentMethod = paymentDataRequest.allowedPaymentMethods[0];\n cardPaymentMethod.parameters.billingAddressRequired = true;\n cardPaymentMethod.parameters.billingAddressParameters = {\n format: 'FULL',\n phoneNumberRequired: true\n };\n paymentsClient.loadPaymentData(paymentDataRequest).then(function (paymentData) {\n googlePaymentInstance.parseResponse(paymentData, function (err, result) {\n if (err) {\n loader.hide();\n // Handle parsing error\n }\n params.onTokenizePayment(paymentData, result);\n });\n loader.hide();\n }).catch(function (err) {\n loader.hide();\n // eslint-disable-next-line no-console\n console.log(err);\n });\n }\n const button = paymentsClient.createButton({ onClick: onGooglePaymentButtonClicked });\n that.$btn.appendChild(button);\n loader.hide();\n }\n }).catch(function (err) {\n loader.hide();\n // eslint-disable-next-line no-console\n console.log(err);\n });\n });\n // Set up other Braintree components\n });\n};\n\nConstructor.prototype.updateAmount = function (amount) {\n this.params.options.amount = amount;\n};\n\nmodule.exports = {\n init: function (params, $btn) {\n bu.clientToken = params.clientToken;\n return new Constructor(params, $btn);\n }\n};\n","/* eslint-disable no-use-before-define */\n'use strict';\n\n/* global braintreeUtils braintree $ VenmoSession */\nvar braintreeUtils = require('./braintreeUtils');\nvar loaderInstance = require('./loaderHelper');\nvar paypalHelper = require('./paypal/paypalHelper');\nvar { isValidInputField } = require('./helper');\nconst errorText = 'An error occurred. Please try again later or choose different payment method.';\nvar merge = require('lodash.merge');\n\nvar bu = braintreeUtils;\nvar loader;\n\nvar scrollAnimate = function (element) {\n var position = element && element.length ? element.offset().top : 0;\n $('html, body').animate({\n scrollTop: position\n }, 500);\n if (!element) {\n $('.logo-home').focus();\n }\n}\n\nfunction Constructor(initParams, $btn) {\n this.$btn = $btn;\n var $errorContainer = document.createElement('div');\n $errorContainer.className = 'lpm-error';\n var $loaderContainter = document.querySelector('.lpmLoader');\n loader = loaderInstance($loaderContainter);\n this.loader = loader;\n $btn.parentNode.insertBefore($errorContainer, $btn.nextSibling);\n this.params = initParams;\n this.er = bu.createErrorInstance($errorContainer);\n}\n\nConstructor.prototype.createLocalPayment = function () {\n var that = this;\n var params = that.params;\n // Create a client.\n braintree.client.create({\n authorization: params.clientToken\n }).then(function (clientInstance) {\n // Create a local payment component.\n return braintree.localPayment.create({\n client: clientInstance\n });\n }).then(function (localPaymentInstance) {\n function createLocalPaymentClickListener(type) {\n var emailField = document.querySelector('#email');\n return function (event) {\n event.preventDefault();\n if (params.options.amount === 0) {\n paypalHelper.showCheckoutErrorMsg('Order total 0 is not allowed for ' + type);\n that.loader.hide();\n return;\n }\n\n if (emailField && emailField.value !== '' && !isValidInputField(emailField)) {\n that.loader.hide();\n return;\n }\n\n that.loader.show();\n document.querySelector('.processingMsg').style.display = 'block';\n $.getJSON(that.params.getOrderInfoUrl)\n .then(({ shippingAddress }) => {\n const reqData = merge(createRequestData(\n shippingAddress, that.params, type),\n { onPaymentStart: (_, start) => start() });\n // Saving shippingAddress + email in a case if startPayment will return {} details object\n that.params.shippingAddress = shippingAddress;\n that.params.shippingAddress.email = emailField.value;\n\n localPaymentInstance.startPayment(reqData).then(({ nonce, details, correlationId }) => {\n var processingMsg = document.querySelector('.processingMsg');\n var finalProcessingMsg = document.querySelector('.finalProcessingMsg');\n processingMsg.style.display = 'none';\n finalProcessingMsg.style.display = 'block';\n return $.ajax({\n url: params.paymentConfirmUrl,\n type: 'POST',\n contentType: 'application/json',\n data: JSON.stringify({\n nonce: nonce,\n lpmName: type,\n details: jQuery.isEmptyObject(details) ? that.params.shippingAddress : details,\n deviceData: JSON.stringify({ correlation_id: correlationId })\n })\n });\n }).then(({ redirectUrl }) => {\n that.loader.hide();\n window.location.href = redirectUrl;\n }).catch(function (err) {\n that.loader.hide();\n $('.error-message').show();\n $('.error-message-text').text(err.message);\n scrollAnimate($('.error-message'));\n });\n })\n .catch(function (err) {\n if (err.responseText !== '') { errorText = err.responseText; }\n that.loader.hide();\n $('.error-message').show();\n $('.error-message-text').text(errorText);\n scrollAnimate($('.error-message'));\n });\n };\n }\n var paymentMethod = that.$btn.dataset.localPaymentMethodName;\n that.$btn.addEventListener('click', createLocalPaymentClickListener(paymentMethod));\n });\n};\n\nfunction createRequestData(shippingData, params, type) {\n var email = document.querySelector('#email').value;\n var recipientName = shippingData.recipientName.split(' ');\n shippingData.firstName = recipientName[0];\n shippingData.lastName = recipientName[1];\n return {\n paymentType: type,\n amount: params.options.amount,\n fallback: {\n url: params.fallbackUrl + '?lpmName=' + type + '&email=' + email,\n buttonText: 'Complete Payment'\n },\n currencyCode: params.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}\nConstructor.prototype.updateShippingData = function () {\n var localIns = this;\n localIns.loader.show();\n return $.getJSON(localIns.params.getOrderInfoUrl);\n};\n\n\nConstructor.prototype.updateShippingAddress = function (data) {\n if (data) {\n var recipientName = data.recipientName.split(' ');\n data.firstName = recipientName[0];\n data.lastName = recipientName[1];\n this.shippingData = data;\n }\n};\n\nConstructor.prototype.updateAmount = function (amount) {\n this.params.options.amount = amount;\n};\n\nmodule.exports = {\n init: function (params, $btn) {\n bu.clientToken = params.clientToken;\n return new Constructor(params, $btn);\n }\n};\n","'use strict';\n\nmodule.exports = function () {\n /* global braintreeUtils braintree $ */\n var helper = require('./helper');\n var applepayHelper = require('./applepay/applepayHelper');\n var creditcardHelper = require('./creditcard/creditcardHelper');\n var creditcardPayment = require('./creditcard/creditcardPayment');\n var creditCardFields = require('./creditcard/creditcardFields');\n var creditCardAccount = require('./creditcard/creditcardAccount');\n var minicartHelper = require('./paypal/minicartHelper');\n var paypalAccount = require('./paypal/paypalAccount');\n var paypalPayment = require('./paypal/paypalPayment');\n var paypalSavedAccountHandler = require('./paypal/paypalSavedAccountHandler');\n var local = require('./local/localPayment'); // eslint-disable-line no-unused-vars\n var orderStage = document.getElementById('checkout-main');\n var pageState = sessionStorage.getItem('pageState');\n var payByLink = require('./paybylink/payByLink');\n\n var $form = document.querySelector('#dwfrm_billing'); // eslint-disable-line no-unused-vars\n var $cartPage = document.querySelectorAll('.cart-page');\n var $continueButton = document.querySelector('button.submit-payment');\n var $summaryDetails = document.querySelector('.summary-details .payment-details');\n var $addCreditCardForm = document.querySelector('.js_braintree_addCreditCardForm');\n var $paypalContent = document.querySelector('.js_braintree_paypalContent');\n var $creditCardContent = document.querySelector('.js_braintree_creditCardContent');\n var $applepayContent = document.querySelector('.js_braintree_applepayContent');\n var $braintreePaypalNonce = document.querySelector('#braintreePayPalNonce');\n var $minicartPopover = document.querySelector('.minicart .popover');\n var $creditCardList = document.querySelector('#braintreeCreditCardList');\n var $staticPaypalButton = document.querySelector('.braintree-static-paypal-button');\n var $payByLinkWrapper = document.querySelector('.paybylink-wrapper');\n\n var venmoAccount = require('./venmo/venmoAccount');\n var venmoPayment = require('./venmo/venmoPayment');\n var $venmoContent = document.querySelector('.js_braintree_venmoContent');\n\n var googlePayAccount = require('./googlepay/googlepayAccount');\n var googlepayPayment = require('./googlepay/googlepayPayment');\n var $googlepayContent = document.querySelector('.js_braintree_googlepayContent');\n var $googlepayOnCart = document.querySelector('.braintree-cart-google-button');\n var $addGooglePayAccountForm = document.querySelector('.js_braintree_addGooglePayAccountForm');\n var $braintreeGooglePayNonce = document.querySelector('#braintreeGooglePayNonce');\n\n var braintreeSrc = require('./src/srcPayment');\n var srcAccount = require('./src/srcAccount');\n var $addSrcAccountForm = document.querySelector('.js_braintree_addSrcAccountForm');\n var $srcContent = document.querySelector('.js_braintree_srcContent');\n var $braintreeSrcNonce = document.querySelector('#braintreeSRCNonce');\n var $srcOnCart = document.querySelector('.braintree-cart-src-button');\n\n if (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n }\n\n (function () {\n if (typeof window.CustomEvent === 'function') return false; // If not IE\n\n function CustomEvent(event, params) {\n // eslint-disable-next-line no-param-reassign\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n\n CustomEvent.prototype = window.Event.prototype;\n\n window.CustomEvent = CustomEvent;\n }());\n\n if ($cartPage) {\n helper.initWathcherCartUpdate();\n }\n\n if ($addCreditCardForm) {\n creditCardAccount.initAccountAddCreditCard();\n }\n\n if ($addGooglePayAccountForm) {\n googlePayAccount.initAddGooglePayAccount();\n }\n if ($addSrcAccountForm) {\n srcAccount.initAddSrcAccount();\n }\n\n document.addEventListener('DOMContentLoaded', function () {\n minicartHelper.miniCartButton();\n });\n\n if ($minicartPopover) {\n minicartHelper.observer.observe($minicartPopover, { childList: true });\n }\n\n helper.paymentMethodChangeHandle(document.querySelector('.payment-options[role=tablist] a.active[data-toggle=\"tab\"]'));\n\n if ($cartPage.length) {\n applepayHelper.initApplepayButton();\n }\n\n if ($paypalContent) {\n paypalPayment.makePaypalPayment($continueButton);\n document.querySelector('.paypal-tab').addEventListener('click', function (event) {\n var event = new Event('braintree:updateShippingData');\n document.body.dispatchEvent(event);\n });\n }\n\n if ($creditCardContent) {\n creditCardFields.initCreditCardFields();\n creditcardHelper.initCardListAndSaveFunctionality();\n\n $('body').on('checkout:updateCheckoutView', creditCardFields.updateData);\n\n creditCardFields.updateData();\n\n if ($creditCardList) {\n $creditCardList.addEventListener('change', function () {\n creditcardPayment.doNotAllowSubmitForm();\n });\n }\n $('body').on('braintree:3dSecure_content_shown', function () {\n helper.continueButtonToggle(false);\n });\n\n $('body').on('braintree:3dSecure_content_removed', function () {\n setTimeout(function () {\n creditcardPayment.hide3DSecureContainer();\n }, 2000);\n });\n\n $continueButton.addEventListener('click', function (event) {\n if (!event.isTrusted) {\n return;\n }\n\n if ($form.checkValidity && !$form.checkValidity()) {\n return;\n }\n\n if (document.querySelector('#selectedPaymentOption').value === 'GIFT_CERTIFICATE') {\n return;\n }\n\n helper.removeActiveSessionPayment();\n creditcardPayment.makeCreditCardPayment(event);\n });\n }\n\n if ($applepayContent) {\n applepayHelper.applepayPayment($continueButton);\n }\n\n if ($venmoContent) {\n venmoPayment.makeVenmoPayment($continueButton);\n }\n\n if ($googlepayContent || $googlepayOnCart) {\n googlepayPayment.makeGooglepayPayment($continueButton);\n }\n\n if ($srcContent || $srcOnCart) {\n braintreeSrc.initSrcButton($continueButton);\n }\n\n $('.payment-options[role=tablist] a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\n helper.paymentMethodChangeHandle(e.target);\n const cardList = document.getElementById('braintreeCreditCardList');\n const paypalList = document.getElementById('braintreePaypalAccountsList');\n var changeEvent;\n\n if (e.target.hash === '#creditcard-content' && cardList) {\n if (typeof (Event) === 'function') {\n changeEvent = new Event('changeEvent');\n cardList.addEventListener('changeEvent', function () {\n 'change';\n }, false);\n } else {\n changeEvent = document.createEvent('Event');\n changeEvent.initEvent('changeEvent', true, true);\n }\n cardList.dispatchEvent(changeEvent);\n } else if (e.target.hash === '#paypal-content' && paypalList) {\n if (typeof (Event) === 'function') {\n changeEvent = new Event('changeEvent');\n paypalList.addEventListener('changeEvent', function () {\n 'change';\n }, false);\n } else {\n changeEvent = document.createEvent('Event');\n changeEvent.initEvent('changeEvent', true, true);\n }\n paypalList.dispatchEvent(changeEvent);\n }\n });\n\n if ($summaryDetails) {\n $summaryDetails.classList.add('braintree-payment-details');\n $summaryDetails.classList.remove('payment-details');\n }\n\n $('body').on('checkout:updateCheckoutView', helper.updateCheckoutView);\n\n if ((pageState && pageState === 'cart') &&\n orderStage && orderStage.getAttribute('data-checkout-stage') === 'placeOrder') {\n helper.updatePaymentMethodTab();\n sessionStorage.removeItem('pageState');\n }\n\n if ($braintreePaypalNonce && $braintreePaypalNonce.value !== '') {\n document.querySelector('.paypal-tab').click();\n }\n\n if ($braintreeGooglePayNonce && $braintreeGooglePayNonce.value !== '') {\n document.querySelector('.googlepay-tab').click();\n }\n\n if ($braintreeSrcNonce && $braintreeSrcNonce.value !== '') {\n document.querySelector('.src-tab').click();\n }\n\n if ($staticPaypalButton) {\n paypalSavedAccountHandler.paypalStaticPdpButtonHandler();\n $staticPaypalButton.addEventListener('click', paypalSavedAccountHandler.staticImageHandler);\n }\n\n // My account page\n if (document.querySelector('.add-paypal-account')) {\n paypalAccount.initPayPalEvents();\n }\n if (document.querySelector('.add-venmo-account')) {\n venmoAccount.initVenmoEvents();\n }\n if (document.querySelector('.creditCard-accounts')) {\n helper.initCardEvents();\n }\n\n if (document.querySelector('.paypal-accounts')) {\n paypalAccount.initPaypalButtonsEvents();\n }\n if (document.querySelector('.venmo-accounts')) {\n venmoAccount.initVenmoButtonsEvents();\n }\n\n if ($payByLinkWrapper) {\n payByLink();\n }\n};\n","/* eslint-disable no-inner-declarations */\n/* eslint-disable new-cap */\n'use strict';\n\n/* global braintreeUtils braintree paypal $ */\nvar braintreeUtils = require('./braintreeUtils');\nvar loaderInstance = require('./loaderHelper');\nvar paypalHelper = require('./paypal/paypalHelper');\nvar { showCartErrorMsg } = require('./helper');\n\nvar bu = braintreeUtils;\nvar console = bu.console;\n\nvar pid;\nvar uuid;\nvar removeFromCartUrl;\nvar loader;\nvar $price;\nvar sdkUrlConfiguration;\nvar isZeroAmount = false;\nvar $braintreePDPButton = document.querySelector('.braintree_pdp_button');\nvar $miniCartQuantity = document.querySelector('.minicart-quantity');\nvar $addToCartButton = document.querySelector('.add-to-cart') || document.querySelector('.add-to-cart-global');\nvar $paypalCartButton = document.querySelector('.js_braintree_paypal_cart_button');\nvar $paypalBillingButton = document.querySelector('.js_braintree_paypal_billing_button');\n\nfunction Constructor(initParams, $btn) {\n var params = initParams;\n this.params = initParams;\n params.options = params.options || {};\n\n this.$btn = $btn;\n var $errorContainer = document.createElement('div');\n $errorContainer.className = 'error';\n\n if (params.$errorContainer) {\n $errorContainer = params.$errorContainer;\n delete params.$errorContainer;\n }\n\n var $loaderContainter = document.querySelector('.braintreePayPalLoader');\n var $braintreePaypalRiskDataInput = document.querySelector('input[name=braintreePaypalRiskData]');\n\n if (params.$loaderContainer) {\n $loaderContainter = params.$loaderContainer;\n }\n\n $btn.parentNode.insertBefore($errorContainer, $btn.nextSibling);\n\n this.er = bu.createErrorInstance($errorContainer);\n loader = loaderInstance($loaderContainter);\n this.loader = loader;\n var that = this;\n\n if (params.isFraudToolsEnabled) {\n loader.show();\n braintree.dataCollector.create({\n authorization: bu.clientToken,\n paypal: true,\n kount: false\n }, function (error, data) {\n loader.hide();\n if (error) {\n console.log(error);\n return;\n }\n if ($braintreePaypalRiskDataInput) {\n $braintreePaypalRiskDataInput.value = data.deviceData;\n }\n params.riskData = data.deviceData;\n });\n }\n\n if ($braintreePDPButton) {\n $price = document.querySelector('.price .sales .value');\n // Check minicart quantity and hide PDPbutton if it is not empty\n if (($miniCartQuantity && parseInt($miniCartQuantity.textContent, 0) > 0)\n || ($price && $price.getAttribute('content') === '0.00')) { // Check if product price is zero\n paypalHelper.hidePDPButton($braintreePDPButton);\n }\n }\n\n loader.show();\n\n braintree.client.create({\n authorization: bu.clientToken\n }).then(function (clientInstance) {\n return braintree.paypalCheckout.create({\n client: clientInstance\n });\n }).then(function (paypalCheckoutInstance) {\n if ($braintreePDPButton) {\n if ($addToCartButton.disabled) {\n paypalHelper.hidePDPButton($braintreePDPButton);\n }\n $('body').on('cart:update', function () {\n $miniCartQuantity = parseInt(document.querySelector('.minicart-quantity').textContent, 0);\n if ($addToCartButton.disabled) {\n paypalHelper.hidePDPButton($braintreePDPButton);\n }\n if ($miniCartQuantity === 0 && !$addToCartButton.disabled) {\n paypalHelper.showPDPButton($braintreePDPButton);\n }\n });\n\n $('body').on('product:afterAddToCart', function () {\n paypalHelper.hidePDPButton($braintreePDPButton);\n });\n\n // Update addToCart button status\n $('body').on('product:statusUpdate', function () {\n $miniCartQuantity = parseInt(document.querySelector('.minicart-quantity').textContent, 0);\n $price = document.querySelector('.price .sales .value');\n isZeroAmount = false;\n if ($braintreePDPButton && $price) {\n isZeroAmount = $price.getAttribute('content') === '0.00';\n }\n\n if ($miniCartQuantity === 0) {\n if ($addToCartButton.disabled || isZeroAmount) {\n paypalHelper.hidePDPButton($braintreePDPButton);\n }\n if (!$addToCartButton.disabled && !isZeroAmount) {\n paypalHelper.showPDPButton($braintreePDPButton);\n }\n }\n });\n }\n\n var payment = function () {\n if ($braintreePDPButton && $braintreePDPButton.style.display === '') {\n that.er.hide();\n var res = braintreeUtils.pdpOnlickForAsignedPaypalPayment();\n if (res.cart) {\n uuid = res.pliUUID;\n removeFromCartUrl = res.cart.actionUrls.removeProductLineItemUrl;\n pid = res.pid;\n that.params.options.amount = parseFloat(res.cart.totals.grandTotal.replace(/\\$|,/g, ''));\n } else {\n throw new Error(res.message || 'Error occurs');\n }\n }\n return paypalCheckoutInstance.createPayment(that.params.options);\n };\n\n var paypalButtonConfig = {\n locale: params.options.locale,\n onApprove: function (data) {\n if (params.options.intent === 'order') {\n data.intent = 'order';\n }\n return paypalCheckoutInstance.tokenizePayment(data).then(function (payload) {\n params.onTokenizePayment(payload, that);\n });\n },\n onCancel: function (a, b) {\n if (typeof params.options.onCancel === 'function') {\n params.options.onCancel(a, b);\n }\n if ($braintreePDPButton && $braintreePDPButton.style.display === '') {\n var urlParams = {\n pid: pid,\n uuid: uuid\n };\n\n $.ajax({\n url: paypalHelper.appendToUrl(removeFromCartUrl, urlParams),\n type: 'get',\n dataType: 'json',\n success: function () {\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n }\n },\n onError: function (err) {\n that.er.show(err.message.split(/\\r?\\n/g)[0]);\n\n if ($braintreePDPButton && $braintreePDPButton.style.display === '' && pid) {\n var productID = pid;\n var urlParams = {\n pid: productID,\n uuid: uuid\n };\n\n $.ajax({\n url: paypalHelper.appendToUrl(removeFromCartUrl, urlParams),\n type: 'get',\n dataType: 'json',\n success: function () {\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n }\n },\n onClick: function(data, actions) {\n if (!$btn.classList.contains('validate-basket')) {\n return;\n }\n return fetch(window.Urls.validateBasket, {\n headers: {\n 'content-type': 'application/json'\n }\n }).then((res) => {\n return res.json();\n }).then((data) => {\n if (!data.isValid) {\n window.location.reload();\n return actions.reject();\n } else {\n return actions.resolve();\n }\n });\n }\n };\n\n isZeroAmount = that.params.options.amount === 0;\n if (isZeroAmount) {\n var zeroAmountErrorMsg = 'Order total 0 is not allowed for PayPal';\n paypalButtonConfig.onClick = function (_, actions) {\n if ($paypalCartButton) showCartErrorMsg(zeroAmountErrorMsg);\n if ($paypalBillingButton) paypalHelper.showCheckoutErrorMsg(zeroAmountErrorMsg);\n return actions.reject();\n };\n }\n\n if (params.options && params.options.flow === 'checkout') {\n paypalButtonConfig.createOrder = payment;\n sdkUrlConfiguration = {\n intent: params.options.intent,\n currency: params.options.currency,\n components: 'buttons,messages',\n commit: false\n };\n } else {\n paypalButtonConfig.createBillingAgreement = payment;\n sdkUrlConfiguration = {\n vault: true,\n components: 'buttons,messages'\n };\n }\n\n paypalButtonConfig = $.extend(false, paypalButtonConfig, that.params.paypalConfig);\n loader.hide();\n\n if (!window.isPayPalSDKLoaded) {\n paypalCheckoutInstance.loadPayPalSDK(sdkUrlConfiguration).then(function () {\n window.isPayPalSDKLoaded = true;\n return paypal.Buttons(paypalButtonConfig).render(that.$btn);\n });\n } else {\n return paypal.Buttons(paypalButtonConfig).render(that.$btn);\n }\n }).catch(function (err) {\n console.error('Error!', err);\n loader.hide();\n });\n}\n\nConstructor.prototype.updateAmount = function (amount) {\n this.params.options.amount = amount;\n};\n\nConstructor.prototype.updateShippingAddress = function (data) {\n this.params.options.shippingAddressOverride = data;\n};\n\nmodule.exports = {\n init: function (params, $btn) {\n bu.clientToken = params.clientToken;\n $.extend(bu.messages, params.messages);\n return new Constructor(params, $btn);\n }\n};\n","/* eslint-disable no-undef */\n'use strict';\nvar braintreeUtils = require('./braintreeUtils');\nvar loaderInstance = require('./loaderHelper');\nvar bu = braintreeUtils;\nvar loader;\n\nfunction Constructor(initParams, $btn) {\n this.$btn = $btn;\n var $errorContainer = document.createElement('div');\n $errorContainer.className = 'error';\n var $loaderContainter = document.querySelector('.braintreeSrcLoader');\n loader = loaderInstance($loaderContainter);\n this.loader = loader;\n $btn.parentNode.insertBefore($errorContainer, $btn.nextSibling);\n this.params = initParams;\n this.er = bu.createErrorInstance($errorContainer);\n}\n\nConstructor.prototype.loadSrcButton = function () {\n var that = this;\n var params = that.params;\n this.$braintreeSrcDeviceDataInput = document.querySelector('input[name=braintreeSrcDeviceDataInput]');\n\n that.loader.show();\n braintree.client.create({\n authorization: params.clientToken\n }, function (clientErr, clientInstance) {\n if (clientErr) {\n that.er.show(clientErr);\n that.loader.hide();\n return;\n }\n if (params.isFraudToolsEnabled) {\n braintree.dataCollector.create({\n client: clientInstance,\n paypal: true\n }, function (dataCollectorErr, dataCollectorInstance) {\n if (dataCollectorErr) {\n that.er.show(dataCollectorErr);\n return;\n }\n\n if (that.$braintreeSrcDeviceDataInput) {\n that.$braintreeSrcDeviceDataInput.value = dataCollectorInstance.deviceData;\n }\n that.loader.hide();\n });\n }\n braintree.visaCheckout.create({\n client: clientInstance\n }, function (srcPaymentErr, visaCheckoutInstance) {\n if (srcPaymentErr) {\n that.er.show(srcPaymentErr);\n that.loader.hide();\n return;\n }\n var baseInitOptions = {\n paymentRequest: {\n currencyCode: 'USD',\n subtotal: params.options.amount\n },\n settings: {\n locale: params.settings.locale,\n payment: {\n cardBrands: params.settings.cardBrands,\n acceptCanadianVisaDebit: params.settings.acceptCanadianVisaDebit\n }\n }\n };\n\n var initOptions = visaCheckoutInstance.createInitOptions(baseInitOptions);\n initOptions.settings.shipping = {\n collectShipping: params.options.isShippingAddressRequired\n };\n V.init(initOptions);\n that.loader.hide();\n V.on('payment.success', function (payment) {\n visaCheckoutInstance.tokenize(payment, function (tokenizeErr, payload) {\n if (tokenizeErr) {\n // eslint-disable-next-line no-console\n console.error('Error during Visa Checkout tokenization', tokenizeErr);\n } else {\n var billingAddress = payload.billingAddress;\n payload.billingAddressString = JSON.stringify({\n recipientName: (billingAddress.firstName + ' ' + billingAddress.lastName),\n phone: billingAddress.phoneNumber,\n countryCodeAlpha2: billingAddress.countryCode,\n streetAddress: billingAddress.streetAddress,\n extendedAddress: billingAddress.streetAddress,\n locality: billingAddress.locality,\n region: billingAddress.region,\n postalCode: billingAddress.postalCode,\n email: payload.userData.userEmail\n });\n params.onTokenizePayment(payload);\n }\n });\n });\n });\n });\n};\n\nConstructor.prototype.updateAmount = function (amount) {\n this.params.options.amount = amount;\n};\n\nmodule.exports = {\n init: function (params, $btn) {\n bu.clientToken = params.clientToken;\n return new Constructor(params, $btn);\n }\n};\n","'use strict';\n\n/* global braintree $ */\n/* eslint no-console: 'off' */\n\nvar bu = {\n pdpOnlickForAsignedPaypalPayment: function () {\n var $bundleItem = $('.bundle-item');\n function getOptions($productContainer) {\n var options = $productContainer\n .find('.product-option')\n .map(function () {\n var $elOption = $(this).find('.options-select');\n var urlValue = $elOption.val();\n var selectedValueId = $elOption.find('option[value=\"' + urlValue + '\"]')\n .data('value-id');\n return {\n optionId: $(this).data('option-id'),\n selectedValueId: selectedValueId\n };\n }).toArray();\n\n return JSON.stringify(options);\n }\n\n var pid = $('.product-detail:not(\".bundle-item\")').data('pid');\n var $btn = $('.braintree_pdp_button');\n var $productContainer = $btn.closest('.product-detail');\n\n var form = {\n pid: pid,\n quantity: $('.quantity-select').val()\n };\n\n if (!$bundleItem.length) {\n form.options = getOptions($productContainer);\n } else {\n var items = $bundleItem.map(function () {\n return {\n pid: $(this).find('.product-id').text(),\n quantity: parseInt($(this).find('label.quantity').data('quantity'), 10)\n };\n });\n form.childProducts = JSON.stringify(items.toArray());\n }\n var response = $.ajax({\n url: $('.add-to-cart-url').val(),\n method: 'POST',\n async: false,\n data: form\n }).responseJSON;\n response.pid = pid;\n return response;\n },\n\n getSelectedData: function (selectEl) {\n if (!selectEl) {\n return null;\n }\n var options = selectEl.getElementsByTagName('option');\n var option = null;\n for (var i = 0; i < options.length; i++) {\n option = options[i];\n if (option.selected) {\n break;\n }\n }\n return option.attributes;\n },\n\n postData: function (url, data) {\n var formData = new FormData();\n\n for (var key in data) {\n formData.append(key, data[key]);\n }\n $.ajax({\n url: url,\n data: formData,\n processData: false,\n contentType: false,\n type: 'POST',\n success: function (res) {\n window.location.href = res.redirectUrl;\n },\n error: function () {\n location.reload();\n }\n });\n },\n\n messages: {},\n\n errorInstances: [],\n createErrorInstance: function (containerElement, callback) {\n if (!containerElement) {\n console.error('Braintree: No container for showing erros');\n }\n function Constructor(cb) {\n bu.errorInstances.push(this);\n this.containerEl = containerElement;\n this.cb = typeof cb === 'function' ? cb : function () { };\n }\n Constructor.prototype.show = function (error) {\n var text = '';\n if (typeof error === 'string') {\n text = error;\n }\n if (typeof error === 'object') {\n var msg = bu.messages[error.code];\n text = msg || error.message;\n this.cb(this, error);\n if (error.code === 'PAYPAL_POPUP_CLOSED') {\n return;\n }\n }\n this.containerEl.style.display = '';\n this.containerEl.innerHTML = text;\n };\n Constructor.prototype.hide = function () {\n this.containerEl.innerHTML = '';\n };\n return new Constructor(callback);\n },\n clientToken: null\n};\n\nbu.console = console;\n\nmodule.exports = bu;\n\n","/* eslint-disable no-use-before-define */\n'use strict';\n\n/* global braintreeUtils braintree $ VenmoSession */\nvar braintreeUtils = require('./braintreeUtils');\nvar loaderInstance = require('./loaderHelper');\n\nvar bu = braintreeUtils;\n\nfunction Constructor(initParams, $btn) {\n var $errorContainer = document.createElement('div');\n $errorContainer.className = 'venmo-error';\n var $loaderContainter = document.createElement('div');\n $loaderContainter.className = 'braintree-loader';\n this.$braintreeVenmoRiskDataInput = document.querySelector('input[name=braintreeVenmoRiskData]');\n\n this.$btn = $btn;\n this.params = initParams;\n\n if (initParams.$errorContainer) {\n $errorContainer = initParams.$errorContainer;\n delete initParams.$errorContainer;\n }\n\n if (initParams.$loaderContainer) {\n $loaderContainter = initParams.$loaderContainer;\n }\n\n $btn.parentNode.insertBefore($errorContainer, $btn.nextSibling);\n\n this.er = bu.createErrorInstance($errorContainer);\n this.loader = loaderInstance($loaderContainter);\n}\n\nConstructor.prototype.createVenmo = function () {\n var that = this;\n var isBrowserSupported;\n that.loader.show();\n\n braintree.client.create({\n authorization: bu.clientToken\n }, function (clientErr, clientInstance) {\n // Stop if there was a problem creating the client.\n // This could happen if there is a network error or if the authorization\n // is invalid.\n if (clientErr) {\n that.er.show(clientErr);\n return;\n }\n\n braintree.dataCollector.create({\n client: clientInstance,\n paypal: true\n }, function (dataCollectorErr, dataCollectorInstance) {\n if (dataCollectorErr) {\n that.er.show(dataCollectorErr);\n return;\n }\n\n if (that.$braintreeVenmoRiskDataInput) {\n that.$braintreeVenmoRiskDataInput.value = dataCollectorInstance.deviceData;\n }\n that.loader.hide();\n });\n\n isBrowserSupported = braintree.venmo.isBrowserSupported({\n allowNewBrowserTab: false,\n allowDesktop: true\n });\n // Verify browser support before proceeding.\n if (isBrowserSupported) {\n braintree.venmo.create({\n client: clientInstance,\n allowNewBrowserTab: false,\n ignoreHistoryChanges: true,\n allowDesktop: true\n }, function (venmoErr, venmoInstance) {\n if (venmoErr) {\n that.er.show(venmoErr);\n return;\n }\n\n // Verify browser support before proceeding.\n if (!venmoInstance.isBrowserSupported()) {\n that.params.deviceNotSupportVenmo();\n that.loader.hide();\n return;\n }\n\n that.$btn.addEventListener('click', function () {\n if (!that.params.venmoAccountPage && !that.params.onClick()) {\n return;\n }\n venmoInstance.tokenize({ processResultsDelay: 10 }, function (tokenizeErr, payload) {\n that.loader.show();\n\n if (tokenizeErr) {\n handleVenmoError(tokenizeErr);\n } else {\n handleVenmoSuccess(payload);\n }\n });\n return;\n });\n });\n } else {\n that.params.deviceNotSupportVenmo();\n that.loader.hide();\n return;\n }\n });\n\n function handleVenmoError(err) {\n that.er.show(err);\n that.loader.hide();\n }\n function handleVenmoSuccess(payload) {\n that.er.hide();\n that.params.onTokenizePayment(payload);\n that.loader.hide();\n }\n};\n\nmodule.exports = {\n init: function (params, $btn) {\n var ins = new Constructor(params, $btn);\n bu.clientToken = params.clientToken;\n return ins.createVenmo();\n }\n};\n","'use strict';\nvar creditCard = require('../braintreeCreditCard');\nvar creditCardFields = require('./creditcardFields');\n\nfunction submitCreditCardForm() {\n $('.js_braintree_addCreditCardForm').submit(function (e) {\n var addCreditCardForm = $(this);\n creditCard.startTokenize(function (result) {\n if (result.error) {\n e.preventDefault();\n return;\n }\n addCreditCardForm.spinner().start();\n $.ajax({\n url: addCreditCardForm.attr('action'),\n type: 'post',\n dataType: 'json',\n data: addCreditCardForm.serialize(),\n success: function (data) {\n addCreditCardForm.spinner().stop();\n if (!data.success) {\n document.querySelector('#braintreeCreditCardErrorContainer').textContent = data.error;\n } else {\n location.href = data.redirectUrl;\n }\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n }\n addCreditCardForm.spinner().stop();\n }\n });\n });\n return false;\n });\n}\n\nfunction initAccountAddCreditCard() {\n creditCardFields.initCreditCardFields();\n submitCreditCardForm();\n}\n\nmodule.exports = {\n initAccountAddCreditCard\n};\n","'use strict';\nvar creditCard = require('../braintreeCreditCard');\n\nvar $continueButton = document.querySelector('button.submit-payment');\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 */\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: orderAddress.postalCode,\n countryCodeAlpha2: orderAddress.countryCode\n }\n };\n}\n\nfunction updateData() {\n $.ajax({\n url: document.querySelector('.js_braintree_getOrderInfoUrl').value,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n data.shippingAdditionalInfo = data.shippingAddress ? getShippingAdditionalInfo(data.shippingAddress) : null;\n creditCard.updateData(data);\n },\n error: function () {\n window.location.reload();\n }\n });\n}\n\nfunction initCreditCardFields() {\n document.querySelectorAll('.js_braintree_creditCardFields').forEach(function (el) {\n var $container = el;\n if (JSON.parse($container.getAttribute('data-is-inited'))) {\n return;\n }\n var config = JSON.parse($container.getAttribute('data-braintree-config'));\n if (typeof config !== 'object' || config === null) {\n // eslint-disable-next-line no-console\n console.error(el, '.js_braintree_creditCardFields has not valid data-braintree-config');\n return;\n }\n config.continueButton = $continueButton;\n creditCard.initFields(config, $container);\n $container.setAttribute('data-is-inited', true);\n });\n}\n\nmodule.exports = {\n initCreditCardFields,\n getShippingAdditionalInfo,\n updateData\n};\n","'use strict';\nvar braintreeUtils = require('../braintreeUtils');\nvar bu = braintreeUtils;\nvar helper = require('../helper');\n\nvar $creditCardList = document.querySelector('#braintreeCreditCardList');\nvar $saveCreditCard = document.querySelector('#braintreeSaveCreditCard');\nvar $cardOwner = document.querySelector('#braintreeCardOwner');\n\nfunction creditcardErrorContainer(errorIns, errorData) {\n var error = errorData;\n if (error.details && error.details.invalidFieldKeys) {\n for (var i = 0; i < error.details.invalidFieldKeys.length; i++) {\n var key = error.details.invalidFieldKeys[i];\n if (key === 'number') {\n document.querySelector('#braintreeCardNumber').classList.add('braintree-hosted-fields-invalid');\n }\n if (key === 'cvv') {\n document.querySelector('#braintreeCvv').classList.add('braintree-hosted-fields-invalid');\n }\n if (key === 'expirationDate') {\n document.querySelector('#braintreeExpirationDate').classList.add('braintree-hosted-fields-invalid');\n }\n }\n }\n if (error.code === 'HOSTED_FIELDS_FIELDS_EMPTY') {\n document.querySelector('#braintreeCardNumber, #braintreeCvv, #braintreeExpirationDate').classList.add('braintree-hosted-fields-invalid');\n }\n}\n\nfunction convertCardTypeToDwFormat(braintreeType) {\n switch (braintreeType) {\n case 'American Express':\n return 'Amex';\n case 'MasterCard':\n return 'Mastercard';\n default:\n return braintreeType;\n }\n}\n\nfunction cardOwnerUpdateClasses() {\n var value = $cardOwner.value;\n if (value.length <= parseInt($cardOwner.getAttribute('maxlength'), 10) && value.length !== 0) {\n $cardOwner.parentNode.classList.add('braintree-hosted-fields-valid');\n } else {\n $cardOwner.parentNode.classList.remove('braintree-hosted-fields-valid');\n $cardOwner.parentNode.classList.remove('braintree-hosted-fields-invalid');\n }\n}\n\nfunction setCardFields(selectedCard, cacheCardFields) {\n cacheCardFields.cardNumbeberPh.textContent = selectedCard['data-number'].value;\n cacheCardFields.cardCvvPh.textContent = '***';\n cacheCardFields.cardExpirationPh.textContent = selectedCard['data-expiration'].value;\n cacheCardFields.cardOwnerPh.textContent = selectedCard['data-owner'].value;\n $cardOwner.value = selectedCard['data-owner'].value;\n document.querySelector('#braintreeCardType').value = selectedCard['data-type'].value;\n document.querySelector('#braintreeCardMaskNumber').value = selectedCard['data-number'].value;\n}\n\nfunction showCardElements(cardFields) {\n cardFields.forEach(function (el) {\n el.style.display = '';\n });\n}\n\nfunction hideCardElements(cardFields) {\n cardFields.forEach(function (el) {\n el.style.display = 'none';\n });\n}\n\nfunction getCardFieldsPH() {\n return [\n document.querySelector('#braintreeCardOwnerPh'),\n document.querySelector('#braintreeCardNumberPh'),\n document.querySelector('#braintreeExpirationPh'),\n document.querySelector('#braintreeCvvPh')\n ];\n}\n\nfunction getCardFields() {\n return [\n document.querySelector('#braintreeCardOwner'),\n document.querySelector('#braintreeExpirationDate'),\n document.querySelector('#braintreeCardNumber'),\n document.querySelector('#braintreeCvv')\n ];\n}\n\nfunction cardListChange() {\n var $cardOwnerPh = document.querySelector('#braintreeCardOwnerPh');\n var $cardNumbeber = document.querySelector('#braintreeCardNumber');\n var $cardNumbeberPh = document.querySelector('#braintreeCardNumberPh');\n var $cardCvv = document.querySelector('#braintreeCvv');\n var $cardCvvPh = document.querySelector('#braintreeCvvPh');\n var $cardExpiration = document.querySelector('#braintreeExpirationDate');\n var $cardExpirationPh = document.querySelector('#braintreeExpirationPh');\n var $braintreeSaveCardContainer = document.querySelector('#braintreeSaveCardContainer');\n var $creditCardFieldsContainer = document.querySelector('#braintreeCreditCardFieldsContainer');\n var $braintree3DSecureContainer = document.querySelector('#braintree3DSecureContainer');\n var changeCardOwnerInput;\n var selectedCard;\n var isSaveCard;\n var cacheCardFields = {\n cardNumbeberPh: $cardNumbeberPh,\n cardCvvPh: $cardCvvPh,\n cardExpirationPh: $cardExpirationPh,\n cardOwnerPh: $cardOwnerPh\n };\n var nonce;\n if ($cardOwner) {\n if (typeof (Event) === 'function') {\n changeCardOwnerInput = new Event('changeCardOwnerInput');\n $cardOwner.addEventListener('changeCardOwnerInput', function () {\n 'change';\n }, false);\n } else {\n changeCardOwnerInput = document.createEvent('Event');\n changeCardOwnerInput.initEvent('changeCardOwnerInput', true, true);\n }\n }\n\n if ($creditCardFieldsContainer) {\n $creditCardFieldsContainer.style.display = '';\n }\n if ($braintree3DSecureContainer) {\n $braintree3DSecureContainer.style.display = 'none';\n }\n\n document.querySelector('#braintreeCreditCardErrorContainer').textContent = '';\n\n if ($creditCardList.value === 'newcard') {\n hideCardElements(getCardFieldsPH());\n $cardOwner.value = $cardOwner.getAttribute('data-new-cart-value');\n $cardOwner.dispatchEvent(changeCardOwnerInput);\n $cardOwner.parentNode.classList.remove('braintree-hosted-fields-invalid');\n $cardNumbeber.parentNode.classList.remove('braintree-hosted-fields-invalid');\n $cardCvv.parentNode.classList.remove('braintree-hosted-fields-invalid');\n $cardExpiration.parentNode.classList.remove('braintree-hosted-fields-invalid');\n $cardOwner.disabled = false;\n showCardElements(getCardFields());\n cardOwnerUpdateClasses();\n if ($braintreeSaveCardContainer) {\n $braintreeSaveCardContainer.style.display = 'block';\n $saveCreditCard.checked = true;\n }\n\n document.querySelector('#braintreeCreditCardNonce').value = '';\n document.querySelector('#braintreeCardPaymentMethod').value = $creditCardList[0].getAttribute('data-payment-method');\n } else if ($creditCardList.selectedOptions[0].id === 'braintreeSessionCreditAccount') {\n selectedCard = bu.getSelectedData($creditCardList);\n nonce = selectedCard['data-nonce'].value;\n if ($braintreeSaveCardContainer) {\n $braintreeSaveCardContainer.style.display = 'block';\n isSaveCard = JSON.parse(selectedCard['data-save-card'].value);\n $braintreeSaveCardContainer.checked = isSaveCard;\n $saveCreditCard.checked = isSaveCard;\n }\n\n if (nonce) {\n document.querySelector('#braintreeCreditCardNonce').value = nonce;\n }\n\n setCardFields(selectedCard, cacheCardFields);\n $cardOwner.dispatchEvent(changeCardOwnerInput);\n $cardOwner.style.display = 'none';\n showCardElements(getCardFieldsPH());\n document.querySelector('#braintreeCardPaymentMethod').value = selectedCard['data-payment-method'].value.toUpperCase();\n } else {\n // case for saved card\n selectedCard = bu.getSelectedData($creditCardList);\n setCardFields(selectedCard, cacheCardFields);\n $cardOwner.dispatchEvent(changeCardOwnerInput);\n showCardElements(getCardFieldsPH());\n hideCardElements(getCardFields());\n $cardOwner.disabled = true;\n if ($braintreeSaveCardContainer) {\n $braintreeSaveCardContainer.style.display = 'none';\n $saveCreditCard.checked = false;\n }\n\n document.querySelector('#braintreeCreditCardNonce').value = '';\n document.querySelector('#braintreeCardPaymentMethod').value = selectedCard['data-payment-method'].value.toUpperCase();\n }\n}\n\nfunction initCardListAndSaveFunctionality() {\n if ($creditCardList) {\n $creditCardList.addEventListener('change', function () {\n cardListChange();\n });\n //Trigger the first time it's loaded as well\n cardListChange();\n } else {\n hideCardElements(getCardFieldsPH());\n }\n}\n\nfunction cardOwnerEvents() {\n $cardOwner.addEventListener('focus', function () {\n $cardOwner.parentNode.classList.add('braintree-hosted-fields-focused');\n });\n $cardOwner.addEventListener('blur', function () {\n $cardOwner.parentNode.classList.remove('braintree-hosted-fields-focused');\n });\n $cardOwner.addEventListener('keyup', function () {\n document.querySelector('#braintreeCardOwner').setAttribute('data-new-cart-value', $cardOwner.value);\n cardOwnerUpdateClasses();\n });\n $cardOwner.addEventListener('change', function () {\n cardOwnerUpdateClasses();\n });\n}\n\n/*\n Update Session account\n**/\nfunction updateSessionAccount() {\n var sessionOption = helper.getSessionAccountOption({\n querySelector: '#braintreeCreditCardList',\n id: 'braintreeSessionCreditAccount'\n });\n if (!sessionOption) { return; }\n\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 Check if creditcard method was used and change appearance of creditcard tab\n**/\nfunction removeSessionNonce() {\n updateSessionAccount();\n document.querySelector('#braintreeCreditCardNonce').value = '';\n document.querySelector('#cardNumber').value = '';\n document.querySelector('#braintreeCardMaskNumber').value = '';\n document.querySelector('#braintreeCardExpirationYear').value = '';\n document.querySelector('#braintreeCardExpirationMonth').value = '';\n document.querySelector('#braintreeCardPostalCode').value = '';\n\n var defaultOption = helper.getOptionByDataDefault('#braintreeCreditCardList');\n if (defaultOption) {\n defaultOption.selected = true;\n var selectedCard = bu.getSelectedData($creditCardList);\n var cardFieldsPH = {\n cardNumbeberPh: document.querySelector('#braintreeCardNumberPh'),\n cardCvvPh: document.querySelector('#braintreeCvvPh'),\n cardExpirationPh: document.querySelector('#braintreeExpirationPh'),\n cardOwnerPh: document.querySelector('#braintreeCardOwnerPh')\n };\n setCardFields(selectedCard, cardFieldsPH);\n $cardOwner.disabled = true;\n $saveCreditCard.checked = false;\n document.querySelector('#braintreeSaveCardContainer').style.display = 'none';\n } else {\n hideCardElements(getCardFieldsPH());\n showCardElements(getCardFields());\n var ccAccount = document.querySelector('.form-group.braintree_used_creditcard_account');\n ccAccount.classList.remove('used-creditcard-account');\n ccAccount.classList.add('used-creditcard-account-hide');\n }\n\n [].forEach.call(document.querySelector('#braintreeCreditCardList'), function (el) {\n if (el.style.display === 'none') el.style.display = 'block';\n });\n}\n\nmodule.exports = {\n creditcardErrorContainer,\n convertCardTypeToDwFormat,\n cardOwnerEvents,\n initCardListAndSaveFunctionality,\n removeSessionNonce,\n showCardElements,\n hideCardElements,\n setCardFields,\n getCardFieldsPH,\n getCardFields,\n updateSessionAccount\n};\n","'use strict';\n\nvar braintreeUtils = require('../braintreeUtils');\nvar creditCard = require('../braintreeCreditCard');\nvar helper = require('../helper');\nvar creditcardHelper = require('../creditcard/creditcardHelper');\n\nvar $continueButton = document.querySelector('button.submit-payment');\nvar $creditCardList = document.querySelector('#braintreeCreditCardList');\n\nfunction doNotAllowSubmitForm() {\n helper.continueButtonToggle(false);\n $continueButton.setAttribute('data-is-allow-submit-form', false);\n}\n\nfunction hide3DSecureContainer() {\n document.querySelector('#braintreeCreditCardFieldsContainer').style.display = '';\n document.querySelector('#braintreeSaveCardContainer').style.display = '';\n document.querySelector('#braintree3DSecureContainer').style.display = 'none';\n doNotAllowSubmitForm();\n}\n\nfunction updateAccountsList() {\n var sessionAccount = document.querySelector('#braintreeSessionCreditAccount');\n var defaultOption = helper.getOptionByDataDefault('#braintreeCreditCardList');\n if (($creditCardList && $creditCardList.value !== 'newcard')) {\n if (!sessionAccount.selected) {\n creditcardHelper.updateSessionAccount();\n }\n return;\n }\n\n var creditCardAccount = document.querySelector('.form-group.braintree_used_creditcard_account');\n var newCCAccount = document.getElementById('newCardAccount');\n if (creditCardAccount && !creditCardAccount.classList.contains('used-creditcard-account')) {\n creditCardAccount.classList.remove('used-creditcard-account-hide');\n creditCardAccount.classList.add('used-creditcard-account');\n sessionAccount.classList.remove('used-creditcard-account-hide');\n sessionAccount.classList.add('used-creditcard-account');\n } else if (sessionAccount) {\n sessionAccount.classList.remove('used-creditcard-account-hide');\n sessionAccount.classList.add('used-creditcard-account');\n }\n\n if (newCCAccount && newCCAccount.selected) {\n var isSavedCard = document.querySelector('#braintreeSaveCreditCard') ? document.querySelector('#braintreeSaveCreditCard').checked : false;\n sessionAccount.setAttribute('data-session-account', true);\n sessionAccount.setAttribute('data-save-card', isSavedCard);\n sessionAccount.textContent = sessionAccount.getAttribute('data-type') + ' ' +\n sessionAccount.getAttribute('data-number') + ' ' +\n sessionAccount.getAttribute('data-expiration') + ' ' +\n document.querySelector('#braintreeCardOwner').getAttribute('data-new-cart-value');\n sessionAccount.setAttribute('data-nonce', document.querySelector('#braintreeCreditCardNonce').value);\n\n newCCAccount.removeAttribute('selected');\n sessionAccount.selected = true;\n }\n\n if ($creditCardList && !defaultOption) {\n var selectedCard = braintreeUtils.getSelectedData($creditCardList);\n var cardFieldsPH = {\n cardOwnerPh: document.querySelector('#braintreeCardOwnerPh'),\n cardNumbeberPh: document.querySelector('#braintreeCardNumberPh'),\n cardCvvPh: document.querySelector('#braintreeCvvPh'),\n cardExpirationPh: document.querySelector('#braintreeExpirationPh')\n };\n creditcardHelper.setCardFields(selectedCard, cardFieldsPH);\n }\n\n creditCard.clearHostedFields();\n creditcardHelper.showCardElements(creditcardHelper.getCardFieldsPH());\n creditcardHelper.hideCardElements(creditcardHelper.getCardFields());\n helper.continueButtonToggle(false);\n}\n\nfunction allowSubmitForm(event) {\n $continueButton.setAttribute('data-is-allow-submit-form', true);\n updateAccountsList();\n event.target.click();\n}\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\nfunction makeCreditCardPayment(event) {\n if (!isActiveCreditCardTab()) {\n return;\n }\n\n if (JSON.parse($continueButton.getAttribute('data-is-allow-submit-form')) && creditCard.isFormValid()) {\n return;\n }\n\n if ($creditCardList) {\n var is3dSecureEnabled = JSON.parse(document.querySelector('.js_braintree_creditCardFields').getAttribute('data-braintree-config')).is3dSecureEnabled;\n if ($creditCardList && $creditCardList.value !== 'newcard') {\n if (!is3dSecureEnabled) {\n allowSubmitForm(event);\n return;\n }\n\n if ($creditCardList.value === 'sessioncard') {\n allowSubmitForm(event);\n return;\n }\n\n var selectedCard = braintreeUtils.getSelectedData($creditCardList);\n var getNonceUrl = $creditCardList.getAttribute('data-get-payment-nonce-url');\n var cardUUID = selectedCard['data-id'].value;\n $.get(`${getNonceUrl}?id=${cardUUID}`, function (response) {\n creditCard.startTokenize(function (result) {\n if (!result.error) {\n allowSubmitForm(event);\n }\n }, response);\n });\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n creditCard.startTokenize(function (result) {\n if (!result.error) allowSubmitForm(event);\n });\n event.preventDefault();\n event.stopPropagation();\n}\n\nmodule.exports = {\n doNotAllowSubmitForm,\n hide3DSecureContainer,\n makeCreditCardPayment\n};\n","'use strict';\n\nvar googlepay = require('../braintreeGooglepay');\nvar loaderInstance = require('../loaderHelper');\n\nfunction submitAddGooglePayAccountForm() {\n $('.js_braintree_addGooglePayAccountForm').submit(function () {\n var $form = $(this);\n var $btFormErrorContainer = document.querySelector('#braintreeFormErrorContainer');\n $form.spinner().start();\n\n $.post($form.attr('action'), $form.serialize())\n .done(function (data) {\n $form.spinner().stop();\n if (!data.success) {\n $btFormErrorContainer.style.display = 'block';\n $btFormErrorContainer.textContent = data.error;\n } else {\n location.href = data.redirectUrl;\n }\n })\n .fail(function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n }\n $form.spinner().stop();\n });\n return false;\n });\n}\n\nfunction initAddGooglePayAccount() {\n var $btn = document.querySelector('.js_braintree_accountgooglepay_button');\n var $googlepayNonce = document.querySelector('#braintreeGooglePayNonce');\n var $btGooglePayLoader = document.querySelector('.braintreeGooglepayLoader');\n var googlepayIns;\n var loader = loaderInstance($btGooglePayLoader);\n\n if (JSON.parse($btn.getAttribute('data-is-inited'))) {\n return;\n }\n var config = JSON.parse($btn.getAttribute('data-braintree-config'));\n\n if (typeof config !== 'object' || config === null) {\n // eslint-disable-next-line no-console\n console.error($btn, 'not valid data-braintree-config');\n return;\n }\n loader.show();\n\n config.onTokenizePayment = function (data, result) {\n var $btFormErrorContainer = document.querySelector('#braintreeFormErrorContainer');\n if ($btFormErrorContainer.style.display === 'block') {\n $btFormErrorContainer.style.display = 'none';\n $btFormErrorContainer.textContent = '';\n }\n if (result.type === 'PayPalAccount') {\n $btFormErrorContainer.style.display = 'block';\n $btFormErrorContainer.textContent = config.messages.saving_paypal_account_error;\n\n return;\n }\n\n $googlepayNonce.value = result.nonce;\n\n document.querySelector('.braintreeGooglePayBtn').click();\n };\n googlepayIns = googlepay.init(config, $btn);\n googlepayIns.createGooglepay();\n $btn.setAttribute('data-is-inited', true);\n submitAddGooglePayAccountForm();\n}\n\nmodule.exports = {\n initAddGooglePayAccount\n};\n/* eslint no-use-before-define: 2 */ // --> ON\n","'use strict';\nvar helper = require('../helper');\n\nvar $googlepayContent = document.querySelector('.js_braintree_googlepayContent');\nvar $btGooglepayAccountsList = document.querySelector('#braintreeGooglepayAccountsList');\nvar $googlepayButton = document.querySelector('.js_braintree_googlepay_button');\nvar $saveGooglePayAccountCheckbox = document.querySelector('#braintreeSaveGooglepayAccount');\nvar $googlepayTab = document.querySelector('.googlepay-tab');\n\nfunction showGooglepayAccount() {\n var $sessionAccount = document.querySelector('#sessionGPAccount');\n $sessionAccount.classList.remove('used-googlepay-account-hide');\n $sessionAccount.classList.add('used-googlepay-account');\n\n var $gpAccount = document.querySelector('.form-group.braintree_used_googlepay_account');\n $gpAccount.classList.remove('used-googlepay-account-hide');\n $gpAccount.classList.add('used-googlepay-account');\n\n $googlepayButton.style.display = 'none';\n $googlepayContent.setAttribute('data-paypal-is-hide-continue-button', false);\n helper.continueButtonToggle(false);\n}\n\nfunction hideShowButtons() {\n if ($btGooglepayAccountsList.value === 'newaccount') {\n $googlepayButton.style.display = 'block';\n if ($googlepayTab.classList.contains('active')) {\n helper.continueButtonToggle(true);\n }\n $googlepayContent.setAttribute('data-paypal-is-hide-continue-button', true);\n if ($saveGooglePayAccountCheckbox) {\n $saveGooglePayAccountCheckbox.checked = true;\n }\n } else {\n $googlepayButton.style.display = 'none';\n helper.continueButtonToggle(false);\n $googlepayContent.setAttribute('data-paypal-is-hide-continue-button', false);\n if ($saveGooglePayAccountCheckbox) {\n $saveGooglePayAccountCheckbox.checked = JSON.parse(document.querySelector('#sessionGPAccount').getAttribute('data-save'));\n }\n }\n}\n\nfunction createGooglepayBillingAddressData(data) {\n var billingData = data.paymentMethodData.info.billingAddress;\n var billingAddress = {};\n var 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 = billingData.postalCode;\n billingAddress.email = data.email;\n\n return billingAddress;\n}\n\nfunction createGooglepayShippingAddressData(shippingData) {\n var shippingAddress = {};\n var 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 = shippingData.postalCode;\n\n return shippingAddress;\n}\n\n/*\n Remove method was used and change appearance of googlepay tab\n**/\nfunction removeSessionNonce() {\n var $gpAccount = document.querySelector('.form-group.braintree_used_googlepay_account');\n $gpAccount.classList.remove('used-googlepay-account');\n $gpAccount.classList.add('used-googlepay-account-hide');\n\n var $sessionAccount = document.querySelector('#sessionGPAccount');\n $sessionAccount.classList.add('used-googlepay-account-hide');\n $sessionAccount.classList.remove('used-googlepay-account');\n $sessionAccount.value = '';\n $sessionAccount.text = '';\n $sessionAccount.setAttribute('data-session-account', false);\n $sessionAccount.setAttribute('data-save', false);\n\n document.querySelector('#braintreeGooglePayNonce').value = '';\n document.querySelector('#braintreeGooglePayBillingAddress').value = '';\n document.querySelector('#braintreeGooglepayPaymentType').value = '';\n document.querySelector('#braintreeGooglePayDeviceData').value = '';\n\n document.querySelector('#newGPAccount').selected = true;\n hideShowButtons();\n}\n\nmodule.exports = {\n showGooglepayAccount,\n createGooglepayBillingAddressData,\n createGooglepayShippingAddressData,\n removeSessionNonce,\n hideShowButtons\n};\n","'use strict';\nvar googlepay = require('../braintreeGooglepay');\nvar { hideShowButtons, createGooglepayBillingAddressData, createGooglepayShippingAddressData, showGooglepayAccount } = require('./googlepayHelper');\nvar { removeActiveSessionPayment, createPaymentFormData, showCartErrorMsg, updateBillingFormValues } = require('../helper');\n\nvar $googlepayButton = document.querySelector('.js_braintree_googlepay_button');\nvar $btGooglepayAccountsList = document.querySelector('#braintreeGooglepayAccountsList');\nvar $googlepayOnCart = document.querySelector('.braintree-cart-google-button');\nvar $googlepayNonce = document.querySelector('#braintreeGooglePayNonce');\nvar $googlepayCardDescription = document.querySelector('#braintreeGooglePayCardDescription');\nvar $braintreeGooglepayPaymentType = document.querySelector('#braintreeGooglepayPaymentType');\nvar $googlePayBillingAddress = document.querySelector('#braintreeGooglePayBillingAddress');\n\nfunction makeGooglepayPayment(continueButton) {\n var googlepayIns;\n var config = JSON.parse($googlepayButton.getAttribute('data-braintree-config'));\n if (typeof config !== 'object' || config === null) {\n // eslint-disable-next-line no-console\n console.error($googlepayButton, 'not valid data-braintree-config');\n }\n\n if ($btGooglepayAccountsList) {\n $btGooglepayAccountsList.addEventListener('change', function () {\n hideShowButtons();\n });\n hideShowButtons();\n\n if ($googlepayCardDescription.value === 'GooglePay') {\n $googlepayCardDescription.value = $btGooglepayAccountsList.selectedOptions[0].label;\n }\n }\n\n config.onTokenizePayment = function (data, result) {\n var deviceData = document.querySelector('input[name=braintreeGooglePayDeviceDataInput]').value;\n var googlepayNonce = result.nonce;\n var googlepayPaymentType = result.type;\n var googlepayCardDescription = result.details.cardType + ' ' + result.details.lastFour;\n\n removeActiveSessionPayment();\n\n if (data) {\n var billingAddressData = createGooglepayBillingAddressData(data);\n\n if ($googlepayOnCart) {\n var $braintreeCartButtons = document.querySelector('.braintree-cart-buttons-wrap');\n var placeOrderUrl = $braintreeCartButtons.getAttribute('data-checkout-placeorder-url');\n var checkoutFromCartUrl = $braintreeCartButtons.getAttribute('data-checkout-from-cart-url');\n var checkoutFormFields = $braintreeCartButtons.getAttribute('data-checkout-form-fields');\n var csrfToken = document.querySelector('.braintree-cart-buttons-wrap #csrf_token');\n var shippingAddressData = createGooglepayShippingAddressData(data.shippingAddress);\n var googlepayCheckoutFormData = createPaymentFormData(checkoutFormFields, {\n firstName: billingAddressData.firstName,\n lastName: billingAddressData.lastName,\n address1: billingAddressData.streetAddress,\n address2: billingAddressData.extendedAddress || '',\n city: billingAddressData.locality,\n postalCode: billingAddressData.postalCode,\n stateCode: billingAddressData.stateCode,\n country: billingAddressData.countryCodeAlpha2,\n email: billingAddressData.email,\n phone: billingAddressData.phone,\n paymentMethod: config.paymentMethodName\n });\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('braintreeSaveGooglepayAccount', true);\n googlepayCheckoutFormData.append('braintreeGooglePayShippingAddress', JSON.stringify(shippingAddressData) || '{}');\n\n $.ajax({\n type: 'POST',\n url: checkoutFromCartUrl,\n data: googlepayCheckoutFormData,\n contentType: false,\n processData: false,\n success: function (res) {\n if (res.error) {\n var errorMessage = '';\n if (res.fieldErrors.length) {\n res.fieldErrors.forEach(function (error, index) {\n var keys = Object.keys(error);\n if (keys.length) {\n errorMessage += `${keys[index].replace('dwfrm_billing_', '').replace('_', ' ')} ${res.fieldErrors[index][keys[index]]}. `;\n }\n });\n showCartErrorMsg(errorMessage);\n }\n\n if (res.serverErrors.length) {\n res.serverErrors.forEach(function (error) {\n errorMessage += `${error}. `;\n });\n showCartErrorMsg(errorMessage);\n }\n\n if (res.cartError) {\n window.location.href = res.redirectUrl;\n }\n return;\n }\n\n sessionStorage.setItem('pageState', 'cart');\n googlepayIns.loader.hide();\n window.location.href = placeOrderUrl;\n },\n error: function (err) {\n if (err && err.redirectUrl) {\n window.location.href = err.redirectUrl;\n }\n }\n });\n\n return;\n }\n\n $googlepayNonce.value = googlepayNonce;\n $googlepayCardDescription.value = googlepayCardDescription;\n $braintreeGooglepayPaymentType.value = googlepayPaymentType;\n\n // Updating Storefront Billing Form data with GooglePay Billing\n var storeFrontBillingData = JSON.parse(document.querySelector('.braintree-billing-payment-wrap').getAttribute('data-billing-form-fields-names'));\n storeFrontBillingData.dwfrm_billing_addressFields_firstName = billingAddressData.firstName;\n storeFrontBillingData.dwfrm_billing_addressFields_lastName = billingAddressData.lastName;\n storeFrontBillingData.dwfrm_billing_addressFields_address1 = billingAddressData.streetAddress;\n storeFrontBillingData.dwfrm_billing_addressFields_address2 = billingAddressData.extendedAddress || '';\n storeFrontBillingData.dwfrm_billing_addressFields_city = billingAddressData.locality;\n storeFrontBillingData.dwfrm_billing_addressFields_postalCode = billingAddressData.postalCode;\n storeFrontBillingData.dwfrm_billing_addressFields_states_stateCode = billingAddressData.stateCode;\n storeFrontBillingData.dwfrm_billing_addressFields_country = billingAddressData.countryCodeAlpha2;\n storeFrontBillingData.dwfrm_billing_contactInfoFields_email = billingAddressData.email;\n storeFrontBillingData.dwfrm_billing_contactInfoFields_phone = billingAddressData.phone;\n\n $googlePayBillingAddress.value = JSON.stringify(billingAddressData);\n\n updateBillingFormValues(storeFrontBillingData);\n }\n\n // selector \"new GooglePay account\" in dropdown list\n var newGPAccount = document.getElementById('newGPAccount');\n var sessionGPAccount = document.querySelector('#sessionGPAccount');\n\n // Selecting Google Pay Session Account\n sessionGPAccount.text = $googlepayCardDescription.value;\n newGPAccount.removeAttribute('selected');\n sessionGPAccount.selected = true;\n sessionGPAccount.setAttribute('data-session-account', 'true');\n\n showGooglepayAccount();\n continueButton.click();\n };\n\n googlepayIns = googlepay.init(config, $googlepayButton);\n googlepayIns.createGooglepay();\n\n function googlepayUpdateAmount() { // eslint-disable-line require-jsdoc\n googlepayIns.loader.show();\n $.ajax({\n url: config.getOrderInfoUrl,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n googlepayIns.loader.hide();\n googlepayIns.updateAmount(data.amount);\n },\n error: function () {\n window.location.reload();\n }\n });\n }\n\n $('body').on('checkout:updateCheckoutView', googlepayUpdateAmount);\n $('body').on('braintree:updateCartTotals', googlepayUpdateAmount);\n googlepayUpdateAmount();\n}\n\nmodule.exports = {\n makeGooglepayPayment\n};\n","'use strict';\nvar $continueButton = document.querySelector('button.submit-payment');\n\nfunction initWathcherCartUpdate() {\n var $grantTotal = document.querySelector('.grand-total');\n if ($grantTotal) {\n var currentGrantTotalValue = $grantTotal.textContent;\n $('body').on('cart:update', function () {\n var newGrantTotalValue = $grantTotal.textContent;\n if (newGrantTotalValue !== '' && newGrantTotalValue !== currentGrantTotalValue) {\n currentGrantTotalValue = newGrantTotalValue;\n var updateCartTotals = document.createEvent('Event');\n updateCartTotals.initEvent('updateCartTotals', true, true);\n document.querySelector('body').addEventListener('updateCartTotals', function () {\n 'braintree:updateCartTotals';\n }, false);\n document.querySelector('body').dispatchEvent(updateCartTotals);\n }\n });\n }\n}\n\nfunction continueButtonToggle(flag) {\n var stage = window.location.hash.substring(1);\n if (stage === 'placeOrder' || stage === 'shipping' || stage === null || stage === '') {\n return;\n }\n if (flag) {\n $continueButton.style.display = 'none';\n } else {\n $continueButton.style.display = '';\n }\n}\n\n\nfunction paymentMethodChangeHandle(currentTab) {\n document.querySelectorAll('.payment-options[role=tablist] a[data-toggle=\"tab\"]').forEach(function (el) {\n var $tabContent = document.querySelector(el.getAttribute('href'));\n\n if (el === currentTab) {\n $tabContent.querySelectorAll('input, textarea, select').forEach(function (tab) {\n tab.removeAttribute('disabled', 'disabled');\n });\n $tabContent.querySelectorAll('select.no-disable').forEach(function (tab) {\n tab.setAttribute('disabled', 'disabled');\n });\n continueButtonToggle(JSON.parse($tabContent.getAttribute('data-paypal-is-hide-continue-button')));\n } else {\n $tabContent.querySelectorAll('input, textarea, select').forEach(function (tab) {\n tab.setAttribute('disabled', 'disabled');\n });\n }\n });\n}\n\nfunction getPaymentMethodToLowerCase(paymentMethodName) {\n var paymentMethod = paymentMethodName.split('_');\n if (paymentMethod.length === 1) {\n return paymentMethodName;\n }\n paymentMethod.forEach(function (element, index) {\n paymentMethod[index] = element.charAt(0) + element.slice(1).toLocaleLowerCase();\n });\n return paymentMethod[1] ?\n paymentMethod[0] + ' ' + paymentMethod[1] :\n paymentMethod[0];\n}\n\nfunction updateCheckoutView(e, data) {\n var $paymentSummary = document.querySelector('.summary-details .braintree-payment-details');\n\n if (!$paymentSummary || !(data && data.order && data.order.paymentOptionsSummaryMarkup)) {\n return;\n }\n\n var markup = $(data.order.paymentOptionsSummaryMarkup).get(0).outerHTML;\n $paymentSummary.innerHTML = markup;\n}\n\nfunction isValidInputField(field) {\n if (!field.checkValidity()) {\n if (!field.classList.contains('is-invalid')) {\n field.classList.add('is-invalid');\n }\n return false;\n }\n if (field.checkValidity() && field.classList.contains('is-invalid')) {\n field.classList.remove('is-invalid');\n }\n return true;\n}\n/*\n Adding *active* line to the tab-content class in a case if it isn't already active\n Use case: customer checkout from cart (page) and\n (under the place Order page) hit the 'edit' button\n**/\nfunction updatePaymentMethodTab() {\n let paymentMethodName = document.querySelectorAll('[data-braintree-payment-method]')[0].dataset.braintreePaymentMethod;\n let content = document.querySelector(`.js_braintree_${paymentMethodName.toLowerCase()}Content`).classList.contains('active');\n if (!content) {\n document.querySelectorAll(`[data-method-id=${paymentMethodName}]`)[0].children[0].click();\n }\n}\n\n/**\n * Gets Billing Address Form Values\n *\n * @returns {Object} with Billing Address\n */\nfunction getBillingAddressFormValues() {\n return $('#dwfrm_billing').serialize().split('&')\n .map(function (el) {\n return el.split('=');\n })\n .reduce(function (accumulator, item) {\n var elem = item[0].lastIndexOf('_');\n if (elem < 0) {\n accumulator[item[0]] = item[1];\n } else {\n elem = item[0].substring(elem + 1);\n accumulator[elem] = item[1];\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 */\n\nfunction isNonceExist(paymentMethodName) {\n var $nonce = document.querySelector(`#braintree${paymentMethodName}Nonce`);\n if (!$nonce) return false;\n\n var nonceValue = $nonce.value;\n var $tab = document.querySelector(`.${paymentMethodName.toLowerCase()}-tab`);\n var isActiveTab;\n if ($tab) {\n isActiveTab = $tab.classList.contains('active');\n }\n\n return !isActiveTab && nonceValue;\n}\n\nvar loaderInstance = require('./loaderHelper');\nvar accountsLoader;\n\nfunction removeBtPayment(e) {\n let target = e.target;\n var $loaderContainter = document.querySelector('#' + target.getAttribute('data-loader'));\n accountsLoader = loaderInstance($loaderContainter);\n accountsLoader.show();\n\n $.get(target.getAttribute('data-url') + '?UUID=' + target.getAttribute('data-id'))\n .then((data => {\n $('#uuid-' + data.UUID).remove();\n if (data.newDefaultAccount) {\n document.querySelector('#uuid-' + data.newDefaultAccount + ' span').style.fontWeight = 'bold';\n document.querySelector('#uuid-' + data.newDefaultAccount + ' button.braintree-make-default-card').style.display = 'none';\n }\n accountsLoader.hide();\n }))\n .fail(() => {\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 var paymentFieldsParsed = JSON.parse(paymentFields);\n\n return Object.entries(paymentFieldsParsed).reduce(function (formData, entry) {\n const [key, field] = entry;\n if (typeof field === 'object') {\n formData.append(field.name, fieldsData && fieldsData[key] !== null ? fieldsData[key] : field.value);\n }\n return formData;\n }, new FormData());\n}\n\nfunction setDefaultProperty(params) {\n return $.get(params.url + '?UUID=' + params.id + '&pmID=' + params.paymentMethodID)\n .then((data) => {\n document.querySelector('#uuid-' + data.newDefaultProperty + ' span').style.fontWeight = 'bold';\n document.querySelector('.braintree-make-default-card.uuid-' + data.newDefaultProperty).style.display = 'none';\n document.querySelector('#uuid-' + data.toRemoveDefaultProperty + ' span').style.fontWeight = 'normal';\n document.querySelector('.braintree-make-default-card.uuid-' + data.toRemoveDefaultProperty).style.display = 'inline';\n params.loader.hide();\n })\n .fail(() => {\n params.loader.hide();\n });\n}\n\nfunction initCardEvents() {\n if (document.querySelector('.braintreeAddNewCard')) {\n document.querySelector('.braintreeAddNewCard').addEventListener('click', function () {\n document.querySelector('.braintreeAddNewCard').style.display = 'none';\n document.querySelector('.braintreeAddNewCardBlock').style.display = 'block';\n });\n }\n\n if (document.querySelector('.braintreeCancelNewCard')) {\n document.querySelector('.braintreeCancelNewCard').addEventListener('click', function () {\n document.querySelector('.braintreeAddNewCard').style.display = 'inline-block';\n document.querySelector('.braintreeAddNewCardBlock').style.display = 'none';\n });\n }\n\n document.querySelector('.creditCard-accounts').onclick = function (e) {\n if (e.target.classList.contains('remove-bt-payment')) {\n removeBtPayment(e);\n } else if (e.target.classList.contains('braintree-make-default-card')) {\n var target = e.target;\n var url = target.getAttribute('data-make-default-url');\n var id = target.getAttribute('data-id');\n var paymentMethodID = 'CARD';\n var $loaderContainter = document.querySelector('#' + target.getAttribute('data-loader'));\n var loader = loaderInstance($loaderContainter);\n loader.show();\n setDefaultProperty({\n url: url,\n id: id,\n paymentMethodID: paymentMethodID,\n loader: loader\n });\n }\n };\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)) { return null; }\n\n return Array.apply(null, document.querySelector(selector).options).find(function (el) {\n return el.getAttribute('data-default') ? JSON.parse(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 && JSON.parse(el.getAttribute('data-session-account'));\n });\n}\n\n/**\n * Remove Session Active Payment Method\n ** Use helpers to add more Payment Methods\n *\n * @returns {function}function call\n */\nfunction removeActiveSessionPayment() {\n const activePaymentMethods = [];\n document.querySelectorAll('.payment-options[role=tablist] li').forEach(function (el) {\n if (el.dataset.methodId === 'CREDIT_CARD') {\n el.dataset.methodId = 'CreditCard';\n }\n activePaymentMethods.push(el.dataset.methodId);\n });\n var helpers = {\n PayPal: require('./paypal/paypalHelper'),\n Venmo: require('./venmo/venmoHelper'),\n GooglePay: require('./googlepay/googlepayHelper'),\n CreditCard: require('./creditcard/creditcardHelper'),\n SRC: require('./src/srcHelper'),\n ApplePay: require('./applepay/applepayHelper')\n\n };\n var activePM = activePaymentMethods.find(function (el) {\n return isNonceExist(el);\n });\n if (activePM) {\n return helpers[activePM].removeSessionNonce();\n }\n}\n\nfunction showCartErrorMsg(message) {\n $('.checkout-btn').addClass('disabled');\n $('.cart-error').append(\n `