import*as t from"@wordpress/interactivity";var e,n,o={d:function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}},r=(e={getContext:function(){return t.getContext},getElement:function(){return t.getElement},store:function(){return t.store},withSyncEvent:function(){return t.withSyncEvent}},n={},o.d(n,e),n);const{__,sprintf:i,_n}=wp.i18n,c="surecart-local-storage";let s=null;const u=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"live",e=arguments.length>1?arguments[1]:void 0;const n=localStorage.getItem(c),o={live:{},test:{}},r=(JSON.parse(n)||o)[t];return r?.[e]||o},a=t=>"keydown"===t.type&&"Enter"!==t.key&&" "!==t.key,l=t=>{const e=document.querySelector?.(t)||null;e&&setTimeout((()=>{e.focus()}),0)},{state:m,actions:p}=(0,r.store)("surecart/checkout",{state:{loading:!1,error:null,promotionCode:"",checkout:{},oldCheckout:{},get itemsCount(){return m.checkout?.line_items_count||0},get hasItems(){return m.itemsCount>0},get discountIsRedeemable(){return"redeemable"===m?.checkout?.discount?.redeemable_status},get lineItemHasScratchAmount(){const{line_item:t}=(0,r.getContext)();return!(t?.ad_hoc_amount||!t?.scratch_display_amount)&&t.scratch_amount!==t.subtotal_amount},get lineItemNote(){const{line_item:t}=(0,r.getContext)();return t?.display_note||""},get isDiscountApplied(){return!!m?.checkout?.discount?.promotion?.code},get hasDiscountAmount(){return!!m?.checkout?.discount_amount},get hasSubtotalScratchAmount(){return!!m?.checkout?.has_subtotal_scratch_amount},get subtotalScratchAriaLabel(){const t=m?.checkout?.subtotal_scratch_display_amount;return t?`${__("Original price:","surecart")} ${t}`:""},get checkoutLineItems(){return(m?.checkout?.line_items?.data||[]).sort(((t,e)=>{const n=t?.price?.current_swap||t?.swap?1:0;return(e?.price?.current_swap||e?.swap?1:0)-n}))},get lineItemFees(){const{line_item:t}=(0,r.getContext)();return t?.fees?.data||[]},get isEditable(){const{line_item:t}=(0,r.getContext)();return!t?.price?.ad_hoc&&!t?.bump_amount},get hasSubscription(){return(m.checkout?.line_items?.data||[]).some((t=>"month"===t?.price?.recurring_interval&&!!t?.price?.recurring_interval&&!t?.price?.recurring_period_count))},get hasRecurring(){return m?.checkout?.line_items?.data?.some((t=>t?.price?.recurring_interval))},get swap(){const{line_item:t}=(0,r.getContext)();return t?.swap||t?.price?.current_swap},get swapDisplayAmount(){return m?.swap?.swap_price?.display_amount},get swapIntervalText(){return m?.swap?.swap_price?.short_interval_text},get swapIntervalCountText(){return m?.swap?.swap_price?.short_interval_count_text},get errorTitle(){return m.error?.title||m.error||""},get errorMessage(){return m.error?.message||""},get lineItemPermalink(){const{line_item:t}=(0,r.getContext)(),e=t?.price?.product;return e?.is_published?e?.permalink:null},get additionalErrors(){return(m?.error?.additional_errors||[]).map((t=>t.message))},get showCartMenuIcon(){const{cartMenuAlwaysShown:t}=(0,r.getContext)();return m.itemsCount>0||t},get itemsCountAriaLabel(){const t=m.itemsCount;return i(_n(/* translators: %d: number of items in the cart */
"Total of %d item in your cart","Total of %d items in your cart",t,"surecart"),t)},get lineItemAriaLabel(){const{line_item:t}=(0,r.getContext)("surecart/checkout");return i(__("Cart item: %s. Quantity %d. Total price %s.","surecart"),t?.price?.product?.name,t?.quantity,t?.subtotal_display_amount)},get removeItemAriaLabel(){const{line_item:t}=(0,r.getContext)("surecart/checkout");return i(__("Remove %s from your cart.","surecart"),t?.price?.product?.name)},get increaseQuantityAriaLabel(){const{line_item:t}=(0,r.getContext)("surecart/checkout");return i(/* translators: %s: product name */
__("Increase quantity for %s.","surecart"),t?.price?.product?.name)},get decreaseQuantityAriaLabel(){const{line_item:t}=(0,r.getContext)("surecart/checkout");return i(/* translators: %s: product name */
__("Decrease quantity for %s.","surecart"),t?.price?.product?.name)},get quantityInputAriaLabel(){const{line_item:t}=(0,r.getContext)("surecart/checkout");return i(/* translators: %s: product name */
__("Quantity for %s.","surecart"),t?.price?.product?.name)},get lineItemVariant(){const{line_item:t}=(0,r.getContext)();return(t?.variant_options||[]).filter(Boolean).join(" / ")||null},get lineItemPriceName(){const{line_item:t}=(0,r.getContext)();return t.price.name??""},get showLineItemsCount(){const{line_item:t}=(0,r.getContext)();return t?.quantity>1},get isQuantityDisabled(){return!!m.loading},get isQuantityIncreaseDisabled(){const{line_item:t}=(0,r.getContext)("surecart/checkout");return m.isQuantityDisabled||t?.max&&t?.quantity>=t?.max},get isQuantityDecreaseDisabled(){const{line_item:t}=(0,r.getContext)("surecart/checkout");return m.isQuantityDisabled||t?.quantity<=(t?.min||1)}},callbacks:{getState(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return null===t?(0,r.getContext)():(0,r.getContext)()?.[t]||!1},init(){const{mode:t,formId:e}=(0,r.getContext)(),n=u(t,e);p.setCheckout(n,t,e)},syncTabs(t){if(t?.key!==c)return;const{mode:e,formId:n}=(0,r.getContext)(),o=u(e,n);p.setCheckout(o,e,n)},onChangeCheckout:function*(){const{checkout:t,oldCheckout:e}=m;if(JSON.stringify(t?.line_items?.data||[])===JSON.stringify(e?.line_items?.data||[]))return;const{processCheckoutEvents:n}=yield import("@surecart/checkout-events");n(t,e)}},actions:{fetch:function*(){const{mode:t,formId:e}=(0,r.getContext)()??{};if(!m.checkout?.id||!t||!e)return;const{fetchCheckout:n}=yield import("@surecart/checkout-service");try{const o=yield*n({id:m.checkout?.id});p.setCheckout(o,t,e)}catch(t){console.error(t),"checkout.not_found"===t?.code&&p.clearCheckouts()}},toggleDiscountInput:(0,r.withSyncEvent)((function(t){if(a(t))return!0;t.preventDefault();const e=(0,r.getContext)();e.discountInputOpen=!e.discountInputOpen;const{ref:n}=(0,r.getElement)(),o=n?.parentElement?.querySelector?.("input");o&&setTimeout((()=>o.focus()),0)})),toggleSwap:function*(){const{line_item:t,mode:e,formId:n}=(0,r.getContext)(),{toggleSwap:o}=yield import("@surecart/checkout-service"),i=yield*o({id:t?.id,action:t?.swap?"unswap":"swap"});p.setCheckout(i,e,n)},setPromotionCode(t){m.promotionCode=t?.target?.value||""},maybeApplyDiscountOnKeyChange:(0,r.withSyncEvent)((function(t){if("Escape"!==t.key&&"Enter"!==t.key||(t.preventDefault(),t.stopPropagation()),"Escape"===t.key)return(0,r.getContext)().discountInputOpen=!1,void l("#sc-coupon-trigger");"Enter"===t.key&&p.applyDiscount(t),p.setPromotionCode(t)})),applyDiscount:(0,r.withSyncEvent)((function*(t){if(t.preventDefault(),t.stopPropagation(),!m.promotionCode)return;const{mode:e,formId:n}=(0,r.getContext)(),{speak:o}=yield import("@wordpress/a11y");o(__("Applying promotion code.","surecart"),"assertive");const{handleCouponApply:c}=yield import("@surecart/checkout-service"),s=yield*c(m.promotionCode);s&&(o(i(/* translators: %s: promotion code */
__("Promotion code %s has been applied.","surecart"),m.promotionCode),"assertive"),m.error="",p.setCheckout(s,e,n),p.announceLatestCheckout(),l("#sc-coupon-remove-discount"))})),removeDiscount:function*(){const t=(0,r.getContext)(),{mode:e,formId:n}=t,{speak:o}=yield import("@wordpress/a11y");o(__("Removing promotion code.","surecart"),"assertive");const{handleCouponApply:i}=yield import("@surecart/checkout-service"),c=yield*i(null);c&&(m.promotionCode="",t.discountInputOpen=!1,p.setCheckout(c,e,n),o(__("Promotion code has been removed.","surecart"),"assertive"),p.announceLatestCheckout(),l("#sc-coupon-trigger"))},closeCouponOnClickOutside:t=>{const e=(0,r.getContext)();t&&t.target.closest(".sc-coupon-form")||e.discountInputOpen&&(e.discountInputOpen=!1)},clearCheckouts(){let t=JSON.parse(localStorage.getItem(c));t={live:{},test:{}},localStorage.setItem(c,JSON.stringify(t)),m.checkout={}},setCheckout(t,e,n){let o=u(e,n);if(!o)return;m.oldCheckout=o;let r=JSON.parse(localStorage.getItem(c));r||(r={live:{},test:{}}),e&&t?.live_mode===("live"===e)&&(r={...r,[e]:{...r[e],[n]:t}},localStorage.setItem(c,JSON.stringify(r)),m.checkout=u(e,n))},onQuantityIncrease:function*(t){if(a(t))return!0;const{line_item:e}=(0,r.getContext)(),n=e?.quantity+1,{speak:o}=yield import("@wordpress/a11y");o(__("Updating quantity.","surecart"),"assertive"),yield p.updateLineItem({quantity:n}),o(i(/* translators: %d: quantity */
__("Quantity increased to %d.","surecart"),n),"assertive"),p.announceLatestCheckout()},onQuantityDecrease:function*(t){if(a(t))return!0;const{line_item:e}=(0,r.getContext)(),n=e?.quantity-1;if(n<1)return;const{speak:o}=yield import("@wordpress/a11y");o(__("Updating quantity.","surecart"),"assertive"),yield p.updateLineItem({quantity:n}),o(i(/* translators: %d: quantity */
__("Quantity decreased to %d.","surecart"),n),"assertive"),p.announceLatestCheckout()},onQuantityChange:function*(t){const e=parseInt(t.target.value||"");yield p.updateLineItem({quantity:e});const{speak:n}=yield import("@wordpress/a11y");n(i(/* translators: %d: quantity */
__("Quantity changed to %d.","surecart"),e),"assertive"),p.announceLatestCheckout()},updateLineItem:function*(t){m.loading=!0;const{line_item:e,mode:n,formId:o}=(0,r.getContext)(),{updateCheckoutLineItem:i}=yield import("@surecart/checkout-service"),c=yield*i({id:e?.id,data:t});p.setCheckout(c,n,o),m.loading=!1},removeLineItem:(0,r.withSyncEvent)((function*(t){if(a(t))return!0;t.preventDefault(),m.loading=!0;const{line_item:e,mode:n,formId:o}=(0,r.getContext)(),c=e?.price?.product?.name||__("item","surecart"),{speak:s}=yield import("@wordpress/a11y");s(i(__("Removing %s from your cart.","surecart"),c),"assertive");const{removeCheckoutLineItem:u}=yield import("@surecart/checkout-service"),l=yield*u(e?.id);p.setCheckout(l,n,o),m.loading=!1,s(i(__("Removed %s from your cart.","surecart"),c),"assertive"),p.announceLatestCheckout(),requestAnimationFrame((()=>{const t=document.querySelector(".wp-block-surecart-cart-line-item-remove, .sc-product-line-item__remove-button")||document.querySelector(".wp-block-surecart-cart-close-button");t?.focus()}))})),updateCheckout(t){const{checkout:e,mode:n,formId:o}=t.detail;p.setCheckout(e,n,o)},announceLatestCheckout:function*(){const{speak:t}=yield import("@wordpress/a11y");clearTimeout(s),s=setTimeout((()=>{t(i(__("Checkout updated. The subtotal is %1$s.","surecart"),m?.checkout?.subtotal_display_amount),"polite")}),1e3)}}});addEventListener("scCheckoutUpdated",(t=>{document.querySelector("sc-checkout")||p.updateCheckout(t)}));