| Current File : /home/digitaw/www/wp-content/plugins/event-tickets/build/js/commerce/gateway/stripe/checkout.js |
window.tribe.tickets.commerce.gateway.stripe=window?.tribe?.tickets?.commerce?.gateway?.stripe||{},tribe.tickets.commerce.gateway.stripe.checkout={},((e,t,r,c)=>{"use strict";t.checkout=tecTicketsCommerceGatewayStripeCheckout,t.selectors={cardNumber:"#tec-tc-gateway-stripe-card-number",cardExpiry:"#tec-tc-gateway-stripe-card-expiry",cardCvc:"#tec-tc-gateway-stripe-card-cvc",cardZipWrapper:"#tec-tc-gateway-stripe-card-zip",cardElement:"#tec-tc-gateway-stripe-card-element",cardErrors:"#tec-tc-gateway-stripe-errors",paymentElement:"#tec-tc-gateway-stripe-payment-element",paymentMessage:"#tec-tc-gateway-stripe-payment-message",infoForm:".tribe-tickets__commerce-checkout-purchaser-info-wrapper",renderButton:"#tec-tc-gateway-stripe-render-payment",submitButton:"#tec-tc-gateway-stripe-checkout-button",hiddenElement:".tribe-common-a11y-hidden",form:".tribe-tickets__commerce-checkout-purchaser-info-wrapper__form"},t.stripeLib=r(t.checkout.publishableKey),t.stripeElements=null,t.checkoutContainer=null,t.handleErrorDisplay=(e,r=()=>{})=>{e.map((e=>t.showNotice({},"",e[1]))),r()},t.getRequestArgs=(e,r)=>{void 0===r&&(r={"X-WP-Nonce":t.checkout.nonce});const c={headers:r,hooks:{beforeRetry:[t.onBeforeRetry],beforeError:[t.onBeforeError]},timeout:3e4,throwHttpErrors:!1};return e&&(c.json=e),c},t.onBeforeRetry=async e=>(console.log(e),c.stop),t.onBeforeError=async e=>(console.log(e),c.stop),t.getWallets=()=>{const e={applePay:"never",googlePay:"never"};if(!t.checkout.wallet_settings)return e;const r=t.checkout.wallet_settings;return!0===r.apple_pay&&(e.applePay="auto"),!0===r.google_pay&&(e.googlePay="auto"),e},t.onCardChange=({error:r})=>{tribe.tickets.debug.log("stripe","cardChange",r);const c=e(t.selectors.cardErrors);r?c.text(r.message):c.text("")},t.submitButton=r=>{e(t.selectors.submitButton).prop("disabled",!r)},t.handleReceivePayment=async e=>(tribe.tickets.debug.log("stripe","handleReceivePayment",e),e.error?t.handlePaymentError(e):"succeeded"===e.paymentIntent.status?t.handlePaymentSuccess(e):void 0),t.handlePaymentError=async r=>(e(t.selectors.cardErrors).val(r.error.message),tribe.tickets.debug.log("stripe","handlePaymentError",r),r.error.payment_intent&&await t.handleUpdateOrder(r.error.payment_intent),t.handleErrorDisplay([[r.error.code,r.error.message]],(()=>{tribe.tickets.loader.hide(t.checkoutContainer)}))),t.handlePaymentSuccess=async e=>{tribe.tickets.debug.log("stripe","handlePaymentSuccess",e);const r=await t.handleUpdateOrder(e.paymentIntent);return r.redirect_url&&URL.canParse(r.redirect_url)&&(window.location=r.redirect_url),!0},t.handlePaymentDelayed=async e=>{tribe.tickets.debug.log("stripe","handlePaymentDelayed",e);const r=await t.handleUpdateOrder(e.paymentIntent);return r.redirect_url&&URL.canParse(r.redirect_url)&&(window.location=r.redirect_url),!0},t.handleUpdateOrder=async e=>{const r=t.getRequestArgs({client_secret:e.client_secret});let a;try{a=await c.post(`${t.checkout.orderEndpoint}/${e.id}`,r).json()}catch(e){a=e}return tribe.tickets.debug.log("stripe","updateOrder",a),a},t.submitMultiPayment=async r=>0===e(t.selectors.renderButton).length?t.stripeLib.confirmPayment({elements:t.stripeElements,redirect:"if_required",confirmParams:{return_url:r.return_url}}).then(t.handleConfirmPayment):t.stripeLib.confirmPayment({elements:t.stripeElements,redirect:"if_required",confirmParams:{return_url:r.return_url,shipping:{name:t.getPurchaserData().name,phone:t.getPurchaserData().phone,address:{line1:e("#tec-tc-purchaser-address1").val(),line2:e("#tec-tc-purchaser-address2").val(),city:e("#tec-tc-purchaser-city").val(),state:e("#tec-tc-purchaser-state").val(),postal_code:e("#tec-tc-purchaser-zip").val(),country:e("#tec-tc-purchaser-country").val()}}}}).then(t.handleConfirmPayment),t.handleConfirmPayment=e=>(t.submitButton(!0),e.error?t.handlePaymentError(e):"succeeded"===e.paymentIntent.status?t.handlePaymentSuccess(e):t.handlePaymentDelayed(e)),t.submitCardPayment=async()=>t.stripeLib.confirmCardPayment(t.checkout.paymentIntentData.key,{payment_method:{card:t.cardElement}}).then(t.handleConfirmCardPayment),t.handleConfirmCardPayment=e=>{if(t.submitButton(!0),!e.error)return"succeeded"===e.paymentIntent.status?t.handlePaymentSuccess(e):t.handlePaymentDelayed(e);t.handlePaymentError(e)},t.handleCreateOrder=async()=>{const e=t.getRequestArgs({purchaser:t.getPurchaserData(),payment_intent:t.checkout.paymentIntentData});let r;try{r=await c.post(t.checkout.orderEndpoint,e).json()}catch(e){if(r=e,!e.response)return tribe.tickets.debug.log("stripe","createOrder",r),r;try{r=await e.response.json()}catch(e){}}return tribe.tickets.debug.log("stripe","createOrder",r),r},t.handlePayment=async r=>{r.preventDefault(),t.checkoutContainer=e(r.target).closest(tribe.tickets.commerce.selectors.checkoutContainer),t.hideNotice(t.checkoutContainer),tribe.tickets.loader.show(t.checkoutContainer);const c=await t.handleCreateOrder();if(t.submitButton(!1),c.success)t.checkout.paymentElement?t.submitMultiPayment(c):t.submitCardPayment();else{tribe.tickets.loader.hide(t.checkoutContainer);let e=c.message||"";c.code&&(e=c.message||e),t.showNotice({},"",e)}t.submitButton(!0)},t.setupSeparateCardElement=()=>{t.cardElement=t.stripeElements.create("cardNumber",{showIcon:!0,iconStyle:"default",style:t.checkout.cardElementStyle}),t.cardElement.mount(t.selectors.cardNumber),t.cardElement.on("change",t.onCardChange),t.cardExpiry=t.stripeElements.create("cardExpiry",{style:t.checkout.cardElementStyle}),t.cardExpiry.mount(t.selectors.cardExpiry),t.cardExpiry.on("change",t.onCardChange),t.cardCvc=t.stripeElements.create("cardCvc",{style:t.checkout.cardElementStyle}),t.cardCvc.mount(t.selectors.cardCvc),t.cardCvc.on("change",t.onCardChange)},t.setupCompactCardElement=()=>{const e=t.checkout.cardElementOptions;e.style||(e.style=t.checkout.cardElementStyle),t.cardElement=t.stripeElements.create("card",e),t.cardElement.mount(t.selectors.cardElement),t.cardElement.on("change",t.onCardChange)},t.setupPaymentElement=()=>{if(0===e(t.selectors.renderButton).length){const e=t.getWallets();t.paymentElement=t.stripeElements.create("payment",{fields:{name:"auto",email:"auto",phone:"auto",address:"auto"},wallets:e}),t.paymentElement.mount(t.selectors.paymentElement)}},t.renderPayment=r=>{r.preventDefault();const c=e(t.selectors.infoForm),a=c.find("input, select");let n=!0;if(a.each(((e,r)=>{r.classList.remove("error"),r.nextElementSibling.classList.add(t.selectors.hiddenElement.className()),r.required&&""===r.value&&(n=!1,r.classList.add("error"),r.nextElementSibling.classList.remove(t.selectors.hiddenElement.className()))})),!n)return;e(t.selectors.renderButton).addClass(t.selectors.hiddenElement.className()),c.children("select, input").prop("disabled",!0),c.addClass("disabled");const s=t.getWallets();t.paymentElement=t.stripeElements.create("payment",{defaultValues:{billingDetails:{name:e("#tec-tc-purchaser-name").val(),email:e("#tec-tc-purchaser-email").val(),phone:"",address:{line1:e("#tec-tc-purchaser-address1").val(),line2:e("#tec-tc-purchaser-address2").val(),city:e("#tec-tc-purchaser-city").val(),state:e("#tec-tc-purchaser-state").val(),country:e("#tec-tc-purchaser-country").val(),postal_code:e("#tec-tc-purchaser-zip").val()}},shippingDetails:{name:e("#tec-tc-purchaser-name").val(),email:e("#tec-tc-purchaser-email").val(),phone:"",address:{line1:e("#tec-tc-purchaser-address1").val(),line2:e("#tec-tc-purchaser-address2").val(),city:e("#tec-tc-purchaser-city").val(),state:e("#tec-tc-purchaser-state").val(),country:e("#tec-tc-purchaser-country").val(),postal_code:e("#tec-tc-purchaser-zip").val()}}},wallets:s}),t.paymentElement.mount(t.selectors.paymentElement),setTimeout((()=>{e(".tribe-tickets__commerce-checkout-gateways").get(0).scrollIntoView({behavior:"smooth"}),e(t.selectors.submitButton).removeClass(t.selectors.hiddenElement.className()),e(".tribe-tickets__commerce-checkout-section-header").removeClass(t.selectors.hiddenElement.className())}),2e3)},t.setupStripe=async()=>{if(0!==t.checkout.paymentIntentData.length){if(t.checkout.paymentIntentData.errors)return t.submitButton(!1),e(t.selectors.submitButton).addClass(t.selectors.hiddenElement.className()),t.handleErrorDisplay(t.checkout.paymentIntentData.errors);if(t.stripeElements=t.stripeLib.elements({clientSecret:t.checkout.paymentIntentData.key,appearance:t.checkout.elementsAppearance}),t.checkout.paymentElement)return 0===e(t.selectors.renderButton).length&&e(t.selectors.submitButton).removeClass(t.selectors.hiddenElement.className()),void t.setupPaymentElement();e(t.selectors.submitButton).removeClass(t.selectors.hiddenElement.className()),"separate"===t.checkout.cardElementType?t.setupSeparateCardElement():"compact"===t.checkout.cardElementType&&t.setupCompactCardElement()}},t.getPurchaserData=()=>tribe.tickets.commerce.getPurchaserData(e(tribe.tickets.commerce.selectors.purchaserFormContainer)),t.showNotice=(t,r,c)=>{t&&t.length||(t=e(tribe.tickets.commerce.selectors.checkoutContainer));const a=tribe.tickets.commerce.notice,n=t.find(a.selectors.item);a.populate(n,r,c),a.show(n)},t.hideNotice=t=>{t.length||(t=e(tribe.tickets.commerce.selectors.checkoutContainer));const r=tribe.tickets.commerce.notice,c=t.find(r.selectors.item);r.hide(c)},t.bindEvents=()=>{e(document).on("submit",t.selectors.form,t.renderPayment),e(document).on("click",t.selectors.submitButton,t.handlePayment)},t.ready=()=>{t.setupStripe(),t.bindEvents()},e(t.ready)})(jQuery,window.tribe.tickets.commerce.gateway.stripe,Stripe,tribe.ky),window.tec=window.tec||{},window.tec.tickets=window.tec.tickets||{},window.tec.tickets.commerce=window.tec.tickets.commerce||{},window.tec.tickets.commerce.gateway=window.tec.tickets.commerce.gateway||{},window.tec.tickets.commerce.gateway.stripe=window.tec.tickets.commerce.gateway.stripe||{},window.tec.tickets.commerce.gateway.stripe.checkout={};