!function(t,a,i,o){var e=function(t){var i=this;i.$form=t,i.$wrapper=t.find(">div"),i.threshold_max=parseInt(i.$wrapper.data("threshold_max"),10),i.total_children=parseInt(i.$wrapper.data("total"),10),i.$attributeFields=t.find(".variations select"),i.$singleVariation=t.find(".single_variation"),i.$singleVariationWrap=t.find(".single_variation_wrap"),i.$resetVariations=t.find(".reset_variations"),i.$product=t.closest(".product"),i.variationData=t.data("product_variations"),i.useAjax=!1===i.variationData,i.xhr=!1,i.previewXhr=!1,i.loading=!0,i.product_id=parseInt(t.data("product_id"),10),woo_variation_swatches_pro_options.enable_linkable_url&&(i.currentURL=new URL(a.location.href)),i.$firstUL=t.find(".variations ul:first");var o=!1;if(i.single_variation_preview_selected=!1,woo_variation_swatches_pro_options.enable_single_variation_preview){var e=i.$firstUL.data("preview_attribute_name")?i.$firstUL.data("preview_attribute_name"):i.$attributeFields.first().data("attribute_name");o=".variations select[data-attribute_name='".concat(e,"']"),i.single_variation_preview_selected=".variations select[data-attribute_name='".concat(e,"']")}i.$singleVariationWrap.show(),i.$form.off(".wc-variation-form"),i.getChosenAttributes=i.getChosenAttributes.bind(i),i.findMatchingVariations=i.findMatchingVariations.bind(i),i.isMatch=i.isMatch.bind(i),i.toggleResetLink=i.toggleResetLink.bind(i),i.generateShareableURL=i.generateShareableURL.bind(i),t.on("click.wc-variation-form",".reset_variations",{variationForm:i},i.onReset),t.on("reload_product_variations",{variationForm:i},i.onReload),t.on("hide_variation",{variationForm:i},i.onHide),t.on("show_variation",{variationForm:i},i.onShow),t.on("click",".single_add_to_cart_button",{variationForm:i},i.onAddToCart),t.on("reset_data.wc-variation-form",{variationForm:i},i.onResetDisplayedVariation),t.on("reset_image.wc-variation-form",{variationForm:i},i.onResetImage),t.on("change.wc-variation-form",".variations select",{variationForm:i},i.onChange),t.on("found_variation.wc-variation-form",{variationForm:i},i.onFoundVariation),t.on("check_variations.wc-variation-form",{variationForm:i},i.onFindVariation),t.on("update_variation_values.wc-variation-form",{variationForm:i},i.onUpdateAttributes),woo_variation_swatches_pro_options.enable_single_variation_preview&&(t.on("woo_variation_swatches_add-to-cart-variation_start.wc-variation-form",{variationForm:i},i.initPreviewChange),t.on("change.wc-variation-form",o,{variationForm:i},i.onPreviewChange),t.on("click.wc-variation-form",".reset_variations",{variationForm:i},i.onResetPreview)),t.on("woo_variation_swatches_add-to-cart-variation_init.wc-variation-form",{variationForm:i},i.initFetch),t.trigger("woo_variation_swatches_add-to-cart-variation_init",i)};e.prototype.start=function(t){var a=t.data.variationForm;setTimeout((function(){a.$form.trigger("check_variations"),a.$form.trigger("wc_variation_form",self),a.$form.trigger("woo_variation_swatches_add-to-cart-variation_start",self),a.loading=!1}),100)},e.prototype.init=function(a){var i=a.data.variationForm,o=parseInt(wc_add_to_cart_variation_params.woo_variation_swatches_ajax_variation_threshold_max,10),e=parseInt(wc_add_to_cart_variation_params.woo_variation_swatches_total_children,10),r=i.product_id;i.useAjax&&o>=e?(i.xhr&&i.xhr.abort(),woo_variation_swatches_pro_options.enable_single_preloader&&i.$form.block({message:null,overlayCSS:{background:"#FFFFFF",opacity:.6}}),i.xhr=t.ajax({global:!1,cache:!0,url:wc_add_to_cart_variation_params.wc_ajax_url.toString().replace("%%endpoint%%","woo_get_all_variations"),method:"POST",data:{product_id:r,is_archive:!1}}),i.xhr.fail((function(t,a){console.error("single product variations ajax failed: ".concat(r,"."),a)})),i.xhr.done((function(t){t?(i.$form.data("product_variations",t),i.variationData=i.$form.data("product_variations"),i.useAjax=!1,i.start(a)):console.error("single product variations not available on: ".concat(r,"."))})),i.xhr.always((function(){woo_variation_swatches_pro_options.enable_single_preloader&&i.$form.unblock()}))):i.start(a)},e.prototype.initFetch=function(t){var a=t.data.variationForm,i=parseInt(wc_add_to_cart_variation_params.woo_variation_swatches_ajax_variation_threshold_max,10),o=parseInt(wc_add_to_cart_variation_params.woo_variation_swatches_total_children,10),e=a.product_id;i=isNaN(i)?a.threshold_max:i,o=isNaN(o)?a.total_children:o,a.useAjax&&i>=o?(woo_variation_swatches_pro_options.enable_single_preloader&&a.$form.block({message:null,overlayCSS:{background:"#FFFFFF",opacity:.6}}),wp.apiFetch({path:"woo-variation-swatches/v1/single-product/".concat(e)}).then((function(i){a.$form.data("product_variations",i),a.variationData=a.$form.data("product_variations"),a.useAjax=!1,a.start(t)})).catch((function(t){console.error("single product variations fetching failed: ".concat(e,"."),t)})).finally((function(){woo_variation_swatches_pro_options.enable_single_preloader&&a.$form.unblock()}))):a.start(t)},e.prototype.onReset=function(t){t.preventDefault(),t.data.variationForm.$attributeFields.val("").trigger("change"),t.data.variationForm.$form.trigger("reset_data")},e.prototype.onResetPreview=function(t){var a=t.data.variationForm;a.$form.on("reset_image.wc-variation-form",{variationForm:a},a.onResetImage).trigger("reset_image")},e.prototype.showPreviewFetch=function(a,i,o){var e=a.getChosenAttributes(),r={};if(o&&e.count&&e.count>e.chosenCount){r.product_id=a.product_id,r[i]=o;var n=t(".woocommerce-product-gallery");n.length>0&&n.block({message:null,overlayCSS:{background:"#FFFFFF",opacity:.6}}),wp.apiFetch({path:wp.url.addQueryArgs("/woo-variation-swatches/v1/single-product-preview",r)}).then((function(t){a.$form.off("reset_image.wc-variation-form"),a.$form.wc_variations_image_update(t),a.$form.trigger("show_variation",[t,!1]),n.length>0&&n.unblock()})).catch((function(t){console.error("single product variation preview fetching failed: ".concat(a.product_id,"."),t)})).finally((function(){n.length>0&&n.unblock()}))}!o&&woo_variation_swatches_pro_options.clear_on_reselect&&a.$form.on("reset_image.wc-variation-form",{variationForm:a},a.onResetImage).trigger("reset_image")},e.prototype.initPreviewChange=function(a){var i=a.data.variationForm,o=t(i.single_variation_preview_selected).data("attribute_name")||t(i.single_variation_preview_selected).attr("name"),e=t(i.single_variation_preview_selected).val()||"";i.showPreviewFetch(i,o,e)},e.prototype.onPreviewChange=function(a){a.preventDefault();var i=a.data.variationForm,o=t(this).data("attribute_name")||t(this).attr("name"),e=t(this).val()||"";i.showPreviewFetch(i,o,e)},e.prototype.__showPreview=function(a,i,o){var e=this,r=a.getChosenAttributes(),n={};o&&r.count&&r.count>r.chosenCount&&(n.product_id=a.product_id,n[i]=o,t(".woocommerce-product-gallery").length>0&&t(".woocommerce-product-gallery").block({message:null,overlayCSS:{background:"#FFFFFF",opacity:.6}}),a.previewXhr=t.ajax({global:!1,url:woo_variation_swatches_pro_params.wc_ajax_url.toString().replace("%%endpoint%%","woo_get_preview_variation"),method:"POST",data:n}),a.previewXhr.fail((function(t,a){console.error("product preview not available on ".concat(e.product_id,"."),i,a)})),a.previewXhr.done((function(i){a.$form.off("reset_image.wc-variation-form"),a.$form.wc_variations_image_update(i),a.$form.trigger("show_variation",[i,!1]),t(".woocommerce-product-gallery").length>0&&t(".woocommerce-product-gallery").unblock()}))),!o&&woo_variation_swatches_pro_options.clear_on_reselect&&a.$form.on("reset_image.wc-variation-form",{variationForm:a},a.onResetImage).trigger("reset_image")},e.prototype.__onPreviewChange=function(a){var i=this;a.preventDefault();var o=a.data.variationForm,e=t(this).data("attribute_name")||t(this).attr("name"),r=t(this).val()||"",n=o.getChosenAttributes(),s={};r&&n.count&&n.count>n.chosenCount&&(s.product_id=o.product_id,s[e]=r,t(".woocommerce-product-gallery").length>0&&t(".woocommerce-product-gallery").block({message:null,overlayCSS:{background:"#FFFFFF",opacity:.6}}),o.previewXhr=t.ajax({global:!1,url:woo_variation_swatches_pro_params.wc_ajax_url.toString().replace("%%endpoint%%","woo_get_preview_variation"),method:"POST",data:s}),o.previewXhr.fail((function(t,a){console.error("product preview not available on ".concat(i.product_id,"."),e,a)})),o.previewXhr.done((function(a){o.$form.off("reset_image.wc-variation-form"),o.$form.wc_variations_image_update(a),o.$form.trigger("show_variation",[a,!1]),t(".woocommerce-product-gallery").length>0&&t(".woocommerce-product-gallery").unblock()}))),!r&&woo_variation_swatches_pro_options.clear_on_reselect&&o.$form.on("reset_image.wc-variation-form",{variationForm:o},o.onResetImage).trigger("reset_image")},e.prototype.onReload=function(t){var a=t.data.variationForm;a.variationData=a.$form.data("product_variations"),a.useAjax=!1===a.variationData,a.$form.trigger("check_variations")},e.prototype.onHide=function(t){t.preventDefault(),t.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("wc-variation-is-unavailable").addClass("disabled wc-variation-selection-needed"),t.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled")},e.prototype.generateShareableURL=function(t){if(woo_variation_swatches_pro_options.enable_linkable_url){var i=this.currentURL;if(t.chosenCount>0){var o=new URL(a.location.href);for(var e in t.data){var r=t.data[e];r&&o.searchParams.set(e,r)}i.href!==o.href&&a.history.replaceState({},"",o.href)}else a.history.replaceState({},"",this.$form.attr("action"))}},e.prototype.onShow=function(a,i,o){a.preventDefault(),o?(a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("disabled wc-variation-selection-needed wc-variation-is-unavailable"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-disabled").addClass("woocommerce-variation-add-to-cart-enabled")):(a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("wc-variation-selection-needed").addClass("disabled wc-variation-is-unavailable"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled")),wp.mediaelement&&a.data.variationForm.$form.find(".wp-audio-shortcode, .wp-video-shortcode").not(".mejs-container").filter((function(){return!t(this).parent().hasClass("mejs-mediaelement")})).mediaelementplayer(wp.mediaelement.settings)},e.prototype.onAddToCart=function(i){t(this).is(".disabled")&&(i.preventDefault(),t(this).is(".wc-variation-is-unavailable")?a.alert(wc_add_to_cart_variation_params.i18n_unavailable_text):t(this).is(".wc-variation-selection-needed")&&a.alert(wc_add_to_cart_variation_params.i18n_make_a_selection_text))},e.prototype.onResetDisplayedVariation=function(t){var a=t.data.variationForm;a.$product.find(".product_meta").find(".sku").wc_reset_content(),a.$product.find(".product_weight, .woocommerce-product-attributes-item--weight .woocommerce-product-attributes-item__value").wc_reset_content(),a.$product.find(".product_dimensions, .woocommerce-product-attributes-item--dimensions .woocommerce-product-attributes-item__value").wc_reset_content(),a.$form.trigger("reset_image"),a.$singleVariation.slideUp(200).trigger("hide_variation")},e.prototype.onResetImage=function(t){t.data.variationForm.$form.wc_variations_image_update(!1)},e.prototype.onFindVariation=function(a,i){var o=a.data.variationForm,e=void 0!==i?i:o.getChosenAttributes(),r=e.data;if(o.generateShareableURL(e),e.count&&e.count===e.chosenCount)if(o.useAjax)o.xhr&&o.xhr.abort(),o.$form.block({message:null,overlayCSS:{background:"#FFFFFF",opacity:.6}}),r.product_id=parseInt(o.$form.data("product_id"),10),r.custom_data=o.$form.data("custom_data"),o.xhr=t.ajax({global:!1,url:wc_add_to_cart_variation_params.wc_ajax_url.toString().replace("%%endpoint%%","get_variation"),method:"POST",data:r,success:function(t){t?o.$form.trigger("found_variation",[t]):(o.$form.trigger("reset_data"),e.chosenCount=0,o.loading||(o.$form.find(".single_variation").after('

'+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"

"),o.$form.find(".wc-no-matching-variations").slideDown(200)))},complete:function(){o.$form.unblock()}});else{o.$form.trigger("update_variation_values");var n=o.findMatchingVariations(o.variationData,r).shift();n?o.$form.trigger("found_variation",[n]):(o.$form.trigger("reset_data"),e.chosenCount=0,o.loading||(o.$form.find(".single_variation").after('

'+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"

"),o.$form.find(".wc-no-matching-variations").slideDown(200)))}else o.$form.trigger("update_variation_values"),o.$form.trigger("reset_data");o.toggleResetLink(e.chosenCount>0)},e.prototype.onFoundVariation=function(a,i){var o=a.data.variationForm,e=o.$product.find(".product_meta").find(".sku"),n=o.$product.find(".product_weight, .woocommerce-product-attributes-item--weight .woocommerce-product-attributes-item__value"),s=o.$product.find(".product_dimensions, .woocommerce-product-attributes-item--dimensions .woocommerce-product-attributes-item__value"),c=o.$singleVariationWrap.find(".quantity"),_=!0,d=!1,l="";if(i.sku?e.wc_set_content(i.sku):e.wc_reset_content(),i.weight?n.wc_set_content(i.weight_html):n.wc_reset_content(),i.dimensions?s.wc_set_content(t.parseHTML(i.dimensions_html)[0].data):s.wc_reset_content(),o.$form.wc_variations_image_update(i),i.variation_is_visible?(d=r("variation-template"),i.variation_id):d=r("unavailable-variation-template"),l=(l=(l=d({variation:i})).replace("/**/",""),o.$singleVariation.html(l),o.$form.find('input[name="variation_id"], input.variation_id').val(i.variation_id).trigger("change"),"yes"===i.is_sold_individually)c.find("input.qty").val("1").attr("min","1").attr("max","").trigger("change"),c.hide();else{var v=c.find("input.qty"),m=parseFloat(v.val());m=isNaN(m)||(m=m>parseFloat(i.max_qty)?i.max_qty:m)"),v=s.val()||"",m=!0;if(!s.data("attribute_html")){var g=s.clone();g.find("option").removeAttr("attached").prop("disabled",!1).prop("selected",!1),s.data("attribute_options",g.find("option"+d).get()),s.data("attribute_html",g.html())}l.html(s.data("attribute_html"));var u=t.extend(!0,{},e);u[c]="";var p=i.findMatchingVariations(i.variationData,u);for(var f in p)if(void 0!==p[f]){var h=p[f].attributes;for(var w in h)if(h.hasOwnProperty(w)){var b=h[w],F="",$=!1;if(w===c)if(p[f].variation_is_active&&(F="enabled"),p[f].is_in_stock||($=!0),b){b=t("
").html(b).text();var y=l.find("option");if(y.length)for(var x=0,C=y.length;x1&&o.chosenCount>0&&!v&&$&&k.addClass("out-of-stock"),o.count>1&&o.chosenCount===o.count&&$&&k.addClass("out-of-stock"),1===o.count&&$&&k.addClass("out-of-stock");break}}}else l.find("option:gt(0)").addClass("attached "+F)}}n=l.find("option.attached").length,v&&(m=!1,0!==n&&l.find("option.attached.enabled").each((function(){var a=t(this).val();if(v===a)return m=!0,!1}))),n>0&&v&&m&&"no"===_&&(l.find("option:first").remove(),d=""),l.find("option"+d+":not(.attached)").remove(),s.html(l.html()),s.find("option"+d+":not(.enabled)").prop("disabled",!0),v?m?s.val(v):s.val("").trigger("change"):s.val("")})),i.$form.trigger("woocommerce_update_variation_values"))},e.prototype.getChosenAttributes=function(){var a={},i=0,o=0;return this.$attributeFields.each((function(){var e=t(this).data("attribute_name")||t(this).attr("name"),r=t(this).val()||"";r.length>0&&o++,i++,a[e]=r})),{count:i,chosenCount:o,data:a}},e.prototype.findMatchingVariations=function(t,a){for(var i=[],o=0;o1){n.find('li img[data-o_src="'+i.image.gallery_thumbnail_src+'"]').length>0&&o.wc_variations_image_reset();var l=n.find('li img[src="'+i.image.gallery_thumbnail_src+'"]');if(l.length>0)return l.trigger("click"),o.attr("current-image",i.image_id),void a.setTimeout((function(){t(a).trigger("resize"),r.trigger("woocommerce_gallery_init_zoom")}),20);_.wc_set_variation_attr("src",i.image.src),_.wc_set_variation_attr("height",i.image.src_h),_.wc_set_variation_attr("width",i.image.src_w),_.wc_set_variation_attr("srcset",i.image.srcset),_.wc_set_variation_attr("sizes",i.image.sizes),_.wc_set_variation_attr("title",i.image.title),_.wc_set_variation_attr("data-caption",i.image.caption),_.wc_set_variation_attr("alt",i.image.alt),_.wc_set_variation_attr("data-src",i.image.full_src),_.wc_set_variation_attr("data-large_image",i.image.full_src),_.wc_set_variation_attr("data-large_image_width",i.image.full_src_w),_.wc_set_variation_attr("data-large_image_height",i.image.full_src_h),c.wc_set_variation_attr("data-thumb",i.image.src),s.wc_set_variation_attr("src",i.image.gallery_thumbnail_src),d.wc_set_variation_attr("href",i.image.full_src)}else o.wc_variations_image_reset();a.setTimeout((function(){t(a).trigger("resize"),o.wc_maybe_trigger_slide_position_reset(i),r.trigger("woocommerce_gallery_init_zoom")}),20)},t.fn.wc_variations_image_reset=function(){var t=this.closest(".product"),a=t.find(".images"),i=t.find(".flex-control-nav").find("li:eq(0) img"),o=a.find(".woocommerce-product-gallery__image, .woocommerce-product-gallery__image--placeholder").eq(0),e=o.find(".wp-post-image"),r=o.find("a").eq(0);e.wc_reset_variation_attr("src"),e.wc_reset_variation_attr("width"),e.wc_reset_variation_attr("height"),e.wc_reset_variation_attr("srcset"),e.wc_reset_variation_attr("sizes"),e.wc_reset_variation_attr("title"),e.wc_reset_variation_attr("data-caption"),e.wc_reset_variation_attr("alt"),e.wc_reset_variation_attr("data-src"),e.wc_reset_variation_attr("data-large_image"),e.wc_reset_variation_attr("data-large_image_width"),e.wc_reset_variation_attr("data-large_image_height"),o.wc_reset_variation_attr("data-thumb"),i.wc_reset_variation_attr("src"),r.wc_reset_variation_attr("href")},t((function(){"undefined"!=typeof wc_add_to_cart_variation_params&&t(".variations_form").each((function(){t(this).wc_variation_form()}))}));var r=function(t){var o=i.getElementById("tmpl-"+t).textContent,e=!1;return(e=(e=(e=e||/<#\s?data\./.test(o))||/{{{?\s?data\.(?!variation\.).+}}}?/.test(o))||/{{{?\s?data\.variation\.[\w-]*[^\s}]/.test(o))?wp.template(t):function(t){var i=t.variation||{};return o.replace(/({{{?)\s?data\.variation\.([\w-]*)\s?(}}}?)/g,(function(t,o,e,r){if(o.length!==r.length)return"";var n=i[e]||"";return 2===o.length?a.escape(n):n}))}}}(jQuery,window,document);