PageSourceSearch

https://www.shop-sks.com/theme/718c31b2424de508adc1e0b87696131e/js…hp-schmied-last-seen-products.js?1790623595

js shop-sks.com collected 2026-10-06 20:08:03 UTC 17,260 bytes, 1 lines download raw bytes

1(()=>{"use strict";var t={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!==r},r="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 s(t,e,r){return t.concat(e).map(function(t){return i(t,r)})}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,r,l){(l=l||{}).arrayMerge=l.arrayMerge||s,l.isMergeableObject=l.isMergeableObject||e,l.cloneUnlessOtherwiseSpecified=i;var c,d,u=Array.isArray(r);return u!==Array.isArray(t)?i(r,l):u?l.arrayMerge(t,r,l):(d={},(c=l).isMergeableObject(t)&&n(t).forEach(function(e){d[e]=i(t[e],c)}),n(r).forEach(function(e){(!o(t,e)||Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))&&(o(t,e)&&c.isMergeableObject(r[e])?d[e]=(function(t,e){if(!e.customMerge)return a;var r=e.customMerge(t);return"function"==typeof r?r:a})(e,c)(t[e],r[e],c):d[e]=i(r[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,r){return a(t,r,e)},{})},t.exports=a}},e={};function r(i){var s=e[i];if(void 0!==s)return s.exports;var n=e[i]={exports:{}};return t[i](n,n.exports,r),n.exports}(()=>{r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e}})(),(()=>{r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})}})(),(()=>{r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)})(),(()=>{var t=r(857),e=r.n(t);class i{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 r=i.toUpperCamelCase(t,e);return i.lcFirst(r)}static toUpperCamelCase(t,e){return e?t.split(e).map(t=>i.ucFirst(t.toLowerCase())).join(""):i.ucFirst(t.toLowerCase())}static parsePrimitive(t){try{return/^\d+(.|,)\d+$/.test(t)&&(t=t.replace(",",".")),JSON.parse(t)}catch(e){return t.toString()}}}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 r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(r&&!1===s.hasAttribute(t,e))throw Error('The required property "'.concat(e,'" does not exist!'));if("function"!=typeof t.getAttribute){if(r)throw Error("This node doesn't support the getAttribute function!");return}return t.getAttribute(e)}static getDataAttribute(t,e){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=e.replace(/^data(|-)/,""),o=i.toLowerCamelCase(n,"-");if(!s.isNode(t)){if(r)throw Error("The passed node is not a valid HTML Node!");return}if(void 0===t.dataset){if(r)throw Error("This node doesn't support the dataset attribute!");return}let a=t.dataset[o];if(void 0===a){if(r)throw Error('The required data attribute "'.concat(e,'" does not exist on ').concat(t,"!"));return a}return i.parsePrimitive(a)}static querySelector(t,e){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(r&&!s.isNode(t))throw Error("The parent node is not a valid HTML Node!");let i=t.querySelector(e)||!1;if(r&&!1===i)throw Error('The required element "'.concat(e,'" does not exist in parent node!'));return i}static querySelectorAll(t,e){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(r&&!s.isNode(t))throw Error("The parent node is not a valid HTML Node!");let i=t.querySelectorAll(e);if(0===i.length&&(i=!1),r&&!1===i)throw Error('At least one item of "'.concat(e,'" must exist in parent node!'));return i}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]}}class n{publish(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=new CustomEvent(t,{detail:e,cancelable:r});return this.el.dispatchEvent(i),i}subscribe(t,e){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this,s=t.split("."),n=r.scope?e.bind(r.scope):e;if(r.once&&!0===r.once){let e=n;n=function(r){i.unsubscribe(t),e(r)}}return this.el.addEventListener(s[0],n),this.listeners.push({splitEventName:s,opts:r,cb:n}),!0}unsubscribe(t){let e=t.split(".");return this.listeners=this.listeners.reduce((t,r)=>([...r.splitEventName].sort().toString()===e.sort().toString()?this.el.removeEventListener(r.splitEventName[0],r.cb):t.push(r),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 o{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 r=i.toDashCase(this._pluginName),n=s.getDataAttribute(this.el,"data-".concat(r,"-config"),!1),o=s.getAttribute(this.el,"data-".concat(r,"-options"),!1),a=[this.constructor.options,this.options,t];n&&a.push(window.PluginConfigManager.get(this._pluginName,n));try{o&&a.push(JSON.parse(o))}catch(t){throw console.error(this.el),Error('The data attribute "data-'.concat(r,'-options" could not be parsed to json: ').concat(t.message))}return e().all(a.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={},r=!1){if(!s.isNode(t))throw Error("There is no valid element given.");this.el=t,this.$emitter=new n(this.el),this._pluginName=this._getPluginName(r),this.options=this._mergeOptions(e),this._initialized=!1,this._registerInstance(),this._init()}}class a{get(t,e){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",i=this._createPreparedRequest("GET",t,r);return this._sendRequest(i,null,e)}post(t,e,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(e,i);let s=this._createPreparedRequest("POST",t,i);return this._sendRequest(s,e,r)}delete(t,e,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(e,i);let s=this._createPreparedRequest("DELETE",t,i);return this._sendRequest(s,e,r)}patch(t,e,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(e,i);let s=this._createPreparedRequest("PATCH",t,i);return this._sendRequest(s,e,r)}
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,r){return this._registerOnLoaded(t,r),t.send(e),t}_getContentType(t,e){return t instanceof FormData&&(e=!1),e}_createPreparedRequest(t,e,r){return this._request=new XMLHttpRequest,this._request.open(t,e),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),r&&this._request.setRequestHeader("Content-type",r),this._request}constructor(){this._request=null,this._errorHandlingInternal=!1}}class l{static debounce(t,e){let r,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(){for(var s=arguments.length,n=Array(s),o=0;o<s;o++)n[o]=arguments[o];i&&!r&&setTimeout(t.bind(t,...n),0),clearTimeout(r),r=setTimeout(t.bind(t,...n),e)}}}class c{_registerEvents(){window.addEventListener("DOMContentLoaded",this._onDOMContentLoaded.bind(this)),window.addEventListener("resize",l.debounce(this._onResize.bind(this),200),{capture:!0,passive:!0})}_onDOMContentLoaded(){this._dispatchEvents()}_onResize(){this._viewportHasChanged(c.getCurrentViewport())&&(this._dispatchEvents(),this._dispatchViewportEvent("Viewport/hasChanged"))}_dispatchEvents(){c.isXS()?this._dispatchViewportEvent("Viewport/isXS"):c.isSM()?this._dispatchViewportEvent("Viewport/isSM"):c.isMD()?this._dispatchViewportEvent("Viewport/isMD"):c.isLG()?this._dispatchViewportEvent("Viewport/isLG"):c.isXL()?this._dispatchViewportEvent("Viewport/isXL"):c.isXXL()&&this._dispatchViewportEvent("Viewport/isXXL")}_viewportHasChanged(t){let e=t!==this.currentViewport;return e&&(this.previousViewport=this.currentViewport,this.currentViewport=t),e}_dispatchViewportEvent(t){document.$emitter.publish(t,{previousViewport:this.previousViewport})}static isXS(){return"XS"===c.getCurrentViewport()}static isSM(){return"SM"===c.getCurrentViewport()}static isMD(){return"MD"===c.getCurrentViewport()}static isLG(){return"LG"===c.getCurrentViewport()}static isXL(){return"XL"===c.getCurrentViewport()}static isXXL(){return"XXL"===c.getCurrentViewport()}static getCurrentViewport(){return window.getComputedStyle(document.documentElement).getPropertyValue("--sw-current-breakpoint").replace(/['"]+/g,"").toUpperCase()}constructor(){this.previousViewport=null,this.currentViewport=c.getCurrentViewport(),this._registerEvents()}}class d{static iterate(t,e){if(t instanceof Map||Array.isArray(t))return t.forEach(e);if(t instanceof FormData){for(var r of t.entries())e(r[1],r[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(r=>{e(t[r],r)});throw Error("The element type ".concat(typeof t," is not iterable!"))}}class u{static getViewportSettings(t,r){let i=Object.assign({},t),s=t.responsive;delete i.responsive;let n=s[window.breakpoints[r.toLowerCase()]];return n?e()(i,n):i}static prepareBreakpointPxValues(t){return d.iterate(t.responsive,(e,r)=>{let i=window.breakpoints[r.toLowerCase()];t.responsive[i]=e,delete t.responsive[r]}),t}}let h="loader",p={BEFORE:"before",INNER:"inner"};class g{create(){if(!this.exists()){if(this.position===p.INNER){this.parent.innerHTML=g.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),g.getTemplate())}}remove(){let t=this.parent.querySelectorAll(".".concat(h));d.iterate(t,t=>t.remove())}exists(){return this.parent.querySelectorAll(".".concat(h)).length>0}_getPosition(){return this.position===p.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return'<div class="'.concat(h,'" role="status">
1\n                    <span class="').concat("visually-hidden",'">Loading...</span>\n                </div>')}static SELECTOR_CLASS(){return h}constructor(t,e=p.BEFORE){this.parent=t instanceof Element?t:document.body.querySelector(t),this.position=e}}let b="element-loader-backdrop";class _ extends g{static create(t){t.classList.add("has-element-loader"),_.exists(t)||(_.appendLoader(t),setTimeout(()=>{let e=t.querySelector(".".concat(b));e&&e.classList.add("element-loader-backdrop-open")},1))}static remove(t){t.classList.remove("has-element-loader");let e=t.querySelector(".".concat(b));e&&e.remove()}static exists(t){return t.querySelectorAll(".".concat(b)).length>0}static getTemplate(){return'\n        <div class="'.concat(b,'">\n            <div class="loader" role="status">\n                <span class="').concat("visually-hidden",'">Loading...</span>\n            </div>\n        </div>\n        ')}static appendLoader(t){t.insertAdjacentHTML("beforeend",_.getTemplate())}}class w extends o{init(){this._client=new a,this._fetchLastSeenProductUrl=window.lastSeenProductsFetchRoute,this._currentProductId=window.lastSeenProductId,this.fetch()}fetch(){let t=this,e=s.querySelector(this.el,this.options.containerSelector);_.create(t.el),this._client.get(this._fetchLastSeenProductUrl+"?cms&productId="+this._currentProductId,r=>{if(_.remove(t.el),""===r){this.el.remove();return}e.innerHTML=r,this._sliderInstance=window.PluginManager.getPluginInstanceFromElement(this.el,"BaseSlider"),this._rebuildSlider(),this._registerEvents(),this.el.classList.remove("is-loading"),this.$emitter.publish("fetch",{response:r})})}_registerEvents(){document.addEventListener("Viewport/hasChanged",()=>{this._rebuildSlider()})}_rebuildSlider(){let t=c.getCurrentViewport();this._sliderInstance._sliderSettings=u.getViewportSettings(this.options.slider,t.toLowerCase()),this._sliderInstance._sliderSettings.items=this._getSlideItems(),this._sliderInstance.destroy(),this._sliderInstance._initSlider()}_getSlideItems(){let t=this._getInnerWidth();return Math.max(1,Math.floor(t/(parseInt(this.options.productboxMinWidth.replace("px",""),0)+this.options.gutter)))}_getInnerWidth(){let t=getComputedStyle(this.el);if(t)return this.el.clientWidth-(parseFloat(t.paddingLeft)+parseFloat(t.paddingRight))}}w.options={initializedCls:"js-slider-initialized",containerSelector:"[data-base-slider-container=true]",controlsSelector:"[data-base-slider-controls=true]",url:"",productboxMinWidth:"300px",gutter:10,slider:{enabled:!0,responsive:{xs:{},sm:{},md:{},lg:{},xl:{},...Feature.isActive("V6_5_0_0")&&{xxl:{}}}}};class f extends o{init(){this._client=new a,this._addLastSeenProductUrl=window.lastSeenProductAddRoute,this._registerEvents()}_registerEvents(){if(!window.lastSeenProductId){console.error("window.lastSeenProductId is missing..");return}let t=JSON.stringify({productId:window.lastSeenProductId});this._client.post(this._addLastSeenProductUrl,t)}}f.options={};class m extends o{init(){this._client=new a,this._fetchLastSeenProductUrl=window.lastSeenProductsFetchRoute,this._currentProductId=window.lastSeenProductId,this._active=this.el.getAttribute(" data-tab-active"),this.el.classList.contains("last-seen-header")&&this.fetchHeader(),this.el.classList.contains("last-seen-tab")&&this.fetch()}fetchHeader(){this._client.get(this._fetchLastSeenProductUrl+"?tab=1&active="+(null!==this._active?1:0)+"&header=1&productId="+this._currentProductId,t=>{this.el.innerHTML=t,""!==t&&this._registerEvents()})}fetch(){_.create(this.el),this._client.get(this._fetchLastSeenProductUrl+"?tab=1&productId="+this._currentProductId,t=>{this.handleData(t)})}handleData(t){this.el.innerHTML=t,_.remove(this.el),PluginManager.initializePlugin("ProductSlider",".product-slider")}_registerEvents(){s.querySelectorAll(this.el,this.options.tabSelector).forEach(t=>{t.addEventListener("shown.bs.tab",this._rebuildCrossSellingSlider.bind(this))})}_rebuildCrossSellingSlider(t){if(!t.target.hasAttribute("id"))return;let e=t.target.id,r=s.querySelector(document,"#".concat(e,"-pane")),i=s.querySelector(r,this.options.productSliderSelector,!1);!1!==i&&window.PluginManager.getPluginInstanceFromElement(i,"ProductSlider").rebuild(c.getCurrentViewport(),!0)}}m.options={tabSelector:'a[data-bs-toggle="tab"]',productSliderSelector:'[data-product-slider="true"]'};let v=window.PluginManager;v.register("LastSeenProducts",class extends o{init(){this._client=new a,this._fetchLastSeenProductUrl=window.lastSeenProductsFetchRoute,this._currentProductId=window.lastSeenProductId,this._onlyCms=this.el.getAttribute("data-only-cms"),"0"===this._onlyCms&&this.fetch()}fetch(){_.create(this.el),this._client.get(this._fetchLastSeenProductUrl+"?productId="+this._currentProductId,t=>{this.handleData(t)})}handleData(t){this.el.innerHTML=t,_.remove(this.el),PluginManager.initializePlugin("ProductSlider",".product-slider")}},"[data-last-seen-products]"),v.register("LastSeenProductsTab",m,"[data-last-seen-products-tab]"),v.register("LastSeenProductsTabHeader",m,"[data-last-seen-products-header]"),v.register("AddLastSeenProduct",f,".is-ctl-product.is-act-index"),v.register("LastSeenProductSlider",w,"[data-last-seen-product-slider]")})()})();

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.