{"version":3,"sources":["webpack://nada.org/./themes/custom/nada/js/components/overflow-scroll.js","webpack://nada.org/./themes/custom/nada/js/utils/debounce.js"],"names":["attachScrollingListeners","el","hideRightArrow","container","width","querySelectorAll","forEach","style","currentStyle","window","getComputedStyle","margin","parseFloat","marginLeft","marginRight","getBoundingClientRect","scrollRightButton","classList","add","scrollLeftButton","remove","querySelector","scrollAmount","dataset","scrollByAmount","addEventListener","scrollBy","top","left","behavior","debounce","e","target","scrollLeft","maxScroll","Math","floor","scrollWrappers","document","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout"],"mappings":"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","file":"webpack-chunks/chunk.themes_custom_nada_js_components_overflow-scroll_js.515524d5913c5d53f9c8.js","sourcesContent":["/**\n * Functions to handle the arrow buttons to scroll elements using .overflow-x-scroll\n *\n * Depends on a parent wrapper with a class of '.scroll--wrapper' and a data attribute \"data-scroll-by-amount\"\n * (e.g.
).\n *\n * Then inside that wrapper two buttons each with a class of '.button-scroll-left' and '.button-scroll-right, respectively.\n * And finally, the element inside the wrapper that will be scrolling with a class of '.overflow-x-scroll'.\n *\n */\n\nimport {\n debounce\n} from \"../utils/debounce\";\n\nfunction attachScrollingListeners(el) {\n function hideRightArrow() {\n if (!container) return; // Eğer container null ise fonksiyonu erken sonlandır\n\n let width = 0;\n container.querySelectorAll(\":scope > *\").forEach(el => {\n let style = el.currentStyle || window.getComputedStyle(el);\n let margin = parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n width += el.getBoundingClientRect().width + margin;\n });\n\n if (container.getBoundingClientRect().width >= width) {\n scrollRightButton.classList.add('hidden');\n scrollLeftButton.classList.add('hidden');\n } else {\n scrollRightButton.classList.remove('hidden');\n }\n }\n\n let scrollLeftButton = el.querySelector(\".scroll-button-left\");\n let scrollRightButton = el.querySelector(\".scroll-button-right\");\n let container = el.querySelector('[class*=\"-scroll\"]');\n let scrollAmount = el.dataset.scrollByAmount ? el.dataset.scrollByAmount : '100';\n\n if (scrollLeftButton && scrollRightButton && container) { // Ekstra kontrol ekledik\n scrollLeftButton.addEventListener('click', function () {\n container.scrollBy({\n top: 0,\n left: -scrollAmount,\n behavior: \"smooth\"\n });\n });\n scrollRightButton.addEventListener('click', function () {\n container.scrollBy({\n top: 0,\n left: scrollAmount,\n behavior: \"smooth\"\n });\n });\n hideRightArrow();\n window.addEventListener('resize', debounce(hideRightArrow, 200));\n\n container.addEventListener('scroll', debounce(function (e) {\n if (e.target.scrollLeft === 0) {\n scrollRightButton.classList.remove('hidden');\n scrollLeftButton.classList.add('hidden');\n return;\n }\n\n let width = 0;\n container.querySelectorAll(\":scope > *\").forEach(el => {\n let style = el.currentStyle || window.getComputedStyle(el);\n let margin = parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n width += el.getBoundingClientRect().width + margin;\n });\n let maxScroll = Math.floor(Math.floor(width) - container.getBoundingClientRect().width);\n if (e.target.scrollLeft < maxScroll) {\n scrollRightButton.classList.remove('hidden');\n scrollLeftButton.classList.remove('hidden');\n } else {\n scrollLeftButton.classList.remove('hidden');\n scrollRightButton.classList.add('hidden');\n }\n }, 200));\n }\n}\n\nlet scrollWrappers = document.querySelectorAll('.scroll--wrapper');\nscrollWrappers.forEach(el => {\n attachScrollingListeners(el);\n});\n\n","// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate = false) {\n\tvar timeout;\n\treturn function() {\n\t\tvar context = this, args = arguments;\n\t\tvar later = function() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};"],"sourceRoot":""}