­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ (()=>{"use strict";const e=function(e,t){e||(e=0);var n=parseInt(e)/100,r=2;e%100==0&&0==t.decimal_points&&(r=0);var i=",",a=".";"dot_comma"!=t.currency_separator&&(i=".",a=",");var o,s,f,l,u,c,m,d,p,h,_=t.currency_sign||"",y=(o=n,s=r,f=a,l=i,u=isNaN(s)?2:Math.abs(s),c=f||".",m=void 0===l?",":l,d=o<0?"-":"",p=parseInt(o=Math.abs(o).toFixed(u))+"",h=(h=p.length)>3?h%3:0,d+(h?p.substr(0,h)+m:"")+p.substr(h).replace(/(\d{3})(?=\d)/g,"$1"+m)+(u?c+Math.abs(o-p).toFixed(u).slice(2):""));return"right"==t.currency_sign_position?y+""+_:"left_space"==t.currency_sign_position?_+" "+y:"right_space"==t.currency_sign_position?y+" "+_:_+""+y};function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t",{id:"form_success",class:"ff-message-success"}).html(r.message).insertAfter(e.$form),e[r.actionName](r))})),jQuery(".ff_modal_btn").on("click",(function(){e.calculatePayments()})),this.calculatePayments(),this.$form.find(".ff_payment_item,.ff_quantity_item").on("change",(function(t){t.target.min&&+t.target.value<+t.target.min&&(t.target.value=t.target.min),t.target.max&&+t.target.value>+t.target.max&&(t.target.value=t.target.max),e.calculatePayments(),e.mayBeToggleSubscriptionRelatedThings(t)})),this.$form.on("change",".ff-custom-user-input",(function(t){e.handleCustomUserInputChange(t)})),this.$form.on("do_calculation",(function(){e.calculatePayments()})),this.initDiscountCode()}},{key:"calculatePayments",value:function(){var e=this,t=this.$form,n=this.getPaymentItems(),r=0;jQuery.each(n,(function(e,t){r+=t.line_total})),this.totalAmount=r;var i=this.getDiscounts();jQuery.each(i,(function(t,n){var i=n.amount;"percent"===n.coupon_type&&(i=n.amount/100*r),e.totalAmount-=i})),t.trigger("payment_amount_change",{amount:r,items:n,discounts:i,payment_handler:this}),t.find(".ff_order_total").html(this.getFormattedPrice(this.totalAmount)),t.data("payment_total",this.totalAmount);var a=!Object.keys(n).length;this.hasPaymentItems=a;var o=a?"hide":"show";this.$form.find(".ff_payment_method").closest(".ff-el-group:not(.ff_excluded)")[o](),t.find(".ff_dynamic_payment_summary").length&&this.generateSummaryTable(n,r,i,a)}},{key:"generateSummaryTable",value:function(e,t,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(this.$form.find(".ff_dynamic_payment_summary .ff_payment_summary_fallback").hide(),i)return this.$form.find(".ff_dynamic_payment_summary .ff_payment_summary").html(""),void this.$form.find(".ff_dynamic_payment_summary .ff_payment_summary_fallback").show();var a='';a+=""),a+="",jQuery.each(e,(function(e,t){(0===t.price||t.price)&&(a+="",a+=""),a+=""),a+=""),a+=""),a+="")})),a+="";var o="";n.length&&(o+='"),jQuery.each(n,(function(e,n){var i=n.amount;"percent"===n.coupon_type&&(i=n.amount/100*t),i>=t&&(i=t),o+='"),t-=i}))),o+='"),a+="".concat(o,""),a+="
".concat(this.$t("item"),"").concat(this.$t("price"),"").concat(this.$t("qty"),"").concat(this.$t("line_total"),"
".concat(t.label,"".concat(r.getFormattedPrice(t.price),"".concat(t.quantity,"".concat(r.getFormattedPrice(t.line_total),"
'.concat(this.$t("Sub Total"),"").concat(this.getFormattedPrice(t),"
'.concat(r.$t("discount:")," ").concat(n.title,"-").concat(r.getFormattedPrice(i),"
'.concat(this.$t("total"),"").concat(this.getFormattedPrice(t),"
",this.$form.find(".ff_dynamic_payment_summary .ff_payment_summary").html(a)}},{key:"getPaymentItems",value:function(){var e=this.$form,t=e.find(".ff-el-group:not(.ff_excluded)").find(".ff_payment_item"),n={},r=this;function i(e,t,i){e=e.replace("[","").replace("]","");var a=r.getQuantity(e);a&&(n[e]={label:t,price:i,quantity:a,line_total:a*i})}return t.each((function(t,n){var a=n.type,o=jQuery(n);if(!o.closest(".has-conditions.ff_excluded").length){var s=o.attr("name"),f=o.data("payment_label");if(f||(f=o.closest(".ff-el-group").find(".ff-el-input--label label").text()),"radio"===a){var l=e.find("input[name="+s+"]:checked"),u=l.val();r.maybeAddInventoryStockOutFailedValidation(o,l.data("quantity_remaining"),!l.length),r.maybeHandleSubscriptionItem(s,l,f,u,i)}else if("hidden"===a)r.maybeAddInventoryStockOutFailedValidation(o,o.data("quantity_remaining"),!0),r.maybeHandleSubscriptionItem(s,o,f,"",i);else if("number"==a||"text"==a){var c=window.ff_helper.numericVal(jQuery(this));0!=c&&i(s,f,parseFloat(c))}else if("checkbox"==a){var m,d=o.data("group_id"),p=e.find('input[data-group_id="'+d+'"]:checked'),h=0,_=[];p.each((function(e,t){var n=jQuery(t).data("payment_value"),r=jQuery(t).data("quantity_remaining");void 0!==r&&(m=void 0===m||m>r?r:m),n&&(h+=parseFloat(n),_.push(jQuery(t).val()))})),_.length&&(f+=' "),h&&i(s,f,h),r.maybeAddInventoryStockOutFailedValidation(o,m,!h)}else if("select-one"===a){var y=e.find("select[name="+s+"] option:selected"),g=y.val();r.maybeAddInventoryStockOutFailedValidation(o,y.data("quantity_remaining"),!y.length),r.maybeHandleSubscriptionItem(s,y,f,g,i)}}})),n}},{key:"maybeAddInventoryStockOutFailedValidation",value:function(e,t,n){var r,i,a=e.attr("name").replace("[","").replace("]","");if(n)null===(i=this.formInstance)||void 0===i||i.removeFieldValidationRule(a,"force_failed");else if(void 0!==t){var o,s=this.getQuantity(a);s&&(t'),jQuery.each(t,(function(t,n){var r=jQuery(n);r.find(".ff_input-group-append").on("click",(function(){var t=r.find("input.ff_coupon_item"),n=t.val();if(!n)return"";t.attr("disabled",!0),t.attr("name"),jQuery.post(window.fluentFormVars.ajaxUrl,{action:"fluentform_apply_coupon",form_id:e.formId,total_amount:e.totalAmount,coupon:n,other_coupons:e.$form.find(".__ff_all_applied_coupons").val()}).then((function(i){var a=i.coupon;if(!Object.keys(e.appliedCoupons).includes(a.code)){e.appliedCoupons[a.code]=a,e.$form.find(".__ff_all_applied_coupons").attr("value",JSON.stringify(Object.keys(e.appliedCoupons)));var o=a.amount+"%";"fixed"==a.coupon_type&&(o=e.getFormattedPrice(a.amount));var s=a.amount;"percent"===a.coupon_type&&(s=(a.amount/100*e.totalAmount).toFixed(2));var f=e.totalAmount-s,l=a.message||"{coupon.code} -{coupon.amount}",u={"{coupon.code}":a.code,"{coupon.amount}":o,"{total_amount}":e.totalAmount,"{discount_amount}":s,"{remain_amount}":f},c=e.replaceWords(l,u);e.recordCouponMessage(r,n,c,"success"),t.val("")}})).fail((function(t){e.recordCouponMessage(r,n,t.responseJSON.message,"error")})).always((function(){t.attr("disabled",!1),e.$form.trigger("do_calculation")}))}))}))}},{key:"recordCouponMessage",value:function(e,t,n,r){var i=this;e.find(".ff_coupon_responses").length||e.append('');var a=e.find(".ff_coupon_responses");a.find(".ff_error, .ff_resp_item_"+t).remove();var o=jQuery("
  • ",{class:"ff_".concat(r," ff_resp_item_").concat(t)}),s=jQuery("",{class:"error-clear",html:"×",click:function(e){a.find(".ff_resp_item_"+t).remove(),delete i.appliedCoupons[t],i.$form.find(".__ff_all_applied_coupons").attr("value",JSON.stringify(Object.keys(i.appliedCoupons))),i.$form.trigger("do_calculation")}});a.append(o.append(s,n))}},{key:"mayBeToggleSubscriptionRelatedThings",value:function(e){var t=jQuery(e.target);if(t.hasClass("ff_subscription_item")){var n=t.val(),r=t.closest(".ff-el-input--content");r.find(".ff-custom-user-input-wrapper").addClass("hidden_field");var i=r.find(".ff-custom-user-input-wrapper-"+n);i.removeClass("hidden_field");var a=i.find("input").data("min")||0;i.find("input").attr("min",a),r.find(".ff_summary_container").addClass("hidden_field"),r.find(".ff_summary_container_"+n).removeClass("hidden_field"),r.find(".ff-custom-user-input-wrapper.hidden_field input").attr("min","0")}}},{key:"handleCustomUserInputChange",value:function(e){var t,n=jQuery(e.target),r=parseFloat(n.val())||0,i=n.data("parent_input_name"),a=n.data("parent_input_type"),o=n.data("plan_index");"select"===a?o=(t=this.$form.find("select[name="+i+"] option:selected")).val():t="radio"===a?this.$form.find("input[name="+i+"]:checked"):this.$form.find("input[name="+i+"]");var s=r+parseFloat(t.data("initial_amount")),f=parseFloat(t.attr("data-signup_fee"));t.attr("data-payment_value",s);var l=n.parent().parent().find(".ff_summary_container_"+o);l.find(".ffbs_subscription_amount").html(this.getFormattedPrice(r)),l.find(".ffbs_first_interval_total").html(this.getFormattedPrice(s+f)),this.calculatePayments()}},{key:"initStripeElement",value:function(){var e=this;if(this.$form.hasClass("ff_has_stripe_inline")){var t;this.stripe=new Stripe(this.formPaymentConfig.stripe.publishable_key),this.stripe.registerAppInfo(this.formPaymentConfig.stripe_app_info);var n=this.formPaymentConfig.stripe.custom_style.styles,r=this.stripe.elements().create("card",{style:n,hidePostalCode:!this.formPaymentConfig.stripe.inlineConfig.verifyZip,disableLink:this.formPaymentConfig.stripe.inlineConfig.disable_link}),i=this.$form.find(".ff_stripe_card_element").attr("id");if(!i)return void console.log("No Stripe Cart Element Found");r.mount("#"+i),r.addEventListener("change",(function(t){e.toggleStripeInlineCardError(t.error)})),this.stripeCard=r,this.$form.on("fluentform_submission_success",(function(){r.clear()})),this.$form.on("fluentform_submission_failed",(function(){e.stripeCard.update({disabled:!1})})),this.registerStripePaymentToken(i);var a=this;this.$form.on("fluentform_update_stripe_inline_element_style",(function(e,t){a.handleStripeStyleUpdate(t,n)}));var o=(null===(t=this.formPaymentConfig.stripe)||void 0===t||null===(t=t.inlineConfig)||void 0===t?void 0:t.inline_styles)||!1;this.handleStripeStyleUpdate(o,n)}}},{key:"initSquareElement",value:function(){var e=this;if(this.$form.hasClass("ff_has_square_inline")){var t=this.$form.find(".ff_square_card_element").attr("id");if(!t)return void console.error("No Square Card Element Found");if(!window.Square)throw new Error("Square.js failed to load properly");var n=this.formPaymentConfig.square.inline_config.settings.application_id,r=this.formPaymentConfig.square.inline_config.settings.location_id;if(!n)return void console.error("Please set application ID from global settings.");try{this.square=window.Square.payments(n,r)}catch(e){console.error("Error initializing Square payments:",e);var i=document.getElementById(t);return i.className="missing-credentials",void(i.style.visibility="visible")}try{this.square.card().then((function(n){n.attach("#"+t),e.squareCard=n,e.$form.on("fluentform_submission_success",(function(){n.clear()})),e.$form.on("fluentform_submission_failed",(function(){n.clear()})),e.registerSquarePaymentToken(t)}))}catch(e){return void console.error("Initializing Card failed",e)}}}},{key:"registerSquarePaymentToken",value:function(e){var t=this;this.formInstance.addGlobalValidator("squareInlinePayment",(function(n,r){if("square"===t.paymentMethod&&!t.hasPaymentItems&&!jQuery("#"+e).closest(".ff_excluded").length){t.formInstance.showFormSubmissionProgress(n),jQuery("
    ",{id:t.formId+"_success",class:"ff-message-success ff_msg_temp"}).html(t.$t("processing_text")).insertAfter(t.$form),t.toggleSquareInlineCardError();var i=jQuery.Deferred();return t.squareCard.tokenize().then((function(e){if("OK"!==e.status)t.toggleSquareInlineCardError(e.errors[0]),t.formInstance.hideFormSubmissionProgress(n),i.reject();else{var a=e.token,o={amount:t.totalAmount.toString(),currencyCode:t.formPaymentConfig.currency_settings.currency,intent:"CHARGE",billingContact:{}};t.square.verifyBuyer(a,o).then((function(e){if(console.log(e),!e.token)throw new Error("Buyer verification failed");r.data+="&"+jQuery.param({__square_payment_method_id:a,__square_verify_buyer_id:e.token}),i.resolve()})).catch((function(e){t.toggleSquareInlineCardError(e),t.formInstance.hideFormSubmissionProgress(n),i.reject()}))}})).catch((function(e){t.toggleSquareInlineCardError(e),t.formInstance.hideFormSubmissionProgress(n),i.reject()})),i.promise()}}))}},{key:"toggleSquareInlineCardError",value:function(e){var t=this,n=this.$form.find(".ff_card-errors");e?(n.html(e.message),n.closest(".square-inline-wrapper").addClass("ff-el-is-error"),this.formInstance.hideFormSubmissionProgress(this.$form)):(n.html(""),n.closest(".square-inline-wrapper").removeClass("ff-el-is-error")),setTimeout((function(){t.maybeRemoveSubmitError()}),500)}},{key:"getJsStylesFromStringStyle",value:function(e){if(!e)return null;var t={};return(e=e.split(";")).forEach((function(e){if(e){var n=(e=e.split(":"))[0].trim();n.includes("-")&&(n=(n=n.split("-"))[0]+n[1][0].toUpperCase()+n[1].slice(1)),t[n]=e[1].trim()}})),t}},{key:"handleStripeStyleUpdate",value:function(e,t){if(e){var n=this,i={error_msg:n.getJsStylesFromStringStyle(e.error_msg),input:n.getJsStylesFromStringStyle(e.input),focusInput:n.getJsStylesFromStringStyle(e.focusInput),placeholder:n.getJsStylesFromStringStyle(e.placeholder)},a=r({},t),o=["boxShadow","border","borderStyle","borderWidth","borderColor","borderRadius"];if(i.input){for(var s in i.input)t.base[s]||o.includes(s)&&delete i.input[s];a.base=r(r({},a.base),i.input)}if(i.placeholder&&(a.base["::placeholder"]=r(r({},a.base["::placeholder"]),i.placeholder)),i.focusInput){for(var f in i.focusInput)o.includes(f)&&delete i.focusInput[f];a.base[":focus"]=r(r({},a.base[":focus"]),i.focusInput)}i.error_msg&&(a.invalid=r(r({},a.invalid),i.error_msg),jQuery(".ff_card-errors").css(a.invalid)),this.stripeCard.update({style:a})}}},{key:"initPaymentMethodChange",value:function(){var e=this,t=this.$form.find(".ff_payment_method");t.length>1?this.paymentMethod=t.filter((function(e,t){return t.checked})).val():this.paymentMethod=t.val(),t.length>1&&t.change((function(t){e.paymentMethod=t.target.value,jQuery(t.target).closest(".ff-el-input--content").find(".ff_pay_inline").css({display:"none"}),"stripe"===e.paymentMethod&&jQuery(t.target).closest(".ff-el-input--content").find(".stripe-inline-wrapper").css({display:"block"}),"square"===e.paymentMethod&&jQuery(t.target).closest(".ff-el-input--content").find(".square-inline-wrapper").css({display:"block"})}))}},{key:"registerStripePaymentToken",value:function(e){var t=this;this.formInstance.addGlobalValidator("stripeInlinePayment",(function(n,r){if("stripe"===t.paymentMethod&&!t.hasPaymentItems&&!jQuery("#"+e).closest(".ff_excluded").length){t.formInstance.showFormSubmissionProgress(n),jQuery("
    ",{id:t.formId+"_success",class:"ff-message-success ff_msg_temp"}).html(t.$t("processing_text")).insertAfter(t.$form),t.toggleStripeInlineCardError();var i=jQuery.Deferred();return t.stripe.createPaymentMethod("card",t.stripeCard).then((function(e){e.error?t.toggleStripeInlineCardError(e.error):(t.stripeCard.update({disabled:!0}),t.formInstance.hideFormSubmissionProgress(n),jQuery("
    ",{id:t.formId+"_success",class:"ff-message-success ff_msg_temp"}).html(t.$t("processing_text")).insertAfter(t.$form),r.data+="&"+jQuery.param({__stripe_payment_method_id:e.paymentMethod.id}),i.resolve())})),i.promise()}}))}},{key:"toggleStripeInlineCardError",value:function(e){var t=this,n=this.$form.find(".ff_card-errors");e?(n.html(e.message),n.closest(".stripe-inline-wrapper").addClass("ff-el-is-error"),this.formInstance.hideFormSubmissionProgress(this.$form),this.stripeCard.update({disabled:!1})):(n.html(""),n.closest(".stripe-inline-wrapper").removeClass("ff-el-is-error")),setTimeout((function(){t.maybeRemoveSubmitError()}),500)}},{key:"stripeSetupIntent",value:function(e){var t=this;this.stripe.confirmCardPayment(e.client_secret,{payment_method:e.payment_method_id}).then((function(n){n.error?t.toggleStripeInlineCardError(n.error):t.handleStripePaymentConfirm({action:"fluentform_sca_inline_confirm_payment_setup_intents",form_id:t.formId,payment_method:n.paymentIntent.payment_method,payemnt_method_id:e.payemnt_method_id,payment_intent_id:n.paymentIntent.id,submission_id:e.submission_id,stripe_subscription_id:e.stripe_subscription_id,type:"handleCardSetup"})}))}},{key:"initStripeSCAModal",value:function(e){var t=this;this.formInstance.showFormSubmissionProgress(this.$form),this.stripe.handleCardAction(e.client_secret).then((function(n){n.error?(t.formInstance.hideFormSubmissionProgress(t.$form),t.toggleStripeInlineCardError(n.error)):t.handleStripePaymentConfirm({action:"fluentform_sca_inline_confirm_payment",form_id:t.formId,payment_method:n.paymentIntent.payment_method,payment_intent_id:n.paymentIntent.id,submission_id:e.submission_id,type:"handleCardAction"})}))}},{key:"handleStripePaymentConfirm",value:function(e){this.maybeRemoveSubmitError(),jQuery("
    ",{id:this.formId+"_success",class:"ff-message-success ff_msg_temp"}).html(this.$t("confirming_text")).insertAfter(this.$form),this.formInstance.showFormSubmissionProgress(this.$form),window.fluentFormApp(this.$form).sendData(this.$form,e)}},{key:"maybeRemoveSubmitError",value:function(){jQuery("#form_success").remove()}}],n&&a(t.prototype,n),i&&a(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,i}();(s=jQuery).each(s("form.fluentform_has_payment"),(function(){var e=s(this);e.on("fluentform_init_single",(function(t,n){new f(e,n).init()}))})),s(document).on("ff_reinit",(function(e,t){var n=s(t);n.attr("data-ff_reinit","yes");var r=fluentFormApp(n);if(!r)return!1;new f(n,r).init()}))})();