PageSourceSearch

https://epowerfun.de/theme/43e680d44335d04e9865b11184a77461/js/quo…nagement.offcanvas-cart.plugin.ts.9c7e0f.js

js epowerfun.de collected 2026-10-01 15:40:31 UTC 12,157 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[10874],{874:(e,t,s)=>{s.r(t),s.d(t,{default:()=>C});var i=s(568),n=s(49);class r{get(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",i=this._createPreparedRequest("GET",e,s);return this._sendRequest(i,null,t)}post(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let n=this._createPreparedRequest("POST",e,i);return this._sendRequest(n,t,s)}delete(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let n=this._createPreparedRequest("DELETE",e,i);return this._sendRequest(n,t,s)}patch(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let n=this._createPreparedRequest("PATCH",e,i);return this._sendRequest(n,t,s)}abort(){if(this._request)return this._request.abort()}setErrorHandlingInternal(e){this._errorHandlingInternal=e}_registerOnLoaded(e,t){t&&(!0===this._errorHandlingInternal?(e.addEventListener("load",()=>{t(e.responseText,e)}),e.addEventListener("abort",()=>{console.warn("the request to ".concat(e.responseURL," was aborted"))}),e.addEventListener("error",()=>{console.warn("the request to ".concat(e.responseURL," failed with status ").concat(e.status))}),e.addEventListener("timeout",()=>{console.warn("the request to ".concat(e.responseURL," timed out"))})):e.addEventListener("loadend",()=>{t(e.responseText,e)}))}_sendRequest(e,t,s){return this._registerOnLoaded(e,s),e.send(t),e}_getContentType(e,t){return e instanceof FormData&&(t=!1),t}_createPreparedRequest(e,t,s){return this._request=new XMLHttpRequest,this._request.open(e,t),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),s&&this._request.setRequestHeader("Content-type",s),this._request}constructor(){this._request=null,this._errorHandlingInternal=!1}}var o=s(62),a=s(266);let c="loader",l={BEFORE:"before",INNER:"inner"};class u{create(){if(!this.exists()){if(this.position===l.INNER){this.parent.innerHTML=u.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),u.getTemplate())}}remove(){let e=this.parent.querySelectorAll(".".concat(c));a.Z.iterate(e,e=>e.remove())}exists(){return this.parent.querySelectorAll(".".concat(c)).length>0}_getPosition(){return this.position===l.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return'<div class="'.concat(c,'" role="status">\n                    <span class="').concat("visually-hidden",'">Loading...</span>\n                </div>')}static SELECTOR_CLASS(){return c}constructor(e,t=l.BEFORE){this.parent=e instanceof Element?e:document.body.querySelector(e),this.position=t}}let d=null;class h extends o.Z{static open(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"left",n=!(arguments.length>4)||void 0===arguments[4]||arguments[4],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:o.Z.REMOVE_OFF_CANVAS_DELAY(),a=arguments.length>6&&void 0!==arguments[6]&&arguments[6],c=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"";if(!e)throw Error("A url must be given!");o.r._removeExistingOffCanvas();let l=o.r._createOffCanvas(i,a,c,n);this.setContent(e,t,s,n,r),o.r._openOffcanvas(l)}static setContent(e,t,s,i,n){let o=new r;super.setContent('<div class="offcanvas-body">'.concat(u.getTemplate(),"</div>"),i,n),d&&d.abort();let a=e=>{super.setContent(e,i,n),"function"==typeof s&&s(e)};d=t?o.post(e,t,h.executeCallback.bind(this,a)):o.get(e,h.executeCallback.bind(this,a))}static executeCallback(e,t){"function"==typeof e&&e(t),window.PluginManager.initializePlugins()}}class g{static isTouchDevice(){return"ontouchstart"in document.documentElement}static isIOSDevice(){return g.isIPhoneDevice()||g.isIPadDevice()}static isNativeWindowsBrowser(){return g.isIEBrowser()||g.isEdgeBrowser()}static isIPhoneDevice(){return!!navigator.userAgent.match(/iPhone/i)}static isIPadDevice(){return!!navigator.userAgent.match(/iPad/i)}static isIEBrowser(){return -1!==navigator.userAgent.toLowerCase().indexOf("msie")||!!navigator.userAgent.match(/Trident.*rv:\d+\./)}static isEdgeBrowser(){return!!navigator.userAgent.match(/Edge\/\d+/i)}static getList(){return{"is-touch":g.isTouchDevice(),"is-ios":g.isIOSDevice(),"is-native-windows":g.isNativeWindowsBrowser(),"is-iphone":g.isIPhoneDevice(),"is-ipad":g.isIPadDevice(),"is-ie"
1:g.isIEBrowser(),"is-edge":g.isEdgeBrowser()}}}class p{static serialize(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if("FORM"!==e.nodeName){if(t)throw Error("The passed element is not a form!");return{}}return new FormData(e)}static serializeJson(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],s=p.serialize(e,t);if(0===Object.keys(s).length)return{};let i={};return a.Z.iterate(s,(e,t)=>i[t]=e),i}}let v="element-loader-backdrop";class f extends u{static create(e){e.classList.add("has-element-loader"),f.exists(e)||(f.appendLoader(e),setTimeout(()=>{let t=e.querySelector(".".concat(v));t&&t.classList.add("element-loader-backdrop-open")},1))}static remove(e){e.classList.remove("has-element-loader");let t=e.querySelector(".".concat(v));t&&t.remove()}static exists(e){return e.querySelectorAll(".".concat(v)).length>0}static getTemplate(){return'\n        <div class="'.concat(v,'">\n            <div class="loader" role="status">\n                <span class="').concat("visually-hidden",'">Loading...</span>\n            </div>\n        </div>\n        ')}static appendLoader(e){e.insertAdjacentHTML("beforeend",f.getTemplate())}}class m{static debounce(e,t){let s,i,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=function(){for(var r=arguments.length,o=Array(r),a=0;a<r;a++)o[a]=arguments[a];n&&!s&&(i=setTimeout(e.bind(e,...o),0)),clearTimeout(s),s=setTimeout(e.bind(e,...o),t)};return r.cancel=()=>{clearTimeout(i),clearTimeout(s),s=void 0},r.flush=function(){for(var t=arguments.length,s=Array(t),i=0;i<t;i++)s[i]=arguments[i];r.cancel(),e(...s)},r}}class _ extends i.Z{init(){this.client=new r,this._requestQueue=Promise.resolve(),this._registerOpenTriggerEvents()}openOffCanvas(e,t,s){h.open(e,t,this._onOffCanvasOpened.bind(this,s),this.options.offcanvasPosition,!0),h.setAdditionalClassName(this.options.additionalOffcanvasClass)}_registerOpenTriggerEvents(){let e=g.isTouchDevice()?"touchstart":"click";this.el.addEventListener(e,this._onOpenOffCanvasCart.bind(this))}_onOpenOffCanvasCart(e){e.preventDefault(),this.openOffCanvas(window.router["frontend.cart.offcanvas"],!1)}_registerRemoveProductTriggerEvents(){let e=n.Z.querySelectorAll(document,this.options.removeProductTriggerSelector,!1);e&&a.Z.iterate(e,e=>e.addEventListener("submit",this._onRemoveProductFromCart.bind(this)))}_registerChangeQuantityProductTriggerEvents(){let e=n.Z.querySelectorAll(document,this.options.changeProductQuantityTriggerSelector,!1),t=n.Z.querySelectorAll(document,this.options.changeProductQuantityTriggerNumberSelector,!1);e&&a.Z.iterate(e,e=>e.addEventListener("change",this._onChangeProductQuantity.bind(this))),t&&a.Z.iterate(t,e=>{var t;let s=m.debounce(this._onChangeProductQuantity.bind(this),this.options.changeQuantityInputDelay);(t=e.form)===null||void 0===t||t.addEventListener("change",e=>{var t;if((t=e.detail)===null||void 0===t?void 0:t.submitImmediately){s.flush(e);return}s(e)})})}_registeraddPromotionTriggerEvents(){let e=n.Z.querySelectorAll(document,this.options.addPromotionTriggerSelector,!1);e&&a.Z.iterate(e,e=>e.addEventListener("submit",this._onAddPromotionToCart.bind(this)))}_registerUpdateShippingEvents(){let{shippingContainerSelector:e}=this.options,t=document.querySelector("".concat(e," select"));t&&t.addEventListener("input",this._onChangeShippingMethod.bind(this))}_registerToggleShippingSelection(){let{shippingToggleSelector:e,shippingContainerSelector:t}=this.options,s=document.querySelector(e);s&&s.addEventListener("click",()=>{let e=document.querySelector(t),s="offcanvas-shipping-preference--hidden";e.classList.contains(s)?e.classList.remove(s):e.classList.add(s)})}_registerEvents(){this._registerRemoveProductTriggerEvents(),this._registerChangeQuantityProductTriggerEvents(),this._registeraddPromotionTriggerEvents(),this._isShippingAvailable()&&(this._registerUpdateShippingEvents(),this._registerToggleShippingSelection()),this.$emitter.publish("registerEvents")}_onOffCanvasOpened(e,t){"function"==typeof e&&e(t),this.$emitter.publish("offCanvasOpened",{response:t}),this._fetchCartWidgets(),this._registerEvents()}_fireRequest(e,t,s){let i=e.closest(t);f.create(i);let r=s?s.bind(this):this._onOffCanvasOpened.bind(this,this._updateOffCanvasContent.bind(this)),o=n.Z.getAttribute(e,"action"),a=p.serialize(e);this._requestQueue=this._requestQueue.then(()=>(this.$emitter.publish("beforeFireRequest"),this._sendRequest("post",o,a))).then(e=>{let{response:t,request:s}=e;return r(t,s)}).catch(e=>{f.remove(i),console.warn("Unable to update the off-canvas cart.",e)})}_sendRequest(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return new Promise((i,n)=>
1{let r=(e,s)=>{if(s&&0===s.status){n(Error("The request to ".concat(t," failed.")));return}i({response:e,request:s})},o="post"===e?this.client.post(t,s,r):this.client.get(t,r,"text/html");["error","abort","timeout"].forEach(e=>{null==o||o.addEventListener(e,()=>n(Error("The request to ".concat(t," failed (").concat(e,")."))))})})}_onRemoveProductFromCart(e){e.preventDefault();let t=e.target,s=this.options.cartItemSelector;this.$emitter.publish("onRemoveProductFromCart"),this._fireRequest(t,s)}_onChangeProductQuantity(e){let t=e.target,s=t.closest("form"),i=this.options.cartItemSelector;this.$emitter.publish("onChangeProductQuantity"),this._saveFocusState(s.contains(document.activeElement)?document.activeElement:t),this._fireRequest(s,i)}_onAddPromotionToCart(e){e.preventDefault();let t=e.target,s=this.options.cartPromotionSelector;this.$emitter.publish("onAddPromotionToCart"),this._saveFocusState("#addPromotionOffcanvasCart"),this._fireRequest(t,s)}_fetchCartWidgets(){let e=window.PluginManager.getPluginInstances("CartWidget");a.Z.iterate(e,e=>e.fetch()),this.$emitter.publish("fetchCartWidgets")}_updateOffCanvasContent(e){o.Z.setContent(e,!0,this._registerEvents.bind(this)),window.PluginManager.initializePlugins(),this._resumeFocusState()}_isShippingAvailable(){let{shippingContainerSelector:e}=this.options;return!!document.querySelector(e)}_onChangeShippingMethod(e){e.preventDefault(),this.$emitter.publish("onShippingMethodChange");let t=window.router["frontend.cart.offcanvas"];this._fireRequest(e.target.form,".offcanvas-summary",()=>this._sendRequest("get",t).then(e=>{let{response:t}=e;this._updateOffCanvasContent(t),this._registerEvents()}))}_saveFocusState(e){if(this.options.autoFocus){if("string"==typeof e){window.focusHandler.saveFocusState(this.options.focusHandlerKey,e);return}window.focusHandler.saveFocusState(this.options.focusHandlerKey,'[data-focus-id="'.concat(e.dataset.focusId,'"]'))}}_resumeFocusState(){this.options.autoFocus&&window.focusHandler.resumeFocusState(this.options.focusHandlerKey)}}_.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"};class C extends _{init(){super.init(),this.$emitter.subscribe("offCanvasOpened",()=>{window.PluginManager.initializePlugin("B2bQuoteRequestPlugin","[data-b2b-quote-request-plugin]")})}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.