{"version":3,"file":"product-page.bundle.js","mappings":"CAOA,WACI,aAsEAA,SAASC,iBAAiB,mBAAoB,YAnE9C,WACI,MAAMC,EAAUF,SAASG,eAAe,mBACxC,IAAKD,EAAS,OAEd,MAAME,EAAUF,EAAQG,cAAc,oBAChCC,EAASJ,EAAQK,iBAAiB,kCAEnCH,GAA6B,IAAlBE,EAAOE,SAEvBF,EAAOG,QAAQ,SAAUC,GACrBA,EAAMT,iBAAiB,QAAS,WAC5B,MAAMU,EAAMD,EAAME,aAAa,YAC3BD,GACAP,EAAQS,aAAa,MAAOF,GAGhCL,EAAOG,QAAQ,SAAUK,GAAKA,EAAEC,UAAUC,OAAO,YAAc,GAC/DN,EAAMK,UAAUE,IAAI,YACxB,EACJ,GAGIX,EAAO,IAAIA,EAAO,GAAGS,UAAUE,IAAI,aAC3C,CA6CIC,GA1CJ,WACI,MAAMC,EAAWnB,SAASG,eAAe,eACnCiB,EAAcpB,SAASG,eAAe,gBACtCkB,EAAcrB,SAASG,eAAe,gBACtCmB,EAAetB,SAASG,eAAe,mBAI7C,SAASoB,EAAeC,GAChBF,GACAA,EAAaT,aAAa,oBAAqBY,OAAOD,GAE9D,CANKL,GAAaC,GAAgBC,IAQlCD,EAAYnB,iBAAiB,QAAS,WAClC,IAAIyB,EAAUC,SAASR,EAASS,MAAO,KAAO,EAC1CC,EAAOC,KAAKC,IAAI,EAAGL,EAAU,GACjCP,EAASS,MAAQC,EACjBN,EAAeM,EACnB,GAEAR,EAAYpB,iBAAiB,QAAS,WAClC,IAAIyB,EAAUC,SAASR,EAASS,MAAO,KAAO,EAC1CG,EAAMJ,SAASR,EAASP,aAAa,OAAQ,KAAO,GACpDiB,EAAOC,KAAKE,IAAID,EAAKL,EAAU,GACnCP,EAASS,MAAQC,EACjBN,EAAeM,EACnB,GAEAV,EAASlB,iBAAiB,SAAU,WAChC,IAAIgC,EAAMN,SAASR,EAASS,MAAO,KAC/BM,MAAMD,IAAQA,EAAM,KAAGA,EAAM,GACjCd,EAASS,MAAQK,EACjBV,EAAeU,EACnB,GAGAV,EAAeI,SAASR,EAASS,MAAO,KAAO,GACnD,CAKIO,EACJ,EACH,CA3ED","sources":["webpack://enjoy-digital-frontend-foundation/./assets/src/js/pages/product-page.js"],"sourcesContent":["/**\r\n * product-page.js\r\n * Handles product detail page interactions:\r\n * - Image gallery thumbnail switching\r\n * - Quantity input +/- buttons (syncs with the UCC add-to-cart button)\r\n */\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n // ── Gallery ──────────────────────────────────────────────────────────────\r\n function initGallery() {\r\n const gallery = document.getElementById('product-gallery');\r\n if (!gallery) return;\r\n\r\n const primary = gallery.querySelector('#gallery-primary');\r\n const thumbs = gallery.querySelectorAll('.product-detail__gallery-thumb');\r\n\r\n if (!primary || thumbs.length === 0) return;\r\n\r\n thumbs.forEach(function (thumb) {\r\n thumb.addEventListener('click', function () {\r\n const src = thumb.getAttribute('data-src');\r\n if (src) {\r\n primary.setAttribute('src', src);\r\n }\r\n // Active state\r\n thumbs.forEach(function (t) { t.classList.remove('is-active'); });\r\n thumb.classList.add('is-active');\r\n });\r\n });\r\n\r\n // Mark first thumb as active on load\r\n if (thumbs[0]) thumbs[0].classList.add('is-active');\r\n }\r\n\r\n // ── Quantity control ─────────────────────────────────────────────────────\r\n function initQty() {\r\n const qtyInput = document.getElementById('product-qty');\r\n const decreaseBtn = document.getElementById('qty-decrease');\r\n const increaseBtn = document.getElementById('qty-increase');\r\n const addToCartBtn = document.getElementById('add-to-cart-btn');\r\n\r\n if (!qtyInput || !decreaseBtn || !increaseBtn) return;\r\n\r\n function syncCartButton(qty) {\r\n if (addToCartBtn) {\r\n addToCartBtn.setAttribute('data-ucc-quantity', String(qty));\r\n }\r\n }\r\n\r\n decreaseBtn.addEventListener('click', function () {\r\n var current = parseInt(qtyInput.value, 10) || 1;\r\n var next = Math.max(1, current - 1);\r\n qtyInput.value = next;\r\n syncCartButton(next);\r\n });\r\n\r\n increaseBtn.addEventListener('click', function () {\r\n var current = parseInt(qtyInput.value, 10) || 1;\r\n var max = parseInt(qtyInput.getAttribute('max'), 10) || 99;\r\n var next = Math.min(max, current + 1);\r\n qtyInput.value = next;\r\n syncCartButton(next);\r\n });\r\n\r\n qtyInput.addEventListener('change', function () {\r\n var val = parseInt(qtyInput.value, 10);\r\n if (isNaN(val) || val < 1) val = 1;\r\n qtyInput.value = val;\r\n syncCartButton(val);\r\n });\r\n\r\n // Initialise the add-to-cart button to match the default qty\r\n syncCartButton(parseInt(qtyInput.value, 10) || 1);\r\n }\r\n\r\n // ── Boot ─────────────────────────────────────────────────────────────────\r\n document.addEventListener('DOMContentLoaded', function () {\r\n initGallery();\r\n initQty();\r\n });\r\n})();\r\n"],"names":["document","addEventListener","gallery","getElementById","primary","querySelector","thumbs","querySelectorAll","length","forEach","thumb","src","getAttribute","setAttribute","t","classList","remove","add","initGallery","qtyInput","decreaseBtn","increaseBtn","addToCartBtn","syncCartButton","qty","String","current","parseInt","value","next","Math","max","min","val","isNaN","initQty"],"sourceRoot":""}