PageSourceSearch

https://www.schlossberg-switzerland.com/theme/4fa84ba8edeff4ad293f…/dtgs-google-tag-manager-sw6.js?1791302311

js schlossberg-switzerland.com collected 2026-10-07 15:13:42 UTC 30,366 bytes, 1 lines download raw bytes

1(()=>{"use strict";var e={857:e=>{var t=function(e){var t;return!!e&&"object"==typeof e&&"[object RegExp]"!==(t=Object.prototype.toString.call(e))&&"[object Date]"!==t&&e.$$typeof!==n},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e,t){return!1!==t.clone&&t.isMergeableObject(e)?o(Array.isArray(e)?[]:{},e,t):e}function r(e,t,n){return e.concat(t).map(function(e){return i(e,n)})}function s(e){return Object.keys(e).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[])}function a(e,t){try{return t in e}catch(e){return!1}}function o(e,n,l){(l=l||{}).arrayMerge=l.arrayMerge||r,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=i;var c,u,d=Array.isArray(n);return d!==Array.isArray(e)?i(n,l):d?l.arrayMerge(e,n,l):(u={},(c=l).isMergeableObject(e)&&s(e).forEach(function(t){u[t]=i(e[t],c)}),s(n).forEach(function(t){(!a(e,t)||Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))&&(a(e,t)&&c.isMergeableObject(n[t])?u[t]=(function(e,t){if(!t.customMerge)return o;var n=t.customMerge(e);return"function"==typeof n?n:o})(t,c)(e[t],n[t],c):u[t]=i(n[t],c))}),u)}o.all=function(e,t){if(!Array.isArray(e))throw Error("first argument should be an array");return e.reduce(function(e,n){return o(e,n,t)},{})},e.exports=o}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,n),s.exports}(()=>{n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t}})(),(()=>{n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}})(),(()=>{n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{var e=n(857),t=n.n(e);class i{static ucFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}static lcFirst(e){return e.charAt(0).toLowerCase()+e.slice(1)}static toDashCase(e){return e.replace(/([A-Z])/g,"-$1").replace(/^-/,"").toLowerCase()}static toLowerCamelCase(e,t){let n=i.toUpperCamelCase(e,t);return i.lcFirst(n)}static toUpperCamelCase(e,t){return t?e.split(t).map(e=>i.ucFirst(e.toLowerCase())).join(""):i.ucFirst(e.toLowerCase())}static parsePrimitive(e){try{return/^\d+(.|,)\d+$/.test(e)&&(e=e.replace(",",".")),JSON.parse(e)}catch(t){return e.toString()}}}class r{static isNode(e){return"object"==typeof e&&null!==e&&(e===document||e===window||e instanceof Node)}static hasAttribute(e,t){if(!r.isNode(e))throw Error("The element must be a valid HTML Node!");return"function"==typeof e.hasAttribute&&e.hasAttribute(t)}static getAttribute(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(n&&!1===r.hasAttribute(e,t))throw Error('The required property "'.concat(t,'" does not exist!'));if("function"!=typeof e.getAttribute){if(n)throw Error("This node doesn't support the getAttribute function!");return}return e.getAttribute(t)}static getDataAttribute(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],s=t.replace(/^data(|-)/,""),a=i.toLowerCamelCase(s,"-");if(!r.isNode(e)){if(n)throw Error("The passed node is not a valid HTML Node!");return}if(void 0===e.dataset){if(n)throw Error("This node doesn't support the dataset attribute!");return}let o=e.dataset[a];if(void 0===o){if(n)throw Error('The required data attribute "'.concat(t,'" does not exist on ').concat(e,"!"));return o}return i.parsePrimitive(o)}static querySelector(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(n&&!r.isNode(e))throw Error("The parent node is not a valid HTML Node!");let i=e.querySelector(t)||!1;if(n&&!1===i)throw Error('The required element "'.concat(t,'" does not exist in parent node!'));return i}static querySelectorAll(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(n&&!r.isNode(e))throw Error("The parent node is not a valid HTML Node!");let i=e.querySelectorAll(t);if(0===i.length&&(i=!1),n&&!1===i)throw Error('At least one item of "'.concat(t,'" must exist in parent node!'));return i}static getFocusableElements(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return e.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 e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return this.getFocusableElements(e)[0]}static getLastFocusableElement(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=this.getFocusableElements(e);return t[t.length-1]}}class s{publish(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=new CustomEvent(e,{detail:t,cancelable:n});return this.el.dispatchEvent(i),i}subscribe(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this,r=e.split("."),s=n.scope?t.bind(n.scope):t;if(n.once&&!0===n.once){let t=s;s=function(n){i.unsubscribe(e),t(n)}}return this.el.addEventListener(r[0],s),this.listeners.push({splitEventName:r,opts:n,cb:s}),!0}unsubscribe(e){let t=e.split(".");return this.listeners=this.listeners.reduce((e,n)=>([...n.splitEventName].sort().toString()===t.sort().toString()?this.el.removeEventListener(n.splitEventName[0],n.cb):e.push(n),e),[]),!0}reset(){return this.listeners.forEach(e=>{this.el.removeEventListener(e.splitEventName[0],e.cb)}),this.listeners=[],!0}get el(){return this._el}set el(e){this._el=e}get listeners(){return this._listeners}set listeners(e){this._listeners=e}constructor(e=document){this._el=e,e.$emitter=this,this._listeners=[]}}class a{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(e){let n=i.toDashCase(this._pluginName),s=r.getDataAttribute(this.el,"data-".concat(n,"-config"),!1),a=r.getAttribute(this.el,"data-".concat(n,"-options"),!1),o=[this.constructor.options,this.options,e];s&&o.push(window.PluginConfigManager.get(this._pluginName,s));try{a&&o.push(JSON.parse(a))}catch(e){throw console.error(this.el),Error('The data attribute "data-'.concat(n,'-options" could not be parsed to json: ').concat(e.message))}return t().all(o.filter(e=>e instanceof Object&&!(e instanceof Array)).map(e=>e||{}))}_registerInstance(){window.PluginManager.getPluginInstancesFromElement(this.el).set(this._pluginName,this),window.PluginManager.getPlugin(this._pluginName,!1).get("instances").push(this)}_getPluginName(e){return e||(e=this.constructor.name),e}constructor(e,t={},n=!1){if(!r.isNode(e))throw Error("There is no valid element given.");this.el=e,this.$emitter=new s(this.el),this._pluginName=this._getPluginName(n),this.options=this._mergeOptions(t),this._initialized=!1,this._registerInstance(),this._init()}}class o{static isSupported(){return"undefined"!==document.cookie}static setItem(e,t,n){if(null==e)throw Error("You must specify a key to set a cookie");let i=new Date;i.setTime(i.getTime()+864e5*n);let r="";"https:"===location.protocol&&(r="secure"),document.cookie="".concat(e,"=").concat(t,";expires=").concat(i.toUTCString(),";path=/;sameSite=lax;").concat(r)}static getItem(e){if(!e)return!1;let t=e+"=",n=document.cookie.split(";");for(let e=0;e<n.length;e++){let i=n[e];for(;" "===i.charAt(0);)i=i.substring(1);if(0===i.indexOf(t))return i.substring(t.length,i.length)}return!1}static removeItem(e){document.cookie="".concat(e,"= ; expires = Thu, 01 Jan 1970 00:00:00 GMT;path=/")}static key(){return""}static clear(){}}class l{static iterate(e,t){if(e instanceof Map||Array.isArray(e))return e.forEach(t);if(e instanceof FormData){for(var n of e.entries())t(n[1],n[0]);return}if(e instanceof NodeList)return e.forEach(t);if(e instanceof HTMLCollection)return Array.from(e).forEach(t);if(e instanceof Object)return Object.keys(e).forEach(n=>{t(e[n],n)});throw Error("The element type ".concat(typeof e," is not iterable!"))}}let c="js-offcanvas-singleton";class u{open(e,t,n,i,r,s,a){this._removeExistingOffCanvas();let o=this._createOffCanvas(n,s,a,i);this.setContent(e,r),this._openOffcanvas(o,t)}setContent(e,t){let n=this.getOffCanvas();n[0]&&(n[0].innerHTML=e,this._registerEvents(t),this._setAriaAttrs())}setAdditionalClassName(e){this.getOffCanvas()[0].classList.add(e)}getOffCanvas(){return document.querySelectorAll(".".concat(c))}close(e){let t=this.getOffCanvas();l.iterate(t,e=>{bootstrap.Offcanvas.getInstance(e).hide()}),setTimeout(()=>{this.$emitter.publish("onCloseOffcanvas",{offCanvasContent:t})},e)}goBackInHistory(){window.history.back()}exists(){return this.getOffCanvas().length>0}_openOffcanvas(e,t){window.focusHandler.saveFocusState("offcanvas"),u.bsOffcanvas.show(),window.history.pushState("offcanvas-open",""),"function"==typeof t&&t()}_registerEvents(e){let t=this.getOffCanvas();l.iterate(t,n=>{let i=()=>{setTimeout(()=>{n.remove(),window.focusHandler.resumeFocusState("offcanvas"),this.$emitter.publish("onCloseOffcanvas",{offCanvasContent:t})},e),n.removeEventListener("hide.bs.offcanvas",i)};n.addEventListener("hide.bs.offcanvas",i)}),window.addEventListener("popstate",this.close.bind(this,e),{once:!0});let n=document.querySelectorAll(".".concat("js-offcanvas-close"));l.iterate(n,t=>t.addEventListener("click",this.close.bind(this,e)))}_setAriaAttrs(){let e=this.getOffCanvas()[0],t="off-canvas-headline",n=e.querySelector('[data-id="'.concat(t,'"]'));n&&!e.hasAttribute("aria-labelledby")&&(n.setAttribute("id",t),e.setAttribute("aria-labelledby",t))}_removeExistingOffCanvas(){u.bsOffcanvas=null;let e=this.getOffCanvas();return l.iterate(e,e=>e.remove())}_getPositionClass(e){return"left"===e?"offcanvas-start":"right"===e?"offcanvas-end":"offcanvas-".concat(e)}_createOffCanvas(e,t,n,i){let r=document.createElement("div");if(r.classList.add("offcanvas",c),r.classList.add(this._getPositionClass(e)),r.setAttribute("tabindex","-1"),!0===t&&r.classList.add("is-fullwidth"),n){let e=typeof n;if("string"===e)r.classList.add(n);
1else if(Array.isArray(n))n.forEach(e=>{r.classList.add(e)});else throw Error('The type "'.concat(e,'" is not supported. Please pass an array or a string.'))}return document.body.appendChild(r),u.bsOffcanvas=new bootstrap.Offcanvas(r,{backdrop:!1!==i||"static"}),r}constructor(){this.$emitter=new s}}let d=Object.freeze(new u);class g{static open(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"left",i=!(arguments.length>3)||void 0===arguments[3]||arguments[3],r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,s=arguments.length>5&&void 0!==arguments[5]&&arguments[5],a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"";d.open(e,t,n,i,r,s,a)}static setContent(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:350;d.setContent(e,t,n)}static setAdditionalClassName(e){d.setAdditionalClassName(e)}static close(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:350;d.close(e)}static exists(){return d.exists()}static getOffCanvas(){return d.getOffCanvas()}static REMOVE_OFF_CANVAS_DELAY(){return 350}}class h{get(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",i=this._createPreparedRequest("GET",e,n);return this._sendRequest(i,null,t)}post(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let r=this._createPreparedRequest("POST",e,i);return this._sendRequest(r,t,n)}delete(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let r=this._createPreparedRequest("DELETE",e,i);return this._sendRequest(r,t,n)}patch(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let r=this._createPreparedRequest("PATCH",e,i);return this._sendRequest(r,t,n)}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,n){return this._registerOnLoaded(e,n),e.send(t),e}_getContentType(e,t){return e instanceof FormData&&(t=!1),t}_createPreparedRequest(e,t,n){return this._request=new XMLHttpRequest,this._request.open(e,t),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),n&&this._request.setRequestHeader("Content-type",n),this._request}constructor(){this._request=null,this._errorHandlingInternal=!1}}let m="loader",p={BEFORE:"before",INNER:"inner"};class f{create(){if(!this.exists()){if(this.position===p.INNER){this.parent.innerHTML=f.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),f.getTemplate())}}remove(){let e=this.parent.querySelectorAll(".".concat(m));l.iterate(e,e=>e.remove())}exists(){return this.parent.querySelectorAll(".".concat(m)).length>0}_getPosition(){return this.position===p.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return'<div class="'.concat(m,'" role="status">\n                    <span class="').concat("visually-hidden",'">Loading...</span>\n                </div>')}static SELECTOR_CLASS(){return m}constructor(e,t=p.BEFORE){this.parent=e instanceof Element?e:document.body.querySelector(e),this.position=t}}let v=null;class b extends g{static open(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"left",r=!(arguments.length>4)||void 0===arguments[4]||arguments[4],s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:g.REMOVE_OFF_CANVAS_DELAY(),a=arguments.length>6&&void 0!==arguments[6]&&arguments[6],o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"";if(!e)throw Error("A url must be given!");d._removeExistingOffCanvas();let l=d._createOffCanvas(i,a,o,r);
1this.setContent(e,t,n,r,s),d._openOffcanvas(l)}static setContent(e,t,n,i,r){let s=new h;super.setContent('<div class="offcanvas-body">'.concat(f.getTemplate(),"</div>"),i,r),v&&v.abort();let a=e=>{super.setContent(e,i,r),"function"==typeof n&&n(e)};v=t?s.post(e,t,b.executeCallback.bind(this,a)):s.get(e,b.executeCallback.bind(this,a))}static executeCallback(e,t){"function"==typeof e&&e(t),window.PluginManager.initializePlugins()}}let y="element-loader-backdrop";class _ extends f{static create(e){e.classList.add("has-element-loader"),_.exists(e)||(_.appendLoader(e),setTimeout(()=>{let t=e.querySelector(".".concat(y));t&&t.classList.add("element-loader-backdrop-open")},1))}static remove(e){e.classList.remove("has-element-loader");let t=e.querySelector(".".concat(y));t&&t.remove()}static exists(e){return e.querySelectorAll(".".concat(y)).length>0}static getTemplate(){return'\n        <div class="'.concat(y,'">\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",_.getTemplate())}}let E="CookieConfiguration_Update";window.router["frontend.cookie.offcanvas"];class w{supports(e,t){return console.warn("[Google Analytics Plugin] Method 'supports' was not overridden by `"+this.constructor.name+"`. Default return set to false."),!1}execute(){console.warn("[Google Analytics Plugin] Method 'execute' was not overridden by `"+this.constructor.name+"`.")}disable(){this.active=!1}constructor(){this.active=!0}}class C extends w{execute(){let e=this.getEvents();window.PluginManager.getPluginInstances(this.getPluginName()).forEach(t=>{Object.keys(e).forEach(n=>{t.$emitter.subscribe(n,e[n])})})}getEvents(){console.warn("[Google Analytics Plugin] Method 'getEvents' was not overridden by `"+this.constructor.name+"`.")}getPluginName(){console.warn("[Google Analytics Plugin] Method 'getPluginName' was not overridden by `"+this.constructor.name+"`.")}}class O extends C{supports(){return!0}getPluginName(){return"AddToCart"}getEvents(){return{beforeFormSubmit:this._beforeFormSubmit.bind(this)}}_beforeFormSubmit(e){if(!this.active)return;let t=e.detail,n=null;if(t.forEach((e,t)=>{t.endsWith("[id]")&&(n=e)}),!n){console.warn("[codiverse GTM] Product ID could not be fetched. Skipping.");return}let i=this.getProductsObjectFromFormData(t,n),r="add_to_cart";document.querySelector("body").classList.contains("is-ctl-navigation")&&(r="add_to_cart_list"),dataLayer.push({ecommerce:null}),dataLayer.push({event:r,ecommerce:{currency:t.get("dtgs-gtm-currency-code"),value:i.price*i.quantity,items:[i]}})}getProductsObjectFromFormData(e,t){let n={item_name:e.get("product-name"),item_id:e.get("dtgs-gtm-product-sku"),quantity:Number(e.get("lineItems["+t+"][quantity]"))};return null!==e.get("dtgs-gtm-product-variantname")&&Object.assign(n,{item_variant:e.get("dtgs-gtm-product-variantname")}),null!==e.get("dtgs-gtm-product-category")&&Object.assign(n,{item_category:e.get("dtgs-gtm-product-category")}),null!==e.get("dtgs-gtm-product-price")&&Object.assign(n,{price:Number(e.get("dtgs-gtm-product-price"))}),null!==e.get("brand-name")&&Object.assign(n,{item_brand:e.get("brand-name")}),null!==e.get("dtgs-gtm-product-db-id")&&Object.assign(n,{item_db_id:e.get("dtgs-gtm-product-db-id")}),"undefined"!=typeof dtgsRemarketingEnabled&&!0===dtgsRemarketingEnabled&&(Object.assign(n,{id:e.get("dtgs-gtm-product-sku")}),Object.assign(n,{google_business_vertical:"retail"})),n}}class q extends w{supports(){return!0}execute(){document.addEventListener("click",this._onRemoveFromCart.bind(this))}_onRemoveFromCart(e){if(!this.active||!e.target.closest(".line-item-remove-button"))return;let t=r.querySelector(e.target.closest(".line-item-remove"),"input[name=dtgs-gtm-product-sku]");if(!t)return;let n=r.querySelector(e.target.closest(".line-item-remove"),"input[name=dtgs-gtm-product-name]"),i=r.querySelector(e.target.closest(".line-item-remove"),"input[name=dtgs-gtm-product-price]"),s=r.querySelector(e.target.closest(".line-item-remove"),"input[name=dtgs-gtm-total-price]"),a=r.querySelector(e.target.closest(".line-item-remove"),"input[name=dtgs-gtm-product-quantity]"),o=r.querySelector(e.target.closest(".line-item-remove"),"input[name=dtgs-gtm-currency-code]");dataLayer.push({ecommerce:null}),dataLayer.push({event:"remove_from_cart",ecommerce:{currency:o.value,value:Number(s.value),items:[{item_id:t.value,item_name:n.value,quantity:Number(a.value),price:Number(i.value),index:0}]}})}}class S extends w{supports(){return!0}execute(){document.addEventListener("change",this._onQuantityInputChange.bind(this)),this.storeInitialQuantities()}storeInitialQuantities(){this._refreshStoredQuantities()}_refreshStoredQuantities(){let e=r.querySelectorAll(document,'input[name="quantity"].js-quantity-selector',!1);
1e&&e.forEach(e=>{let t=this._getLineItemId(e);if(t){let n=parseInt(e.value)||1;this.quantityBeforeChange.set(t,n)}})}_onQuantityInputChange(e){if(!this.active||!e.target.classList.contains("js-quantity-selector")||"quantity"!==e.target.name)return;let t=e.target,n=this._getLineItemId(t);if(!n)return;let i=parseInt(t.value)||1,r=this.quantityBeforeChange.get(n)||1;this._fireQuantityChangeEvent(t,r,i),this.quantityBeforeChange.set(n,i)}_getLineItemId(e){let t=e.closest(".line-item");if(!t)return null;let n=r.querySelector(t,".line-item-remove form",!1);if(n){let e=r.querySelector(n,'input[name="dtgs-gtm-product-sku"]',!1);if(e&&e.value)return e.value}return this._getFallbackLineItemId(t)}_getFallbackLineItemId(e){let t=r.querySelectorAll(document,".line-item",!1);if(t){let n=Array.from(t).indexOf(e);return"line-item-".concat(n)}return null}_fireQuantityChangeEvent(e,t,n){if(t===n)return;let i=e.closest(".line-item");if(!i)return;let s=n-t,a=s>0,o=Math.abs(s),l=r.querySelector(i,".line-item-remove form",!1);if(!l){console.warn("[GTM Quantity Change] Could not find remove form");return}let c=this._extractCommonFormData(l);if(!c)return;let u=a?this._buildIncreaseEventData(c,o):this._buildDecreaseEventData(c,o);this._pushToDataLayer(a?"add_to_cart":"remove_from_cart",u)}_extractCommonFormData(e){let t=r.querySelector(e,'input[name="dtgs-gtm-product-sku"]',!1),n=r.querySelector(e,'input[name="dtgs-gtm-product-name"]',!1),i=r.querySelector(e,'input[name="dtgs-gtm-product-price"]',!1),s=r.querySelector(e,'input[name="dtgs-gtm-currency-code"]',!1);return t&&n&&s?{sku:t.value,name:n.value,price:i?Number(i.value):0,currency:s.value,removeForm:e}:(console.warn("[GTM Quantity Change] Missing required form data"),null)}_buildIncreaseEventData(e,t){let n={item_name:e.name,item_id:e.sku,quantity:t};return this._addOptionalFields(n,e,e.removeForm),this._addRemarketingFields(n,e.sku),{currency:e.currency,value:e.price*t,items:[n]}}_buildDecreaseEventData(e,t){let n={item_id:e.sku,item_name:e.name,quantity:t,price:e.price,index:0};return{currency:e.currency,value:e.price*t,items:[n]}}_addOptionalFields(e,t,n){t.price>0&&(e.price=t.price);let i=r.querySelector(n,'input[name="dtgs-gtm-product-db-id"]',!1);i&&i.value&&""!==i.value&&(e.item_db_id=i.value)}_addRemarketingFields(e,t){"undefined"!=typeof dtgsRemarketingEnabled&&!0===dtgsRemarketingEnabled&&(e.id=t,e.google_business_vertical="retail")}_pushToDataLayer(e,t){dataLayer.push({ecommerce:null}),dataLayer.push({event:e,ecommerce:t})}constructor(){super(),this.quantityBeforeChange=new Map}}class A extends w{supports(){return!0}execute(){let e=r.querySelector(document,".login-submit button",!1);e&&e.addEventListener("click",this._fireLoginEvent.bind(this))}_fireLoginEvent(){this.active&&window.dataLayer.push({event:"login"})}}class L extends w{supports(){return!0}execute(){let e=r.querySelector(document,".register-submit button",!1);e&&e.addEventListener("click",this._fireSignUpEvent.bind(this))}_fireSignUpEvent(){this.active&&window.dataLayer.push({event:"sign_up"})}}class k{static getLineItems(){let e=r.querySelector(document,".hidden-line-items-information"),t=r.querySelectorAll(e,".hidden-line-item"),n=[];return t.forEach(t=>{n.push({id:r.getDataAttribute(t,"id"),name:r.getDataAttribute(t,"name"),quantity:r.getDataAttribute(t,"quantity"),price:r.getDataAttribute(t,"price"),currency:r.getDataAttribute(e,"currency")})}),n}static getAdditionalProperties(){let e=r.querySelector(document,".hidden-line-items-information");return{currency:r.getDataAttribute(e,"currency"),shipping:r.getDataAttribute(e,"shipping"),value:r.getDataAttribute(e,"value"),tax:r.getDataAttribute(e,"tax")}}}window.PluginManager.register("GoogleTagManager",class extends a{init(){if(this.cookieEnabledName="dtgsAllowGtmTracking",this.cookieAdsEnabledName=window.googleAdsCookieName||"google-ads-enabled",this.handleCookieChangeEvent(),this.startGoogleTagManager(),!o.getItem(this.cookieEnabledName)){let e=document.querySelector("[data-off-canvas-cart]");if(e){let t=window.PluginManager.getPluginInstanceFromElement(e,"OffCanvasCart");t&&t.$emitter.subscribe("offCanvasOpened",this.onOffCanvasOpenedForInitialQuantities.bind(this))}return}this.fireCookieConsentEvent();let e=document.querySelector("[data-off-canvas-cart]");if(e){let t=window.PluginManager.getPluginInstanceFromElement(e,"OffCanvasCart");t&&t.$emitter.subscribe("offCanvasOpened",this.onOffCanvasOpened.bind(this))}let t=document.querySelector("[data-listing-pagination]");if(t){let e=window.PluginManager.getPluginInstanceFromElement(t,"Listing");e&&e.$emitter.subscribe("Listing/afterRenderResponse",this.onPageSwitched.bind(this))}let n=r.querySelector(document,"#wishlist-basket",!1);if(n){let e=window.PluginManager.getPluginInstanceFromElement(n,"WishlistStorage");e&&e.$emitter.subscribe("Wishlist/onProductAdded",this.onWishlistAdd.bind(this)),e&&e.$emitter.subscribe("Wishlist/onProductRemoved",this.onWishlistRemove.bind(this))}let i=r.querySelector(document,".product-wishlist-form",!1);i&&i.addEventListener("submit",this.onWishlistRemoveFormSubmit.bind(this))}fireCookieConsentEvent(){window.dataLayer.push({event:"cookieConsentGiven"})}fireSelectItemEvent(e){let t=e.target.closest(".card-body"),n={item_name:t.querySelector('input[name="product-name"]').value,item_id:t.querySelector('input[name="dtgs-gtm-product-sku"]').value},i=t.querySelector('input[name="dtgs-gtm-product-variantname"]'),r=t.querySelector('input[name="dtgs-gtm-product-category"]'),s=t.querySelector('input[name="dtgs-gtm-product-price"]'),a=t.querySelector('input[name="dtgs-gtm-product-brand"]');null!==i&&Object.assign(n,{item_variant:i.value}),null!==r&&Object.assign(n,{item_category:r.value}),null!==a&&Object.assign(n,{item_brand:a.value}),null!==s&&Object.assign(n,{price:Number(s.value)}),dataLayer.push({ecommerce:null}),dataLayer.push({event:"select_item",ecommerce:{item_list_name:"Category",items:[n]}})}startGoogleTagManager(){this.controllerName=window.controllerName,this.actionName=window.actionName,this.events=[],this.registerDefaultEvents(),this.handleEvents()}
1handleEvents(){this.events.forEach(e=>{e.supports(this.controllerName,this.actionName)&&e.execute()})}registerDefaultEvents(){this.registerEvent(O),this.registerEvent(q),this.registerEvent(S),this.registerEvent(A),this.registerEvent(L),this.registerSelectItemEvent()}registerEvent(e){this.events.push(new e)}handleCookieChangeEvent(){document.$emitter.subscribe(E,this.handleCookies.bind(this))}handleCookies(e){let t=e.detail;if(this.updateConsentMode(t),t.hasOwnProperty(this.cookieEnabledName)){if(t[this.cookieEnabledName]){this.fireCookieConsentEvent(),this.loadGoogleTagManager(),this.startGoogleTagManager();return}this.removeGoogleTagManager(),this.removeCookies(),this.disableEvents()}}removeCookies(){let e=document.cookie.split(";"),t=/^(_ga|_gat_UA$|_gid)/;e.forEach(e=>{let n=e.split("=")[0].trim();n.match(t)&&o.removeItem(n)})}disableEvents(){this.events.forEach(e=>{e.disable()})}loadGoogleTagManager(){!window.dtgsGtmConfig||!window.dtgsGtmConfig.containerIds||!1===window.dtgsGtmConfig.loadGoogleScriptAfterConsent&&document.querySelector('script[src*="googletagmanager.com/gtm.js"], script[src*="/gtm.js"]')||window.dtgsGtmConfig.containerIds.forEach(e=>{"function"==typeof window.dtgsLoadGTM&&window.dtgsLoadGTM(e)})}removeGoogleTagManager(){"function"==typeof window.dtgsRemoveGTM&&window.dtgsRemoveGTM()}updateConsentMode(e){if(0===Object.keys(e).length||"undefined"!=typeof dtgsConsentHandler&&"thirdpartyCmp"===dtgsConsentHandler)return;let t={};Object.prototype.hasOwnProperty.call(e,this.cookieEnabledName)&&(t.analytics_storage=e[this.cookieEnabledName]?"granted":"denied"),Object.prototype.hasOwnProperty.call(e,this.cookieAdsEnabledName)&&(t.ad_storage=e[this.cookieAdsEnabledName]?"granted":"denied",t.ad_user_data=e[this.cookieAdsEnabledName]?"granted":"denied",t.ad_personalization=e[this.cookieAdsEnabledName]?"granted":"denied"),0!==Object.keys(t).length&&gtag("consent","update",t)}registerSelectItemEvent(){let e=r.querySelectorAll(document,"a.product-name, a.product-image-link, a.product-button-detail",!1);e&&e.forEach(e=>{e.addEventListener("click",this.fireSelectItemEvent)})}onPageSwitched(){this.registerSelectItemEvent()}onWishlistAdd(e){let t=this.getSkuFromEvent(e);this.fireWishlistEvent(t,"add_to_wishlist")}onWishlistRemove(e){let t=this.getSkuFromEvent(e);this.fireWishlistEvent(t,"remove_from_wishlist")}onWishlistRemoveFormSubmit(e){let t=r.querySelector(e.target,'input[name="dtgs-gtm-product-sku"]',!1);this.fireWishlistEvent(t,"remove_from_wishlist")}fireWishlistEvent(e,t){null!==e&&dataLayer.push({event:t,ecommerce:{items:{item_id:e.value}}})}onOffCanvasOpened(){let e=k.getAdditionalProperties(),t=this.getLineItems();window.dataLayer.push({event:"view_cart",currency:e.currency,ecommerce:{items:t}}),this.events.forEach(e=>{e.hasOwnProperty("quantityBeforeChange")&&e.storeInitialQuantities()})}onOffCanvasOpenedForInitialQuantities(){this.events.forEach(e=>{e.hasOwnProperty("quantityBeforeChange")&&e.storeInitialQuantities()})}getLineItems(){let e=r.querySelector(document,".hidden-line-items-information",!1),t=r.querySelectorAll(e,".hidden-line-item",!1),n=[];return!1===t?[]:(t.forEach(e=>{let t={item_id:r.getDataAttribute(e,"data-dtgs-sku"),item_name:r.getDataAttribute(e,"name"),quantity:r.getDataAttribute(e,"quantity"),price:r.getDataAttribute(e,"data-dtgs-price")};void 0!==r.getDataAttribute(e,"data-dtgs-db-id",!1)&&(t.item_db_id=r.getDataAttribute(e,"id")),n.push(t)}),n)}getSkuFromEvent(e){let t=e.detail.productId,n=r.querySelector(document,'input[value="'+t+'"]',!1);if(n)return r.querySelector(n.parentNode,'input[name="dtgs-gtm-product-sku"]',!1)}}),window.PluginManager.register("DtgsGtmServicesPlugin",class extends a{init(){this.gtmConsentCookie=window.dtgsGtmConsentCookieName||"dtgsAllowGtmTracking",this.services=Array.isArray(window.dtgsGtmCustomServices)?window.dtgsGtmCustomServices:[],this.handleCookieChangeEvent(),this.fireForConsentedServices()}handleCookieChangeEvent(){document.$emitter.subscribe(E,this.handleCookies.bind(this))}handleCookies(e){let t=e.detail;
1this.isGtmConsentGranted(t)&&this.services.forEach(e=>{let n=e.cookie;t.hasOwnProperty(n)&&t[n]&&this.pushEvent(e.eventName)})}fireForConsentedServices(){o.getItem(this.gtmConsentCookie)&&this.services.forEach(e=>{o.getItem(e.cookie)&&this.pushEvent(e.eventName)})}isGtmConsentGranted(e){return e&&Object.prototype.hasOwnProperty.call(e,this.gtmConsentCookie)?!!e[this.gtmConsentCookie]:!!o.getItem(this.gtmConsentCookie)}pushEvent(e){void 0===window.dataLayer&&(window.dataLayer=[]),window.dataLayer.push({event: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.