{"version":3,"file":"blog-show-305f769b.js","sources":["../../../../app/frontend/components/consumer/modules/blog-show.js"],"sourcesContent":["import Glide from \"@glidejs/glide\";\nimport Sizes from '../../shared/glide_fixed_width_slides';\n\nconst customTables = document.querySelectorAll('table[data-is-sticky-table]')\n\n/**\n * Fallback method to move up the tree and find the table's div.table-wrapper ancestor\n *\n * @param {HTMLElement} element - the table element from where to begin tree traversal\n * @returns {HTMLElement} the first element with .table-wrapper class\n */\nconst getTableWrapperEl = ( element ) => {\n\n let targetElement = null\n\n if( element.parentElement === document.body ) return null;\n\n if( element.classList.contains('table-wrapper') ) {\n return element;\n } else {\n targetElement = getTableWrapperEl( element.parentElement )\n }\n\n return targetElement;\n}\n\n/**\n * Determines whether gradient on right side of table should be added\n *\n * @param {HTMLElement} table - the target table element\n * @returns {void}\n */\nconst addGradientIfAppropriate = ( table, first = false ) => {\n const tableParent = table.parentElement;\n const tableWrapperEl = table.offsetParent?.classList.contains('table-wrapper') ? table.offsetParent : getTableWrapperEl( table );\n tableWrapperEl.classList.remove('table-no-overflow')\n tableWrapperEl.classList.remove('table-overflow')\n\n const tableHeight = table.offsetHeight;\n const tableWidth = table.offsetWidth;\n const wrapperWidth = tableWrapperEl.offsetWidth;\n\n if (tableWidth > wrapperWidth + 25) {\n tableWrapperEl.classList.add('table-overflow')\n tableWrapperEl.classList.remove('table-no-overflow')\n } else {\n tableWrapperEl.classList.add('table-no-overflow')\n tableWrapperEl.classList.remove('table-overflow')\n }\n\n if (tableWidth > wrapperWidth) {\n if (first) {\n tableWrapperEl.classList.add('not-fully-scrolled')\n }\n\n tableWrapperEl.style.setProperty('--tableHeightMinusScrollbar', `${tableHeight}px`)\n\n if( !tableParent.dataset.listenerAdded ) {\n tableParent.addEventListener('scroll', (e) => {\n const maxScroll = Math.abs(Math.floor(e.target.offsetWidth - table.offsetWidth));\n const currentScroll = e.target.scrollLeft;\n const scrollThreshold = Math.floor(maxScroll - 40); // width of gradient\n const maxGradientStop = 100;\n let prevScroll = parseInt(e.target.dataset.prevScroll)\n let gradientStop = parseInt(e.target.dataset.gradientStop)\n\n const scrollDirection = currentScroll > prevScroll ? 'right' : 'left';\n\n if( currentScroll >= scrollThreshold ) {\n\n switch(scrollDirection) {\n case 'right':\n if(gradientStop <= maxGradientStop) {\n e.target.dataset.gradientStop = gradientStop + 5;\n }\n break\n case 'left':\n if(gradientStop >= 0) {\n e.target.dataset.gradientStop = gradientStop - 5;\n }\n break\n }\n\n tableWrapperEl.style.setProperty('--gradientStop', `${gradientStop}%`)\n\n if( currentScroll >= maxScroll - 5 ) {\n tableWrapperEl.style.setProperty('--gradientStop', '100%')\n tableWrapperEl.classList.add('fully-scrolled')\n tableWrapperEl.classList.remove('not-fully-scrolled')\n } else {\n tableWrapperEl.classList.add('not-fully-scrolled')\n tableWrapperEl.classList.remove('fully-scrolled')\n }\n\n e.target.dataset.prevScroll = currentScroll;\n } else {\n tableWrapperEl.style.setProperty('--gradientStop', '0%')\n tableWrapperEl.classList.add('not-fully-scrolled')\n tableWrapperEl.classList.remove('fully-scrolled')\n e.target.dataset.gradientStop = 0;\n }\n })\n\n tableParent.dataset.listenerAdded = true;\n\n }\n }\n}\n\nconst checkForGradientsOnWindowResize = () => {\n // Will call the function only once per second max.\n if (!window.resizeInProgress) {\n window.resizeInProgress = true\n setTimeout(() => {\n let resizedCustomTables = document.querySelectorAll('table[data-is-sticky-table]')\n resizedCustomTables.forEach((table) => {\n addGradientIfAppropriate(table)\n })\n window.resizeInProgress = false\n }, 500)\n }\n}\n\n// Set initial data attribute values\ncustomTables.forEach((table) => {\n const tableParent = table.parentElement;\n tableParent.dataset.prevScroll = 0;\n tableParent.dataset.gradientStop = 0;\n addGradientIfAppropriate(table, true)\n})\n\nwindow.addEventListener('resize', checkForGradientsOnWindowResize);\n\nconst options = {\n type: 'carousel',\n startAt: 0,\n perView: 4,\n gap: 20,\n peek: {\n before: -10,\n after: 20,\n },\n breakpoints: {\n 1024: {\n perView: 3,\n peek: {\n before: -10,\n after: 40,\n },\n },\n 650: {\n perView: 2,\n peek: {\n before: -10,\n after: 32,\n },\n },\n 450: {\n perView: 1,\n peek: {\n before: 0,\n after: 32,\n },\n },\n },\n};\n\nconst blogArticleSlider = document.querySelector('.blog-related-articles-slider__slider.glide');\n\nif (blogArticleSlider) {\n const relatedPostsSlider = new Glide(blogArticleSlider, options);\n relatedPostsSlider.mount(Sizes);\n}\n"],"names":["customTables","getTableWrapperEl","element","targetElement","addGradientIfAppropriate","table","first","tableParent","tableWrapperEl","_a","tableHeight","tableWidth","wrapperWidth","e","maxScroll","currentScroll","scrollThreshold","maxGradientStop","prevScroll","gradientStop","scrollDirection","checkForGradientsOnWindowResize","options","blogArticleSlider","Glide","Sizes"],"mappings":"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"}