Conditional Fields for Contact Form 7 - Version 1.8.7

Version Description

(2020-06-01) = * PRO: Change auto-update mechanism * Some minor JS refactoring * Improved on some edge cases with equals "" and not equals "" * Improved test suites.

Download this release

Release Info

Developer Jules Colle
Plugin Icon 128x128 Conditional Fields for Contact Form 7
Version 1.8.7
Comparing to
See all releases

Code changes from version 1.8.6 to 1.8.7

contact-form-7-conditional-fields.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Contact Form 7 Conditional Fields
4
  Plugin URI: http://bdwm.be/
5
  Description: Adds support for conditional fields to Contact Form 7. This plugin depends on Contact Form 7.
6
  Author: Jules Colle
7
- Version: 1.8.6
8
  Author URI: http://bdwm.be/
9
  */
10
 
4
  Plugin URI: http://bdwm.be/
5
  Description: Adds support for conditional fields to Contact Form 7. This plugin depends on Contact Form 7.
6
  Author: Jules Colle
7
+ Version: 1.8.7
8
  Author URI: http://bdwm.be/
9
  */
10
 
init.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- if (!defined('WPCF7CF_VERSION')) define( 'WPCF7CF_VERSION', '1.8.6' );
4
  if (!defined('WPCF7CF_REQUIRED_WP_VERSION')) define( 'WPCF7CF_REQUIRED_WP_VERSION', '4.1' );
5
  if (!defined('WPCF7CF_PLUGIN')) define( 'WPCF7CF_PLUGIN', __FILE__ );
6
  if (!defined('WPCF7CF_PLUGIN_BASENAME')) define( 'WPCF7CF_PLUGIN_BASENAME', plugin_basename( WPCF7CF_PLUGIN ) );
1
  <?php
2
 
3
+ if (!defined('WPCF7CF_VERSION')) define( 'WPCF7CF_VERSION', '1.8.7' );
4
  if (!defined('WPCF7CF_REQUIRED_WP_VERSION')) define( 'WPCF7CF_REQUIRED_WP_VERSION', '4.1' );
5
  if (!defined('WPCF7CF_PLUGIN')) define( 'WPCF7CF_PLUGIN', __FILE__ );
6
  if (!defined('WPCF7CF_PLUGIN_BASENAME')) define( 'WPCF7CF_PLUGIN_BASENAME', plugin_basename( WPCF7CF_PLUGIN ) );
js/scripts.js CHANGED
@@ -461,11 +461,11 @@ function Wpcf7cfRepeater($repeater, form) {
461
  wpcf7cf_settings: wpcf7cf_settings
462
  };
463
  this.params = params;
464
- $button_add.click(repeater, function (e) {
465
  var repeater = e.data;
466
  repeater.updateSubs(params.$repeater.num_subs + 1);
467
  });
468
- $button_remove.click(repeater, function (e) {
469
  var repeater = e.data;
470
  repeater.updateSubs(params.$repeater.num_subs - 1);
471
  });
@@ -612,8 +612,8 @@ function Wpcf7cfMultistep($multistep, form) {
612
  }
613
  }
614
  }, _callee);
615
- }))); // If form is submitted (by pressing retrun for example), and if we are not on the last step,
616
- // then trigger click event on the $next button instead.
617
 
618
  multistep.form.$form.on('submit.wpcf7cf_step', function (e) {
619
  if (multistep.currentStep !== multistep.numSteps) {
@@ -622,7 +622,7 @@ function Wpcf7cfMultistep($multistep, form) {
622
  return false;
623
  }
624
  });
625
- multistep.$btn_prev.click(function () {
626
  multistep.moveToStep(multistep.currentStep - 1);
627
  });
628
  multistep.moveToStep(1);
@@ -660,16 +660,6 @@ Wpcf7cfMultistep.prototype.validateStep = function (step_index) {
660
  contentType: false,
661
  dataType: 'json'
662
  }).done(function (json) {
663
- /*
664
- * Insert _form_data_id if 'json variable' has
665
- */
666
- // if (typeof json._cf7mls_db_form_data_id != 'undefined') {
667
- // if (!form.find('input[name="_cf7mls_db_form_data_id"]').length) {
668
- // form.append('<input type="hidden" name="_cf7mls_db_form_data_id" value="'+json._cf7mls_db_form_data_id+'" />');
669
- // }
670
- // }
671
- //reset error messages
672
- //$multistep.find('.wpcf7-form-control-wrap').removeClass('cf7mls-invalid');
673
  $multistep.find('.wpcf7-form-control-wrap .wpcf7-not-valid-tip').remove();
674
  $multistep.find('.wpcf7-not-valid').removeClass('wpcf7-not-valid');
675
  $multistep.find('.wpcf7-response-output').remove();
@@ -680,15 +670,13 @@ Wpcf7cfMultistep.prototype.validateStep = function (step_index) {
680
  jQuery.each(json.invalid_fields, function (index, el) {
681
  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) {
682
  checkError = checkError + 1;
683
- var controlWrap = jQuery('.wpcf7-form-control-wrap.' + index, $form); //controlWrap.addClass('cf7mls-invalid');
684
-
685
  controlWrap.find('input').addClass('wpcf7-not-valid');
686
  controlWrap.find('span.wpcf7-not-valid-tip').remove();
687
- controlWrap.append('<span role="alert" class="wpcf7-not-valid-tip">' + el.reason + '</span>'); //return false;
688
  }
689
  });
690
- resolve('failed'); //$multistep.append('<div class="wpcf7-response-output wpcf7-display-none wpcf7-validation-errors" style="display: block;" role="alert">' + json.message + '</div>');
691
-
692
  $multistep.parent().find('.wpcf7-response-output').removeClass('wpcf7-display-none').html(json.message);
693
  } else if (json.success) {
694
  resolve('success');
@@ -946,23 +934,27 @@ window.wpcf7cf = {
946
  }
947
 
948
  var condition_ok = false; // start by assuming that the condition is not met
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
949
 
950
- if (!values || values.length == 0 || values.every(function (v) {
951
- return !v || 0;
952
- })) {
953
- // no values or only empty values passed (0 is not considered empty)
954
  if (operator === 'is empty') {
955
  condition_ok = true;
956
  }
957
-
958
- if (operator === 'not empty') {
959
- condition_ok = false;
960
- }
961
  } else {
962
- if (operator === 'is empty') {
963
- condition_ok = false;
964
- }
965
-
966
  if (operator === 'not empty') {
967
  condition_ok = true;
968
  }
@@ -1023,7 +1015,7 @@ jQuery('document').ready(function () {
1023
  var old_wpcf7ExclusiveCheckbox = jQuery.fn.wpcf7ExclusiveCheckbox;
1024
 
1025
  jQuery.fn.wpcf7ExclusiveCheckbox = function () {
1026
- return this.find('input:checkbox').click(function () {
1027
  var name = jQuery(this).attr('name');
1028
  jQuery(this).closest('form').find('input:checkbox[name="' + name + '"]').not(this).prop('checked', false).eq(0).change();
1029
  });
461
  wpcf7cf_settings: wpcf7cf_settings
462
  };
463
  this.params = params;
464
+ $button_add.on('click', null, repeater, function (e) {
465
  var repeater = e.data;
466
  repeater.updateSubs(params.$repeater.num_subs + 1);
467
  });
468
+ $button_remove.on('click', null, repeater, function (e) {
469
  var repeater = e.data;
470
  repeater.updateSubs(params.$repeater.num_subs - 1);
471
  });
612
  }
613
  }
614
  }, _callee);
615
+ }))); // If form is submitted (by pressing return for example), and if we are not on the last step,
616
+ // then trigger click event on the $btn_next button instead.
617
 
618
  multistep.form.$form.on('submit.wpcf7cf_step', function (e) {
619
  if (multistep.currentStep !== multistep.numSteps) {
622
  return false;
623
  }
624
  });
625
+ multistep.$btn_prev.on('click', function () {
626
  multistep.moveToStep(multistep.currentStep - 1);
627
  });
628
  multistep.moveToStep(1);
660
  contentType: false,
661
  dataType: 'json'
662
  }).done(function (json) {
 
 
 
 
 
 
 
 
 
 
663
  $multistep.find('.wpcf7-form-control-wrap .wpcf7-not-valid-tip').remove();
664
  $multistep.find('.wpcf7-not-valid').removeClass('wpcf7-not-valid');
665
  $multistep.find('.wpcf7-response-output').remove();
670
  jQuery.each(json.invalid_fields, function (index, el) {
671
  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) {
672
  checkError = checkError + 1;
673
+ var controlWrap = jQuery('.wpcf7-form-control-wrap.' + index, $form);
 
674
  controlWrap.find('input').addClass('wpcf7-not-valid');
675
  controlWrap.find('span.wpcf7-not-valid-tip').remove();
676
+ controlWrap.append('<span role="alert" class="wpcf7-not-valid-tip">' + el.reason + '</span>');
677
  }
678
  });
679
+ resolve('failed');
 
680
  $multistep.parent().find('.wpcf7-response-output').removeClass('wpcf7-display-none').html(json.message);
681
  } else if (json.success) {
682
  resolve('success');
934
  }
935
 
936
  var condition_ok = false; // start by assuming that the condition is not met
937
+ // Considered EMPTY: [] [''] [null] ['',null] [,,'']
938
+ // Considered NOT EMPTY: [0] ['ab','c'] ['',0,null]
939
+
940
+ var valuesAreEmpty = values.length === 0 || values.every(function (v) {
941
+ return !v && v !== 0;
942
+ }); // 0 is not considered empty
943
+ // special cases: [] equals '' => TRUE; [] not equals '' => FALSE
944
+
945
+ if (operator === 'equals' && testValue === '' && valuesAreEmpty) {
946
+ return true;
947
+ }
948
+
949
+ if (operator === 'not equals' && testValue === '' && valuesAreEmpty) {
950
+ return false;
951
+ }
952
 
