(()=>{"use strict";var t={n:i=>{var a=i&&i.__esModule?()=>i.default:()=>i;return t.d(a,{a}),a},d:(i,a)=>{for(var e in a)t.o(a,e)&&!t.o(i,e)&&Object.defineProperty(i,e,{enumerable:!0,get:a[e]})},o:(t,i)=>Object.prototype.hasOwnProperty.call(t,i)},i={};t.d(i,{default:()=>o});const a=window.jQuery;var e=t.n(a);const s=window.wcStripe.utils,n=window.wcStripe.actions;var r=t.n(n);const o=new class{variation=null;_excludedKeys=["add-to-cart","quantity","variation_id"];constructor(t={}){this.actions=r(),this.data=this.default_data=t||{},this.data.variation_id&&this.data.attributes&&(this.variation={variation_id:this.data.variation_id,attributes:this.data.attributes}),0!==Object.keys(this.data).length&&(e()(document.body).on("change",'[name="quantity"]',this.onQuantityChange.bind(this)),e()("form.cart").on("found_variation",this.foundVariation.bind(this)).on("reset_data",this.resetVariationData.bind(this)),this.actions.addFilter("cart_calculation_data",this.addCartCalculationData.bind(this)),this.actions.addAction("after_cart_calculation",this.onAfterCartCalculation.bind(this)),this.actions.addAction("single_product_variation_changed",this.onBlockVariationChanged.bind(this)),this.actions.addAction("single_product_variation_reset",this.resetVariationData.bind(this)))}needsShipping(){return this.actions.applyFilters("product_needs_shipping",this.data?.needsShipping)}needsCartCalculation(){let t=!0;return this.isInStock()?this.isVariableProduct()&&!this.isVariationSelected()?t=!1:this._prevData&&(t=this.data.qty!==this._prevData.qty||this.data.variation_id!==this._prevData.variation_id||this.data.attributesHash!==this._prevData.attributesHash):t=!1,this.actions.applyFilters("product_needs_cart_calculation",t,this)}getLineItems(){return this.data.lineItems||[]}getLineItem(){var t;const i=this.isVariationSelected()?parseInt(this.getVariationId()):this.getId();return null!==(t=this.getLineItems().find(t=>t.id===i))&&void 0!==t?t:null}update(t={},i=!1){Object.keys(t).some(i=>t[i]!==this.data[i])&&(this._prevData={...this.data},this.data={...this.data,...t},i||this.actions.doAction("product_updated",this,this._prevData))}onQuantityChange(t){const i=this.getQuantity();this.update({qty:i,total:this.getPrice()*i})}foundVariation(t,i){this.variation={...i};const a=this.getVariationData(),e=Object.keys(a).sort().map(t=>`${t}:${a[t]}`).join("|");this.update({price:i.display_price,priceCents:(0,s.toCents)(i.display_price),total:i.display_price*this.getQuantity(),isInStock:i.is_in_stock,variation_id:i.variation_id,needsShipping:!i.is_virtual,attributesHash:e}),this.actions.doAction("found_variation",this.needsCartCalculation(),this,this._prevData)}onBlockVariationChanged(t,i){var a,e,n;if(!i)return;const{price:r,currency_minor_unit:o}=null!==(a=i.prices)&&void 0!==a?a:{},d=r?parseInt(r,10)/Math.pow(10,null!=o?o:2):0;this.variation={variation_id:t,attributes:i.attributes},this.update({price:d,priceCents:(0,s.toCents)(d),total:d*this.getQuantity(),isInStock:null===(e=null!==(n=i.is_in_stock)&&void 0!==n?n:i.is_purchasable)||void 0===e||e,variation_id:t}),this.actions.doAction("found_variation",this.needsCartCalculation(),this,this._prevData)}resetVariationData(){this.variation=null,this.isVariableProduct()&&(this.update({variation_id:null,price:this.default_data.price,priceCents:(0,s.toCents)(this.default_data.price),total:this.default_data.total,isInStock:this.default_data.isInStock,needsShipping:this.default_data.needsShipping,attributesHash:""}),this.actions.doAction("reset_variation",this))}onAfterCartCalculation(t){const i=t.getLineItems().filter(t=>"product"===t.type);i.length>0&&this.update({lineItems:i})}addCartCalculationData(t){return{...t,product_id:this.getId(),variation_id:this.isVariableProduct()?this.getVariationId():0,qty:this.getQuantity(),...this.getVariationData(),...(0,s.convertFormToFields)(e()("form.cart"),this._excludedKeys)}}isInStock(){return!!this.data.isInStock}getQuantity(){return parseInt(e()('[name="quantity"]').val())||0}getPrice(){return this.actions.applyFilters("product_price",parseFloat(this.data?.price||0),this)}getPriceCents(){var t;return this.actions.applyFilters("product_price_cents",null!==(t=this.data?.priceCents)&&void 0!==t?t:(0,s.toCents)(this.getPrice()),this)}getTotal(){var t;const i=null!==(t=this.data.total)&&void 0!==t?t:parseFloat(this.getPrice()*this.getQuantity());return this.actions.applyFilters("product_total",parseFloat(i),this)}getTotalCents(){return this.actions.applyFilters("product_total_cents",(0,s.toCents)(this.getTotal()),this)}isVariableProduct(){return this.data.type?.indexOf("variable")>-1}isVariationSelected(){if(this.variation?.variation_id)return!0;const t=e()('input[name="variation_id"]').val();return!!t&&"0"!==t}getVariationData(){if(this.isVariableProduct()){const t=this.variation?{...this.variation.attributes}:{},i=document.querySelectorAll('.variations [name^="attribute_"]');return i&&i.forEach(i=>{i.name in t&&""!==t[i.name]||(t[i.name]=i.value||"")}),t}return{}}getId(){return parseInt(this.data?.id)}getVariationId(){return this.variation?this.variation.variation_id:e()('[name="variation_id"]').val()}}((0,s.getSetting)("product"));(this.wcStripe=this.wcStripe||{}).product=i.default})();