{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/applepay/applepayHelper.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeApplepay.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeCreditCard.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeGooglepay.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeLocal.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeMFRA.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreePaypal.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeSrc.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeUtils.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/braintreeVenmo.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/creditcardAccount.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/creditcardFields.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/creditcardHelper.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/creditcard/creditcardPayment.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/googlepayAccount.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/googlepayHelper.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/googlepay/googlepayPayment.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/helper.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/loaderHelper.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/local/localPayment.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/minicartHelper.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/paypalAccount.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/paypalHelper.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/paypalPayment.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/paypal/paypalSavedAccountHandler.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/src/srcAccount.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/src/srcHelper.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/src/srcPayment.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/venmoAccount.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/venmoHelper.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/braintree/venmo/venmoPayment.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/components/scrollAnimate.js","webpack:///./cartridges/int_braintree/cartridge/client/default/js/int_braintree.js"],"names":[],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFa;AACb,qBAAqB,mBAAO,CAAC,6GAAmB;AAChD,eAAe,mBAAO,CAAC,mHAAsB;AAC7C,KAAK,gDAAgD,GAAG,mBAAO,CAAC,+FAAa;;;AAG7E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtKa;AACb,qBAAqB,mBAAO,CAAC,4GAAkB;AAC/C,qBAAqB,mBAAO,CAAC,wGAAgB;AAC7C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC/LA;AACa;AACb,qBAAqB,mBAAO,CAAC,4GAAkB;AAC/C,qBAAqB,mBAAO,CAAC,wGAAgB;AAC7C,uBAAuB,mBAAO,CAAC,sIAA+B;;AAE9D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,sBAAsB,mBAAO,CAAC,4FAAU;;AAExC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA,sBAAsB,mBAAO,CAAC,4FAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;ACjUa;AACb,qBAAqB,mBAAO,CAAC,4GAAkB;AAC/C,qBAAqB,mBAAO,CAAC,wGAAgB;AAC7C,mBAAmB,mBAAO,CAAC,sHAAuB;AAClD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAiE;AACjE;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,gEAAgE,wCAAwC;AACxG;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzIA;AACa;;AAEb;AACA,qBAAqB,mBAAO,CAAC,4GAAkB;AAC/C,qBAAqB,mBAAO,CAAC,wGAAgB;AAC7C,mBAAmB,mBAAO,CAAC,sHAAuB;AAClD,KAAK,oBAAoB,GAAG,mBAAO,CAAC,4FAAU;AAC9C,oBAAoB,mBAAO,CAAC,uHAA6B;AACzD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA,6BAA6B,wCAAwC;AACrE,kGAAkG;AAClG;AACA;;AAEA,0EAA0E,gCAAgC;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gCAAgC;AAChG,iCAAiC;AACjC,6BAA6B;AAC7B,yBAAyB,SAAS,cAAc;AAChD;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,sDAAsD,8BAA8B;AACpF;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnJa;;AAEb;AACA;AACA,iBAAiB,mBAAO,CAAC,4FAAU;AACnC,yBAAyB,mBAAO,CAAC,8HAA2B;AAC5D,2BAA2B,mBAAO,CAAC,sIAA+B;AAClE,4BAA4B,mBAAO,CAAC,wIAAgC;AACpE,2BAA2B,mBAAO,CAAC,sIAA+B;AAClE,4BAA4B,mBAAO,CAAC,wIAAgC;AACpE,yBAAyB,mBAAO,CAAC,0HAAyB;AAC1D,wBAAwB,mBAAO,CAAC,wHAAwB;AACxD,wBAAwB,mBAAO,CAAC,wHAAwB;AACxD,oCAAoC,mBAAO,CAAC,gJAAoC;AAChF,gBAAgB,mBAAO,CAAC,oHAAsB,EAAE;AAChD;AACA;;AAEA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,mBAAO,CAAC,oHAAsB;AACrD,uBAAuB,mBAAO,CAAC,oHAAsB;AACrD;;AAEA,2BAA2B,mBAAO,CAAC,oIAA8B;AACjE,2BAA2B,mBAAO,CAAC,oIAA8B;AACjE;AACA;AACA;AACA;;AAEA,uBAAuB,mBAAO,CAAC,4GAAkB;AACjD,qBAAqB,mBAAO,CAAC,4GAAkB;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mEAAmE;;AAEnE;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,2DAA2D,kBAAkB;AAC7E;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrOA;AACA;;AAEa;;AAEb;AACA,qBAAqB,mBAAO,CAAC,4GAAkB;AAC/C,qBAAqB,mBAAO,CAAC,wGAAgB;AAC7C,mBAAmB,mBAAO,CAAC,sHAAuB;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtQA;AACa;AACb,qBAAqB,mBAAO,CAAC,4GAAkB;AAC/C,qBAAqB,mBAAO,CAAC,wGAAgB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChHa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,eAAe;AACf,0BAA0B,EAAE;AAC5B,4BAA4B;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;;;;;;;;;;;;;AClJA;AACa;;AAEb;AACA,qBAAqB,mBAAO,CAAC,4GAAkB;AAC/C,qBAAqB,mBAAO,CAAC,wGAAgB;;AAE7C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C,0BAA0B;AACtE;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjIa;;AAEb,iBAAiB,mBAAO,CAAC,uHAAwB;AACjD,uBAAuB,mBAAO,CAAC,2HAAoB;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC9Da;AACb,iBAAiB,mBAAO,CAAC,uHAAwB;;AAEjD;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClEa;AACb,qBAAqB,mBAAO,CAAC,6GAAmB;AAChD;AACA,aAAa,mBAAO,CAAC,6FAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,2CAA2C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB,QAAQ;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/Ra;;AAEb,qBAAqB,mBAAO,CAAC,6GAAmB;AAChD,iBAAiB,mBAAO,CAAC,uHAAwB;AACjD,aAAa,mBAAO,CAAC,6FAAW;AAChC,uBAAuB,mBAAO,CAAC,uIAAgC;;AAE/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,YAAY,MAAM,SAAS;AAChD;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxIa;;AAEb,gBAAgB,mBAAO,CAAC,qHAAuB;AAC/C,qBAAqB,mBAAO,CAAC,yGAAiB;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;AC5Ea;AACb,aAAa,mBAAO,CAAC,6FAAW;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtGa;AACb,gBAAgB,mBAAO,CAAC,qHAAuB;AAC/C,sBAAsB,mBAAO,CAAC,wHAAmB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,mBAAO,CAAC,6FAAW;;AAE3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC/Ga;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gCAAgC;AAC1F;AACA,qDAAqD,kBAAkB;AACvE;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;AAEA;AACA,qDAAqD,kBAAkB;AACvE;;AAEA;AACA,0CAA0C,gCAAgC;AAC1E;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,mBAAO,CAAC,wGAAgB;AAC7C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,4CAA4C,aAAa;;AAEzD;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB,mBAAO,CAAC,sHAAuB;AAC/C,eAAe,mBAAO,CAAC,kHAAqB;AAC5C,mBAAmB,mBAAO,CAAC,kIAA6B;AACxD,oBAAoB,mBAAO,CAAC,sIAA+B;AAC3D,aAAa,mBAAO,CAAC,0GAAiB;AACtC,kBAAkB,mBAAO,CAAC,8HAA2B;;AAErD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBa;AACb,qBAAqB,mBAAO,CAAC,6GAAmB;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACTY;;AAEb,mBAAmB,mBAAO,CAAC,+GAAgB;AAC3C,aAAa,mBAAO,CAAC,+GAAoB;AACzC,qBAAqB,mBAAO,CAAC,6GAAmB;AAChD,gCAAgC,mBAAO,CAAC,yIAA6B;;AAErE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,kJAAkJ;AAClJ;AACA;;AAEA;AACA;;AAEA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;;;ACvGa;AACb,aAAa,mBAAO,CAAC,+GAAoB;AACzC,mBAAmB,mBAAO,CAAC,+GAAgB;AAC3C,aAAa,mBAAO,CAAC,6FAAW;AAChC,qBAAqB,mBAAO,CAAC,yGAAiB;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5Ga;AACb,aAAa,mBAAO,CAAC,6FAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mGAAmG,2BAA2B,EAAE;AAChI;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5Oa;AACb,mBAAmB,mBAAO,CAAC,+GAAgB;AAC3C,aAAa,mBAAO,CAAC,6FAAW;AAChC,aAAa,mBAAO,CAAC,+GAAoB;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC1Ka;;AAEb,qBAAqB,mBAAO,CAAC,6GAAmB;AAChD,qBAAqB,mBAAO,CAAC,yGAAiB;AAC9C,KAAK,+BAA+B,GAAG,mBAAO,CAAC,+GAAgB;;AAE/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uEAAuE;AACvE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AC5FA,UAAU,mBAAO,CAAC,yGAAiB;AACnC,qBAAqB,mBAAO,CAAC,yGAAiB;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,6FAAW;AAChC;;;AAGA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxGa;AACb,UAAU,mBAAO,CAAC,yGAAiB;AACnC,gBAAgB,mBAAO,CAAC,sGAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,mBAAO,CAAC,6FAAW;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC3Ea;AACb,qBAAqB,mBAAO,CAAC,6GAAmB;AAChD,kBAAkB,mBAAO,CAAC,4GAAe;AACzC,aAAa,mBAAO,CAAC,6FAAW;AAChC,qBAAqB,mBAAO,CAAC,yGAAiB;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9Ga;AACb,aAAa,mBAAO,CAAC,6FAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sHAAsH;AACtH;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,MAAM;AAChC,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrHa;AACb,qBAAqB,mBAAO,CAAC,6GAAmB;AAChD,kBAAkB,mBAAO,CAAC,4GAAe;AACzC,qBAAqB,mBAAO,CAAC,yGAAiB;AAC9C,aAAa,mBAAO,CAAC,6FAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,kEAAkE,0BAA0B;AAC5F;;AAEA;AACA;AACA;;;;;;;;;;;;;AClHa;;AAEb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;ACVA,mBAAO,CAAC,oHAA2B","file":"default/js/int_braintree.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/int_braintree/cartridge/client/default/js/int_braintree.js\");\n","'use strict';\nvar braintreeUtils = require('../braintreeUtils');\nvar applePay = require('../braintreeApplepay');\nvar { isValidInputField, removeActiveSessionPayment } = 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('[name=dwfrm_coCustomer_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 var postData = {\n braintreeApplePayBillingAddress: JSON.stringify(e.detail.data.billingAddress),\n braintreeApplePayShippingAddress: JSON.stringify(e.detail.data.shippingAddress),\n braintreeApplePayNonce: e.detail.data.nonce,\n braintreeApplePayDeviceDataInput: document.querySelector('input[name=braintreeApplePayDeviceDataInput]').value\n };\n applePayIns.loader.show();\n braintreeUtils.postData(config.returnUrl, postData);\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 document.querySelector(('#braintreeApplePayBillingAddress')).value = JSON.stringify(e.detail.data.billingAddress);\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('#braintreeApplePayBillingAddress').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 };\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('[name=dwfrm_coCustomer_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 challengeRequested: params.data.secure,\n billingAddress: {\n givenName: billingData.firstName,\n surname: billingData.lastName,\n phoneNumber: billingData.phone,\n streetAddress: billingData.address1,\n extendedAddress: billingData.address2,\n locality: billingData.city,\n region: billingData.stateCode,\n postalCode: decodeURIComponent(billingData.postalCode),\n countryCodeAlpha2: billingData.country\n },\n additionalInformation: 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: billingData.firstName,\n lastName: billingData.lastName,\n streetAddress: billingData.address1.split('%20').join(' '),\n extendedAddress: billingData.address2 ? billingData.address2.split('%20').join(' ') : billingData.address2,\n locality: billingData.city.includes('%20') ? billingData.city.split('%20').join(' ') : billingData.city,\n region: billingData.stateCode,\n postalCode: decodeURIComponent(billingData.postalCode),\n countryCodeAlpha2: billingData.country.includes('$20') ? billingData.country.split('%20').join(' ') : 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 }\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 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 let inputs = $container.querySelectorAll('input');\n\n inputs.forEach(function(input) {\n input.addEventListener('change input', function () {\n this.parents('form-group').addClass('focused');\n });\n });\n\n function getHostedFieldsStyles() {\n return {\n input: {\n 'font-size': '16px',\n color: '#272728'\n },\n ':focus': {\n color: '#272728'\n },\n '.valid': {\n color: '#272728'\n },\n '.invalid': {\n color: 'red'\n }\n };\n }\n\n function getHostedFieldsConfig() {\n return {\n number: {\n selector: '#braintreeCardNumber'\n },\n cvv: {\n selector: '#braintreeCvv'\n },\n expirationDate: {\n selector: '#braintreeExpirationDate'\n }\n };\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\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');\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) paypalHelper.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');\nvar scrollAnimate = require('../components/scrollAnimate');\nconst errorText = 'An error occurred. Please try again later or choose different payment method.';\n\nvar bu = braintreeUtils;\nvar loader;\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 = Object.assign(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 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,\n buttonText: 'Complete Payment'\n },\n currencyCode: params.options.currency,\n shippingAddressRequired: false,\n email: document.querySelector('#email').value,\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\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\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\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 }\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 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","/* eslint-disable no-inner-declarations */\n/* eslint-disable new-cap */\n\n'use strict';\n\n/* global braintreeUtils braintree paypal $ */\nvar braintreeUtils = require('./braintreeUtils');\nvar loaderInstance = require('./loaderHelper');\nvar paypalHelper = require('./paypal/paypalHelper');\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 };\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) paypalHelper.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 'disable-funding': params.options.paypalDisableFunding\n };\n } else {\n paypalButtonConfig.createBillingAgreement = payment;\n sdkUrlConfiguration = {\n vault: true,\n components: 'buttons,messages',\n 'disable-funding': params.options.paypalDisableFunding\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: decodeURIComponent(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 isDebugMode = true;\nif (console && isDebugMode) {\n var consoleLog = console.log;\n var consoleError = console.error;\n console.log = function () {\n consoleLog.apply(console, arguments);\n };\n console.error = function () {\n consoleError.apply(console, arguments);\n };\n} else {\n console = { // eslint-disable-line no-global-assign\n log: function () { },\n error: function () { }\n };\n}\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';\n\nvar creditCard = require('../braintreeCreditCard');\nvar creditCardFields = require('./creditcardFields');\n\nfunction submitCreditCardForm(addCreditCardForm) {\n // var defaultPayment = $('#makeDefaultPayment').val();\n creditCard.startTokenize(function (result) {\n if (result.error) {\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}\nfunction creditCardForm() {\n $('.js_braintree_addCreditCardForm').submit(function (e) {\n e.preventDefault();\n var $form = $(this);\n $form.spinner().start();\n $('form.js_braintree_addCreditCardForm').trigger('js_braintree_addCreditCardForm:submit', e);\n var $recaptcha = $(this).find('[name=\"g-recaptcha-response\"]');\n if ($recaptcha.length && typeof grecaptcha !== 'undefined') {\n var siteKey = $recaptcha.data('sitekey');\n var action = $form.find('[name=\"g-recaptcha-action\"]').val();\n grecaptcha.execute(siteKey, { action: action }).then(function (token) {\n $recaptcha.val(token);\n submitCreditCardForm($form);\n });\n } else {\n submitCreditCardForm($form);\n }\n });\n}\n\nfunction initAccountAddCreditCard() {\n creditCardFields.initCreditCardFields();\n creditCardForm();\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: decodeURIComponent(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 'Master';\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.innerHTML = selectedCard['data-number'].value;\n cacheCardFields.cardCvvPh.innerHTML = '***';\n cacheCardFields.cardExpirationPh.innerHTML = selectedCard['data-expiration'].value;\n cacheCardFields.cardOwnerPh.innerHTML = 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 }\n cardListChange();\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.value = '';\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\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.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 {\n sessionAccount.classList.remove('used-creditcard-account-hide');\n sessionAccount.classList.add('used-creditcard-account');\n }\n\n if (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 (!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 (responce) {\n creditCard.startTokenize(function (result) {\n if (!result.error) {\n allowSubmitForm(event);\n }\n }, responce);\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 billingAddress.recipientName = billingData.name;\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.region = billingData.administrativeArea;\n billingAddress.postalCode = billingData.postalCode;\n billingAddress.email = data.email;\n return JSON.stringify(billingAddress);\n}\n\nfunction createGooglepayShippingAddressData(shippingData) {\n var shippingAddress = {};\n shippingAddress.recipientName = shippingData.name;\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 return JSON.stringify(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 googlepayHelper = require('./googlepayHelper');\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 $braintreeGooglepayBillingAddressInput = document.querySelector('input[name=braintreeGooglePayBillingAddress]');\nvar $braintreeGooglepayPaymentType = document.querySelector('#braintreeGooglepayPaymentType');\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 googlepayHelper.hideShowButtons();\n });\n googlepayHelper.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 billingAddressData;\n var shippingAddressData;\n var newPPAccount = document.getElementById('newGPAccount');\n var deviceData = document.querySelector('input[name=braintreeGooglePayDeviceDataInput]').value;\n require('../helper').removeActiveSessionPayment();\n\n if (data) {\n billingAddressData = googlepayHelper.createGooglepayBillingAddressData(data);\n\n if ($googlepayOnCart) {\n shippingAddressData = googlepayHelper.createGooglepayShippingAddressData(data.shippingAddress);\n\n $.ajax({\n url: config.returnFromCartUrl,\n type: 'POST',\n contentType: 'application/json',\n data: JSON.stringify({\n nonce: result.nonce,\n paymentCardDescription: result.details.cardType + ' ' + result.details.lastFour,\n billingAddress: billingAddressData,\n shippingAddress: shippingAddressData || {},\n paymentType: result.type,\n deviceData: deviceData\n }),\n success: function (res) {\n sessionStorage.setItem('pageState', 'cart');\n googlepayIns.loader.hide();\n window.location.href = res.redirectUrl;\n },\n error: function () {\n googlepayIns.loader.hide();\n }\n });\n return;\n }\n\n $braintreeGooglepayBillingAddressInput.value = billingAddressData;\n }\n\n $googlepayNonce.value = result.nonce;\n $googlepayCardDescription.value = result.details.cardType + ' ' + result.details.lastFour;\n $braintreeGooglepayPaymentType.value = result.type;\n\n // Selecting Google Pay Session Account\n document.querySelector('#sessionGPAccount').text = $googlepayCardDescription.value;\n newPPAccount.removeAttribute('selected');\n document.querySelector('#sessionGPAccount').selected = true;\n document.querySelector('#sessionGPAccount').setAttribute('data-session-account', 'true');\n\n googlepayHelper.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';\n\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\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 ($tabContent) {\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}\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 var htmlToAppend = '';\n var order = data.order;\n\n if (order.billing.payment && order.billing.payment.selectedPaymentInstruments\n && order.billing.payment.selectedPaymentInstruments.length > 0) {\n // Catch code start\n if (order.billing.payment.selectedPaymentInstruments[0].paymentMethod === 'Catch') {\n htmlToAppend += '