PageSourceSearch

https://www.satking.de/theme/a5d4e7138b1c228e0e02704db3d3e1b0/js/q…/quick-order.list-item.plugin.679ce1.js

js satking.de collected 2026-10-02 18:21:45 UTC 19,827 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[65768],{857: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!==i},i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(t,e){return!1!==e.clone&&e.isMergeableObject(t)?o(Array.isArray(t)?[]:{},t,e):t}function s(t,e,i){return t.concat(e).map(function(t){return r(t,i)})}function n(t){return Object.keys(t).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[])}function a(t,e){try{return e in t}catch(t){return!1}}function o(t,i,l){(l=l||{}).arrayMerge=l.arrayMerge||s,l.isMergeableObject=l.isMergeableObject||e,l.cloneUnlessOtherwiseSpecified=r;var c,u,d=Array.isArray(i);return d!==Array.isArray(t)?r(i,l):d?l.arrayMerge(t,i,l):(u={},(c=l).isMergeableObject(t)&&n(t).forEach(function(e){u[e]=r(t[e],c)}),n(i).forEach(function(e){(!a(t,e)||Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))&&(a(t,e)&&c.isMergeableObject(i[e])?u[e]=(function(t,e){if(!e.customMerge)return o;var i=e.customMerge(t);return"function"==typeof i?i:o})(e,c)(t[e],i[e],c):u[e]=r(i[e],c))}),u)}o.all=function(t,e){if(!Array.isArray(t))throw Error("first argument should be an array");return t.reduce(function(t,i){return o(t,i,e)},{})},t.exports=o},768:(t,e,i)=>{i.r(e),i.d(e,{default:()=>p});var r=i(293);class s{static debounce(t,e){let i,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(){for(var s=arguments.length,n=Array(s),a=0;a<s;a++)n[a]=arguments[a];r&&!i&&setTimeout(t.bind(t,...n),0),clearTimeout(i),i=setTimeout(t.bind(t,...n),e)}}}var n=i(107),a=i(363),o=i(266),l=i(49);let c="is-active";class u{resetIterator(){this._iterator=-1}_registerEvents(){this._element.addEventListener("keydown",this._onKeyDown.bind(this))}_onKeyDown(t){let e=l.Z.querySelector(document,this._parentSelector,!1);if(e&&(this._items=e.querySelectorAll(this._itemSelector),0!==this._items.length)){switch(t.key){case"Enter":this._onPressEnter(t);return;case"ArrowDown":t.preventDefault(),this._iterator++;break;case"ArrowUp":t.preventDefault(),this._iterator--;break;default:return}this._clampIterator(),o.Z.iterate(this._items,t=>t.classList.remove(c)),this._getCurrentSelection().classList.add(c)}}_onPressEnter(t){if(!(this._iterator<=-1))try{let e=l.Z.querySelector(this._getCurrentSelection(),"a");t.preventDefault(),e.click()}catch(t){}}_getCurrentSelection(){return this._items[this._iterator]}_clampIterator(){let t=this._getMaxItemCount();this._iterator<0&&(this._iterator=this._infinite?t:0),this._iterator>t&&(this._iterator=this._infinite?0:t)}_getMaxItemCount(){return this._items.length-1}constructor(t,e,i,r=!0){this._element=t,this._parentSelector=e,this._infinite=r,this._itemSelector=i,this.resetIterator(),this._registerEvents()}}let d="is-active";class h extends u{_onPressEnter(t){if(!(this._iterator<=-1))try{let e=this._getCurrentSelection();t.preventDefault(),e.click()}catch(t){}}_onKeyDown(t){let e=l.Z.querySelector(document,this._parentSelector,!1);if(!e||(this._items=e.querySelectorAll(this._itemSelector),0===this._items.length))return;let i=this._getCurrentSelection();switch(t.key){case"Enter":this._onPressEnter(t);return;case"Tab":case"ArrowDown":t.preventDefault(),this._iterator++;break;case"ArrowUp":if(t.preventDefault(),this._iterator--,e.scrollHeight>e.clientHeight&&0===e.scrollTop&&(null==i?void 0:i.offsetTop)===8)return;break;default:return}this._clampIterator(),o.Z.iterate(this._items,t=>t.classList.remove(d)),this._getCurrentSelection().classList.add(d),(i=this._getCurrentSelection()).focus(),("ArrowDown"===t.key||"Tab"===t.key)&&(e.scrollTop=i.offsetTop-e.offsetTop),"ArrowUp"===t.key&&(e.scrollTop=e.scrollTop-i.clientHeight)}}class p extends r.Z{init(){this._client=new n.Z,this._selectedItem=null,this._buttonRemove=this.el.querySelector(this.options.removeItemButton),this._inputProductField=this.el.querySelector(this.options.itemNameInput),this._inputQuantityField=this.el.querySelector(".".concat(this.options.itemQuantityInputClassName)),this._initializeData(),this._getBaseQuickOrder(),this._registerEvents()}_initializeData(){var t,e,i;if(!((t=this._inputProductField)===null||void 0===t?void 0:t.textContent))return;let r=(i=this._inputProductField)===null||void 0===i?void 0:(e=i.textContent)===null||void 0===e?void 0:e.split(" - ");this._selectedItem={},this._selectedItem.productNumber=r[0],this._selectedItem.name=r[1],this._selectedItem.id=this.el.getAttribute("data-id"),this._handleLimitationQuantity(this._inputQuantityField)}_registerEvents(){this._navigationHelper=new h(this._inputProductField,".".concat(this.options.searchResultListClassName),".".concat(this.options.searchResultItemClassName),!0),this._inputProductField.addEventListener("input",s.debounce(this._handleProductFieldChange.bind(this),this.options.searchWidgetDelay),{capture:!0,passive:!0}),this._buttonRemove.addEventListener("click",this._handleRemoveItem.bind(this),!1),this.el.addEventListener("change",this._handleQuantityChange.bind(this)),document.body.addEventListener("click",this._onBackgroun
1dClick.bind(this))}_handleProductFieldChange(t){let e=t.target.textContent.trim();e&&(this.$emitter.publish("beforeSearch"),this._handleSearchProduct(e,1))}_handleSearchProduct(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.el.querySelector(this.options.itemNameContainer),s=this.options.searchProductUrl+"?search="+encodeURIComponent(t);i||this._clearSuggestResults(),s="".concat(s,"&page=").concat(e);let n=this.el.querySelector(this.options.itemLoader),o=new a.Z(n);o.create(),this._client.abort(),this._client.get(s,e=>{if(!e)return;o.remove();let i=JSON.parse(e),s=i.elements,n=r.querySelector("ul");n||((n=document.createElement("ul")).classList.add(this.options.searchResultListClassName),r.appendChild(n)),n.addEventListener("scroll",this._handleOnScroll.bind(this,i,t)),0===s.length?this._renderEmptyResult(r,n):(this._renderResultItem(s,n,t),this._registerEventSelectElement()),this.$emitter.publish("afterSuggest")})}_renderEmptyResult(t,e){if(t.getElementsByTagName("li").length>1)return;let i='\n                <li class="no-product">'.concat(this.options.noProductFoundSnippet,"</li>\n            ");e.insertAdjacentHTML("beforeend",i)}_renderResultItem(t,e,i){t.forEach(t=>{let r=t.options,s=t.translated.name,n=t.productNumber,a=RegExp(i,"i");if(r.length>0){let t=r.map(t=>{var e,i,r;return"".concat(null==t?void 0:(i=t.group)===null||void 0===i?void 0:(e=i.translated)===null||void 0===e?void 0:e.name,": ").concat(null==t?void 0:(r=t.translated)===null||void 0===r?void 0:r.name)}).join(" | ");s+=" (".concat(t,")")}a.test(s)&&(s=s.replace(a,'<span class="item-search-highlight">$&</span>')),a.test(n)&&(n=n.replace(a,'<span class="item-search-highlight">$&</span>'));let o='\n                <li class="'.concat(this.options.searchResultItemClassName,'"\n                    data-min="').concat(t.minPurchase,'"\n                    data-step="').concat(t.purchaseSteps,'"\n                    data-id="').concat(t.id,'"\n                    data-max="').concat(t.calculatedMaxPurchase,'"\n                    tabindex="0"\n                ><strong>').concat(n,"</strong> - ").concat(s,"</li>\n            ");e.insertAdjacentHTML("beforeend",o)})}_handleOnScroll(t,e,i){let r=i.target;r.scrollTop+r.clientHeight===r.scrollHeight&&r.getElementsByTagName("li").length!==t.total&&this._handleSearchProduct(e,t.page+1,!0)}_registerEventSelectElement(){let t=document.querySelectorAll(".".concat(this.options.searchResultItemClassName));o.Z.iterate(t,t=>{t.addEventListener("click",this._handleClickSelectElement.bind(this)),t.addEventListener("keydown",this._handleClickSelectElement.bind(this))})}_clearSuggestResults(){this._navigationHelper.resetIterator();let t=document.querySelectorAll(".".concat(this.options.searchResultListClassName));o.Z.iterate(t,t=>{t.removeEventListener("scroll",this._handleOnScroll.bind(this)),t.remove()}),this.$emitter.publish("clearSuggestResults")}_handleRemoveItem(){this._removeProduct(this._selectedItem.id)}_onBackgroundClick(t){t.target.closest(".".concat(this.options.searchResultListClassName))||(this._clearSuggestResults(),this.$emitter.publish("onBackgroundClick"))}_handleClickSelectElement(t){if("keydown"===t.type&&"Enter"!==t.key)return;let{searchResultItemClassName:e}=this.options,i=t.target.closest(".".concat(e));if(this._clearSuggestResults(),this._selectedItem){let t={...this._selectedItem};this._updateSelectedItem(i),this._updateProduct({...this._selectedItem,oldId:t.id})}else this._selectedItem={},this._updateSelectedItem(i),this._addNewProduct(this._selectedItem)}_updateSelectedItem(t){this._updateQuantityInput(t),this._selectedItem.id=t.attributes["data-id"].value;let e=t.textContent.split(" - ");this._selectedItem.productNumber=e[0],this._selectedItem.name=e[1]}_updateQuantityInput(t){if(t.hasAttribute("data-min")){var e;let i=t.getAttribute("data-min");this._inputQuantityField.setAttribute("min",i),this._selectedItem.minPurchase=parseInt(i,10),this._inputQuantityField.value=(e=this._inputQuantityField.value)!==null&&void 0!==e?e:i}if(t.hasAttribute("data-step")){let e=t.getAttribute("data-step");this._inputQuantityField.setAttribute("step",e),this._selectedItem.purchaseSteps=parseInt(e,10)}if(t.hasAttribute("data-max")){let e=t.getAttribute("data-max");this._inputQuantityField.setAttribute("max",e),this._selectedItem.calculatedMaxPurchase=parseInt(e,10)}this._handleLimitationQuantity(this._inputQuantityField)}_handleQuantityChange(t){let e=t.target;e.classList.contains(this.options.itemQuantityInputClassName)&&(this._handleLimitationQuantity(e),this._updateProduct(this._selectedItem))}_handleLimitationQuantity(t){let e=parseInt(t.value),i=parseInt(t.getAttribute("min")),r=parseInt(t.getAttribute("max"));t.nextElementSibling.removeAttribute("disabled"),t.previousElementSibling.removeAttribute("disabled"),t.nextElementSibling.tabIndex=0,t.previousElementSibling.tabIndex=0,e>=r&&(t.value=r,t.nextElementSibling.setAttribute("disabled","disabled"),t.nextElementSibling.tabIndex=-1),e<=i&&(t.value=i,t.previousElementSibling.setAttribute("disabled","disabled"),t.previousElementSibling.tabIndex=-1),this._selectedItem.quantity=parseInt(t.value)}_addNewProduct(t){this._baseQuickOrder.addProduct(t)}_updateProduct(t){this._baseQuickOrder.updateProduct(t)}_removeProduct(t){this._baseQuickOrder.removeProduct(t)}_getBaseQuickOrder(){this._baseQuickOrder=window.PluginManager.getPluginInstanceFromElement(document.querySelector('[data-b2b-base-quick-order="true"]'),"B2bBaseQuickOrder")}}p.options={itemNameInput:".input-product-name",searchResultListClassName:"js-quick-order-result",searchResultItemClassName:"js-quick-order-result-item",removeItemButton:".quick-order-remove-button",itemNameContainer:".quick-order-item-name",itemQuantityInputClassName:"input-product-quantity",itemLoader:".quick-order-item-loader",searchWidgetDelay:250}},49:(t,e,i)=>{i.d(e,{Z:()=>s});var r=i(140);class s{static isNode(t){return"object"==typeof t&&null!==t&&(t===document||t===window||t instanceof Node)}static hasAttribute(t,e){if(!s.isNode(t))throw Error("The element must be a valid HTML Node!");return"function"==typeof t.hasAttribute&&t.hasAttribute(e)}static getAttribute(t,e){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(i&&!1===s.hasAttribute(t,e))throw Error('The required property "'.concat(e,'" does not exist!'));if("function"!=typeof t.getAttribute){if(i)throw Error("This node doesn't support the getAttribute function!");return}return t.getAttribute(e)}static getDataAttribute(t,e){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=e.replace(/^data(|-)/,""),a=r.Z.toLowerCamelCase(n,"-");if(!s.isNode(t)){if(i)throw Error("The passed node is not a valid HTML Node!");return}if(void 0===t.dataset){if(i)throw Error("This node doesn't support the dataset attribute!");return}let o=t.dataset[a];if(void 0===o){if(i)throw Error('The required data attribute "'.concat(e,'" does not exist on ').concat(t,"!"));return o}return r.Z.parsePrimitive(o)}static querySelector(t,e){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(i&&!s.isNode(t))throw Error("The parent node is not a valid HTML Node!");let r=t.querySelector(e)||!1;if(i&&!1===r)throw Error('The required element "'.concat(e,'" does not exist in parent node!'));return r}static querySelectorAll(t,e){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(i&&!s.isNode(t))throw Error("The parent node is not a valid HTML Node!");let r=t.querySelectorAll(e);if(0===r.length&&(r=!1),i&&!1===r)throw Error('At least one item of "'.concat(e,'" must exist in parent node!'));return r}static getFocusableElements(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return t.querySelectorAll('\n            input:not([tabindex^="-"]):not([disabled]):not([type="hidden"]),\n            select:not([tabindex^="-"]):not([disabled]),\n            textarea:not([tabindex^="-"]):not([disabled]),\n            button:not([tabindex^="-"]):not([disabled]),\n            a[href]:not([tabindex^="-"]):not([disabled]),\n            [tabindex]:not
1([tabindex^="-"]):not([disabled])\n        ')}static getFirstFocusableElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return this.getFocusableElements(t)[0]}static getLastFocusableElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,e=this.getFocusableElements(t);return e[e.length-1]}}},266:(t,e,i)=>{i.d(e,{Z:()=>r});class r{static iterate(t,e){if(t instanceof Map||Array.isArray(t))return t.forEach(e);if(t instanceof FormData){for(var i of t.entries())e(i[1],i[0]);return}if(t instanceof NodeList)return t.forEach(e);if(t instanceof HTMLCollection)return Array.from(t).forEach(e);if(t instanceof Object)return Object.keys(t).forEach(i=>{e(t[i],i)});throw Error("The element type ".concat(typeof t," is not iterable!"))}}},140:(t,e,i)=>{i.d(e,{Z:()=>r});class r{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 i=r.toUpperCamelCase(t,e);return r.lcFirst(i)}static toUpperCamelCase(t,e){return e?t.split(e).map(t=>r.ucFirst(t.toLowerCase())).join(""):r.ucFirst(t.toLowerCase())}static parsePrimitive(t){try{return/^\d+(.|,)\d+$/.test(t)&&(t=t.replace(",",".")),JSON.parse(t)}catch(e){return t.toString()}}}},293:(t,e,i)=>{i.d(e,{Z:()=>l});var r=i(857),s=i.n(r),n=i(49),a=i(140);class o{publish(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=new CustomEvent(t,{detail:e,cancelable:i});return this.el.dispatchEvent(r),r}subscribe(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this,s=t.split("."),n=i.scope?e.bind(i.scope):e;if(i.once&&!0===i.once){let e=n;n=function(i){r.unsubscribe(t),e(i)}}return this.el.addEventListener(s[0],n),this.listeners.push({splitEventName:s,opts:i,cb:n}),!0}unsubscribe(t){let e=t.split(".");return this.listeners=this.listeners.reduce((t,i)=>([...i.splitEventName].sort().toString()===e.sort().toString()?this.el.removeEventListener(i.splitEventName[0],i.cb):t.push(i),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}constructor(t=document){this._el=t,t.$emitter=this,this._listeners=[]}}class l{init(){throw Error('The "init" method for the plugin "'.concat(this._pluginName,'" is not defined.'))}update(){}_init(){this._initialized||(this.init(),this._initialized=!0)}_update(){this._initialized&&this.update()}_mergeOptions(t){let e=a.Z.toDashCase(this._pluginName),i=n.Z.getDataAttribute(this.el,"data-".concat(e,"-config"),!1),r=n.Z.getAttribute(this.el,"data-".concat(e,"-options"),!1),o=[this.constructor.options,this.options,t];i&&o.push(window.PluginConfigManager.get(this._pluginName,i));try{r&&o.push(JSON.parse(r))}catch(t){throw console.error(this.el),Error('The data attribute "data-'.concat(e,'-options" could not be parsed to json: ').concat(t.message))}return s().all(o.filter(t=>t instanceof Object&&!(t instanceof Array)).map(t=>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}constructor(t,e={},i=!1){if(!n.Z.isNode(t))throw Error("There is no valid element given.");this.el=t,this.$emitter=new o(this.el),this._pluginName=this._getPluginName(i),this.options=this._mergeOptions(e),this._initialized=!1,this._registerInstance(),this._init()}}},107:(t,e,i)=>{i.d(e,{Z:()=>r});class r{get(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",r=this._createPreparedRequest("GET",t,i);return this._sendRequest(r,null,e)}post(t,e,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";r=this._getContentType(e,r);let s=this._createPreparedRequest("POST",t,r);return this._sendRequest(s,e,i)}delete(t,e,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";r=this._getContentType(e,r);let s=this._createPreparedRequest("DELETE",t,r);return this._sendRequest(s,e,i)}patch(t,e,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";r=this._getContentType(e,r);let s=this._createPreparedRequest("PATCH",t,r);return this._sendRequest(s,e,i)}
1abort(){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 ".concat(t.responseURL," was aborted"))}),t.addEventListener("error",()=>{console.warn("the request to ".concat(t.responseURL," failed with status ").concat(t.status))}),t.addEventListener("timeout",()=>{console.warn("the request to ".concat(t.responseURL," timed out"))})):t.addEventListener("loadend",()=>{e(t.responseText,t)}))}_sendRequest(t,e,i){return this._registerOnLoaded(t,i),t.send(e),t}_getContentType(t,e){return t instanceof FormData&&(e=!1),e}_createPreparedRequest(t,e,i){return this._request=new XMLHttpRequest,this._request.open(t,e),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),i&&this._request.setRequestHeader("Content-type",i),this._request}constructor(){this._request=null,this._errorHandlingInternal=!1}}},363:(t,e,i)=>{i.d(e,{Z:()=>a});var r=i(266);let s="loader",n={BEFORE:"before",INNER:"inner"};class a{create(){if(!this.exists()){if(this.position===n.INNER){this.parent.innerHTML=a.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),a.getTemplate())}}remove(){let t=this.parent.querySelectorAll(".".concat(s));r.Z.iterate(t,t=>t.remove())}exists(){return this.parent.querySelectorAll(".".concat(s)).length>0}_getPosition(){return this.position===n.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return'<div class="'.concat(s,'" role="status">\n                    <span class="').concat("visually-hidden",'">Loading...</span>\n                </div>')}static SELECTOR_CLASS(){return s}constructor(t,e=n.BEFORE){this.parent=t instanceof Element?t:document.body.querySelector(t),this.position=e}}}}]);

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.