"use strict";const WPFormsCalculations=window.WPFormsCalculations||function(e,r,d){const t={};let n={};const o={},u={},c={},f={innerFunctions:{},init(){d(e).on("wpformsReady",f.setup)},setup(){t.$forms=d("form.wpforms-form"),t.$document=d(e),c.fieldsDisabledCalc={},f.initModules(),f.initFormFieldsRegistry(),t.$document.trigger("wpformsCalculationsSetup")},events(){t.$document.on("input change",".wpforms-field:not(.wpforms-calculations-field) :input, select.wpforms-payment-quantity",WPFormsUtils.debounce(f.inputEvent,50)).on("wpformsFormAbandonmentGetFormDataBefore",f.formAbandonmentGetFormDataBefore)},functionsLoaded(){f.initFormulasRegistry(),f.events(),f.triggerAllFormsCalculations(),t.$document.trigger("wpformsCalculationsReady")},initModules(){var e=wpforms_calculations.debug?"./functions.js":"./functions.min.js",t=wpforms_calculations.debug?"./inner-functions.js":"./inner-functions.min.js",l=wpforms_calculations.debug?"./modules.es5.js":"./modules.es5.min.js";Promise.all([import(e),import(t),import(l)]).then(([e,t])=>{n=e.default(),f.innerFunctions=t.default(),f.functionsLoaded()})},initFormFieldsRegistry(){t.$forms.each(function(){var e=d(this),t=e.data("formid");u[t]=f.getSingleFormFieldsValues(e)})},initFormulasRegistry(){var e;for(const t in wpforms_calculations.code){o[t]={};for(const l in wpforms_calculations.code[t])e=wpforms_calculations.code[t][l],e=`

						// Define functions object.
						const $${wpforms_calculations.functionsArrayName} = allowedFunctions;

						// Define inner functions object.
						const $${wpforms_calculations.innerFunctionsArrayName} = WPFormsCalculations.innerFunctions;

						// Define result variable.
						let $${wpforms_calculations.resultVarName} = '';

						// Define fields variables.
						${f.getFormulaFieldsVariables(t)}

						try {
							${e}
						} catch ( error ) {
							WPFormsCalculations.debug( error, { type: 'error', formId: ${t}, fieldId: ${l} } );
						}

						// Detect infinity, which is means that the formula tried division by zero.
						// This approach doesn't cover all cases, but it's better than nothing.
						if (
							typeof $${wpforms_calculations.resultVarName} === 'number' &&
							! isFinite( $${wpforms_calculations.resultVarName} )
						) {
							WPFormsCalculations.debug( '${wpforms_calculations.strings.errorDivisionByZero.replace()}', { type: 'error', formId: ${t}, fieldId: ${l} } );

							return 0;
						}

						return $${wpforms_calculations.resultVarName};
					`,o[t][l]=new Function("formId","fieldId","fields","eventFieldId","allowedFunctions","WPFormsCalculations",e)}},getFormulaFieldsVariables(e){if(!u[e]||!u[e].fields)return"";var t=u[e].fields,l=[];let s,i;for(const r in t)if(s=t[r],i="$F"+r,f.isObject(s))for(const a in t[r])i="$F"+r,i+="value"===a?"":"_"+a,l.push(`${i} = fields[${r}]['${a}']`);else l.push(`${i} = fields[${r}]`);return"const "+l.join(",\n")+";"},triggerAllFormsCalculations(){t.$forms.each(function(){f.inputEvent.call(d(this).find(":input:first").get(0),{})})},getSingleFormFieldsValues(e){var t=e.find('[name^="wpforms[fields]"]');let l={};c.arrayNames={};for(let e=0;e<t.length;e++)l=f.addSingleInputValueToFormFieldsValuesObject(d(t[e]),l);return l=f.updateSingleFormFieldsValues(l,e)},addSingleInputValueToFormFieldsValuesObject(e,t){var l=e.closest(".wpforms-field"),s=l.data("field-id"),i=e.prop("name")||"";return l.length&&void 0!==s&&i.startsWith("wpforms")&&(i=l.data("field-type"),f.isAllowedField(i))&&null!==(l=f.getFieldInputValueObjectFromDOM(e))&&((t=d.extend(!0,t,l)).fields[s]=f.addAmountToPaymentFieldValue(t.fields[s],e,i)),t},updateSingleFormFieldsValues(e,t){var l,s,i=t.data("formid"),t=wpforms_calculations.formFields[i];if(e.fields&&t)for(const r in e.fields)f.isObject(e.fields[r])&&void 0===e.fields[r].value&&(l=f.updateSingleFormFieldValue(i,r,e),s=Object.values(l.fieldValueCombine).filter(function(e){return""!==e&&!1!==e}),e.fields[r]=l.formFieldsValues.fields[r],e.fields[r].value=s.join(l.separator));return e},updateSingleFormFieldValue(e,t,l){var s,e=wpforms_calculations.formFields[e][t].type;let i=d.extend(!0,{},l.fields[t]),r="\n";return["name","date-time"].includes(e)&&(r=" "),"date-time"===e&&f.isObject(l.fields[t].date)?(s=Object.values(l.fields[t].date).map(function(e){return e?e.toString().padStart(2,"0"):""}),l.fields[t].date=s.join("/"),i.date=l.fields[t].date):"email"===e?(l.fields[t].value=i.primary,delete i.secondary):"address"===e?""===(i=f.toStrings(i)).address1&&""===i.city?(l.fields[t].value="",i={}):(i.city.length&&i.state.length?i.city=i.city+", "+i.state:i.state.length&&(i.city=i.state),delete i.state,i.country=i.country||"US",l.fields[t].country=i.country):"checkbox"!==e&&"payment-checkbox"!==e||(r=",\n",delete i.amount),{separator:r,formFieldsValues:l,fieldValueCombine:i}},addAmountToPaymentFieldValue(e,t,l){let s,i;var r;return l.startsWith("payment-")&&("payment-checkbox"===l&&(r=t.is(":checked")?f.amountSanitize(t.data("amount")):0,s=void 0,i=e.amount?e.amount+r:r),"payment-single"!==l&&"payment-total"!==l||(i=f.amountSanitize(e),s=wpforms.amountFormatSymbol(i)),"payment-multiple"===l&&(s=e,i=(t.is(":checked")?t:t.closest("ul").find("input:checked")).data("amount"),i=f.amountSanitize(i)),"payment-select"===l&&(s=e,i=f.amountSanitize(t.find(":selected").data("amount"))),e=f.isObject(e)?e:{},void 0!==s&&(e.value=s),"payment-select"!==l&&"payment-single"!==l||(i*=f.getFieldQuantity(t)),e.amount=i),e},getFieldQuantity(e){return e.closest(".wpforms-field").hasClass("wpforms-payment-quantities-enabled")&&(e=d("#"+e.attr("id")+"-quantity")).length?Number(e.val()):1},getFieldInputValueObjectFromDOM(l){var s=l.prop("name").replace(/^wpforms\[/gi,"").replace(/]/gi,"").split("["),i=l.is(":checkbox"),r=l.is("select");let a=f.getFieldInputValueRaw(l),n={};for(let t=s.length-1;0<=t;t--){let e=s[t]||"";if(0===e.length&&i&&(n={},o=l.attr("id").match(/[0-9]+$/g),c.arrayNames[s[t-1]]=o[0],e=c.arrayNames[s[t-1]]),0===e.length&&r&&(e="value"),t<s.length-1){var o=n;(n={})[e]=o}else{var d=parseFloat(a);if("true"===a)a=!0;else if("false"===a)a=!1;else if(isNaN(d)||d.toString()!==a){if("string"==typeof a&&("{"===a[0]||"["===a[0]))try{a=JSON.parse(a)}catch(e){}}else a=d;n[e]=a}}return n},getFieldInputValueRaw(e){var t=e.closest(".wpforms-field"),l=t.data("field-type");let s;if(l.startsWith("payment-"))return f.getPaymentFieldInputValueRaw(e,l);var i=t.data("field-id"),t=t.closest("form").data("formid");if(wpforms_calculations.choicesShowValuesFilter&&wpforms_calculations.formFields[t]&&wpforms_calculations.formFields[t][i]?.show_values)return f.getFieldInputValueRawShowValues(e,l);var r=e.attr("id");let a,n;switch(l){case"checkbox":return a=e.closest("li").find(`label[for="${r}"]`),e.is(":checked")?a.text():"";case"radio":return n=e.closest("ul").find("input:checked"),(a=n.closest("li").find(`label[for="${n.attr("id")}"]`)).text();case"rating":return(s=(e.is(":checked")?e:e.closest(".wpforms-field-rating-items").find("input:checked")).val())||"";case"number":return 0===(s=e.val()).length?0:Number(e.val());case"phone":return e.siblings(".wpforms-smart-phone-field").val();case"select":var o=e.find(":selected");return 1<o.length?o.map(function(){return d(this).text()}).get().join(",\n"):o.text();default:return e.val()}},getFieldInputValueRawShowValues(e,t){let l;switch(t){case"checkbox":return e.is(":checked")?e.val():"";case"radio":return(l=(e.is(":checked")?e:e.closest("ul, .wpforms-field-rating-items").find("input:checked")).val())||"";case"select":return l=e.val(),Array.isArray(l)?l.join(",\n"):l;default:return e.val()}},getPaymentFieldInputValueRaw(e,t){var l,s;switch(t){case"payment-checkbox":return e.is(":checked")?e.closest("li").find(`label[for="${e.attr("id")}"]`).text().replace(" – "," - "):"";case"payment-multiple":return l=(s=e.closest("ul").find("input:checked")).attr("id"),l=s.closest("ul").find(`label[for="${l}"]`),s.length&&l.length?l.text().replace(" – "," - "):"";case"payment-select":return e.find(":selected:not(:disabled)").text().replace(" – "," - ");case"payment-single":return s=e.closest(".wpforms-field").find(".wpforms-price"),e.is(":hidden")&&s.length?s.text():e.val();default:return e.val()}},inputEvent(e){var t,l=d(this),s=l.closest(".wpforms-form"),i=s.data("formid");i&&void 0!==wpforms_calculations.code[i]&&(t=d(e.target).closest(".wpforms-field").data("field-id"),c.shouldProcessConditionals=!1,c.fieldsDisabledCalc[i]=c.fieldsDisabledCalc[i]||[],f.calculateAllFields(i,s,e,t),Object.keys(c.fieldsResults).length)&&(r.wpformsconditionals&&c.shouldProcessConditionals&&r.wpformsconditionals.processConditionals(l,!0),wpforms.amountTotal(s.find(".wpforms-payment-total"),!0),f.calculateAllFields(i,s,e,t))},calculateAllFields(e,t,l,s){u[e]=f.getSingleFormFieldsValues(t),c.fieldsResults={};for(const a in wpforms_calculations.code[e]){var i,r;c.fieldsDisabledCalc[e].includes(Number(a))||void 0===c.fieldsResults[a]&&(c.fieldsCalcStack=[],i=d(`#wpforms-${e}-field_${a}-container`),r=f.getCalcResult(e,Number(a),l,s),f.updateFieldValue(r,i,a,e),c.shouldProcessConditionals=c.shouldProcessConditionals||i.hasClass("wpforms-conditional-trigger"))}},getCalcResult(e,t,l,s){if(!o[e]||!o[e][t])return"";c.fieldsCalcStack.push(t);var i=u[e].fields;if(f.preCalcFields(e,t,l,s),void 0!==c.fieldsResults[t])return c.fieldsResults[t];c.fieldFormulaArgs=c.fieldFormulaArgs||{formId:e,fieldId:t,fields:i,eventFieldId:s,allowedFunctions:n,app:f};var r=f.isObject(i[t])?d.extend({},i[t]):i[t],a=o[e][t](e,t,i,s,n,f),a=f.normalizeCalcResult(a,e,t);return c.fieldsResults[t]=a,f.debug(`Field #${t} calculated:`,{formId:e,fieldId:t,code:o[e][t].toString(),"value before calc":r,"value after calc":a,eventFieldId:s,event:l,fields:i},{type:"debug"}),a},preCalcFields(e,t,l,s){var i=wpforms_calculations.code[e][t];if(i&&void 0===c.fieldsResults[t])for(const o of i.matchAll(/\$F\d*/gm)){var r,a,n=Number(o[0].replace("$F",""));c.fieldsDisabledCalc[e].includes(n)||n!==Number(t)&&void 0===c.fieldsResults[n]&&wpforms_calculations.code[e][n]&&(c.fieldsCalcStack.includes(n)?(c.fieldsResults[n]="",c.fieldsCalcStack.push(n),c.fieldsDisabledCalc[e].push(n),d(`#wpforms-${e}-field_`+n).attr({readonly:!1,title:!1}),f.debug(wpforms_calculations.strings.errorCircularReference.replace("%1$s",n),{type:"error",formId:e,fieldId:t})):(r=d(`#wpforms-${e}-field_${n}-container`),a=f.getCalcResult(e,n,l,s),f.updateFieldValue(a,r,n,e)))}},normalizeCalcResult(e,t,l){t=wpforms_calculations.formFields[t][l]||{};return t.type?"payment-single"===t.type?(e=f.parseFloat(e))<0?0:wpforms.amountFormatSymbol(e):"number"===t.type?f.parseFloat(e):e:e},updateFieldValue(l,s,i,r){var a=s.data("field-type");if("payment-single"===a)f.updatePaymentSingleFieldValue(l,s,i,r);else{let e=l,t=l;"number"===a&&(t=e=f.parseFloat(l)),f.isNumeric(e)||f.isString(e)||(e=""),s.find(":input").val(e).attr("title",wpforms_calculations.strings.readonlyInputTitle),u[r].fields[i]=t}},updatePaymentSingleFieldValue(e,t,l,s){var e=f.amountSanitize(e),i=wpforms.amountFormatSymbol(e),r=t.find("input");t.find(".wpforms-single-item-price .wpforms-price").text(i),r.val(i).attr("title",wpforms_calculations.strings.readonlyInputTitle),u[s].fields[l].value=i,u[s].fields[l].amount=e*f.getFieldQuantity(r)},getFormFieldsData(e){return wpforms_calculations.formFields[e]},getFormFieldsValuesFromRegistry(e){return u[e]&&u[e].fields?u[e].fields:null},getFieldValueFromRegistry(e,t){return u[e]&&u[e].fields?u[e].fields[t]:null},getFieldFormulaArgs(){return c.fieldFormulaArgs},isEmpty(e){return"object"==typeof e?0===Object.keys(e).length:[void 0,null,!1,0,"","0"].includes(e)},isObject(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e},isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)},isString(e){return"string"==typeof e||e instanceof String},parseFloat(e,t=14){if(![0,"0"].includes(e)&&f.isEmpty(e))return"";if(t=t||0===t?t:14,f.isNumeric(e))return Number(parseFloat(e).toFixed(t));e=e.toString();var l=wpforms.getCurrency(),s=l.symbol.replace("$","\\$"),i="left"===l.symbol_pos?s+"[ ]?":"",r="right"===l.symbol_pos?"[ ]?"+s:"",i=`(-?${i}(\\d+)([${l.thousands_sep}]?\\d{3})*([${l.decimal_sep}]\\d*)?(${r}))`+"|(-?(\\d+)([,]?\\d{3})*([.]?\\d*)?)",l=e.match(new RegExp(i,"g"))?.find(e=>""!==e);return l?l.includes(s)?f.amountSanitize(l):(r=l.replaceAll(/[^0-9.-]/g,""),Number(parseFloat(r).toFixed(t))):""},toStrings(e){if(!f.isObject(e))return e;var t={};for(const l in e)Object.prototype.hasOwnProperty.call(e,l)&&(t[l]=e[l]?e[l].toString():"");return t},isAllowedField(e){return Object.keys(wpforms_calculations.allowedFields).includes(e)},amountSanitize(e){return Number(wpforms.amountSanitize(e||"0"))},debug(...e){var t,l,s,i,r=0<arguments.length?arguments[arguments.length-1]:{},a=r.type||"log";r.type&&e.pop(),(wpforms_calculations.calcDebug&&"debug"===a||["log","error"].includes(a))&&(t=(l=(new Error).stack.toString().split(/\r\n|\n/)[2].split("/"))[0].replace(/\s\(http.*$/,""),l=l[l.length-1].replace(")",""),s="error"===a?"#aa0000":"#cd6622",i="error"===a?wpforms_calculations.strings.errorPrefix:wpforms_calculations.strings.debugPrefix,"error"===a&&r.formId&&r.fieldId&&e.unshift(wpforms_calculations.strings.errorFormFieldPrefix.replace("%1$s",r.formId).replace("%2$s",r.fieldId)),console.group("%c"+i,"color: "+s,t+" ("+l+")"),console.log(...e),console.groupEnd())},formAbandonmentGetFormDataBefore(e,t){WPFormsFormAbandonment&&(t=d(`#wpforms-form-${t} :input:first`).get(0),e.target=t,f.inputEvent.call(t,e),WPFormsFormAbandonment.prepData(e))}};return f}(document,window,jQuery);WPFormsCalculations.init();