function PaoValidation(a){return this instanceof PaoValidation?!!a.$addons.length&&(this.$form=a.$el,this.$addons=a.$addons,this.form=a,void(this.validationState=this.getInitialState())):new PaoValidation(a)}PaoValidation.prototype.getInitialState=function(){var a={};return jQuery.each(this.$addons,function(){a[jQuery(this).attr("id")]={validity:!0,message:""}}),a},PaoValidation.prototype.getValidationState=function(){return this.validationState},PaoValidation.prototype.validateAddon=function(a,t=!1){var i=a.data("restrictions"),e=a.attr("id"),o=!0;return this.validationState[e]||(this.validationState[e]={validity:!0,message:""}),a.closest(".wc-pao-addon-container").is(":visible")&&(jQuery.isEmptyObject(i)||((o=(o="required"in i&&"yes"===i.required?this.validateRequired(a):o)&&a.is(".wc-pao-addon-custom-price")?this.validateDecimals(a):o)&&"content"in i&&("only_letters"===i.content?o=this.validateLetters(a):"only_numbers"===i.content?o=this.validateNumbers(a):"only_letters_numbers"===i.content?o=this.validateLettersNumbers(a):"email"===i.content&&(o=this.validateEmail(a))),(o=o&&"min"in i?this.validateMin(a,i.min):o)&&"max"in i&&(o=this.validateMax(a,i.max))),t)&&this.printMessage(a),this.validationState[e].validity},PaoValidation.prototype.validate=function(a=!1){var t=!0,i=this;return jQuery.each(i.$addons,function(){i.validateAddon(jQuery(this),a)||(t=!1)}),t},PaoValidation.prototype.escapeRegExp=function(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")},PaoValidation.prototype.removeNoticeFromAriaDescribed=function(a,t){var i=a.attr("aria-describedby");i&&(0<(i=i.split(" ").filter(function(a){return a!==t&&""!==a.trim()})).length?a.attr("aria-describedby",i.join(" ")):a.removeAttr("aria-describedby"))},PaoValidation.prototype.addNoticeToAriaDescribed=function(a,t){var i=a.attr("aria-describedby"),i=i?i.split(" ").filter(function(a){return a!==t&&""!==a.trim()}):[];i.unshift(t),a.attr("aria-describedby",i.join(" "))},PaoValidation.prototype.printMessage=function(a){var t,i=a.attr("id"),i=this.validationState[i],e=a.closest(".wc-pao-addon-container"),o=e.attr("id")+"-validation-notice";this.clearValidationMessage(e,o),i.validity||(t=e[0].hasAttribute("data-fieldset"),this.showValidationMessage(e,a,o,i.message,t))},PaoValidation.prototype.clearValidationMessage=function(a,t){a.find(".wc-pao-validation-notice").remove();a=a.find(".wc-pao-fieldset, .wc-pao-addon-field").first();a.removeAttr("aria-invalid"),this.removeNoticeFromAriaDescribed(a,t)},PaoValidation.prototype.showValidationMessage=function(a,t,i,e,o){o?((o=a.find(".wc-pao-fieldset")).attr("aria-invalid","true"),this.addNoticeToAriaDescribed(o,i),o=e.replace(/</g,"&lt;").replace(/>/g,"&gt;"),a.find(".wc-pao-addon-wrap").append(`<small id="${i}" class="wc-pao-validation-notice" role="status" tabindex="-1">${o}</small>`)):(t.attr("aria-invalid","true"),this.addNoticeToAriaDescribed(t,i),a=e.replace(/</g,"&lt;").replace(/>/g,"&gt;"),t.after(`<small id="${i}" class="wc-pao-validation-notice" role="status" tabindex="-1">${a}</small>`))},PaoValidation.prototype.validateRequired=function(a){var t=!0,i="",e="",o=a.attr("id");if(a.is(":checkbox")||a.is(":radio")){var r,n=(r=a.closest(".wc-pao-addon-container")).find(".wc-pao-addon-field"),d=this,t=!1;if(jQuery.each(n,function(){jQuery(this).is(":checked")&&(t=!0)}),t)return void jQuery.each(n,function(){var a=jQuery(this).attr("id");d.validationState[a]={validity:t,message:i,reason:e}});i=woocommerce_addons_params.i18n_validation_required_select}else a.hasClass("wc-pao-addon-image-swatch-select")?(r=a.closest(".wc-pao-addon-container"),t=!1,jQuery.each(r.find(".wc-pao-addon-image-swatch"),function(){jQuery(this).hasClass("selected")&&(t=!0)}),t||(i=woocommerce_addons_params.i18n_validation_required_select)):a.val()||(t=!1,"file"===a.attr("type")?void 0!==a.data("value")&&""!==a.data("value")?t=!0:i=woocommerce_addons_params.i18n_validation_required_file:"number"===a.attr("type")||a.is(".wc-pao-addon-custom-price")?i=woocommerce_addons_params.i18n_validation_required_number:a.is("input")||a.is("textarea")?i=woocommerce_addons_params.i18n_validation_required_input:a.is("select")&&(i=woocommerce_addons_params.i18n_validation_required_select));return t||(e="required"),this.validationState[o]={validity:t,message:i,reason:e},this.validationState[o].validity},PaoValidation.prototype.validateLetters=function(a){var t=!/[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~\d]/g.test(a.val()),i="",e="",o=a.attr("id");return(t=a.val()?t:!0)||(i=woocommerce_addons_params.i18n_validation_letters_only,e="letters"),this.validationState[o]={validity:t,message:i,reason:e},this.validationState[o].validity},PaoValidation.prototype.validateNumbers=function(a){var t=/^[0-9]*$/g.test(a.val()),i="",e="",o=a.attr("id");return(t=a.val()?t:!0)||(i=woocommerce_addons_params.i18n_validation_numbers_only,e="numbers"),this.validationState[o]={validity:t,message:i,reason:e},this.validationState[o].validity},PaoValidation.prototype.validateLettersNumbers=function(a){var t=!/[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/g.test(a.val()),i="",e="",o=a.attr("id");return(t=a.val()?t:!0)||(i=woocommerce_addons_params.i18n_validation_letters_and_numbers_only,e="letters_numbers"),this.validationState[o]={validity:t,message:i,reason:e},this.validationState[o].validity},PaoValidation.prototype.validateEmail=function(a){var t=/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(a.val()),i="",e="",o=a.attr("id");return(t=a.val()?t:!0)||(i=woocommerce_addons_params.i18n_validation_email_only,e="email"),this.validationState[o]={validity:t,message:i,reason:e},this.validationState[o].validity},PaoValidation.prototype.validateDecimals=function(a){var t=!0,i="",e="",o=a.attr("id"),r=a.val(),n=new RegExp(`^-?\\d+(?:\\${woocommerce_addons_params.currency_format_decimal_sep}\\d+)?$`);return a.val()?n.test(r)||(t=!1,i=woocommerce_addons_params.i18n_validation_decimal_separator.replace("%c",woocommerce_addons_params.currency_format_decimal_sep),e="decimals"):t=!0,this.validationState[o]={validity:t,message:i,reason:e},this.validationState[o].validity},PaoValidation.prototype.validateMin=function(a,t){var i,e=!0,o="",r="",n=a.attr("id");return a.val()?"number"===a.attr("type")||a.is(".wc-pao-addon-custom-price")?(i=(i=a.val()).includes(".")?parseFloat(i):i.includes(woocommerce_addons_params.currency_format_decimal_sep)?parseFloat(i.replace(woocommerce_addons_params.currency_format_decimal_sep,".")):parseInt(i))<t&&(e=!1,a.is(".wc-pao-addon-custom-price")&&(t=accounting.formatNumber(t,{symbol:"",decimal:woocommerce_addons_params.currency_format_decimal_sep,precision:parseFloat(t)%1==0?0:t.toString().split(".")[1].length})),o=woocommerce_addons_params.i18n_validation_min_number.replace("%c",t)):("text"===a.attr("type")||a.is("textarea"))&&a.val().length<t&&(e=!1,o=woocommerce_addons_params.i18n_validation_min_characters.replace("%c",t)):e=!0,this.validationState[n]={validity:e,message:o,reason:r=e?r:"min"},this.validationState[n].validity},PaoValidation.prototype.validateMax=function(a,t){var i,e,o=!0,r="",n=a.attr("id");return a.val()?"number"===a.attr("type")||a.is(".wc-pao-addon-custom-price")?t<(e=(e=a.val()).includes(".")?parseFloat(e):e.includes(woocommerce_addons_params.currency_format_decimal_sep)?parseFloat(e.replace(woocommerce_addons_params.currency_format_decimal_sep,".")):parseInt(e))&&(o=!1,a.is(".wc-pao-addon-custom-price")&&(t=accounting.formatNumber(t,{symbol:"",decimal:woocommerce_addons_params.currency_format_decimal_sep,precision:parseFloat(t)%1==0?0:t.toString().split(".")[1].length})),r=woocommerce_addons_params.i18n_validation_max_number.replace("%c",t)):("text"===a.attr("type")||a.is("textarea"))&&a.val().length>t&&(o=!1,r=woocommerce_addons_params.i18n_validation_max_characters.replace("%c",t)):o=!0,this.validationState[n]={validity:o,message:r,reason:i=o?i:"max"},this.validationState[n].validity};