1class strongValidation{constructor(e){this.form=jQuery(e).find("form"),this.formID=this.form.data("formid"),this.defaults={ajaxUrl:"",nonceUrl:"",display:{successMessage:!1},scroll:{onError:!0,onErrorOffset:100,onSuccess:!0,onSuccessOffset:100},fields:{}},this.settings={},this.rules={},this.init()}setOpts(e){this.settings=jQuery.extend({},this.defaults,e)}setRules(){for(var e=0;e<this.settings.fields.length;e++)"rating"===this.settings.fields[e].type&&1===this.settings.fields[e].required&&(this.rules[this.settings.fields[e].name]={ratingRequired:!0})}init(){var e={};void 0!==window.strongForm&&(e=this.form.data("config")),this.setOpts(e),this.refreshNonce();var t=this;window.addEventListener("pageshow",(function(e){e.persisted&&t.refreshNonce()})),this.settings.display.successMessage?this.scrollOnSuccess():(this.setRules(),this.changeEvents(),this.customValidators(),this.validateForm())}refreshNonce(){var e=this;this.settings.nonceUrl&&!this.form.data("wpmtstNonceRefreshed")&&(this.form.data("wpmtstNonceRefreshed",!0),jQuery.post(this.settings.nonceUrl,{action:"wpmtst_form_nonce"},(function(t){t&&t.success&&t.data&&t.data.nonce&&e.form.find('input[name="wpmtst_form_nonce"]').val(t.data.nonce)})))}changeEvents(){jQuery('input[type="text"], input[type="url"], input[type="email"], textarea',".wpmtst-submission-form").on("change blur",(function(e){e.target.value=e.target.value.trim()})),jQuery("input[type=url]").on("change",(function(){this.value.length&&!/^https*:\/\//.test(this.value)&&(this.value="https://"+this.value)}));for(var e=document.getElementsByClassName("strong-rating"),t=0;t<e.length;t++)e[t].addEventListener("click",this.handleRadioEvent,!0),e[t].addEventListener("keyup",this.handleRadioEvent,!0),e[t].addEventListener("change",(function(){jQuery(this).valid()}),!0)}disableForm(){jQuery('.strong-form-wait[data-formid="'+this.formID+'"]').show(),this.form.find(".wpmtst_submit_testimonial").prop("disabled",!0)}enableForm(){jQuery('.strong-form-wait[data-formid="'+this.formID+'"]').hide(),this.form.find(".wpmtst_submit_testimonial").prop("disabled",!1)}handleRadioEvent(e){if(e.keyCode>=48&&e.keyCode<=53){var t=e.keyCode-48;jQuery(this).find('input[type="radio"][value='+t+"]").trigger("click")}}customValidators(){jQuery.validator.addMethod("ratingRequired",(function(e,t){return jQuery(t).find("input:checked").val()>0}),jQuery.validator.messages.required)}validateForm(){var e=this;this.form.validate({onfocusout:!1,focusInvalid:!1,invalidHandler:function(t,s){if(s.numberOfInvalids())if(e.settings.scroll.onError){if(void 0!==s.errorList[0]){var r=jQuery(s.errorList[0].element),i=r.closest(".form-field, .wpmtst-form-field").offset().top-e.settings.scroll.onErrorOffset;jQuery("html, body").animate({scrollTop:i},800,(function(){r.focus()}))}}else s.errorList[0].element.focus()},submitHandler:function(){if(e.form.trigger("wpmtst_before_submit",[e.formID]),e.disableForm(),""!==e.settings.ajaxUrl){window.onbeforeunload=function(){return"Please wait while the form is submitted."};var t={url:e.settings.ajaxUrl,data:{action:"wpmtst_form2"},success:function(t){e.showResponse(t)}};e.form.ajaxSubmit(t)}else e.form.get(0).submit()},rules:this.rules,errorPlacement:function(e,t){e.appendTo(t.closest("div.form-field, div.wpmtst-form-field"))},highlight:function(e,t,s){"checkbox"===e.type||"rating"===jQuery(e).data("fieldType")?jQuery(e).closest(".field-wrap, .wpmtst-field-wrap").addClass(t).removeClass(s):jQuery(e).addClass(t).removeClass(s)},unhighlight:function(e,t,s){"checkbox"===e.type||"rating"===jQuery(e).data("fieldType")?jQuery(e).closest(".field-wrap, .wpmtst-field-wrap").removeClass(t).addClass(s):jQuery(e).removeClass(t).addClass(s)}})}showResponse(e){window.onbeforeunload=null,this.enableForm();var t=JSON.parse(e);if(t.success)this.form.parent().html(t.message),this.scrollOnSuccess();else for(var s in this.form.children(".wpmtst-general-error").remove(),t.errors)if(t.errors.hasOwnProperty(s)){var r=this.form.children(".field-"+s+", .wpmtst-field-"+s);r.length?r.find("span.error, span.wpmtst-error").remove().end().append('<span class="error wpmtst-error">'+t.errors[s]+"</span>"):this.form.prepend('<span class="error wpmtst-error wpmtst-general-error">'+t.errors[s]+"</span>")}}scrollOnSuccess(){var e,t;this.settings.scroll.onSuccess&&((e=jQuery(".wpmtst-form-id-"+this.formID).find(".wpmtst-testimonial-success").offset())&&(t=e.top-this.settings.scroll.onSuccessOffset,jQuery("#wpadminbar").length&&(t-=32),jQuery("html, body").animate({scrollTop:t},800)))}}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.