"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[76044],{6044:(t,e,i)=>{i.r(e),i.d(e,{default:()=>g});var s=i(9568),n=i(4049),r=i(3107),o=i(7),a=i(5206),c=i(6471),h=i(3266),u=i(9062),d=i(3327),l=i(9610);class g extends s.Z{init(){this.client=new r.Z,this._registerOpenTriggerEvents()}openOffCanvas(t,e,i){o.Z.open(t,e,this._onOffCanvasOpened.bind(this,i),this.options.offcanvasPosition,!0),o.Z.setAdditionalClassName(this.options.additionalOffcanvasClass)}_registerOpenTriggerEvents(){let t=a.Z.isTouchDevice()?"touchstart":"click";this.el.addEventListener(t,this._onOpenOffCanvasCart.bind(this))}_onOpenOffCanvasCart(t){t.preventDefault(),this.openOffCanvas(window.router["frontend.cart.offcanvas"],!1)}_registerRemoveProductTriggerEvents(){let t=n.Z.querySelectorAll(document,this.options.removeProductTriggerSelector,!1);t&&h.Z.iterate(t,t=>t.addEventListener("submit",this._onRemoveProductFromCart.bind(this)))}_registerChangeQuantityProductTriggerEvents(){let t=n.Z.querySelectorAll(document,this.options.changeProductQuantityTriggerSelector,!1),e=n.Z.querySelectorAll(document,this.options.changeProductQuantityTriggerNumberSelector,!1);t&&h.Z.iterate(t,t=>t.addEventListener("change",this._onChangeProductQuantity.bind(this))),e&&h.Z.iterate(e,t=>{t.addEventListener("change",l.Z.debounce(this._onChangeProductQuantity.bind(this),this.options.changeQuantityInputDelay))})}_registeraddPromotionTriggerEvents(){let t=n.Z.querySelectorAll(document,this.options.addPromotionTriggerSelector,!1);t&&h.Z.iterate(t,t=>t.addEventListener("submit",this._onAddPromotionToCart.bind(this)))}_registerUpdateShippingEvents(){let{shippingContainerSelector:t}=this.options,e=document.querySelector("".concat(t," select"));e&&e.addEventListener("input",this._onChangeShippingMethod.bind(this))}_registerToggleShippingSelection(){let{shippingToggleSelector:t,shippingContainerSelector:e}=this.options,i=document.querySelector(t);i&&i.addEventListener("click",()=>{let t=document.querySelector(e),i="offcanvas-shipping-preference--hidden";t.classList.contains(i)?t.classList.remove(i):t.classList.add(i)})}_registerEvents(){this._registerRemoveProductTriggerEvents(),this._registerChangeQuantityProductTriggerEvents(),this._registeraddPromotionTriggerEvents(),this._isShippingAvailable()&&(this._registerUpdateShippingEvents(),this._registerToggleShippingSelection()),this.$emitter.publish("registerEvents")}_onOffCanvasOpened(t,e){"function"==typeof t&&t(e),this.$emitter.publish("offCanvasOpened",{response:e}),this._fetchCartWidgets(),this._registerEvents()}_fireRequest(t,e,i){d.Z.create(t.closest(e));let s=i?i.bind(this):this._onOffCanvasOpened.bind(this,this._updateOffCanvasContent.bind(this)),r=n.Z.getAttribute(t,"action"),o=c.Z.serialize(t);this.$emitter.publish("beforeFireRequest"),this.client.post(r,o,s)}_onRemoveProductFromCart(t){t.preventDefault();let e=t.target,i=this.options.cartItemSelector;this.$emitter.publish("onRemoveProductFromCart"),this._fireRequest(e,i)}_onChangeProductQuantity(t){let e=t.target,i=e.closest("form"),s=this.options.cartItemSelector;this.$emitter.publish("onChangeProductQuantity"),this._saveFocusState(e),this._fireRequest(i,s)}_onAddPromotionToCart(t){t.preventDefault();let e=t.target,i=this.options.cartPromotionSelector;this.$emitter.publish("onAddPromotionToCart"),this._saveFocusState("#addPromotionOffcanvasCart"),this._fireRequest(e,i)}_fetchCartWidgets(){let t=window.PluginManager.getPluginInstances("CartWidget");h.Z.iterate(t,t=>t.fetch()),this.$emitter.publish("fetchCartWidgets")}_updateOffCanvasContent(t){u.Z.setContent(t,!0,this._registerEvents.bind(this)),window.PluginManager.initializePlugins(),this._resumeFocusState()}_isShippingAvailable(){let{shippingContainerSelector:t}=this.options;return!!document.querySelector(t)}_onChangeShippingMethod(t){t.preventDefault(),this.$emitter.publish("onShippingMethodChange");let e=window.router["frontend.cart.offcanvas"];this._fireRequest(t.target.form,".offcanvas-summary",()=>{this.client.get(e,t=>{this._updateOffCanvasContent(t),this._registerEvents()},"text/html")})}_saveFocusState(t){if(this.options.autoFocus){if("string"==typeof t){window.focusHandler.saveFocusState(this.options.focusHandlerKey,t);return}window.focusHandler.saveFocusState(this.options.focusHandlerKey,'[data-focus-id="'.concat(t.dataset.focusId,'"]'))}}_resumeFocusState(){this.options.autoFocus&&window.focusHandler.resumeFocusState(this.options.focusHandlerKey)}}g.options={removeProductTriggerSelector:".js-offcanvas-cart-remove-product",changeProductQuantityTriggerSelector:".js-offcanvas-cart-change-quantity",changeProductQuantityTriggerNumberSelector:".js-offcanvas-cart-change-quantity-number",changeQuantityInputDelay:800,addPromotionTriggerSelector:".js-offcanvas-cart-add-promotion",cartItemSelector:".js-cart-item",cartPromotionSelector:".js-offcanvas-cart-promotion",offcanvasPosition:"right",shippingContainerSelector:".offcanvas-shipping-preference",shippingToggleSelector:".js-toggle-shipping-selection",additionalOffcanvasClass:"cart-offcanvas",autoFocus:!1,focusHandlerKey:"offcanvas-cart"}},6471:(t,e,i)=>{i.d(e,{Z:()=>n});var s=i(3266);class n{static serialize(t){let e=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if("FORM"!==t.nodeName){if(e)throw Error("The passed element is not a form!");return{}}return new FormData(t)}static serializeJson(t){let e=!(arguments.length>1)||void 0===arguments[1]||arguments[1],i=n.serialize(t,e);if(0===Object.keys(i).length)return{};let r={};return s.Z.iterate(i,(t,e)=>r[e]=t),r}}}}]);