{"version":3,"file":"siteWidgets.min.js","mappings":"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","sources":["webpack://dev-daklapack-webshops/webpack/bootstrap","webpack://dev-daklapack-webshops/webpack/runtime/define property getters","webpack://dev-daklapack-webshops/webpack/runtime/hasOwnProperty shorthand","webpack://dev-daklapack-webshops/webpack/runtime/make namespace object","webpack://dev-daklapack-webshops/./node_modules/blue-widgets/dist/blue-widgets.mjs","webpack://dev-daklapack-webshops/./src/js/widgets/footerSubscriptionBanner.js","webpack://dev-daklapack-webshops/./src/js/widgets/subscribeBlock.js","webpack://dev-daklapack-webshops/./src/js/widgets/notificationBar.js","webpack://dev-daklapack-webshops/./src/js/widgets/cart.js","webpack://dev-daklapack-webshops/./src/js/widgets/searchInput.js","webpack://dev-daklapack-webshops/./src/js/widgets/productDetailsPage.js","webpack://dev-daklapack-webshops/./src/js/widgets/productlisting.js","webpack://dev-daklapack-webshops/./src/js/widgets/discount.js","webpack://dev-daklapack-webshops/./src/js/siteWidgets.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\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))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var t=/^(?:\\{[\\w\\W]*\\}|\\[[{\"][\\w\\W]*[}\"]])$/;function e(e){return\"true\"===e||\"false\"!==e&&(\"null\"===e?null:e===+e+\"\"?+e:t.test(e)?JSON.parse(e):e)}function n(t){return t.charAt(1).toUpperCase()}function r(t){if(t.dataset)return s=t.dataset,c={},Object.keys(s).forEach(function(t){c[t]=e(s[t])}),c;for(var r={},o=t.attributes,a=0;ao?1:r {\r\n this.subscribeButton.setAttribute(\"disabled\", \"\");\r\n this.clearNotification();\r\n\r\n await fetch(this.subscribeApiUrl, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"RequestVerificationToken\": this.token\r\n },\r\n body: JSON.stringify({\r\n subscriber: this.emailInput.value,\r\n receiverEmailAddress: this.receiverEmailAddress\r\n })\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n this.subscribeButton.removeAttribute(\"disabled\", \"\");\r\n this.emailInput.value = \"\";\r\n this.displayNotification(this.notificationText);\r\n } else {\r\n this.subscribeButton.removeAttribute(\"disabled\", \"\");\r\n console.error(\"Error sending POST request. Status:\", response.status);\r\n }\r\n })\r\n .catch((error) => {\r\n this.subscribeButton.removeAttribute(\"disabled\", \"\");\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n };\r\n\r\n clearNotification = () => {\r\n const notificationDiv = this.el.querySelector(\".notification-alert\");\r\n\r\n if (!notificationDiv) return;\r\n\r\n notificationDiv.remove();\r\n };\r\n\r\n displayNotification = (notificationText) => {\r\n const subscribeNotificationDiv = this.createNotificationDiv(notificationText);\r\n this.subscribeFooterDiv = this.el.querySelector(\".subscribe-footer\");\r\n\r\n if (!this.subscribeFooterDiv) return;\r\n\r\n this.subscribeFooterDiv.insertBefore(subscribeNotificationDiv, this.subscribeFooterDiv.firstChild);\r\n };\r\n\r\n createNotificationDiv = (notificationText) => {\r\n const subscribeNotificationDiv = document.createElement(\"div\");\r\n subscribeNotificationDiv.className = \"notification-alert\";\r\n\r\n // Create the icon element\r\n const iconElement = document.createElement(\"i\");\r\n iconElement.className = \"icon icon-info\";\r\n iconElement.setAttribute(\"aria-hidden\", \"true\");\r\n\r\n // Create the paragraph element\r\n const paragraphElement = document.createElement(\"p\");\r\n paragraphElement.className = \"body2\";\r\n paragraphElement.textContent = notificationText;\r\n\r\n // Append the icon and paragraph elements to the main div\r\n subscribeNotificationDiv.appendChild(iconElement);\r\n subscribeNotificationDiv.appendChild(paragraphElement);\r\n\r\n return subscribeNotificationDiv;\r\n };\r\n}\r\n\r\nexport default FooterSubscribeBanner;","/* eslint-disable no-console */\r\nimport { Widget } from \"blue-widgets\";\r\n\r\nclass SubscribeBlock extends Widget {\r\n constructor(el) {\r\n super(el);\r\n\r\n if (!this.el) return;\r\n\r\n this.subscribeBlockForm = this.el.querySelector(\".subscribe__form\");\r\n\r\n if (!this.subscribeBlockForm) return;\r\n\r\n this.token = this.el.querySelector(\"input[name=\\\"__RequestVerificationToken\\\"]\")?.value;\r\n this.emailInput = this.subscribeBlockForm.querySelector(\"#subscribe-block-input\");\r\n this.subscribeButton = this.subscribeBlockForm.querySelector(\".button--primary\");\r\n this.receiverEmailAddress = this.el.getAttribute(\"data-receiver-email\");\r\n this.subscribeApiUrl = this.el.getAttribute(\"data-subscribe-api-url\");\r\n this.notificationText = this.el.getAttribute(\"data-notification-text\");\r\n this.subscribeContainer = this.el.querySelector(\".subscribe\");\r\n\r\n this.subscribeButton.addEventListener(\"click\", this.handleClick);\r\n }\r\n\r\n handleClick = async () => {\r\n this.subscribeButton.setAttribute(\"disabled\", \"\");\r\n this.clearNotification();\r\n\r\n await fetch(this.subscribeApiUrl, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"RequestVerificationToken\": this.token\r\n },\r\n body: JSON.stringify({\r\n subscriber: this.emailInput.value,\r\n receiverEmailAddress: this.receiverEmailAddress\r\n })\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n this.subscribeButton.removeAttribute(\"disabled\", \"\");\r\n this.emailInput.value = \"\";\r\n this.displayNotification(this.notificationText);\r\n } else {\r\n this.subscribeButton.removeAttribute(\"disabled\", \"\");\r\n console.error(\"Error sending POST request. Status:\", response.status);\r\n }\r\n })\r\n .catch((error) => {\r\n this.subscribeButton.removeAttribute(\"disabled\", \"\");\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n };\r\n\r\n clearNotification = () => {\r\n const notificationDiv = this.el.querySelector(\".subscribe__notification\");\r\n\r\n if (!notificationDiv) return;\r\n\r\n notificationDiv.remove();\r\n };\r\n\r\n displayNotification = (notificationText) => {\r\n const subscribeNotificationDiv = this.createNotificationDiv(notificationText);\r\n this.subscribeContainer.insertBefore(subscribeNotificationDiv, this.subscribeContainer.firstChild);\r\n };\r\n\r\n createNotificationDiv = (notificationText) => {\r\n const subscribeNotificationDiv = document.createElement(\"div\");\r\n subscribeNotificationDiv.className = \"subscribe__notification\";\r\n\r\n // Create the icon element\r\n const iconElement = document.createElement(\"i\");\r\n iconElement.className = \"icon icon-info\";\r\n iconElement.setAttribute(\"aria-hidden\", \"true\");\r\n\r\n // Create the paragraph element\r\n const paragraphElement = document.createElement(\"p\");\r\n paragraphElement.className = \"body2\";\r\n paragraphElement.innerHTML = notificationText;\r\n\r\n // Append the icon and paragraph elements to the main div\r\n subscribeNotificationDiv.appendChild(iconElement);\r\n subscribeNotificationDiv.appendChild(paragraphElement);\r\n\r\n return subscribeNotificationDiv;\r\n };\r\n}\r\n\r\nexport default SubscribeBlock;","import { Widget } from \"blue-widgets\";\r\n\r\nclass NotificationBar extends Widget {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.dismissButton = this.el.querySelector(\"[data-dismiss]\");\r\n this.culture = this.el.getAttribute(\"data-culture\");\r\n\r\n this.el.classList.add(\"isVisible\");\r\n\r\n if (this.dismissButton) {\r\n this.dismissButton.addEventListener(\"click\", async () => {\r\n await fetch(\"/umbraco/Surface/NotificationBarSurface/CloseBanner\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n culture: this.culture\r\n })\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n this.el.classList.remove(\"isVisible\");\r\n\r\n } else {\r\n console.error(\"Error sending POST request. Status:\", response.status);\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default NotificationBar;","/* eslint-disable indent */\r\n/* eslint-disable no-console */\r\nimport { Widget } from \"blue-widgets\";\r\n\r\nclass Cart extends Widget {\r\n constructor(el) {\r\n super(el);\r\n\r\n if (!this.el) return;\r\n\r\n this.culture = this.el.getAttribute(\"data-culture\");\r\n\r\n this.el.addEventListener(\"click\", this.handleClickEvent);\r\n this.addInputListeners();\r\n }\r\n\r\n addInputListeners = () => {\r\n this.inputElements = this.el.querySelectorAll(\"input[type='number']\");\r\n\r\n this.inputElements.forEach((inputElement) => {\r\n let timeoutId;\r\n\r\n inputElement.addEventListener(\"input\", async (event) => {\r\n clearTimeout(timeoutId);\r\n\r\n timeoutId = setTimeout(async () => {\r\n const cartCard = event.target.closest(\".cart-card\");\r\n const orderLineId = cartCard.getAttribute(\"data-order-line-id\");\r\n\r\n await this.updateCart(orderLineId, event.target);\r\n }, 300);\r\n\r\n if (event.target.classList.contains(\"cart-card__amount-input\")) {\r\n const input = event.target;\r\n const max = input.getAttribute(\"max\");\r\n if (max && parseInt(input.value) > parseInt(max)) {\r\n input.value = max;\r\n }\r\n }\r\n });\r\n });\r\n };\r\n\r\n validateProductQuantity(quantity, input) {\r\n const minQuantity = parseInt(input.getAttribute(\"min\"));\r\n const packSize = parseInt(input.getAttribute(\"step\"));\r\n\r\n const errorMessage = this.createAddErrorMessage(minQuantity, packSize);\r\n\r\n if (quantity < minQuantity) {\r\n console.error(errorMessage);\r\n alert(errorMessage);\r\n return false;\r\n }\r\n\r\n if (packSize && quantity % packSize !== 0) {\r\n console.error(errorMessage);\r\n alert(errorMessage);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n createAddErrorMessage(minQuantity, packSize) {\r\n const addProductErrorMessageTemplate = this.el.getAttribute(\"data-add-product-error-message-template\");\r\n\r\n return addProductErrorMessageTemplate\r\n .replace(\"{{Pack Size}}\", packSize)\r\n .replace(\"{{Minimum Order}}\", minQuantity);\r\n }\r\n\r\n handleClickEvent = (event) => {\r\n const removeButton = event.target.closest(\".cart-card__remove\");\r\n if (removeButton) {\r\n removeButton.setAttribute(\"disabled\", true);\r\n\r\n const cartCard = removeButton.closest(\".cart-card\");\r\n if (cartCard) {\r\n this.handleRemoveButtonClick(cartCard);\r\n }\r\n }\r\n\r\n const incrementButton = event.target.closest(\".cart-card__amount-increment\");\r\n if (incrementButton) {\r\n const cartCard = incrementButton.closest(\".cart-card\");\r\n const orderLineId = cartCard.getAttribute(\"data-order-line-id\");\r\n const inputElement = cartCard.querySelector(\"input[type='number']\");\r\n\r\n if (cartCard) {\r\n this.handleIncrementButtonClick(orderLineId, inputElement);\r\n }\r\n }\r\n const decrementButton = event.target.closest(\".cart-card__amount-decrement\");\r\n if (decrementButton) {\r\n const cartCard = decrementButton.closest(\".cart-card\");\r\n const orderLineId = cartCard.getAttribute(\"data-order-line-id\");\r\n const inputElement = cartCard.querySelector(\"input[type='number']\");\r\n\r\n if (cartCard) {\r\n this.handleDecrementButtonClick(orderLineId, inputElement);\r\n }\r\n }\r\n };\r\n\r\n handleRemoveButtonClick = async (cartCard) => {\r\n this.orderLineId = cartCard.getAttribute(\"data-order-line-id\");\r\n\r\n await fetch(\"/umbraco/Surface/CartSurface/RemoveFromCart\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n orderLineId: this.orderLineId,\r\n culture: this.culture,\r\n }),\r\n })\r\n .then(async (response) => {\r\n if (response.ok) {\r\n const data = await response.json(); // Parse the response as JSON\r\n\r\n this.updateHtml(data.cartView);\r\n\r\n window.dataLayer.push({ ecommerce: null }); // to empty previous ecommerce data\r\n window.dataLayer.push(JSON.parse(data.removeFromCartEvent));\r\n } else {\r\n this.removeButton.removeAttribute(\"disabled\", \"\");\r\n console.error(\"Error sending POST request. Status:\", response.status);\r\n }\r\n })\r\n .catch((error) => {\r\n this.removeButton.removeAttribute(\"disabled\", \"\");\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n };\r\n\r\n handleIncrementButtonClick = async (orderLineId, inputElement) => {\r\n await this.updateCart(orderLineId, inputElement);\r\n };\r\n\r\n handleDecrementButtonClick = async (orderLineId, inputElement) => {\r\n await this.updateCart(orderLineId, inputElement);\r\n };\r\n\r\n updateCart = async (orderLineId, inputElement) => {\r\n let orderLines = [];\r\n const value = inputElement.value;\r\n\r\n this.cartCards = this.el.querySelectorAll(\".cart-card\");\r\n\r\n this.cartCards.forEach((card) => {\r\n const id = card.getAttribute(\"data-order-line-id\");\r\n let quantity = card.querySelector(\"input[type='number']\").value;\r\n\r\n if (id === orderLineId) {\r\n quantity = value;\r\n }\r\n orderLines.push({ id, quantity });\r\n });\r\n\r\n await fetch(\"/umbraco/Surface/CartSurface/UpdateCart\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n orderLines: orderLines,\r\n culture: this.culture,\r\n }),\r\n })\r\n .then(async (response) => {\r\n if (response.ok) {\r\n const html = await response.text(); // Convert response to text (HTML)\r\n this.updateHtml(html); // Pass the HTML to updateHtml\r\n } else {\r\n console.error(\"Error sending POST request. Status:\", response.status);\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n };\r\n\r\n updateHtml = async (response) => {\r\n const html = await response;\r\n this.cartContentDiv = this.el.querySelector(\".cart__content\");\r\n if (this.cartContentDiv) {\r\n this.cartContentDiv.remove();\r\n }\r\n this.el\r\n .querySelector(\".cart__button\")\r\n .insertAdjacentHTML(\"beforebegin\", html);\r\n this.el.addEventListener(\"click\", this.handleClickEvent);\r\n this.addInputListeners();\r\n window.blueWidgetReinit(this.el);\r\n };\r\n}\r\n\r\nexport default Cart;\r\n","import { Widget } from \"blue-widgets\";\r\n\r\nclass SearchInput extends Widget {\r\n constructor(el) {\r\n super(el);\r\n this.input = this.el.querySelector(\"input\");\r\n this.clearInput = this.el.querySelector(\"[data-clear]\");\r\n this.results = this.el.parentElement.querySelector(\".search-results\");\r\n this.culture = this.el.getAttribute(\"data-culture\");\r\n this.pageSize = this.el.getAttribute(\"data-page-size\");\r\n this.homeId = this.el.getAttribute(\"data-home-id\");\r\n this.init();\r\n }\r\n\r\n init() {\r\n // add event listener to this.input for onchange event\r\n if (this.input) {\r\n this.input.addEventListener(\"input\", async () => {\r\n // Check if the value is longer than 2 characters\r\n if (this.input.value.length > 2) {\r\n await fetch(\"/umbraco/Surface/SearchSurface/Search\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n query: this.input.value,\r\n page: 1,\r\n pageSize: this.pageSize,\r\n culture: this.culture,\r\n homeId: this.homeId\r\n })\r\n })\r\n .then(async (response) => {\r\n if (response.ok) {\r\n const html = await response.text();\r\n this.results.innerHTML = html;\r\n this.results.classList.add(\"isOpen\");\r\n } else {\r\n this.results.innerHTML = \"\";\r\n console.error(\"Error sending POST request. Status:\", response.status);\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n } else {\r\n // Remove the class isOpen if the value is not longer than 2 characters\r\n if (this.results) {\r\n this.results.classList.remove(\"isOpen\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n // When the user clicks on this.clearInput, it should clear the value of the input\r\n if (this.clearInput) {\r\n this.clearInput.addEventListener(\"click\", () => {\r\n if (this.input) {\r\n this.input.value = \"\";\r\n // Also, remove the isOpen class from this.results\r\n if (this.results) {\r\n this.results.classList.remove(\"isOpen\");\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default SearchInput;\r\n","/* eslint-disable no-console */\r\nimport { Widget } from \"blue-widgets\";\r\n\r\nclass ProductDetailsPage extends Widget {\r\n constructor(el) {\r\n super(el);\r\n this.el = el;\r\n\r\n if (!this.el) return;\r\n this.selectedAttributes = {};\r\n this.isInitializationComplete = false;\r\n this.pageKey = this.el.getAttribute(\"data-page-key\");\r\n this.inputs = this.el.querySelectorAll(\"input[type=\\\"radio\\\"]\");\r\n this.apiUrl = this.el.getAttribute(\"data-api-url\");\r\n this.addToCardApiUrl = this.el.getAttribute(\"data-add-to-cart-api-url\");\r\n this.addToCartButton = this.el.querySelector(\".js-add-to-cart\");\r\n this.productReference = this.el.getAttribute(\"data-product-reference\");\r\n this.productVariantReference = this.el.getAttribute(\"data-product-variant-reference\");\r\n this.culture = this.el.getAttribute(\"data-culture\");\r\n this.amountInput = this.el.querySelector(\".js-product-amount-input\");\r\n\r\n this.handleAttributeChange = this.handleAttributeChange.bind(this);\r\n\r\n this.updateProductReferenceAndProductVariatnKey = this.updateProductVariant.bind(this);\r\n this.updateSpecifications = this.updateSpecifications.bind(this);\r\n this.updateThumbnailImages = this.updateThumbnailImages.bind(this);\r\n this.updateProductTableDetails = this.updateProductTableDetails.bind(this);\r\n this.handleAddToCart = this.handleAddToCart.bind(this);\r\n this.validateQuantity = this.validateQuantity.bind(this);\r\n this.createAddErrorMessage = this.createAddErrorMessage.bind(this);\r\n\r\n this.init();\r\n\r\n\r\n }\r\n\r\n init() {\r\n const accordions = this.el.querySelectorAll(\".accordion\");\r\n accordions.forEach((accordion) => {\r\n const inputs = accordion.querySelectorAll(\"input[type='radio']\");\r\n if (inputs.length > 0) {\r\n inputs[0].checked = true;\r\n const attributeAlias = inputs[0].name;\r\n const attributeValue = inputs[0].value;\r\n this.selectedAttributes[attributeAlias] = attributeValue;\r\n }\r\n });\r\n\r\n this.completeInitialization();\r\n }\r\n\r\n completeInitialization() {\r\n this.addToCartButton.addEventListener(\"click\", this.handleAddToCart);\r\n this.addChangeAttributeEventListener();\r\n this.isInitializationComplete = true;\r\n }\r\n\r\n async handleAddToCart(event) {\r\n this.addToCartButton.setAttribute(\"disabled\", \"\");\r\n\r\n event.preventDefault();\r\n\r\n const quantity = this.amountInput.value;\r\n\r\n this.validateQuantity(quantity);\r\n\r\n await fetch(this.addToCardApiUrl, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n productReference: this.productReference,\r\n productVariantReference: this.productVariantReference,\r\n culture: this.culture,\r\n quantity: parseInt(quantity),\r\n isSample: \"false\"\r\n })\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json(); // Parse the response as JSON\r\n } else {\r\n throw new Error(`Error: ${response.status}`);\r\n }\r\n })\r\n .then((data) => {\r\n this.addToCartButton.removeAttribute(\"disabled\", \"\");\r\n \r\n window.dataLayer.push({ ecommerce: null }); // to empty previous ecommerce data\r\n window.dataLayer.push(JSON.parse(data.addToCartEvent));\r\n\r\n location.reload();\r\n })\r\n .catch((error) => {\r\n this.addToCartButton.removeAttribute(\"disabled\", \"\");\r\n alert(\"Failed to add item to cart\");\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n }\r\n\r\n validateQuantity(quantity) {\r\n const minQuantity = parseInt(this.amountInput.getAttribute(\"min\"));\r\n const packSize = parseInt(this.amountInput.getAttribute(\"step\"));\r\n const errorMessage = \"Selected amount exceeds minQuantity and/or invalid packSize\"; //this.createAddErrorMessage(minQuantity, packSize);\r\n\r\n if (!isNaN(packSize) || !isNaN(minQuantity)) {\r\n\r\n if (quantity < minQuantity) {\r\n console.error(errorMessage);\r\n alert(errorMessage);\r\n this.addToCartButton.removeAttribute(\"disabled\", \"\");\r\n }\r\n\r\n if (packSize && quantity % packSize !== 0) {\r\n console.error(errorMessage);\r\n alert(errorMessage);\r\n this.addToCartButton.removeAttribute(\"disabled\", \"\");\r\n }\r\n }\r\n }\r\n\r\n createAddErrorMessage(minQuantity, packSize) {\r\n const addProductErrorMessageTemplate = this.el.getAttribute(\"data-add-product-error-message-template\");\r\n\r\n return addProductErrorMessageTemplate\r\n .replace(\"{{Pack Size}}\", packSize)\r\n .replace(\"{{Minimum Order}}\", minQuantity);\r\n }\r\n\r\n async handleAddToCartSample(event) {\r\n this.addToCartSampleButton.setAttribute(\"disabled\", \"\");\r\n event.preventDefault();\r\n\r\n const addSampleErrorMessage = this.el.getAttribute(\"data-add-sample-error-message\");\r\n\r\n await fetch(this.addToCardApiUrl, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n productReference: this.productReference,\r\n productVariantReference: this.productVariantReference,\r\n culture: this.culture,\r\n quantity: this.amountInput.value,\r\n isSample: \"true\",\r\n })\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n this.addToCartSampleButton.removeAttribute(\"disabled\", \"\");\r\n location.reload();\r\n } else {\r\n this.addToCartSampleButton.removeAttribute(\"disabled\", \"\");\r\n alert(addSampleErrorMessage);\r\n console.error(\"Error sending POST request. Status:\", response.status);\r\n }\r\n })\r\n .catch((error) => {\r\n this.addToCartButton.removeAttribute(\"disabled\", \"\");\r\n alert(addSampleErrorMessage);\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n }\r\n\r\n addChangeAttributeEventListener() {\r\n const accordions = this.el.querySelectorAll(\".accordion\");\r\n accordions.forEach((accordion) => {\r\n accordion.addEventListener(\"change\", (event) => {\r\n if (event.target.matches(\"input[type='radio']\")) {\r\n const alias = event.target.name;\r\n this.handleAttributeChange(event, alias);\r\n }\r\n });\r\n });\r\n }\r\n\r\n async handleAttributeChange(event, alias) {\r\n this.selectedAttributes[alias] = event.target.value;\r\n const attributeValue = event.target.value;\r\n const postData = {\r\n productNodeKey: this.pageKey,\r\n attributes: this.selectedAttributes,\r\n culture: this.culture\r\n };\r\n await this.fetchChanges(postData);\r\n }\r\n\r\n async fetchChanges(postData) {\r\n await fetch(this.apiUrl, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(postData)\r\n })\r\n .then(async (response) => {\r\n if (response.ok) {\r\n const json = await response.json();\r\n console.log(json);\r\n this.updateProductVariant(json.productVariantReference);\r\n this.updateSpecifications(json.specifications);\r\n this.updateThumbnailImages(json.thumbnailImages);\r\n this.updateProductTableDetails(json.productDetailsTable);\r\n this.updatePrice(json.originalPrice, json.discountedPrice);\r\n } else {\r\n console.error(\"Error sending POST request. Status:\", response.status);\r\n console.error(\"Error sending POST request. Status:\", response);\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n }\r\n\r\n updatePrice(originalPrice, discountedPrice) {\r\n console.log(originalPrice);\r\n console.log(discountedPrice);\r\n const originalPriceElement = this.el.querySelector(\"#js-originalPrice\");\r\n const discountedPriceElement = this.el.querySelector(\"#js-discountedPrice\");\r\n const standardPriceElement = this.el.querySelector(\"#js-standardPrice\");\r\n\r\n if (originalPriceElement) originalPriceElement.remove();\r\n if (discountedPriceElement) discountedPriceElement.remove();\r\n if (standardPriceElement) standardPriceElement.remove();\r\n\r\n const priceContainer = this.el.querySelector(\".product-details__header-info > .js-price-target\");\r\n if (discountedPrice) {\r\n const discountedPricePara = document.createElement(\"p\");\r\n discountedPricePara.id = \"js-discountedPrice\";\r\n discountedPricePara.className = \"product-card__price\";\r\n discountedPricePara.innerText = discountedPrice;\r\n priceContainer.appendChild(discountedPricePara);\r\n\r\n const originalPricePara = document.createElement(\"p\");\r\n originalPricePara.id = \"js-originalPrice\";\r\n originalPricePara.className = \"product-card__discount\";\r\n originalPricePara.innerText = originalPrice;\r\n priceContainer.appendChild(originalPricePara);\r\n } else {\r\n const standardPricePara = document.createElement(\"p\");\r\n standardPricePara.id = \"js-standardPrice\";\r\n standardPricePara.className = \"product-card__price\";\r\n standardPricePara.innerText = originalPrice;\r\n priceContainer.appendChild(standardPricePara);\r\n }\r\n }\r\n\r\n updateProductVariant(productVariantReference) {\r\n this.el.setAttribute(\"data-product-variant-reference\", productVariantReference);\r\n }\r\n\r\n updateThumbnailImages(images) {\r\n if (!images) return;\r\n\r\n const parentElm = this.el.querySelector(\".product-details__carousel\");\r\n const listContainers = this.el.querySelectorAll(\".splide__list\");\r\n\r\n if (!listContainers) return;\r\n\r\n listContainers.forEach((listContainer) => {\r\n if (!listContainer) return;\r\n\r\n listContainer.innerHTML = \"\";\r\n\r\n images.forEach((image) => {\r\n const listItem = document.createElement(\"li\");\r\n listItem.classList.add(\"splide__slide\");\r\n\r\n const divElement = document.createElement(\"div\");\r\n\r\n const pictureElement = document.createElement(\"picture\");\r\n\r\n const sourceDesktop = document.createElement(\"source\");\r\n sourceDesktop.setAttribute(\"media\", \"(min-width: 1025px)\");\r\n sourceDesktop.setAttribute(\"width\", \"32\");\r\n sourceDesktop.setAttribute(\"height\", \"48\");\r\n sourceDesktop.setAttribute(\"srcset\", `${image.desktopSource} 1x, ${image.desktop2xSource} 2x`);\r\n\r\n const sourceTablet = document.createElement(\"source\");\r\n sourceTablet.setAttribute(\"media\", \"(min-width: 743px)\");\r\n sourceTablet.setAttribute(\"width\", \"32\");\r\n sourceTablet.setAttribute(\"height\", \"48\");\r\n sourceDesktop.setAttribute(\"srcset\", `${image.tabletSource} 1x, ${image.tablet2xSource} 2x`);\r\n\r\n const imgElement = document.createElement(\"img\");\r\n imgElement.setAttribute(\"src\", `${image.mobileSource}`);\r\n imgElement.setAttribute(\"alt\", `${image.alternateText}`);\r\n imgElement.setAttribute(\"width\", \"32\");\r\n imgElement.setAttribute(\"height\", \"48\");\r\n\r\n // Append source elements to the picture element\r\n pictureElement.appendChild(sourceDesktop);\r\n pictureElement.appendChild(sourceTablet);\r\n\r\n // Append the img element to the picture element\r\n pictureElement.appendChild(imgElement);\r\n\r\n // Append the picture element to the div element\r\n divElement.appendChild(pictureElement);\r\n\r\n // Append the div element to the list item\r\n listItem.appendChild(divElement);\r\n\r\n // Append the list item to the parent element\r\n // Replace \"parentElement\" with the appropriate parent element in your document\r\n listContainer.appendChild(listItem);\r\n });\r\n });\r\n window.blueWidgetReinit(parentElm);\r\n }\r\n\r\n updateSpecifications(specifications) {\r\n if (!specifications) return;\r\n const productSpecificationsContainer = this.el.querySelector(\"[data-key=\\\"product-specificatie\\\"]\");\r\n\r\n if (!productSpecificationsContainer) return;\r\n\r\n productSpecificationsContainer.innerHTML = \"\";\r\n\r\n specifications.forEach(function (item) {\r\n // Create the list item element\r\n const listItem = document.createElement(\"li\");\r\n listItem.classList.add(\"product-specificatie-card\");\r\n\r\n // Create the input element\r\n const inputElement = document.createElement(\"input\");\r\n inputElement.setAttribute(\"type\", \"radio\");\r\n inputElement.setAttribute(\"id\", item.label);\r\n inputElement.setAttribute(\"name\", \"product-\" + item.value);\r\n\r\n // Create the label element\r\n const labelElement = document.createElement(\"label\");\r\n labelElement.setAttribute(\"for\", item.label);\r\n labelElement.classList.add(\"subtitle2\");\r\n labelElement.textContent = item.label + \": [\" + item.value + \"]\";\r\n\r\n // Append the input and label elements to the list item\r\n listItem.appendChild(inputElement);\r\n listItem.appendChild(labelElement);\r\n\r\n // Append the list item to the parent element\r\n productSpecificationsContainer.appendChild(listItem);\r\n });\r\n }\r\n\r\n updateProductTableDetails(productTableDetails) {\r\n if (!productTableDetails) return;\r\n\r\n\r\n if (!productTableDetails.pricingTableItems) return;\r\n\r\n const tableWrapper = this.el.querySelector(\".product-details__table\");\r\n const tableHeaderRow = `\r\n \r\n

${productTableDetails.amountLabel}

\r\n \r\n

${productTableDetails.excludingVatLabel}

\r\n

${productTableDetails.perPackageSizeLabel}

\r\n \r\n \r\n

${productTableDetails.includingVatLabel} (21%)

\r\n

${productTableDetails.perPackageSizeLabel}

\r\n \r\n \r\n `;\r\n\r\n const unitsTableBody = `\r\n
\r\n

${productTableDetails.minimumOrderLabel}

\r\n

${productTableDetails.minimumOrder} ${productTableDetails.unitsLabel}

\r\n
\r\n
\r\n

${productTableDetails.soldInPacksLabel}

\r\n

${productTableDetails.packageSize} ${productTableDetails.unitsLabel}

\r\n
\r\n `;\r\n\r\n this.amountInput.setAttribute(\"min\", productTableDetails.minimumOrder);\r\n this.amountInput.setAttribute(\"max\", productTableDetails.maximumOrder);\r\n this.amountInput.setAttribute(\"step\", productTableDetails.packageSize);\r\n\r\n\r\n const tableBody = tableWrapper.querySelector(\"tbody\");\r\n const tableHead = tableWrapper.querySelector(\"thead\");\r\n const unitsTable = tableWrapper.querySelector(\".product-details__table-units\");\r\n tableHead.innerHTML = \"\";\r\n tableBody.innerHTML = \"\";\r\n unitsTable.innerHTML = \"\";\r\n tableHead.innerHTML = tableHeaderRow;\r\n unitsTable.innerHTML = unitsTableBody;\r\n\r\n productTableDetails.pricingTableItems.forEach((item) => {\r\n // Create the paragraph (

) element for the first cell\r\n const firstCellParagraphElement = document.createElement(\"p\");\r\n firstCellParagraphElement.classList.add(\"body2\");\r\n firstCellParagraphElement.textContent = item.title;\r\n\r\n // Create the table row () element\r\n const tableRowElement = document.createElement(\"tr\");\r\n\r\n // Create the first table cell () element\r\n const firstTableCell = document.createElement(\"td\");\r\n\r\n // Append the paragraph to the first table cell\r\n firstTableCell.appendChild(firstCellParagraphElement);\r\n\r\n // Append the first table cell to the table row\r\n tableRowElement.appendChild(firstTableCell);\r\n\r\n // Create the second table cell () element\r\n const secondTableCell = document.createElement(\"td\");\r\n\r\n // Create the paragraph (

) element for the second cell\r\n const secondCellParagraphElement = document.createElement(\"p\");\r\n secondCellParagraphElement.classList.add(\"body2\");\r\n secondCellParagraphElement.textContent = item.priceWithoutTax;\r\n\r\n // Append the paragraph to the second table cell\r\n secondTableCell.appendChild(secondCellParagraphElement);\r\n\r\n // Append the second table cell to the table row\r\n tableRowElement.appendChild(secondTableCell);\r\n\r\n // Create the third table cell () element\r\n const thirdTableCell = document.createElement(\"td\");\r\n\r\n // Create the paragraph (

) element for the third cell\r\n const thirdCellParagraphElement = document.createElement(\"p\");\r\n thirdCellParagraphElement.classList.add(\"body2\");\r\n thirdCellParagraphElement.textContent = item.priceWithTax;\r\n\r\n // Append the paragraph to the third table cell\r\n thirdTableCell.appendChild(thirdCellParagraphElement);\r\n\r\n // Append the third table cell to the table row\r\n tableRowElement.appendChild(thirdTableCell);\r\n\r\n // Append the table row to the parent table (assuming you have a table element with ID \"myTable\")\r\n tableBody.appendChild(tableRowElement);\r\n });\r\n }\r\n\r\n\r\n}\r\n\r\nexport default ProductDetailsPage;","import { Widget } from \"blue-widgets\";\r\n\r\nclass ProductListing extends Widget {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n let selectedTag;\r\n let selectedSortOrder = \"\";\r\n let subCategory = \"\";\r\n let mainCategory = \"\";\r\n const currentPage = 1;\r\n const productsAPI = \"/umbraco/api/productapi/GetFilteredProductsListing\";\r\n const categoriesAPI = \"/umbraco/api/productapi/GetCategories?Query=\";\r\n let culture = this.el.getAttribute(\"data-culture\");\r\n let pageId = this.el.getAttribute(\"data-page-id\");\r\n getCategoryFromURL();\r\n\r\n function getCategoryFromURL() {\r\n const url = new URL(window.location.href);\r\n if (url.search) {\r\n let searchTerm = url.search.split(\"Category=\")[1];\r\n searchTerm = decodeURIComponent(searchTerm);\r\n const subCategoryURL = searchTerm.replace(/%20/g, \" \");\r\n subCategory = subCategoryURL;\r\n }\r\n const pathname = url.pathname.split(\"/\").filter((part) => part !== \"\");\r\n mainCategory = pathname[pathname.length - 1];\r\n\r\n fetchCategoryData();\r\n }\r\n\r\n function fetchCategoryData() {\r\n const apiUrl = `${categoriesAPI}${mainCategory}`;\r\n (async () => {\r\n try {\r\n const response = await fetch(apiUrl, {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n },\r\n });\r\n const data = await response.json();\r\n createCategoriesAccordion(data);\r\n fetchProductsLoad();\r\n } catch (error) {\r\n console.error(\"Error fetching categories:\", error);\r\n }\r\n })();\r\n }\r\n\r\n function getSelectedCategories() {\r\n const categoryCheckboxes = document.querySelectorAll(\r\n \".product-listing__left input[type='checkbox']:checked\"\r\n );\r\n\r\n const selectedCategories = Array.from(categoryCheckboxes)\r\n .filter((checkbox) => !checkbox.id.includes(\"category-all\"))\r\n .map((checkbox) => checkbox.value);\r\n return selectedCategories;\r\n }\r\n\r\n function fetchProductsLoad(page = 1) {\r\n const data = {\r\n pageId: Number.parseInt(pageId),\r\n categories: [],\r\n page: page,\r\n pageSize: 99999,\r\n culture: culture,\r\n };\r\n fetch(`${productsAPI}`, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(data),\r\n })\r\n .then(handleResponse)\r\n .then((responseData) => {\r\n if (subCategory.length !== 0) {\r\n fetchProducts();\r\n } else {\r\n updateProductListing(responseData);\r\n }\r\n createTags(responseData);\r\n })\r\n .catch((error) => {\r\n console.error(\"Error fetching products:\", error);\r\n });\r\n }\r\n\r\n function handleResponse(response) {\r\n if (!response.ok) {\r\n throw new Error(\"Network response was not ok\");\r\n }\r\n return response.json();\r\n }\r\n\r\n function fetchProducts(page = 1, sortOption = \"\", tag = selectedTag) {\r\n const selectedCategories = getSelectedCategories();\r\n const data = {\r\n pageId: Number.parseInt(pageId),\r\n categories: selectedCategories,\r\n page: page,\r\n pageSize: 99999,\r\n sortOption: sortOption,\r\n tag: tag,\r\n culture: culture,\r\n };\r\n fetch(`${productsAPI}`, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(data),\r\n })\r\n .then((response) => response.json())\r\n .then(updateProductListing)\r\n .catch((error) => console.error(\"Error fetching products:\", error));\r\n }\r\n\r\n function createCategoriesAccordion(data) {\r\n createSubCategoryBtns(data);\r\n const accordionParents = document.querySelectorAll(\r\n \".product-listing__container .accordion-parent\"\r\n );\r\n accordionParents.forEach((parent, indexParent) => {\r\n const accordionTitle = parent.querySelector(\".accordion__btn-parent\");\r\n accordionTitle.childNodes[2].textContent = data.title;\r\n data.subCategoriesList.forEach((category, indexCategory) => {\r\n createSubCategories(category, parent, indexCategory, indexParent);\r\n });\r\n });\r\n if (subCategory.length !== 0 && subCategory !== undefined) {\r\n let subCategoryContainer = document.querySelectorAll(\r\n `[data-select-all=\"${subCategory}\"] .accordion__content-inner input[type='checkbox']`\r\n );\r\n if (subCategoryContainer.length === 0) {\r\n subCategoryContainer = document.querySelectorAll(\r\n `.accordion__content-inner input[type='checkbox'][value=\"${subCategory}\"]`\r\n );\r\n }\r\n toggleAllCheckboxes(subCategoryContainer, subCategory);\r\n }\r\n }\r\n\r\n const createSubCategories = (\r\n category,\r\n parent,\r\n indexCategory,\r\n indexParent\r\n ) => {\r\n const parentContainer = parent;\r\n let accordionGroup;\r\n if (\r\n parentContainer.querySelector(\r\n `[data-title=\"${category.tag}\"] .accordion-group .accordion-group`\r\n )\r\n ) {\r\n accordionGroup = parentContainer.querySelector(\r\n `[data-title=\"${category.tag}\"] .accordion-group .accordion-group`\r\n );\r\n } else {\r\n accordionGroup = parentContainer.querySelector(\".accordion-group\");\r\n }\r\n\r\n const checkboxAll = createCheckboxAll(\r\n \"All\",\r\n `category-all-${indexCategory}${indexParent}`,\r\n category\r\n );\r\n const accordionChild = createAccordionChild(\r\n category,\r\n indexCategory,\r\n indexParent\r\n );\r\n const accordionChildSelector = accordionChild.querySelector(\r\n \".accordion__content-inner-child\"\r\n );\r\n\r\n if (category && category.subCategoriesLists && category.subCategoriesLists.length > 0) {\r\n accordionChildSelector.appendChild(checkboxAll);\r\n }\r\n\r\n accordionGroup.appendChild(accordionChild);\r\n if (category.subCategoriesLists.length > 0) {\r\n category.subCategoriesLists.forEach((item, index) => {\r\n if (\r\n item.subCategoriesLists !== null &&\r\n item.subCategoriesLists.length > 0\r\n ) {\r\n const parent = document.querySelectorAll(\r\n `[data-select-all=\"${category.tag}\"] .accordion__content-inner-child`\r\n );\r\n const lastItem = parent[parent.length - 1];\r\n const id = 1;\r\n const newAccordionGroup = createAccordionGroup(id, item.title);\r\n lastItem.appendChild(newAccordionGroup);\r\n const newGroup = lastItem.querySelector(\r\n \".accordion__content-parent .accordion-group\"\r\n );\r\n createSubCategories(\r\n item,\r\n newGroup,\r\n indexCategory + 12,\r\n indexParent + 12\r\n );\r\n } else {\r\n const mainCategoryCheckbox = createCheckbox(\r\n item.title,\r\n `main-category-${indexCategory}${indexParent}`,\r\n item.tag\r\n );\r\n accordionChildSelector.appendChild(mainCategoryCheckbox);\r\n }\r\n });\r\n }\r\n syncCheckboxes();\r\n };\r\n\r\n function createAccordionGroup(id, title) {\r\n const accordionGroup = document.createElement(\"div\");\r\n accordionGroup.classList.add(\"accordion-group\");\r\n accordionGroup.setAttribute(\"data-widget\", \"ExpandableGroup\");\r\n accordionGroup.setAttribute(\"role\", \"group\");\r\n accordionGroup.setAttribute(\"data-title\", `${title}`);\r\n\r\n const accordionParent = createAccordionParent(id);\r\n accordionGroup.appendChild(accordionParent);\r\n\r\n return accordionGroup;\r\n }\r\n\r\n function createAccordionParent(id) {\r\n const accordionParent = document.createElement(\"div\");\r\n accordionParent.classList.add(\"accordion\", \"accordion-parent\");\r\n accordionParent.setAttribute(\"data-widget\", \"Expandable\");\r\n\r\n const accordionContentParent = createAccordionContentParent(id);\r\n accordionParent.appendChild(accordionContentParent);\r\n\r\n return accordionParent;\r\n }\r\n\r\n function createAccordionContentParent(id) {\r\n const accordionContentParent = document.createElement(\"div\");\r\n accordionContentParent.classList.add(\"accordion__content-parent\");\r\n accordionContentParent.setAttribute(\"id\", `item${id}-content`);\r\n accordionContentParent.setAttribute(\"role\", \"region\");\r\n accordionContentParent.setAttribute(\"aria-hidden\", \"true\");\r\n\r\n const accordionContentInner = document.createElement(\"div\");\r\n accordionContentInner.classList.add(\r\n \"accordion__content-inner\",\r\n \"accordion__content-inner-parent\"\r\n );\r\n\r\n const nestedAccordionGroup = document.createElement(\"div\");\r\n nestedAccordionGroup.classList.add(\"accordion-group\");\r\n nestedAccordionGroup.setAttribute(\"data-widget\", \"ExpandableGroup\");\r\n nestedAccordionGroup.setAttribute(\"role\", \"group\");\r\n\r\n accordionContentInner.appendChild(nestedAccordionGroup);\r\n accordionContentParent.appendChild(accordionContentInner);\r\n\r\n return accordionContentParent;\r\n }\r\n\r\n const toggleAllCheckboxes = (parentContainer, checkboxAll) => {\r\n parentContainer.forEach((checkbox) => {\r\n if (checkboxAll) {\r\n checkbox.checked = true;\r\n } else {\r\n checkbox.checked = false;\r\n }\r\n });\r\n fetchProducts();\r\n };\r\n\r\n const createCheckboxAll = (label, id, category) => {\r\n const subcategoryAllCheckboxList = [];\r\n category.subCategoriesLists.forEach((item) => {\r\n subcategoryAllCheckboxList.push(item.tag);\r\n });\r\n const wrapper = document.createElement(\"div\");\r\n wrapper.classList.add(\"checkbox\", `${id}`);\r\n wrapper.setAttribute(\"data-widget\", \"Checkbox\");\r\n wrapper.setAttribute(\"data-name\", `${category.title}`);\r\n\r\n const input = document.createElement(\"input\");\r\n input.type = \"checkbox\";\r\n input.id = id;\r\n input.name = \"categories\";\r\n input.value = category.title;\r\n\r\n const labelElement = document.createElement(\"label\");\r\n labelElement.setAttribute(\"for\", id);\r\n labelElement.textContent = label;\r\n labelElement.tabIndex = 0;\r\n\r\n wrapper.addEventListener(\"change\", () => {\r\n const checkboxesParent = document.querySelectorAll(\r\n `[data-select-all=\"${category.tag}\"] .accordion__content-inner input[type='checkbox']`\r\n );\r\n toggleAllCheckboxes(checkboxesParent, input.checked);\r\n getSelectedCategories();\r\n });\r\n wrapper.appendChild(input);\r\n wrapper.appendChild(labelElement);\r\n\r\n return wrapper;\r\n };\r\n\r\n function createCheckbox(label, id, value) {\r\n const wrapper = document.createElement(\"div\");\r\n wrapper.classList.add(\"checkbox\");\r\n wrapper.setAttribute(\"data-widget\", \"Checkbox\");\r\n\r\n const input = document.createElement(\"input\");\r\n input.type = \"checkbox\";\r\n input.id = id + value;\r\n input.name = \"categories\";\r\n input.value = value;\r\n\r\n const labelElement = document.createElement(\"label\");\r\n labelElement.setAttribute(\"for\", id + value);\r\n labelElement.textContent = label;\r\n labelElement.tabIndex = 0;\r\n\r\n wrapper.appendChild(input);\r\n wrapper.appendChild(labelElement);\r\n\r\n wrapper.addEventListener(\"change\", () => {\r\n const checkboxAll = wrapper.parentNode.firstElementChild.querySelector(\r\n \"input[type='checkbox']\"\r\n );\r\n if (!input.checked) {\r\n checkboxAll.checked = false;\r\n }\r\n fetchProducts();\r\n });\r\n return wrapper;\r\n }\r\n\r\n function createAccordionChild(category, indexCategory, indexParent) {\r\n const accordionChild = document.createElement(\"div\");\r\n accordionChild.classList.add(\"accordion\", \"accordion-child\");\r\n accordionChild.setAttribute(\"data-widget\", \"Expandable\");\r\n accordionChild.setAttribute(\"data-select-all\", `${category.tag}`);\r\n\r\n const buttonWrapper = document.createElement(\"div\");\r\n buttonWrapper.classList.add(\"accordion__trigger\");\r\n buttonWrapper.setAttribute(\"aria-controls\", `item${indexParent}-content`);\r\n buttonWrapper.setAttribute(\"data-accordion-trigger\", \"true\");\r\n\r\n const childBtn = document.createElement(\"button\");\r\n childBtn.classList.add(\"subtitle2\");\r\n childBtn.setAttribute(\"aria-haspopup\", \"true\");\r\n childBtn.setAttribute(\"aria-expanded\", \"true\");\r\n\r\n childBtn.innerHTML = `${category.title}`;\r\n\r\n const contentChild = document.createElement(\"div\");\r\n contentChild.classList.add(\"accordion__content-child\");\r\n contentChild.setAttribute(\"id\", `item${indexParent}-content`);\r\n contentChild.setAttribute(\"role\", \"region\");\r\n contentChild.setAttribute(\"aria-hidden\", \"false\");\r\n contentChild.setAttribute(\"tabindex\", \"-1\");\r\n contentChild.style.maxHeight = \"800px\";\r\n const contentInnerChild = document.createElement(\"div\");\r\n contentInnerChild.classList.add(\r\n \"accordion__content-inner\",\r\n \"accordion__content-inner-child\"\r\n );\r\n const icon = childBtn.querySelector(\".icon\");\r\n icon.style.transform = \"rotate(180deg)\";\r\n\r\n buttonWrapper.addEventListener(\"click\", (event) => {\r\n if (event.target === childBtn) {\r\n const isExpanded = childBtn.getAttribute(\"aria-expanded\") === \"true\";\r\n if (isExpanded) {\r\n contentChild.style.maxHeight = \"0px\";\r\n icon.style.transform = \"rotate(0deg)\";\r\n accordionChild.classList.remove(\"isOpen\");\r\n childBtn.setAttribute(\"aria-expanded\", \"false\");\r\n } else {\r\n contentChild.style.maxHeight = \"800px\";\r\n icon.style.transform = \"rotate(180deg)\";\r\n accordionChild.classList.add(\"isOpen\");\r\n childBtn.setAttribute(\"aria-expanded\", \"true\");\r\n }\r\n }\r\n });\r\n\r\n buttonWrapper.addEventListener(\"keydown\", (event) => {\r\n if (\r\n event.target === childBtn &&\r\n (event.key === \"Enter\" || event.key === \" \")\r\n ) {\r\n event.preventDefault();\r\n const isExpanded = childBtn.getAttribute(\"aria-expanded\") === \"true\";\r\n if (isExpanded) {\r\n accordionChild.classList.remove(\"isOpen\");\r\n childBtn.setAttribute(\"aria-expanded\", \"false\");\r\n } else {\r\n accordionChild.classList.add(\"isOpen\");\r\n childBtn.setAttribute(\"aria-expanded\", \"true\");\r\n }\r\n }\r\n });\r\n buttonWrapper.appendChild(childBtn);\r\n accordionChild.appendChild(buttonWrapper);\r\n\r\n contentChild.appendChild(contentInnerChild);\r\n buttonWrapper.parentNode.insertBefore(\r\n contentChild,\r\n buttonWrapper.nextSibling\r\n );\r\n\r\n return accordionChild;\r\n }\r\n\r\n function updateProductListing(response) {\r\n const productContainer = document.querySelector(\r\n \".product-listing__products\"\r\n );\r\n const productCountElement = document.querySelector(\"#productCount\");\r\n if (!productContainer) {\r\n return;\r\n }\r\n productContainer.innerHTML = \"\";\r\n if (productCountElement) {\r\n const resultsText = productCountElement.dataset.resultsText;\r\n\r\n let itemCount = 0;\r\n if (response && response.items) {\r\n itemCount = response.items.length;\r\n }\r\n\r\n productCountElement.textContent = `${itemCount} ${resultsText}`;\r\n }\r\n if (response && response.items) {\r\n response.items.forEach((product) => {\r\n let productCardHTML = `

`;\r\n productContainer.innerHTML += productCardHTML;\r\n });\r\n }\r\n }\r\n\r\n const createTags = (response) => {\r\n const relatedLabelsContainer = document.querySelector(\r\n \".product-listing__labels .product-listing__labels-row\"\r\n );\r\n relatedLabelsContainer.innerHTML = \"\";\r\n const uniqueTags = new Set();\r\n response.items.forEach((product) => {\r\n product.tags?.slice(0, 2).forEach((tag) => {\r\n uniqueTags.add(tag.title);\r\n });\r\n });\r\n uniqueTags.forEach((tag) => {\r\n const radio = document.createElement(\"input\");\r\n radio.type = \"radio\";\r\n radio.name = \"tag\";\r\n radio.value = tag;\r\n radio.id = `tag-${tag}`;\r\n\r\n const label = document.createElement(\"label\");\r\n label.textContent = tag;\r\n label.className = \"label label--border-only\";\r\n label.htmlFor = `tag-${tag}`;\r\n\r\n let selectedRadioTag = \"\";\r\n\r\n radio.addEventListener(\"click\", () => {\r\n if (selectedRadioTag !== radio.value || selectedTag === \"\") {\r\n radio.checked = true;\r\n selectedRadioTag = radio.value;\r\n selectedTag = radio.value;\r\n fetchProducts(1, \"\", radio.value);\r\n } else {\r\n radio.checked = false;\r\n selectedTag = \"\";\r\n fetchProducts(1, \"\", \"\");\r\n }\r\n });\r\n\r\n relatedLabelsContainer.appendChild(radio);\r\n relatedLabelsContainer.appendChild(label);\r\n });\r\n };\r\n\r\n const createSubCategoryBtns = (data) => {\r\n const relatedCategoriesContainer = document.querySelector(\r\n \".product-listing__categories\"\r\n );\r\n if (relatedCategoriesContainer !== null) {\r\n data.subCategoriesList.slice(0, 5).forEach((category) => {\r\n const button = document.createElement(\"button\");\r\n button.classList.add(\"product-listing__categories-item\", \"subtitle1\");\r\n\r\n button.textContent = category.title;\r\n button.addEventListener(\"click\", () => {\r\n const checkboxesParent = document.querySelectorAll(\r\n `[data-select-all=\"${category.title}\"] .accordion__content-inner input[type='checkbox']`\r\n );\r\n const checkboxAll = document.querySelector(\r\n `[data-select-all=\"${category.title}\"] .accordion__content-inner input[value='${category.title}']`\r\n );\r\n toggleAllCheckboxes(checkboxesParent, !checkboxAll.checked);\r\n });\r\n\r\n const imageWrapper = document.createElement(\"div\");\r\n const image = document.createElement(\"img\");\r\n image.src =\r\n category.image.desktopSource !== null\r\n ? category.image.desktopSource\r\n : \"\";\r\n image.alt = category.title;\r\n image.width = 78;\r\n image.height = 105;\r\n imageWrapper.appendChild(image);\r\n button.appendChild(imageWrapper);\r\n\r\n relatedCategoriesContainer.appendChild(button);\r\n });\r\n }\r\n };\r\n\r\n function syncCheckboxes() {\r\n const allCheckboxes = document.querySelectorAll(\r\n \".accordion__content-inner input[type='checkbox']\"\r\n );\r\n const checkedValues = {};\r\n allCheckboxes.forEach((checkbox) => {\r\n const value = checkbox.value;\r\n checkbox.addEventListener(\"change\", function () {\r\n if (this.checked) {\r\n if (!checkedValues[value]) {\r\n checkedValues[value] = true;\r\n const duplicates = document.querySelectorAll(\r\n `.accordion__content-inner input[type='checkbox'][value='${value}']:not(:checked)`\r\n );\r\n duplicates.forEach((duplicate) => {\r\n duplicate.checked = true;\r\n });\r\n }\r\n } else {\r\n delete checkedValues[value];\r\n const duplicates = document.querySelectorAll(\r\n `.accordion__content-inner input[type='checkbox'][value='${value}']:checked`\r\n );\r\n duplicates.forEach((duplicate) => {\r\n duplicate.checked = false;\r\n });\r\n }\r\n });\r\n });\r\n }\r\n const sortSelect = document.querySelector(\r\n \".product-listing__sort .select select\"\r\n );\r\n\r\n sortSelect.addEventListener(\"change\", () => {\r\n if (sortSelect.value !== selectedSortOrder) {\r\n selectedSortOrder = sortSelect.value;\r\n fetchProducts(currentPage, selectedSortOrder, selectedTag);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default ProductListing;\r\n","/* eslint-disable no-console */\r\nimport { Widget } from \"blue-widgets\";\r\n\r\nclass Discount extends Widget {\r\n constructor(el) {\r\n super(el);\r\n\r\n if (!this.el) return;\r\n\r\n this.discountButton = this.el.querySelector(\".js-discount-button\");\r\n this.inputFieldWrapper = this.el.querySelector(\".js-input-field-wrapper\");\r\n this.discountErrorMessage = this.el.querySelector(\".js-discount-error-message\");\r\n this.codeInput = this.el.querySelector(\"input[name=\\\"code\\\"]\");\r\n\r\n this.discountButton.addEventListener(\"click\", this.addDiscount);\r\n }\r\n\r\n addDiscount = async (event) => {\r\n console.log(event);\r\n event.preventDefault(); // Prevent the default form submission\r\n\r\n if (!this.codeInput.value) return;\r\n\r\n await fetch(\"/umbraco/Surface/CheckoutSurface/ApplyDiscountOrGiftCardCode\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n code: this.codeInput.value,\r\n })\r\n })\r\n .then(async (response) => {\r\n if (response.ok) {\r\n this.inputFieldWrapper.classList.remove(\"input-field--error\");\r\n this.inputFieldWrapper.classList.add(\"input-field--undefined\");\r\n this.discountErrorMessage.style.display = \"none\";\r\n location.reload();\r\n } else {\r\n this.inputFieldWrapper.classList.remove(\"input-field--undefined\");\r\n this.inputFieldWrapper.classList.add(\"input-field--error\");\r\n this.discountErrorMessage.style.display = \"block\";\r\n console.error(\"Error sending POST request. Status:\", response.status);\r\n }\r\n })\r\n .catch((error) => {\r\n this.inputFieldWrapper.classList.remove(\"input-field--undefined\");\r\n this.inputFieldWrapper.classList.add(\"input-field--error\");\r\n this.discountErrorMessage.style.display = \"block\";\r\n console.error(\"Error sending POST request:\", error);\r\n });\r\n };\r\n\r\n removeDiscount = async () => {\r\n\r\n };\r\n}\r\n\r\nexport default Discount;","import { defineWidgets, parse, parser, registry } from \"blue-widgets\";\r\nimport * as widgets from \"./widgets\";\r\n\r\n\r\ndefineWidgets({\r\n ...widgets,\r\n});\r\n\r\nparse();\r\n\r\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","t","e","test","JSON","parse","n","charAt","toUpperCase","r","dataset","s","c","keys","forEach","attributes","a","length","i","name","u","substr","replace","window","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","bind","Promise","WeakMap","getAttribute","setAttribute","instance","ref","set","f","m","b","q","this","el","options","arguments","getOptions","onWidgetsReady","beforeRemove","R","S","document","querySelectorAll","Array","from","sort","push","all","then","constructor","super","subscribeFooterForm","querySelector","token","inputContainer","emailInput","subscribeButton","receiverEmailAddress","subscribeApiUrl","notificationText","addEventListener","handleClick","async","clearNotification","fetch","method","headers","body","stringify","subscriber","response","ok","removeAttribute","displayNotification","console","error","status","catch","notificationDiv","remove","subscribeNotificationDiv","createNotificationDiv","subscribeFooterDiv","insertBefore","firstChild","createElement","className","iconElement","paragraphElement","textContent","appendChild","subscribeBlockForm","subscribeContainer","innerHTML","init","dismissButton","culture","classList","add","handleClickEvent","addInputListeners","inputElements","inputElement","timeoutId","event","clearTimeout","orderLineId","target","closest","updateCart","contains","input","max","parseInt","validateProductQuantity","quantity","minQuantity","packSize","errorMessage","createAddErrorMessage","alert","removeButton","cartCard","handleRemoveButtonClick","incrementButton","handleIncrementButtonClick","decrementButton","handleDecrementButtonClick","data","json","updateHtml","cartView","dataLayer","ecommerce","removeFromCartEvent","orderLines","cartCards","card","id","html","text","cartContentDiv","insertAdjacentHTML","blueWidgetReinit","clearInput","results","parentElement","pageSize","homeId","query","page","selectedAttributes","isInitializationComplete","pageKey","inputs","apiUrl","addToCardApiUrl","addToCartButton","productReference","productVariantReference","amountInput","handleAttributeChange","updateProductReferenceAndProductVariatnKey","updateProductVariant","updateSpecifications","updateThumbnailImages","updateProductTableDetails","handleAddToCart","validateQuantity","accordion","checked","attributeAlias","attributeValue","completeInitialization","addChangeAttributeEventListener","preventDefault","isSample","Error","addToCartEvent","location","reload","isNaN","handleAddToCartSample","addToCartSampleButton","addSampleErrorMessage","matches","alias","postData","productNodeKey","fetchChanges","log","specifications","thumbnailImages","productDetailsTable","updatePrice","originalPrice","discountedPrice","originalPriceElement","discountedPriceElement","standardPriceElement","priceContainer","discountedPricePara","innerText","originalPricePara","standardPricePara","images","parentElm","listContainers","listContainer","image","listItem","divElement","pictureElement","sourceDesktop","desktopSource","desktop2xSource","sourceTablet","tabletSource","tablet2xSource","imgElement","mobileSource","alternateText","productSpecificationsContainer","item","label","labelElement","productTableDetails","pricingTableItems","tableWrapper","tableHeaderRow","amountLabel","excludingVatLabel","perPackageSizeLabel","includingVatLabel","unitsTableBody","minimumOrderLabel","minimumOrder","unitsLabel","soldInPacksLabel","packageSize","maximumOrder","tableBody","tableHead","unitsTable","firstCellParagraphElement","title","tableRowElement","firstTableCell","secondTableCell","secondCellParagraphElement","priceWithoutTax","thirdTableCell","thirdCellParagraphElement","priceWithTax","selectedTag","selectedSortOrder","subCategory","mainCategory","productsAPI","pageId","getSelectedCategories","categoryCheckboxes","filter","checkbox","includes","map","handleResponse","fetchProducts","sortOption","tag","selectedCategories","Number","categories","updateProductListing","url","URL","href","search","searchTerm","split","decodeURIComponent","subCategoryURL","pathname","part","Accept","createSubCategoryBtns","parent","indexParent","childNodes","subCategoriesList","category","indexCategory","createSubCategories","undefined","subCategoryContainer","toggleAllCheckboxes","createCategoriesAccordion","responseData","createTags","fetchProductsLoad","fetchCategoryData","getCategoryFromURL","parentContainer","accordionGroup","checkboxAll","createCheckboxAll","accordionChild","buttonWrapper","childBtn","contentChild","style","maxHeight","contentInnerChild","icon","transform","parentNode","nextSibling","createAccordionChild","accordionChildSelector","subCategoriesLists","index","lastItem","newAccordionGroup","accordionParent","accordionContentParent","accordionContentInner","nestedAccordionGroup","createAccordionContentParent","createAccordionParent","createAccordionGroup","newGroup","mainCategoryCheckbox","wrapper","type","tabIndex","firstElementChild","createCheckbox","allCheckboxes","checkedValues","duplicate","syncCheckboxes","subcategoryAllCheckboxList","checkboxesParent","productContainer","productCountElement","resultsText","itemCount","items","product","productCardHTML","callToActionLink","tags","slice","color","productImage","productName","description","relatedLabelsContainer","uniqueTags","Set","radio","htmlFor","selectedRadioTag","relatedCategoriesContainer","button","imageWrapper","src","alt","width","height","sortSelect","discountButton","inputFieldWrapper","discountErrorMessage","codeInput","addDiscount","code","display","removeDiscount"],"sourceRoot":""}