/**
 * This JS file was auto-generated via Terser.
 *
 * Contributors should avoid editing this file, but instead edit the associated
 * non minified file file. For more information, check out our engineering docs
 * on how we handle JS minification in our engineering docs.
 *
 * @see: https://evnt.is/dev-docs-minification
 */

tribe.validation={},dayjs.extend(window.dayjs_plugin_customParseFormat),function(obj,$,_){"use strict";var $document=$(document);obj.selectors={item:".tribe-validation",fields:"input, select, textarea",submit:".tribe-validation-submit",submitButtons:'input[type="submit"], button[type="submit"]',error:".tribe-validation-error",valid:".tribe-validation-valid",notice:".tribe-notice-validation",noticeAfter:".wp-header-end",noticeFallback:".wrap > h1",noticeDismiss:".notice-dismiss"},obj.conditions={isRequired:function(value){return""!=value},isGreaterThan:function(value,constraint,$field){var condition=obj.parseCondition("isGreaterThan",value,constraint,$field);return!1===condition||condition.constraint<condition.value},isGreaterOrEqualTo:function(value,constraint,$field){var condition=obj.parseCondition("isGreaterOrEqualTo",value,constraint,$field);return!1===condition||condition.constraint<=condition.value},isLessThan:function(value,constraint,$field){var condition=obj.parseCondition("isLessThan",value,constraint,$field);return!1===condition||condition.constraint>condition.value},isLessOrEqualTo:function(value,constraint,$field){var condition=obj.parseCondition("isLessOrEqualTo",value,constraint,$field);return!1===condition||condition.constraint>=condition.value},isEqualTo:function(value,constraint,$field){var condition=obj.parseCondition("isEqualTo",value,constraint,$field);return!1===condition||condition.constraint==condition.value},isNotEqualTo:function(value,constraint,$field){var condition=obj.parseCondition("isNotEqualTo",value,constraint,$field);return!1===condition||condition.constraint!=condition.value},matchRegExp:function(value,constraint,$field){return null!==new RegExp(constraint,"g").exec(value)},notMatchRegExp:function(value,constraint,$field){return null===new RegExp(constraint,"g").exec(value)}},obj.parseType={datepicker:function(value,$constraint,$field){var formats=["yyyy-mm-dd","m/d/yyyy","mm/dd/yyyy","d/m/yyyy","dd/mm/yyyy","m-d-yyyy","mm-dd-yyyy","d-m-yyyy","dd-mm-yyyy","yyyy.mm.dd","mm.dd.yyyy","dd.mm.yyyy"],formatKey=0;$constraint.length&&$constraint.attr("data-datepicker_format")?formatKey=$constraint.attr("data-datepicker_format"):_.isString(formats[$constraint])?formatKey=formats[$constraint]:$constraint.parents("[data-datepicker_format]").length&&(formatKey=$constraint.parents("[data-datepicker_format]").eq(0).data("datepicker_format")),void 0!==formats[formatKey]&&formats[formatKey]||(formatKey=0);var format=formats[formatKey].toUpperCase();return value=dayjs(value,format).valueOf()},default:function(value,$constraint,$field){return $.isNumeric(value)&&(value=parseFloat(value,10)),value}},obj.parseCondition=function(conditional,value,constraint,$field){var type=$field.data("validationType"),$constraint=null,condition={value:value,constraint:constraint};if(type||_.isFunction(obj.parseType[type])||(type="default"),!$.isNumeric(constraint)){if(!($constraint=$(constraint)).length)return console.warn("Tribe Validation:","Invalid selector for",$field,constraint),!1;if(!($constraint=$constraint.not(":disabled")).length)return!1;constraint=$constraint.val()}return condition.constraint=obj.parseType[type](constraint,$constraint,$field),condition.value=obj.parseType[type](value,$constraint,$field),condition},obj.constraints={isRequired:function($field){var value=null;return value=$field.data("required")||value,value=$field.data("validationRequired")||value,value=$field.data("validationIsRequired")||value,value=$field.is("[required]")||value,value=$field.is("[data-required]")||value,value=$field.is("[data-validation-required]")||value,value=$field.is("[data-validation-is-required]")||value},isGreaterThan:function($field){var value=null;return $field.is("[data-validation-is-greater-than]")&&(value=$field.data("validationIsGreaterThan")),value},isGreaterOrEqualTo:function($field){var value=null;return $field.is("[data-validation-is-greater-or-equal-to]")&&(value=$field.data("validationIsGreaterOrEqualTo")),value},isLessThan:function($field){var value=null;return $field.is("[data-validation-is-less-than]")&&(value=$field.data("validationIsLessThan")),value},isLessOrEqualTo:function($field){var value=null;return $field.is("[data-validation-is-less-or-equal-to]")&&(value=$field.data("validationIsLessOrEqualTo")),value},isEqualTo:function($field){var value=null;return $field.is("[data-validation-is-equal-to]")&&(value=$field.data("validationIsEqualTo")),value},isNotEqualTo:function($field){var value=null;return $field.is("[data-validation-is-not-equal-to]")&&(value=$field.data("validationIsNotEqualTo")),value},matchRegExp:function($field){var value=null;return $field.is("[data-validation-match-regexp]")&&(value=$field.data("validationMatchRegexp")),value},notMatchRegExp:function($field){var value=null;return $field.is("[data-validation-not-match-regexp]")&&(value=$field.data("validationNotMatchRegexp")),value}},obj.fn=function(){return this.each(obj.setup)},obj.setup=function(i,item){var $item=$(item);$item.addClass(obj.selectors.item.className()),$item.find(obj.selectors.submitButtons).addClass(obj.selectors.submit.className()),$item.on("submit.tribe",obj.onSubmit),$item.on("validation.tribe",obj.onValidation),$item.on("displayErrors.tribe",obj.onDisplayErrors),$document.on("click.tribe",obj.selectors.submit,obj.onClickSubmitButtons),$document.on("click.tribe",obj.selectors.noticeDismiss,obj.onClickDismissNotice)},obj.validate=function(index,field){var $field=$(field);obj.isValid($field)||($field.addClass(obj.selectors.error.className()),$field.one("change",obj.onChangeFieldRemoveError))},obj.isValid=function($field){var constraints=obj.getConstraints($field);return _.isObject(constraints)?_.every(constraints):constraints},obj.hasErrors=function($item){return 0!==$item.find(obj.selectors.error).not(":disabled").length},obj.getConstraints=function($field){if($field.is(":disabled"))return true;var constraints=obj.getConstraintsValue($field),value=$field.val();return!!_.isEmpty(constraints)||(constraints=_.mapObject(constraints,(function(constraint,key){return obj.conditions[key](value,constraint,$field)})))},obj.getConstraintsValue=function($field){var constraints={};return $field.is(":disabled")?constraints:(constraints=obj.constraints,constraints=_.mapObject(constraints,(function(isApplicable){return isApplicable($field)})),constraints=_.pick(constraints,(function(value){return null!==value})))},obj.getConstraintsFields=function($field){var constraints=obj.getConstraintsValue($field);return constraints=_.mapObject(constraints,(function(constraint){var $constraint=null;return _.isNumber(constraint)||_.isBoolean(constraint)||($constraint=$(constraint)),$constraint})),constraints=_.pick(constraints,(function(value){return value instanceof jQuery})),(constraints=_.values(constraints)).unshift($field),constraints=$(constraints).map((function(){return this.get()}))},obj.onValidation=function(event){var $item=$(this),$fields=$item.find(obj.selectors.fields);$fields.removeClass(obj.selectors.error.className()),$fields.each(obj.validate),0===$item.find(obj.selectors.error).not(":disabled").length?$item.addClass(obj.selectors.valid.className()):$item.trigger("displayErrors.tribe")},obj.onDisplayErrors=function(event){var $errors=$(this).find(obj.selectors.error).not(":disabled"),$list=$("<ul>"),$dismiss=$("<span>").addClass(obj.selectors.noticeDismiss.className()),$notice=$document.find(obj.selectors.notice),$newNotice=$("<div>").addClass("notice notice-error is-dismissible tribe-notice").addClass(obj.selectors.notice.className()).append($dismiss);if($errors.each((function(i,field){var $field=$(field),message=$field.data("validationError");if(_.isObject(message)){var messages={},failed=obj.getConstraints($field,!1);_.each(message,(function(value,key){messages[tribe.utils.camelCase(key)]=value})),_.each(failed,(function(value,key){value||obj.addErrorLine(messages[key],$field,$list)}))}else obj.addErrorLine(message,$field,$list)})),$newNotice.append($list),0===$notice.length){var $wpHeaderEnd=$document.find(obj.selectors.noticeAfter);0===$wpHeaderEnd.length&&($wpHeaderEnd=$document.find(obj.selectors.noticeFallback)),$wpHeaderEnd.after($newNotice)}else $notice.replaceWith($newNotice)},obj.addErrorLine=function(message,$field,$list){var $listItem=$("<li>").text(message);$listItem.data("validationField",$field),$field.data("validationNoticeItem",$field),$list.append($listItem)},obj.onSubmit=function(event){var $item=$(this);if($item.trigger("validation.tribe"),!$item.is(obj.selectors.valid))return event.preventDefault(),!1},obj.onClickSubmitButtons=function(event){var $item=$(this).parents(obj.selectors.item);if(0!==$item.length){$item.trigger("validation.tribe");var $fields=$item.find(obj.selectors.fields);$fields.off("invalid.tribe"),$fields.one("invalid.tribe",obj.onInvalidField)}},obj.onInvalidField=function(event){var $field=$(this),$item=$field.parents(obj.selectors.item);return $field.addClass(obj.selectors.error.className()),$item.trigger("displayErrors.tribe"),$field.one("change",obj.onChangeFieldRemoveError),event.preventDefault(),!1},obj.onChangeFieldRemoveError=function(event){var $field=$(this),$relatedFields=obj.getConstraintsFields($field);0!==$relatedFields.filter(obj.selectors.error).length&&$relatedFields.removeClass(obj.selectors.error.className())},obj.onClickDismissNotice=function(event){$(this).parents(obj.selectors.notice).remove()},obj.onReady=function(event){$(obj.selectors.item).validation()},$.fn.validation=obj.fn,$(obj.onReady)}(tribe.validation,jQuery,window.underscore||window._);