{"version":3,"file":"scrolling-features.min.js","sources":["scrolling-features.min.js"],"sourcesContent":["\"use strict\";\n\n(function () {\n var debounce = function debounce(fn, delay) {\n var timeout;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n return fn.apply(void 0, args);\n }, delay);\n };\n };\n var getGap = function getGap(wrapper) {\n var _getComputedStyle;\n return parseInt((_getComputedStyle = getComputedStyle(wrapper)) === null || _getComputedStyle === void 0 ? void 0 : _getComputedStyle.gap) || 0;\n };\n var getCumulativeHeight = function getCumulativeHeight(sections, index) {\n var totalHeight = 0;\n for (var i = 0; i < index; i++) {\n totalHeight += sections[i].scrollHeight;\n }\n return totalHeight;\n };\n var equalizeHeights = function equalizeHeights(sections) {\n var maxHeight = 0;\n sections.forEach(function (item) {\n item.style.height = 'auto'; // Reset the height before recalculating\n maxHeight = Math.max(maxHeight, item.scrollHeight);\n });\n sections.forEach(function (item) {\n return item.style.height = \"\".concat(maxHeight, \"px\");\n });\n };\n var getOffset = function getOffset(el, container) {\n return container ? container.offsetTop + el.offsetTop : el.offsetTop;\n };\n document.querySelectorAll('.scrolling_features').forEach(function (feature) {\n var sections = feature.querySelectorAll('.scrolling_features_section');\n var wrapper = feature.querySelector('.scrolling_features_wrapper');\n var bgContainer = feature.closest('.background_container');\n var tabContainer = feature.closest('.tab_container');\n var getHeaderHeight = function getHeaderHeight() {\n var _feature$querySelecto;\n return ((_feature$querySelecto = feature.querySelector('.main_text_header')) === null || _feature$querySelecto === void 0 ? void 0 : _feature$querySelecto.scrollHeight) || 0;\n };\n var isSticky = function isSticky() {\n sections.forEach(function (el, index) {\n var prevEl = sections[index - 1] || null;\n if (!prevEl) return;\n var elRect = el.getBoundingClientRect();\n var topOffset = parseInt(getComputedStyle(el).top, 10) || 0; // get top position calculated from CSS\n var paddingBottom = parseInt(getComputedStyle(el).paddingBottom, 10) || 0; // get paddingBottom from CSS\n var offset = paddingBottom * 2; // extra offset for start title animation\n\n // check if slide became sticky at the top of screen with extra offset\n var isNextSticky = elRect.top <= topOffset + offset;\n\n // if next slide became sticky, set previous element is-sticky\n prevEl === null || prevEl === void 0 || prevEl.classList.toggle('is-sticky', isNextSticky);\n });\n };\n sections.forEach(function (el, index) {\n var scrollTitle = el.querySelector('.top-title');\n scrollTitle === null || scrollTitle === void 0 || scrollTitle.addEventListener('click', function () {\n return window.scrollTo({\n top: getOffset(feature, bgContainer || tabContainer) + getHeaderHeight() - getGap(wrapper) + getCumulativeHeight(sections, index),\n behavior: 'smooth'\n });\n });\n });\n var initFeature = function initFeature() {\n isSticky();\n equalizeHeights(sections); // Call the function on window load and resize to ensure the height is recalculated\n };\n\n // Вызываем при загрузке и изменении размеров окна\n window.addEventListener('scroll', isSticky, {\n passive: true\n });\n window.addEventListener('resize', debounce(initFeature, 100), {\n passive: true\n });\n document.addEventListener(\"DOMContentLoaded\", initFeature);\n document.addEventListener('readystatechange', function (e) {\n return e.target.readyState === 'complete' && initFeature();\n });\n });\n})();"],"names":["document","querySelectorAll","forEach","feature","isSticky","sections","el","index","topOffset","isNextSticky","prevEl","elRect","getBoundingClientRect","parseInt","getComputedStyle","top","paddingBottom","classList","toggle","initFeature","maxHeight","item","style","height","Math","max","scrollHeight","concat","fn","delay","timeout","wrapper","querySelector","bgContainer","closest","tabContainer","scrollTitle","addEventListener","window","scrollTo","container","offsetTop","_feature$querySelecto","_getComputedStyle","gap","totalHeight","i","behavior","passive","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","e","target","readyState"],"mappings":"AAuCEA,SAASC,iBAAiB,qBAAqB,EAAEC,QAAQ,SAAUC,GASlD,SAAXC,IACFC,EAASH,QAAQ,SAAUI,EAAIC,GAC7B,IAGIC,EAKAC,EARAC,EAASL,EAASE,EAAQ,IAAM,KAC/BG,IACDC,EAASL,EAAGM,sBAAsB,EAClCJ,EAAYK,SAASC,iBAAiBR,CAAE,EAAES,IAAK,EAAE,GAAK,EACtDC,EAAgBH,SAASC,iBAAiBR,CAAE,EAAEU,cAAe,EAAE,GAAK,EAIpEP,EAAeE,EAAOI,KAAOP,EAHJ,EAAhBQ,EAMbN,MAAAA,IAAwCA,EAAOO,UAAUC,OAAO,YAAaT,CAAY,CAC3F,CAAC,CACH,CAUkB,SAAdU,IA/CgB,IAAyBd,EACzCe,EA+CFhB,EAAS,EA/CPgB,EAAY,GAD6Bf,EAiD3BA,GA/CTH,QAAQ,SAAUmB,GACzBA,EAAKC,MAAMC,OAAS,OACpBH,EAAYI,KAAKC,IAAIL,EAAWC,EAAKK,YAAY,CACnD,CAAC,EACDrB,EAASH,QAAQ,SAAUmB,GACzB,OAAOA,EAAKC,MAAMC,OAAS,GAAGI,OAAOP,EAAW,IAAI,CACtD,CAAC,CA0CD,CApCA,IArC+BQ,EAAIC,EAC/BC,EAoCAzB,EAAWF,EAAQF,iBAAiB,6BAA6B,EACjE8B,EAAU5B,EAAQ6B,cAAc,6BAA6B,EAC7DC,EAAc9B,EAAQ+B,QAAQ,uBAAuB,EACrDC,EAAehC,EAAQ+B,QAAQ,gBAAgB,EAqBnD7B,EAASH,QAAQ,SAAUI,EAAIC,GACzB6B,EAAc9B,EAAG0B,cAAc,YAAY,EAC/CI,MAAAA,GAAkDA,EAAYC,iBAAiB,QAAS,WACtF,OAAOC,OAAOC,SAAS,CACrBxB,KAhC2BT,EAgCZH,IAhCgBqC,EAgCPP,GAAeE,GA/B1BK,EAAUC,UAAYnC,EAAGmC,UAAYnC,EAAGmC,aASjD,OAACC,EAAwBvC,EAAQ6B,cAAc,mBAAmB,GAAkD,KAAA,EAASU,EAAsBhB,eAAiB,IA/BnJK,EAqD6DA,EAnDjFlB,SAAS,OAAC8B,EAAoB7B,iBAmDmDiB,CAnD3B,GAA8C,KAAA,EAASY,EAAkBC,GAAG,GAAK,IAEtH,CAA6BvC,EAAUE,KAE/D,IADA,IAAIsC,EAAc,EACTC,EAAI,EAAGA,EAAIvC,EAAOuC,CAAC,GAC1BD,GAAexC,EAASyC,GAAGpB,aAE7B,OAAOmB,CACT,GA2CyHxC,EAAUE,CAAK,GAChIwC,SAAU,QACZ,CAAC,EAvDM,IAqBsBzC,EAAIkC,CAmCnC,CAAC,CACH,CAAC,EAODF,OAAOD,iBAAiB,SAAUjC,EAAU,CAC1C4C,QAAS,CAAA,CACX,CAAC,EACDV,OAAOD,iBAAiB,UA/EOT,EA+EYT,EA/ERU,EA+EqB,IA7EjD,WACL,IAAK,IAAIoB,EAAOC,UAAUC,OAAQC,EAAO,IAAIC,MAAMJ,CAAI,EAAGK,EAAO,EAAGA,EAAOL,EAAMK,CAAI,GACnFF,EAAKE,GAAQJ,UAAUI,GAEzBC,aAAazB,CAAO,EACpBA,EAAU0B,WAAW,WACnB,OAAO5B,EAAG6B,MAAM,KAAA,EAAQL,CAAI,CAC9B,EAAGvB,CAAK,CACV,GAqE8D,CAC5DmB,QAAS,CAAA,CACX,CAAC,EACDhD,SAASqC,iBAAiB,mBAAoBlB,CAAW,EACzDnB,SAASqC,iBAAiB,mBAAoB,SAAUqB,GACtD,MAA+B,aAAxBA,EAAEC,OAAOC,YAA6BzC,EAAY,CAC3D,CAAC,CACH,CAAC"}