/*!
 * WooCommerce Bulk Variations 2.0.1
 * Copyright 2021 Barn2 Plugins
 */
!function(t,a,e,i,l){"use strict";let r=(()=>{let r=null;const n=()=>{o()},o=()=>{let a=0;t(".wc-bulk-variations-table").each(((e,i)=>{t(i).find(".wcbvp-cell").first().find("select.wcbvp-additional-attribute").each(((e,i)=>{const l=N(t(i));a=Math.max(a,l)}))})),t("select.wcbvp-additional-attribute, .wcbvp-quantity-input").css("min-width",a)},c=()=>r||t(".wc-bulk-variations-table-wrapper").first(),s=t=>{let a=t.closest(".wc-bulk-variations-table-wrapper");return a=a||c(),a},p=function(){let a=arguments.length>0&&arguments[0]!==l?arguments[0]:null;return a=a||c(),t("form.wcbvp-fast-pool",a).length>0},d=t=>{const a=i.currency_options,e=a.price_format,l=a.decimals||2,r=a.d_separator||".",n=a.t_separator||",",o=a.price_markup||"%s",c=t.toFixed(l).toString().split(".");c[0]=c[0].replace(/\B(?=(\d{3})+(?!\d))/g,n);const s=e.replace(/\%(\d)\$s/g,((t,e)=>({1:a.currency_symbol,2:c.join(r)}[e])));return o.replace("%s",s)},v=a=>{(a=a||t(".wc-bulk-variations-table-wrapper")).each(((a,e)=>{const i=t(e),l=t(".wcbvp-variation-pool",i).find(".wcbvp-quantity").toArray().reduce(((t,a)=>({quantity:t.quantity+Number(a.value),total:t.total+Number(a.dataset.price)*Number(a.value)})),{quantity:0,total:0});t(".wcbvp_total_items",i).html(l.quantity),t(".wcbvp_total_price",i).html(d(l.total)),t(".wcbvp_total_quantity",i).html(l.quantity),t(".single_add_to_cart_button",i).toggleClass("disabled wc-variation-selection-needed",0===l.quantity).prop("disabled",0===l.quantity)}))},u=()=>{const a=new ResizeObserver((t=>{for(let a of t)a.contentBoxSize[0]&&a.contentBoxSize[0].inlineSize===a.contentRect.width&&n()}));t(".wc-bulk-variations-table").each(((t,e)=>{a.observe(e)}))},b=a=>{const e=t(a.currentTarget);0===e.closest(".wc-quick-view-modal").length&&e.submit()},m=a=>{const e=a.closest(".wc-bulk-variations-table-wrapper"),i=t(".wcbvp-variation-pool",e),l=a.closest(".wcbvp-cell"),r=q(l);if(!r||!r.variation)return!0;const n=r.variation.variation_id,o=r.variation.display_price;let c,s=Number(l.find(".wcbvp-quantity-field input").val()),d=i.find(`div[data-product_id="${n}"]`);if(0===s)d.remove();else{if(d.length)c=d.find("input");else{p()&&(t(".wcbvp-variation-pool-item").removeClass("selected"),t(".wcbvp-form-variation").removeClass("selected")),d=t("<div>",{id:`pool_item_${n}`,class:"wcbvp-variation-pool-item"}).attr("data-product_id",n).addClass("selected");for(const[t,a]of Object.entries(r.attributes.object))d.attr(`data-${t}`,a.name);c=t("<input>",{type:"hidden",name:`quantity[${n}]`,class:"wcbvp-quantity"}).attr("data-price",o),i.append(d)}c.val(s),d.empty().append(c,p()?t("<span>",{class:"label",title:`${s}x ${r.attributes.label}`}).html(`${s}&times; ${r.attributes.label}`):null,p()?t("<span>",{class:"action-delete"}):null)}v()},w=function(){let a=arguments.length>0&&arguments[0]!==l?arguments[0]:null,e=arguments.length>1&&arguments[1]!==l&&arguments[1];a=a||c(),a.each(((a,i)=>{const l=t(i);if(!p()&&!e)return!0;t('.wcbvp-cell .wcbvp-quantity-field input[type="number"]',l).each(((a,i)=>{const r=t(i),n=t("form.wcbvp-cart",l),o=r.closest(".wcbvp-cell"),c=n.hasClass("wcbvp-multivariation-cells"),s=n.hasClass("wcbvp-compact-grid-mode");if((e||c)&&y(o),t(".price",o).html(t(".price",o).attr("data-default")),0===n.length||"0"===t(i).prop("max"))return!0;r.prop("disabled",c||s),(e||c||s)&&(r.prop("min",null).prop("max",null),r.val(0))})),t(".wcbvp-cell select.wcbvp-additional-attribute",l).val(""),t(".wcbvp-header select.wcbvp-additional-attribute",l).val(""),p()&&(t(".wcbvp-variation-pool-item",l).removeClass("selected layer-selected"),t(".wcbvp-form-variation",l).removeClass("selected"))})),v(a)},h=a=>{let e=t(".wc-bulk-variations-table-wrapper");a&&(e=t(a.target).find(".wc-bulk-variations-table-wrapper")),w(e,!0)},f=a=>{const e=t(a.currentTarget),i=s(e),l=e.closest(".wcbvp-cell"),r=t("form.wcbvp-cart",i);t(".wcbvp-cell",i).not(l).find(":input").each(((a,e)=>{r.hasClass("wcbvp-compact-grid-mode")||("SELECT"===e.tagName?r.hasClass("wcbvp-multivariation-cells")&&t(e).val(""):r.hasClass("wcbvp-multivariation-cells")&&t(e).val(0))})),p()&&(t(".wcbvp-variation-pool-item").removeClass("selected"),t(".wcbvp-form-variation").removeClass("selected"),t(".wcbvp-form-variation",l).addClass("selected")),l.attr("data-variation_ids")&&1===l.attr("data-variation_ids").split(",").length&&i.find(`#pool_item_${l.attr("data-variation_ids")}`).addClass("selected"),e.hasClass("wcbvp-quantity")&&e.trigger("select")},_=a=>{const e=t(a.currentTarget),i=e.closest(".wcbvp-cell"),l=q(i);let r=e.attr("max");r&&(r=r.toString()),r&&!isNaN(parseFloat(r))&&isFinite(r)&&(r=parseInt(r),e.val()>r&&(a.preventDefault(),e.val(r)));const n=e.data("individual"),o=e.val();n&&o>0&&(t(".wcbvp-quantity",c()).not(e.get(0)).val(0),o>1&&e.val(1)),l&&m(e),v(e.closest(".wc-bulk-variations-table-wrapper"))},g=a=>{const e=t("form.wcbvp-cart",c()).data("product_variations"),i=a.attr("data-variation_ids");return e&&i?e.filter((t=>i.split(",").map((t=>Number(t))).includes(t.variation_id))):[]},y=a=>{let e=a;a.hasClass("wcbvp-additional-attribute")&&(e=a.closest(".wcbvp-cell"));const l=t("form.wcbvp-cart",c()),r=i.hide_out_of_stock_items,n=i.hide_discontinued;if(l){const i=g(e);t("select",e).not(a).each(((e,l)=>{const o=t(l);let c=i;a.hasClass("wcbvp-additional-attribute")&&a.val()&&(c=c.filter((t=>{const e=a.data("attribute_name");return t.attributes[e]&&a.val()===t.attributes[e]}))),t("option",o).each(((a,e)=>{const i=t(e);if(!i.val())return!0;const l=c.filter((t=>t.attributes[o.data("attribute_name")]&&i.val()===t.attributes[o.data("attribute_name")])),s=0===l.length,p=0===l.filter((t=>t.is_purchasable)).length,d=0===l.filter((t=>t.is_in_stock)).length&&r,v=0===l.filter((t=>t.is_in_stock&&!t.is_purchasable&&t.availability_html.includes("discontinued"))).length||n,u=s||p&&v||d;i.prop("hidden",u),o.val()===i.val()&&u&&o.val("")})),o.prop("disabled",t("option",o).length===t("option:hidden",o))}))}},k=a=>{const e=t(a.currentTarget),l=e.closest(".wcbvp-cell");t(".stock",l).hide(),p()&&(t(".wcbvp-cell",c()).not(l).find("select").val(""),t(".wcbvp-cell",c()).not(l).find("input.wcbvp-quantity-input").val(0),t(".wcbvp-form-variation").removeClass("selected"),l.find(".wcbvp-form-variation").addClass("selected"));const r=q(l),n=t(".wcbvp-variation-pool",c()),o=t("input.wcbvp-quantity",l);let s="",v="";if(o.prop("disabled",!0),p()||t(".wcbvp-variation-pool-item",n).filter(((a,e)=>l.attr("data-variation_ids").split(",").includes(t(e).data("product_id").toString()))).remove(),r){const t=r.variation.is_in_stock,a=r.variation.is_purchasable;if(o.prop("disabled",!t||!a),t){if(o.attr("min",r.variation.min_qty).attr("max",r.variation.max_qty).trigger("select").trigger("focus"),p()){o.val(0);const t=n.find(`.wcbvp-variation-pool-item[data-product_id="${r.variation.variation_id}"]`);n.find(".wcbvp-variation-pool-item").removeClass("selected"),t.length&&(o.val(t.find(".wcbvp-quantity").val()).trigger("select"),t.addClass("selected"))}else o.val()>0&&m(o);(i.show_stock||i.show_discontinued)&&(v=r.variation.availability_html)}else v=r.variation.availability_html;s=d(r.variation.display_price)}else o.val(0),s=C(g(l)),y(e);t(".price",l).html(s),t(".stock",l).html(v).show()},C=t=>{const a=t.reduce(((t,a)=>({min:Math.min(t.min,a.display_price),max:Math.max(t.max,a.display_price)})),{min:1/0,max:0});return a.min===a.max?d(a.min):0===a.max?"":`${d(a.min)} – ${d(a.max)}`},q=a=>{const e=[a.data("h_label")];let i,l;a.attr("data-v_label")&&e.push(a.attr("data-v_label"));let r=t("select",a);t("form.wcbvp-cart",c()).hasClass("wcbvp-compact-grid-mode")&&(r=t(".wcbvp-header select",c()));const n=g(a);if(!n.length)return!1;if(r.length>0){if(r.toArray().filter((t=>!t.value)).length)return!1;const a=r.toArray().map((a=>({[a.name]:{name:a.value,label:t(a).find(`option[value="${a.value}"]`).text()}}))).reduce(((t,a)=>({...t,...a})),{});if(i=n.find((t=>Object.entries(a).filter((a=>a[0]in t.attributes&&t.attributes[a[0]]===a[1].name)).length===r.length)),!i)return!1;let o=e.concat(Object.values(a).map((t=>t.label))).join(", ");l={object:a,label:o}}else i=n[0],l={object:{},label:e.join(", ")};return{attributes:l,variation:i}},x=a=>0===t(a.target).closest(".wc-bulk-variations-table-wrapper").length||((a=>{const e=s(a.target);a.stopPropagation(),e.length&&(p()&&t(".wc-bulk-variations-table",e).attr("id")!==t(".wc-bulk-variations-table",r).attr("id")&&w(),r=e)})(a),t(a.target).closest(".wcbvp-form-variation, .wcbvp-variation-pool-item, .wcbvp-compact-grid-mode .wcbvp-row-header.wcbvp-col-header").length>0||void w()),N=a=>{const i=getComputedStyle(a.get(0)),l=a.parent().get(0),r=a.clone();r.find("option:not(:first-child)").remove();const{font:n,border:o,padding:c,margin:s,marginRight:p,marginLeft:d,paddingLeft:v,paddingRight:u}=i;r.css({font:n,border:o,padding:c,margin:s}),t(e.body).append(r);const b=r.get(0).offsetWidth;r.remove();const m=Number(d.replace("px",""))+Number(p.replace("px","")),w=Number(v.replace("px",""))+Number(u.replace("px",""));return Math.min(b,l.offsetWidth-m-w)},$=e=>{if("undefined"==typeof PhotoSwipe||"undefined"==typeof PhotoSwipeUI_Default)return!0;e.preventDefault();var i=t(".pswp")[0],l=t(e.target).closest(".woocommerce-product-gallery__image"),r=[];i.classList.add("wbv-gallery"),l.length>0&&l.each((function(a,e){var i=t(e).find("img"),l={src:i.attr("data-large_image"),w:i.attr("data-large_image_width"),h:i.attr("data-large_image_height"),title:i.attr("data-caption")&&i.attr("data-caption").length?i.attr("data-caption"):i.attr("title")};r.push(l)}));var n=new PhotoSwipe(i,PhotoSwipeUI_Default,r,{index:0,shareEl:!1,closeOnScroll:!1,history:!1,hideAnimationDuration:0,showAnimationDuration:0});n.init(),n.listen("close",(function(){a.dontCloseQVP=!0}))};return{initialize:()=>{t(e.body).on("click",x).on("submit",".wc-bulk-variations-table-wrapper form :input",(t=>t.preventDefault())).on("click",".wc-bulk-variations-table-wrapper form button.single_add_to_cart_button",b).on("focus",".wcbvp-form-variation :input",f).on("change",".wcbvp-cell select.wcbvp-additional-attribute",k).on("input",".wcbvp-quantity-field input",_).on("click",".wc-bulk-variations-table .woocommerce-product-gallery__image a",$).on("quick_view_pro:added_to_cart",h).on("updated_checkout",h),u(),n(),t("input.wcbvp-quantity").trigger("input"),t(".wcbvp-cell").each(((a,e)=>{y(t(e))})),w()},recalculate:v,getPool:a=>{a=a||t(".wc-bulk-variations-table-wrapper");const e={};return a.each(((a,i)=>{const l=t(i),r=[];let n=t(".wcbvp-total-wrapper",l).attr("id")||"",o=0;n=n?n.replace("wcbvp_wrapper_wbv_",""):o++,t(".wcbvp-variation-pool-item",l).toArray().forEach((t=>{r.push({product_id:Number(t.dataset.product_id),quantity:Number(t.children[0].value)})})),e[n]=r})),e},reset:w,clear:h}})();a.WCBulkVariations=r,t((()=>{r.initialize()}))}(jQuery,window,document,wc_bulk_variations_params);