(function(_,e){"use strict";var t=function(t){var a=this;a.$form=t;a.$attributeFields=t.find(".variations select");a.variationData=t.data("product_variations");t.off(".wcboost-variation-swatches");if(t.find(".wcboost-variation-swatches__wrapper").length){t.addClass("swatches-support")}a.getChosenAttributes=a.getChosenAttributes.bind(a);a.findMatchingVariations=a.findMatchingVariations.bind(a);a.isMatch=a.isMatch.bind(a);t.on("click.wcboost-variation-swatches",".wcboost-variation-swatches__item",{variationSwatches:a},a.onSelect);t.on("change.wcboost-variation-swatches",".variations select",{variationSwatches:a},a.onValueChange);t.on("keydown.wcboost-variation-swatches",".wcboost-variation-swatches__item",{variationSwatches:a},a.onKeyPress);t.on("woocommerce_update_variation_values.wcboost-variation-swatches",{variationSwatches:a},a.onUpdateAttributes);if(wcboost_variation_swatches_params.show_selected_label){t.on("change.wcboost-variation-swatches",".value select",{variationSwatches:a},a.updateLabel);t.on("wc_variation_form.wcboost-variation-swatches",{variationSwatches:a},a.updateAllLabels)}if(wcboost_variation_swatches_params.quick_image_update){t.on("reset_image.wcboost-variation-swatches",{variationSwatches:a},a.maybeUpdateGalleryImage)}_(e.body).trigger("wcboost_variation_swatches",a)};t.prototype.onSelect=function(t){t.preventDefault();var a=_(this);if(a.hasClass("disabled")||a.data("disabled")){return}var e=a.closest(".wcboost-variation-swatches").find("select"),i=!a.hasClass("selected")?a.data("value"):"";e.trigger("focusin");e.val(i);e.trigger("change")};t.prototype.onValueChange=function(t){var a=t.data.variationSwatches,e=_(this),i=e.closest(".wcboost-variation-swatches"),s=e.val();a.updatedAttributeName=e.attr("name");if(i.length){i.find(".wcboost-variation-swatches__item.selected").removeClass("selected");if(s){i.find(".wcboost-variation-swatches__item").filter(function(){return this.dataset.value===s}).addClass("selected")}}};t.prototype.onKeyPress=function(t){if(t.keyCode&&32===t.keyCode||t.key&&" "===t.key||t.keyCode&&13===t.keyCode||t.key&&"enter"===t.key.toLowerCase()){t.preventDefault();_(this).trigger("click.wcboost-variation-swatches")}};t.prototype.onUpdateAttributes=function(t){var b=t.data.variationSwatches,a=b.getChosenAttributes(),w=a.data;if(!a.chosenCount){b.$form.find(".wcboost-variation-swatches__item").removeClass("selected disabled is-out-stock").data("disabled",false).attr("tabindex",0)}setTimeout(function(){b.$attributeFields.each(function(){var e=_(this),t=e.siblings(".wcboost-variation-swatches__wrapper").find(".wcboost-variation-swatches__item"),i=[];t.each(function(){var t=_(this),a=e.find('option[value="'+t.data("value")+'"]');if(!a.length||a.prop("disabled")){t.addClass("disabled").removeClass("selected").data("disabled",true).attr("tabindex",-1);i.push(t.data("value"))}else{t.removeClass("disabled").data("disabled",false).attr("tabindex",0)}});if(wcboost_variation_swatches_params.disable_outstock_swatches){var a=e.data("attribute_name")||e.attr("name"),s=_.extend(true,{},w),o=[],n=[];s[a]="";var r=b.findMatchingVariations(b.variationData,s);for(var c in r){if(typeof r[c]===undefined){continue}var l=r[c];if(!l.variation_is_active){continue}var u=l.attributes;var d=!l.is_in_stock&&!l.backorders_allowed;for(var h in u){if(!u.hasOwnProperty(h)||h!==a){continue}var v=u[h];if(v){if(d){o.push(v)}else{n.push(v)}}else{e.find("option").each(function(t,a){if(!a.value){return}if(d){o.push(a.value)}else{n.push(a.value)}})}}}o=o.filter(function(t,a,e){return a===e.indexOf(t)&&n.indexOf(t)<0});t.filter(".is-out-stock").each(function(){var t=_(this);t.removeClass("is-out-stock");if(0>i.indexOf(t.data("value"))){t.data("disabled",false).attr("tabindex",0)}});for(var f in o){t.filter('[data-value="'+o[f]+'"]').not(".selected").addClass("disabled is-out-stock").data("disabled",true).attr("tabindex",-1)}}});if(wcboost_variation_swatches_params.auto_select){b.autoSelectRemainOptions()}},10)};t.prototype.updateLabel=function(t){t.data.variationSwatches.appendSelectedLabel(this)};t.prototype.updateAllLabels=function(t){var a=t.data.variationSwatches;a.$form.find(".value select").each(function(){a.appendSelectedLabel(this)})};t.prototype.appendSelectedLabel=function(t){var a=_(t).closest(".value").siblings(".label").find("label"),e=a.find(".wcboost-variation-swatches__selected-label");if(!e.length){e=_('<span class="wcboost-variation-swatches__selected-label" />');a.append(e)}if(t.value){e.text(t.options[t.selectedIndex].text).show()}else{e.text("").hide()}};t.prototype.maybeUpdateGalleryImage=function(t){var a=t.data.variationSwatches,e=a.getChosenAttributes(),i=e.data;if(e.count&&e.count===e.chosenCount){return}var s=a.findMatchingVariations(a.variationData,i);if(0>=s.length){return}var o=s.shift();for(var n in s){if(s[n].image_id!==o.image_id){o=null;break}}if(o&&_.fn.wc_variations_image_update){setTimeout(function(){a.$form.wc_variations_image_update(o)},100)}};t.prototype.autoSelectRemainOptions=function(){var i=this;if(i.isProccessingAutoSelect){return}var t=i.getChosenAttributes();if(!t.chosenCount||t.chosenCount===t.count){return}if("safe"===wcboost_variation_swatches_params.auto_select){var a=i.findMatchingVariations(i.variationData,t.data);if(!a||!a.length){return}var e=a.filter(function(t){return t.is_in_stock&&t.is_purchasable&&t.variation_is_active});if(e.length!==1){return}var s={isAuto:true,items:{}};i.$attributeFields.each(function(){if(this.value||this.name===i.updatedAttributeName){return true}var t=_(this),a=t.closest(".wcboost-variation-swatches");if(a.length){var e=a.find(".wcboost-variation-swatches__item:not(.disabled)");if(e.length!==1){s.isAuto=false;return false}else{s.items[this.name]=e.first().data("value")}}else{if(this.options.length!=2){s.isAuto=false;return false}else{s.items[this.name]=this.options[1].value}}});if(!s.isAuto){return}i.isProccessingAutoSelect=true;for(var o in s.items){i.$attributeFields.filter('[name="'+o+'"]').val(s.items[o]).trigger("change")}i.isProccessingAutoSelect=false}else{i.isProccessingAutoSelect=true;i.$attributeFields.each(function(){if(this.value||this.name===i.updatedAttributeName){return}var t=_(this),a=t.closest(".wcboost-variation-swatches");if(a.length){var e=a.find(".wcboost-variation-swatches__item:not(.disabled)");if(e.length){t.val(e.first().data("value"))}}else{t.val(this.options[1].value)}t.trigger("change")});i.isProccessingAutoSelect=false}};t.prototype.getChosenAttributes=function(){var e={};var i=0;var s=0;this.$attributeFields.each(function(){var t=_(this).data("attribute_name")||_(this).attr("name");var a=_(this).val()||"";if(a.length>0){s++}i++;e[t]=a});return{count:i,chosenCount:s,data:e}};t.prototype.findMatchingVariations=function(t,a){var e=[];for(var i=0;i<t.length;i++){var s=t[i];if(this.isMatch(s.attributes,a)){e.push(s)}}return e};t.prototype.isMatch=function(t,a){var e=true;for(var i in t){if(t.hasOwnProperty(i)){var s=t[i];var o=a[i];if(s!==undefined&&o!==undefined&&s.length!==0&&o.length!==0&&s!==o){e=false}}}return e};_.fn.wcboost_variation_swatches=function(){new t(this);return this};function a(){_(".variations_form:not(.swatches-support)").each(function(){_(this).wcboost_variation_swatches()})}function i(){if(_(".bundle_form .bundle_data").length>0){_(".bundle_form .bundle_data").on("woocommerce-product-bundle-initialized.wcboost-variation-swatches",a)}}_(function(){a();i();_(e.body).on("init_variation_swatches.wcboost-variation-swatches, wc_variation_form.wcboost-variation-swatches",a);_(e.body).trigger("wcboost_variation_swatches_initialized")})})(jQuery,document);