OwlCyberSecurity - MANAGER
Edit File: give-stripe.js
(()=>{"use strict";class e{constructor(e){e&&(this.formElement=e,this.publishableKey=e.getAttribute("data-publishable-key"),this.accountId=e.getAttribute("data-account")?e.getAttribute("data-account"):"",this.idPrefix=e.getAttribute("data-id")?e.getAttribute("data-id"):"",this.locale=give_stripe_vars.preferred_locale,this.fieldsFormat=give_stripe_vars.cc_fields_format,this.isSingleInputField="single"===this.fieldsFormat,this.isMounted=!1,this.fontStyles=[],0!==Object.keys(give_stripe_vars.element_font_styles).length&&this.fontStyles.push(give_stripe_vars.element_font_styles))}setupStripeElement(){let e={};return 0!==this.accountId.trim().length&&(e={stripeAccount:this.accountId}),Stripe(this.publishableKey,e)}getElements(e){let t={locale:this.locale};return this.fontStyles.length>0&&(t={fonts:this.fontStyles,locale:this.locale}),e.elements(t)}createElement(e,t){const r=[],i=this.getElementsToMountOn(),a={style:this.getElementStyles(),classes:this.getElementClasses()};return i.forEach(((t,i)=>{"card"===t[0]?a.hidePostalCode=!!give_stripe_vars.checkout_address:"cardNumber"===t[0]?a.placeholder=give_stripe_vars.card_number_placeholder_text:"cardCvc"===t[0]?a.placeholder=give_stripe_vars.card_cvc_placeholder_text:delete a.placeholder,r.push(e.create(t[0],a))})),"cardNumber"===i[0][0]&&r[0].addEventListener("change",(function(e){const r="diners"===e.brand?"dinersclub":e.brand;t.querySelector(".card-type").className="card-type "+r})),r}destroyElement(e){e.forEach(((e,t)=>{e.destroy()}))}getElementStyles(){return{base:give_stripe_vars.element_base_styles,complete:give_stripe_vars.element_complete_styles,empty:give_stripe_vars.element_empty_styles,invalid:give_stripe_vars.element_invalid_styles}}getElementClasses(){return{focus:"focus",empty:"empty",invalid:"invalid"}}getElementsToMountOn(){let e={cardNumber:`#give-card-number-field-${this.idPrefix}`,cardCvc:`#give-card-cvc-field-${this.idPrefix}`,cardExpiry:`#give-card-expiration-field-${this.idPrefix}`};return this.isSingleInputField&&(e={card:`#give-stripe-single-cc-fields-${this.idPrefix}`}),Object.entries(e)}mountElement(e){const t=this.getElementsToMountOn();Array.from(e).forEach(((e,r)=>{e.mount(t[r][1])}))}unMountElement(e){const t=this.getElementsToMountOn();Array.from(e).forEach(((e,r)=>{e.unmount(t[r][1])}))}createPaymentMethod(e,t,r){const i={};if(this.isSingleInputField||(i.name=e.querySelector('input[name="card_name"]').value),!give_stripe_vars.stripe_card_update){const t=e.querySelector('input[name="give_first"]').value,r=e.querySelector('input[name="give_last"]').value,a=e.querySelector('input[name="give_email"]').value;i.name=`${t} ${r}`,i.email=a,e.querySelector("[id^=give-purchase-button]").setAttribute("disabled","disabled")}if(give_stripe_vars.checkout_address&&!give_stripe_vars.stripe_card_update){const t=e.querySelector(".card-address").value,r=e.querySelector(".card-address-2").value,a=e.querySelector(".card-city").value,s=e.querySelector(".card_state").value,l=e.querySelector(".card-zip").value,n=e.querySelector(".billing-country").value;i.address={line1:t||"",line2:r||"",city:a||"",state:s||"",postal_code:l||"",country:n||""}}t.createPaymentMethod({type:"card",card:r[0],billing_details:i}).then((function(t){if(t.error){const r=jQuery(e),i=`<div class="give_errors"><p class="give_error">${t.error.message}</p></div>`,a=e.getAttribute("data-id");return Give.form.fn.resetDonationButton(r),void(e.querySelector(`#give-stripe-payment-errors-${a}`).innerHTML=i)}e.querySelector('input[name="give_stripe_payment_method"]').value=t.paymentMethod.id,e.submit()}))}triggerStripeModal(e,t,r,i){const a=e.querySelector('input[name="give-form-id-prefix"]'),s=e.querySelector(`#give-stripe-checkout-modal-donate-button-${a.value}`),l=e.querySelector('input[name="card_name"]'),n=document.querySelector(".give-stripe-checkout-modal-container"),o=document.querySelector("#give-purchase-button"),c={};let d=!1;o.addEventListener("click",(function(){n.scrollIntoView({behavior:"smooth"})})),i.forEach((e=>{c.cardName=!1,e.addEventListener("ready",(e=>{c[e.elementType]=!1,c.cardName="card"===e.elementType})),e.addEventListener("change",(e=>{c[e.elementType]=e.complete,d=Object.values(c).every((e=>!0===e)),d?s.removeAttribute("disabled"):s.setAttribute("disabled","disabled")}))})),null!==l&&l.addEventListener("keyup",(e=>{c.cardName=""!==e.target.value,d=Object.values(c).every((e=>!0===e)),d?s.removeAttribute("disabled"):s.setAttribute("disabled","disabled")})),null!==s&&s.addEventListener("click",(a=>{const l=a.target,n=l.nextElementSibling;s.getAttribute("data-is_legacy_form")?(l.value=give_global_vars.purchase_loading,n.style.display="inline-block"):(l.value="",n.classList.add("sequoia-loader"),n.classList.add("spinning"),n.classList.remove("give-loading-animation")),t.createPaymentMethod(e,r,i),a.preventDefault()}))}}document.addEventListener("DOMContentLoaded",(function(t){Array.from(document.querySelectorAll(".give-form-wrap")).forEach((t=>{const r=t.querySelector(".give-form");if(null===r)return;if(!r.getAttribute("data-publishable-key"))return;const i=give_stripe_vars.hasOwnProperty("stripe_card_update")&&parseInt(give_stripe_vars.stripe_card_update),a=r.querySelector('input[name="give-form-id-prefix"]'),s=new e(r),l=s.setupStripeElement(),n=s.getElements(l),o=s.createElement(n,r),c=Give.form.fn.getInfo("stripe-checkout-type",r);function d(){const e=r.querySelector('input[name="give-gateway"]'),t=e?e.value:"",i="modal"===c;return{formGateway:e,selectedGatewayId:t,isCheckoutTypeModal:i,isStripeModalCheckoutGateway:e&&"stripe_checkout"===t&&i}}function u(e=!0){const{selectedGatewayId:t,isStripeModalCheckoutGateway:a}=d();i||"stripe"===t||a?s.mountElement(o):e&&s.unMountElement(o),a&&s.triggerStripeModal(r,s,l,o)}u(!1),document.addEventListener("give_gateway_loaded",u),r.onsubmit=e=>{const{selectedGatewayId:t,isStripeModalCheckoutGateway:n}=d();if((i||"stripe"===t)&&(s.createPaymentMethod(r,l,o),e.preventDefault()),n){const t=r.querySelector(".give-stripe-checkout-modal"),i=t.querySelector(".give-stripe-checkout-donation-amount"),s=t.querySelector(".give-stripe-checkout-donor-email"),l=r.querySelector(".give-final-total-amount").textContent,n=r.querySelector('input[name="give_email"]').value,o=r.querySelector('input[name="give_validate_stripe_payment_fields"]');t.classList.add("give-stripe-checkout-show-modal"),null!==i&&(i.innerHTML=l),null!==s&&(s.innerHTML=n),o.setAttribute("value","1");const c=r.querySelector(".give-stripe-checkout-modal-close");null!==c&&c.addEventListener("click",(e=>{r.querySelector(`#give-stripe-checkout-modal-${a.value}`).classList.remove("give-stripe-checkout-show-modal");const t=r.querySelector(".give-submit");null!==t&&(t.value=t.getAttribute("data-before-validation-label"),t.nextElementSibling.style.display="none",t.removeAttribute("disabled"),r.querySelector('input[name="give_validate_stripe_payment_fields"]').setAttribute("value","0")),e.preventDefault()})),e.preventDefault()}}}))}))})();