{"version":3,"file":"productSlider.7fd6a9b934014cc216d9.js","mappings":"gHAqGAA,SAASC,iBAAiB,oBAAoB,WAC5CC,MAAMC,KAAKH,SAASI,iBAAiB,yBAAyBC,SAAQ,SAACC,IAtGtD,SAACA,GAClB,IAAMC,EAASD,EAAUE,cAAc,cACjCC,EAAYH,EAAUE,cAAc,UACpCE,EAAaJ,EAAUE,cAAc,gBACvCG,EAAM,CAAEC,IAAK,EAAGC,KAAM,EAAGC,EAAG,EAAGC,EAAG,GAwBhCC,EAAmB,SAAUC,GACjCV,EAAOH,iBAAiB,KAAKC,SAAQ,SAACa,GACpCA,EAAKC,MAAMC,cAAgB,MAC7B,IAEA,IAAMC,EAAKJ,EAAEK,QAAUX,EAAIG,EACrBS,EAAKN,EAAEO,QAAUb,EAAII,EAG3BR,EAAOkB,UAAYd,EAAIC,IAAMW,EAC7BhB,EAAOmB,WAAaf,EAAIE,KAAOQ,CACjC,EAEMM,EAAiB,WACrBpB,EAAOH,iBAAiB,KAAKC,SAAQ,SAACa,GACpCA,EAAKC,MAAMC,cAAgB,MAC7B,IACApB,SAAS4B,oBAAoB,YAAaZ,GAC1ChB,SAAS4B,oBAAoB,UAAWD,GAExCpB,EAAOY,MAAMU,OAAS,OACtBtB,EAAOY,MAAMW,eAAe,cAC9B,EAEMC,EAAmB,SAACC,GACxBC,aAAe,EACf,IAAIC,EAAaC,aAAY,WACT,SAAdH,EACFzB,EAAOmB,YAAc,GAErBnB,EAAOmB,YAAc,GAGvBU,IACAH,cAAgB,GACZA,cAAgB,KAClBI,OAAOC,cAAcJ,EAEzB,GAAG,GACL,EAEMK,EAAe,WACfhC,EAAOiC,YAAcjC,EAAOkC,aAC9BL,IACAlC,MAAMC,KAAKI,EAAOH,iBAAiB,WAAWC,SAAQ,SAACqC,GACrDA,EAAKC,UAAUC,IAAI,eACrB,MAEAnC,SAAAA,EAAWkC,UAAUC,IAAI,YACzBlC,SAAAA,EAAYiC,UAAUC,IAAI,YAC1B1C,MAAMC,KAAKI,EAAOH,iBAAiB,WAAWC,SAAQ,SAACqC,GACrDA,EAAKC,UAAUE,OAAO,eACxB,IAEJ,EAEMT,EAA4B,WAC5B7B,EAAOiC,YAAc,EAAIjC,EAAOkC,YAAclC,EAAOmB,WACvDhB,SAAAA,EAAYiC,UAAUC,IAAI,YAE1BlC,SAAAA,EAAYiC,UAAUE,OAAO,YAEL,IAAtBtC,EAAOmB,WACTjB,SAAAA,EAAWkC,UAAUC,IAAI,YAEzBnC,SAAAA,EAAWkC,UAAUE,OAAO,WAEhC,EAxFEpC,SAAAA,EAAWR,iBAAiB,SAAS,kBAAM8B,EAAiB,OAAO,IACnErB,SAAAA,EAAYT,iBAAiB,QAAS8B,GACtCM,OAAOpC,iBAAiB,SAAUsC,GAClChC,EAAON,iBAAiB,SAAUsC,GAClChC,EAAON,iBAAiB,aAGD,SAAUgB,GACjCN,EAAM,CAEJE,KAAMN,EAAOmB,WACbd,IAAKL,EAAOkB,UAEZX,EAAGG,EAAEK,QACLP,EAAGE,EAAEO,SAGPxB,SAASC,iBAAiB,YAAae,GACvChB,SAASC,iBAAiB,UAAW0B,EACvC,IAwEAY,GACF,CAIIO,CAAWxC,EACb,GACF,G","sources":["webpack://global-main/./Foundation/Common/code/Views/Foundation/Common/ProductSlider.js"],"sourcesContent":["const initSlider = (container) => {\n const slider = container.querySelector('.promotion');\n const arrowLeft = container.querySelector('.arrow');\n const arrowRight = container.querySelector('.arrow-right');\n let pos = { top: 0, left: 0, x: 0, y: 0 };\n\n const bindEvents = () => {\n arrowLeft?.addEventListener('click', () => horizontalScroll('back'));\n arrowRight?.addEventListener('click', horizontalScroll);\n window.addEventListener('resize', renderArrows);\n slider.addEventListener('scroll', renderArrows);\n slider.addEventListener('mousedown', mouseDownHandler);\n };\n\n const mouseDownHandler = function (e) {\n pos = {\n // The current scroll\n left: slider.scrollLeft,\n top: slider.scrollTop,\n // Get the current mouse position\n x: e.clientX,\n y: e.clientY,\n };\n\n document.addEventListener('mousemove', mouseMoveHandler);\n document.addEventListener('mouseup', mouseUpHandler);\n };\n\n const mouseMoveHandler = function (e) {\n slider.querySelectorAll('a').forEach((link) => {\n link.style.pointerEvents = 'none';\n });\n // How far the mouse has been moved\n const dx = e.clientX - pos.x;\n const dy = e.clientY - pos.y;\n\n // Scroll the element\n slider.scrollTop = pos.top - dy;\n slider.scrollLeft = pos.left - dx;\n };\n\n const mouseUpHandler = function () {\n slider.querySelectorAll('a').forEach((link) => {\n link.style.pointerEvents = 'auto';\n });\n document.removeEventListener('mousemove', mouseMoveHandler);\n document.removeEventListener('mouseup', mouseUpHandler);\n\n slider.style.cursor = 'grab';\n slider.style.removeProperty('user-select');\n };\n\n const horizontalScroll = (direction) => {\n scrollAmount = 0;\n var slideTimer = setInterval(function () {\n if (direction === 'back') {\n slider.scrollLeft -= 70;\n } else {\n slider.scrollLeft += 70;\n }\n\n setArrowsFromScrollStates();\n scrollAmount += 70;\n if (scrollAmount >= 500) {\n window.clearInterval(slideTimer);\n }\n }, 27);\n };\n\n const renderArrows = () => {\n if (slider.scrollWidth > slider.clientWidth) {\n setArrowsFromScrollStates();\n Array.from(slider.querySelectorAll('.price')).forEach((card) => {\n card.classList.add('card-spacing');\n });\n } else {\n arrowLeft?.classList.add('disabled');\n arrowRight?.classList.add('disabled');\n Array.from(slider.querySelectorAll('.price')).forEach((card) => {\n card.classList.remove('card-spacing');\n });\n }\n };\n\n const setArrowsFromScrollStates = () => {\n if (slider.scrollWidth - 1 < slider.clientWidth + slider.scrollLeft) {\n arrowRight?.classList.add('disabled');\n } else {\n arrowRight?.classList.remove('disabled');\n }\n if (slider.scrollLeft === 0) {\n arrowLeft?.classList.add('disabled');\n } else {\n arrowLeft?.classList.remove('disabled');\n }\n };\n\n bindEvents();\n renderArrows();\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Array.from(document.querySelectorAll('.promotion-container')).forEach((container) => {\n initSlider(container);\n });\n});\n"],"names":["document","addEventListener","Array","from","querySelectorAll","forEach","container","slider","querySelector","arrowLeft","arrowRight","pos","top","left","x","y","mouseMoveHandler","e","link","style","pointerEvents","dx","clientX","dy","clientY","scrollTop","scrollLeft","mouseUpHandler","removeEventListener","cursor","removeProperty","horizontalScroll","direction","scrollAmount","slideTimer","setInterval","setArrowsFromScrollStates","window","clearInterval","renderArrows","scrollWidth","clientWidth","card","classList","add","remove","initSlider"],"sourceRoot":""}