1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[17442],{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!==i},i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(t,e){return!1!==e.clone&&e.isMergeableObject(t)?a(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 o(t,e){try{return e in t}catch(t){return!1}}function a(t,i,h){(h=h||{}).arrayMerge=h.arrayMerge||s,h.isMergeableObject=h.isMergeableObject||e,h.cloneUnlessOtherwiseSpecified=r;var c,u,l=Array.isArray(i);return l!==Array.isArray(t)?r(i,h):l?h.arrayMerge(t,i,h):(u={},(c=h).isMergeableObject(t)&&n(t).forEach(function(e){u[e]=r(t[e],c)}),n(i).forEach(function(e){(!o(t,e)||Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))&&(o(t,e)&&c.isMergeableObject(i[e])?u[e]=(function(t,e){if(!e.customMerge)return a;var i=e.customMerge(t);return"function"==typeof i?i:a})(e,c)(t[e],i[e],c):u[e]=r(i[e],c))}),u)}a.all=function(t,e){if(!Array.isArray(t))throw Error("first argument should be an array");return t.reduce(function(t,i){return a(t,i,e)},{})},t.exports=a},442:(t,e,i)=>{i.r(e),i.d(e,{default:()=>o});var r=i(220),s=i(795),n=i(640);class o extends r.A{static #t=this.options={imageFirst:".image-first",imageSecond:".image-second",infoWrapper:".info-hover",variantWrapper:".product-info-variants",productVideo:".product-video"};init(){this._isInAllowedViewports()&&(this.touchstartX=0,this.touchendX=0,this.minimalDistance=120,this.imageFirst=s.A.querySelector(this.el,this.options.imageFirst,!1),this.imageFirst||(this.productVideo=s.A.querySelector(this.el,this.options.productVideo,!1)),this.imageSecond=s.A.querySelector(this.el,this.options.imageSecond,!1),this.infoWrapper=s.A.querySelector(this.el.parentNode,this.options.infoWrapper,!1),this.variantWrapper=s.A.querySelector(this.el.parentNode,this.options.variantWrapper,!1),n.A.isXS()&&(this.minimalDistance=60),this._registerEvents())}_registerEvents(){this._addTouchListeners(this.imageFirst),this._addTouchListeners(this.imageSecond),this._addTouchListeners(this.productVideo)}_addTouchListeners(t){t&&(t.addEventListener("touchstart",t=>{this.touchstartX=t.changedTouches[0].screenX}),t.addEventListener("touchend",t=>{this.touchendX=t.changedTouches[0].screenX,this._checkDirection()}))}_isInAllowedViewports(){return n.A.isXS()||n.A.isSM()||n.A.isMD()}_checkDirection(){this.touchendX<this.touchstartX&&this.touchstartX-this.touchendX>this.minimalDistance&&this._showSecondContent(),this.touchendX>this.touchstartX&&this.touchendX-this.touchstartX>this.minimalDistance&&this._showFirstContent()}_showFirstContent(){this.imageSecond&&!this.productVideo&&(this.imageFirst.style.display="block",this.imageSecond.style.display="none"),this.infoWrapper&&(this.infoWrapper.style.display="block",this.variantWrapper.style.display="none")}_showSecondContent(){this.imageSecond&&!this.productVideo&&(this.imageFirst.style.display="none",this.imageSecond.style.display="block"),this.infoWrapper&&(this.infoWrapper.style.display="none",this.variantWrapper.style.display="block")}}},59:(t,e,i)=>{i.d(e,{A:()=>r});class r{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),o=0;o<s;o++)n[o]=arguments[o];r&&!i&&setTimeout(t.bind(t,...n),0),clearTimeout(i),i=setTimeout(t.bind(t,...n),e)}}}},795:(t,e,i)=>{i.d(e,{A:()=>s});var r=i(707);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 "${e}" does not exist!`);
1if("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(|-)/,""),o=r.A.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 a=t.dataset[o];if(void 0===a){if(i)throw Error(`The required data attribute "${e}" does not exist on ${t}!`);return a}return r.A.parsePrimitive(a)}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 "${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 "${e}" must exist in parent node!`);return r}static getFocusableElements(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body,e=` 2 input:not([tabindex^="-"]):not([disabled]):not([type="hidden"]), 3 select:not([tabindex^="-"]):not([disabled]), 4 textarea:not([tabindex^="-"]):not([disabled]), 5 button:not([tabindex^="-"]):not([disabled]), 6 a[href]:not([tabindex^="-"]):not([disabled]), 7 [tabindex]:not([tabindex^="-"]):not([disabled]) 8 `;return t.querySelectorAll(e)}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]}}},308:(t,e,i)=>{i.d(e,{A:()=>r});class r{constructor(t=document){this._el=t,t.$emitter=this,this._listeners=[]}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}}},707:(t,e,i)=>{i.d(e,{A:()=>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()}}}},640:(t,e,i)=>{i.d(e,{A:()=>s});var r=i(59);class s{constructor(){this.previousViewport=null,this.currentViewport=s.getCurrentViewport(),this._registerEvents()}_registerEvents(){window.addEventListener("DOMContentLoaded",this._onDOMContentLoaded.bind(this)),window.addEventListener("resize",r.A.debounce(this._onResize.bind(this),200),{capture:!0,passive:!0})}_onDOMContentLoaded(){this._dispatchEvents()}_onResize(){this._viewportHasChanged(s.getCurrentViewport())&&(this._dispatchEvents(),this._dispatchViewportEvent("Viewport/hasChanged"))}_dispatchEvents(){s.isXS()?this._dispatchViewportEvent("Viewport/isXS"):s.isSM()?this._dispatchViewportEvent("Viewport/isSM"):s.isMD()?this._dispatchViewportEvent("Viewport/isMD"):s.isLG()?this._dispatchViewportEvent("Viewport/isLG"):s.isXL()?this._dispatchViewportEvent("Viewport/isXL"):s.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"===s.getCurrentViewport()}static isSM(){return"SM"===s.getCurrentViewport()}static isMD(){return"MD"===s.getCurrentViewport()}static isLG(){return"LG"===s.getCurrentViewport()}static isXL(){return"XL"===s.getCurrentViewport()}static isXXL(){return"XXL"===s.getCurrentViewport()}static getCurrentViewport(){return window.getComputedStyle(document.documentElement).getPropertyValue("--sw-current-breakpoint").replace(/['"]+/g,"").toUpperCase()}}},220:(t,e,i)=>{i.d(e,{A:()=>a});var r=i(156),s=i.n(r),n=i(707),o=i(308);class a{constructor(t,e={},i=!1){if(!(t instanceof Node)){console.warn(`There is no valid element given while trying to create a plugin instance for "${i}".`);return}this.el=t,this.$emitter=new o.A(this.el),this._pluginName=this._getPluginName(i),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(){}
8_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()),s().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.A.toDashCase(this._pluginName),i=this.el.getAttribute(`data-${e}-config`);return i?window.PluginConfigManager.get(this._pluginName,i):t}_getOptionsFromDataAttribute(){let t={};if("function"!=typeof this.el.getAttribute)return t;let e=n.A.toDashCase(this._pluginName),i=this.el.getAttribute(`data-${e}-options`);if(i)try{return JSON.parse(i)}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}}}}]);
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.