{"version":3,"file":"zoomv.1982.min.js?t=29476335f3c2a908d596","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/js/utilities/lazy-loading.js","webpack://@hero-digital/zoom/./src/components/modules/Footer/Footer.js"],"sourcesContent":["export default class LazyImageLoader {\r\n constructor(selector = 'img.lazy') {\r\n this.lazyImages = document.querySelectorAll(selector);\r\n this.supportsIntersectionObserver = 'IntersectionObserver' in window;\r\n }\r\n\r\n init() {\r\n if (this.lazyImages.length === 0) return;\r\n\r\n if (this.supportsIntersectionObserver) {\r\n this.observer = new IntersectionObserver(this.onIntersection.bind(this), {\r\n rootMargin: '0px',\r\n threshold: 0.1\r\n });\r\n\r\n this.lazyImages.forEach(img => this.observer.observe(img));\r\n } else {\r\n this.lazyImages.forEach(img => this.loadImage(img));\r\n }\r\n }\r\n\r\n onIntersection(entries, observer) {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n const img = entry.target;\r\n this.loadImage(img);\r\n observer.unobserve(img);\r\n }\r\n });\r\n }\r\n\r\n loadImage(img) {\r\n img.src = img.dataset.src;\r\n img.classList.remove('lazy');\r\n img.classList.add('lazy-loaded');\r\n }\r\n}","import tippy from 'tippy.js'\r\nimport {setCookieWithDomain,setCookie} from '../../../js/utilities/utilities'\r\nimport { callPricingAPI } from '../../../js/utilities/pricing'\r\nimport LazyImageLoader from '../../../js/utilities/lazy-loading'\r\n\r\nfunction hideOnBlur(instance) {\r\n const list = instance.popper\r\n const callback = (e) => {\r\n if (!list.contains(e.relatedTarget)) {\r\n instance.hide()\r\n list.removeEventListener('focusout', callback)\r\n }\r\n }\r\n list.addEventListener('focusout', callback)\r\n}\r\n\r\n// Footer Component\r\nclass Footer {\r\n constructor() {\r\n this.initPopovers()\r\n this.initDropdownButtons()\r\n const lazyLoader = new LazyImageLoader()\r\n lazyLoader.init()\r\n }\r\n\r\n initPopovers() {\r\n document.querySelectorAll('button[data-template]').forEach((btn) => {\r\n tippy(btn, {\r\n content(reference) {\r\n const id = reference.getAttribute('data-template')\r\n const template = document.getElementById(id)\r\n return template\r\n },\r\n allowHTML: true,\r\n interactive: true,\r\n placement: 'bottom',\r\n trigger: 'click',\r\n onShow(instance) {\r\n hideOnBlur(instance)\r\n setTimeout(() => {\r\n const firstFocusableElement = instance.popper.querySelector(\r\n '.module-footer-dropdown__link'\r\n )\r\n if (firstFocusableElement) firstFocusableElement.focus()\r\n let dropdownList = document\r\n .querySelector('#js-currency-content')\r\n ?.querySelectorAll?.('.module-footer-dropdown__link')\r\n if (dropdownList) {\r\n dropdownList.forEach((el) => {\r\n el.addEventListener(\r\n 'click',\r\n (e) => {\r\n instance.hide()\r\n },\r\n false\r\n )\r\n })\r\n }\r\n }, 300)\r\n }\r\n })\r\n })\r\n let currencyCurrency= allCurrencyList.find(currency => currency.isSelected == true)\r\n this.setCurrencyCookie(currencyCurrency.currencyAbbreviation)\r\n }\r\n\r\n initDropdownButtons() {\r\n let currencyButton = document.querySelector(\r\n '[data-template=\"js-currency-content\"]'\r\n )\r\n currencyButton.addEventListener('click', (e) => {\r\n if ('ftrInitialized' in currencyButton.dataset) {\r\n } else {\r\n currencyButton.setAttribute('data-ftr-initialized', '')\r\n this.bindDropdownButtons()\r\n }\r\n })\r\n\r\n let languageButton = document.querySelector(\r\n '[data-template=\"js-language-content\"]'\r\n )\r\n languageButton.addEventListener('click', (e) => {\r\n if ('ftrInitialized' in languageButton.dataset) {\r\n } else {\r\n languageButton.setAttribute('data-ftr-initialized', '')\r\n this.bindLanguageDropDown()\r\n }\r\n })\r\n\r\n }\r\n\r\n bindDropdownButtons() {\r\n let currencyButton = document.querySelector(\r\n '[data-template=\"js-currency-content\"]'\r\n )\r\n let dropdownList = document\r\n .querySelector('#js-currency-content')\r\n .querySelectorAll('.module-footer-dropdown__link')\r\n\r\n dropdownList.forEach((el) => {\r\n el.addEventListener(\r\n 'click',\r\n (e) => {\r\n dropdownList.forEach((item) => {\r\n item.classList.remove('active')\r\n })\r\n el.classList.add('active')\r\n let currency = el.innerHTML\r\n currencyButton.innerHTML = currency\r\n currencyButton.innerHTML +='\"Drop'\r\n let currencyAbbreviation= el.parentElement.getAttribute('id')\r\n this.setCurrencyCookie(currencyAbbreviation)\r\n let flag=document.querySelector(\"#IsIncludeCurrencyFilter\")\r\n if (flag && flag.value == \"1\") {\r\n // Broadcast event to trigger API calls in components\r\n document.dispatchEvent(new CustomEvent(\"currencyChanged\", { detail: { currency: currencyAbbreviation } }));\r\n } else {\r\n callPricingAPI()\r\n }\r\n \r\n },\r\n false\r\n )\r\n })\r\n\r\n // Check for pricing cards and bind price swap if present\r\n let currencies = document\r\n .querySelector('#js-currency-content')\r\n .querySelectorAll('.module-footer-dropdown__item'),\r\n prices = document.querySelectorAll('.fdn-pricing-card__price-container'),\r\n eventPrices = document.querySelectorAll('.fdn-event-card__price')\r\n let expandingPrices = document.querySelectorAll('.fdn-expanding-card__price')\r\n if (currencies && currencies.length > 0) {\r\n currencies.forEach((el) => {\r\n el.addEventListener(\r\n 'click',\r\n (e) => {\r\n let currency = el.dataset.currencyValue\r\n ;[...prices, ...eventPrices, ...expandingPrices].forEach(\r\n (price) => {\r\n if (price.dataset.currencyValue === currency) {\r\n price.classList.add('active')\r\n } else {\r\n price.classList.remove('active')\r\n }\r\n }\r\n )\r\n },\r\n false\r\n )\r\n })\r\n }\r\n }\r\n\r\n bindLanguageDropDown(){\r\n let dropdownList = document\r\n .querySelector('#js-language-content')\r\n .querySelectorAll('.module-footer-dropdown__link')\r\n dropdownList.forEach((el) => {\r\n el.addEventListener(\r\n 'click',\r\n (e) => {\r\n let cookieValue=el.getAttribute('data-locale')\r\n this.setLanguageCookie(`${cookieValue}`)\r\n },\r\n false\r\n )\r\n })\r\n }\r\n\r\n setCurrencyCookie(currencyAbbreviation){\r\n const currencyCookie = \"_zm_currency\"\r\n let domain\r\n if(location.hostname.includes('.')){\r\n domain = location.hostname.split('.').reverse()[1] + '.' + location.hostname.split('.').reverse()[0]\r\n } else {\r\n domain = location.hostname;\r\n }\r\n setCookieWithDomain(currencyCookie, currencyAbbreviation, 365, domain)\r\n }\r\n\r\n setLanguageCookie(languageCode){\r\n const languageCookie = \"_zm_lang\"\r\n setCookie(languageCookie, languageCode, 365)\r\n }\r\n}\r\n\r\nexport default Footer\r\n"],"names":["LazyImageLoader","selector","arguments","length","undefined","_classCallCheck","this","lazyImages","document","querySelectorAll","supportsIntersectionObserver","window","key","value","_this","observer","IntersectionObserver","onIntersection","bind","rootMargin","threshold","forEach","img","observe","loadImage","entries","_this2","entry","isIntersecting","target","unobserve","src","dataset","classList","remove","add","Footer","initPopovers","initDropdownButtons","init","btn","tippy","content","reference","id","getAttribute","getElementById","allowHTML","interactive","placement","trigger","onShow","instance","list","popper","callback","e","contains","relatedTarget","hide","removeEventListener","addEventListener","hideOnBlur","setTimeout","_document$querySelect","_document$querySelect2","firstFocusableElement","querySelector","focus","dropdownList","call","el","currencyCurrency","allCurrencyList","find","currency","isSelected","setCurrencyCookie","currencyAbbreviation","currencyButton","setAttribute","bindDropdownButtons","languageButton","bindLanguageDropDown","item","innerHTML","parentElement","flag","dispatchEvent","CustomEvent","detail","callPricingAPI","currencies","prices","eventPrices","expandingPrices","currencyValue","concat","_toConsumableArray","price","_this3","cookieValue","setLanguageCookie","domain","location","hostname","includes","split","reverse","setCookieWithDomain","languageCode","setCookie"],"sourceRoot":""}