PageSourceSearch

https://www.nebelung.de/theme/fc6be77f01289e2dacedb59fa252fa79/js/…g-list.shopping-list-modal.plugin.b0940f.js

js nebelung.de collected 2026-10-02 10:59:03 UTC 14,170 bytes, 9 lines download raw bytes

1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[16352],{156:t=>{var e=function(t){var e;return!!t&&"object"==typeof t&&"[object RegExp]"!==(e=Object.prototype.toString.call(t))&&"[object Date]"!==e&&t.$$typeof!==s},s="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(t,e){return!1!==e.clone&&e.isMergeableObject(t)?a(Array.isArray(t)?[]:{},t,e):t}function r(t,e,s){return t.concat(e).map(function(t){return i(t,s)})}function n(t){return Object.keys(t).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[])}function o(t,e){try{return e in t}catch(t){return!1}}function a(t,s,l){(l=l||{}).arrayMerge=l.arrayMerge||r,l.isMergeableObject=l.isMergeableObject||e,l.cloneUnlessOtherwiseSpecified=i;var c,d,h=Array.isArray(s);return h!==Array.isArray(t)?i(s,l):h?l.arrayMerge(t,s,l):(d={},(c=l).isMergeableObject(t)&&n(t).forEach(function(e){d[e]=i(t[e],c)}),n(s).forEach(function(e){(!o(t,e)||Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))&&(o(t,e)&&c.isMergeableObject(s[e])?d[e]=(function(t,e){if(!e.customMerge)return a;var s=e.customMerge(t);return"function"==typeof s?s:a})(e,c)(t[e],s[e],c):d[e]=i(s[e],c))}),d)}a.all=function(t,e){if(!Array.isArray(t))throw Error("first argument should be an array");return t.reduce(function(t,s){return a(t,s,e)},{})},t.exports=a},749:(t,e,s)=>{s.d(e,{A:()=>r});let i=Object.freeze(new class{constructor(){this._domParser=new DOMParser}replaceFromMarkup(t,e){let s=t;"string"==typeof s&&(s=this._createMarkupFromString(s)),"string"==typeof e&&(e=[e]),this._replaceSelectors(s,e)}replaceElement(t,e){return("string"==typeof t&&(t=document.querySelectorAll(t)),"string"==typeof e&&(e=document.querySelectorAll(e)),t instanceof NodeList&&e instanceof NodeList&&e.length>t.length)?(e.forEach(e=>{t.forEach(t=>{t.innerHTML&&t.className===e.className&&(e.innerHTML=t.innerHTML)})}),!0):t instanceof NodeList&&t.length?(t.forEach((t,s)=>{t.innerHTML&&(e[s].innerHTML=t.innerHTML)}),!0):e instanceof NodeList&&e.length?(e.forEach(e=>{t.innerHTML&&(e.innerHTML=t.innerHTML)}),!0):!!e&&!!t&&!!t.innerHTML&&(e.innerHTML=t.innerHTML,!0)}_replaceSelectors(t,e){e.forEach(e=>{let s=t.querySelectorAll(e),i=document.querySelectorAll(e);this.replaceElement(s,i)})}_createMarkupFromString(t){return this._domParser.parseFromString(t,"text/html")}});class r{static replaceFromMarkup(t,e){i.replaceFromMarkup(t,e)}static replaceElement(t,e){return i.replaceElement(t,e)}}},373:(t,e,s)=>{s.d(e,{A:()=>a});var i=s(156),r=s.n(i);class n{static ucFirst(t){return t.charAt(0).toUpperCase()+t.slice(1)}static lcFirst(t){return t.charAt(0).toLowerCase()+t.slice(1)}static toDashCase(t){return t.replace(/([A-Z])/g,"-$1").replace(/^-/,"").toLowerCase()}static toLowerCamelCase(t,e){let s=n.toUpperCamelCase(t,e);return n.lcFirst(s)}static toUpperCamelCase(t,e){return e?t.split(e).map(t=>n.ucFirst(t.toLowerCase())).join(""):n.ucFirst(t.toLowerCase())}static parsePrimitive(t){try{return/^\d+(.|,)\d+$/.test(t)&&(t=t.replace(",",".")),JSON.parse(t)}catch(e){return t.toString()}}}class o{constructor(t=document){this._el=t,t.$emitter=this,this._listeners=[]}publish(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=new CustomEvent(t,{detail:e,cancelable:s});return this.el.dispatchEvent(i),i}subscribe(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this,r=t.split("."),n=s.scope?e.bind(s.scope):e;if(s.once&&!0===s.once){let e=n;n=function(s){i.unsubscribe(t),e(s)}}return this.el.addEventListener(r[0],n),this.listeners.push({splitEventName:r,opts:s,cb:n}),!0}unsubscribe(t){let e=t.split(".");return this.listeners=this.listeners.reduce((t,s)=>([...s.splitEventName].sort().toString()===e.sort().toString()?this.el.removeEventListener(s.splitEventName[0],s.cb):t.push(s),t),[]),!0}reset(){return this.listeners.forEach(t=>{this.el.removeEventListener(t.splitEventName[0],t.cb)}),this.listeners=[],!0}get el(){return this._el}set el(t){this._el=t}get listeners(){return this._listeners}set listeners(t){this._listeners=t}}class a{constructor(t,e={},s=!1){if(!(t instanceof Node)){console.warn(`There is no valid element given while trying to create a plugin instance for "${s}".`);return}this.el=t,this.$emitter=new o(this.el),this._pluginName=this._getPluginName(s),this.options=this._mergeOptions(e),this._initialized=!1,this._registerInstance(),this._init()}init(){console.warn(`The "init" method for the plugin "${this._pluginName}" is not defined. The plugin will not be initialized.`)}update(){}
1_init(){this._initialized||(this.init(),this._initialized=!0)}_update(){this._initialized&&this.update()}_mergeOptions(t){let e=[this.constructor.options,this.options,t];return e.push(this._getConfigFromDataAttribute()),e.push(this._getOptionsFromDataAttribute()),r().all(e.filter(t=>t instanceof Object&&!(t instanceof Array)).map(t=>t||{}))}_getConfigFromDataAttribute(){let t={};if("function"!=typeof this.el.getAttribute)return t;let e=n.toDashCase(this._pluginName),s=this.el.getAttribute(`data-${e}-config`);return s?window.PluginConfigManager.get(this._pluginName,s):t}_getOptionsFromDataAttribute(){let t={};if("function"!=typeof this.el.getAttribute)return t;let e=n.toDashCase(this._pluginName),s=this.el.getAttribute(`data-${e}-options`);if(s)try{return JSON.parse(s)}catch(t){console.error(`The data attribute "data-${e}-options" could not be parsed to json: ${t.message}`)}return t}_registerInstance(){window.PluginManager.getPluginInstancesFromElement(this.el).set(this._pluginName,this),window.PluginManager.getPlugin(this._pluginName,!1).get("instances").push(this)}_getPluginName(t){return t||(t=this.constructor.name),t}}},68:(t,e,s)=>{s.d(e,{A:()=>i});class i{constructor(){this._request=null,this._errorHandlingInternal=!1}get(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",i=this._createPreparedRequest("GET",t,s);return this._sendRequest(i,null,e)}post(t,e,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(e,i);let r=this._createPreparedRequest("POST",t,i);return this._sendRequest(r,e,s)}delete(t,e,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(e,i);let r=this._createPreparedRequest("DELETE",t,i);return this._sendRequest(r,e,s)}patch(t,e,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(e,i);let r=this._createPreparedRequest("PATCH",t,i);return this._sendRequest(r,e,s)}abort(){if(this._request)return this._request.abort()}setErrorHandlingInternal(t){this._errorHandlingInternal=t}_registerOnLoaded(t,e){e&&(!0===this._errorHandlingInternal?(t.addEventListener("load",()=>{e(t.responseText,t)}),t.addEventListener("abort",()=>{console.warn(`the request to ${t.responseURL} was aborted`)}),t.addEventListener("error",()=>{console.warn(`the request to ${t.responseURL} failed with status ${t.status}`)}),t.addEventListener("timeout",()=>{console.warn(`the request to ${t.responseURL} timed out`)})):t.addEventListener("loadend",()=>{e(t.responseText,t)}))}_sendRequest(t,e,s){return this._registerOnLoaded(t,s),t.send(e),t}_getContentType(t,e){return t instanceof FormData&&(e=!1),e}_createPreparedRequest(t,e,s){return this._request=new XMLHttpRequest,this._request.open(t,e),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),s&&this._request.setRequestHeader("Content-type",s),this._request}}},724:(t,e,s)=>{s.d(e,{A:()=>n});var i=s(683);let r="element-loader-backdrop";class n extends i.A{static create(t){t.classList.add("has-element-loader"),n.exists(t)||(n.appendLoader(t),setTimeout(()=>{let e=t.querySelector(`.${r}`);e&&e.classList.add("element-loader-backdrop-open")},1))}static remove(t){t.classList.remove("has-element-loader");let e=t.querySelector(`.${r}`);e&&e.remove()}static exists(t){return t.querySelectorAll(`.${r}`).length>0}static getTemplate(){return`
2        <div class="${r}">
3            <div class="loader" role="status">
4                <span class="visually-hidden">Loading...</span>
5            </div>
6        </div>
7        `}static appendLoader(t){t.insertAdjacentHTML("beforeend",n.getTemplate())}}},683:(t,e,s)=>{s.d(e,{A:()=>n});let i="loader",r={BEFORE:"before",INNER:"inner"};class n{constructor(t,e=r.BEFORE){this.parent=t instanceof Element?t:document.body.querySelector(t),this.position=e}create(){if(!this.exists()){if(this.position===r.INNER){this._previousHTML=this.parent.innerHTML,this.parent.innerHTML=n.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),n.getTemplate())}}remove(){if(this.position===r.INNER){this.parent.innerHTML=this._previousHTML;return}this.parent.querySelectorAll(`.${i}`).forEach(t=>t.remove())}exists(){return this.parent.querySelectorAll(`.${i}`).length>0}_getPosition(){return this.position===r.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return`<div class="${i}" role="status">
8                    <span class="visually-hidden">Loading...</span>
9                </div>`}static SELECTOR_CLASS(){return i}}},352:(t,e,s)=>{s.r(e),s.d(e,{default:()=>a});var i=s(373),r=s(68),n=s(724),o=s(749);class a extends i.A{init(){this.httpClient=new r.A,this.form=this.el.querySelector(this.options.selectors.form),this.cancelButton=this.el.querySelector(this.options.selectors.cancelButton),this.closeButton=this.el.querySelector(this.options.selectors.closeButton),this.nameInput=this.el.querySelector(this.options.selectors.nameInput),this.ajaxContainer=this.el.closest(this.options.selectors.ajaxContainerSelector),this._registerEvents()}_registerEvents(){this.el.addEventListener("hidden.bs.modal",this._resetForm.bind(this)),this.el.addEventListener("shown.bs.modal",this._initialForm.bind(this)),this.form&&(this._resetForm(),this.form.addEventListener("submit",this._onFormSubmit.bind(this))),this.cancelButton&&this.cancelButton.addEventListener("click",this._onCancelButtonClick.bind(this)),this.closeButton&&this.closeButton.addEventListener("click",this._onCancelButtonClick.bind(this))}_onFormSubmit(t){t.preventDefault(),t.stopPropagation();let e=this.nameInput?.value,s=this.form.checkValidity(),i=document.querySelectorAll(this.options.selectors.productItemsSelector),r=this.el.dataset.productId?`div[class*='${this.options.selectors.addProductActionContainer}-${this.el.dataset.productId}']`:this.options.selectors.addProductActionContainer;if(this.addProductActionContainer=document.querySelector(r),this.buyBoxEl=this.el.closest(this.options.selectors.buyBoxSelector),this.productId=this.options.productId||this.el.dataset.productId,this.isDeleteMethod="delete"===this.options.method,!this.isDeleteMethod&&(!1===s||!e?.trim().length)){this.form.classList.add(this.options.selectors.validatedClass);return}this.addProductActionContainer&&this.addProductActionContainer.classList.add("loading"),bootstrap.Modal.getInstance(this.el)&&bootstrap.Modal.getInstance(this.el).hide(),this.ajaxContainer&&n.A.create(this.ajaxContainer);let o={};this.productId&&(o[this.productId]={id:this.productId,quantity:1}),i&&i.length>0&&i.forEach(t=>{let e=t.querySelector("input[type='checkbox']");(!e||e.checked)&&(o[t.dataset.id]={id:t.dataset.id,quantity:parseInt(t.querySelector(this.options.selectors.quantitySelector)?.value??1)})}),this.buyBoxEl&&this.productId&&(o[this.productId]={id:this.productId,quantity:parseInt(this.buyBoxEl.querySelector(this.options.selectors.quantitySelector)?.value??1)});let a={name:e,lineItems:o,forwardTo:this.options.forwardTo??!1};this.isDeleteMethod&&(a={ids:this._isJSONString(this.el.dataset.listId)?this._formatListIds(this.el.dataset.listId):this.el.dataset.listId.split(","),forwardTo:this.options.forwardTo??!1,forwardParameters:{id:this.options.shoppingListId}}),this.httpClient[this.options.method](this.el.dataset.listAction||`${window.router["frontend.account.shopping-list.create"]}`,JSON.stringify(a),t=>{this._modalCallback(t,e)})}_modalCallback(t,e){if(this.addProductActionContainer&&this.addProductActionContainer.classList.remove("loading"),this.options.productId&&document.$emitter.publish("ShoppingList/addDropdownItem",e),this.isDeleteMethod&&this.options.shoppingListId&&!t){window.location.href=window.router["frontend.account.shopping-lists"];return}let s=document.querySelector(this.options.selectors.summaryForm);s&&s.dispatchEvent(new Event("submit",{cancelable:!0})),new DOMParser().parseFromString(t,"text/html").querySelector(this.options.selectors.checkoutProductTable)&&this.options.noReload||window.location.reload(),this.ajaxContainer&&n.A.remove(this.ajaxContainer),t&&(o.A.replaceFromMarkup(t,this.options.selectors.replaceElementSelector,!1),window.PluginManager.initializePlugins()),this.options.elementReplacement&&(this.el.dataset.listAction||this.httpClient.get(window.router["frontend.account.shopping-lists.dropdown"],this._dropdownCallback.bind(this)),o.A.replaceFromMarkup(this.options.elementReplacement,this.options.selectors.replaceElementSelector,!1)),this.el.dataset.productId&&this._animationHandler("added",e)}_dropdownCallback(t){t&&(document.querySelector(this.options.selectors.dropdownContainerSelector).innerHTML=t)}_onCancelButtonClick(){this._resetForm()}_resetForm(){this.form?.classList.remove(this.options.selectors.validatedClass),this.form?.reset(),delete this.el.dataset.listId,delete this.el.dataset.listName,delete this.el.dataset.listAction,delete this.el.dataset.productId}_initialForm(){this.nameInput?.focus(),this.el.dataset.listName&&(this.nameInput.value=this.el.dataset.listName,this.nameInput.placeholder=this.el.dataset.listName)}_isJSONString(t){try{return JSON.parse(t),!0}catch(t){return!1}}_formatListIds(t){return[...new Map(JSON.parse(t)).keys()]}_animationHandler(t,e){let s=document.querySelector(this.options.selectors.shoppingListAddProductLabel);s&&(s.textContent=e),this.addProductActionContainer&&(this.addProductActionContainer.classList.add(t),setTimeout(()=>{this.addProductActionContainer.classList.remove(t)},1e3))}}}}]);

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.