| Current File : /home/digitaw/www/wp-content/plugins/event-tickets/build/js/commerce/gateway/paypal/checkout.js |
window.tribe.tickets.commerce.gateway.paypal=window.tribe.tickets.commerce.gateway.paypal||{},window.tribe.tickets.commerce.gateway.paypal.checkout={},function(e,t){"use strict";const r=e(document);t.orderEndpointUrl=tecTicketsCommerceGatewayPayPalCheckout.orderEndpoint,t.advancedPayments=tecTicketsCommerceGatewayPayPalCheckout.advancedPayments,t.timeouts=[],t.isGenericError=!0,t.selectors={paypalGatewayContainer:".tribe-tickets__commerce-checkout-paypal",checkoutScript:".tec-tc-gateway-paypal-checkout-script",activePayment:".tec-tc-gateway-paypal-payment-active",buttons:"#tec-tc-gateway-paypal-checkout-buttons",advancedPayments:{container:".tribe-tickets__commerce-checkout-paypal-advanced-payments-container",form:".tribe-tickets__commerce-checkout-paypal-advanced-payments-form",cardField:"#tec-tc-card-number",cvvField:"#tec-tc-cvv",nameField:"#tec-tc-card-holder-name",expirationField:"#tec-tc-expiration-date"},hiddenElement:".tribe-common-a11y-hidden"},t.handleCancel=function(e,r){tribe.tickets.debug.log("handleCancel",arguments),r.removeClass(t.selectors.activePayment.className()),t.triggerCancelOrder(r,e.orderID,null,null)},t.handleGenericError=function(e,r){t.isGenericError?(tribe.tickets.debug.log("handleGenericError",arguments),r.removeClass(t.selectors.activePayment.className()),t.showNotice(r,e.title,e.content)):t.isGenericError=!0},t.handleClick=function(e){tribe.tickets.debug.log("handleClick",arguments),e.addClass(t.selectors.activePayment.className()),t.hideNotice(e)},t.handleCreateOrder=function(e,r,c){return tribe.tickets.debug.log("handleCreateOrder",arguments),fetch(t.orderEndpointUrl,{method:"POST",body:JSON.stringify({purchaser:tribe.tickets.commerce.getPurchaserData(c)}),headers:{"X-WP-Nonce":c.find(tribe.tickets.commerce.selectors.nonce).val(),"Content-Type":"application/json"}}).then((e=>e.json())).then((e=>(tribe.tickets.debug.log(e),e.success?t.handleCreateOrderSuccess(c,e):t.handleCreateOrderFail(c,e)))).catch((()=>{t.handleCreateOrderError(c)}))},t.handleCreateOrderSuccess=function(e,t){return tribe.tickets.debug.log("handleCreateOrderSuccess",arguments),t.id},t.handleCreateOrderFail=function(e,r){tribe.tickets.debug.log("handleCreateOrderFail",arguments),t.showNotice(e,r.message,""),t.isGenericError=!1},t.handleCreateOrderError=function(e,t){tribe.tickets.debug.log("handleCreateOrderError",arguments)},t.handleCheckSuccess=function(e,r,c){return tribe.tickets.debug.log("handleCheckSuccess",arguments),fetch(t.orderEndpointUrl+"/"+e.order_id,{method:"POST",headers:{"X-WP-Nonce":c.find(tribe.tickets.commerce.selectors.nonce).val(),"Content-Type":"application/json"},body:JSON.stringify({recheck:!0})}).then((e=>e.json())).then((e=>e.success?t.handleApproveSuccess(e,r,c):t.handleApproveFail(e,r,c))).catch(t.handleApproveError)},t.handleApprove=function(e,r,c){var o;tribe.tickets.debug.log("handleApprove",arguments);const a={payer_id:null!==(o=e.payerID)&&void 0!==o?o:""};return fetch(t.orderEndpointUrl+"/"+e.orderID,{method:"POST",headers:{"X-WP-Nonce":c.find(tribe.tickets.commerce.selectors.nonce).val(),"Content-Type":"application/json"},body:JSON.stringify(a)}).then((e=>e.json())).then((e=>e.success?t.handleCheckSuccess(e,r,c):t.handleApproveFail(e,r,c))).catch(t.handleApproveError)},t.handleApproveSuccess=(e,t,r)=>{tribe.tickets.debug.log("handleApproveSuccess",e,t),window.location.replace(e.redirect_url)},t.handleApproveFail=(e,r,c)=>{tribe.tickets.debug.log("handleApproveFail",e,r),"UNPROCESSABLE_ENTITY"===e.data.name&&"INSTRUMENT_DECLINED"===e.data.details[0].issue?t.showNotice(c,"",e.data.details[0].description):t.showNotice(c,"",e.message),tribe.tickets.loader.hide(c)},t.handleApproveError=function(e){tribe.tickets.debug.log("handleApproveError",arguments)},t.getButtonConfig=function(e){return{style:{layout:"vertical",shape:"rect",label:"paypal"},createOrder:(r,c)=>t.handleCreateOrder(r,c,e),onApprove:(r,c)=>t.handleApprove(r,c,e),onCancel:r=>t.handleCancel(r,e),onError:r=>t.handleGenericError(r,e),onClick:()=>t.handleClick(e)}},t.triggerCancelOrder=(e,c,o,a)=>{const n={failed_status:o,failed_reason:a};return r.trigger(tribe.tickets.commerce.customEvents.showLoader),fetch(t.orderEndpointUrl+"/"+c,{method:"DELETE",headers:{"X-WP-Nonce":e.find(tribe.tickets.commerce.selectors.nonce).val()},body:JSON.stringify(n)}).then((e=>e.json())).then((c=>(r.trigger(tribe.tickets.commerce.customEvents.hideLoader),tribe.tickets.debug.log(c),c.success?t.handleCancelOrderSuccess(e,c):t.handleCancelOrderFail(e,c)))).catch((()=>{t.handleCancelOrderError(e)}))},t.handleCancelOrderSuccess=(e,r)=>{tribe.tickets.debug.log("handleCancelOrderSuccess",arguments),t.showNotice(e,r.title,"")},t.handleCancelOrderFail=(e,r)=>{tribe.tickets.debug.log("handleCancelOrderFail",arguments),t.showNotice(e,r.title,"")},t.handleCancelOrderError=e=>{tribe.tickets.debug.log("handleCancelOrderError",arguments),t.showNotice(e)},t.timeoutRedirect=e=>{e.is(t.selectors.activePayment.className())||window.location.replace(window.location.href)},t.setupButtons=function(e,r){paypal.Buttons(t.getButtonConfig(r)).render(t.selectors.buttons);const c=r.find(t.selectors.checkoutScript);if(c.length&&c.is("[data-client-token-expires-in]")){const e=1e3*parseInt(c.data("clientTokenExpiresIn"),10);t.timeouts.push(setTimeout(t.timeoutRedirect,e,r))}},t.buttonsLoaded=function(){r.trigger(tribe.tickets.commerce.customEvents.hideLoader),t.stopCheckoutObserving()},t.showNotice=(t,r,c)=>{t&&t.length||(t=e(tribe.tickets.commerce.selectors.checkoutContainer));const o=tribe.tickets.commerce.notice,a=t.find(o.selectors.item);o.populate(a,r,c),o.show(a)},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.setupLoader=function(){r.trigger(tribe.tickets.commerce.customEvents.showLoader),t.startCheckoutObserving()},t.startCheckoutObserving=()=>{const r=e(tribe.tickets.commerce.selectors.checkoutContainer)[0];t.checkoutContainerObserver=new MutationObserver((r=>{for(const c of r)if("childList"===c.type&&0!==c.addedNodes.length)for(const r of c.addedNodes)e(t.selectors.buttons).find("iframe").length<=0||t.buttonsLoaded.call(r)})),t.checkoutContainerObserver.observe(r,{childList:!0,subtree:!0})},t.stopCheckoutObserving=()=>{t.checkoutContainerObserver&&t.checkoutContainerObserver.disconnect()},t.bindScriptLoader=function(){const c=e(t.selectors.checkoutScript);if(0!==e(t.selectors.paypalGatewayContainer).length)return c.length?"undefined"!=typeof paypal?(t.setupButtons({},e(tribe.tickets.commerce.selectors.checkoutContainer)),void t.setupAdvancedPayments({},e(tribe.tickets.commerce.selectors.checkoutContainer))):void(window.onload=c=>{if("undefined"==typeof paypal)return t.showNotice(),void r.trigger(tribe.tickets.commerce.customEvents.hideLoader);t.setupButtons(c,e(tribe.tickets.commerce.selectors.checkoutContainer))}):(r.trigger(tribe.tickets.commerce.customEvents.hideLoader),void t.showNotice());r.trigger(tribe.tickets.commerce.customEvents.hideLoader)},t.setupAdvancedPayments=(e,r)=>{paypal.HostedFields.isEligible()&&(r.find(t.selectors.advancedPayments.container).removeClass(t.selectors.hiddenElement.className()),paypal.HostedFields.render({createOrder:(e,c)=>t.handleCreateOrder(e,c,r),styles:{".invalid":{color:"#DA394D"},"input::placeholder":{color:"#999999"}},fields:{number:{selector:t.selectors.advancedPayments.cardField,placeholder:t.advancedPayments.fieldPlaceholders.number},cvv:{selector:t.selectors.advancedPayments.cvvField,placeholder:t.advancedPayments.fieldPlaceholders.cvv},expirationDate:{selector:t.selectors.advancedPayments.expirationField,placeholder:t.advancedPayments.fieldPlaceholders.expirationDate}}}).then((e=>t.handleHostedFields(e,r))))},t.handleHostedFields=(e,r)=>{r.find(t.selectors.advancedPayments.form).on("submit",(c=>t.onHostedSubmit(c,e,r)))},t.getExtraCardFields=e=>({cardholderName:e.find(t.selectors.advancedPayments.nameField).val()}),t.onHostedSubmit=(e,r,c)=>{e.preventDefault(),tribe.tickets.loader.show(c),r.submit(t.getExtraCardFields(c)).then(((e,r)=>{t.handleHostedApprove(e,r,c)})).catch((e=>{t.handleHostedCaptureError(e,c)}))},t.handleHostedCaptureError=(r,c)=>{if(tribe.tickets.debug.log("handleHostedCaptureError",r),tribe.tickets.loader.hide(c),!t.isGenericError)return void(t.isGenericError=!0);let o="";["INVALID_REQUEST","UNPROCESSABLE_ENTITY"].includes(r.name)&&(o=r.message),"VALIDATION_ERROR"===r.name&&(o=e("<div>"),Array.isArray(r.details)&&r.details.map((t=>{const r=e("<p>").text(t.description);o.append(r)}))),""!==o&&t.showNotice(c,"",o)},t.handleHostedApprove=function(e,r,c){return tribe.tickets.debug.log("handleHostedApprove",arguments),fetch(t.orderEndpointUrl+"/"+e.orderId,{method:"POST",headers:{"X-WP-Nonce":c.find(tribe.tickets.commerce.selectors.nonce).val(),"Content-Type":"application/json"},body:JSON.stringify({advanced_payment:!0})}).then((e=>e.json())).then((e=>(tribe.tickets.debug.log(e),e.success?t.handleCheckSuccess(e,r,c):t.handleHostedApproveFail(e,r,c)))).catch((e=>{t.handleHostedApproveError(e,c)}))},t.handleHostedApproveSuccess=function(e,t,r){tribe.tickets.debug.log("handleHostedApproveSuccess",arguments),tribe.tickets.loader.hide(r),window.location.replace(e.redirect_url)},t.handleHostedApproveFail=(e,r,c)=>{tribe.tickets.debug.log("handleHostedApproveFail",e,r,c),"UNPROCESSABLE_ENTITY"===e.data.name&&"INSTRUMENT_DECLINED"===e.data.details[0].issue?t.showNotice(c,"",e.data.details[0].description):t.showNotice(c,"",e.message),tribe.tickets.loader.hide(c)},t.handleHostedApproveError=(e,t,...r)=>{tribe.tickets.loader.hide(t),tribe.tickets.debug.log("handleHostedApproveError",e,r)},t.ready=function(){t.setupLoader(),t.bindScriptLoader()},e(t.ready)}(jQuery,window.tribe.tickets.commerce.gateway.paypal),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.paypal=window.tec.tickets.commerce.gateway.paypal||{},window.tec.tickets.commerce.gateway.paypal.checkout={};