{"version":3,"file":"category.114dd6fa11cc67f0f59c.js","mappings":"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","sources":["webpack://gak.frontend/./ReskinScripts/enhanced-ecommerce.js","webpack://gak.frontend/webpack/bootstrap","webpack://gak.frontend/webpack/runtime/define property getters","webpack://gak.frontend/webpack/runtime/hasOwnProperty shorthand","webpack://gak.frontend/./ReskinScripts/rSlider.js","webpack://gak.frontend/./ReskinScripts/utils.ts","webpack://gak.frontend/./ReskinScripts/gak-item-details.ts"],"sourcesContent":["var elements = document.getElementsByClassName(\"product-card\");\r\nvar productDetailsEl = document.getElementsByClassName(\"pdp-basket\").item(0);\r\n\r\nvar pushEnhancedEcommerce = function () {\r\n pushEcommerce();\r\n}\r\n\r\nfunction getProductDetails() {\r\n if (productDetailsEl) {\r\n return getProductDetailObj(productDetailsEl);\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction getProductDetailObj(el) {\r\n var productObj =\r\n {\r\n 'name': el.getAttribute(\"data-name\"),\r\n 'id': el.getAttribute(\"data-google-product-id\")\r\n ?? el.getAttribute(\"data-product-id\")\r\n ?? el.getAttribute(\"data-id\"),\r\n 'internalId': el.getAttribute(\"data-product-id\") ?? el.getAttribute(\"data-id\"),\r\n 'price': el.getAttribute(\"data-price\"),\r\n 'brand': el.getAttribute(\"data-brand\"),\r\n 'category': el.getAttribute(\"data-category\")\r\n };\r\n\r\n return productObj;\r\n}\r\n\r\nfunction getProductObj(el) {\r\n var productObj =\r\n {\r\n 'name': el.getAttribute(\"data-name\"),\r\n 'id': el.getAttribute(\"data-google-product-id\") \r\n ?? el.getAttribute(\"data-product-id\")\r\n ?? el.getAttribute(\"data-id\"),\r\n 'internalId': el.getAttribute(\"data-product-id\") ?? el.getAttribute(\"data-id\"),\r\n 'price': el.getAttribute(\"data-price\"),\r\n 'brand': el.getAttribute(\"data-brand\"),\r\n 'category': el.getAttribute(\"data-category\"),\r\n 'position': el.getAttribute(\"data-position\"),\r\n 'list': el.getAttribute(\"data-list\")\r\n };\r\n\r\n return productObj;\r\n}\r\n\r\nfunction pushEcommerce() {\r\n var products = getProducts();\r\n var promotions = getPromotions();\r\n var productDetails = getProductDetails();\r\n\r\n var ecommerceObj = {\r\n ecommerce: {\r\n currencyCode: 'GBP'\r\n },\r\n }\r\n\r\n if (products.length > 0) {\r\n ecommerceObj.ecommerce.eec = {\r\n impressionView: { products }\r\n };\r\n }\r\n\r\n if (promotions.length > 0) {\r\n ecommerceObj.ecommerce.eec.promoView = {\r\n promoView: { promotions: promotions }\r\n };\r\n }\r\n\r\n if (productDetails != null) {\r\n ecommerceObj.ecommerce.eec = {\r\n detail: { products: [productDetails] }\r\n };\r\n }\r\n\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push(ecommerceObj);\r\n}\r\n\r\nfunction getProducts() {\r\n var products = [];\r\n\r\n for (var i = 0; i < elements.length; i++) {\r\n elements[i].addEventListener('click', onProductClick);\r\n\r\n products.push(getProductObj(elements[i]));\r\n }\r\n\r\n return products;\r\n}\r\n\r\nfunction onProductClick(e) {\r\n e.preventDefault();\r\n\r\n var el = e.currentTarget;\r\n var productObj = getProductObj(el);\r\n var productUrl = el.getAttribute(\"href\");\r\n\r\n pushProductClick(productObj, productUrl);\r\n}\r\n\r\nfunction getPromotions() {\r\n var banners = document.querySelector('a.hero-banner');\r\n var promotionsObj = [];\r\n\r\n if (banners) {\r\n for (var i = 0; i < banners.length; i++) {\r\n banners[i].addEventListener('click', onBannerClick);\r\n\r\n promotionsObj.push(getPromotionObj(banners[i]));\r\n }\r\n }\r\n\r\n return promotionsObj;\r\n}\r\n\r\nfunction onBannerClick(e) {\r\n e.preventDefault();\r\n\r\n var el = e.currentTarget;\r\n var promotionObj = getPromotionObj(el);\r\n\r\n onPromoClick(promotionObj);\r\n}\r\n\r\nfunction getPromotionObj(el) {\r\n var promotionObj =\r\n {\r\n 'id': el.getAttribute(\"data-id\"),\r\n 'name': el.getAttribute(\"data-name\"),\r\n 'creative': el.getAttribute(\"data-creative\"),\r\n 'position': el.getAttribute(\"data-position\"),\r\n 'destinationUrl': el.getAttribute(\"href\")\r\n }\r\n\r\n return promotionObj;\r\n}\r\n\r\nfunction onPromoClick(promoObj) {\r\n dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n dataLayer.push({\r\n 'event': 'eec.promoClick',\r\n 'ecommerce': {\r\n 'promoClick': {\r\n 'promotions': [promoObj]\r\n }\r\n }\r\n });\r\n\r\n document.location = promoObj.destinationUrl;\r\n\r\n}\r\n\r\nfunction pushProductClick(productObj, productUrl) {\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'eec.productClick',\r\n 'ecommerce': {\r\n 'click': {\r\n 'products': [productObj]\r\n }\r\n }\r\n });\r\n\r\n if (productUrl)\r\n document.location = productUrl;\r\n}\r\n\r\nfunction pushAddToCart(productId, quantity = 1) {\r\n var product = getProductsToAddRemove(productId);\r\n product.quantity = quantity;\r\n\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'eec.addToCart',\r\n 'ecommerce': {\r\n 'add': {\r\n 'products': [product]\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction getProductsToAddRemove(productId) {\r\n var productContainer = document.querySelector(`[data-id=\"${productId}\"]`);\r\n\r\n if (!productContainer)\r\n productContainer = document.querySelector(`[data-product-id='${productId}']`);\r\n\r\n if (!productContainer)\r\n return;\r\n\r\n return getProductDetailObj(productContainer);\r\n}\r\n\r\nfunction pushRemoveFromCart(productId, quantity = 1) {\r\n var product = getProductsToAddRemove(productId);\r\n product.quantity = quantity;\r\n\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'eec.removeFromCart',\r\n 'ecommerce': {\r\n 'remove': {\r\n 'products': [product]\r\n }\r\n }\r\n });\r\n\r\n}\r\n\r\nfunction getCheckoutProducts() {\r\n var products = [];\r\n var el = document.getElementsByClassName(\"basket-item\");\r\n\r\n for (var i = 0; i < el.length; i++) {\r\n products.push(getProductDetailObj(el[i]));\r\n }\r\n\r\n return products;\r\n}\r\n\r\nfunction getBasketItems(step, option, basketItemsURL) {\r\n fetch(basketItemsURL, {\r\n method: \"POST\"\r\n }).then(response => response.json())\r\n .then(function (result) {\r\n var products = result.basketVm.Items;\r\n var basketContainer = document.getElementById(\"basketItemsContainer\");\r\n var ulElemen = document.createElement(\"ul\")\r\n var liElem = \"\";\r\n\r\n if (products) {\r\n products.forEach(function (item) {\r\n liElem +=\r\n `
  • \r\n
  • `\r\n });\r\n }\r\n\r\n ulElemen.innerHTML = liElem;\r\n basketContainer.append(ulElemen);\r\n pushCheckout(step, option);\r\n });\r\n}\r\n\r\nfunction onCheckout(step, option, basketItemsURL) {\r\n if (basketItemsURL) {\r\n getBasketItems(step, option, basketItemsURL);\r\n }\r\n else {\r\n pushCheckout(step, option);\r\n }\r\n}\r\n\r\nfunction pushCheckout(step, option) {\r\n var products = getCheckoutProducts();\r\n dataLayer.push({ ecommerce: null });\r\n\r\n var ecommerceObj = {\r\n event: 'eec.checkout',\r\n ecommerce: {\r\n checkout: {\r\n actionField: { step: step },\r\n }\r\n }\r\n }\r\n\r\n if (products && products.length > 0)\r\n ecommerceObj.ecommerce.checkout.products = products;\r\n\r\n if (option)\r\n ecommerceObj.ecommerce.checkout.actionField.option = option.toLowerCase();\r\n\r\n dataLayer.push(ecommerceObj);\r\n}\r\n\r\nfunction onCheckoutOption(step, checkoutOption) {\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'checkoutOption',\r\n 'ecommerce': {\r\n 'checkout_option': {\r\n 'actionField': { 'step': step, 'option': checkoutOption }\r\n }\r\n }\r\n });\r\n}\r\n\r\n\r\nfunction pushProductView() {\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'eec.detail',\r\n 'ecommerce': {\r\n 'detail': {\r\n 'products': [getProductDetailObj(productDetailsEl)]\r\n }\r\n }\r\n });\r\n}\r\n\r\nwindow.onload = function () {\r\n pushEcommerce();\r\n}\r\n\r\nexport { pushEnhancedEcommerce, pushAddToCart, pushRemoveFromCart, onCheckout, onCheckoutOption, pushProductView };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\r\n * https://slawomir-zaziablo.github.io/range-slider/\r\n * edited: 15/07/2022 AGonzales: added export, classes to spans and prefixToScaleValues, add in set Min and Max values to the range steps\r\n */\r\nvar RS = function (conf) {\r\n\t\tthis.input \t\t\t= null;\r\n\t\tthis.inputDisplay \t= null;\r\n\t\tthis.slider \t\t= null;\r\n\t\tthis.sliderWidth\t= 0;\r\n\t\tthis.sliderLeft\t\t= 0;\r\n\t\tthis.pointerWidth\t= 0;\r\n\t\tthis.pointerR\t\t= null;\r\n\t\tthis.pointerL\t\t= null;\r\n\t\tthis.activePointer\t= null;\r\n\t\tthis.selected \t\t= null;\r\n\t\tthis.scale \t\t\t= null;\r\n\t\tthis.step \t\t\t= 0;\r\n\t\tthis.tipL\t\t\t= null;\r\n\t\tthis.tipR\t\t\t= null;\r\n\t\tthis.timeout\t\t= null;\r\n\t\tthis.valRange\t\t= false;\r\n\t\tthis.initialising\t= true;\r\n\r\n\t\tthis.values = {\r\n\t\t\tstart:\tnull,\r\n\t\t\tend:\tnull\r\n\t\t};\r\n\t\tthis.conf = {\r\n\t\t\ttarget: \tnull,\r\n\t\t\tvalues: \tnull,\r\n\t\t\tset: \t\tnull,\r\n\t\t\trange: \t\tfalse,\r\n\t\t\twidth: \t\tnull,\r\n\t\t\tscale:\t\ttrue,\r\n\t\t\tlabels:\t\ttrue,\r\n\t\t\ttooltip:\ttrue,\r\n\t\t\tstep: \t\tnull,\r\n\t\t\tdisabled:\tfalse,\r\n\t\t\tonChange:\tnull,\r\n\t\t\tprefixToScaleValues: ''\r\n\t\t};\r\n\r\n\t\tthis.cls = {\r\n\t\t\tcontainer:\t'rs-container',\r\n\t\t\tbackground: 'rs-bg',\r\n\t\t\tselected: \t'rs-selected',\r\n\t\t\tpointer: \t'rs-pointer',\r\n\t\t\tscale: \t\t'rs-scale',\r\n\t\t\tnoscale:\t'rs-noscale',\r\n\t\t\ttip: \t\t'rs-tooltip'\r\n\t\t};\r\n\r\n\t\tfor (var i in this.conf) { if (conf.hasOwnProperty(i)) this.conf[i] = conf[i]; }\r\n\r\n\t\tthis.init();\r\n\t};\r\n\r\n\tRS.prototype.init = function () {\r\n\t\tif (typeof this.conf.target === 'object') this.input = this.conf.target;\r\n\t\telse this.input = document.getElementById(this.conf.target.replace('#', ''));\r\n\r\n\t\tif (!this.input) return console.log('Cannot find target element...');\r\n\r\n\t\tthis.inputDisplay = getComputedStyle(this.input, null).display;\r\n\t\tthis.input.style.display = 'none';\r\n\t\tthis.valRange = !(this.conf.values instanceof Array);\r\n\r\n\t\tif (this.valRange) {\r\n\t\t\tif (!this.conf.values.hasOwnProperty('min') || !this.conf.values.hasOwnProperty('max'))\r\n\t\t\t\treturn console.log('Missing min or max value...');\r\n\t\t}\r\n\t\treturn this.createSlider();\r\n\t};\r\n\r\n\tRS.prototype.createSlider = function () {\r\n\t\tthis.slider = createElement('div', this.cls.container);\r\n\t\tthis.slider.innerHTML = '
    ';\r\n\t\tthis.selected = createElement('div', this.cls.selected);\r\n\t\tthis.pointerL = createElement('div', this.cls.pointer, ['dir', 'left']);\r\n\t\tthis.scale = createElement('div', this.cls.scale);\r\n\r\n\t\tif (this.conf.tooltip) {\r\n\t\t\tthis.tipL = createElement('div', this.cls.tip);\r\n\t\t\tthis.tipR = createElement('div', this.cls.tip);\r\n\t\t\tthis.pointerL.appendChild(this.tipL);\r\n\t\t}\r\n\t\tthis.slider.appendChild(this.selected);\r\n\t\tthis.slider.appendChild(this.scale);\r\n\t\tthis.slider.appendChild(this.pointerL);\r\n\r\n\t\tif (this.conf.range) {\r\n\t\t\tthis.pointerR = createElement('div', this.cls.pointer, ['dir', 'right']);\r\n\t\t\tif (this.conf.tooltip) this.pointerR.appendChild(this.tipR);\r\n\t\t\tthis.slider.appendChild(this.pointerR);\r\n\t\t}\r\n\r\n\t\tthis.input.parentNode.insertBefore(this.slider, this.input.nextSibling);\r\n\r\n if (this.conf.width) this.slider.style.width = parseInt(this.conf.width) + 'px';\r\n\t\tthis.sliderLeft = this.slider.getBoundingClientRect().left;\r\n\t\tthis.sliderWidth = this.slider.clientWidth;\r\n\t\tthis.pointerWidth = this.pointerL.clientWidth;\r\n\r\n\t\tif (!this.conf.scale) this.slider.classList.add(this.cls.noscale);\r\n\r\n\t\treturn this.setInitialValues();\t\r\n\t};\r\n\r\n\tRS.prototype.setInitialValues = function () {\r\n\t\tthis.disabled(this.conf.disabled);\r\n\r\n\t\tif (this.valRange) this.conf.values = prepareArrayValues(this.conf);\r\n\r\n\t\tthis.values.start = 0;\r\n\t\tthis.values.end = this.conf.range ? this.conf.values.length - 1 : 0;\r\n\r\n\t\tif (this.conf.set && this.conf.set.length) {// && checkInitial(this.conf)) {\r\n\t\t\tvar vals = this.conf.set;\r\n\r\n\t\t\tif (this.conf.range) {\r\n\t\t\t\tthis.values.start = this.conf.values.indexOf(vals[0]);\r\n\t\t\t\tthis.values.end = this.conf.set[1] ? this.conf.values.indexOf(vals[1]) : null;\r\n\t\t\t}\r\n\t\t\telse this.values.end = this.conf.values.indexOf(vals[0]);\r\n\t\t}\r\n\t\treturn this.createScale();\r\n\t};\r\n\r\n\tRS.prototype.createScale = function (resize) {\r\n\t\tthis.step = this.sliderWidth / (this.conf.values.length - 1);\r\n\r\n\t\tfor (var i = 0, iLen = this.conf.values.length; i < iLen; i++) {\r\n\t\t\tvar span = createElement('span'),\r\n\t\t\t\tins = createElement('ins');\r\n\r\n\t\t\tspan.appendChild(ins);\r\n\t\t\tspan.setAttribute('class', 'scale-' + i);\r\n\t\t\tthis.scale.appendChild(span);\r\n\r\n\t\t\tspan.style.width = i === iLen - 1 ? 0 : this.step + 'px';\r\n\r\n\t\t\tif (!this.conf.labels) {\r\n\t\t\t\tif (i === 0 || i === iLen - 1) ins.innerHTML = this.conf.prefixToScaleValues + this.conf.values[i]\r\n\t\t\t}\r\n\t\t\telse ins.innerHTML = this.conf.prefixToScaleValues + this.conf.values[i];\r\n\r\n\t\t\tins.style.marginLeft = (ins.clientWidth / 2) * - 1 + 'px';\r\n\t\t}\r\n\r\n\t\treturn this.addEvents();\r\n\t};\r\n\r\n\tRS.prototype.updateScale = function () {\r\n\t\tthis.step = this.sliderWidth / (this.conf.values.length - 1);\r\n\r\n\t\tvar pieces = this.slider.querySelectorAll('span');\r\n\r\n\t\tfor (var i = 0, iLen = pieces.length; i < iLen; i++)\r\n\t\t\tpieces[i].style.width = this.step + 'px';\r\n\r\n\t\treturn this.setValues();\r\n\t};\r\n\r\n\tRS.prototype.addEvents = function () {\r\n\t\tvar pointers = this.slider.querySelectorAll('.' + this.cls.pointer),\r\n\t\t\tpieces = this.slider.querySelectorAll('span');\r\n\r\n\t\tcreateEvents(document, 'mousemove touchmove', this.move.bind(this));\r\n\t\tcreateEvents(document, 'mouseup touchend touchcancel', this.drop.bind(this));\r\n\r\n\t\tfor (var i = 0, iLen = pointers.length; i < iLen; i++)\r\n\t\t\tcreateEvents(pointers[i], 'mousedown touchstart', this.drag.bind(this));\r\n\r\n\t\tfor (var i = 0, iLen = pieces.length; i < iLen; i++)\r\n\t\t\tcreateEvents(pieces[i], 'click', this.onClickPiece.bind(this));\r\n\r\n\t\twindow.addEventListener('resize', this.onResize.bind(this));\r\n\r\n\t\treturn this.setValues();\r\n\t};\r\n\r\n\tRS.prototype.drag = function (e) {\r\n\t\te.preventDefault();\r\n\r\n\t\tif (this.conf.disabled) return;\r\n\r\n\t\tvar dir = e.target.getAttribute('data-dir');\r\n\t\tif (dir === 'left') this.activePointer = this.pointerL;\r\n\t\tif (dir === 'right') this.activePointer = this.pointerR;\r\n\r\n\t\treturn this.slider.classList.add('sliding');\r\n\t};\r\n\r\n\tRS.prototype.move = function (e) {\r\n\t\tif (this.activePointer && !this.conf.disabled) {\r\n\t\t\tvar coordX = e.type === 'touchmove' ? e.touches[0].clientX : e.pageX,\r\n\t\t\t\tindex = coordX - this.sliderLeft - (this.pointerWidth / 2);\r\n\r\n\t\t\tindex = Math.round(index / this.step);\r\n\r\n\t\t\tif (index <= 0) index = 0;\r\n\t\t\tif (index > this.conf.values.length - 1) index = this.conf.values.length - 1;\r\n\r\n\t\t\tif (this.conf.range) {\r\n\t\t\t\tif (this.activePointer === this.pointerL) this.values.start = index;\r\n\t\t\t\tif (this.activePointer === this.pointerR) this.values.end = index;\r\n\t\t\t}\r\n\t\t\telse this.values.end = index;\r\n\r\n\t\t\treturn this.setValues();\r\n\t\t}\r\n\t};\r\n\r\n\tRS.prototype.drop = function () {\r\n\t\tthis.activePointer = null;\r\n\t};\r\n\r\n\tRS.prototype.setValues = function (start, end) {\r\n\t\tvar activePointer = this.conf.range ? 'start' : 'end';\r\n\r\n\t\tif (start && this.conf.values.indexOf(start) > -1)\r\n\t\t\tthis.values[activePointer] = this.conf.values.indexOf(start);\r\n\r\n\t\tif (end && this.conf.values.indexOf(end) > -1)\r\n\t\t\tthis.values.end = this.conf.values.indexOf(end);\r\n\r\n\t\tif (this.conf.range && this.values.start > this.values.end)\r\n\t\t\tthis.values.start = this.values.end;\r\n\r\n\t\tthis.pointerL.style.left = (this.values[activePointer] * this.step - (this.pointerWidth / 2)) + 'px';\r\n\r\n\t\tif (this.conf.range) {\r\n\t\t\tif (this.conf.tooltip) {\r\n\t\t\t\tthis.tipL.innerHTML = this.conf.prefixToScaleValues + this.conf.values[this.values.start];\r\n\t\t\t\tthis.tipR.innerHTML = this.conf.prefixToScaleValues + this.conf.values[this.values.end];\r\n\t\t\t}\r\n\t\t\tthis.input.value = this.conf.values[this.values.start] + ',' + this.conf.values[this.values.end];\r\n\t\t\tthis.pointerR.style.left = (this.values.end * this.step - (this.pointerWidth / 2)) + 'px';\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.conf.tooltip)\r\n\t\t\t\tthis.tipL.innerHTML = this.conf.values[this.values.end];\r\n\t\t\tthis.input.value = this.conf.values[this.values.end];\r\n\t\t}\r\n\r\n\t\tif (this.values.end > this.conf.values.length - 1) this.values.end = this.conf.values.length - 1;\r\n\t\tif (this.values.start < 0) this.values.start = 0;\r\n\r\n\t\tthis.selected.style.width = (this.values.end - this.values.start) * this.step + 'px';\r\n\t\tthis.selected.style.left = this.values.start * this.step + 'px';\r\n\t\treturn this.onChange();\r\n\t};\r\n\r\n\tRS.prototype.onClickPiece = function (e) {\r\n\r\n\t\tif (this.conf.disabled) return;\r\n\r\n\t\tvar idx = Math.round((e.clientX - this.sliderLeft) / this.step);\r\n\r\n\t\tif (idx > this.conf.values.length - 1) idx = this.conf.values.length - 1;\r\n\t\tif (idx < 0) idx = 0;\r\n\r\n\t\tif (this.conf.range) {\r\n\t\t\tif (idx - this.values.start <= this.values.end - idx) {\r\n\t\t\t\tthis.values.start = idx;\r\n\t\t\t}\r\n\t\t\telse this.values.end = idx;\r\n\t\t}\r\n\t\telse this.values.end = idx;\r\n\r\n\t\tthis.slider.classList.remove('sliding');\r\n\r\n\t\treturn this.setValues();\r\n\t};\r\n\r\nRS.prototype.onChange = function () {\r\n\r\n\t\tvar _this = this;\r\n\t\tif (this.timeout) clearTimeout(this.timeout);\r\n\r\n\t\tthis.timeout = setTimeout(function () {\r\n\t\t\tif (_this.conf.onChange && typeof _this.conf.onChange === 'function') {\r\n\t\t\t\treturn _this.conf.onChange(_this.input.value);\r\n\t\t\t}\r\n\t\t}, 500);\r\n\t};\r\n\r\n\tRS.prototype.onResize = function () {\r\n\t\tthis.sliderLeft = this.slider.getBoundingClientRect().left;\r\n\t\tthis.sliderWidth = this.slider.clientWidth;\r\n\t\treturn this.updateScale();\r\n\t};\r\n\r\n\tRS.prototype.disabled = function (disabled) {\r\n\t\tthis.conf.disabled = disabled;\r\n\t\tthis.slider.classList[disabled ? 'add' : 'remove']('disabled');\r\n\t};\r\n\r\n\tRS.prototype.getValue = function () {\r\n\t\treturn this.input.value;\r\n\t};\r\n\r\n\tRS.prototype.destroy = function () {\r\n\t\tthis.input.style.display = this.inputDisplay;\r\n\t\tthis.slider.remove();\r\n\t};\r\n\r\n\tvar createElement = function (el, cls, dataAttr) {\r\n\t\tvar element = document.createElement(el);\r\n\t\tif (cls) element.className = cls;\r\n\t\tif (dataAttr && dataAttr.length === 2)\r\n\t\t\telement.setAttribute('data-' + dataAttr[0], dataAttr[1]);\r\n\r\n\t\treturn element;\r\n\t},\r\n\r\n\tcreateEvents = function (el, ev, callback) {\r\n\t\tvar events = ev.split(' ');\r\n\r\n\t\tfor (var i = 0, iLen = events.length; i < iLen; i++)\r\n\t\t\tel.addEventListener(events[i], callback);\r\n\t},\r\n\r\n\tprepareArrayValues = function (conf) {\r\n\t\tvar values = [],\r\n\t\t\trange = conf.values.max - conf.values.min;\r\n\r\n\t\tif (!conf.step) {\r\n\t\t\tconsole.log('No step defined...');\r\n\t\t\treturn [conf.values.min, conf.values.max];\r\n\t\t}\r\n\t\tfor (var i = 0, iLen = (range / conf.step); i < iLen; i++) {\r\n\t\t\tif (conf.set && conf.set.length == 2) {\r\n\t\t\t\tif (conf.set[0] > (conf.values.min + (i - 1) * conf.step) && conf.set[0] < (conf.values.min + i * conf.step)) {\r\n\t\t\t\t\tvalues.push(Math.round(conf.set[0]));\r\n\t\t\t\t}\r\n\t\t\t\telse if (conf.set[1] > (conf.values.min + (i - 1) * conf.step) && conf.set[1] < (conf.values.min + i * conf.step)) {\r\n\t\t\t\t\tvalues.push(Math.round(conf.set[1]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvalues.push(Math.round(conf.values.min + i * conf.step));\r\n\t\t}\r\n\r\n\t\tif (values.indexOf(conf.values.max) < 0) values.push(Math.round(conf.values.max));\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcheckInitial = function (conf) {\r\n\t\tif (!conf.set || conf.set.length < 1) return null;\r\n\t\tif (conf.values.indexOf(conf.set[0]) < 0) return null;\r\n\r\n\t\tif (conf.range) {\r\n\t\t\tif (conf.set.length < 2 || conf.values.indexOf(conf.set[1]) < 0) return null;\r\n\t\t}\r\n\t\treturn true;\r\n\t};\r\n\r\nvar rSlider = RS;\r\n\r\nexport { rSlider }","declare var ImagesParams: {\r\n UseCDNImageCache: boolean,\r\n CloudflareAccountHash: string\r\n};\r\n\r\nexport default class Utils {\r\n static deleteCookie = (name: string) => {\r\n document.cookie = name + \"=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\r\n };\r\n\r\n static getCookie(cookieName: string) {\r\n let cookie: any = {};\r\n document.cookie.split(';').forEach(function (el) {\r\n let [key, value] = el.split('=');\r\n cookie[key.trim()] = value;\r\n })\r\n\r\n return cookie[cookieName];\r\n }\r\n\r\n static setCookie(name: string, value: any, days: number) {\r\n var expires = \"\";\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n else {\r\n expires = \"; expires=Session\";\r\n }\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\r\n }\r\n\r\n static setSessionCookie(name: string, value: any) {\r\n var expires = \"\";\r\n expires = \"; expires=Session\";\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\r\n }\r\n\r\n\r\n static getHashKeyValuePairs() {\r\n return this.getUrlKeyValuePairs(window.location.hash);\r\n }\r\n\r\n static getHrefKeyValuePairs() {\r\n return this.getUrlKeyValuePairs(window.location.search);\r\n }\r\n\r\n static getUrlKeyValuePairs(url: string) {\r\n var result = [];\r\n\r\n if (url) {\r\n var hash = url.substring(1); //removes the # or ? character for hash or queryString repectively.\r\n var pairs = hash.split('&');\r\n for (var i = 0; i < pairs.length; i++) {\r\n var pairParts = pairs[i].split('=');\r\n if (pairParts.length == 2) {\r\n var key = pairParts[0];\r\n var value = pairParts[1];\r\n result.push({ key: key, value: value });\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static loadImagesForProductListings_BasedOnView(prodListing: any) {\r\n var isGridView = prodListing.hasClass('view-as-grid');\r\n prodListing.find('.productImageWrapper img').each(function (index: any) {\r\n var img = document.querySelector(index);\r\n setTimeout(function () {\r\n var newImgUrl = img.closest('.innerwrapper').data(isGridView ? 'prodimggridview' : 'prodimglistview');\r\n // Set the new Img Url to the proper attribute src or lazy-src.\r\n if (img.attr(\"lazy-src\")) {\r\n img.attr(\"lazy-src\", newImgUrl);\r\n }\r\n else if (img[0].src) {\r\n img[0].src = newImgUrl;\r\n }\r\n }, 1);\r\n });\r\n }\r\n\r\n static getImageURL(width: number, height: number, imgUrl: string): string {\r\n if (ImagesParams.UseCDNImageCache) {\r\n if (imgUrl.startsWith('~')) {\r\n imgUrl = imgUrl.substring(1);\r\n }\r\n return `https://www.gak.co.uk/cdn-cgi/image/fit=scale-down,width=${width},height=${height},format=auto/${imgUrl}`;\r\n }\r\n else {\r\n return `https://www.gak.co.uk/cdn-cgi/imagedelivery/${ImagesParams.CloudflareAccountHash}/${imgUrl}/${width}x${height}`;\r\n }\r\n \r\n }\r\n\r\n static atou(b64: string) {\r\n return decodeURIComponent(escape(atob(b64)));\r\n }\r\n\r\n static utoa(data: any) {\r\n return btoa(unescape(encodeURIComponent(data)));\r\n }\r\n}","import { rSlider } from \"./rSlider.js\";\r\nimport { pushEnhancedEcommerce } from \"./enhanced-ecommerce.js\";\r\nimport Utils from \"./utils\";\r\n\r\ndeclare var _getProductsUrl: string;\r\ndeclare var _ShopByProduct_CurrentOrder: string;\r\ndeclare var _Default_SortOrder: string;\r\ndeclare var _pageSize: number;\r\ndeclare var _numberOfItems: number;\r\ndeclare var _filtersModel: any;\r\ndeclare var _ShopByProduct_RefreshProductListUrl: string;\r\ndeclare var _hasFilter: any;\r\ndeclare var _pageName: string;\r\ndeclare var _inStock: boolean;\r\ndeclare var _pageID: number;\r\ndeclare var _pageRegionID: number;\r\ndeclare var _categoryID: number;\r\ndeclare var _pageNum: number;\r\ndeclare var _maxNumItems: number;\r\ndeclare var _maxPage: number;\r\n\r\nvar ee: any;\r\n\r\n/******START - range slider functions */\r\nvar mySlider: any;\r\nconst mediaQuery = window.matchMedia('(max-width: 1023px)');\r\n\r\nvar _scrollUp = true;\r\nvar _refreshProducts = false;\r\nvar _resetSlider = false;\r\nvar _isPageLoad = false;\r\nvar _isFiltering = false;\r\nvar pageWidth = window.innerWidth;\r\n\r\nvar priceValues: any;\r\nvar triggerSliderOnChange: boolean = false;\r\nvar priceFilterSteps = 80;\r\n\r\nvar windowWidth = 0;\r\n\r\nvar maxDisplayPageNum: number = 5;// mediaQuery.matches ? 5 : 10;\r\nvar _pageHasChanged: boolean = false;\r\n\r\nconst urlParams = ['q', 'page', 'sort', 'stockonly', 'min', 'max',\r\n 'b', 'bs', 'cat', 'pt', 'pst', 'layout', 'cc']\r\n\r\nfunction initRangeSlider() {\r\n let rangeSlider = document.querySelectorAll('.rs-container');\r\n let filter = (document.getElementById(\"priceRangeSlider\"));\r\n\r\n if (!rangeSlider || rangeSlider.length == 0) {\r\n triggerSliderOnChange = false;\r\n if (window.location.href.indexOf('?') > 0 && (window.location.href.indexOf('min=') > 0 || window.location.href.indexOf('max=') > 0)) {\r\n let min = \"\";\r\n if (window.location.href.indexOf('min=') != -1) {\r\n min = window.location.href.substring(window.location.href.indexOf('min=') + 4);\r\n min = min.substring(0, min.indexOf('&') > 0 ? min.indexOf('&') : min.length);\r\n _filtersModel.PriceRange.SelectedMin = min;\r\n } else {\r\n min = Math.floor(_filtersModel.PriceRange.MinProductPrice).toString();\r\n }\r\n\r\n let max = window.location.href.substring(window.location.href.indexOf('max=') + 4);\r\n max = max.substring(0, max.indexOf('&') > 0 ? max.indexOf('&') : max.length);\r\n _filtersModel.PriceRange.SelectedMax = max;\r\n\r\n let filter = (document.getElementById(\"priceRangeSlider\"));\r\n if (filter) {\r\n filter.value = min + ',' + max;\r\n\r\n var detailsToggle = filter!.closest(\"details\")!;\r\n if (detailsToggle &&\r\n (_filtersModel.PriceRange.SelectedMin != _filtersModel.PriceRange.MinProductPrice\r\n || _filtersModel.PriceRange.SelectedMax != _filtersModel.PriceRange.MaxProductPrice)) {\r\n detailsToggle.setAttribute(\"open\", \"\");\r\n }\r\n }\r\n }\r\n //else {\r\n\r\n // if (filter) {\r\n // var split = filter.value.split(\",\");\r\n // _filtersModel.PriceRange.SelectedMin = Math.round(parseInt(split[0]));\r\n // _filtersModel.PriceRange.SelectedMax = Math.round(parseInt(split[1]));\r\n // }\r\n //}\r\n\r\n if (filter) {\r\n if (_resetSlider) {\r\n _filtersModel.PriceRange.SelectedMin = null;\r\n _filtersModel.PriceRange.SelectedMax = null;\r\n _resetSlider = false;\r\n }\r\n let setStart = !isNaN(parseInt(_filtersModel.PriceRange.SelectedMin)) ? parseInt(_filtersModel.PriceRange.SelectedMin) : Math.floor(_filtersModel.PriceRange.MinProductPrice);\r\n let setEnd = !isNaN(parseInt(_filtersModel.PriceRange.SelectedMax)) ? parseInt(_filtersModel.PriceRange.SelectedMax) : Math.ceil(_filtersModel.PriceRange.MaxProductPrice);\r\n\r\n mySlider = new rSlider({\r\n target: '#priceRangeSlider',\r\n values: { min: Math.floor(_filtersModel.PriceRange.MinProductPrice), max: Math.ceil(_filtersModel.PriceRange.MaxProductPrice) },\r\n step: Math.round((_filtersModel.PriceRange.MaxProductPrice - _filtersModel.PriceRange.MinProductPrice) / priceFilterSteps),\r\n range: true,\r\n tooltip: true,\r\n scale: true,\r\n labels: true,\r\n prefixToScaleValues: '£',\r\n set: [setStart, setEnd],\r\n /*onChange: (values: any) => {\r\n //priceValues = values;\r\n console.log(mySlider);\r\n console.log(values);\r\n //debounce(onPriceChange, 1000);\r\n if (triggerSliderOnChange) {\r\n showHideSpinner(true);\r\n var split = values.split(\",\");\r\n\r\n if (_filtersModel.PriceRange.SelectedMax != split[1] ||\r\n _filtersModel.PriceRange.SelectedMin != split[0]) {\r\n\r\n _filtersModel.PriceRange.SelectedMin = split[0];\r\n _filtersModel.PriceRange.SelectedMax = split[1];\r\n applyFilters();\r\n }\r\n else showHideSpinner(false);\r\n }\r\n else triggerSliderOnChange = true;\r\n }*/\r\n onChange: mediaQuery.matches ? debouncedPriceChangeFunction : onPriceChange\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction debounce(\r\n func: (...args: Params) => any,\r\n timeout: number,\r\n): (...args: Params) => void {\r\n let timer: NodeJS.Timeout\r\n return (...args: Params) => {\r\n clearTimeout(timer)\r\n timer = setTimeout(() => {\r\n func(...args)\r\n }, timeout)\r\n }\r\n}\r\n\r\nconst debouncedResizeFunction = debounce(checkForMobileResize, 500);\r\nconst debouncedPriceChangeFunction = debounce(onPriceChange, 2000);\r\n\r\nfunction onPriceChange(values: any) {\r\n if (triggerSliderOnChange) {\r\n //showHideSpinner(true);\r\n var split = values.split(\",\");\r\n if (_filtersModel.PriceRange.SelectedMax != split[1] ||\r\n _filtersModel.PriceRange.SelectedMin != split[0]) {\r\n\r\n _filtersModel.PriceRange.SelectedMin = split[0];\r\n _filtersModel.PriceRange.SelectedMax = split[1];\r\n if (_filtersModel.PriceRange.SelectedMin != null && _filtersModel.PriceRange.SelectedMax != null && _filtersModel.PriceRange.SelectedMin == _filtersModel.PriceRange.SelectedMax) {\r\n let step = Math.round((_filtersModel.PriceRange.MaxProductPrice - _filtersModel.PriceRange.MinProductPrice) / priceFilterSteps);\r\n _filtersModel.PriceRange.SelectedMax = (step + parseInt(_filtersModel.PriceRange.SelectedMax));\r\n }\r\n applyFilters();\r\n }\r\n else showHideSpinner(false);\r\n\r\n }\r\n else {\r\n triggerSliderOnChange = true;\r\n //on first initialisation\r\n var split = values.split(\",\");\r\n if (_filtersModel.PriceRange.SelectedMin != null && _filtersModel.PriceRange.SelectedMax != null && _filtersModel.PriceRange.SelectedMin == _filtersModel.PriceRange.SelectedMax) {\r\n let step = Math.round((_filtersModel.PriceRange.MaxProductPrice - _filtersModel.PriceRange.MinProductPrice) / priceFilterSteps);\r\n _filtersModel.PriceRange.SelectedMax = (step + parseInt(_filtersModel.PriceRange.SelectedMax));\r\n }\r\n }\r\n}\r\n\r\n//function checkForMobileOLD() {\r\n// if (mediaQuery.matches) {\r\n// let mobilefiltersection = document.getElementById('modal-mobile-filters');\r\n// if (!mobilefiltersection) {\r\n// //create the filters for mobile\r\n// mobilefiltersection = document.createElement('div');\r\n// mobilefiltersection.setAttribute('id', 'modal-mobile-filters');\r\n// mobilefiltersection.setAttribute('class', 'modal slide-in-modal bg-white');\r\n// mobilefiltersection.setAttribute('data-modal', '');\r\n// mobilefiltersection.setAttribute(\"hidden\", \"hidden\");\r\n// mobilefiltersection.innerHTML = `
    \r\n//

    Filters

    \r\n//
    \r\n//
    \r\n//
    `;\r\n// let prefooter = document.getElementsByClassName('pre-footer');\r\n// if (prefooter && prefooter.length > 0) {\r\n// let prefooterElem = prefooter[0];\r\n// let parentElem = prefooter[0].parentNode;\r\n// if (parentElem) {\r\n// parentElem.insertBefore(mobilefiltersection, prefooterElem);\r\n// }\r\n// }\r\n// }\r\n// let contentAreaMobile = document.getElementById('filter-content-area-mobile');\r\n// let contentAreaDesktop = document.getElementById('filter-content-area-desktop');\r\n// let rangeSlider = contentAreaDesktop?.querySelectorAll('.rs-container');\r\n// if (contentAreaMobile && contentAreaDesktop && contentAreaMobile.innerHTML.trim() == '') {\r\n// if (rangeSlider && rangeSlider.length > 0) {\r\n// rangeSlider[0].remove();\r\n// }\r\n// contentAreaMobile.innerHTML = (contentAreaDesktop.cloneNode(true) as HTMLElement).innerHTML;\r\n// contentAreaDesktop.innerHTML = '';\r\n// initRangeSlider();\r\n// }\r\n// if ((window as any).ARIAmodal) {\r\n// (window as any).ARIAmodal.init();\r\n// addEventListeners();\r\n// }\r\n// }\r\n// else {\r\n// //close modal if open\r\n// let modalClose = document.querySelector('#modal-mobile-filters .a11y-modal__close-btn');\r\n// if (modalClose) {\r\n// (modalClose as HTMLElement).click();\r\n// }\r\n// let mobilefiltersection = document.getElementById('modal-mobile-filters');\r\n// let contentAreaMobile = document.getElementById('filter-content-area-mobile');\r\n// let contentAreaDesktop = document.getElementById('filter-content-area-desktop');\r\n// let rangeSlider = contentAreaMobile?.querySelectorAll('.rs-container');\r\n// if (contentAreaMobile && contentAreaDesktop && contentAreaDesktop.innerHTML.trim() == '') {\r\n// if (rangeSlider && rangeSlider.length > 0) {\r\n// rangeSlider[0].remove();\r\n// }\r\n// contentAreaDesktop.innerHTML = (contentAreaMobile.cloneNode(true) as HTMLElement).innerHTML;\r\n// contentAreaMobile.innerHTML = '';\r\n// initRangeSlider();\r\n// }\r\n// if (mobilefiltersection) mobilefiltersection.remove();\r\n// } \r\n//}\r\n\r\ndebouncedResizeFunction();\r\ninitRangeSlider();\r\n/**END - range slider functions*/\r\n\r\nvar DEFAULT_FILTERS = { \"IsInStockShowAll\": true };\r\nvar ListLayoutCookieName = \"GAK_ListLayout\";\r\n\r\n//function addEventListenersMobile() {\r\n// var showAllRad = document.getElementById(\"showAllRad\")!;\r\n// if (showAllRad) showAllRad.addEventListener(\"change\", handleShowAll);\r\n\r\n// var inStockOnlyRad = document.getElementById(\"inStockOnlyRad\")!;\r\n// if (inStockOnlyRad) inStockOnlyRad.addEventListener(\"change\", handleInStockOnly);\r\n// //extra check for mobile filters as they keep clearing\r\n// if (_inStock) {\r\n// if (showAllRad) (showAllRad).checked = false;\r\n// if (inStockOnlyRad) (inStockOnlyRad).checked = true;\r\n// }\r\n// else {\r\n// if (showAllRad) (showAllRad).checked = true;\r\n// if (inStockOnlyRad) (inStockOnlyRad).checked = false;\r\n// }\r\n\r\n// var showAllBrandsButton = document.getElementById(\"showAllFilters-brands\")!;\r\n// if (showAllBrandsButton) showAllBrandsButton.addEventListener(\"click\", (e) => handleFilterToggle(e, showAllBrandsButton, \"brands\"));\r\n\r\n//}\r\n\r\nfunction addEventListeners() {\r\n if (_hasFilter) {\r\n addPagingEventListeners();\r\n addFiltersEventListeners();\r\n }\r\n var moreInfoLink = document.getElementById(\"more-info-link\")!;\r\n var moreInfoSection = document.getElementById(\"more-panel\")!;\r\n if (moreInfoLink) moreInfoLink.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n if (moreInfoSection) moreInfoSection.scrollIntoView({ behavior: \"smooth\" });\r\n });\r\n\r\n var browseLink = document.querySelector(\"a[href='#products-panel']\")!;\r\n var browseSection = document.getElementById(\"products-panel\")!;\r\n if (browseLink) browseLink.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n if (browseSection) browseSection.scrollIntoView({ behavior: \"smooth\" });\r\n });\r\n\r\n //view all brands\r\n if (document.getElementsByClassName('toggle-parent').length) {\r\n var showMoreToggles = document.querySelectorAll('.toggle-control .btn');\r\n showMoreToggles.forEach(function (toggle) {\r\n var newToggle = toggle.cloneNode(true);\r\n newToggle.addEventListener('click', handleToggleClick);\r\n toggle.parentNode!.replaceChild(newToggle, toggle);\r\n })\r\n }\r\n\r\n //mobile filters\r\n let modalBtn = document.getElementById('btnOpenMobileFilter');\r\n if (modalBtn) {\r\n modalBtn.addEventListener(\"click\", (e) => {\r\n openCloseFilterModal(true);\r\n });\r\n }\r\n let modalClose = document.querySelector(\"#productListingFilter .a11y-modal__close-btn\");\r\n if (modalClose) modalClose.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n closeModal();\r\n });\r\n let applyFilterBtn = document.querySelectorAll(\".btn.filter-apply\");\r\n applyFilterBtn.forEach(function (applyBtn) {\r\n applyBtn.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n closeModal();\r\n });\r\n });\r\n\r\n let viewControlList = document.getElementById('productlist-view-list');\r\n if (viewControlList) {\r\n viewControlList.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n viewAsGrid(false);\r\n });\r\n }\r\n let viewControlGrid = document.getElementById('productlist-view-grid');\r\n if (viewControlGrid) {\r\n viewControlGrid.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n viewAsGrid(true);\r\n });\r\n }\r\n\r\n let products = document.querySelectorAll(\"#product-listing li\");\r\n products.forEach(function (productItem) {\r\n productItem.addEventListener('mouseover', function () {\r\n productItem.classList.add('hover');\r\n });\r\n productItem.addEventListener('mouseout', function () {\r\n productItem.classList.remove('hover');\r\n });\r\n });\r\n}\r\n\r\nfunction addFiltersEventListeners() {\r\n let sortBySelect = document.getElementById(\"resultSortSelector\") as HTMLSelectElement;\r\n if (sortBySelect != null) {\r\n sortBySelect.addEventListener(\"change\", handleSortSelectorChange);\r\n sortBySelect.value = _ShopByProduct_CurrentOrder;\r\n }\r\n\r\n\r\n var clearBtn = document.getElementsByClassName(\"filter-clear\");\r\n\r\n for (var i = 0; i < clearBtn.length; i++) {\r\n clearBtn[i].addEventListener('click', handleClearFilter);\r\n }\r\n\r\n var filterOpt = document.getElementsByClassName(\"filter-option\");\r\n\r\n for (var i = 0; i < filterOpt.length; i++) {\r\n filterOpt[i].addEventListener('click', applyFilters);\r\n }\r\n\r\n var filterTag = document.getElementsByClassName(\"filter-tag\");\r\n\r\n for (var i = 0; i < filterTag.length; i++) {\r\n filterTag[i].addEventListener('click', handleRemoveFilter);\r\n }\r\n\r\n var showAllRad = document.getElementById(\"showAllRad\")!;\r\n if (showAllRad) {\r\n showAllRad.addEventListener(\"change\", handleShowAll);\r\n }\r\n\r\n var inStockOnlyRad = document.getElementById(\"inStockOnlyRad\")!;\r\n if (inStockOnlyRad)\r\n inStockOnlyRad.addEventListener(\"change\", handleInStockOnly);\r\n //extra check for mobile filters as they keep clearing\r\n if (_inStock) {\r\n if (showAllRad)\r\n (showAllRad).checked = false;\r\n if (inStockOnlyRad)\r\n (inStockOnlyRad).checked = true;\r\n }\r\n else {\r\n if (showAllRad)\r\n (showAllRad).checked = true;\r\n if (inStockOnlyRad)\r\n (inStockOnlyRad).checked = false;\r\n }\r\n\r\n var showAllBrandsButton = document.getElementById(\"showAllFilters-brands\")!;\r\n if (showAllBrandsButton)\r\n showAllBrandsButton.addEventListener(\"click\", (e) => handleFilterToggle(e, showAllBrandsButton, \"brands\"));\r\n\r\n var filterBrandsInput = document.getElementById(\"filterBrands\")!;\r\n if (filterBrandsInput)\r\n filterBrandsInput.addEventListener(\"input\", () => handleBrandsFilter(showAllBrandsButton));\r\n var filterBrandSeriesInput = document.getElementById(\"filterBrandSeries\")!;\r\n if (filterBrandSeriesInput)\r\n filterBrandSeriesInput.addEventListener(\"input\", () => handleBrandSeriesFilter());\r\n var filterCategoriesInput = document.getElementById(\"filterCategories\")!;\r\n if (filterCategoriesInput)\r\n filterCategoriesInput.addEventListener(\"input\", () => handleCategoriesFilter());\r\n var filterTypesInput = document.getElementById(\"filterTypes\")!;\r\n if (filterTypesInput)\r\n filterTypesInput.addEventListener(\"input\", () => handleTypesFilter());\r\n var filterSubTypesInput = document.getElementById(\"filterSubTypes\")!;\r\n if (filterSubTypesInput)\r\n filterSubTypesInput.addEventListener(\"input\", () => handleSubTypesFilter());\r\n}\r\n\r\nfunction addPagingEventListeners() {\r\n var pageButtons = document.querySelectorAll('.paging-section .page-num');\r\n if (pageButtons.length) {\r\n for (var i = 0; i < pageButtons.length; i++) {\r\n pageButtons[i].addEventListener('click', handlePageClick);\r\n }\r\n }\r\n var pagePrevious = document.querySelector('.paging-section .page-prev');\r\n if (pagePrevious) {\r\n pagePrevious.addEventListener('click', handlePreviousPage);\r\n }\r\n var pageNext = document.querySelector('.paging-section .page-next');\r\n if (pageNext) {\r\n pageNext.addEventListener('click', handleNextPage);\r\n }\r\n}\r\n\r\nfunction viewAsGrid(isGridView: boolean) {\r\n let mask = document.querySelector('.product-listing-container .mask');\r\n if (mask) {\r\n mask.classList.add(\"hide-contents\");\r\n }\r\n\r\n let productList = document.getElementById('product-listing');\r\n let viewControlList = document.getElementById('productlist-view-list');\r\n let viewControlGrid = document.getElementById('productlist-view-grid');\r\n\r\n if (isGridView && productList) {\r\n if (viewControlList) viewControlList.classList.remove(\"active\");\r\n if (viewControlGrid) viewControlGrid.classList.add(\"active\");\r\n productList.classList.add(\"grid\");\r\n productList.classList.remove(\"list-view\");\r\n }\r\n else if (productList) {\r\n if (viewControlList) viewControlList.classList.add(\"active\");\r\n if (viewControlGrid) viewControlGrid.classList.remove(\"active\");\r\n productList.classList.remove(\"grid\");\r\n productList.classList.add(\"list-view\");\r\n }\r\n\r\n //add timeout to account for css transition\r\n setTimeout(function () {\r\n if (mask) {\r\n mask.classList.remove(\"hide-contents\");\r\n }\r\n }, 200);\r\n\r\n let filtersMask = document.querySelector('.filter-row-controls .list-view');\r\n if (filtersMask) {\r\n filtersMask.classList.remove(\"hidden\");\r\n }\r\n\r\n var listLayout = Utils.getCookie(ListLayoutCookieName);\r\n\r\n if (_hasFilter && (isGridView && listLayout != 'grid') || (!isGridView && listLayout != 'list'))\r\n setSearchFilters(_filtersModel, true);\r\n\r\n Utils.setCookie(ListLayoutCookieName, isGridView ? \"grid\" : \"list\", 730);\r\n}\r\n\r\nfunction closeModal() {\r\n var showAllBrandsButton = document.getElementById(\"showAllFilters-brands\")!;\r\n if (showAllBrandsButton) {\r\n minimiseFilters(showAllBrandsButton, \"brands\");\r\n }\r\n openCloseFilterModal(false);\r\n}\r\n\r\nfunction handleToggleClick(evt: any) {\r\n let elem = evt.target as HTMLElement;\r\n if ((evt.target as any).tagName != \"BUTTON\") {\r\n elem = (evt.target as any).parentNode;\r\n }\r\n var msg = elem.firstChild;\r\n var closeddmsg = elem.getAttribute('data-closedmsg');\r\n var toggledmsg = elem.getAttribute('data-toggledmsg');\r\n var item = elem.parentElement?.parentElement?.querySelector('.toggle-content');\r\n\r\n if (item && msg && item.classList.contains('show')) {\r\n item.classList.remove('show');\r\n if (closeddmsg) {\r\n if (msg.nextSibling) {\r\n (msg.nextSibling as HTMLElement).innerHTML = closeddmsg;\r\n }\r\n else {\r\n (msg as HTMLElement).innerHTML = closeddmsg;\r\n }\r\n }\r\n elem.setAttribute('aria-expanded', 'false')\r\n }\r\n else if (item && msg) {\r\n item.classList.add('show');\r\n if (toggledmsg) {\r\n if (msg.nextSibling) {\r\n (msg.nextSibling as HTMLElement).innerHTML = toggledmsg;\r\n }\r\n else {\r\n (msg as HTMLElement).innerHTML = toggledmsg;\r\n }\r\n }\r\n elem.setAttribute('aria-expanded', 'true');\r\n }\r\n}\r\n\r\nfunction handleRemoveFilter(event: any) {\r\n const target = event.target as HTMLElement;\r\n var filter = target.closest(\"button\")!;\r\n var type = filter.getAttribute(\"data-type\")!;\r\n var id = filter.getAttribute(\"data-id\")!;\r\n if (type == \"brand\") {\r\n var brand = (document.getElementById(`brands-${id}`));\r\n brand.checked = false;\r\n\r\n var brandSeries = document.querySelectorAll(`[id*=brandseries][data-parent-id='${id}']`);\r\n\r\n if (brandSeries) {\r\n brandSeries.forEach(function (e: any) {\r\n e.checked = false;\r\n });\r\n }\r\n }\r\n\r\n if (type == \"category\") {\r\n var category = (document.getElementById(`categories-${id}`));\r\n\r\n category.checked = false;\r\n }\r\n\r\n if (type == \"productType\") {\r\n var productType = (document.getElementById(`types-${id}`));\r\n\r\n productType.checked = false;\r\n }\r\n\r\n if (type == \"productSubType\") {\r\n var productSubType = (document.getElementById(`subtypes-${id}`));\r\n\r\n productSubType.checked = false;\r\n }\r\n\r\n if (type == \"brandSerie\") {\r\n var brandSerie = (document.getElementById(`brandseries-${id}`));\r\n\r\n brandSerie.checked = false;\r\n }\r\n\r\n if (type == \"inStock\") {\r\n var inStock = (document.getElementById(\"inStockOnlyRad\"));\r\n\r\n inStock.checked =\r\n _inStock = false;\r\n\r\n }\r\n\r\n applyFilters();\r\n}\r\n\r\nfunction handleBrandsFilter(showAllButton?: HTMLElement) {\r\n showHideFilterOptions('filterBrands', '*[id^=\"brands-\"]');\r\n}\r\n\r\nfunction showHideFilterOptions(filterID: string, querySelectorString: string) {\r\n var filter = (document.getElementById(filterID))!.value!.toLowerCase();\r\n var options = document.querySelectorAll(querySelectorString);\r\n\r\n options.forEach(function (element, index) {\r\n let name = element.getAttribute(\"name\")!.toLowerCase();\r\n let brandChk = document.getElementById(element.id)!;\r\n let parent = brandChk.parentElement!;\r\n parent.classList.remove(\"hide\", \"show\");\r\n if (filter === \"\" || filter === undefined || filter === null) {\r\n parent.classList.add(\"show\");\r\n } else if (name.includes(filter)) {\r\n parent.classList.add(\"show\");\r\n } else {\r\n parent.classList.add(\"hide\");\r\n }\r\n });\r\n}\r\n\r\nfunction handleBrandSeriesFilter() {\r\n showHideFilterOptions('filterBrandSeries', '*[id^=\"brandseries-\"]');\r\n}\r\n\r\nfunction handleCategoriesFilter() {\r\n showHideFilterOptions('filterCategories', '*[id^=\"categories-\"]');\r\n}\r\n\r\nfunction handleTypesFilter() {\r\n showHideFilterOptions('filterTypes', '*[id^=\"types-\"]');\r\n}\r\n\r\nfunction handleSubTypesFilter() {\r\n showHideFilterOptions('filterSubTypes', '*[id^=\"subtypes-\"]');\r\n}\r\n\r\nfunction handleFilterToggle(event: MouseEvent, button: HTMLElement, filterType: string) {\r\n event.stopImmediatePropagation();\r\n var brands = document.querySelectorAll(`*[id^=\"${filterType}-\"]`);\r\n\r\n brands.forEach(function (item, index) {\r\n let brandChk = document.getElementById(item.id)!;\r\n let parent = brandChk.parentElement!;\r\n parent.classList.remove(\"hide\", \"show\");\r\n\r\n if (button.innerHTML === \"See all\") {\r\n parent.classList.add(\"show\");\r\n } else if (button.innerHTML === \"See less\") {\r\n if (parent.classList.contains(\"fixed\")) {\r\n parent.classList.add(\"show\");\r\n } else {\r\n parent.classList.add(\"hide\");\r\n }\r\n\r\n }\r\n })\r\n button.innerHTML = button.innerHTML === \"See all\" ? \"See less\" : \"See all\";\r\n}\r\n\r\nfunction minimiseFilters(button: HTMLElement, filterType: string) {\r\n var brands = document.querySelectorAll(`*[id^=\"${filterType}-\"]`);\r\n brands.forEach(function (item, index) {\r\n let brandChk = document.getElementById(item.id)!;\r\n let parent = brandChk.parentElement!;\r\n parent.classList.remove(\"hide\", \"show\");\r\n\r\n if (parent.classList.contains(\"fixed\")) {\r\n parent.classList.add(\"show\");\r\n } else {\r\n parent.classList.add(\"hide\");\r\n }\r\n })\r\n button.innerHTML = \"See all\";\r\n}\r\n\r\nfunction handleInStockOnly() {\r\n //showHideSpinner(true);\r\n var showAllRad = document.getElementById(\"showAllRad\")!;\r\n\r\n showAllRad.checked = false;\r\n _inStock = true;\r\n _refreshProducts = true;\r\n applyFilters();\r\n}\r\n\r\nfunction handleShowAll() {\r\n //showHideSpinner(true);\r\n var inStockOnlyRad = document.getElementById(\"inStockOnlyRad\")!;\r\n\r\n inStockOnlyRad.checked = false;\r\n _inStock = false;\r\n applyFilters();\r\n}\r\n\r\nfunction handleClearFilter() {\r\n var inStock = (document.getElementById(\"inStockOnlyRad\"));\r\n\r\n inStock.checked =\r\n _inStock = false;\r\n\r\n var elements = document.querySelectorAll(\".filter-option\");\r\n\r\n if (elements) {\r\n elements.forEach(function (item: any) {\r\n var chk = (item as HTMLInputElement);\r\n if (chk) {\r\n chk.checked = false;\r\n }\r\n })\r\n }\r\n\r\n _filtersModel.PriceRange.SelectedMin = null;\r\n _filtersModel.PriceRange.SelectedMax = null;\r\n //if (mediaQuery.matches) {\r\n // let contentAreaMobile = document.getElementById('filter-content-area-mobile');\r\n // let rangeSlider = contentAreaMobile?.querySelectorAll('.rs-container');\r\n // if (rangeSlider && rangeSlider.length > 0) {\r\n // rangeSlider[0].remove();\r\n // }\r\n // _resetSlider = true;\r\n // initRangeSlider();\r\n //}\r\n _resetSlider = true;\r\n applyFilters();\r\n}\r\n\r\nfunction getStateFromUrl() {\r\n return history.state;\r\n}\r\n\r\nfunction getStateObjFromUrl(): any {\r\n var result: any = {};\r\n var fragments = location.href.split(\"?\")[1];\r\n if (fragments != null) {\r\n var fragmentKvps = fragments.split(\"&\");\r\n var queryKvp = fragmentKvps.forEach(function (element, index) {\r\n var key = element.split(\"=\")[0];\r\n var value = element.split(\"=\")[1];\r\n\r\n if (key != null) {\r\n result[key] = value;\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction getSelectedCategoryIds(categoryVM: any) {\r\n if (categoryVM == null || categoryVM.Options == null) {\r\n return [];\r\n }\r\n\r\n var selectedOptions = categoryVM.Options.filter(function (s: any) { return s.IsSelected === true; })\r\n var selectedIds = selectedOptions.map(function (s: any) { return s.ID; });\r\n\r\n return selectedIds;\r\n}\r\n\r\nfunction searchFromState(state: any) {\r\n var urlState = getStateObjFromUrl();\r\n if (!state) {\r\n //showHideSpinner(false);\r\n return;\r\n }\r\n\r\n if (state.searchText == null || state.searchText === \"\") {\r\n state.searchText = urlState.q;\r\n }\r\n\r\n if (state.page == null || state.page === \"\") {\r\n state.page = urlState.page;\r\n if (state.page && !_pageHasChanged)\r\n _pageNum = state.page;\r\n else if (!state.page && !_pageHasChanged)\r\n _pageNum = 1;\r\n }\r\n\r\n if (state.sortBy == null || state.sortBy === \"\") {\r\n state.sortBy = urlState.sort;\r\n }\r\n\r\n _numberOfItems = _numberOfItems >= 6 ? _numberOfItems : 6\r\n state.size = _numberOfItems;\r\n state.sort = _ShopByProduct_CurrentOrder;\r\n\r\n var parameters = [];\r\n parameters.push(getQS(\"q\", state.searchText));\r\n if (_pageNum > 1)\r\n parameters.push(getQS(\"page\", _pageNum));\r\n\r\n if (_ShopByProduct_CurrentOrder != _Default_SortOrder)\r\n parameters.push(getQS(\"sort\", _ShopByProduct_CurrentOrder));\r\n //parameters.push(getQS(\"auto\", state.AutoFilter));\r\n parameters.push(getQS(\"stockonly\", _inStock));\r\n\r\n if (state.PriceRange?.SelectedMin)\r\n parameters.push(getQS(\"min\", state.PriceRange == null ? \"\" : state.PriceRange.SelectedMin || Math.floor(state.PriceRange.MinProductPrice)));\r\n\r\n if (state.PriceRange?.SelectedMax)\r\n parameters.push(getQS(\"max\", state.PriceRange == null ? \"\" : state.PriceRange.SelectedMax || Math.ceil(state.PriceRange.MaxProductPrice)));\r\n\r\n //Categories\r\n var selectedBrands = getSelectedCategoryIds(state.Brands);\r\n\r\n var selectedBrandSeries = getSelectedCategoryIds(state.BrandSeries, selectedBrands);\r\n var selectedCategories = getSelectedCategoryIds(state.Categories);\r\n var selectedProductTypes = getSelectedCategoryIds(state.ProductTypes);\r\n var selectedProductSubTypes = getSelectedCategoryIds(state.ProductSubTypes, state.ProductTypes);\r\n\r\n parameters.push(getQS(\"b\", selectedBrands.join(\",\")));\r\n parameters.push(getQS(\"bs\", selectedBrandSeries.join(\",\")));\r\n parameters.push(getQS(\"cat\", selectedCategories.join(\",\")));\r\n parameters.push(getQS(\"pt\", selectedProductTypes.join(\",\")));\r\n parameters.push(getQS(\"pst\", selectedProductSubTypes.join(\",\")));\r\n\r\n var currentLayout = getCurrentLayout();\r\n var layoutFromCookies = Utils.getCookie(ListLayoutCookieName);\r\n\r\n if (currentLayout != layoutFromCookies)\r\n parameters.push(getQS(\"layout\", getCurrentLayout()));\r\n\r\n //Custom classifications \r\n if (state.CustomClassifications != null) {\r\n state.CustomClassifications.forEach(function (index: any, value: any) {\r\n var cc = value;\r\n var classificationId = cc.ID;\r\n var selectedIds = getSelectedCategoryIds(cc);\r\n\r\n parameters.push(getQS(\"cc\" + classificationId, selectedIds.join(\",\")));\r\n });\r\n }\r\n\r\n var newState = state || {};\r\n //Preserving OriginalState\r\n newState.OriginalState = JSON.parse(JSON.stringify((history.state || state.OriginalState || {})));\r\n\r\n var search = \"\";\r\n var params = parameters.filter(p => p !== null);\r\n\r\n if (params.length > 0)\r\n search = \"?\" + params.join(\"&\");\r\n\r\n //Setting state in history as well\r\n //Replacing state if url matches, pushing new state otherwise\r\n\r\n if (newState.Brands)\r\n newState.Brands.Options.map(function (s: any) {\r\n s.IsSelected = selectedBrands.includes(s.ID);\r\n });\r\n\r\n if (newState.BrandSeries)\r\n newState.BrandSeries.Options.map(function (s: any) {\r\n s.IsSelected = selectedBrandSeries.includes(s.ID);\r\n });\r\n\r\n if (newState.Categories)\r\n newState.Categories.Options.map(function (s: any) {\r\n s.IsSelected = selectedCategories.includes(s.ID);\r\n });\r\n\r\n if (newState.ProductTypes)\r\n newState.ProductTypes.Options.map(function (s: any) {\r\n s.IsSelected = selectedProductTypes.includes(s.ID);\r\n });\r\n\r\n if (newState.ProductSubTypes)\r\n newState.ProductSubTypes.Options.map(function (s: any) {\r\n s.IsSelected = selectedProductSubTypes.includes(s.ID);\r\n });\r\n\r\n var inStockOnlyRad = document.getElementById(\"inStockOnlyRad\")!;\r\n\r\n newState.IsInStockOnly = inStockOnlyRad.checked;\r\n newState.IsInStockShowAll = !inStockOnlyRad.checked;\r\n\r\n history.replaceState(newState, \"replacing existing state\", removeParam(\"categoryId\", window.location.href));\r\n\r\n return search;\r\n\r\n function getQS(key: any, value: any) {\r\n if (value === null\r\n || value === undefined\r\n || value === \"\") {\r\n return null;\r\n }\r\n\r\n return key + \"=\" + value;\r\n }\r\n\r\n function getSelectedCategoryIds(categoryVM: any, parentIds: any = null) {\r\n if (categoryVM == null || categoryVM.Options == null) {\r\n return [];\r\n }\r\n\r\n var categoryName = categoryVM.CategoryName.replace(/\\s/g, '').toLowerCase();\r\n var selectedOptions = categoryVM.Options.filter(function (s: any) {\r\n var element = document.querySelector(`[id=${categoryName}-${s.ID}].filter-option`);\r\n var filterParent = true;\r\n\r\n if (parentIds != null && element != null) {\r\n var elementParentId = element.getAttribute(\"data-parent-id\");\r\n\r\n if (elementParentId)\r\n filterParent = parentIds.includes(+elementParentId)\r\n }\r\n\r\n return element != null && element.checked && filterParent;\r\n });\r\n\r\n var selectedIds = selectedOptions.map(function (s: any) { return s.ID; });\r\n\r\n return selectedIds;\r\n }\r\n\r\n function getCurrentLayout() {\r\n var layoutSelected = document.querySelector(\"[id*=productlist-view].active\");\r\n\r\n if (layoutSelected)\r\n return layoutSelected.id.slice(-4);\r\n }\r\n}\r\n\r\nfunction setSearchFilters(filters: any, skipReload: boolean = false) {\r\n var search = searchFromState(filters);\r\n\r\n //Assigning same value to location.href will set history.state to null\r\n //However, no events will be triggered\r\n var splitUrl = window.location.href.split('?');\r\n var url = splitUrl[0];\r\n if (splitUrl.length > 1) {\r\n url = window.location.href;\r\n\r\n urlParams.forEach(function (filter) {\r\n if (url.includes(filter))\r\n url = removeParam(filter, url);\r\n });\r\n\r\n if (search && url.includes(\"?\"))\r\n search = search.replace(\"?\", \"&\");\r\n }\r\n\r\n if (location.search !== search) {\r\n history.replaceState(history.state, '', url + search)\r\n\r\n _refreshProducts = !skipReload;\r\n if (_refreshProducts\r\n && window.location.href.indexOf(\"more-panel\") == -1) {\r\n var filtersModel = getSearchFilters();\r\n refreshProductList(filtersModel);\r\n }\r\n }\r\n //else showHideSpinner(false);\r\n}\r\n\r\nfunction getSearchFilters() {\r\n var result = getStateFromUrl();\r\n return result;\r\n}\r\n\r\nfunction applyFilters() {\r\n //showHideSpinner(true); \r\n _scrollUp = true;\r\n _refreshProducts = true;\r\n _pageNum = 1; //reset page when any filters are applied\r\n setSearchFilters(_filtersModel);\r\n\r\n let countFilters = document.getElementById('filterCount');\r\n if (countFilters) {\r\n let stringCount = countFilters.innerHTML.replace('(', '').replace(')', '');\r\n //_filtersModel.PriceRange.SelectedMin = _filtersModel.PriceRange.MinProductPrice;\r\n //_filtersModel.PriceRange.SelectedMax = _filtersModel.PriceRange.MaxProductPrice;\r\n if (_filtersModel.PriceRange.SelectedMin != _filtersModel.PriceRange.MinProductPrice || _filtersModel.PriceRange.SelectedMax != _filtersModel.PriceRange.MaxProductPrice) {\r\n let num = parseInt(stringCount) ? NaN : 0;\r\n countFilters.innerHTML = '(' + (num + 1) + ')';\r\n }\r\n if (stringCount == '0') {\r\n countFilters.innerHTML = '';\r\n }\r\n }\r\n}\r\n\r\nfunction handleSortSelectorChange(event: any) {\r\n var selectElement = event.target;\r\n var value = selectElement.value;\r\n _refreshProducts = true;\r\n _ShopByProduct_CurrentOrder = value;\r\n\r\n if (_hasFilter)\r\n setSearchFilters(_filtersModel);\r\n else\r\n refreshProductList(null)\r\n}\r\n\r\nfunction handleLoadMoreClick() {\r\n setLoadingButton(true);\r\n var filtersModel = getSearchFilters();\r\n _numberOfItems = filtersModel ? filtersModel.size + _pageSize : _numberOfItems + _pageSize;\r\n _scrollUp = false;\r\n _refreshProducts = true;\r\n if (_hasFilter)\r\n setSearchFilters(_filtersModel);\r\n else\r\n refreshProductList(null);\r\n}\r\n\r\nfunction handlePageClick(event: any) {\r\n event.preventDefault();\r\n let goToPageNum = event.target.attributes['data-page-num'].value;\r\n var filtersModel = getSearchFilters();\r\n _pageNum = parseInt(goToPageNum);\r\n changePage();\r\n}\r\n\r\nfunction changePage() {\r\n _scrollUp = true;\r\n _refreshProducts = true;\r\n _pageHasChanged = true;\r\n if (_hasFilter)\r\n setSearchFilters(_filtersModel);\r\n else\r\n refreshProductList(null);\r\n}\r\n\r\n\r\nfunction handlePreviousPage(event: any) {\r\n event.preventDefault();\r\n _pageNum = _pageNum > 1 ? parseInt(_pageNum.toString()) - 1 : 1;\r\n changePage();\r\n}\r\n\r\nfunction handleNextPage(event: any) {\r\n event.preventDefault();\r\n\r\n _pageNum = _pageNum < _maxPage ? parseInt(_pageNum.toString()) + 1 : _maxPage;\r\n changePage();\r\n}\r\n\r\nfunction resetPaging() {\r\n let maxPageContainer = document.getElementById('maxPages');\r\n if (maxPageContainer) {\r\n _maxPage = parseInt(maxPageContainer.innerHTML);\r\n }\r\n _pageHasChanged = false;\r\n let numPrevious = parseInt(_pageNum.toString()) > Math.ceil(maxDisplayPageNum / 2) ?\r\n parseInt(_pageNum.toString()) - Math.floor(maxDisplayPageNum / 2) :\r\n 1;\r\n let numNext = parseInt(_pageNum.toString()) > Math.ceil(maxDisplayPageNum / 2) ?\r\n parseInt(_pageNum.toString()) + (Math.ceil(maxDisplayPageNum / 2) - 1) :\r\n maxDisplayPageNum;\r\n //check for end of page list\r\n if (numNext > _maxPage) {\r\n numNext = _maxPage;\r\n numPrevious = _maxPage - maxDisplayPageNum;\r\n }\r\n console.log('resetPaging() ' + numPrevious + '**' + numNext + '**' + _maxPage);\r\n let allPages = Array.from(document.querySelectorAll('.paging-section .pages-wrapper .page-num'));\r\n if (allPages.length) {\r\n allPages.map(page => {\r\n let currpage = page.attributes.getNamedItem('data-page-num');\r\n if (page != null && currpage != null && currpage.value != null) {\r\n let currPageValue = parseInt(currpage.value);\r\n if ((currPageValue as number) == _pageNum) {\r\n page.classList.add('current');\r\n }\r\n else page.classList.remove('current');\r\n if (currPageValue == _pageNum ||\r\n (currPageValue >= numPrevious && currPageValue < _pageNum) ||\r\n (currPageValue > _pageNum && currPageValue <= numNext) ||\r\n (currPageValue == 1) ||\r\n (currPageValue == _maxPage)) {\r\n page.classList.remove('hidden');\r\n }\r\n else {\r\n page.classList.add('hidden');\r\n }\r\n }\r\n })\r\n }\r\n let pagePrev = document.querySelector('.paging-section .page-prev');\r\n let pageNext = document.querySelector('.paging-section .page-next');\r\n let pageMorePrev = document.querySelector('.paging-section .more-previous');\r\n let pageMoreNext = document.querySelector('.paging-section .more-next');\r\n\r\n if (_pageNum > 1 && pagePrev) pagePrev.classList.remove('hidden');\r\n else if (pagePrev) pagePrev.classList.add('hidden');\r\n if (_pageNum < _maxPage && pageNext) pageNext.classList.remove('hidden');\r\n else if (pageNext) pageNext.classList.add('hidden');\r\n if (numPrevious > 2 && pageMorePrev) pageMorePrev.classList.remove('hidden');\r\n else if (pageMorePrev) pageMorePrev.classList.add('hidden');\r\n if (numNext > (_maxPage - 1) && pageMoreNext) pageMoreNext.classList.add('hidden');\r\n else if (pageMoreNext) pageMoreNext.classList.remove('hidden');\r\n}\r\n\r\nfunction setLoadingButton(isLoading: boolean) {\r\n var loadMoreBtn = document.getElementById(\"loadMore\");\r\n if (loadMoreBtn) {\r\n if (isLoading) loadMoreBtn.classList.add('btn-loading');\r\n else loadMoreBtn.classList.remove('btn-loading');\r\n }\r\n}\r\n\r\n\r\nfunction refreshProductList(filtersModel: any) {\r\n //showHideSpinner(true); \r\n if (!_refreshProducts) {\r\n setLoadingButton(false);\r\n showHideSpinner(false);\r\n return;\r\n }\r\n\r\n\r\n var myJSONString = JSON.stringify(filtersModel);\r\n var myEscapedJSONString = myJSONString.replace(/\\\\n/g, \"\\\\n\")\r\n .replace(/\\\\'/g, \"\\\\'\")\r\n .replace(/\\\\\"/g, '\\\\\"')\r\n .replace(/\\\\&/g, \"\\\\&\")\r\n .replace(/\\\\r/g, \"\\\\r\")\r\n .replace(/\\\\t/g, \"\\\\t\")\r\n .replace(/\\\\b/g, \"\\\\b\")\r\n .replace(/\\\\f/g, \"\\\\f\");\r\n\r\n var token = document.getElementById(\"productListContainer\")!.getAttribute(\"ncg-request-verification-token\")!;\r\n\r\n const requestHeaders: HeadersInit = new Headers();\r\n requestHeaders.set(\"requestverificationtoken\", token);\r\n requestHeaders.set('Content-Type', 'application/json');\r\n\r\n var body = {\r\n operation: \"rebrandFilterProducts\",\r\n sort: filtersModel ? filtersModel.sort : _ShopByProduct_CurrentOrder,\r\n orderBy: _ShopByProduct_CurrentOrder,\r\n filters: myEscapedJSONString,\r\n pageName: _pageName,\r\n pageID: _pageID,\r\n pageRegionID: _pageRegionID,\r\n categoryID: _categoryID,\r\n page: _pageNum,\r\n pageSize: _pageSize\r\n };\r\n\r\n var url = _hasFilter ? _getProductsUrl : _ShopByProduct_RefreshProductListUrl;\r\n\r\n fetch(url, {\r\n method: 'POST',\r\n headers: requestHeaders,\r\n body: JSON.stringify(body)\r\n }).then(response => response.text())\r\n .then(function (data: any) {\r\n //retain current list view\r\n var productListingElem = document.getElementById('product-listing');\r\n var currentView = 'grid';\r\n if (productListingElem && !productListingElem.classList.contains('grid')) currentView = 'list';\r\n if (currentView == 'grid') {\r\n //as this is not the default\r\n data = (data as string).replace('