953
+ if (valuesAreEmpty) {
 
 
 
954
  if (operator === 'is empty') {
955
  condition_ok = true;
956
  }
 
 
 
 
957
  } else {
 
 
 
 
958
  if (operator === 'not empty') {
959
  condition_ok = true;
960
  }
1015
  var old_wpcf7ExclusiveCheckbox = jQuery.fn.wpcf7ExclusiveCheckbox;
1016
 
1017
  jQuery.fn.wpcf7ExclusiveCheckbox = function () {
1018
+ return this.find('input:checkbox').on('click', function () {
1019
  var name = jQuery(this).attr('name');
1020
  jQuery(this).closest('form').find('input:checkbox[name="' + name + '"]').not(this).prop('checked', false).eq(0).change();
1021
  });
js/scripts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./js/scripts_es6.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///(webpack)/buildin/module.js"],"names":["cf7signature_resized","wpcf7cf_timeout","wpcf7cf_change_time_ms","window","wpcf7cf_running_tests","wpcf7cf_show_animation","wpcf7cf_hide_animation","wpcf7cf_show_step_animation","wpcf7cf_hide_step_animation","wpcf7cf_change_events","wpcf7cf_forms","String","prototype","endsWith","search","this_len","undefined","length","substring","Wpcf7cfForm","$form","options_element","find","eq","val","form","form_options","JSON","parse","$input_hidden_group_fields","$input_hidden_groups","$input_visible_groups","$input_repeaters","$input_steps","unit_tag","closest","attr","conditions","i","condition","and_rules","if_field","if_value","operator","initial_conditions","settings","$groups","jQuery","repeaters","multistep","fields","animation_intime","parseInt","animation_outtime","animation","updateGroups","updateEventListeners","displayFields","on","e","data","setTimeout","resetRepeaters","moveToStep","each","push","Wpcf7cfRepeater","stringify","map","item","params","$repeater","id","$multistep","Wpcf7cfMultistep","forEach","repeater","updateSubs","initial_subs","wpcf7cf","get_simplified_dom_model","wpcf7cf_conditions","wpcf7cf_settings","signatures","constructor","Array","canvas","width","$sig_canvas","$sig_wrap","height","addClass","show_group","should_group_be_shown","then_field","removeClass","index","$group","is","finish","css","hasClass","prop","show","trigger","animate","$inputs","not","$this","defaultValue","defaultChecked","selected","defaultSelected","$select","change","hide","updateHiddenFields","updateSummaryFields","$summary","fd","FormData","formdata","serializeArray","key","input","append","name","value","ajax","url","wpcf7cf_global_settings","ajaxurl","type","processData","contentType","dataType","success","json","html","summaryHtml","hidden_fields","hidden_groups","visible_groups","get_nested_conditions","off","clearTimeout","text","$","num_subs","orig_id","min","max","$repeater_sub","children","$repeater_controls","$repeater_sub_clone","clone","addBack","prev_suffix","new_suffix","prev_name","orig_name","new_name","replace","prev_data_id","orig_data_id","new_data_id","prev_id","new_id","prev_for","orig_for","new_for","repeater_sub_html","outerHTML","$repeater_count_field","$button_add","$button_remove","click","remove","subs_to_show","subs_to_add","removeSubs","addSubs","showButtonRemove","showButtonAdd","html_str","sub_suffix","RegExp","$html","insertBefore","updateMultistepState","cf7mdInit","slice","duration","done","$steps","$btn_next","$btn_prev","$dots","currentStep","numSteps","validateStep","result","stopImmediatePropagation","document","ajaxComplete","xhr","hasOwnProperty","responseJSON","status","into","step_index","Promise","resolve","el","files","file","fieldName","checkError","invalid_fields","controlWrap","reason","parent","message","fail","always","previousStep","formEl","topOffset","getBoundingClientRect","top","scrollIntoView","behavior","getFieldsInStep","simpleDom","inStep","filter","step","initForm","$current_form","simplified_dom","groups","sub_conditions","g","relevant_conditions","original_name","and_rule","suffix","concat","currentNode","ni","createNodeIterator","NodeFilter","SHOW_ELEMENT","nextNode","classList","contains","dataset","className","hasAttribute","getAttribute","original_name_length","stepsData","fieldsInCurrentStep","$submit_button","$ajax_loader","detach","appendTo","and_rule_i","condition_ok","condition_and_rule","$field","if_val","if_val_as_number","isFinite","parseFloat","regex_patt","isValidRegex","all_values","checked_values","isConditionTrue","values","testValue","isArray","every","v","testValueNumber","NaN","valueNumber","valsAreNumbers","isNaN","test","ready","f","old_wpcf7ExclusiveCheckbox","fn","wpcf7ExclusiveCheckbox","asyncGeneratorStep","gen","reject","_next","_throw","arg","info","error","then","_asyncToGenerator","self","args","arguments","apply","err","module","exports","require","runtime","Op","Object","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","obj","call","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","displayName","defineIteratorMethods","method","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","PromiseImpl","invoke","record","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","async","iter","next","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","nextLoc","toString","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","keys","object","reverse","pop","iterable","iteratorMethod","skipTempReset","prev","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackPolyfill","deprecate","paths","defineProperty","enumerable","get","l"],"mappings":"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","file":"scripts.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./js/scripts_es6.js\");\n","\"use strict\";\n\nvar cf7signature_resized = 0; // for compatibility with contact-form-7-signature-addon\n\nvar wpcf7cf_timeout;\nvar wpcf7cf_change_time_ms = window.wpcf7cf_running_tests ? 0 : 100;\n\nvar wpcf7cf_show_animation = { \"height\": \"show\", \"marginTop\": \"show\", \"marginBottom\": \"show\", \"paddingTop\": \"show\", \"paddingBottom\": \"show\" };\nvar wpcf7cf_hide_animation = { \"height\": \"hide\", \"marginTop\": \"hide\", \"marginBottom\": \"hide\", \"paddingTop\": \"hide\", \"paddingBottom\": \"hide\" };\n\nvar wpcf7cf_show_step_animation = { \"opacity\": \"show\" };\nvar wpcf7cf_hide_step_animation = { \"opacity\": \"hide\" };\n\nvar wpcf7cf_change_events = 'input.wpcf7cf paste.wpcf7cf change.wpcf7cf click.wpcf7cf propertychange.wpcf7cf';\n\nvar wpcf7cf_forms = [];\n\n// endswith polyfill\nif (!String.prototype.endsWith) {\n\tString.prototype.endsWith = function(search, this_len) {\n\t\tif (this_len === undefined || this_len > this.length) {\n\t\t\tthis_len = this.length;\n\t\t}\n\t\treturn this.substring(this_len - search.length, this_len) === search;\n\t};\n}\n\nvar Wpcf7cfForm = function($form) {\n\n var options_element = $form.find('input[name=\"_wpcf7cf_options\"]').eq(0);\n if (!options_element.length || !options_element.val()) {\n // doesn't look like a CF7 form created with conditional fields plugin enabled.\n return false;\n }\n\n var form = this;\n\n var form_options = JSON.parse(options_element.val());\n\n form.$form = $form;\n form.$input_hidden_group_fields = $form.find('[name=\"_wpcf7cf_hidden_group_fields\"]');\n form.$input_hidden_groups = $form.find('[name=\"_wpcf7cf_hidden_groups\"]');\n form.$input_visible_groups = $form.find('[name=\"_wpcf7cf_visible_groups\"]');\n form.$input_repeaters = $form.find('[name=\"_wpcf7cf_repeaters\"]');\n form.$input_steps = $form.find('[name=\"_wpcf7cf_steps\"]');\n\n form.unit_tag = $form.closest('.wpcf7').attr('id');\n form.conditions = form_options['conditions'];\n\n // compatibility with conditional forms created with older versions of the plugin ( < 1.4 )\n for (var i=0; i < form.conditions.length; i++) {\n var condition = form.conditions[i];\n if (!('and_rules' in condition)) {\n condition.and_rules = [{'if_field':condition.if_field,'if_value':condition.if_value,'operator':condition.operator}];\n }\n }\n\n form.initial_conditions = form.conditions;\n form.settings = form_options['settings'];\n\n form.$groups = jQuery(); // empty jQuery set\n form.repeaters = [];\n form.multistep = null;\n form.fields = [];\n\n form.settings.animation_intime = parseInt(form.settings.animation_intime);\n form.settings.animation_outtime = parseInt(form.settings.animation_outtime);\n\n if (form.settings.animation === 'no') {\n form.settings.animation_intime = 0;\n form.settings.animation_outtime = 0;\n }\n\n form.updateGroups();\n form.updateEventListeners();\n form.displayFields();\n\n // bring form in initial state if the reset event is fired on it.\n form.$form.on('reset.wpcf7cf', form, function(e) {\n var form = e.data;\n setTimeout(function(){\n form.displayFields();\n form.resetRepeaters();\n if (form.multistep != null) {\n form.multistep.moveToStep(1); \n }\n },200);\n });\n\n // PRO ONLY\n\n jQuery('.wpcf7cf_repeater:not(.wpcf7cf_repeater .wpcf7cf_repeater)', $form).each(function(){\n form.repeaters.push(new Wpcf7cfRepeater(jQuery(this),form));\n });\n\n form.$input_repeaters.val(JSON.stringify(form.repeaters.map((item)=>item.params.$repeater.id)));\n\n var $multistep = jQuery('.wpcf7cf_multistep', $form);\n\n if ($multistep.length) {\n form.multistep = new Wpcf7cfMultistep($multistep, form);\n // window.wpcf7cf.updateMultistepState(form.multistep);\n }\n\n // END PRO ONLY\n\n}\n\n/**\n * reset initial number of subs for each repeater.\n * (does not clear values)\n */\nWpcf7cfForm.prototype.resetRepeaters = function() {\n var form = this;\n form.repeaters.forEach(repeater => {\n repeater.updateSubs( repeater.params.$repeater.initial_subs );\n });\n}\n\nWpcf7cfForm.prototype.displayFields = function() {\n\n var form = this;\n\n window.wpcf7cf.get_simplified_dom_model(form.$form);\n\n var unit_tag = this.unit_tag;\n var wpcf7cf_conditions = this.conditions;\n var wpcf7cf_settings = this.settings;\n\n //for compatibility with contact-form-7-signature-addon\n if (cf7signature_resized === 0 && typeof signatures !== 'undefined' && signatures.constructor === Array && signatures.length > 0 ) {\n for (var i = 0; i < signatures.length; i++) {\n if (signatures[i].canvas.width === 0) {\n\n var $sig_canvas = jQuery(\".wpcf7-form-control-signature-body>canvas\");\n var $sig_wrap = jQuery(\".wpcf7-form-control-signature-wrap\");\n $sig_canvas.eq(i).attr('width', $sig_wrap.width());\n $sig_canvas.eq(i).attr('height', $sig_wrap.height());\n\n cf7signature_resized = 1;\n }\n }\n }\n\n form.$groups.addClass('wpcf7cf-hidden');\n\n for (var i=0; i < wpcf7cf_conditions.length; i++) {\n\n var condition = wpcf7cf_conditions[i];\n\n var show_group = window.wpcf7cf.should_group_be_shown(condition, form.$form);\n\n if (show_group) {\n jQuery('[data-id=\"'+condition.then_field+'\"]',form.$form).eq(0).removeClass('wpcf7cf-hidden');\n }\n }\n\n var animation_intime = wpcf7cf_settings.animation_intime;\n var animation_outtime = wpcf7cf_settings.animation_outtime;\n\n form.$groups.each(function (index) {\n var $group = jQuery(this);\n if ($group.is(':animated')) $group.finish(); // stop any current animations on the group\n if ($group.css('display') === 'none' && !$group.hasClass('wpcf7cf-hidden')) {\n if ($group.prop('tagName') === 'SPAN') {\n $group.show().trigger('wpcf7cf_show_group');\n } else {\n $group.animate(wpcf7cf_show_animation, animation_intime).trigger('wpcf7cf_show_group'); // show\n }\n } else if ($group.css('display') !== 'none' && $group.hasClass('wpcf7cf-hidden')) {\n\n if ($group.attr('data-clear_on_hide') !== undefined) {\n var $inputs = jQuery(':input', $group).not(':button, :submit, :reset, :hidden');\n\n $inputs.each(function(){\n var $this = jQuery(this);\n $this.val(this.defaultValue);\n $this.prop('checked', this.defaultChecked);\n });\n\n jQuery('option', $group).each(function() {\n this.selected = this.defaultSelected;\n });\n\n jQuery('select', $group).each(function() {\n const $select = jQuery(this);\n if ($select.val() === null) {\n $select.val(jQuery(\"option:first\",$select).val());\n }\n });\n\n $inputs.change();\n //display_fields();\n }\n\n if ($group.prop('tagName') === 'SPAN') {\n $group.hide().trigger('wpcf7cf_hide_group');\n } else {\n $group.animate(wpcf7cf_hide_animation, animation_outtime).trigger('wpcf7cf_hide_group'); // hide\n }\n\n }\n });\n\n form.updateHiddenFields();\n form.updateSummaryFields();\n};\n\nWpcf7cfForm.prototype.updateSummaryFields = function() {\n var $summary = jQuery('.wpcf7cf-summary', this.$form);\n\n if ($summary.length == 0 || !$summary.is(':visible')) return;\n\n var fd = new FormData();\n\n var formdata = this.$form.serializeArray();\n jQuery.each(formdata,function(key, input){\n fd.append(input.name, input.value);\n });\n\n jQuery.ajax({\n url: wpcf7cf_global_settings.ajaxurl + '?action=wpcf7cf_get_summary',\n type: 'POST',\n data: fd,\n processData: false,\n contentType: false,\n dataType: 'json',\n success: function(json) {\n $summary.html(json.summaryHtml);\n }\n });\n};\n\nWpcf7cfForm.prototype.updateHiddenFields = function() {\n\n var form = this;\n\n var hidden_fields = [];\n var hidden_groups = [];\n var visible_groups = [];\n\n form.$groups.each(function () {\n var $this = jQuery(this);\n if ($this.hasClass('wpcf7cf-hidden')) {\n hidden_groups.push($this.data('id'));\n $this.find('input,select,textarea').each(function () {\n hidden_fields.push(jQuery(this).attr('name'));\n });\n } else {\n visible_groups.push($this.data('id'));\n }\n });\n\n form.hidden_fields = hidden_fields;\n form.hidden_groups = hidden_groups;\n form.visible_groups = visible_groups;\n\n form.$input_hidden_group_fields.val(JSON.stringify(hidden_fields));\n form.$input_hidden_groups.val(JSON.stringify(hidden_groups));\n form.$input_visible_groups.val(JSON.stringify(visible_groups));\n\n return true;\n};\nWpcf7cfForm.prototype.updateGroups = function() {\n var form = this;\n form.$groups = form.$form.find('[data-class=\"wpcf7cf_group\"]');\n\n form.conditions = window.wpcf7cf.get_nested_conditions(form.initial_conditions, form.$form);\n\n};\nWpcf7cfForm.prototype.updateEventListeners = function() {\n\n var form = this;\n\n // monitor input changes, and call display_fields() if something has changed\n jQuery('input, select, textarea, button',form.$form).not('.wpcf7cf_add, .wpcf7cf_remove').off(wpcf7cf_change_events).on(wpcf7cf_change_events,form, function(e) {\n var form = e.data;\n clearTimeout(wpcf7cf_timeout);\n wpcf7cf_timeout = setTimeout(function() {\n form.displayFields();\n }, wpcf7cf_change_time_ms);\n });\n\n // PRO ONLY\n jQuery('.wpcf7cf-togglebutton', form.$form).off('click.toggle_wpcf7cf').on('click.toggle_wpcf7cf',function() {\n var $this = jQuery(this);\n if ($this.text() === $this.data('val-1')) {\n $this.text($this.data('val-2'));\n $this.val($this.data('val-2'));\n } else {\n $this.text($this.data('val-1'));\n $this.val($this.data('val-1'));\n }\n });\n // END PRO ONLY\n};\n\n// PRO ONLY\nfunction Wpcf7cfRepeater($repeater, form) {\n var $ = jQuery;\n\n var repeater = this;\n\n var wpcf7cf_settings = form.settings;\n\n repeater.form = form;\n\n $repeater.num_subs = 0;\n $repeater.id = $repeater.data('id');\n $repeater.orig_id = $repeater.data('orig_data_id');\n $repeater.min = typeof( $repeater.data('min')) !== 'undefined' ? parseInt($repeater.data('min')) : 1;\n $repeater.max = typeof( $repeater.data('max')) !== 'undefined' ? parseInt($repeater.data('max')) : 200;\n $repeater.initial_subs = typeof( $repeater.data('initial')) !== 'undefined' ? parseInt($repeater.data('initial')) : $repeater.min;\n if ($repeater.initial_subs > $repeater.max) $repeater.initial_subs = $repeater.max;\n var $repeater_sub = $repeater.children('.wpcf7cf_repeater_sub').eq(0);\n var $repeater_controls = $repeater.children('.wpcf7cf_repeater_controls').eq(0);\n\n var $repeater_sub_clone = $repeater_sub.clone();\n\n $repeater_sub_clone.find('.wpcf7cf_repeater_sub').addBack('.wpcf7cf_repeater_sub').each(function() {\n var $this = jQuery(this);\n var prev_suffix = $this.attr('data-repeater_sub_suffix');\n var new_suffix = prev_suffix+'__{{repeater_sub_suffix}}';\n $this.attr('data-repeater_sub_suffix', new_suffix);\n });\n\n $repeater_sub_clone.find('[name]').each(function() {\n var $this = jQuery(this);\n var prev_name = $this.attr('name');\n var orig_name = $this.attr('data-orig_name') != null ? $this.attr('data-orig_name') : prev_name;\n var new_name = prev_name+'__{{repeater_sub_suffix}}';\n\n if(prev_name.endsWith('_count')) {\n new_name = prev_name.replace('_count','__{{repeater_sub_suffix}}_count');\n }\n\n $this.attr('name', new_name);\n $this.attr('data-orig_name', orig_name);\n $this.closest('.wpcf7-form-control-wrap').addClass(new_name);\n });\n\n $repeater_sub_clone.find('.wpcf7cf_repeater,[data-class=\"wpcf7cf_group\"]').each(function() {\n var $this = jQuery(this);\n var prev_data_id = $this.attr('data-id');\n var orig_data_id = $this.attr('data-orig_data_id') != null ? $this.attr('data-orig_data_id') : prev_data_id;\n var new_data_id = prev_data_id+'__{{repeater_sub_suffix}}';\n\n if(prev_data_id.endsWith('_count')) {\n new_data_id = prev_data_id.replace('_count','__{{repeater_sub_suffix}}_count');\n }\n\n $this.attr('data-id', new_data_id);\n $this.attr('data-orig_data_id', orig_data_id);\n $this.closest('.wpcf7-form-control-wrap').addClass(new_data_id);\n });\n\n $repeater_sub_clone.find('[id]').each(function() {\n var $this = jQuery(this);\n var prev_id = $this.attr('id');\n var orig_id = $this.attr('data-orig_id') != null ? $this.attr('data-orig_id') : prev_id;\n var new_id = prev_id+'__{{repeater_sub_suffix}}';\n\n $this.attr('id', new_id);\n $this.attr('data-orig_id', orig_id);\n $this.closest('.wpcf7-form-control-wrap').addClass(new_id);\n });\n\n $repeater_sub_clone.find('[for]').each(function() {\n var $this = jQuery(this);\n var prev_for = $this.attr('for');\n var orig_for = $this.attr('data-orig_for') != null ? $this.attr('data-orig_for') : prev_for;\n var new_for = prev_for+'__{{repeater_sub_suffix}}';\n\n $this.attr('for', new_for);\n $this.attr('data-orig_for', orig_for);\n $this.closest('.wpcf7-form-control-wrap').addClass(new_for);\n });\n\n var repeater_sub_html = $repeater_sub_clone[0].outerHTML;\n\n var $repeater_count_field = $repeater.find('[name='+$repeater.id+'_count]').eq(0);\n var $button_add = $repeater_controls.find('.wpcf7cf_add').eq(0);\n var $button_remove = $repeater_controls.find('.wpcf7cf_remove').eq(0);\n\n var params = {\n $repeater: $repeater,\n $repeater_count_field: $repeater_count_field,\n repeater_sub_html: repeater_sub_html,\n $repeater_controls: $repeater_controls,\n $button_add: $button_add,\n $button_remove: $button_remove,\n wpcf7cf_settings: wpcf7cf_settings\n };\n \n this.params = params;\n\n $button_add.click( repeater, function(e) {\n var repeater = e.data;\n repeater.updateSubs(params.$repeater.num_subs+1);\n });\n\n $button_remove.click( repeater,function(e) {\n var repeater = e.data;\n repeater.updateSubs(params.$repeater.num_subs-1);\n });\n\n jQuery('> .wpcf7cf_repeater_sub',params.$repeater).eq(0).remove(); // remove the first sub, it's just a template.\n\n repeater.updateSubs($repeater.initial_subs); \n\n}\n\n\n\nWpcf7cfRepeater.prototype.updateSubs = function(subs_to_show) {\n var repeater = this;\n var params = repeater.params;\n var subs_to_add = subs_to_show - params.$repeater.num_subs;\n\n if (subs_to_add < 0) {\n repeater.removeSubs(-subs_to_add);\n } else if (subs_to_add > 0) {\n repeater.addSubs(subs_to_add);\n }\n\n var showButtonRemove = false;\n var showButtonAdd = false;\n\n if (params.$repeater.num_subs < params.$repeater.max) {\n showButtonAdd = true;\n }\n if (params.$repeater.num_subs > params.$repeater.min) {\n showButtonRemove = true;\n }\n\n if (showButtonAdd) {\n params.$button_add.show();\n } else {\n params.$button_add.hide();\n\n }\n\n if (showButtonRemove) {\n params.$button_remove.show();\n } else {\n params.$button_remove.hide();\n }\n\n params.$repeater_count_field.val(subs_to_show);\n\n};\nWpcf7cfRepeater.prototype.addSubs = function(subs_to_add) {\n var $ = jQuery;\n var params = this.params;\n var repeater = this;\n var form = repeater.form;\n\n\n var $repeater = params.$repeater; \n var $repeater_controls = params.$repeater_controls;\n\n //jQuery(params.repeater_sub_html.replace(/name=\"(.*?)\"/g,'name=\"wpcf7cf_repeater['+$repeater.id+']['+$repeater.num_subs+'][$1]\" data-original-name=\"$1\"')).hide().insertBefore($repeater_controls).animate(wpcf7cf_show_animation, params.wpcf7cf_settings.animation_intime);\n\n var html_str = '';\n\n for(var i=1; i<=subs_to_add; i++) {\n var sub_suffix = $repeater.num_subs+i;\n html_str += params.repeater_sub_html.replace(/\\{\\{repeater_sub_suffix\\}\\}/g,sub_suffix)\n .replace(new RegExp('\\{\\{'+$repeater.orig_id+'_index\\}\\}','g'),sub_suffix);\n }\n\n\n var $html = jQuery(html_str);\n\n // Add the newly created fields to the form\n $html.hide().insertBefore($repeater_controls).animate(wpcf7cf_show_animation, params.wpcf7cf_settings.animation_intime).trigger('wpcf7cf_repeater_added');\n\n jQuery('.wpcf7cf_repeater', $html).each(function(){\n form.repeaters.push(new Wpcf7cfRepeater(jQuery(this),form));\n });\n form.$input_repeaters.val(JSON.stringify(form.repeaters.map((item)=>item.params.$repeater.id)));\n\n $repeater.num_subs+= subs_to_add;\n\n window.wpcf7cf.updateMultistepState(form.multistep);\n form.updateGroups();\n form.updateEventListeners();\n form.displayFields();\n\n // Exclusive Checkbox\n $html.on( 'click', '.wpcf7-exclusive-checkbox input:checkbox', function() {\n var name = $( this ).attr( 'name' );\n $html.find( 'input:checkbox[name=\"' + name + '\"]' ).not( this ).prop( 'checked', false );\n } );\n\n //basic compatibility with material-design-for-contact-form-7\n if (typeof window.cf7mdInit === \"function\") {\n window.cf7mdInit();\n }\n\n return false;\n};\nWpcf7cfRepeater.prototype.removeSubs = function(num_subs) {\n var $ = jQuery;\n var params = this.params;\n var form = this.form;\n\n params.$repeater.num_subs-= num_subs;\n\n jQuery('> .wpcf7cf_repeater_sub',params.$repeater).slice(-num_subs).animate(wpcf7cf_hide_animation, {duration:params.wpcf7cf_settings.animation_intime, done:function() {\n var $this = jQuery(this);\n //remove the actual fields from the form\n $this.remove();\n params.$repeater.trigger('wpcf7cf_repeater_removed');\n window.wpcf7cf.updateMultistepState(form.multistep);\n form.updateGroups();\n form.updateEventListeners();\n form.displayFields();\n }});\n\n return false;\n};\n\nfunction Wpcf7cfMultistep($multistep, form) {\n var multistep = this;\n multistep.$multistep = $multistep;\n multistep.form = form;\n multistep.$steps = $multistep.find('.wpcf7cf_step');\n multistep.$btn_next = $multistep.find('.wpcf7cf_next');\n multistep.$btn_prev = $multistep.find('.wpcf7cf_prev');\n multistep.$dots = $multistep.find('.wpcf7cf_steps-dots');\n multistep.currentStep = 0;\n multistep.numSteps = multistep.$steps.length;\n\n\n multistep.$dots.html('');\n for (var i = 1; i <= multistep.numSteps; i++) {\n multistep.$dots.append(`\n <div class=\"dot\" data-step=\"${i}\">\n <div class=\"step-index\">${i}</div>\n <div class=\"step-title\">${multistep.$steps.eq(i-1).data('title')}</div>\n </div>\n `);\n }\n\n multistep.$btn_next.on('click.wpcf7cf_step', async function() {\n \n var result = await multistep.validateStep(multistep.currentStep);\n if (result === 'success') {\n multistep.moveToStep(multistep.currentStep+1); \n }\n\n });\n\n // If form is submitted (by pressing retrun for example), and if we are not on the last step,\n // then trigger click event on the $next button instead.\n multistep.form.$form.on('submit.wpcf7cf_step', function(e) {\n\n if (multistep.currentStep !== multistep.numSteps) {\n multistep.$btn_next.trigger('click.wpcf7cf_step');\n\n e.stopImmediatePropagation();\n return false;\n }\n });\n\n multistep.$btn_prev.click(function() {\n multistep.moveToStep(multistep.currentStep-1);\n });\n\n multistep.moveToStep(1);\n}\n\njQuery(document).ajaxComplete(function(e, xhr, settings){\n if (\n xhr.hasOwnProperty('responseJSON') &&\n xhr.responseJSON != null &&\n xhr.responseJSON.hasOwnProperty('status') &&\n xhr.responseJSON.hasOwnProperty('into') &&\n xhr.responseJSON.status === \"mail_success\"\n ) {\n jQuery( xhr.responseJSON.into ).trigger('reset.wpcf7cf');\n }\n});\n\nWpcf7cfMultistep.prototype.validateStep = function(step_index) {\n\n var multistep = this;\n var $multistep = multistep.$multistep;\n var $form = multistep.form.$form;\n\n $form.find('.wpcf7-response-output').addClass('wpcf7-display-none');\n\n return new Promise(resolve => {\n\n var fd = new FormData();\n\n // Make sure to add file fields to FormData\n jQuery.each($form.find('[data-id=\"step-'+step_index+'\"] input[type=\"file\"]'), function(index, el) {\n if (! el.files.length) return false;\n const file = el.files[0];\n const fieldName = el.name;\n fd.append(fieldName, file);\n });\n\n var formdata = $form.serializeArray();\n jQuery.each(formdata,function(key, input){\n fd.append(input.name, input.value);\n });\n\n jQuery.ajax({\n url: wpcf7cf_global_settings.ajaxurl + '?action=wpcf7cf_validate_step',\n type: 'POST',\n data: fd,\n processData: false,\n contentType: false,\n dataType: 'json',\n }).done(function(json) {\n\n /*\n * Insert _form_data_id if 'json variable' has\n */\n // if (typeof json._cf7mls_db_form_data_id != 'undefined') {\n // if (!form.find('input[name=\"_cf7mls_db_form_data_id\"]').length) {\n // form.append('<input type=\"hidden\" name=\"_cf7mls_db_form_data_id\" value=\"'+json._cf7mls_db_form_data_id+'\" />');\n // }\n // }\n\n //reset error messages\n //$multistep.find('.wpcf7-form-control-wrap').removeClass('cf7mls-invalid');\n $multistep.find('.wpcf7-form-control-wrap .wpcf7-not-valid-tip').remove();\n $multistep.find('.wpcf7-not-valid').removeClass('wpcf7-not-valid');\n $multistep.find('.wpcf7-response-output').remove();\n $multistep.find('.wpcf7-response-output.wpcf7-validation-errors').removeClass('wpcf7-validation-errors');\n\n if (!json.success) {\n var checkError = 0;\n\n jQuery.each(json.invalid_fields, function(index, el) {\n if ($multistep.find('input[name=\"'+index+'\"]').length ||\n $multistep.find('input[name=\"'+index+'[]\"]').length ||\n $multistep.find('select[name=\"'+index+'\"]').length ||\n $multistep.find('select[name=\"'+index+'[]\"]').length ||\n $multistep.find('textarea[name=\"'+index+'\"]').length ||\n $multistep.find('textarea[name=\"'+index+'[]\"]').length\n ) {\n checkError = checkError + 1;\n\n var controlWrap = jQuery('.wpcf7-form-control-wrap.' + index, $form);\n //controlWrap.addClass('cf7mls-invalid');\n controlWrap.find('input').addClass('wpcf7-not-valid');\n controlWrap.find('span.wpcf7-not-valid-tip').remove();\n controlWrap.append('<span role=\"alert\" class=\"wpcf7-not-valid-tip\">' + el.reason + '</span>');\n\n //return false;\n }\n });\n\n resolve('failed');\n //$multistep.append('<div class=\"wpcf7-response-output wpcf7-display-none wpcf7-validation-errors\" style=\"display: block;\" role=\"alert\">' + json.message + '</div>');\n\n $multistep.parent().find('.wpcf7-response-output').removeClass('wpcf7-display-none').html(json.message);\n\n } else if (json.success) {\n resolve('success');\n return false;\n }\n\n }).fail(function() {\n resolve('error');\n }).always(function() {\n // do nothing\n });\n });\n\n};\nWpcf7cfMultistep.prototype.moveToStep = function(step_index) {\n var multistep = this;\n var previousStep = multistep.currentStep;\n\n multistep.currentStep = step_index > multistep.numSteps ? multistep.numSteps\n : step_index < 1 ? 1\n : step_index;\n\n // ANIMATION DISABLED FOR NOW cause it's ugly\n // multistep.$steps.animate(wpcf7cf_hide_step_animation, multistep.form.settings.animation_outtime);\n // multistep.$steps.eq(multistep.currentStep-1).animate(wpcf7cf_show_step_animation, multistep.form.settings.animation_intime);\n\n multistep.$multistep.attr('data-current_step', multistep.currentStep);\n multistep.$steps.hide();\n multistep.$steps\n .eq(multistep.currentStep-1)\n .show()\n .trigger('wpcf7cf_change_step', [previousStep, multistep.currentStep]);\n\n const formEl = multistep.form.$form[0];\n const topOffset = formEl.getBoundingClientRect().top;\n if (topOffset < 0 && previousStep > 0) {\n formEl.scrollIntoView({behavior: \"smooth\"});\n }\n\n multistep.form.updateSummaryFields();\n\n window.wpcf7cf.updateMultistepState(multistep);\n};\n\nWpcf7cfMultistep.prototype.getFieldsInStep = function(step_index) {\n var simpleDom = window.wpcf7cf.get_simplified_dom_model(this.form.$form);\n var inStep = false;\n return simpleDom.filter(function(item, i) {\n if(item.type == 'step') {\n inStep = item.step == step_index+'';\n }\n return inStep && item.type == 'input';\n }).map(function(item) {\n return item.name;\n });\n};\n\n// END PRO ONLY\n\nwindow.wpcf7cf = {\n\n // keep this for backwards compatibility\n initForm : function($form) {\n wpcf7cf_forms.push(new Wpcf7cfForm($form));\n },\n\n get_nested_conditions : function(conditions, $current_form) {\n //loop trough conditions. Then loop trough the dom, and each repeater we pass we should update all sub_values we encounter with __index\n var simplified_dom = window.wpcf7cf.get_simplified_dom_model($current_form);\n var groups = simplified_dom.filter(function(item, i) {\n return item.type==='group';\n });\n\n var sub_conditions = [];\n\n for(var i = 0; i < groups.length; i++) {\n var g = groups[i];\n var relevant_conditions = conditions.filter(function(condition, i) {\n return condition.then_field === g.original_name;\n });\n \n var relevant_conditions = relevant_conditions.map(function(item,i) {\n return {\n then_field : g.name,\n and_rules : item.and_rules.map(function(and_rule, i) {\n return {\n if_field : and_rule.if_field+g.suffix,\n if_value : and_rule.if_value,\n operator : and_rule.operator\n };\n })\n }\n });\n\n sub_conditions = sub_conditions.concat(relevant_conditions);\n }\n return conditions.concat(sub_conditions);\n },\n\n get_simplified_dom_model : function($current_form) {\n // if the dom is something like:\n // <form>\n // <repeater ra>\n // <group ga__1>\n // <repeater rb__1>\n // <input txta__1__1 />\n // <input txta__1__2 />\n // </repeater>\n // <group gb__1>\n // <input txtb__1 />\n // </group>\n // </group>\n // <group ga__2>\n // <repeater rb__2>\n // <input txta__2__1 />\n // </repeater>\n // <group gb__2>\n // <input txtb__2 />\n // </group>\n // </group>\n // </repeater>\n // </form>\n // \n // return something like:\n // [{type:repeater, name:'ra', suffix: '__1'}, {type: group, name:'ga', suffix: '__1'}, ...]\n\n var currentNode;\n var ni = document.createNodeIterator($current_form[0], NodeFilter.SHOW_ELEMENT, null, false); //, NodeFilter.SHOW_ELEMENT, function(){ return NodeFilter.FILTER_ACCEPT; }\n\n var simplified_dom = [];\n\n while(currentNode = ni.nextNode()) {\n if (currentNode.classList.contains('wpcf7cf_repeater')) {\n simplified_dom.push({type:'repeater', name:currentNode.dataset.id, original_name:currentNode.dataset.orig_data_id})\n } else if (currentNode.dataset.class == 'wpcf7cf_group') {\n simplified_dom.push({type:'group', name:currentNode.dataset.id, original_name:currentNode.dataset.orig_data_id})\n } else if (currentNode.className == 'wpcf7cf_step') {\n simplified_dom.push({type:'step', name:currentNode.dataset.id, original_name:currentNode.dataset.id, step: currentNode.dataset.id.substring(5)})\n } else if (currentNode.hasAttribute('name')) {\n simplified_dom.push({type:'input', name:currentNode.getAttribute('name'), original_name:currentNode.getAttribute('data-orig_name')})\n }\n }\n\n simplified_dom = simplified_dom.map(function(item, i){\n var original_name_length = item.original_name == null ? item.name.length : item.original_name.length;\n item.suffix = item.name.substring(original_name_length);\n return item;\n });\n\n //console.table(simplified_dom);\n return simplified_dom;\n\n },\n\n updateMultistepState: function (multistep) {\n if (multistep == null) return;\n\n // update hidden input field\n\n var stepsData = {\n currentStep : multistep.currentStep,\n numSteps : multistep.numSteps,\n fieldsInCurrentStep : multistep.getFieldsInStep(multistep.currentStep)\n };\n multistep.form.$input_steps.val(JSON.stringify(stepsData));\n\n // update Buttons\n multistep.$btn_prev.removeClass('disabled');\n multistep.$btn_next.removeClass('disabled');\n if (multistep.currentStep == multistep.numSteps) {\n multistep.$btn_next.addClass('disabled');\n }\n if (multistep.currentStep == 1) {\n multistep.$btn_prev.addClass('disabled');\n }\n\n // replace next button with submit button on last step.\n // TODO: make this depend on a setting\n var $submit_button = multistep.form.$form.find('input[type=\"submit\"]').eq(0);\n var $ajax_loader = multistep.form.$form.find('.ajax-loader').eq(0);\n if (multistep.currentStep == multistep.numSteps) {\n multistep.$btn_next.hide();\n $ajax_loader.detach().appendTo(multistep.$btn_next.parent());\n $submit_button.detach().appendTo(multistep.$btn_next.parent());\n $submit_button.show();\n } else {\n $submit_button.hide();\n multistep.$btn_next.show();\n }\n\n // update dots\n var $dots = multistep.$dots.find('.dot');\n $dots.removeClass('active').removeClass('completed');\n for(var step = 1; step <= multistep.numSteps; step++) {\n if (step < multistep.currentStep) {\n $dots.eq(step-1).addClass('completed');\n } else if (step == multistep.currentStep) {\n $dots.eq(step-1).addClass('active');\n }\n }\n\n },\n\n should_group_be_shown : function(condition, $current_form) {\n\n var $ = jQuery;\n\n var show_group = true;\n\n for (var and_rule_i = 0; and_rule_i < condition.and_rules.length; and_rule_i++) {\n\n var condition_ok = false;\n\n var condition_and_rule = condition.and_rules[and_rule_i];\n\n var $field = jQuery('[name=\"' + condition_and_rule.if_field + '\"], [name=\"' + condition_and_rule.if_field + '[]\"], [data-original-name=\"' + condition_and_rule.if_field + '\"], [data-original-name=\"' + condition_and_rule.if_field + '[]\"]',$current_form);\n\n var if_val = condition_and_rule.if_value;\n var if_val_as_number = isFinite(parseFloat(if_val)) ? parseFloat(if_val):0;\n var operator = condition_and_rule.operator;\n \n var regex_patt = /.*/i; // fallback regex pattern\n var isValidRegex = true;\n try {\n regex_patt = new RegExp(if_val, 'i');\n } catch(e) {\n isValidRegex = false;\n }\n\n\n //backwards compat\n operator = operator === '≤' ? 'less than or equals' : operator;\n operator = operator === '≥' ? 'greater than or equals' : operator;\n operator = operator === '>' ? 'greater than' : operator;\n operator = operator === '<' ? 'less than' : operator;\n\n\n if ( $field.is(':checkbox') || $field.is(':radio') ) {\n\n var all_values = [];\n var checked_values = [];\n $field.each(function () {\n all_values.push(jQuery(this).val());\n if (jQuery(this).is(':checked')) {\n checked_values.push(jQuery(this).val());\n }\n });\n\n condition_ok = this.isConditionTrue(checked_values,operator,if_val,$field);\n \n } else {\n \n condition_ok = this.isConditionTrue($field.val(),operator,if_val,$field);\n }\n\n show_group = show_group && condition_ok;\n }\n\n return show_group;\n\n },\n isConditionTrue(values, operator, testValue='', $field=jQuery()) {\n\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n let condition_ok = false; // start by assuming that the condition is not met\n\n if (!values || values.length == 0 || values.every((v) => !v||0)) { // no values or only empty values passed (0 is not considered empty)\n if (operator === 'is empty') {\n condition_ok = true;\n }\n if (operator === 'not empty') {\n condition_ok = false;\n }\n } else {\n if (operator === 'is empty') {\n condition_ok = false;\n }\n if (operator === 'not empty') {\n condition_ok = true;\n }\n }\n\n const testValueNumber = isFinite(parseFloat(testValue)) ? parseFloat(testValue) : NaN;\n\n\n if (operator === 'not equals' || operator === 'not equals (regex)') {\n // start by assuming that the condition is met\n condition_ok = true;\n }\n\n if (\n operator === 'function'\n && typeof window[testValue] == 'function'\n && window[testValue]($field) // here we call the actual user defined function\n ) {\n condition_ok = true;\n }\n\n let regex_patt = /.*/i; // fallback regex pattern\n let isValidRegex = true;\n if (operator === 'equals (regex)' || operator === 'not equals (regex)') {\n try {\n regex_patt = new RegExp(testValue, 'i');\n } catch(e) {\n isValidRegex = false;\n }\n }\n\n\n for(let i = 0; i < values.length; i++) {\n\n const value = values[i];\n\n const valueNumber = isFinite(parseFloat(value)) ? parseFloat(value) : NaN;\n const valsAreNumbers = !isNaN(valueNumber) && !isNaN(testValueNumber);\n\n if (\n\n operator === 'equals' && value === testValue ||\n operator === 'equals (regex)' && regex_patt.test(value) ||\n operator === 'greater than' && valsAreNumbers && valueNumber > testValueNumber ||\n operator === 'less than' && valsAreNumbers && valueNumber < testValueNumber ||\n operator === 'greater than or equals' && valsAreNumbers && valueNumber >= testValueNumber ||\n operator === 'less than or equals' && valsAreNumbers && valueNumber <= testValueNumber\n \n ) {\n\n condition_ok = true;\n break;\n\n } else if (\n\n operator === 'not equals' && value === testValue ||\n operator === 'not equals (regex)' && regex_patt.test(value)\n\n ) {\n\n condition_ok = false;\n break;\n\n }\n }\n\n return condition_ok;\n\n }\n\n};\n\n\n\n\njQuery('.wpcf7-form').each(function(){\n wpcf7cf_forms.push(new Wpcf7cfForm(jQuery(this)));\n});\n\n// Call displayFields again on all forms\n// Necessary in case some theme or plugin changed a form value by the time the entire page is fully loaded.\njQuery('document').ready(function() {\n wpcf7cf_forms.forEach(function(f){\n f.displayFields();\n });\n});\n\n// fix for exclusive checkboxes in IE (this will call the change-event again after all other checkboxes are unchecked, triggering the display_fields() function)\nvar old_wpcf7ExclusiveCheckbox = jQuery.fn.wpcf7ExclusiveCheckbox;\njQuery.fn.wpcf7ExclusiveCheckbox = function() {\n return this.find('input:checkbox').click(function() {\n var name = jQuery(this).attr('name');\n jQuery(this).closest('form').find('input:checkbox[name=\"' + name + '\"]').not(this).prop('checked', false).eq(0).change();\n });\n};\n\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./js/scripts_es6.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///(webpack)/buildin/module.js"],"names":["cf7signature_resized","wpcf7cf_timeout","wpcf7cf_change_time_ms","window","wpcf7cf_running_tests","wpcf7cf_show_animation","wpcf7cf_hide_animation","wpcf7cf_show_step_animation","wpcf7cf_hide_step_animation","wpcf7cf_change_events","wpcf7cf_forms","String","prototype","endsWith","search","this_len","undefined","length","substring","Wpcf7cfForm","$form","options_element","find","eq","val","form","form_options","JSON","parse","$input_hidden_group_fields","$input_hidden_groups","$input_visible_groups","$input_repeaters","$input_steps","unit_tag","closest","attr","conditions","i","condition","and_rules","if_field","if_value","operator","initial_conditions","settings","$groups","jQuery","repeaters","multistep","fields","animation_intime","parseInt","animation_outtime","animation","updateGroups","updateEventListeners","displayFields","on","e","data","setTimeout","resetRepeaters","moveToStep","each","push","Wpcf7cfRepeater","stringify","map","item","params","$repeater","id","$multistep","Wpcf7cfMultistep","forEach","repeater","updateSubs","initial_subs","wpcf7cf","get_simplified_dom_model","wpcf7cf_conditions","wpcf7cf_settings","signatures","constructor","Array","canvas","width","$sig_canvas","$sig_wrap","height","addClass","show_group","should_group_be_shown","then_field","removeClass","index","$group","is","finish","css","hasClass","prop","show","trigger","animate","$inputs","not","$this","defaultValue","defaultChecked","selected","defaultSelected","$select","change","hide","updateHiddenFields","updateSummaryFields","$summary","fd","FormData","formdata","serializeArray","key","input","append","name","value","ajax","url","wpcf7cf_global_settings","ajaxurl","type","processData","contentType","dataType","success","json","html","summaryHtml","hidden_fields","hidden_groups","visible_groups","get_nested_conditions","off","clearTimeout","text","$","num_subs","orig_id","min","max","$repeater_sub","children","$repeater_controls","$repeater_sub_clone","clone","addBack","prev_suffix","new_suffix","prev_name","orig_name","new_name","replace","prev_data_id","orig_data_id","new_data_id","prev_id","new_id","prev_for","orig_for","new_for","repeater_sub_html","outerHTML","$repeater_count_field","$button_add","$button_remove","remove","subs_to_show","subs_to_add","removeSubs","addSubs","showButtonRemove","showButtonAdd","html_str","sub_suffix","RegExp","$html","insertBefore","updateMultistepState","cf7mdInit","slice","duration","done","$steps","$btn_next","$btn_prev","$dots","currentStep","numSteps","validateStep","result","stopImmediatePropagation","document","ajaxComplete","xhr","hasOwnProperty","responseJSON","status","into","step_index","Promise","resolve","el","files","file","fieldName","checkError","invalid_fields","controlWrap","reason","parent","message","fail","always","previousStep","formEl","topOffset","getBoundingClientRect","top","scrollIntoView","behavior","getFieldsInStep","simpleDom","inStep","filter","step","initForm","$current_form","simplified_dom","groups","sub_conditions","g","relevant_conditions","original_name","and_rule","suffix","concat","currentNode","ni","createNodeIterator","NodeFilter","SHOW_ELEMENT","nextNode","classList","contains","dataset","className","hasAttribute","getAttribute","original_name_length","stepsData","fieldsInCurrentStep","$submit_button","$ajax_loader","detach","appendTo","and_rule_i","condition_ok","condition_and_rule","$field","if_val","if_val_as_number","isFinite","parseFloat","regex_patt","isValidRegex","all_values","checked_values","isConditionTrue","values","testValue","isArray","valuesAreEmpty","every","v","testValueNumber","NaN","valueNumber","valsAreNumbers","isNaN","test","ready","f","old_wpcf7ExclusiveCheckbox","fn","wpcf7ExclusiveCheckbox","asyncGeneratorStep","gen","reject","_next","_throw","arg","info","error","then","_asyncToGenerator","self","args","arguments","apply","err","module","exports","require","runtime","Op","Object","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","obj","call","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","displayName","defineIteratorMethods","method","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","PromiseImpl","invoke","record","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","async","iter","next","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","nextLoc","toString","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","keys","object","reverse","pop","iterable","iteratorMethod","skipTempReset","prev","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackPolyfill","deprecate","paths","defineProperty","enumerable","get","l"],"mappings":"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","file":"scripts.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./js/scripts_es6.js\");\n","\"use strict\";\n\nvar cf7signature_resized = 0; // for compatibility with contact-form-7-signature-addon\n\nvar wpcf7cf_timeout;\nvar wpcf7cf_change_time_ms = window.wpcf7cf_running_tests ? 0 : 100;\n\nvar wpcf7cf_show_animation = { \"height\": \"show\", \"marginTop\": \"show\", \"marginBottom\": \"show\", \"paddingTop\": \"show\", \"paddingBottom\": \"show\" };\nvar wpcf7cf_hide_animation = { \"height\": \"hide\", \"marginTop\": \"hide\", \"marginBottom\": \"hide\", \"paddingTop\": \"hide\", \"paddingBottom\": \"hide\" };\n\nvar wpcf7cf_show_step_animation = { \"opacity\": \"show\" };\nvar wpcf7cf_hide_step_animation = { \"opacity\": \"hide\" };\n\nvar wpcf7cf_change_events = 'input.wpcf7cf paste.wpcf7cf change.wpcf7cf click.wpcf7cf propertychange.wpcf7cf';\n\nvar wpcf7cf_forms = [];\n\n// endswith polyfill\nif (!String.prototype.endsWith) {\n\tString.prototype.endsWith = function(search, this_len) {\n\t\tif (this_len === undefined || this_len > this.length) {\n\t\t\tthis_len = this.length;\n\t\t}\n\t\treturn this.substring(this_len - search.length, this_len) === search;\n\t};\n}\n\nvar Wpcf7cfForm = function($form) {\n\n var options_element = $form.find('input[name=\"_wpcf7cf_options\"]').eq(0);\n if (!options_element.length || !options_element.val()) {\n // doesn't look like a CF7 form created with conditional fields plugin enabled.\n return false;\n }\n\n var form = this;\n\n var form_options = JSON.parse(options_element.val());\n\n form.$form = $form;\n form.$input_hidden_group_fields = $form.find('[name=\"_wpcf7cf_hidden_group_fields\"]');\n form.$input_hidden_groups = $form.find('[name=\"_wpcf7cf_hidden_groups\"]');\n form.$input_visible_groups = $form.find('[name=\"_wpcf7cf_visible_groups\"]');\n form.$input_repeaters = $form.find('[name=\"_wpcf7cf_repeaters\"]');\n form.$input_steps = $form.find('[name=\"_wpcf7cf_steps\"]');\n\n form.unit_tag = $form.closest('.wpcf7').attr('id');\n form.conditions = form_options['conditions'];\n\n // compatibility with conditional forms created with older versions of the plugin ( < 1.4 )\n for (var i=0; i < form.conditions.length; i++) {\n var condition = form.conditions[i];\n if (!('and_rules' in condition)) {\n condition.and_rules = [{'if_field':condition.if_field,'if_value':condition.if_value,'operator':condition.operator}];\n }\n }\n\n form.initial_conditions = form.conditions;\n form.settings = form_options['settings'];\n\n form.$groups = jQuery(); // empty jQuery set\n form.repeaters = [];\n form.multistep = null;\n form.fields = [];\n\n form.settings.animation_intime = parseInt(form.settings.animation_intime);\n form.settings.animation_outtime = parseInt(form.settings.animation_outtime);\n\n if (form.settings.animation === 'no') {\n form.settings.animation_intime = 0;\n form.settings.animation_outtime = 0;\n }\n\n form.updateGroups();\n form.updateEventListeners();\n form.displayFields();\n\n // bring form in initial state if the reset event is fired on it.\n form.$form.on('reset.wpcf7cf', form, function(e) {\n var form = e.data;\n setTimeout(function(){\n form.displayFields();\n form.resetRepeaters();\n if (form.multistep != null) {\n form.multistep.moveToStep(1); \n }\n },200);\n });\n\n // PRO ONLY\n\n jQuery('.wpcf7cf_repeater:not(.wpcf7cf_repeater .wpcf7cf_repeater)', $form).each(function(){\n form.repeaters.push(new Wpcf7cfRepeater(jQuery(this),form));\n });\n\n form.$input_repeaters.val(JSON.stringify(form.repeaters.map((item)=>item.params.$repeater.id)));\n\n var $multistep = jQuery('.wpcf7cf_multistep', $form);\n\n if ($multistep.length) {\n form.multistep = new Wpcf7cfMultistep($multistep, form);\n // window.wpcf7cf.updateMultistepState(form.multistep);\n }\n\n // END PRO ONLY\n\n}\n\n/**\n * reset initial number of subs for each repeater.\n * (does not clear values)\n */\nWpcf7cfForm.prototype.resetRepeaters = function() {\n var form = this;\n form.repeaters.forEach(repeater => {\n repeater.updateSubs( repeater.params.$repeater.initial_subs );\n });\n}\n\nWpcf7cfForm.prototype.displayFields = function() {\n\n var form = this;\n\n window.wpcf7cf.get_simplified_dom_model(form.$form);\n\n var unit_tag = this.unit_tag;\n var wpcf7cf_conditions = this.conditions;\n var wpcf7cf_settings = this.settings;\n\n //for compatibility with contact-form-7-signature-addon\n if (cf7signature_resized === 0 && typeof signatures !== 'undefined' && signatures.constructor === Array && signatures.length > 0 ) {\n for (var i = 0; i < signatures.length; i++) {\n if (signatures[i].canvas.width === 0) {\n\n var $sig_canvas = jQuery(\".wpcf7-form-control-signature-body>canvas\");\n var $sig_wrap = jQuery(\".wpcf7-form-control-signature-wrap\");\n $sig_canvas.eq(i).attr('width', $sig_wrap.width());\n $sig_canvas.eq(i).attr('height', $sig_wrap.height());\n\n cf7signature_resized = 1;\n }\n }\n }\n\n form.$groups.addClass('wpcf7cf-hidden');\n\n for (var i=0; i < wpcf7cf_conditions.length; i++) {\n\n var condition = wpcf7cf_conditions[i];\n\n var show_group = window.wpcf7cf.should_group_be_shown(condition, form.$form);\n\n if (show_group) {\n jQuery('[data-id=\"'+condition.then_field+'\"]',form.$form).eq(0).removeClass('wpcf7cf-hidden');\n }\n }\n\n var animation_intime = wpcf7cf_settings.animation_intime;\n var animation_outtime = wpcf7cf_settings.animation_outtime;\n\n form.$groups.each(function (index) {\n var $group = jQuery(this);\n if ($group.is(':animated')) $group.finish(); // stop any current animations on the group\n if ($group.css('display') === 'none' && !$group.hasClass('wpcf7cf-hidden')) {\n if ($group.prop('tagName') === 'SPAN') {\n $group.show().trigger('wpcf7cf_show_group');\n } else {\n $group.animate(wpcf7cf_show_animation, animation_intime).trigger('wpcf7cf_show_group'); // show\n }\n } else if ($group.css('display') !== 'none' && $group.hasClass('wpcf7cf-hidden')) {\n\n if ($group.attr('data-clear_on_hide') !== undefined) {\n var $inputs = jQuery(':input', $group).not(':button, :submit, :reset, :hidden');\n\n $inputs.each(function(){\n var $this = jQuery(this);\n $this.val(this.defaultValue);\n $this.prop('checked', this.defaultChecked);\n });\n\n jQuery('option', $group).each(function() {\n this.selected = this.defaultSelected;\n });\n\n jQuery('select', $group).each(function() {\n const $select = jQuery(this);\n if ($select.val() === null) {\n $select.val(jQuery(\"option:first\",$select).val());\n }\n });\n\n $inputs.change();\n //display_fields();\n }\n\n if ($group.prop('tagName') === 'SPAN') {\n $group.hide().trigger('wpcf7cf_hide_group');\n } else {\n $group.animate(wpcf7cf_hide_animation, animation_outtime).trigger('wpcf7cf_hide_group'); // hide\n }\n\n }\n });\n\n form.updateHiddenFields();\n form.updateSummaryFields();\n};\n\nWpcf7cfForm.prototype.updateSummaryFields = function() {\n var $summary = jQuery('.wpcf7cf-summary', this.$form);\n\n if ($summary.length == 0 || !$summary.is(':visible')) return;\n\n var fd = new FormData();\n\n var formdata = this.$form.serializeArray();\n jQuery.each(formdata,function(key, input){\n fd.append(input.name, input.value);\n });\n\n jQuery.ajax({\n url: wpcf7cf_global_settings.ajaxurl + '?action=wpcf7cf_get_summary',\n type: 'POST',\n data: fd,\n processData: false,\n contentType: false,\n dataType: 'json',\n success: function(json) {\n $summary.html(json.summaryHtml);\n }\n });\n};\n\nWpcf7cfForm.prototype.updateHiddenFields = function() {\n\n var form = this;\n\n var hidden_fields = [];\n var hidden_groups = [];\n var visible_groups = [];\n\n form.$groups.each(function () {\n var $this = jQuery(this);\n if ($this.hasClass('wpcf7cf-hidden')) {\n hidden_groups.push($this.data('id'));\n $this.find('input,select,textarea').each(function () {\n hidden_fields.push(jQuery(this).attr('name'));\n });\n } else {\n visible_groups.push($this.data('id'));\n }\n });\n\n form.hidden_fields = hidden_fields;\n form.hidden_groups = hidden_groups;\n form.visible_groups = visible_groups;\n\n form.$input_hidden_group_fields.val(JSON.stringify(hidden_fields));\n form.$input_hidden_groups.val(JSON.stringify(hidden_groups));\n form.$input_visible_groups.val(JSON.stringify(visible_groups));\n\n return true;\n};\nWpcf7cfForm.prototype.updateGroups = function() {\n var form = this;\n form.$groups = form.$form.find('[data-class=\"wpcf7cf_group\"]');\n\n form.conditions = window.wpcf7cf.get_nested_conditions(form.initial_conditions, form.$form);\n\n};\nWpcf7cfForm.prototype.updateEventListeners = function() {\n\n var form = this;\n\n // monitor input changes, and call display_fields() if something has changed\n jQuery('input, select, textarea, button',form.$form).not('.wpcf7cf_add, .wpcf7cf_remove').off(wpcf7cf_change_events).on(wpcf7cf_change_events,form, function(e) {\n var form = e.data;\n clearTimeout(wpcf7cf_timeout);\n wpcf7cf_timeout = setTimeout(function() {\n form.displayFields();\n }, wpcf7cf_change_time_ms);\n });\n\n // PRO ONLY\n jQuery('.wpcf7cf-togglebutton', form.$form).off('click.toggle_wpcf7cf').on('click.toggle_wpcf7cf',function() {\n var $this = jQuery(this);\n if ($this.text() === $this.data('val-1')) {\n $this.text($this.data('val-2'));\n $this.val($this.data('val-2'));\n } else {\n $this.text($this.data('val-1'));\n $this.val($this.data('val-1'));\n }\n });\n // END PRO ONLY\n};\n\n// PRO ONLY\nfunction Wpcf7cfRepeater($repeater, form) {\n var $ = jQuery;\n\n var repeater = this;\n\n var wpcf7cf_settings = form.settings;\n\n repeater.form = form;\n\n $repeater.num_subs = 0;\n $repeater.id = $repeater.data('id');\n $repeater.orig_id = $repeater.data('orig_data_id');\n $repeater.min = typeof( $repeater.data('min')) !== 'undefined' ? parseInt($repeater.data('min')) : 1;\n $repeater.max = typeof( $repeater.data('max')) !== 'undefined' ? parseInt($repeater.data('max')) : 200;\n $repeater.initial_subs = typeof( $repeater.data('initial')) !== 'undefined' ? parseInt($repeater.data('initial')) : $repeater.min;\n if ($repeater.initial_subs > $repeater.max) $repeater.initial_subs = $repeater.max;\n var $repeater_sub = $repeater.children('.wpcf7cf_repeater_sub').eq(0);\n var $repeater_controls = $repeater.children('.wpcf7cf_repeater_controls').eq(0);\n\n var $repeater_sub_clone = $repeater_sub.clone();\n\n $repeater_sub_clone.find('.wpcf7cf_repeater_sub').addBack('.wpcf7cf_repeater_sub').each(function() {\n var $this = jQuery(this);\n var prev_suffix = $this.attr('data-repeater_sub_suffix');\n var new_suffix = prev_suffix+'__{{repeater_sub_suffix}}';\n $this.attr('data-repeater_sub_suffix', new_suffix);\n });\n\n $repeater_sub_clone.find('[name]').each(function() {\n var $this = jQuery(this);\n var prev_name = $this.attr('name');\n var orig_name = $this.attr('data-orig_name') != null ? $this.attr('data-orig_name') : prev_name;\n var new_name = prev_name+'__{{repeater_sub_suffix}}';\n\n if(prev_name.endsWith('_count')) {\n new_name = prev_name.replace('_count','__{{repeater_sub_suffix}}_count');\n }\n\n $this.attr('name', new_name);\n $this.attr('data-orig_name', orig_name);\n $this.closest('.wpcf7-form-control-wrap').addClass(new_name);\n });\n\n $repeater_sub_clone.find('.wpcf7cf_repeater,[data-class=\"wpcf7cf_group\"]').each(function() {\n var $this = jQuery(this);\n var prev_data_id = $this.attr('data-id');\n var orig_data_id = $this.attr('data-orig_data_id') != null ? $this.attr('data-orig_data_id') : prev_data_id;\n var new_data_id = prev_data_id+'__{{repeater_sub_suffix}}';\n\n if(prev_data_id.endsWith('_count')) {\n new_data_id = prev_data_id.replace('_count','__{{repeater_sub_suffix}}_count');\n }\n\n $this.attr('data-id', new_data_id);\n $this.attr('data-orig_data_id', orig_data_id);\n $this.closest('.wpcf7-form-control-wrap').addClass(new_data_id);\n });\n\n $repeater_sub_clone.find('[id]').each(function() {\n var $this = jQuery(this);\n var prev_id = $this.attr('id');\n var orig_id = $this.attr('data-orig_id') != null ? $this.attr('data-orig_id') : prev_id;\n var new_id = prev_id+'__{{repeater_sub_suffix}}';\n\n $this.attr('id', new_id);\n $this.attr('data-orig_id', orig_id);\n $this.closest('.wpcf7-form-control-wrap').addClass(new_id);\n });\n\n $repeater_sub_clone.find('[for]').each(function() {\n var $this = jQuery(this);\n var prev_for = $this.attr('for');\n var orig_for = $this.attr('data-orig_for') != null ? $this.attr('data-orig_for') : prev_for;\n var new_for = prev_for+'__{{repeater_sub_suffix}}';\n\n $this.attr('for', new_for);\n $this.attr('data-orig_for', orig_for);\n $this.closest('.wpcf7-form-control-wrap').addClass(new_for);\n });\n\n var repeater_sub_html = $repeater_sub_clone[0].outerHTML;\n\n var $repeater_count_field = $repeater.find('[name='+$repeater.id+'_count]').eq(0);\n var $button_add = $repeater_controls.find('.wpcf7cf_add').eq(0);\n var $button_remove = $repeater_controls.find('.wpcf7cf_remove').eq(0);\n\n var params = {\n $repeater: $repeater,\n $repeater_count_field: $repeater_count_field,\n repeater_sub_html: repeater_sub_html,\n $repeater_controls: $repeater_controls,\n $button_add: $button_add,\n $button_remove: $button_remove,\n wpcf7cf_settings: wpcf7cf_settings\n };\n \n this.params = params;\n\n $button_add.on('click', null, repeater, function(e) {\n var repeater = e.data;\n repeater.updateSubs(params.$repeater.num_subs+1);\n });\n\n $button_remove.on('click', null, repeater,function(e) {\n var repeater = e.data;\n repeater.updateSubs(params.$repeater.num_subs-1);\n });\n\n jQuery('> .wpcf7cf_repeater_sub',params.$repeater).eq(0).remove(); // remove the first sub, it's just a template.\n\n repeater.updateSubs($repeater.initial_subs); \n\n}\n\n\n\nWpcf7cfRepeater.prototype.updateSubs = function(subs_to_show) {\n var repeater = this;\n var params = repeater.params;\n var subs_to_add = subs_to_show - params.$repeater.num_subs;\n\n if (subs_to_add < 0) {\n repeater.removeSubs(-subs_to_add);\n } else if (subs_to_add > 0) {\n repeater.addSubs(subs_to_add);\n }\n\n var showButtonRemove = false;\n var showButtonAdd = false;\n\n if (params.$repeater.num_subs < params.$repeater.max) {\n showButtonAdd = true;\n }\n if (params.$repeater.num_subs > params.$repeater.min) {\n showButtonRemove = true;\n }\n\n if (showButtonAdd) {\n params.$button_add.show();\n } else {\n params.$button_add.hide();\n\n }\n\n if (showButtonRemove) {\n params.$button_remove.show();\n } else {\n params.$button_remove.hide();\n }\n\n params.$repeater_count_field.val(subs_to_show);\n\n};\nWpcf7cfRepeater.prototype.addSubs = function(subs_to_add) {\n var $ = jQuery;\n var params = this.params;\n var repeater = this;\n var form = repeater.form;\n\n\n var $repeater = params.$repeater; \n var $repeater_controls = params.$repeater_controls;\n\n //jQuery(params.repeater_sub_html.replace(/name=\"(.*?)\"/g,'name=\"wpcf7cf_repeater['+$repeater.id+']['+$repeater.num_subs+'][$1]\" data-original-name=\"$1\"')).hide().insertBefore($repeater_controls).animate(wpcf7cf_show_animation, params.wpcf7cf_settings.animation_intime);\n\n var html_str = '';\n\n for(var i=1; i<=subs_to_add; i++) {\n var sub_suffix = $repeater.num_subs+i;\n html_str += params.repeater_sub_html.replace(/\\{\\{repeater_sub_suffix\\}\\}/g,sub_suffix)\n .replace(new RegExp('\\{\\{'+$repeater.orig_id+'_index\\}\\}','g'),sub_suffix);\n }\n\n\n var $html = jQuery(html_str);\n\n // Add the newly created fields to the form\n $html.hide().insertBefore($repeater_controls).animate(wpcf7cf_show_animation, params.wpcf7cf_settings.animation_intime).trigger('wpcf7cf_repeater_added');\n\n jQuery('.wpcf7cf_repeater', $html).each(function(){\n form.repeaters.push(new Wpcf7cfRepeater(jQuery(this),form));\n });\n form.$input_repeaters.val(JSON.stringify(form.repeaters.map((item)=>item.params.$repeater.id)));\n\n $repeater.num_subs+= subs_to_add;\n\n window.wpcf7cf.updateMultistepState(form.multistep);\n form.updateGroups();\n form.updateEventListeners();\n form.displayFields();\n\n // Exclusive Checkbox\n $html.on( 'click', '.wpcf7-exclusive-checkbox input:checkbox', function() {\n var name = $( this ).attr( 'name' );\n $html.find( 'input:checkbox[name=\"' + name + '\"]' ).not( this ).prop( 'checked', false );\n } );\n\n //basic compatibility with material-design-for-contact-form-7\n if (typeof window.cf7mdInit === \"function\") {\n window.cf7mdInit();\n }\n\n return false;\n};\nWpcf7cfRepeater.prototype.removeSubs = function(num_subs) {\n var $ = jQuery;\n var params = this.params;\n var form = this.form;\n\n params.$repeater.num_subs-= num_subs;\n\n jQuery('> .wpcf7cf_repeater_sub',params.$repeater).slice(-num_subs).animate(wpcf7cf_hide_animation, {duration:params.wpcf7cf_settings.animation_intime, done:function() {\n var $this = jQuery(this);\n //remove the actual fields from the form\n $this.remove();\n params.$repeater.trigger('wpcf7cf_repeater_removed');\n window.wpcf7cf.updateMultistepState(form.multistep);\n form.updateGroups();\n form.updateEventListeners();\n form.displayFields();\n }});\n\n return false;\n};\n\nfunction Wpcf7cfMultistep($multistep, form) {\n var multistep = this;\n multistep.$multistep = $multistep;\n multistep.form = form;\n multistep.$steps = $multistep.find('.wpcf7cf_step');\n multistep.$btn_next = $multistep.find('.wpcf7cf_next');\n multistep.$btn_prev = $multistep.find('.wpcf7cf_prev');\n multistep.$dots = $multistep.find('.wpcf7cf_steps-dots');\n multistep.currentStep = 0;\n multistep.numSteps = multistep.$steps.length;\n\n\n multistep.$dots.html('');\n for (var i = 1; i <= multistep.numSteps; i++) {\n multistep.$dots.append(`\n <div class=\"dot\" data-step=\"${i}\">\n <div class=\"step-index\">${i}</div>\n <div class=\"step-title\">${multistep.$steps.eq(i-1).data('title')}</div>\n </div>\n `);\n }\n\n multistep.$btn_next.on('click.wpcf7cf_step', async function() {\n \n var result = await multistep.validateStep(multistep.currentStep);\n if (result === 'success') {\n multistep.moveToStep(multistep.currentStep+1); \n }\n\n });\n\n // If form is submitted (by pressing return for example), and if we are not on the last step,\n // then trigger click event on the $btn_next button instead.\n multistep.form.$form.on('submit.wpcf7cf_step', function(e) {\n\n if (multistep.currentStep !== multistep.numSteps) {\n multistep.$btn_next.trigger('click.wpcf7cf_step');\n\n e.stopImmediatePropagation();\n return false;\n }\n });\n\n multistep.$btn_prev.on( 'click', function() {\n multistep.moveToStep(multistep.currentStep-1);\n });\n\n multistep.moveToStep(1);\n}\n\njQuery(document).ajaxComplete(function(e, xhr, settings){\n if (\n xhr.hasOwnProperty('responseJSON') &&\n xhr.responseJSON != null &&\n xhr.responseJSON.hasOwnProperty('status') &&\n xhr.responseJSON.hasOwnProperty('into') &&\n xhr.responseJSON.status === \"mail_success\"\n ) {\n jQuery( xhr.responseJSON.into ).trigger('reset.wpcf7cf');\n }\n});\n\nWpcf7cfMultistep.prototype.validateStep = function(step_index) {\n\n var multistep = this;\n var $multistep = multistep.$multistep;\n var $form = multistep.form.$form;\n\n $form.find('.wpcf7-response-output').addClass('wpcf7-display-none');\n\n return new Promise(resolve => {\n\n var fd = new FormData();\n\n // Make sure to add file fields to FormData\n jQuery.each($form.find('[data-id=\"step-'+step_index+'\"] input[type=\"file\"]'), function(index, el) {\n if (! el.files.length) return false;\n const file = el.files[0];\n const fieldName = el.name;\n fd.append(fieldName, file);\n });\n\n var formdata = $form.serializeArray();\n jQuery.each(formdata,function(key, input){\n fd.append(input.name, input.value);\n });\n\n jQuery.ajax({\n url: wpcf7cf_global_settings.ajaxurl + '?action=wpcf7cf_validate_step',\n type: 'POST',\n data: fd,\n processData: false,\n contentType: false,\n dataType: 'json',\n }).done(function(json) {\n\n $multistep.find('.wpcf7-form-control-wrap .wpcf7-not-valid-tip').remove();\n $multistep.find('.wpcf7-not-valid').removeClass('wpcf7-not-valid');\n $multistep.find('.wpcf7-response-output').remove();\n $multistep.find('.wpcf7-response-output.wpcf7-validation-errors').removeClass('wpcf7-validation-errors');\n\n if (!json.success) {\n var checkError = 0;\n\n jQuery.each(json.invalid_fields, function(index, el) {\n if ($multistep.find('input[name=\"'+index+'\"]').length ||\n $multistep.find('input[name=\"'+index+'[]\"]').length ||\n $multistep.find('select[name=\"'+index+'\"]').length ||\n $multistep.find('select[name=\"'+index+'[]\"]').length ||\n $multistep.find('textarea[name=\"'+index+'\"]').length ||\n $multistep.find('textarea[name=\"'+index+'[]\"]').length\n ) {\n checkError = checkError + 1;\n\n var controlWrap = jQuery('.wpcf7-form-control-wrap.' + index, $form);\n controlWrap.find('input').addClass('wpcf7-not-valid');\n controlWrap.find('span.wpcf7-not-valid-tip').remove();\n controlWrap.append('<span role=\"alert\" class=\"wpcf7-not-valid-tip\">' + el.reason + '</span>');\n\n }\n });\n\n resolve('failed');\n\n $multistep.parent().find('.wpcf7-response-output').removeClass('wpcf7-display-none').html(json.message);\n\n } else if (json.success) {\n resolve('success');\n return false;\n }\n\n }).fail(function() {\n resolve('error');\n }).always(function() {\n // do nothing\n });\n });\n\n};\nWpcf7cfMultistep.prototype.moveToStep = function(step_index) {\n var multistep = this;\n var previousStep = multistep.currentStep;\n\n multistep.currentStep = step_index > multistep.numSteps ? multistep.numSteps\n : step_index < 1 ? 1\n : step_index;\n\n // ANIMATION DISABLED FOR NOW cause it's ugly\n // multistep.$steps.animate(wpcf7cf_hide_step_animation, multistep.form.settings.animation_outtime);\n // multistep.$steps.eq(multistep.currentStep-1).animate(wpcf7cf_show_step_animation, multistep.form.settings.animation_intime);\n\n multistep.$multistep.attr('data-current_step', multistep.currentStep);\n multistep.$steps.hide();\n multistep.$steps\n .eq(multistep.currentStep-1)\n .show()\n .trigger('wpcf7cf_change_step', [previousStep, multistep.currentStep]);\n\n const formEl = multistep.form.$form[0];\n const topOffset = formEl.getBoundingClientRect().top;\n if (topOffset < 0 && previousStep > 0) {\n formEl.scrollIntoView({behavior: \"smooth\"});\n }\n\n multistep.form.updateSummaryFields();\n\n window.wpcf7cf.updateMultistepState(multistep);\n};\n\nWpcf7cfMultistep.prototype.getFieldsInStep = function(step_index) {\n var simpleDom = window.wpcf7cf.get_simplified_dom_model(this.form.$form);\n var inStep = false;\n return simpleDom.filter(function(item, i) {\n if(item.type == 'step') {\n inStep = item.step == step_index+'';\n }\n return inStep && item.type == 'input';\n }).map(function(item) {\n return item.name;\n });\n};\n\n// END PRO ONLY\n\nwindow.wpcf7cf = {\n\n // keep this for backwards compatibility\n initForm : function($form) {\n wpcf7cf_forms.push(new Wpcf7cfForm($form));\n },\n\n get_nested_conditions : function(conditions, $current_form) {\n //loop trough conditions. Then loop trough the dom, and each repeater we pass we should update all sub_values we encounter with __index\n var simplified_dom = window.wpcf7cf.get_simplified_dom_model($current_form);\n var groups = simplified_dom.filter(function(item, i) {\n return item.type==='group';\n });\n\n var sub_conditions = [];\n\n for(var i = 0; i < groups.length; i++) {\n var g = groups[i];\n var relevant_conditions = conditions.filter(function(condition, i) {\n return condition.then_field === g.original_name;\n });\n \n var relevant_conditions = relevant_conditions.map(function(item,i) {\n return {\n then_field : g.name,\n and_rules : item.and_rules.map(function(and_rule, i) {\n return {\n if_field : and_rule.if_field+g.suffix,\n if_value : and_rule.if_value,\n operator : and_rule.operator\n };\n })\n }\n });\n\n sub_conditions = sub_conditions.concat(relevant_conditions);\n }\n return conditions.concat(sub_conditions);\n },\n\n get_simplified_dom_model : function($current_form) {\n // if the dom is something like:\n // <form>\n // <repeater ra>\n // <group ga__1>\n // <repeater rb__1>\n // <input txta__1__1 />\n // <input txta__1__2 />\n // </repeater>\n // <group gb__1>\n // <input txtb__1 />\n // </group>\n // </group>\n // <group ga__2>\n // <repeater rb__2>\n // <input txta__2__1 />\n // </repeater>\n // <group gb__2>\n // <input txtb__2 />\n // </group>\n // </group>\n // </repeater>\n // </form>\n // \n // return something like:\n // [{type:repeater, name:'ra', suffix: '__1'}, {type: group, name:'ga', suffix: '__1'}, ...]\n\n var currentNode;\n var ni = document.createNodeIterator($current_form[0], NodeFilter.SHOW_ELEMENT, null, false); //, NodeFilter.SHOW_ELEMENT, function(){ return NodeFilter.FILTER_ACCEPT; }\n\n var simplified_dom = [];\n\n while(currentNode = ni.nextNode()) {\n if (currentNode.classList.contains('wpcf7cf_repeater')) {\n simplified_dom.push({type:'repeater', name:currentNode.dataset.id, original_name:currentNode.dataset.orig_data_id})\n } else if (currentNode.dataset.class == 'wpcf7cf_group') {\n simplified_dom.push({type:'group', name:currentNode.dataset.id, original_name:currentNode.dataset.orig_data_id})\n } else if (currentNode.className == 'wpcf7cf_step') {\n simplified_dom.push({type:'step', name:currentNode.dataset.id, original_name:currentNode.dataset.id, step: currentNode.dataset.id.substring(5)})\n } else if (currentNode.hasAttribute('name')) {\n simplified_dom.push({type:'input', name:currentNode.getAttribute('name'), original_name:currentNode.getAttribute('data-orig_name')})\n }\n }\n\n simplified_dom = simplified_dom.map(function(item, i){\n var original_name_length = item.original_name == null ? item.name.length : item.original_name.length;\n item.suffix = item.name.substring(original_name_length);\n return item;\n });\n\n //console.table(simplified_dom);\n return simplified_dom;\n\n },\n\n updateMultistepState: function (multistep) {\n if (multistep == null) return;\n\n // update hidden input field\n\n var stepsData = {\n currentStep : multistep.currentStep,\n numSteps : multistep.numSteps,\n fieldsInCurrentStep : multistep.getFieldsInStep(multistep.currentStep)\n };\n multistep.form.$input_steps.val(JSON.stringify(stepsData));\n\n // update Buttons\n multistep.$btn_prev.removeClass('disabled');\n multistep.$btn_next.removeClass('disabled');\n if (multistep.currentStep == multistep.numSteps) {\n multistep.$btn_next.addClass('disabled');\n }\n if (multistep.currentStep == 1) {\n multistep.$btn_prev.addClass('disabled');\n }\n\n // replace next button with submit button on last step.\n // TODO: make this depend on a setting\n var $submit_button = multistep.form.$form.find('input[type=\"submit\"]').eq(0);\n var $ajax_loader = multistep.form.$form.find('.ajax-loader').eq(0);\n if (multistep.currentStep == multistep.numSteps) {\n multistep.$btn_next.hide();\n $ajax_loader.detach().appendTo(multistep.$btn_next.parent());\n $submit_button.detach().appendTo(multistep.$btn_next.parent());\n $submit_button.show();\n } else {\n $submit_button.hide();\n multistep.$btn_next.show();\n }\n\n // update dots\n var $dots = multistep.$dots.find('.dot');\n $dots.removeClass('active').removeClass('completed');\n for(var step = 1; step <= multistep.numSteps; step++) {\n if (step < multistep.currentStep) {\n $dots.eq(step-1).addClass('completed');\n } else if (step == multistep.currentStep) {\n $dots.eq(step-1).addClass('active');\n }\n }\n\n },\n\n should_group_be_shown : function(condition, $current_form) {\n\n var $ = jQuery;\n\n var show_group = true;\n\n for (var and_rule_i = 0; and_rule_i < condition.and_rules.length; and_rule_i++) {\n\n var condition_ok = false;\n\n var condition_and_rule = condition.and_rules[and_rule_i];\n\n var $field = jQuery('[name=\"' + condition_and_rule.if_field + '\"], [name=\"' + condition_and_rule.if_field + '[]\"], [data-original-name=\"' + condition_and_rule.if_field + '\"], [data-original-name=\"' + condition_and_rule.if_field + '[]\"]',$current_form);\n\n var if_val = condition_and_rule.if_value;\n var if_val_as_number = isFinite(parseFloat(if_val)) ? parseFloat(if_val):0;\n var operator = condition_and_rule.operator;\n \n var regex_patt = /.*/i; // fallback regex pattern\n var isValidRegex = true;\n try {\n regex_patt = new RegExp(if_val, 'i');\n } catch(e) {\n isValidRegex = false;\n }\n\n\n //backwards compat\n operator = operator === '≤' ? 'less than or equals' : operator;\n operator = operator === '≥' ? 'greater than or equals' : operator;\n operator = operator === '>' ? 'greater than' : operator;\n operator = operator === '<' ? 'less than' : operator;\n\n\n if ( $field.is(':checkbox') || $field.is(':radio') ) {\n\n var all_values = [];\n var checked_values = [];\n $field.each(function () {\n all_values.push(jQuery(this).val());\n if (jQuery(this).is(':checked')) {\n checked_values.push(jQuery(this).val());\n }\n });\n\n condition_ok = this.isConditionTrue(checked_values,operator,if_val,$field);\n \n } else {\n \n condition_ok = this.isConditionTrue($field.val(),operator,if_val,$field);\n }\n\n show_group = show_group && condition_ok;\n }\n\n return show_group;\n\n },\n isConditionTrue(values, operator, testValue='', $field=jQuery()) {\n\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n let condition_ok = false; // start by assuming that the condition is not met\n\n // Considered EMPTY: [] [''] [null] ['',null] [,,'']\n // Considered NOT EMPTY: [0] ['ab','c'] ['',0,null]\n const valuesAreEmpty = values.length === 0 || values.every((v) => !v&&v!==0); // 0 is not considered empty\n\n // special cases: [] equals '' => TRUE; [] not equals '' => FALSE\n if (operator === 'equals' && testValue === '' && valuesAreEmpty) {\n return true;\n }\n if (operator === 'not equals' && testValue === '' && valuesAreEmpty) {\n return false;\n }\n\n if (valuesAreEmpty) {\n if (operator === 'is empty') {\n condition_ok = true;\n }\n } else {\n if (operator === 'not empty') {\n condition_ok = true;\n }\n }\n\n const testValueNumber = isFinite(parseFloat(testValue)) ? parseFloat(testValue) : NaN;\n\n\n if (operator === 'not equals' || operator === 'not equals (regex)') {\n // start by assuming that the condition is met\n condition_ok = true;\n }\n\n if (\n operator === 'function'\n && typeof window[testValue] == 'function'\n && window[testValue]($field) // here we call the actual user defined function\n ) {\n condition_ok = true;\n }\n\n let regex_patt = /.*/i; // fallback regex pattern\n let isValidRegex = true;\n if (operator === 'equals (regex)' || operator === 'not equals (regex)') {\n try {\n regex_patt = new RegExp(testValue, 'i');\n } catch(e) {\n isValidRegex = false;\n }\n }\n\n\n for(let i = 0; i < values.length; i++) {\n\n const value = values[i];\n\n const valueNumber = isFinite(parseFloat(value)) ? parseFloat(value) : NaN;\n const valsAreNumbers = !isNaN(valueNumber) && !isNaN(testValueNumber);\n\n if (\n\n operator === 'equals' && value === testValue ||\n operator === 'equals (regex)' && regex_patt.test(value) ||\n operator === 'greater than' && valsAreNumbers && valueNumber > testValueNumber ||\n operator === 'less than' && valsAreNumbers && valueNumber < testValueNumber ||\n operator === 'greater than or equals' && valsAreNumbers && valueNumber >= testValueNumber ||\n operator === 'less than or equals' && valsAreNumbers && valueNumber <= testValueNumber\n \n ) {\n\n condition_ok = true;\n break;\n\n } else if (\n\n operator === 'not equals' && value === testValue ||\n operator === 'not equals (regex)' && regex_patt.test(value)\n\n ) {\n\n condition_ok = false;\n break;\n\n }\n }\n\n return condition_ok;\n\n }\n\n};\n\n\n\n\njQuery('.wpcf7-form').each(function(){\n wpcf7cf_forms.push(new Wpcf7cfForm(jQuery(this)));\n});\n\n// Call displayFields again on all forms\n// Necessary in case some theme or plugin changed a form value by the time the entire page is fully loaded.\njQuery('document').ready(function() {\n wpcf7cf_forms.forEach(function(f){\n f.displayFields();\n });\n});\n\n// fix for exclusive checkboxes in IE (this will call the change-event again after all other checkboxes are unchecked, triggering the display_fields() function)\nvar old_wpcf7ExclusiveCheckbox = jQuery.fn.wpcf7ExclusiveCheckbox;\njQuery.fn.wpcf7ExclusiveCheckbox = function() {\n return this.find('input:checkbox').on('click', function() {\n var name = jQuery(this).attr('name');\n jQuery(this).closest('form').find('input:checkbox[name=\"' + name + '\"]').not(this).prop('checked', false).eq(0).change();\n });\n};\n\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n"],"sourceRoot":""}
js/scripts_es6.js CHANGED
@@ -394,12 +394,12 @@ function Wpcf7cfRepeater($repeater, form) {
394
 
395
  this.params = params;
396
 
397
- $button_add.click( repeater, function(e) {
398
  var repeater = e.data;
399
  repeater.updateSubs(params.$repeater.num_subs+1);
400
  });
401
 
402
- $button_remove.click( repeater,function(e) {
403
  var repeater = e.data;
404
  repeater.updateSubs(params.$repeater.num_subs-1);
405
  });
@@ -552,8 +552,8 @@ function Wpcf7cfMultistep($multistep, form) {
552
 
553
  });
554
 
555
- // If form is submitted (by pressing retrun for example), and if we are not on the last step,
556
- // then trigger click event on the $next button instead.
557
  multistep.form.$form.on('submit.wpcf7cf_step', function(e) {
558
 
559
  if (multistep.currentStep !== multistep.numSteps) {
@@ -564,7 +564,7 @@ function Wpcf7cfMultistep($multistep, form) {
564
  }
565
  });
566
 
567
- multistep.$btn_prev.click(function() {
568
  multistep.moveToStep(multistep.currentStep-1);
569
  });
570
 
@@ -617,17 +617,6 @@ Wpcf7cfMultistep.prototype.validateStep = function(step_index) {
617
  dataType: 'json',
618
  }).done(function(json) {
619
 
620
- /*
621
- * Insert _form_data_id if 'json variable' has
622
- */
623
- // if (typeof json._cf7mls_db_form_data_id != 'undefined') {
624
- // if (!form.find('input[name="_cf7mls_db_form_data_id"]').length) {
625
- // form.append('<input type="hidden" name="_cf7mls_db_form_data_id" value="'+json._cf7mls_db_form_data_id+'" />');
626
- // }
627
- // }
628
-
629
- //reset error messages
630
- //$multistep.find('.wpcf7-form-control-wrap').removeClass('cf7mls-invalid');
631
  $multistep.find('.wpcf7-form-control-wrap .wpcf7-not-valid-tip').remove();
632
  $multistep.find('.wpcf7-not-valid').removeClass('wpcf7-not-valid');
633
  $multistep.find('.wpcf7-response-output').remove();
@@ -647,17 +636,14 @@ Wpcf7cfMultistep.prototype.validateStep = function(step_index) {
647
  checkError = checkError + 1;
648
 
649
  var controlWrap = jQuery('.wpcf7-form-control-wrap.' + index, $form);
650
- //controlWrap.addClass('cf7mls-invalid');
651
  controlWrap.find('input').addClass('wpcf7-not-valid');
652
  controlWrap.find('span.wpcf7-not-valid-tip').remove();
653
  controlWrap.append('<span role="alert" class="wpcf7-not-valid-tip">' + el.reason + '</span>');
654
 
655
- //return false;
656
  }
657
  });
658
 
659
  resolve('failed');
660
- //$multistep.append('<div class="wpcf7-response-output wpcf7-display-none wpcf7-validation-errors" style="display: block;" role="alert">' + json.message + '</div>');
661
 
662
  $multistep.parent().find('.wpcf7-response-output').removeClass('wpcf7-display-none').html(json.message);
663
 
@@ -929,17 +915,23 @@ window.wpcf7cf = {
929
 
930
  let condition_ok = false; // start by assuming that the condition is not met
931
 
932
- if (!values || values.length == 0 || values.every((v) => !v||0)) { // no values or only empty values passed (0 is not considered empty)
 
 
 
 
 
 
 
 
 
 
 
 
933
  if (operator === 'is empty') {
934
  condition_ok = true;
935
  }
936
- if (operator === 'not empty') {
937
- condition_ok = false;
938
- }
939
  } else {
940
- if (operator === 'is empty') {
941
- condition_ok = false;
942
- }
943
  if (operator === 'not empty') {
944
  condition_ok = true;
945
  }
@@ -1030,7 +1022,7 @@ jQuery('document').ready(function() {
1030
  // fix for exclusive checkboxes in IE (this will call the change-event again after all other checkboxes are unchecked, triggering the display_fields() function)
1031
  var old_wpcf7ExclusiveCheckbox = jQuery.fn.wpcf7ExclusiveCheckbox;
1032
  jQuery.fn.wpcf7ExclusiveCheckbox = function() {
1033
- return this.find('input:checkbox').click(function() {
1034
  var name = jQuery(this).attr('name');
1035
  jQuery(this).closest('form').find('input:checkbox[name="' + name + '"]').not(this).prop('checked', false).eq(0).change();
1036
  });
394
 
395
  this.params = params;
396
 
397
+ $button_add.on('click', null, repeater, function(e) {
398
  var repeater = e.data;
399
  repeater.updateSubs(params.$repeater.num_subs+1);
400
  });
401
 
402
+ $button_remove.on('click', null, repeater,function(e) {
403
  var repeater = e.data;
404
  repeater.updateSubs(params.$repeater.num_subs-1);
405
  });
552
 
553
  });
554
 
555
+ // If form is submitted (by pressing return for example), and if we are not on the last step,
556
+ // then trigger click event on the $btn_next button instead.
557
  multistep.form.$form.on('submit.wpcf7cf_step', function(e) {
558
 
559
  if (multistep.currentStep !== multistep.numSteps) {
564
  }
565
  });
566
 
567
+ multistep.$btn_prev.on( 'click', function() {
568
  multistep.moveToStep(multistep.currentStep-1);
569
  });
570
 
617
  dataType: 'json',
618
  }).done(function(json) {
619
 
 
 
 
 
 
 
 
 
 
 
 
620
  $multistep.find('.wpcf7-form-control-wrap .wpcf7-not-valid-tip').remove();
621
  $multistep.find('.wpcf7-not-valid').removeClass('wpcf7-not-valid');
622
  $multistep.find('.wpcf7-response-output').remove();
636
  checkError = checkError + 1;
637
 
638
  var controlWrap = jQuery('.wpcf7-form-control-wrap.' + index, $form);
 
639
  controlWrap.find('input').addClass('wpcf7-not-valid');
640
  controlWrap.find('span.wpcf7-not-valid-tip').remove();
641
  controlWrap.append('<span role="alert" class="wpcf7-not-valid-tip">' + el.reason + '</span>');
642
 
 
643
  }
644
  });
645
 
646
  resolve('failed');
 
647
 
648
  $multistep.parent().find('.wpcf7-response-output').removeClass('wpcf7-display-none').html(json.message);
649
 
915
 
916
  let condition_ok = false; // start by assuming that the condition is not met
917
 
918
+ // Considered EMPTY: [] [''] [null] ['',null] [,,'']
919
+ // Considered NOT EMPTY: [0] ['ab','c'] ['',0,null]
920
+ const valuesAreEmpty = values.length === 0 || values.every((v) => !v&&v!==0); // 0 is not considered empty
921
+
922
+ // special cases: [] equals '' => TRUE; [] not equals '' => FALSE
923
+ if (operator === 'equals' && testValue === '' && valuesAreEmpty) {
924
+ return true;
925
+ }
926
+ if (operator === 'not equals' && testValue === '' && valuesAreEmpty) {
927
+ return false;
928
+ }
929
+
930
+ if (valuesAreEmpty) {
931
  if (operator === 'is empty') {
932
  condition_ok = true;
933
  }
 
 
 
934
  } else {
 
 
 
935
  if (operator === 'not empty') {
936
  condition_ok = true;
937
  }
1022
  // fix for exclusive checkboxes in IE (this will call the change-event again after all other checkboxes are unchecked, triggering the display_fields() function)
1023
  var old_wpcf7ExclusiveCheckbox = jQuery.fn.wpcf7ExclusiveCheckbox;
1024
  jQuery.fn.wpcf7ExclusiveCheckbox = function() {
1025
+ return this.find('input:checkbox').on('click', function() {
1026
  var name = jQuery(this).attr('name');
1027
  jQuery(this).closest('form').find('input:checkbox[name="' + name + '"]').not(this).prop('checked', false).eq(0).change();
1028
  });
readme.txt CHANGED
@@ -5,8 +5,8 @@ Author: Jules Colle
5
  Website: http://bdwm.be
6
  Tags: wordpress, contact form 7, forms, conditional fields
7
  Requires at least: 4.1
8
- Tested up to: 5.4
9
- Stable tag: 1.8.6
10
  Requires PHP: 5.6
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -102,6 +102,12 @@ The conditional fields javascript code is loaded during wp_footer, so a call to
102
 
103
  == Changelog ==
104
 
 
 
 
 
 
 
105
  = 1.8.6 (2020-04-18) =
106
  * Fixed: accidentally packed the entire jQuery library in scripts.js
107
  * Cleaned up some console.logs that was still hanging around in the code.
5
  Website: http://bdwm.be
6
  Tags: wordpress, contact form 7, forms, conditional fields
7
  Requires at least: 4.1
8
+ Tested up to: 5.4.1
9
+ Stable tag: 1.8.7
10
  Requires PHP: 5.6
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
102
 
103
  == Changelog ==
104
 
105
+ = 1.8.7 (2020-06-01) =
106
+ * PRO: Change auto-update mechanism
107
+ * Some minor JS refactoring
108
+ * Improved on some edge cases with `equals ""` and `not equals ""`
109
+ * Improved test suites.
110
+
111
  = 1.8.6 (2020-04-18) =
112
  * Fixed: accidentally packed the entire jQuery library in scripts.js
113
  * Cleaned up some console.logs that was still hanging around in the code.