1"use strict";let cf7signature_resized=0;let wpcf7cf_timeout;let wpcf7cf_change_time_ms=100;if(window.wpcf7&&!wpcf7.setStatus){wpcf7.setStatus=(form,status)=>{form=form.length?form[0]:form;const defaultStatuses=new Map([['init','init'],['validation_failed','invalid'],['acceptance_missing','unaccepted'],['spam','spam'],['aborted','aborted'],['mail_sent','sent'],['mail_failed','failed'],['submitting','submitting'],['resetting','resetting'],]);if(defaultStatuses.has(status)){status=defaultStatuses.get(status);} 2if(!Array.from(defaultStatuses.values()).includes(status)){status=status.replace(/[^0-9a-z]+/i,' ').trim();status=status.replace(/\s+/,'-');status=`custom-${ status }`;} 3const prevStatus=form.getAttribute('data-status');form.wpcf7.status=status;form.setAttribute('data-status',status);form.classList.add(status);if(prevStatus&&prevStatus!==status){form.classList.remove(prevStatus);} 4return status;};} 5if(window.wpcf7cf_running_tests){document.querySelectorAll('input[name="_wpcf7cf_options"]').forEach(input=>{const opt=JSON.parse(input.value);opt.settings.animation_intime=0;opt.settings.animation_outtime=0;input.value=JSON.stringify(opt);});wpcf7cf_change_time_ms=0;} 6const wpcf7cf_show_animation={"height":"show","marginTop":"show","marginBottom":"show","paddingTop":"show","paddingBottom":"show"};const wpcf7cf_hide_animation={"height":"hide","marginTop":"hide","marginBottom":"hide","paddingTop":"hide","paddingBottom":"hide"};const wpcf7cf_show_step_animation={"opacity":"show"};const wpcf7cf_hide_step_animation={"opacity":"hide"};const wpcf7cf_change_events='input.wpcf7cf paste.wpcf7cf change.wpcf7cf click.wpcf7cf propertychange.wpcf7cf changedisabledprop.wpcf7cf';const wpcf7cf_forms=[];const Wpcf7cfForm=function(formElement){const $form=jQuery(formElement);const options_element=$form.find('input[name="_wpcf7cf_options"]').eq(0);if(!options_element.length||!options_element.val()){return false;} 7const form=this;formElement.addEventListener('submit',function(e){if(window.wpcf7cf_updatingGroups){e.preventDefault();e.stopImmediatePropagation();const retry=()=>{if(!window.wpcf7cf_updatingGroups){$form.off('.wpcf7cf-autosubmit');formElement.requestSubmit();}else{requestAnimationFrame(retry);}};$form.on('submit.wpcf7cf-autosubmit',(e)=>e.preventDefault());retry();return false;}},true);const submitButtons=formElement.querySelectorAll('button[type=submit], input[type=submit]');const prevDisabled=new WeakMap();let wasSubmitting=formElement.classList.contains('submitting');const observer=new MutationObserver(()=>{const isSubmitting=formElement.classList.contains('submitting');if(isSubmitting===wasSubmitting)return;wasSubmitting=isSubmitting;submitButtons.forEach(button=>{if(isSubmitting){prevDisabled.set(button,button.disabled);button.disabled=true;button.classList.add('is-disabled');}else{button.disabled=prevDisabled.get(button)||false;button.classList.remove('is-disabled');}});});observer.observe(formElement,{attributes:true,attributeFilter:['class']});const form_options=JSON.parse(options_element.val());form.$form=$form;form.formElement=formElement;form.$input_hidden_group_fields=$form.find('[name="_wpcf7cf_hidden_group_fields"]');form.$input_hidden_groups=$form.find('[name="_wpcf7cf_hidden_groups"]');form.$input_visible_groups=$form.find('[name="_wpcf7cf_visible_groups"]');form.$input_repeaters=$form.find('[name="_wpcf7cf_repeaters"]');form.$input_steps=$form.find('[name="_wpcf7cf_steps"]');form.unit_tag=$form.closest('.wpcf7').attr('id');form.conditions=form_options['conditions'];form.simpleDom=null;form.reloadSimpleDom=function(){form.simpleDom=wpcf7cf.get_simplified_dom_model(form.formElement);} 8form.updateSimpleDom=function(){if(!form.simpleDom){form.reloadSimpleDom();} 9const inputs=Object.values(form.simpleDom).filter(item=>item.type==='input');const formdata=new FormData(form.formElement);let formdataEntries=[...formdata.entries()].map(entry=>[entry[0],entry[1].name??entry[1]]);const buttonEntries=Array.from(form.formElement.querySelectorAll('button'),b=>[b.name,b.value]);formdataEntries=formdataEntries.concat(buttonEntries);
9inputs.forEach(simpleDomItem=>{const newValue=form.getNewDomValueIfChanged(simpleDomItem,formdataEntries);if(newValue!==null){form.simpleDom[simpleDomItem.name].val=newValue;}});} 10form.isDomMatch=function(simpleDomItem,formDataEntries){const simpleDomItemName=simpleDomItem.name;const simpleDomItemValues=simpleDomItem.val;const currentValues=formDataEntries.filter(entry=>entry[0]===simpleDomItemName).map(entry=>entry[1]);return currentValues.join('|')===simpleDomItemValues.join('|');} 11form.getNewDomValueIfChanged=function(simpleDomItem,formDataEntries){const simpleDomItemName=simpleDomItem.name;const simpleDomItemValues=simpleDomItem.val;const currentValues=formDataEntries.filter(entry=>entry[0]===simpleDomItemName).map(entry=>entry[1]);return currentValues.join('|')===simpleDomItemValues.join('|')?null:currentValues;} 12form.get=function(selector){return jQuery(selector,form.$form);} 13form.getFieldByName=function(name){return form.simpleDom[name]||form.simpleDom[name+'[]'];} 14for(let i=0;i<form.conditions.length;i++){const condition=form.conditions[i];if(!('and_rules'in condition)){condition.and_rules=[{'if_field':condition.if_field,'if_value':condition.if_value,'operator':condition.operator}];}} 15form.initial_conditions=form.conditions;form.settings=form_options['settings'];form.$groups=jQuery();form.repeaters=[];form.multistep=null;form.fields=[];form.settings.animation_intime=parseInt(form.settings.animation_intime);form.settings.animation_outtime=parseInt(form.settings.animation_outtime);if(form.settings.animation==='no'){form.settings.animation_intime=0;form.settings.animation_outtime=0;} 16form.updateGroups();form.updateEventListeners();form.displayFields();form.$form.on('reset.wpcf7cf',form,function(e){const form=e.data;setTimeout(function(){form.reloadSimpleDom();form.displayFields();form.resetRepeaters();if(form.multistep!=null){form.multistep.moveToStep(1,false);} 17setTimeout(function(){if(form.$form.hasClass('sent')){jQuery('.wpcf7-response-output',form.$form)[0].scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"});}},400);},200);});form.get('.wpcf7cf_repeater:not(.wpcf7cf_repeater .wpcf7cf_repeater)').each(function(){form.repeaters.push(new Wpcf7cfRepeater(jQuery(this),form));});form.$input_repeaters.val(JSON.stringify(form.repeaters.map((item)=>item.params.$repeater.id)));const $multistep=form.get('.wpcf7cf_multistep');if($multistep.length){form.multistep=new Wpcf7cfMultistep($multistep,form);}} 18Wpcf7cfForm.prototype.resetRepeaters=function(){const form=this;form.repeaters.forEach(repeater=>{repeater.updateSubs(repeater.params.$repeater.initial_subs);});} 19Wpcf7cfForm.prototype.displayFields=function(){const form=this;const wpcf7cf_conditions=this.conditions;const wpcf7cf_settings=this.settings;if(cf7signature_resized===0&&typeof signatures!=='undefined'&&signatures.constructor===Array&&signatures.length>0){for(let i=0;i<signatures.length;i++){if(signatures[i].canvas.width===0){const $sig_canvas=jQuery(".wpcf7-form-control-signature-body>canvas");const $sig_wrap=jQuery(".wpcf7-form-control-signature-wrap");$sig_canvas.eq(i).attr('width',$sig_wrap.width());$sig_canvas.eq(i).attr('height',$sig_wrap.height());cf7signature_resized=1;}}} 20form.$groups.addClass('wpcf7cf-hidden novalidate');for(let i=0;i<wpcf7cf_conditions.length;i++){const condition=wpcf7cf_conditions[i];const show_group=window.wpcf7cf.should_group_be_shown(condition,form);if(show_group){form.get('[data-id="'+condition.then_field+'"]').removeClass('wpcf7cf-hidden novalidate');}} 21const animation_intime=wpcf7cf_settings.animation_intime;const animation_outtime=wpcf7cf_settings.animation_outtime;form.$groups.each(function(index){const $group=jQuery(this);if($group.is(':animated')){$group.finish();} 22if($group.css('display')==='none'&&!$group.hasClass('wpcf7cf-hidden')){if($group.prop('tagName')==='SPAN'){$group.show().trigger('wpcf7cf_show_group');}else{$group.animate(wpcf7cf_show_animation,animation_intime).trigger('wpcf7cf_show_group');} 23if($group.attr('data-disable_on_hide')!==undefined){$group.find(':input').prop('disabled',false).trigger('changedisabledprop.wpcf7cf');$group.find('.wpcf7-form-control-wrap').removeClass('wpcf7cf-disabled');}}else if($group.css('display')!=='none'&&$group.hasClass('wpcf7cf-hidden')){if($group.attr('data-clear_on_hide')!==undefined){const $input
23s=jQuery(':input',$group).not(':button, :submit, :reset, :hidden');$inputs.each(function(){const $this=jQuery(this);$this.val(this.defaultValue);$this.prop('checked',this.defaultChecked);});jQuery('option',$group).each(function(){this.selected=this.defaultSelected;});jQuery('select',$group).each(function(){const $select=jQuery(this);if($select.val()===null){$select.val(jQuery("option:first",$select).val());}});$inputs.each(function(){this.dispatchEvent(new Event("change",{"bubbles":true}))});} 24if($group.prop('tagName')==='SPAN'){$group.hide().trigger('wpcf7cf_hide_group');}else{$group.animate(wpcf7cf_hide_animation,animation_outtime).trigger('wpcf7cf_hide_group');}}});form.updateHiddenFields();form.updateCalculatedFields();form.updateSummaryFields();};Wpcf7cfForm.prototype.updateCalculatedFields=function(){const form=this;const $calculatedFields=form.get('.wpcf7cf-calculated-field');if($calculatedFields.length===0){return;} 25$calculatedFields.each(function(){const $field=jQuery(this);const formula=$field.attr('data-formula');const func=$field.attr('data-func');let suffix='';if($field.is('input')){const currentName=$field.attr('name');const origName=$field.attr('data-orig_name')||currentName;const nameBase=currentName.replace('[]','');const origBase=origName.replace('[]','');suffix=nameBase.replace(origBase,'');}else{const $hiddenInput=$field.siblings('input[type="hidden"]').first();if($hiddenInput.length){const currentName=$hiddenInput.attr('name');const origName=$hiddenInput.attr('data-orig_name')||currentName;suffix=currentName.replace('[]','').replace(origName.replace('[]',''),'');}} 26let result;if(func&&typeof window[func]==='function'){const fieldsHelper=wpcf7cf.calculatedfieldsCreateFieldsHelper(form,suffix);try{result=window[func](fieldsHelper);}catch(e){result=0;} 27if(typeof result!=='number'||!isFinite(result)){result=isFinite(parseFloat(result))?parseFloat(result):0;}}else if(formula){result=wpcf7cf.calculatedfieldsEvaluateFormula(formula,form,suffix);}else{return;} 28const decimals=$field.attr('data-decimals');let displayValue=result;let rawValue=result;if(decimals!==undefined&&decimals!==''){const numDecimals=parseInt(decimals);rawValue=parseFloat(result).toFixed(numDecimals);const locale=document.documentElement.lang||'en-US';try{displayValue=new Intl.NumberFormat(locale,{minimumFractionDigits:numDecimals,maximumFractionDigits:numDecimals,}).format(result);}catch(e){displayValue=rawValue;}} 29let fieldName;if($field.is('input')){fieldName=$field.attr('name');$field.val(displayValue);$field.attr('data-raw-value',rawValue);}else{$field.text(displayValue);const $hidden=$field.siblings('input[type="hidden"]').first();$hidden.val(rawValue);fieldName=$hidden.attr('name');} 30if(fieldName&&form.simpleDom&&form.simpleDom[fieldName]){form.simpleDom[fieldName].val=[String(rawValue)];}});};Wpcf7cfForm.prototype.updateSummaryFields=function(){const form=this;const $summary=form.get('.wpcf7cf-summary');if($summary.length==0||!$summary.is(':visible')){return;} 31const fd=new FormData();const formdata=form.$form.serializeArray();jQuery.each(formdata,function(key,input){fd.append(input.name,input.value);});jQuery.each(form.$form.find('input[type="file"]'),function(index,el){if(!el.files.length)return true;const fieldName=el.name;fd.append(fieldName,new Blob(),Array.from(el.files).map(file=>file.name).join(', '));});jQuery.ajax({url:wpcf7cf_global_settings.ajaxurl+'?action=wpcf7cf_get_summary',type:'POST',data:fd,processData:false,contentType:false,dataType:'json',success:function(json){$summary.html(json.summaryHtml);}});};Wpcf7cfForm.prototype.updateHiddenFields=function(){const form=this;const hidden_fields=[];const hidden_groups=[];const visible_groups=[];form.$groups.each(function(){const $group=jQuery(this);if($group.hasClass('wpcf7cf-hidden')){hidden_groups.push($group.attr('data-id'));if($group.attr('data-disable_on_hide')!==undefined){$group.find('input,select,textarea').each(function(){const $this=jQuery(this);if(!$this.prop('disabled')){$this.prop('disabled',true).trigger('changedisabledprop.wpcf7cf');} 32if(form.$form.find(`[data-class="wpcf7cf_group"]:not(.wpcf7cf-hidden) [name='${$this.attr('name')}']`).length===0){hidden_fields.push($this.attr('name'));}}) 33$group.find('.wpcf7-form-control-wrap').addClass('wpcf7cf-disabled');}else{$group.find('input,select,textarea').each(function(){hidden_fields.push(jQuery(this).attr('name'));});}}else{visible_groups.push($group.attr('data-id'));}});form.hidden_fields=hidden_fields;form.hidden_groups=hidden_groups;form.visible_groups=visible_groups;form.$input_hidden_group_fields.val(JSON.stringify(hidden_fields));
33form.$input_hidden_groups.val(JSON.stringify(hidden_groups));form.$input_visible_groups.val(JSON.stringify(visible_groups));return true;};Wpcf7cfForm.prototype.updateGroups=function(){const form=this;form.$groups=form.$form.find('[data-class="wpcf7cf_group"]');form.$groups.height('auto');form.conditions=window.wpcf7cf.get_nested_conditions(form);};Wpcf7cfForm.prototype.updateEventListeners=function(){const form=this;form.get('input, select, textarea, button').not('.wpcf7cf_add, .wpcf7cf_remove').off(wpcf7cf_change_events).on(wpcf7cf_change_events,form,function(e){window.wpcf7cf_updatingGroups=true;const form=e.data;clearTimeout(wpcf7cf_timeout);wpcf7cf_timeout=setTimeout(function(){window.wpcf7cf.updateMultistepState(form.multistep);form.updateSimpleDom();form.displayFields();window.wpcf7cf_updatingGroups=false;},wpcf7cf_change_time_ms);});form.get('.wpcf7cf-togglebutton').off('click.toggle_wpcf7cf').on('click.toggle_wpcf7cf',function(){const $this=jQuery(this);if($this.text()===$this.attr('data-val-1')){$this.text($this.attr('data-val-2'));$this.val($this.attr('data-val-2'));}else{$this.text($this.attr('data-val-1'));$this.val($this.attr('data-val-1'));}});};function Wpcf7cfRepeater($repeater,form){const $=jQuery;let thisRepeater=this;const wpcf7cf_settings=form.settings;thisRepeater.form=form;$repeater.parentRepeaters=Array.from($repeater.parents('.wpcf7cf_repeater').map(function(){return this.getAttribute('data-id');})).reverse();$repeater.num_subs=0;$repeater.id=$repeater.attr('data-id');$repeater.orig_id=$repeater.attr('data-orig_data_id');$repeater.min=typeof($repeater.attr('data-min'))!=='undefined'?parseInt($repeater.attr('data-min')):1;$repeater.max=typeof($repeater.attr('data-max'))!=='undefined'?parseInt($repeater.attr('data-max')):200;$repeater.initial_subs=typeof($repeater.attr('data-initial'))!=='undefined'?parseInt($repeater.attr('data-initial')):$repeater.min;if($repeater.initial_subs>$repeater.max){$repeater.initial_subs=$repeater.max;} 34$repeater.remove_button=$repeater.attr('data-remove_button')==='per_entry'?'per_entry':'bottom';$repeater.show_sub_remove=$repeater.remove_button==='per_entry';const $repeater_sub=$repeater.children('.wpcf7cf_repeater_sub').eq(0);const $repeater_controls=$repeater.children('.wpcf7cf_repeater_controls').eq(0);if($repeater.show_sub_remove){const removeLabel=$repeater.children('.wpcf7cf_repeater_controls').find('.wpcf7cf_remove').eq(0).text()||'Remove';const $sub_controls=$('<span class="wpcf7cf_repeater_sub_controls" aria-hidden="false"></span>');$sub_controls.append($('<button type="button" class="wpcf7cf_sub_remove"></button>').text(removeLabel));$repeater_sub.append($sub_controls);} 35const $repeater_sub_clone=$repeater_sub.clone();$repeater_sub_clone.find('.wpcf7cf_repeater_sub').addBack('.wpcf7cf_repeater_sub').each(function(){const $this=jQuery(this);const prev_suffix=$this.attr('data-repeater_sub_suffix');const new_suffix=prev_suffix+'__{{repeater_sub_suffix}}';$this.attr('data-repeater_sub_suffix',new_suffix);});$repeater_sub_clone.find('[name]').each(function(){const $this=jQuery(this);const prev_name=$this.attr('name');const new_name=thisRepeater.getNewName(prev_name);const orig_name=$this.attr('data-orig_name')!=null?$this.attr('data-orig_name'):prev_name;$this.attr('name',new_name);$this.attr('data-orig_name',orig_name);$this.closest('.wpcf7-form-control-wrap').attr('data-name',new_name.replace('[]',''));});$repeater_sub_clone.find('.wpcf7cf_repeater,[data-class="wpcf7cf_group"]').each(function(){const $this=jQuery(this);const prev_data_id=$this.attr('data-id');const orig_data_id=$this.attr('data-orig_data_id')!=null?$this.attr('data-orig_data_id'):prev_data_id;let new_data_id=thisRepeater.getNewName(prev_data_id);if(prev_data_id.endsWith('_count')){new_data_id=prev_data_id.replace('_count','__{{repeater_sub_suffix}}_count');} 36$this.attr('data-id',new_data_id);$this.attr('data-orig_data_id',orig_data_id);});$repeater_sub_clone.find('[id]').each(function(){const $this=jQuery(this);const prev_id=$this.attr('id');const orig_id=$this.attr('data-orig_id')!=null?$this.attr('data-orig_id'):prev_id;const new_id=thisRepeater.getNewName(prev_id);$this.attr('id',new_id);$this.attr('data-orig_id',orig_id);});$repeater_sub_clone.find('[for]').each(function(){const $this=jQuery(this);const prev_for=$this.attr('for');const orig_for=$this.attr('data-orig_for')!=null?$this.attr('data-orig_for'):prev_for;const new_for=thisRepeater.getNewName(prev_for);$this.attr('for',new_for);$this.attr('data-orig_for',orig_for);});const repeater_sub_html=$repeater_sub_clone[0].outerHTML;const $repeater_count_field=$repeater.find('[name='+$repeater.id+'_count]').eq(0);const $button_add=$repeater_controls.find('.wpcf7cf_add').eq(0);const $button_remove=$repeater_controls.find('.wpcf7cf_remove').eq(0);const params={$repeater:$repeater,$repeater_count_field:$repeater_count_field,repeater_sub_html:repeater_sub_html,$repeater_controls:$repeater_controls,$button_add:$button_add,$button_remove:$button_remove,wpcf7cf_settings:wpcf7cf_settings};thisRepeater.params=params;$button_add.on('click',null,thisRepeater,function(e){thisRepeater=e.data;thisRepeater.updateSubs(params.$repeater.num_subs+1);});$button_remove.on('click',null,thisRepeater,function(e){thisRepeater=e.data;thisRepeater.updateSubs(params.$repeater.num_subs-1);});if($repeater.show_sub_remove){$repeater.on('click.wpcf7cf_sub_remove','> .wpcf7cf_repeater_sub > .wpcf7cf_repeater_sub_controls > .wpcf7cf_sub_remove',function(e){e.preventDefault();const idx=$(this).closest('.wpcf7cf_repeater_sub').index();thisRepeater.removeSubs(1,idx);});} 37jQuery('> .wpcf7cf_repeater_sub',params.$repeater).eq(0).remove();thisRepeater.updateSubs($repeater.initial_subs);thisRepeater.updateButtons();} 38Wpcf7cfRepeater.prototype.getNewName=function(previousName){const prev_parts=previousName.split('[');previousName=prev_parts[0];const prev_suff=prev_parts.length>1?'['+prev_parts.splice(1).join('['):'';let newName=previousName+'__{{repeater_sub_suffix}}'+prev_suff;if(previousName.endsWith('_count')){newName=previousName.replace('_count','__{{repeater_sub_suffix}}_count');} 39return newName;} 40Wpcf7cfRepeater.prototype.updateButtons=function(){const repeater=this;const params=repeater.params;const num_subs=params.$repeater.num_subs;let showButtonRemove=false;let showButtonAdd=false;if(params.$repeater.num_subs<params.$repeater.max){showButtonAdd=true;} 41if(params.$repeater.num_subs>params.$repeater.min){showButtonRemove=true;} 42if(params.$repeater.remove_button==='per_entry'){showButtonRemove=false;} 43if(showButtonAdd){params.$button_add.show();}else{params.$button_add.hide();} 44if(showButtonRemove){params.$button_remove.show();}else{params.$button_remove.hide();} 45if(params.$repeater.show_sub_remove){const $deletes=jQuery('> .wpcf7cf_repeater_sub > .wpcf7cf_repeater_sub_controls > .wpcf7cf_sub_remove',params.$repeater);if(params.$repeater.num_subs>params.$repeater.min){$deletes.show();}else{$deletes.hide();}} 46params.$repeater_count_field.val(num_subs);} 47Wpcf7cfRepeater.prototype.updateSubs=function(subs_to_show){const repeater=this;const params=repeater.params;subs_to_show=subs_to_show<params.$repeater.min?params.$repeater.min:subs_to_show 48subs_to_show=subs_to_show>params.$repeater.max?params.$repeater.max:subs_to_show 49const subs_to_add=subs_to_show-params.$repeater.num_subs;if(subs_to_add<0){repeater.removeSubs(-subs_to_add);}else if(subs_to_add>0){repeater.addSubs(subs_to_add);}};Wpcf7cfRepeater.prototype.addSubs=function(subs_to_add,index=null){const $=jQuery;const params=this.params;const repeater=this;const form=repeater.form;const $repeater=params.$repeater;const $repeater_controls=params.$repeater_controls;if(subs_to_add+$repeater.num_subs>$repeater.max){subs_to_add=$repeater.max-$repeater.num_subs;} 50let html_str='';for(let i=1;i<=subs_to_add;i++){const sub_suffix=$repeater.num_subs+i;html_str+=params.repeater_sub_html.replace(/\{\{repeater_sub_suffix\}\}
50/g,sub_suffix).replace(new RegExp('\{\{'+$repeater.orig_id+'_index\}\}','g'),'<span class="wpcf7cf-index wpcf7cf__'+$repeater.orig_id+'">'+sub_suffix+'</span>');} 51const $html=$(html_str);$('> .wpcf7cf_repeater_sub',$repeater).finish();if(index===null){$html.hide().insertBefore($repeater_controls).animate(wpcf7cf_show_animation,params.wpcf7cf_settings.animation_intime).trigger('wpcf7cf_repeater_added');}else{$html.hide().insertBefore($('> .wpcf7cf_repeater_sub',$repeater).eq(index)).animate(wpcf7cf_show_animation,params.wpcf7cf_settings.animation_intime).trigger('wpcf7cf_repeater_added');} 52$html.find('.wpcf7cf-disabled :input').prop('disabled',false).trigger('changedisabledprop.wpcf7cf');$html.find('.wpcf7-form-control-wrap').removeClass('wpcf7cf-disabled');$('.wpcf7cf_repeater',$html).each(function(){form.repeaters.push(new Wpcf7cfRepeater($(this),form));});form.$input_repeaters.val(JSON.stringify(form.repeaters.map((item)=>item.params.$repeater.id)));$repeater.num_subs+=subs_to_add;if(index!==null){repeater.updateSuffixes();} 53window.wpcf7cf.updateMultistepState(form.multistep);form.updateGroups();form.updateEventListeners();form.displayFields();repeater.updateButtons();$html.on('click','.wpcf7-exclusive-checkbox input:checkbox',function(){const name=$(this).attr('name');$html.find('input:checkbox[name="'+name+'"]').not(this).prop('checked',false);});if(typeof window.cf7mdInit==="function"){window.cf7mdInit();} 54return false;};Wpcf7cfRepeater.prototype.updateSuffixes=function(){const $repeater=this.params.$repeater;const num_subs=this.params.$repeater.num_subs;const form=this.form;const orig_id=$repeater.attr('data-orig_data_id');const repeater_id=$repeater.attr('data-id');const repeater_suffix=repeater_id.replace(orig_id,'');let simplifiedDomArray=Object.values(wpcf7cf.get_simplified_dom_model(form.formElement));for(let i=0;i<num_subs;i++){const $sub=jQuery('> .wpcf7cf_repeater_sub',$repeater).eq(i);const newIndex=i+1;const currentSuffix=$sub.attr('data-repeater_sub_suffix');const newSuffix=repeater_suffix+'__'+newIndex;$sub.attr('data-repeater_sub_suffix',newSuffix);$sub.find('.wpcf7cf__'+orig_id).html(newIndex);simplifiedDomArray.forEach(function(el){if(el.suffix!==currentSuffix)return;const newName=el.name.replace(currentSuffix,newSuffix);const pureElName=el.name.replace('[]','');const pureNewName=newName.replace('[]','');jQuery('[name="'+el.name+'"]',$sub).attr('name',newName);jQuery('[id="'+el.name+'"]',$sub).attr('id',newName);jQuery('label[for="'+el.name+'"]',$sub).attr('for',newName);const $nested_repeater=jQuery('[data-id="'+el.name+'"]',$sub);$nested_repeater.attr('data-id',newName);jQuery(`.wpcf7-form-control-wrap[data-name="${pureElName}"]`,$sub).attr('data-name',pureNewName);if(el.type==='repeater'){const nested_repeater=form.repeaters.find(function(repeater){return repeater.params.$repeater.get(0)===$nested_repeater.get(0);});if(!nested_repeater)return;nested_repeater.params.repeater_sub_html=wpcf7cf.updateRepeaterSubHTML(nested_repeater.params.repeater_sub_html,currentSuffix,newSuffix,nested_repeater.params.$repeater.parentRepeaters);nested_repeater.updateSuffixes();}});}};Wpcf7cfRepeater.prototype.getParentRepeaters=function(){const simplifiedDomArray=Object.values(wpcf7cf.get_simplified_dom_model(form.formElement));form.repeaters.map(repeater=>{});};Wpcf7cfRepeater.prototype.removeSubs=function(subs_to_remove,index=null){const $=jQuery;const repeater=this;const params=repeater.params;const form=repeater.form;const $repeater=params.$repeater;if($repeater.num_subs-subs_to_remove<$repeater.min){subs_to_remove=$repeater.num_subs-$repeater.min;} 55if(index===null){index=$repeater.num_subs-subs_to_remove;} 56$repeater.num_subs-=subs_to_remove;jQuery('> .wpcf7cf_repeater_sub',$repeater).finish();jQuery('> .wpcf7cf_repeater_sub',$repeater).slice(index,index+subs_to_remove).animate(wpcf7cf_hide_animation,{duration:params.wpcf7cf_settings.animation_intime,done:function(){const $this=jQuery(this);$this.remove();params.$repeater.trigger('wpcf7cf_repeater_removed');window.wpcf7cf.updateMultistepState(form.multistep);form.updateGroups();form.updateEventListeners();form.displayFields();repeater.updateButtons();if(index!==null){repeater.updateSuffixes();}}});return false;};function Wpcf7cfMultistep($multistep,form){const multistep=this;multistep.$multistep=$multistep;multistep.form=form;multistep.$steps=$multistep.find('.wpcf7cf_step');multistep.$btn_next=$multistep.find('.wpcf7cf_next');multistep.$btn_prev=$multistep.find('.wpcf7cf_prev');multistep.$dots=$multistep.find('.wpcf7cf_steps-dots');multistep.currentStep=0;multistep.numSteps=multistep.$steps.length;multistep.$dots.html('');for(let i=1;i<=multistep.numSteps;i++){multistep.$dots.append(` 57 <div class="dot" data-step="${i}"> 58 <div class="step-index">${i}</div> 59 <div class="step-title">${multistep.$steps.eq(i-1).attr('data-title')}</div> 60 </div> 61 `);} 62multistep.$btn_next.on('click.wpcf7cf_step',async function(){multistep.$btn_next.addClass('disabled').attr('disabled',true);multistep.form.$form.addClass('submitting');const result=await multistep.validateStep(multistep.currentStep);multistep.form.$form.removeClass('submitting');
62if(result==='success'){multistep.moveToStep(multistep.currentStep+1);}});multistep.form.$form.on('submit.wpcf7cf_step',function(e){if(multistep.form.$form.hasClass('submitting')){e.stopImmediatePropagation();return false;} 63if(multistep.currentStep!==multistep.numSteps){multistep.$btn_next.trigger('click.wpcf7cf_step');e.stopImmediatePropagation();return false;}});multistep.$btn_prev.on('click',function(){multistep.moveToStep(multistep.currentStep-1);});multistep.moveToStep(1);} 64Wpcf7cfMultistep.prototype.validateStep=function(step_index){const multistep=this;const $multistep=multistep.$multistep;const $form=multistep.form.$form;const form=multistep.form;$form.find('.wpcf7-response-output').addClass('wpcf7-display-none');return new Promise(resolve=>{const fd=new FormData();jQuery.each($form.find('[data-id="step-'+step_index+'"] input[type="file"]'),function(index,el){if(!el.files.length)return true;const file=el.files[0];const fieldName=el.name;fd.append(fieldName,file);});const formdata=$form.serializeArray();jQuery.each(formdata,function(key,input){fd.append(input.name,input.value);});jQuery.ajax({url:wpcf7cf_global_settings.ajaxurl+'?action=wpcf7cf_validate_step',type:'POST',data:fd,processData:false,contentType:false,dataType:'json',}).done(function(json){$multistep.find('.wpcf7-form-control-wrap .wpcf7-not-valid-tip').remove();$multistep.find('.wpcf7-not-valid').removeClass('wpcf7-not-valid');$multistep.find('.wpcf7-response-output.wpcf7-validation-errors').removeClass('wpcf7-validation-errors');multistep.$btn_next.removeClass('disabled').attr('disabled',false);if(!json.success){let checkError=0;jQuery.each(json.invalid_fields,function(index,el){if($multistep.find('input[name="'+index+'"]').length||$multistep.find('input[name="'+index+'[]"]').length||$multistep.find('select[name="'+index+'"]').length||$multistep.find('select[name="'+index+'[]"]').length||$multistep.find('textarea[name="'+index+'"]').length||$multistep.find('textarea[name="'+index+'[]"]').length){checkError=checkError+1;const controlWrap=form.get(`.wpcf7-form-control-wrap[data-name="${index}"]`);controlWrap.find('.wpcf7-form-control').addClass('wpcf7-not-valid');controlWrap.find('span.wpcf7-not-valid-tip').remove();controlWrap.append('<span role="alert" class="wpcf7-not-valid-tip">'+el.reason+'</span>');}});resolve('failed');$multistep.parent().find('.wpcf7-response-output').removeClass('wpcf7-display-none').html(json.message);wpcf7.setStatus($form,'invalid');multistep.$steps.trigger('wpcf7cf_step_invalid');}else if(json.success){wpcf7.setStatus($form,'init');resolve('success');return false;}}).fail(function(){resolve('error');}).always(function(){});});};Wpcf7cfMultistep.prototype.moveToStep=function(step_index,scrollToTop=true){const multistep=this;const previousStep=multistep.currentStep;multistep.currentStep=step_index>multistep.numSteps?multistep.numSteps:step_index<1?1:step_index;multistep.$multistep.attr('data-current_step',multistep.currentStep);multistep.$steps.hide();multistep.$steps.eq(multistep.currentStep-1).show().trigger('wpcf7cf_change_step',[previousStep,multistep.currentStep]);if(scrollToTop){const formEl=multistep.form.formElement;const topOffset=formEl.getBoundingClientRect().top;if(topOffset<0&&previousStep>0){formEl.scrollIntoView({behavior:"smooth"});}} 65multistep.form.updateSummaryFields();window.wpcf7cf.updateMultistepState(multistep);};Wpcf7cfMultistep.prototype.getFieldsInStep=function(step_index){this.form.reloadSimpleDom();let inStep=false;return Object.values(this.form.simpleDom).filter(function(item,i){if(item.type=='step'){inStep=item.val==step_index+'';} 66return inStep&&item.type=='input';}).map(function(item){return item.name;});};const wpcf7cf_date_regex=/^\d{4}-\d{2}-\d{2}$/;function wpcf7cf_isDateString(v){return typeof v==='string'&&wpcf7cf_date_regex.test(v)&&!isNaN(Date.parse(v));} 67window.wpcf7cf={hideGroup:function($group,animate){},showGroup:function($group,animate){},updateRepeaterSubHTML:function(html,oldSuffix,newSuffix,parentRepeaters){const oldIndexes=oldSuffix.split('__');oldIndexes.shift();const newIndexes=newSuffix.split('__');newIndexes.shift();let returnHtml=html;if(oldIndexes&&newIndexes&&oldIndexes.length===parentRepeaters.length&&newIndexes.length===parentRepeaters.length){const parentRepeatersInfo=parentRepeaters.map((repeaterId,i)=>{return{[repeaterId.split('__')[0]]:[oldIndexes[i],newIndexes[i]]};});const length=parentRepeatersInfo.length;let replacements=oldIndexes.map((oldIndex,i)=>{return['__'+oldIndexes.slice(0,length-i).join('__'),'__'+newIndexes.slice(0,length-i).join('__'),];});for(let i=0;i<length;i++){const id=Object.keys(parentRepeatersInfo[i])[0];const find=parentRepeatersInfo[i][id][0];const repl=parentRepeatersInfo[i][id][1];replacements.push([`<span class="wpcf7cf-index wpcf7cf__${id}">${find}<\\/span>`,`<span class="wpcf7cf-index wpcf7cf__${id}">${repl}</span>`]);}
68replacements.forEach(([oldSuffix,newSuffix])=>{returnHtml=returnHtml.replace(new RegExp(oldSuffix,'g'),newSuffix);});} 69return returnHtml;},initForm:function($forms){$forms.each(function(){const formElement=this;if(formElement.classList.contains('wpcf7-form')&&!wpcf7cf_forms.some((form)=>{return form.$form.get(0)===formElement;})){wpcf7cf_forms.push(new Wpcf7cfForm(formElement));}});},getWpcf7cfForm:function($form){const matched_forms=wpcf7cf_forms.filter((form)=>{return form.$form.get(0)===$form.get(0);});if(matched_forms.length){return matched_forms[0];} 70return false;},get_nested_conditions:function(form){const conditions=form.initial_conditions;form.reloadSimpleDom();const groups=Object.values(form.simpleDom).filter(function(item,i){return item.type==='group';});let sub_conditions=[];for(let i=0;i<groups.length;i++){const g=groups[i];let relevant_conditions=conditions.filter(function(condition,i){return condition.then_field===g.original_name;});relevant_conditions=relevant_conditions.map(function(item,i){return{then_field:g.name,and_rules:item.and_rules.map(function(and_rule,i){return{if_field:and_rule.if_field+g.suffix,if_value:and_rule.if_value,operator:and_rule.operator};})}});sub_conditions=sub_conditions.concat(relevant_conditions);} 71return sub_conditions;},get_simplified_dom_model:function(currentNode,simplified_dom={},parentGroups=[],parentRepeaters=[]){const type=currentNode.classList&¤tNode.classList.contains('wpcf7cf_repeater')?'repeater':currentNode.dataset.class=='wpcf7cf_group'?'group':currentNode.className=='wpcf7cf_step'?'step':currentNode.hasAttribute('name')?'input':false;let newParentRepeaters=[...parentRepeaters];let newParentGroups=[...parentGroups];if(type){const name=type==='input'?currentNode.getAttribute('name'):currentNode.dataset.id;if(type==='repeater'){newParentRepeaters.push(name);} 72if(type==='group'){newParentGroups.push(name);} 73if(name.substring(0,6)==='_wpcf7')return{};const original_name=type==='repeater'||type==='group'?currentNode.dataset.orig_data_id:type==='input'?(currentNode.getAttribute('data-orig_name')||name):name;const nameWithoutBrackets=name.replace('[]','');const originalNameWithoutBrackets=original_name.replace('[]','');const val=type==='step'?[currentNode.dataset.id.substring(5)]:[];const suffix=nameWithoutBrackets.replace(originalNameWithoutBrackets,'');if(!simplified_dom[name]){simplified_dom[name]={name,type,original_name,suffix,val,parentGroups,parentRepeaters}} 74if(type==='input'){if((currentNode.type==='checkbox'||currentNode.type==='radio')&&!currentNode.checked)return{};if(currentNode.multiple&¤tNode.options){simplified_dom[name].val=Object.values(currentNode.options).filter(o=>o.selected).map(o=>o.value)}else{simplified_dom[name].val.push(currentNode.value);}}} 75const getter=Object.getOwnPropertyDescriptor(Element.prototype,"children").get;const children=getter.call(currentNode);Array.from(children).forEach(childNode=>{const dom=wpcf7cf.get_simplified_dom_model(childNode,simplified_dom,newParentGroups,newParentRepeaters);simplified_dom={...dom,...simplified_dom};});return simplified_dom;},updateMultistepState:function(multistep){if(multistep==null)return;if(multistep.form.$form.hasClass('submitting'))return;const stepsData={currentStep:multistep.currentStep,numSteps:multistep.numSteps,fieldsInCurrentStep:multistep.getFieldsInStep(multistep.currentStep)};multistep.form.$input_steps.val(JSON.stringify(stepsData));multistep.$btn_prev.removeClass('disabled').attr('disabled',false);multistep.$btn_next.removeClass('disabled').attr('disabled',false);if(multistep.currentStep==multistep.numSteps){multistep.$btn_next.addClass('disabled').attr('disabled',true);} 76if(multistep.currentStep==1){multistep.$btn_prev.addClass('disabled').attr('disabled',true);} 77const $current_step=multistep.$steps.eq(multistep.currentStep-1);const prev_text=$current_step.attr('data-prev-button-text');const next_text=$current_step.attr('data-next-button-text');if(prev_text!==undefined)multistep.$btn_prev.text(prev_text);if(next_text!==undefined)multistep.$btn_next.text(next_text);const $submit_button=multistep.form.$form.find('input[type="submit"]:last').eq(0);const $ajax_loader=multistep.form.$form.find('.wpcf7-spinner').eq(0);$submit_button.detach().prependTo(multistep.$btn_next.parent());$ajax_loader.detach().prependTo(multistep.$btn_next.parent());if(multistep.currentStep==multistep.numSteps){multistep.$btn_next.hide();$submit_button.show();}else{$submit_button.hide();multistep.$btn_next.show();} 78const $dots=multistep.$dots.find('.dot');$dots.removeClass('active').removeClass('completed');for(let step=1;step<=multistep.numSteps;step++){if(step<multistep.currentStep){$dots.eq(step-1).addClass('completed');}else if(step==multistep.currentStep){$dots.eq(step-1).addClass('active');}}},should_group_be_shown:function(condition,form){let show_group=true;let atLeastOneFieldFound=false;for(let and_rule_i=0;and_rule_i<condition.and_rules.length;and_rule_i++){let condition_ok=false;const condition_and_rule=condition.and_rules[and_rule_i];const inputField=form.getFieldByName(condition_and_rule.if_field);if(!inputField)continue;atLeastOneFieldFound=true;const if_val=condition_and_rule.if_value;let operator=condition_and_rule.operator;operator=operator==='â¤'?'less than or equals':operator;operator=operator==='â¥'?'greater than or equals':operator;operator=operator==='>'?'greater than':operator;operator=operator==='<'?'less than':operator;const $field=operator==='function'&&jQuery(`[name="${inputField.name}"]`).eq(0);condition_ok=this.isConditionTrue(inputField.val,operator,if_val,$field);show_group=show_group&&condition_ok;} 79return show_group&&atLeastOneFieldFound;},isConditionTrue(values,operator,testValue='',$field=jQuery()){if(!Array.isArray(values)){values=[values];} 80let condition_ok=false;const valuesAreEmpty=values.length===0||values.every((v)=>!v&&v!==0);if(operator==='equals'&&testValue===''&&valuesAreEmpty){return true;} 81if(operator==='not equals'&&testValue===''&&valuesAreEmpty){return false;} 82if(valuesAreEmpty){if(operator==='is empty'){condition_ok=true;}}else{if(operator==='not empty'){condition_ok=true;}} 83const testValueNumber=isFinite(parseFloat(testValue))?parseFloat(testValue):NaN;const testValueIsDate=wpcf7cf_isDateString(testValue);if(operator==='not equals'||operator==='not equals (regex)'){condition_ok=true;} 84if(operator==='function'&&typeof window[testValue]=='function'&&window[testValue]($field)){condition_ok=true;} 85let regex_patt=/.*/i;let isValidRegex=true;if(operator==='equals (regex)'||operator==='not equals (regex)'){try{regex_patt=new RegExp(testValue,'i');}catch(e){isValidRegex=false;}} 86for(let i=0;i<values.length;i++){const value=values[i];const valueNumber=isFinite(parseFloat(value))?parseFloat(value):NaN;const valsAreNumbers=!isNaN(valueNumber)&&!isNaN(testValueNumber);const valueIsDate=wpcf7cf_isDateString(value);const compareAsDates=testValueIsDate&&valueIsDate;const left=compareAsDates?Date.parse(value):valueNumber;const right=compareAsDates?Date.parse(testValue):testValueNumber;const comparable=compareAsDates||(valsAreNumbers&&testValueIsDate===valueIsDate);if(operator==='equals'&&value===testValue||operator==='equals (regex)'&®ex_patt.test(value)||operator==='greater than'&&comparable&&left>right||operator==='less than'&&comparable&&left<right||operator==='greater than or equals'&&comparable&&left>=right||operator==='less than or equals'&&comparable&&left<=right){condition_ok=true;break;}else if(operator==='not equals'&&value===testValue||operator==='not equals (regex)'&®ex_patt.test(value)){condition_ok=false;break;}} 87return condition_ok;},getFormObj($form){if(typeof $form==='string'){$form=jQuery($form).eq(0);} 88return wpcf7cf.getWpcf7cfForm($form);},getRepeaterObj($form,repeaterDataId){const form=wpcf7cf.getFormObj($form);const repeater=form.repeaters.find(repeater=>repeater.params.$repeater.attr('data-id')===repeaterDataId);return repeater;},getMultiStepObj($form){const form=wpcf7cf.getFormObj($form);return form.multistep;},repeaterAddSub($form,repeaterDataId){const repeater=wpcf7cf.getRepeaterObj($form,repeaterDataId);repeater.updateSubs(repeater.params.$repeater.num_subs+1);},repeaterAddSubAtIndex($form,repeaterDataId,index){const repeater=wpcf7cf.getRepeaterObj($form,repeaterDataId);repeater.addSubs(1,index);},repeaterRemoveSubAtIndex($form,repeaterDataId,index){const repeater=wpcf7cf.getRepeaterObj($form,repeaterDataId);repeater.removeSubs(1,index);},repeaterRemoveSub($form,repeaterDataId){const repeater=wpcf7cf.getRepeaterObj($form,repeaterDataId);repeater.updateSubs(repeater.params.$repeater.num_subs-1);},repeaterSetNumberOfSubs($form,repeaterDataId,numberOfSubs){const repeater=wpcf7cf.getRepeaterObj($form,repeaterDataId);repeater.updateSubs(numberOfSubs);},multistepMoveToStep($form,step){const multistep=wpcf7cf.getMultiStepObj($form);multistep.moveToStep(step);},async multistepMoveToStepWithValidation($form,step){const multistep=wpcf7cf.getMultiStepObj($form);const result=await multistep.validateStep(multistep.currentStep);if(result==='success'){multistep.moveToStep(step);}},calculatedfieldsCreateFieldsHelper(form,suffix){suffix=suffix||'';function resolveField(name){if(suffix){const suffixed=form.getFieldByName(name+suffix)||form.getFieldByName(name+suffix+'[]');if(suffixed)return suffixed;} 89return form.getFieldByName(name)||form.getFieldByName(name+'[]');} 90function getNumericValue(field){if(!field||!field.val||!field.val.length)return 0;const calcVal=wpcf7cf.calculatedfieldsGetCalcValue(field.name,form);if(calcVal!==null)return calcVal;let sum=0;for(let i=0;i<field.val.length;i++){const numericStr=String(field.val[i]).replace(/[^0-9.\-]/g,'');const num=parseFloat(numericStr);if(isFinite(num))sum+=num;} 91return sum;} 92return{get(name){return getNumericValue(resolveField(name));},raw(name){const field=resolveField(name);if(!field||!field.val)return'';return field.val.length===1?field.val[0]:field.val;},all(){const result={};if(!form.simpleDom)return result;for(const key in form.simpleDom){const item=form.simpleDom[key];if(item.type==='input'){result[item.name.replace('[]','')]=getNumericValue(item);}} 93return result;},sum(name){if(!form.simpleDom)return 0;let total=0;for(const key in form.simpleDom){const item=form.simpleDom[key];if(item.type!=='input')continue;const origName=item.original_name?item.original_name.replace('[]',''):'';if(origName===name||origName===name+'[]'){const calcVal=wpcf7cf.calculatedfieldsGetCalcValue(item.name,form);if(calcVal!==null){total+=calcVal;}else{total+=getNumericValue(item);}}} 94return total;},suffix(){return suffix;}}
94;},calculatedfieldsEvaluateFormula(formula,form,suffix){suffix=suffix||'';function sumAcrossSubs(fieldName){if(!form.simpleDom)return 0;let total=0;for(const key in form.simpleDom){const item=form.simpleDom[key];if(item.type!=='input')continue;const origName=item.original_name?item.original_name.replace('[]',''):'';if(origName===fieldName||origName===fieldName+'[]'){const calcVal=wpcf7cf.calculatedfieldsGetCalcValue(item.name,form);if(calcVal!==null){total+=calcVal;}else if(item.val&&item.val.length){for(let i=0;i<item.val.length;i++){const num=parseFloat(String(item.val[i]).replace(/[^0-9.\-]/g,''));if(isFinite(num))total+=num;}}}} 95return total;} 96const expression=formula.replace(/\[([^\]]+)\]/g,function(match,ref){if(ref.indexOf('sum:')===0){const fieldName=ref.substring(4);return String(sumAcrossSubs(fieldName));} 97let field=null;if(suffix){field=form.getFieldByName(ref+suffix)||form.getFieldByName(ref+suffix+'[]');} 98if(!field){field=form.getFieldByName(ref)||form.getFieldByName(ref+'[]');} 99if(!field)return'0';const calcVal=wpcf7cf.calculatedfieldsGetCalcValue(field.name,form);if(calcVal!==null)return String(calcVal);const values=field.val;if(!values||!values.length)return'0';let sum=0;for(let i=0;i<values.length;i++){const numericStr=String(values[i]).replace(/[^0-9.\-]/g,'');const num=parseFloat(numericStr);if(isFinite(num)){sum+=num;}} 100return String(sum);});return wpcf7cf.calculatedfieldsSafeMathEval(expression);},calculatedfieldsGetCalcValue(fieldName,form){const cleanName=fieldName.replace('[]','');const $formEl=form.$form;const $select=$formEl.find('select[name="'+fieldName+'"], select[name="'+cleanName+'"]');if($select.length){const $selected=$select.find('option:selected[data-calc-value]');if($selected.length){let sum=0;$selected.each(function(){const num=parseFloat(jQuery(this).attr('data-calc-value'));if(isFinite(num))sum+=num;});return sum;} 101if($select.find('option[data-calc-value]').length===0)return null;return 0;} 102const $inputs=$formEl.find('input[name="'+fieldName+'"][data-calc-value], input[name="'+cleanName+'"][data-calc-value], input[name="'+cleanName+'[]"][data-calc-value]');if($inputs.length){let sum=0;$inputs.filter(':checked').each(function(){const num=parseFloat(jQuery(this).attr('data-calc-value'));if(isFinite(num))sum+=num;});return sum;} 103return null;},calculatedfieldsSafeMathEval(expr){expr=expr.replace(/\s+/g,'');if(!/^[\d\+\-\*\/\(\)\.]+$/.test(expr)){return 0;} 104const tokens=[];let num='';for(let i=0;i<expr.length;i++){const c=expr[i];if((c>='0'&&c<='9')||c==='.'){num+=c;}else{if(num!==''){tokens.push(parseFloat(num));num='';} 105if(c==='-'&&(i===0||expr[i-1]==='('||'+-*/'.includes(expr[i-1]))){num='-';}else{tokens.push(c);}}} 106if(num!==''){tokens.push(parseFloat(num));} 107const output=[];const ops=[];const prec={'+':1,'-':1,'*':2,'/':2};for(let i=0;i<tokens.length;i++){const t=tokens[i];if(typeof t==='number'){output.push(t);}else if(prec[t]!==undefined){while(ops.length&&ops[ops.length-1]!=='('&&(prec[ops[ops.length-1]]||0)>=prec[t]){output.push(ops.pop());} 108ops.push(t);}else if(t==='('){ops.push(t);}else if(t===')'){while(ops.length&&ops[ops.length-1]!=='('){output.push(ops.pop());} 109if(ops.length)ops.pop();}} 110while(ops.length){output.push(ops.pop());} 111const stack=[];for(let i=0;i<output.length;i++){const t=output[i];if(typeof t==='number'){stack.push(t);}else{if(stack.length<2)return 0;const b=stack.pop();const a=stack.pop();switch(t){case'+':stack.push(a+b);break;case'-':stack.push(a-b);break;case'*':stack.push(a*b);break;case'/':stack.push(b!==0?a/b:0);break;}}} 112return stack.length?stack[stack.length-1]:0;},};document.querySelectorAll('.wpcf7-form').forEach(function(formElement){wpcf7cf_forms.push(new Wpcf7cfForm(formElement));});document.addEventListener('DOMContentLoaded',function(){wpcf7cf_forms.forEach(function(f){f.displayFields();});});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.