{"version":3,"sources":["../common/spinner.js","SitecoreFormsExtension/SitecoreFormsExtension.js","CustomLazyLoading/CustomLazyLoading.js","RunOnEveryPage/main.js"],"names":["define","show","spinnerSelector","$","removeClass","image","find","length","attr","spinnerShownAt","Date","now","hide","callbackWhenHidden","waitTime","setTimeout","addClass","getSpinnerHtml","spinnerId","spinner","init","each","formId","this","append","on","formSubmitButton","validate","checkForm","handleCustomLazyLoading","evt","eventTrigger","currentTarget","eventTarget","eventName","jqueryEl","target","tagName","toLowerCase","parent","is","lazyLoadingClassSelector","index","element","src","lazyLoadingClassName","closest","removeEventListener","document","ready","lazyload","lazyloadThrottleTimeout","clearTimeout","scrollTop","window","pageYOffset","lazyloadImages","forEach","img","offsetTop","innerHeight","dataset","classList","remove","querySelectorAll","imageObserver","IntersectionObserver","entries","observer","entry","isIntersecting","data","eventTriggerObj","eventTriggerElement","addEventListener","unobserve","observe","require","sitecoreFormsExtension","customLazyLoading"],"mappings":"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","file":"RunOnEveryPage.js","sourcesContent":["define('common/spinner',[\r\n],\r\n function () {\r\n\r\n var spinnerShownAt = {};\r\n\r\n function show(spinnerSelector) {\r\n $(spinnerSelector).removeClass(\"d-none\");\r\n var image = $(spinnerSelector).find(\"img\");\r\n if (image.length) {\r\n var alt = $(image).attr(\"alt\");\r\n if (!alt)\r\n $(image).attr(\"alt\", \"Spinner\");\r\n }\r\n // mark the time when this spinner was displayed\r\n spinnerShownAt[spinnerSelector] = Date.now();\r\n }\r\n\r\n function hide(spinnerSelector, callbackWhenHidden) {\r\n // This logic ensures that the spinner is displayed for at least 500ms.\r\n // Otherwise it just flickers and that doesn't look good for the user.\r\n var waitTime = 500 - (Date.now() - spinnerShownAt[spinnerSelector]);\r\n if (waitTime > 0) {\r\n setTimeout(function () {\r\n $(spinnerSelector).addClass(\"d-none\");\r\n if (callbackWhenHidden) callbackWhenHidden();\r\n }, waitTime);\r\n }\r\n else {\r\n $(spinnerSelector).addClass(\"d-none\");\r\n if (callbackWhenHidden) callbackWhenHidden();\r\n }\r\n }\r\n\r\n function getSpinnerHtml(spinnerId) {\r\n return '
';\r\n }\r\n\r\n return {\r\n show: show,\r\n hide: hide,\r\n getSpinnerHtml: getSpinnerHtml\r\n };\r\n });\r\n\n","define('SitecoreFormsExtension/SitecoreFormsExtension',[\r\n \"common/spinner\"\r\n],\r\n function (spinner) {\r\n\r\n function init() {\r\n // fetch all Sitecore Forms on the page and initialize our custom functionality for it\r\n $(\"[action^='/formbuilder?']\").each(function () {\r\n var formId = $(this).attr(\"id\");\r\n // add spinner to the end of the form\r\n var spinnerId = \"spinner_\" + formId;\r\n $(this).append(spinner.getSpinnerHtml(spinnerId));\r\n // add custom code to form submit event\r\n $(this).on(\"submit\", function () {\r\n // handling the submit button and the spinner\r\n var formSubmitButton = $(this).find(':submit');\r\n if (formSubmitButton.length) {\r\n var isValidForm = $(this).validate().checkForm();\r\n if (isValidForm) {\r\n // if the form is valid disable submit button (to prevent multiple clicks on it) and show spinner\r\n formSubmitButton.attr('disabled', 'disabled');\r\n spinner.show(\"#\" + spinnerId);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n }\r\n);\r\n\n","define('CustomLazyLoading/CustomLazyLoading',[\r\n],\r\n function () {\r\n function init() {\r\n const lazyLoadingClassSelector = \".custom-lazy-loading\";\r\n const lazyLoadingClassName = \"custom-lazy-loading\";\r\n \r\n function handleCustomLazyLoading(evt) {\r\n var eventTrigger = evt.currentTarget.eventTrigger;\r\n var eventTarget = evt.currentTarget.eventTarget;\r\n var eventName = evt.currentTarget.eventName; \r\n var jqueryEl = $(evt.target).find(eventTarget);\r\n if (evt.target.tagName.toLowerCase() == \"a\")\r\n jqueryEl = $(evt.target).parent().find(eventTarget);\r\n\r\n var isVisible = $(jqueryEl).is(\":visible\"); \r\n if (isVisible) {\r\n $(jqueryEl).find(lazyLoadingClassSelector).each(function (index, element) {\r\n var src = $(this).attr(\"data-src\");\r\n $(this).attr(\"src\", src);\r\n $(this).removeClass(lazyLoadingClassName);\r\n }); \r\n $(evt.target).closest(eventTrigger)[0].removeEventListener(eventName, handleCustomLazyLoading);\r\n }\r\n }\r\n\r\n $(document).ready(function () {\r\n var lazyloadImages;\r\n\r\n if (\"IntersectionObserver\" in window) {\r\n lazyloadImages = document.querySelectorAll(lazyLoadingClassSelector);\r\n var imageObserver = new IntersectionObserver(function (entries, observer) {\r\n entries.forEach(function (entry) {\r\n\r\n if (entry.isIntersecting) {\r\n var image = entry.target;\r\n var eventTrigger = $(image).data(\"eventTrigger\");\r\n var eventTarget = $(image).data(\"eventTarget\");\r\n var eventName = $(image).data(\"eventName\");\r\n var eventTriggerObj = $(image).closest(eventTrigger);\r\n var eventTriggerElement = eventTriggerObj[0];\r\n eventTriggerElement.eventTrigger = eventTrigger;\r\n eventTriggerElement.eventTarget = eventTarget;\r\n eventTriggerElement.eventName = eventName; \r\n eventTriggerElement.addEventListener(eventName, handleCustomLazyLoading);\r\n\r\n imageObserver.unobserve(image);\r\n }\r\n });\r\n });\r\n\r\n lazyloadImages.forEach(function (image) {\r\n imageObserver.observe(image);\r\n });\r\n } else {\r\n\r\n var lazyloadThrottleTimeout;\r\n lazyloadImages = document.querySelectorAll(lazyLoadingClassSelector);\r\n\r\n function lazyload() {\r\n if (lazyloadThrottleTimeout) {\r\n clearTimeout(lazyloadThrottleTimeout);\r\n }\r\n\r\n lazyloadThrottleTimeout = setTimeout(function () {\r\n var scrollTop = window.pageYOffset;\r\n lazyloadImages.forEach(function (img) {\r\n if (img.offsetTop < (window.innerHeight + scrollTop)) {\r\n img.src = img.dataset.src;\r\n img.classList.remove(lazyLoadingClassName);\r\n }\r\n });\r\n if (lazyloadImages.length == 0) {\r\n document.removeEventListener(\"scroll\", lazyload);\r\n window.removeEventListener(\"resize\", lazyload);\r\n window.removeEventListener(\"orientationChange\", lazyload);\r\n }\r\n }, 20);\r\n }\r\n\r\n document.addEventListener(\"scroll\", lazyload);\r\n window.addEventListener(\"resize\", lazyload);\r\n window.addEventListener(\"orientationChange\", lazyload);\r\n } \r\n });\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n }\r\n);\r\n\n","require([\r\n \"SitecoreFormsExtension/SitecoreFormsExtension\",\r\n \"CustomLazyLoading/CustomLazyLoading\"\r\n],\r\n function (sitecoreFormsExtension, customLazyLoading) {\r\n sitecoreFormsExtension.init();\r\n customLazyLoading.init();\r\n $(document).ready(function () {\r\n //gtmHelper.processProductImpressions(); Google Tag Manager is not used\r\n //gtmHelper.processCartItems(); Google Tag Manager is not used\r\n //gtmHelper.processPurchase(); Google Tag Manager is not used\r\n //gtmHelper.prepareProductClicks(); Google Tag Manager is not used\r\n });\r\n});\r\n\ndefine(\"RunOnEveryPage/main\", function(){});\n\n"]}