{ "version": 3, "sources": [ "ProductNavigation/productNavigation.js" ], "names": [], "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA", "file": "ProductNavigation.js", "sourcesContent": [ "require([],\r\n function () {\r\n var productNavItems = []; \r\n $(document).ready(function ($) {\r\n $(\".product-navigation-container a.product-navigation-link\").each(function () {\r\n productNavItems.push({ \"navigationElement\": $(this), \"id\": $(this).attr(\"href\") });\r\n });\r\n\r\n $(window).on('scroll', function () {\r\n var partOfElementInViewport = []; \r\n if (productNavItems.length == 0) return;\r\n for (var i = 0; i < productNavItems.length; i++) {\r\n var productNavItem = productNavItems[i]; \r\n var element = $(productNavItem.id);\r\n if (element && element.length > 0) {\r\n if (isTopOfElementInViewport($(element)[0])) {\r\n partOfElementInViewport = [];\r\n partOfElementInViewport.push(productNavItem.id);\r\n break;\r\n }\r\n if (isAnyPartOfElementInViewport($(element)[0]))\r\n partOfElementInViewport.push(productNavItem.id); \r\n }\r\n }\r\n\r\n setLinks(partOfElementInViewport); \r\n });\r\n });\r\n\r\n function setLinks(partOfElementInViewport) {\r\n var firstElement = null;\r\n if (partOfElementInViewport.length > 0)\r\n firstElement = partOfElementInViewport[0];\r\n for (var i = 0; i < productNavItems.length; i++) {\r\n var productNavItem = productNavItems[i];\r\n var element = $(productNavItem.id);\r\n if (element && element.length > 0) { \r\n if (firstElement != null) {\r\n if (productNavItem.id == firstElement)\r\n $(productNavItem.navigationElement).addClass(\"active\");\r\n else\r\n $(productNavItem.navigationElement).removeClass(\"active\");\r\n }\r\n else\r\n $(productNavItem.navigationElement).removeClass(\"active\");\r\n }\r\n }\r\n }\r\n\r\n function isAnyPartOfElementInViewport(el) {\r\n const rect = el.getBoundingClientRect(); \r\n const windowHeight = (window.innerHeight || document.documentElement.clientHeight); \r\n const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) >= 0);\r\n return (vertInView);\r\n }\r\n\r\n function isTopOfElementInViewport(el) {\r\n const rect = el.getBoundingClientRect();\r\n const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\r\n const vertInView = (rect.top >= 0) && (rect.top <= windowHeight) && ((rect.top + rect.height) >= 0);\r\n return (vertInView); \r\n }\r\n});\r\n\ndefine(\"ProductNavigation/productNavigation\", function(){});\n\n" ] }