{"version":3,"file":"zoom.v1.1725.min.js?t=fa3efb09352b57efe33a","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/js/utilities/common-pricing-component.js","webpack://@hero-digital/zoom/./src/js/utilities/currency-filter.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-blog.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-smb-roi.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-navigation.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-navigation-vfive.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-footer.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-product-nav.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-non-profit.js","webpack://@hero-digital/zoom/./src/js/utilities/data-layer.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/common-ui-location-mapping.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/contentTitleMap.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-cta.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-filter.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-search.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-tab.js"],"sourcesContent":["import { callPricingAPI } from './pricing';\r\nimport { initCountryCurrencyFilter } from './currency-filter';\r\n\r\nfunction handleOnCurrencyChange(selectedCountryCode, context) {\r\n const {el}=context;\r\n const apiUrl = el?context.el.dataset.apiEndpoint:context.getAttribute(\"data-api-endpoint\");;\r\n const divId = el?el.dataset?.id:context.getAttribute(\"data-id\");\r\n\r\n if (!apiUrl || !divId) return;\r\n\r\n const fetchOpts = {\r\n method: 'GET',\r\n credentials: 'include',\r\n mode: 'cors',\r\n headers: {\r\n 'Content-Type': 'text/html; charset=utf-8'\r\n }\r\n };\r\n\r\n fetch(`${apiUrl}location=${selectedCountryCode}`, fetchOpts)\r\n .then(response => response.text())\r\n .then(data => {\r\n const pricingCardBasic = document.querySelector(`div[data-id='${divId}']`);\r\n if (pricingCardBasic) {\r\n pricingCardBasic.outerHTML = data;\r\n callPricingAPI();\r\n\r\n // Re-initialize the component (if needed)\r\n const temp = document.createElement('div');\r\n temp.innerHTML = data;\r\n const newDivId = temp.querySelector('div[data-id]')?.getAttribute('data-id');\r\n const updatedElement = newDivId ? document.querySelector(`div[data-id='${newDivId}']`) : null;\r\n if (updatedElement) {\r\n // Call this same initializer again\r\n initSinglePricingComponent(updatedElement);\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n console.error(\"Pricing update failed\", err);\r\n });\r\n}\r\n\r\nfunction initSinglePricingComponent(el) {\r\n initCountryCurrencyFilter(el, {\r\n onCountryChange: handleOnCurrencyChange,\r\n onCurrencyChange: handleOnCurrencyChange\r\n });\r\n}\r\n\r\nexport function initializePricingComponents() {\r\n const components = document.querySelectorAll('[data-class=\"js-pricing-component\"]');\r\n components.forEach(initSinglePricingComponent);\r\n}\r\n","import { ensureCurrencyFilterFlag, listenCurrencyChange } from \"./utilities\";\r\nimport { default as Dropdown } from '../../components/foundation/Dropdown/Dropdown'\r\n\r\nexport function initCountryCurrencyFilter(instance, options = {}) {\r\n const { el } = instance;\r\n const { \r\n onCountryChange, \r\n onCurrencyChange \r\n } = options;\r\n\r\n const iscurrencyfilter = el?el.dataset?.isCurrencyfilter:instance.getAttribute(\"data-is-currencyfilter\");\r\n const divId = el?el.dataset?.id:instance.getAttribute(\"data-id\");\r\n\r\n if(iscurrencyfilter) ensureCurrencyFilterFlag(iscurrencyfilter);\r\n const ddEl = divId &&el? el.querySelector(`#country-${divId}`):instance.querySelector(`#country-${divId}`);\r\n if (ddEl) {\r\n instance.dropDownElement = new Dropdown(ddEl);\r\n instance.dropDownElement.onChange(code =>\r\n onCountryChange && onCountryChange(code, instance)\r\n );\r\n }\r\n\r\n listenCurrencyChange(() => {\r\n const code = instance.dropDownElement\r\n ? instance.dropDownElement.getSelectedCountryCode()\r\n : \"\";\r\n onCurrencyChange && onCurrencyChange(code, instance);\r\n });\r\n}\r\n","function DataLayerBlog() {\r\n}\r\nDataLayerBlog.prototype._init = function () {\r\n this._FormEvents()\r\n}\r\n\r\nDataLayerBlog.prototype._FormEvents = function () {\r\n this._blogFormSubmitted()\r\n this._blogFormError()\r\n}\r\n\r\nDataLayerBlog.prototype._blogFormSubmitted = function () {\r\n if (typeof $$epiforms !== 'undefined') {\r\n $$epiforms(document).ready(function myfunction() {\r\n $$epiforms(\"main.debug-blog .EPiServerForms\").on(\"formsSubmitted\",\r\n function (event, param1, param2) {\r\n let eventData = {\r\n event : 'blogsubscribe.submit',\r\n eventCategory: 'blog',\r\n eventAction: 'blog subscription submit',\r\n eventLabel: 'submit',\r\n formType: ' blog subscribe'\r\n }\r\n window.dataLayer.push(eventData)\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerBlog.prototype._blogFormError = function () {\r\n if (typeof $$epiforms !== 'undefined') {\r\n $$epiforms(document).ready(function myfunction() {\r\n $$epiforms(\"main.debug-blog .EPiServerForms\").on(\"formsStepValidating\",\r\n function (event) {\r\n if (!event.isValid) {\r\n let eventLabelName = document.querySelector('input[data-field-name=\"email\"]')?.parentNode.classList.contains(\"ValidationFail\") ? \"email\" : \"\";\r\n if (!document.querySelector(\".newsletter-signup__checkbox-wrap input\")?.checked) {\r\n eventLabelName = eventLabelName ? `${eventLabelName},checkbox` : \"checkbox\";\r\n }\r\n window.dataLayer.push({\r\n event: 'blogsubscribe.error',\r\n eventCategory: 'blog',\r\n eventAction: 'blog subscription error',\r\n eventLabel: eventLabelName,\r\n formType: ' blog subscribe'\r\n });\r\n }\r\n });\r\n });\r\n }\r\n}\r\nexport { DataLayerBlog }\r\n","function DataLayerSmbRoiCalculator() {\r\n this.container = document.querySelector('.bandwidth-calculator');\r\n if (!this.container) return; \r\n \r\n this.slider = this.container.querySelector('#rangeSlider');\r\n this.sliderInput = this.container.querySelector('#webinarParticipantsValue');\r\n this.appCards = this.container.querySelectorAll('.bandwidth-calculator__manualTabs-card');\r\n \r\n this.viewPlansButton = this.container.querySelector('a[title=\"View Plans\"]');\r\n this.contactSalesButton = Array.from(this.container.querySelectorAll('a')).find(\r\n (a) => a.textContent.trim().toLowerCase() === 'contact sales'\r\n );\r\n \r\n this.interactionCaptured = false;\r\n this._onFirstInteraction = this._onFirstInteraction.bind(this);\r\n }\r\n \r\n DataLayerSmbRoiCalculator.prototype._init = function () {\r\n if (!this.container) return;\r\n this._trackFirstInteraction();\r\n this._trackCtaClicks();\r\n };\r\n \r\n DataLayerSmbRoiCalculator.prototype._trackFirstInteraction = function () {\r\n const interactiveElements = [\r\n ...this.appCards,\r\n this.slider,\r\n this.sliderInput,\r\n this.viewPlansButton,\r\n this.contactSalesButton\r\n ].filter(Boolean);\r\n \r\n interactiveElements.forEach((el) => {\r\n el.addEventListener('click', this._onFirstInteraction, { once: true });\r\n });\r\n };\r\n \r\n DataLayerSmbRoiCalculator.prototype._onFirstInteraction = function (e) {\r\n if (this.interactionCaptured) return;\r\n this.interactionCaptured = true;\r\n \r\n let uiLocation = e.target.closest('.bandwidth-calculator__manualTabs-card') ? 'app click' :\r\n e.target === this.slider ? 'employee count slider' :\r\n e.target === this.sliderInput ? 'employee count input' :\r\n e.target === this.viewPlansButton ? 'view plans cta' :\r\n e.target === this.contactSalesButton ? 'contact sales cta' :\r\n 'unknown';\r\n \r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'roiCalculatorInteraction',\r\n roiCalculatorInteraction: 'smb roi calculator',\r\n roiCalculatorSelection: 'interaction start',\r\n uiLocation: uiLocation\r\n });\r\n };\r\n \r\n DataLayerSmbRoiCalculator.prototype._trackCtaClicks = function () {\r\n const handleClick = (e, label) => {\r\n const employeeCount = this.sliderInput?.value || '';\r\n const selectedApps = Array.from(this.appCards)\r\n .filter(card => card.classList.contains('selected'))\r\n .map(card => {\r\n const category = card.querySelector('p')?.textContent?.trim()?.toLowerCase() || 'unknown';\r\n const name = card.querySelector('h4')?.textContent?.trim()?.toLowerCase() || 'unnamed';\r\n return `${category} - ${name}`;\r\n });\r\n \r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'roiCalculatorInteraction',\r\n roiCalculatorInteraction: 'smb roi calculator',\r\n roiCalculatorSelection: label,\r\n employeeCount: employeeCount,\r\n numAppsSelected: selectedApps.length,\r\n appsSelectedArray: selectedApps\r\n });\r\n };\r\n \r\n if (this.viewPlansButton) {\r\n this.viewPlansButton.addEventListener('click', (e) => handleClick(e, 'view plans'));\r\n }\r\n \r\n if (this.contactSalesButton) {\r\n this.contactSalesButton.addEventListener('click', (e) => handleClick(e, 'contact sales'));\r\n }\r\n };\r\n \r\n export { DataLayerSmbRoiCalculator };\r\n","function DataLayerNavigation() { \r\n this.DataLayerHelper = {\r\n pushEvent: function (eventName, data = {}) {\r\n if (!eventName) {\r\n return;\r\n }\r\n\r\n let eventData = { event: eventName };\r\n // Ensure undefined values are correctly passed\r\n Object.keys(data).forEach(key => {\r\n eventData[key] = (data[key] === \"\") ? undefined : data[key];\r\n })\r\n window.dataLayer.push(eventData);\r\n }\r\n }\r\n}\r\nDataLayerNavigation.prototype._init = function () {\r\n try {\r\n this._logoIntraction()\n this._logoIntractionForShortHeader()\r\n this._menuWithExpand()\r\n this._menuWithoutExpand()\r\n this._logoTracking()\r\n this._universalDesktopMenu()\r\n this._universalMobileMenu()\r\n this._resourceMenu()\r\n this._mobileSignUp()\r\n this._mobilePricingEvent()\r\n this._zoomProductAndContactSaleButton()\r\n this._trackClickEvents()\r\n }\r\n catch (e) { }\r\n}\r\n\r\nDataLayerNavigation.prototype._getUiLocation = function () {\r\n const parentCategory = document.querySelector('ul.main-nav__list li.active button')?.innerText;\r\n let uiLocation = \"universal nav\";\r\n if (parentCategory) {\r\n uiLocation = \"universal nav - \" + parentCategory.toLowerCase() + \" menu\";\r\n }\r\n return uiLocation;\r\n}\r\n\r\nDataLayerNavigation.prototype._getUiLocationMobile = function() {\r\n const parentCategory = document.querySelector('ul.mobile-menu__list.is-accordion li.mobile-menu__list-item.is-active button')?.innerText;\r\n let uiLocation = \"universal nav\";\r\n if (parentCategory) {\r\n uiLocation = \"universal nav - \" + parentCategory.toLowerCase() + \" menu\";\r\n }\r\n return uiLocation;\r\n}\r\nDataLayerNavigation.prototype._categoryState = function(event, linkText) {\r\n const getLinkType = event.currentTarget.getAttribute(\"aria-expanded\") || event.target.getAttribute(\"aria-expanded\") || \"\";\r\n if (getLinkType && (getLinkType == \"false\")) {\r\n var updateVal = linkText + \" - collapse\";\r\n } else if (getLinkType && (getLinkType == \"true\")) {\r\n var updateVal = linkText + \" - expand\";\r\n }\r\n return updateVal.toLowerCase();\r\n}\r\n\r\n\r\nDataLayerNavigation.prototype._logoIntraction = function () {\r\n document.querySelector(\".main-nav__logo\")?.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': 'zoom logo',\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n}\n\nDataLayerNavigation.prototype._logoIntractionForShortHeader = function () {\n document.querySelector(\"nav.fdn-simple-header a\")?.addEventListener('click', function (event) {\n const href = event.currentTarget.href || event.target.href || undefined;\n window.dataLayer.push({\n 'event': 'navClick',\n 'linkText': 'zoom logo',\n 'linkUrl': href,\n 'uiLocation': 'universal nav'\n })\n })\n}\r\n\r\nDataLayerNavigation.prototype._menuWithoutExpand = function () {\r\n document.querySelectorAll(\".main-nav__list-item a.main-nav__link\").forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\n if (linkText) {\n linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n }\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._menuWithExpand = function () {\r\n document.querySelectorAll(\".main-nav__list-item button, .mobile-menu__list-item button\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n window.dataLayer.push({\r\n 'event': 'linkClick',\r\n 'linkText': this._categoryState(event, linkText),\r\n 'linkUrl': undefined,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._logoTracking = function () {\r\n document.querySelectorAll(\".nav-title-logo\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n const href = event.currentTarget.closest('a')?.getAttribute(\"href\");\r\n const linkText = event.currentTarget.getAttribute(\"title\") || event.target.getAttribute(\"title\") || '';\r\n const isDesktop = event.currentTarget.closest('div.megamenu-products--subtitle');\r\n const isMobileBanner = event.currentTarget.closest('div.mobile-megamenu-products--subtitle');\r\n const isMobile = event.currentTarget.closest('[class^=\"mobile-megamenu\"]');\r\n\r\n var uiLocation = isMobile ? this._getUiLocationMobile() : this._getUiLocation()\r\n if (isDesktop || isMobileBanner) {\r\n uiLocation = uiLocation + ' - ' + linkText.toLowerCase() + ' banner'\r\n }\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href || undefined,\r\n 'uiLocation': uiLocation.toLowerCase()\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._universalDesktopMenu = function () {\r\n document.querySelectorAll(\"div.megamenu__column-title a.fdn-button, div.megamenu__list-item-heading a, div.apps-ecosystem a, div.megamenu-products--megamenu__list-item-heading-description a,li.action-bar-primary a, li.action-bar-secondary a\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n // const linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n const getClosestClass = event.currentTarget.closest('div.megamenu-products--megamenu__list-item-heading-description');\r\n const isMobile = event.currentTarget.closest('[class^=\"mobile-megamenu\"]');\r\n const parentCategory = document.querySelector('ul.main-nav__list li.active button')?.innerText;\r\n var uiLocation = isMobile ? this._getUiLocationMobile() : this._getUiLocation()\r\n if (getClosestClass) {\r\n uiLocation = uiLocation + ' - zoom ai companion banner'\r\n }\r\n\r\n\r\n // Extract only the visible text (excluding )\r\n let linkText = [...link.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \");\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText?.trim()?.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': uiLocation.toLowerCase()\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._universalMobileMenu = function () {\r\n document.querySelectorAll(\"div.mobile-megamenu__list-item-heading a, div.mobile-megamenu-products--megamenu__list-item-heading-description a,div.mobile-megamenu__actionBar ul li a\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n // const linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n const getClosestClass = event.currentTarget.closest('div.mobile-megamenu-products--megamenu__list-item-heading-description');\r\n var uiLocation = this._getUiLocationMobile()\r\n if (getClosestClass) {\r\n uiLocation = uiLocation + ' - zoom ai companion banner'\r\n }\r\n\r\n\r\n // Extract only the visible text (excluding )\r\n let linkText = [...link.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \");\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText?.trim()?.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': uiLocation.toLowerCase()\r\n })\r\n })\r\n })\r\n\r\n document.querySelector('.main-nav__hamburger-trigger')?.addEventListener('click', function (event) {\r\n let attrVal = event.currentTarget.getAttribute(\"aria-expanded\") || event.target.getAttribute(\"aria-expanded\") || \"\"\r\n let isOpen = attrVal === \"true\";\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: isOpen ? \"expand\" : \"close\",\r\n linkUrl: undefined,\r\n uiLocation: \"universal nav mobile\"\r\n })\r\n }.bind(this));\r\n\r\n document.querySelectorAll('.mobile-menu__secondary-nav .mobile-menu__list-item a:not(.resources-nav-search)').forEach(cta => {\r\n cta.addEventListener(\"click\", function (event) {\r\n let childNodesArray = Array.from(cta.childNodes);\r\n let linkText = childNodesArray?.length > 1 ? childNodesArray\r\n .filter(node => node.nodeType === Node.TEXT_NODE) // Get only text nodes\r\n .map(node => node.textContent.trim()) // Extract the text and remove any extra spaces\r\n .join(' ') : cta.innerText?.trim();\r\n\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: linkText?.toLowerCase() || \"\",\r\n linkUrl: cta.href || undefined,\r\n uiLocation: \"universal nav\"\r\n })\r\n }.bind(this));\r\n })\r\n\r\n document.querySelector('.megamenu__column__businessService .megamenu__head .megamenu__column-title a')?.addEventListener(\"click\", function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const cta = event.currentTarget?.innerText || event.target?.innerText;\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: cta.toLowerCase() || undefined,\r\n linkUrl: href,\r\n uiLocation: \"universal nav - business services menu\"\r\n })\r\n }.bind(this));\r\n\r\n document.querySelector('.mobile-megamenu__column__businessService .mobile-megamenu__head .mobile-megamenu__column-title a')?.addEventListener(\"click\", function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const cta = event.currentTarget?.innerText || event.target?.innerText;\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: cta.toLowerCase() || undefined,\r\n linkUrl: href,\r\n uiLocation: \"universal nav - business services menu\"\r\n })\r\n }.bind(this))\r\n}\r\n\r\nDataLayerNavigation.prototype._resourceMenu = function () {\r\n document.querySelectorAll(\".resources-nav__dropdown-link:not([href*='download']):not([href*='join']):not([href*='webmeeting'])\").forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n\r\n let cta = event.target.closest('.resources-nav__dropdown-list-item').querySelector('a');\n\n let linkText = ([...cta.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\n\r\n const href = cta.href || undefined;\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - product selector menu'\r\n })\r\n })\r\n })\r\n\r\n document.querySelectorAll(\"button.resources-nav-product-menu\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = this._categoryState(event, \"product selector menu\");\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n })\r\n\r\n document.querySelector(\"button.resources-nav-account-option\")?.addEventListener('click', function (event) {\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': 'my account',\r\n 'linkUrl': \"#\",\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n\r\n document.querySelectorAll('li.resources-nav__list-item.nav__list-item-webapp > a').forEach(menuLink => {\r\n menuLink.addEventListener(\"click\", function (event) {\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: menuLink.innerText?.trim().toLowerCase() || \"\",\r\n linkUrl: menuLink.href || undefined,\r\n uiLocation: \"universal nav - product selector menu\"\r\n })\r\n }.bind(this))\r\n })\r\n\r\n document.querySelectorAll('.resources-nav-search').forEach(cta => {\r\n cta.addEventListener(\"click\", function (event) {\r\n this.DataLayerHelper.pushEvent(\"searchInteraction\", {\r\n searchInteraction: 'search bar clicked',\r\n uiLocation: \"universal nav\"\r\n })\r\n }.bind(this))\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._mobileSignUp = function () {\r\n document.querySelectorAll('.mobile-menu__buttons-container a').forEach(cta => {\r\n cta.addEventListener(\"click\", function (event) {\r\n let childNodesArray = Array.from(cta.childNodes);\r\n let linkText = childNodesArray?.length > 1 ? childNodesArray\r\n .filter(node => node.nodeType === Node.TEXT_NODE) // Get only text nodes\r\n .map(node => node.textContent.trim()) // Extract the text and remove any extra spaces\r\n .join(' ') : cta.innerText?.trim();\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: linkText?.toLowerCase() || \"\",\r\n linkUrl: cta.href || undefined,\r\n uiLocation: \"universal nav\"\r\n })\r\n }.bind(this))\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._mobilePricingEvent = function () {\r\n document.querySelectorAll('.resources-nav__list-item.pricing a').forEach(cta => {\r\n cta.addEventListener(\"click\", function (event) {\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: cta?.innerText?.toLowerCase() || \"\",\r\n linkUrl: cta.href || undefined,\r\n uiLocation: \"universal nav\"\r\n })\r\n }.bind(this))\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._zoomProductAndContactSaleButton = function () {\r\n document.querySelectorAll(\"li.resources-nav__list-item.nav__list-item-webapp .resources-nav__dropdown-list-webapprestricted .fdn-button\").forEach(button => {\r\n button.addEventListener(\"click\", function (event) {\r\n if (!event) return\n let linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n const linkUrl = event.currentTarget?.href || undefined\r\n let uiLocation = \"universal nav - product selector menu\"\r\n // Push event data to the data layer\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: linkText,\r\n linkUrl: linkUrl,\r\n uiLocation: uiLocation\r\n });\r\n }.bind(this));\r\n });\r\n}\r\n\r\nDataLayerNavigation.prototype._trackClickEvents = function (event) {\r\n document.addEventListener(\"click\", this._trackNavigationEvents.bind(this));\r\n}\r\n\r\nDataLayerNavigation.prototype._trackNavigationEvents = function (event) {\r\n this._trackSolutionsMenuClick(event)\r\n this._trackResourcesMenuClick(event)\r\n this._trackNavLinksClick(event)\r\n}\r\n// Track clicks in the Solutions menu\r\nDataLayerNavigation.prototype._trackSolutionsMenuClick = function (event) {\r\n let solutionsAnchor = event.target.closest(\"section.megamenu-solutions[aria-label='Solutions'] .megamenu__head a\");\r\n\r\n if (solutionsAnchor) {\r\n let childNodesArray = Array.from(solutionsAnchor.childNodes);\r\n let linkText = childNodesArray\r\n .filter(node => node.nodeType === Node.TEXT_NODE) // Get only text nodes\r\n .map(node => node.textContent.trim()) // Extract the text and remove any extra spaces\r\n .join(' ');\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: linkText?.toLowerCase() || \"\",\r\n linkUrl: solutionsAnchor.href || undefined,\r\n uiLocation: \"universal nav - solutions menu\"\r\n })\r\n }\r\n}\r\n// Track clicks in the Resources menu\r\nDataLayerNavigation.prototype._trackResourcesMenuClick = function (event) {\r\n let resourcesMenuLink = event.target.closest(\".megamenu__highlight-item-cta\");\r\n let mobileResourcesMenuLink = event.target.closest(\".mobile-megamenu__highlight-item-heading a\")\r\n if (mobileResourcesMenuLink)\r\n resourcesMenuLink = mobileResourcesMenuLink\r\n\r\n if (resourcesMenuLink) {\r\n try {\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: resourcesMenuLink.innerText?.trim().toLowerCase() || \"\",\r\n linkUrl: resourcesMenuLink.href || undefined,\r\n uiLocation: \"universal nav - resources menu\"\r\n })\r\n } catch (e) {\r\n }\r\n }\r\n}\r\n// Universal Navigation Menu\r\nDataLayerNavigation.prototype._trackNavLinksClick = function (event) {\r\n\n let link = event.target.closest(\r \".main-nav__right .resources-nav__list-item:not(.pricing) > a:not(.resources-nav-search), \" +\r \".main-nav__right .resources-nav__list-item:not(.pricing) > button.resources-nav__dropdownrestricted, \" +\r \".main-nav__right .resources-nav__list-item:not(.pricing) .resources-nav__dropdown-listrestricted .resources-nav__dropdown-link[href*='download']\"\r );\r\n\r\n let dropdown = link?.closest(\".resources-nav__dropdownrestricted\");\r\n\r\n if (!link) {\r\n return;\r\n }\r\n try {\n let linkText = ([...link.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase(),\r\n linkUrl = link.href || undefined,\r\n uiLocation = link.matches(\".resources-nav__dropdown-listrestricted .resources-nav__dropdown-link[href*='download']\")\r\n ? \"universal nav - meet\"\r\n : \"universal nav\";\r\n\r\n if (dropdown) {\r\n let isOpen = dropdown.getAttribute(\"aria-expanded\") === \"true\";\r\n let action = `${linkText} - ${isOpen ? \"expand\" : \"collapse\"}`;\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: action,\r\n linkUrl: undefined,\r\n uiLocation\r\n })\r\n } else {\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText,\r\n linkUrl,\r\n uiLocation\r\n })\r\n }\r\n } catch (e) {\r\n }\r\n}\r\n\r\nexport { DataLayerNavigation }\r\n","function DataLayerNavigationVfive() {\r\n this.universalNavMobileLocation = 'universal nav mobile'\r\n this.universalNavDesktopLocation = 'universal nav'\r\n this.navClickEventName = 'navClick'\r\n this.searchIntractionEvent = 'searchInteraction'\r\n this.searchBarClickIntraction = 'search bar clicked'\r\n\r\n this.DataLayerHelper = {\r\n pushEvent: function (eventName, data = {}) {\r\n if (!eventName) return;\r\n let eventData = { event: eventName };\r\n Object.keys(data).forEach(key => {\r\n eventData[key] = (data[key] === \"\") ? undefined : data[key];\r\n });\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(eventData);\r\n }\r\n };\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._init = function () {\r\n try {\r\n this._mobileHamburgerClick(this.navClickEventName, this.universalNavMobileLocation);\r\n this._searchClickIntraction(this.searchIntractionEvent, this.searchBarClickIntraction, this.universalNavMobileLocation);\r\n this._mobileFooterMenuItems(this.navClickEventName, this.universalNavMobileLocation);\r\n this._waffleMenu(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._waffleButtons(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._waffleViewAll(this.navClickEventName)\r\n this._zoomLogoEvent()\r\n this._singleLinkNavEvent()\r\n this._universalNavigationMenu()\r\n this._userProfile(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._userAccountDetail(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._pricingEvent(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._productMenuTabsClicks()\r\n this._productMenuTabsLearnMoreClicks()\r\n this._downloadCenterClicks()\r\n this._DeveloperAppCenterClicks()\r\n this._trackAllUniversalNavHubPageClicks()\r\n this._trackAllUniversalNavMenuClicks()\r\n this._searchClicks()\r\n this._trackMeetExpandCollapse()\r\n this._trackMeetDropdownLinks()\r\n this._trackMobileNavLinkClicks()\r\n this._trackMobileNavBackClicks()\r\n this._applicationDownloadCenterClicks(this.navClickEventName, this.universalNavMobileLocation)\r\n this._productAppMobileClicks(this.navClickEventName, this.universalNavMobileLocation)\r\n this._moblieSignUpClicks(this.navClickEventName, this.universalNavMobileLocation)\r\n this._productsTabItemToggle()\r\n }\r\n catch (e) { }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._productsTabItemToggle = function () {\r\n const links = document.querySelectorAll(\"#accordion-content-products .zdcm-megamenu__workplace__column > ul > li.zdcm-megamenu__list-item-heading--disabled\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (event.currentTarget.getAttribute(\"aria-expanded\") == \"true\") {\r\n linkText = linkText.toLowerCase() + \" - expand\"\r\n } else {\r\n linkText = linkText.toLowerCase() + \" - collapse\"\r\n }\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - products menu'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n//Mobile Menu Tracking\r\nDataLayerNavigationVfive.prototype._applicationDownloadCenterClicks = function (navClickEventName, universalNavMobileLocation) {\r\n const links = document.querySelectorAll(\".zdcm-mobile-menu .zdcm-mobile-menu__footer .zdcm-download-wrapper .zdcm-mobile-download-card a, .zdcm-main-nav .zdcm-download-wrapper .zdcm-mobile-download-card a, .zdcm-mobile-menu .zdcm-tablet-menu__footer .zdcm-download-wrapper .zdcm-mobile-download-card a,.zdcm-tablet-menu__itmes .zdcm-mobile-download-card a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".zdcm-mobile-donwload-content-title\")?.innerText?.split('\\n')[0].trim() ?? '';\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavMobileLocation\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._productAppMobileClicks = function (navClickEventName, universalNavMobileLocation) {\r\n const links = document.querySelectorAll(\".zdcm-mobile-menu .zdcm-mobile-menu__footer .zdcm-mobile-level-2-items .zdcm-mobile-download-card > a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".zdcm-mobile-donwload-content-item\")?.textContent.trim() ?? '';\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavMobileLocation\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._moblieSignUpClicks = function (navClickEventName, universalNavMobileLocation) {\r\n const links = document.querySelectorAll(\".zdcm-mobile-menu .zdcm-mobile-menu__footer .zdcm-footer-cta-wrapper, .zdcm-mobile-profile-actions-cta, .zdcm-mobile-menu .zdcm-tablet-menu__footer .zdcm-footer-cta-wrapper,.zdcm-hub-mobile-menu-static-items ul > li > a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = link.querySelector(\"span.visually-hidden\")?.textContent.trim() ?? '';\r\n if (!linkText || linkText == \"\") {\r\n var linkText = event.currentTarget.innerText;\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavMobileLocation\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._pricingEvent = function (navClickEventName, universalNavDesktopLocation) {\r\n const links = document.querySelectorAll('li.zdcm-mobile-menu__list-item a.zdcm-mobile-menu__link');\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavDesktopLocation\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\n\r\nDataLayerNavigationVfive.prototype._userProfile = function (navClickEventName, universalNavDesktopLocation) {\r\n var userInfoClick = document.querySelector('button.zdcm-user-info');\r\n\r\n if (userInfoClick != null) {\r\n userInfoClick.addEventListener('click', () => {\r\n\r\n let eventData = {\r\n event: navClickEventName,\r\n linkText: 'my account',\r\n linkUrl: undefined,\r\n uiLocation: universalNavDesktopLocation\r\n };\r\n window.dataLayer.push(eventData);\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._userAccountDetail = function (navClickEventName, universalNavDesktopLocation) {\r\n const links = document.querySelectorAll('li.zdcm-resources-nav__dropdown-list-item a');\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.getAttribute(\"Title\")\r\n if (linkText == \"\" || linkText == null) {\r\n var downloadCenter = event.currentTarget.querySelector(\".zdcm-donwload-content-title\")\r\n if (downloadCenter != null) {\r\n linkText = downloadCenter.innerText;\r\n }\r\n else {\r\n linkText = \"my account\";\r\n }\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavDesktopLocation + ' - my account'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._waffleMenu = function (navClickEventName, universalNavDesktopLocation) {\r\n var waffleMenuClick = document.querySelector('li.zdcm-item-waffle button.zdcm-waffle-menu');\r\n\r\n if (waffleMenuClick != null) {\r\n waffleMenuClick.addEventListener('click', () => {\r\n var linkText = (waffleMenuClick.ariaExpanded == \"true\") ? \"product selector menu - expand\" : \"product selector menu - close\";\r\n\r\n let eventData = {\r\n event: navClickEventName,\r\n linkText: linkText,\r\n uiLocation: universalNavDesktopLocation\r\n };\r\n window.dataLayer.push(eventData);\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._waffleViewAll = function (navClickEventName) {\r\n var waffleViewAllClick = document.querySelector('span.zdcm-waffle-title-cta a');\r\n\r\n if (waffleViewAllClick != null) {\r\n waffleViewAllClick.addEventListener('click', (event) => {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - product selector menu'\r\n })\r\n });\r\n }\r\n}\r\n\r\n\r\n\r\nDataLayerNavigationVfive.prototype._waffleButtons = function (navClickEventName, universalNavDesktopLocation) {\r\n const links = document.querySelectorAll('li.zdcm-item-waffle div.zdcm-megamenu.zdcm-megamenu-fit > div > a, li.zdcm-item-waffle div.zdcm-megamenu.zdcm-megamenu-fit > div > div > a');\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n var textContent = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n linkText = textContent ? textContent : linkText.toLowerCase();\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavDesktopLocation + ' - product selector menu'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\n\r\nDataLayerNavigationVfive.prototype._mobileHamburgerClick = function (navClickEventName, universalNavMobileLocation) {\r\n var mobileHamburger = document.querySelector('li.zdcm-mobile-hamburger button.zdcm-main-nav__hamburger-trigger');\r\n\r\n if (mobileHamburger != null) {\r\n mobileHamburger.addEventListener('click', () => {\r\n var linkText = (mobileHamburger.ariaExpanded == \"true\") ? \"expand\" : \"close\";\r\n\r\n let eventData = {\r\n event: navClickEventName,\r\n linkText: linkText,\r\n uiLocation: universalNavMobileLocation\r\n };\r\n window.dataLayer.push(eventData);\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._searchClickIntraction = function (searchIntractionEvent, searchBarClickIntraction, universalNavMobileLocation) {\r\n const observer = new MutationObserver(() => {\r\n const searchBoxClick = document.querySelector('#standaloneSearchboxMobile .magic-box-input input');\r\n if (searchBoxClick) {\r\n searchBoxClick.addEventListener('click', () => {\r\n const eventData = {\r\n event: searchIntractionEvent,\r\n searchInteraction: searchBarClickIntraction,\r\n uiLocation: universalNavMobileLocation\r\n };\r\n window.dataLayer.push(eventData);\r\n });\r\n observer.disconnect(); // Stop observing once it's bound\r\n }\r\n });\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._mobileFooterMenuItems = function (navClickEventName, universalNavMobileLocation) {\r\n const links = document.querySelectorAll(\"div.zdcm-mobile-footer-menu-items ul li a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n var eventName = navClickEventName;\r\n if (href && href.includes('tel:')) {\r\n eventName = \"phoneClick\";\r\n }\r\n if (linkText) {\r\n linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n }\r\n if (eventName != \"phoneClick\") {\r\n window.dataLayer.push({\r\n 'event': eventName,\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavMobileLocation\r\n })\r\n }\r\n })\r\n })\r\n }\r\n}\r\n\r\n/** Zoom Logo Event **/\r\nDataLayerNavigationVfive.prototype._zoomLogoEvent = function() {\r\n document.querySelector(\".zdcm-main-nav__left .zdcm-main-nav__logo\")?.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': 'zoom logo',\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n });\r\n}\r\n\r\n\r\nDataLayerNavigationVfive.prototype._singleLinkNavEvent = function () {\r\n const links = document.querySelectorAll(\".zdcm-main-nav__list-item > a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n var textContent = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n linkText = textContent ? textContent : linkText.toLowerCase();\r\n }\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\n/** Universal Navigation Menu **/\r\nDataLayerNavigationVfive.prototype._universalNavigationMenu = function () {\r\n const links = document.querySelectorAll(\".zdcm-main-nav__left .zdcm-main-nav__megamenu-trigger\");\r\n if (links.length > 0) {\r\n links.forEach(function (item) {\r\n item?.addEventListener('click', function (event) {\r\n const clickedItem = event.currentTarget;\r\n const labelText = clickedItem.textContent.trim().toLowerCase();\r\n const href = clickedItem.href || undefined;\r\n const parentLi = clickedItem.closest('li');\r\n\r\n setTimeout(function () {\r\n const isExpanded = parentLi && parentLi.classList.contains('zdcm-active');\r\n const linkText = `${labelText} - ${isExpanded ? 'expand' : 'collapse'}`;\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'linkClick',\r\n linkText: linkText,\r\n linkUrl: href,\r\n uiLocation: 'universal nav'\r\n });\r\n }, 50); // let class update apply\r\n });\r\n });\r\n }\r\n}\r\n\r\n/** Universal Navigation menu - Product menu Ends **/\r\n\r\nDataLayerNavigationVfive.prototype._productMenuTabsClicks = function (){\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-products-wrapper .fdn-tabs__tablist .fdn-tabs__tab, .zdcm-mobile-menu__main-nav #accordion-content-products .zdcm-megamenu-products-wrapper .fdn-tabs__tablist .fdn-tabs__tab, .zdcm-mobile-menu__content-panel .zdcm-megamenu-products-wrapper .fdn-tabs__tablist .fdn-tabs__tab\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".fdn-tabs__title\")?.textContent.trim() ?? '';\r\n if (!href) {\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - products menu'\r\n });\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._productMenuTabsLearnMoreClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-products-wrapper .fdn-tabs__tablist .fdn-tabs__tab a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget?.offsetParent?.getAttribute(\"title\")?.toLowerCase() || \"\"\r\n if (href) {\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText + ' - learn more',\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - products menu'\r\n });\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._downloadCenterClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-products-action-wrapper .zdcm-items-right .zdcm-megamenu-products-download-card:not(.zdcm-megamenu-products-support) a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".zdcm-donwload-content-title\")?.textContent.trim() ?? '';\r\n\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._DeveloperAppCenterClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-products-action-wrapper .zdcm-megamenu-products-action:not(.zdcm-items-right) .zdcm-megamenu-products-download-card a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".zdcm-donwload-content-title\")?.textContent.trim() ?? '';\r\n\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackAllUniversalNavMenuClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-megamenu-products-wrapper .zdcm-megamenu-products-categories .zdcm-megamenu__workplace__column .zdcm-megamenu__list-item a, nav.zdcm-mobile-menu .zdcm-accordion-content .zdcm-megamenu-products-wrapper .zdcm-megamenu-products-categories .zdcm-megamenu__workplace__column .zdcm-megamenu__list-item a,.zdcm-mobile-menu__content-panel .zdcm-megamenu-products-wrapper .zdcm-megamenu-products-categories .zdcm-megamenu__workplace__column .zdcm-megamenu__list-item a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\"span.visually-hidden\")?.textContent.trim() ?? '';\r\n const menuName = event.target.closest('.zdcm-megamenu')?.getAttribute(\"aria-label\")?.toLowerCase();\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - ' + menuName + ' menu'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\n//Function for hub page new Navigation\r\nDataLayerNavigationVfive.prototype._trackAllUniversalNavHubPageClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-fit .zdcm-main-nav__dropdown-list-item a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = event.currentTarget.innerText || '';\r\n\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - ' + linkText.toLowerCase() + ' menu'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\n/** Universal Nav Menu - Search **/\r\nDataLayerNavigationVfive.prototype._searchClicks = function () {\r\n const links = document.querySelectorAll(\"#coveoSearchHeader\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const isExpanded = link.getAttribute('aria-expanded') === 'true';\r\n\r\n window.dataLayer.push({\r\n 'event': 'searchInteraction',\r\n 'searchInteraction': isExpanded ? 'search bar clicked' : 'clear search',\r\n 'uiLocation': 'universal nav'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackMeetExpandCollapse = function () {\r\n let meetButtons = document.querySelectorAll('.zdcm-item-meet > .zdcm-main-nav__megamenu-trigger')\r\n if (meetButtons.length > 0) {\r\n meetButtons.forEach((button, index) => {\r\n let previousState = button.getAttribute('aria-expanded')\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.attributeName === 'aria-expanded') {\r\n const newState = button.getAttribute('aria-expanded')\r\n if (newState !== previousState) {\r\n previousState = newState\r\n const nextState = newState === 'true' ? 'expand' : 'collapse'\r\n this.DataLayerHelper.pushEvent('navClick', {\r\n linkText: `Meet - ${nextState}`,\r\n linkUrl: undefined,\r\n uiLocation: 'universal nav'\r\n })\r\n }\r\n }\r\n })\r\n })\r\n observer.observe(button, { attributes: true })\r\n })\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackMeetDropdownLinks = function () {\r\n const dropdownLinks = document.querySelectorAll('.zdcm-item-meet .zdcm-main-nav__dropdown-link');\r\n if (dropdownLinks.length > 0) {\r\n dropdownLinks.forEach((link) => {\r\n link.addEventListener('click', () => {\r\n const linkText = link.innerText?.split('\\n')[0].trim()\r\n const linkUrl = link.href\r\n\r\n this.DataLayerHelper.pushEvent('navClick', {\r\n linkText: linkText,\r\n linkUrl: linkUrl,\r\n uiLocation: 'universal nav - meet'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackMobileNavLinkClicks = function () {\r\n // Track accordion buttons (Products, AI, Solutions)\r\n const accordionButtons = document.querySelectorAll('.zdcm-mobile-menu__accordion.js-accordion-trigger')\r\n if (accordionButtons.length > 0) {\r\n accordionButtons.forEach((btn) => {\r\n btn.addEventListener('click', () => {\r\n const ariaExpand = btn?.getAttribute(\"aria-expanded\");\r\n const sectionName = btn?.textContent?.trim().toLowerCase();\r\n var linkText = sectionName;\r\n if (ariaExpand == 'true') {\r\n linkText = linkText + \" - expand\"\r\n } else {\r\n linkText = linkText + \" - collapse\"\r\n }\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: linkText,\r\n linkUrl: undefined,\r\n uiLocation: 'universal nav mobile'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackMobileNavBackClicks = function () {\r\n const accordionButtons = document.querySelectorAll('.zdcm-mobile-menu__accordion.js-accordion-trigger');\r\n accordionButtons.forEach((btn) => {\r\n btn.addEventListener('click', () => {\r\n const sectionName = btn.closest('li')?.getAttribute('data-content')?.trim() || btn.textContent.trim();\r\n setTimeout(() => {\r\n const backBtn = document.querySelector('.zdcm-mobile-back');\r\n if (backBtn) {\r\n backBtn.removeEventListener('click', backBtn._dlHandler);\r\n const handler = () => {\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: sectionName.toLowerCase() + ' - collapse',\r\n linkUrl: undefined,\r\n uiLocation: 'universal nav mobile',\r\n })\r\n }\r\n\r\n backBtn._dlHandler = handler;\r\n backBtn.addEventListener('click', handler);\r\n }\r\n }, 300)\r\n });\r\n });\r\n};\r\n\r\n\r\nexport { DataLayerNavigationVfive }\r\n","function DataLayerFooter() {\r\n this.footer = document.querySelector('.footer-content');\r\n\r\n this.DataLayerHelper = {\r\n pushEvent: function (eventName, data = {}) {\r\n if (!eventName) return;\r\n let eventData = { event: eventName }\r\n Object.keys(data).forEach(key => {\r\n eventData[key] = (data[key] === \"\") ? undefined : data[key];\r\n });\r\n\r\n window.dataLayer = window.dataLayer || []\r\n window.dataLayer.push(eventData)\r\n }\r\n };\r\n}\r\n\r\nDataLayerFooter.prototype._init = function () {\r\n if (this.footer) {\r\n this._trackFooterLinks()\r\n this._trackSocialLinks()\r\n this._trackLegalLinks()\r\n this._trackCurrencyDropdown()\r\n this._trackLanguageDropdown()\r\n this._trackFooterDesktopDownloadCenter()\r\n this._trackFooterMobileDownloadLinks()\r\n this._trackMobileCurrencyLanguageDropdowns()\r\n this._trackMobilePrimaryDropdownToggles()\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackFooterLinks = function () {\r\n this.footer.querySelectorAll('.zdcm-module-footer-nav__link').forEach(link => {\r\n link.addEventListener('click', (e) => {\r\n const href = link.href || undefined\r\n\r\n if (href && href.startsWith('tel:')) {\r\n return;\r\n }\r\n\r\n const linkLabel = [...link.childNodes]\r\n .filter(n => n.nodeType === Node.TEXT_NODE)\r\n .map(n => n.textContent.trim())\r\n .join(\" \").toLowerCase();\r\n\r\n const section = link.closest('section')\r\n const sectionHeader = section?.querySelector('.zdcm-module-footer-nav__title')?.getAttribute('Title')?.toLowerCase();\r\n\r\n const linkText = sectionHeader && linkLabel ? `${sectionHeader} - ${linkLabel}` : linkLabel;\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText,\r\n linkUrl: href,\r\n uiLocation: \"universal footer\"\r\n });\r\n });\r\n });\r\n\r\n this.footer.querySelectorAll('.zdcm-module-footer-nav__title').forEach(mainLink => {\r\n if (window.innerWidth > 1024) {\r\n mainLink.addEventListener('click', (e) => {\r\n const href = mainLink.href || undefined;\r\n const linkText = mainLink.innerText?.split('\\n')[0].trim()\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText,\r\n linkUrl: href,\r\n uiLocation: \"universal footer\"\r\n });\r\n });\r\n }\r\n });\r\n};\r\n\r\nDataLayerFooter.prototype._trackSocialLinks = function () {\r\n this.footer.querySelectorAll('ul.social__list li.social__item a.social__link').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const platform = link.title?.trim().toLowerCase() || '';\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: platform,\r\n linkUrl: link.href,\r\n uiLocation: \"universal footer\"\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerFooter.prototype._trackLegalLinks = function () {\r\n this.footer.querySelectorAll('div.utility-nav ul.utility-nav__list li.utility-nav__item a').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const text = link.innerText?.trim().toLowerCase() || '';\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: text,\r\n linkUrl: link.href || \"\",\r\n uiLocation: \"universal footer\"\r\n });\r\n });\r\n });\r\n}\r\n\r\nDataLayerFooter.prototype._trackCurrencyDropdown = function () {\r\n const currencyBtn = this.footer.querySelector('[data-template=\"js-currency-content\"]');\r\n\r\n if (currencyBtn) {\r\n let isExpanded = false\r\n currencyBtn.addEventListener('click', () => {\r\n // Toggle our own flag on click\r\n isExpanded = !isExpanded;\r\n const state = isExpanded ? 'expand' : 'collapse'\r\n\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `currency - ${state}`,\r\n uiLocation: 'universal footer'\r\n });\r\n\r\n // Add selection listeners only when expanding\r\n if (isExpanded) {\r\n const currencyButtons = document.querySelectorAll('#js-currency-content .zdcm-module-footer-dropdown__link');\r\n currencyButtons.forEach(button => {\r\n if (!button.hasAttribute('data-dl-bound')) {\r\n button.setAttribute('data-dl-bound', 'true')\r\n button.addEventListener('click', () => {\r\n const label = button.textContent.trim().toLowerCase();\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `currency - ${label}`,\r\n uiLocation: 'universal footer'\r\n });\r\n\r\n // Collapse the dropdown after selection\r\n isExpanded = false;\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `currency - collapse`,\r\n uiLocation: 'universal footer'\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackLanguageDropdown = function () {\r\n const languageBtn = this.footer.querySelector('[data-template=\"js-language-content\"]');\r\n\r\n if (languageBtn) {\r\n let isExpanded = false;\r\n languageBtn.addEventListener('click', () => {\r\n isExpanded = !isExpanded;\r\n const state = isExpanded ? 'expand' : 'collapse';\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `language - ${state}`,\r\n uiLocation: 'universal footer'\r\n });\r\n\r\n // Only attach listeners when expanding\r\n if (isExpanded) {\r\n const languageLinks = document.querySelectorAll('#js-language-content .zdcm-module-footer-dropdown__link');\r\n\r\n languageLinks.forEach(link => {\r\n if (!link.hasAttribute('data-dl-bound')) {\r\n link.setAttribute('data-dl-bound', 'true');\r\n\r\n link.addEventListener('click', () => {\r\n const label = link.textContent.trim().toLowerCase();\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `language - ${label}`,\r\n uiLocation: 'universal footer'\r\n });\r\n\r\n // Auto-collapse after selection\r\n isExpanded = false;\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `language - collapse`,\r\n uiLocation: 'universal footer'\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackFooterDesktopDownloadCenter = function () {\r\n const downloadLink = document.querySelector('.zdcm-module-footer-nav__getApp-desktop a.link-app-desktop');\r\n\r\n if (downloadLink) {\r\n downloadLink.addEventListener('click', () => {\r\n const linkText = downloadLink.querySelector('.zdcm-module-footer-nav-downloadText')?.textContent.trim() || 'Download Center';\r\n const linkUrl = downloadLink.getAttribute('href');\r\n\r\n this.DataLayerHelper.pushEvent('navClick', {\r\n linkText,\r\n linkUrl,\r\n uiLocation: 'universal footer',\r\n });\r\n });\r\n }\r\n};\r\n\r\n\r\nDataLayerFooter.prototype._trackFooterMobileDownloadLinks = function () {\r\n const downloadLinks = document.querySelectorAll('.zdcm-module-footer-nav__getApp a.link-app');\r\n\r\n if (downloadLinks.length > 0) {\r\n downloadLinks.forEach(link => {\r\n link.addEventListener('click', () => {\r\n const linkText = link.querySelector('.zdcm-module-footer-nav-downloadText')?.textContent.trim() || 'Download App';\r\n const linkUrl = link.getAttribute('href');\r\n\r\n this.DataLayerHelper.pushEvent('navClick', {\r\n linkText,\r\n linkUrl,\r\n uiLocation: 'universal footer - mobile',\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackMobileCurrencyLanguageDropdowns = function () {\r\n // Helper to push events consistently\r\n const pushDL = (linkText) => {\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText,\r\n uiLocation: 'universal footer - mobile',\r\n });\r\n };\r\n\r\n // --- LANGUAGE DROPDOWN ---\r\n const languageContainer = document.querySelector('#js-language-mobile-content');\r\n const languageBtn = this.footer.querySelector('[data-template=\"js-language-mobile-content\"]');\r\n if (languageBtn && languageContainer) {\r\n let langExpanded = false;\r\n\r\n languageBtn.addEventListener('click', () => {\r\n langExpanded = !langExpanded;\r\n pushDL(`language - ${langExpanded ? 'expand' : 'collapse'}`);\r\n });\r\n\r\n const langLinks = languageContainer.querySelectorAll('.zdcm-module-footer-dropdown__link');\r\n langLinks.forEach(link => {\r\n if (!link.hasAttribute('data-dl-bound')) {\r\n link.setAttribute('data-dl-bound', 'true');\r\n link.addEventListener('click', () => {\r\n const label = link.textContent.trim().toLowerCase();\r\n pushDL(`language - ${label}`);\r\n langExpanded = false;\r\n pushDL(`language - collapse`);\r\n });\r\n }\r\n });\r\n }\r\n\r\n // --- CURRENCY DROPDOWN ---\r\n const currencyContainer = document.querySelector('#js-currency-mobile-content');\r\n const currencyBtn = this.footer.querySelector('[data-template=\"js-currency-mobile-content\"]');\r\n if (currencyBtn && currencyContainer) {\r\n let curExpanded = false;\r\n\r\n currencyBtn.addEventListener('click', () => {\r\n curExpanded = !curExpanded;\r\n pushDL(`currency - ${curExpanded ? 'expand' : 'collapse'}`);\r\n });\r\n\r\n const curButtons = currencyContainer.querySelectorAll('.zdcm-module-footer-dropdown__link');\r\n curButtons.forEach(button => {\r\n if (!button.hasAttribute('data-dl-bound')) {\r\n button.setAttribute('data-dl-bound', 'true');\r\n button.addEventListener('click', () => {\r\n const label = button.textContent.trim().toLowerCase();\r\n pushDL(`currency - ${label}`);\r\n curExpanded = false;\r\n pushDL(`currency - collapse`);\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackMobilePrimaryDropdownToggles = function () {\r\n function waitForFooterLinks(selector, callback) {\r\n const interval = setInterval(() => {\r\n const elements = document.querySelectorAll(selector);\r\n if (elements.length > 0) {\r\n clearInterval(interval);\r\n callback(elements);\r\n }\r\n }, 100); // check every 100ms\r\n }\r\n\r\n waitForFooterLinks(\".zdcm-module-footer-top__primary .zdcm-module-footer-nav section > a\", (links) => {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n var textContent = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n linkText = textContent ? textContent : linkText.toLowerCase();\r\n }\r\n if (event.currentTarget.classList.contains('active') == true) {\r\n linkText = linkText + \" - expand\"\r\n } else {\r\n linkText = linkText + \" - collapse\"\r\n }\r\n window.dataLayer = window.dataLayer || [];\r\n if (window.innerWidth <= 1024) {\r\n window.dataLayer.push({\r\n event: 'linkClick',\r\n linkText: linkText,\r\n uiLocation: 'universal footer - mobile'\r\n });\r\n }\r\n });\r\n });\r\n });\r\n}\r\nexport { DataLayerFooter }\r\n","function DataLayerProductNavMenu() {\r\n this.menu = document.querySelector('.zdcm-hub-page-mobile-menu');\r\n\r\n this.DataLayerHelper = {\r\n pushEvent: function (eventName, data = {}) {\r\n if (!eventName) return;\r\n let eventData = { event: eventName };\r\n Object.keys(data).forEach(key => {\r\n eventData[key] = (data[key] === \"\") ? undefined : data[key];\r\n });\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(eventData);\r\n }\r\n };\r\n}\r\n\r\nDataLayerProductNavMenu.prototype._init = function () {\r\n if (this.menu) {\r\n this._trackTeamChatMobileMenu();\r\n this._trackProductNavExpandCollapse();\r\n }\r\n //this._trackDesktopTeamChatFeaturesUseCases();\r\n};\r\n\r\nDataLayerProductNavMenu.prototype._trackTeamChatMobileMenu = function () {\r\n document.querySelectorAll('.zdcm-hub-accordion-panel a').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const parentSection = link.closest('.zdcm-hub-mobile-menu-items')?.querySelector('button')?.innerText?.trim().toLowerCase();\r\n const itemText = link.innerText?.trim().toLowerCase();\r\n const linkText = `${parentSection} - ${itemText}`;\r\n const uiLocation = 'product nav - team chat';\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: linkText,\r\n uiLocation: uiLocation\r\n });\r\n });\r\n });\r\n};\r\n\r\nDataLayerProductNavMenu.prototype._trackProductNavExpandCollapse = function () {\r\n const uiLocation = 'product nav - team chat';\r\n document.querySelectorAll('.zdcm-hub-menu-open').forEach(button => {\r\n let previousState = button.getAttribute('aria-expanded') === 'true';\r\n button.addEventListener('click', function () {\r\n setTimeout(() => {\r\n const currentState = button.getAttribute('aria-expanded') === 'true';\r\n const action = currentState ? 'expand' : 'collapse';\r\n const linkText = `team chat - ${action}`;\r\n previousState = currentState;\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: linkText,\r\n uiLocation: uiLocation\r\n });\r\n }, 50);\r\n });\r\n });\r\n\r\n // Track \"Features\" and \"Use Cases\" Accordion Toggles\r\n document.querySelectorAll('.zdcm-hub-accordion').forEach(button => {\r\n if (!button.hasAttribute('data-dl-bound')) {\r\n button.setAttribute('data-dl-bound', 'true');\r\n button.addEventListener('click', function () {\r\n setTimeout(() => {\r\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\r\n const action = isExpanded ? 'expand' : 'collapse';\r\n const section = button.innerText?.trim().toLowerCase();\r\n const linkText = `${section} - ${action}`;\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: linkText,\r\n uiLocation: uiLocation\r\n });\r\n }, 50)\r\n });\r\n }\r\n });\r\n};\r\n\r\n\r\nDataLayerProductNavMenu.prototype._trackDesktopTeamChatFeaturesUseCases = function () {\r\n const uiLocation = 'product nav - desktop/tablet';\r\n\r\n // Team Chat Direct Link\r\n const teamChatLink = document.querySelector('.zdcm-main-nav__link[href*=\"/products/team-chat\"]');\r\n if (teamChatLink) {\r\n teamChatLink.addEventListener('click', () => {\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: 'team chat',\r\n uiLocation: uiLocation\r\n });\r\n });\r\n }\r\n\r\n // Features Dropdown Links\r\n document.querySelectorAll('.zdcm-megamenu[aria-label=\"Features\"] .zdcm-main-nav__dropdown-link').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const itemText = link.textContent.trim().toLowerCase();\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: `features - ${itemText}`,\r\n uiLocation: uiLocation\r\n });\r\n });\r\n });\r\n\r\n // Use Cases Dropdown Links\r\n document.querySelectorAll('.zdcm-megamenu[aria-label=\"Use Cases\"] .zdcm-main-nav__dropdown-link').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const itemText = link.textContent.trim().toLowerCase();\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: `use cases - ${itemText}`,\r\n uiLocation: uiLocation\r\n });\r\n });\r\n });\r\n\r\n document.querySelectorAll('.zdcm-main-nav__megamenu-trigger').forEach(button => {\r\n const label = button.innerText.trim().toLowerCase()\r\n if (label === 'features' || label === 'use cases') {\r\n button.addEventListener('click', function () {\r\n setTimeout(() => {\r\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\r\n const action = isExpanded ? 'expand' : 'collapse';\r\n const linkText = `${label} - ${action}`;\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: linkText,\r\n uiLocation: uiLocation\r\n });\r\n }, 50)\r\n });\r\n }\r\n });\r\n\r\n // Pricing link tracking (desktop + tablet)\r\n const pricingLink = document.querySelector('.zdcm-main-nav__link[href*=\"/pricing\"]');\r\n if (pricingLink) {\r\n pricingLink.addEventListener('click', () => {\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: 'pricing',\r\n uiLocation: 'product nav - desktop'\r\n });\r\n });\r\n }\r\n\r\n};\r\n\r\n\r\nexport { DataLayerProductNavMenu };\r\n","function DataLayerZoomForNonProfit() {\r\n}\r\n\r\nDataLayerZoomForNonProfit.prototype = {\r\n _init: function () {\r\n this.zoomForNonProfit = document.querySelector(`#zoomfornonprofits`)\r\n this.uiLocation = 'nonprofits discount program'\r\n this.contentTitle = this.getContentTitle()\r\n\r\n if (!this.zoomForNonProfit) return\r\n window.extraPageLoadFields = { pageVersion: this.uiLocation }\r\n\r\n this.addCtaLinkClickListener()\r\n this.addShowMoreButtonClickListener()\r\n this.addFAQClickListener()\r\n },\r\n\r\n getContentTitle: function () {\r\n return this.zoomForNonProfit.querySelector('h3')?.innerText?.trim()?.toLowerCase()\r\n },\r\n\r\n addCtaLinkClickListener: function () {\r\n const ctaElements = document.querySelectorAll('#zoomfornonprofits div.fdn-copy-block__sub-title a')\r\n ctaElements.forEach((link) => {\r\n link.addEventListener('click', (event) => this.handleLinkClick(event, link))\r\n })\r\n },\r\n\r\n handleLinkClick: function (event, link) {\r\n const linkUrl = link.href?.toLowerCase() || undefined\r\n const linkText = link.innerText?.trim()?.toLowerCase() || undefined\r\n\r\n const eventData = {\r\n event: 'linkClick',\r\n linkUrl: linkUrl,\r\n linkText: linkText,\r\n uiLocation: this.uiLocation,\r\n contentTitle: this.contentTitle\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n },\r\n\r\n addShowMoreButtonClickListener: function () {\r\n const showMoreHideButton = document.querySelector('[data-cmp-is=\"pricingcard-standard\"] button.show-more')\r\n if (showMoreHideButton) {\r\n showMoreHideButton.addEventListener('click', (event) => this.handleShowMoreButtonClick(event))\r\n }\r\n },\r\n\r\n handleShowMoreButtonClick: function (event) {\r\n let linkText = event.target?.innerHTML?.trim()?.toLowerCase()\r\n \r\n window.dataLayer.push({\r\n event: 'linkClick',\r\n linkText: linkText,\r\n linkUrl: undefined,\r\n uiLocation: this.uiLocation,\r\n contentTitle: this.contentTitle\r\n })\r\n },\r\n\r\n addFAQClickListener: function () {\r\n const faqButton = document.querySelectorAll('button.accordion__item-button')\r\n faqButton.forEach((link) => {\r\n link.addEventListener('click', (event) => this.handleFaqButtonClick(event))\r\n })\r\n },\r\n\r\n handleFaqButtonClick: function (event) {\r\n const buttonElement = event.target.closest('button')\r\n if (buttonElement) {\r\n const isExpanded = buttonElement.getAttribute('aria-expanded') === 'true'\r\n const faqInteraction = buttonElement.textContent?.trim()?.toLowerCase()\r\n\r\n window.dataLayer.push({\r\n event: 'faqInteraction',\r\n faqInteraction: faqInteraction,\r\n faqSelection: isExpanded ? \"expand\" : \"collapse\",\r\n uiLocation: \"zoom for nonprofits\"\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport { DataLayerZoomForNonProfit }\r\n","import { DataLayerSearch } from './datalayer/data-layer-search'\r\nimport { DataLayerTab } from './datalayer/data-layer-tab'\r\nimport { DataLayerCta } from './datalayer/data-layer-cta' \r\nimport { DataLayerFilter } from './datalayer/data-layer-filter'\r\nimport { DataLayerBlog } from './datalayer/data-layer-blog'\r\nimport { DataLayerSmbRoiCalculator } from './datalayer/data-layer-smb-roi'\r\nimport { DataLayerNavigation } from './datalayer/data-layer-navigation'\r\nimport { DataLayerNavigationVfive } from './datalayer/data-layer-navigation-vfive'\r\nimport { DataLayerFooter } from './datalayer/data-layer-footer'\r\nimport { DataLayerProductNavMenu } from './datalayer/data-layer-product-nav'\r\nimport { DataLayerZoomForNonProfit } from './datalayer/data-layer-non-profit'\r\n\r\nfunction DataLayerTracking() {\r\n this.footerUiLocation = 'Footer Nav'\r\n this.headerUiLocation = 'Universal Nav'\r\n this.bodyUiLocation = 'Body Content'\r\n this.dataLayerSearch = new DataLayerSearch()\r\n this.dataLayerTab = new DataLayerTab() \r\n this.dataLayerCta = new DataLayerCta() \r\n this.dataLayerFilter = new DataLayerFilter()\r\n this.DataLayerBlog = new DataLayerBlog()\r\n this.dataLayerSmbRoi = new DataLayerSmbRoiCalculator();\r\n this.DataLayerNavigation = new DataLayerNavigation();\r\n this.DataLayerProductNavMenu = new DataLayerProductNavMenu()\r\n this.DataLayerNavigationVfive = new DataLayerNavigationVfive();\r\n this.DataLayerFooter = new DataLayerFooter()\r\n this.DataLayerZoomForNonProfit = new DataLayerZoomForNonProfit()\r\n}\r\nDataLayerTracking.prototype._init = function () {\r\n this._phoneNumberClick()\r\n this.dataLayerSearch._init()\r\n const currentURL = window.location.href;\r\n if (currentURL.includes('.com/en/')) {\r\n var hubPageSelector = document.querySelector(\".zdcm-hub-navigation\")\r\n if (hubPageSelector) {\r\n window.extraPageLoadFields = { experimentVariant: \"global nav july 2025\", pageVersion: \"product hub july 2025\" }\r\n }\r\n this.DataLayerNavigationVfive._init()\r\n }\r\n this.dataLayerTab._init() \r\n this.dataLayerCta._init() \r\n this.dataLayerFilter._init()\r\n this.DataLayerBlog._init()\r\n this.dataLayerSmbRoi._init()\r\n this.DataLayerNavigation._init()\r\n this.DataLayerProductNavMenu._init()\r\n this.DataLayerFooter._init()\r\n this.DataLayerZoomForNonProfit._init()\r\n}\r\nDataLayerTracking.prototype._phoneNumberClick = function () {\r\n try {\r\n document.querySelectorAll('a[href^=\"tel:\"]').forEach(link => {\r\n let trackingLocation = this.bodyUiLocation\r\n if ((link.closest(\"footer\")) && (link.closest(\"footer\") != null)) {\r\n trackingLocation = this.footerUiLocation \r\n } else if ((link.closest(\"header\")) && (link.closest(\"header\") != null)) {\r\n trackingLocation = this.headerUiLocation\r\n }\r\n link.addEventListener(\"click\", function (e) {\r\n let eventData = {\r\n event: 'phoneClick',\r\n linkUrl: e?.target?.href || \"\",\r\n linkText: e?.target?.innerText.split('\\n')[0].trim() || \"\",\r\n uiLocation: trackingLocation\r\n }\r\n window.dataLayer.push(eventData)\r\n })\r\n },this)\r\n }\r\n catch (e) { }\r\n}\r\n\r\nexport { DataLayerTracking }\r\n","export function checkUiLocation(element) {\r\n const locationMapping = [\r\n { selector: '.hero__cta', location: 'Hero Banner' },\r\n { selector: '.audience-hero__cta', location: 'Audience Hero Banner' },\r\n { selector: '.module-video-expander__cta', location: 'Video Expander Hero Banner' },\r\n { selector: '.event-hero__cta', location: 'Event Hero Banner' },\r\n { selector: '.product-category-hero__cta', location: 'Product Category Hero Banner' },\r\n { selector: '.fdn-image-card, .fdn-image-card__main-container', location: 'Image Card' },\r\n { selector: '.fdn-video-card, .fdn-video-card__main-container', location: 'Video Card' },\r\n { selector: '.fdn-blog-card', location: 'Blog Card' },\r\n { selector: '.fdn-image-cta', location: 'Image CTA' },\r\n { selector: '.fdn-box-card', location: 'Box Card' },\r\n { selector: '.fdn-event-card', location: 'Event Card' },\r\n { selector: '.fdn-text-card', location: 'Text Card' },\r\n { selector: '.fdn-static-card', location: 'Static Card' },\r\n { selector: '.fdn-stat-card', location: 'Statistics Card' },\r\n { selector: '.testimonial-carousel', location: 'Carousel Card' },\r\n { selector: '.fdn-basic-cta__btn-container', location: 'Sticky Footer cta' },\r\n { selector: '#zoomfornonprofits', location: 'nonprofits discount program' },\r\n { selector: '.fdn-copy-block', location: 'Copy Block' },\r\n { selector: '.fdn-ebook-quote__container', location: 'Ebook Quote' },\r\n { selector: '.fdn-pricing-card__main-container', location: 'Pricing Card' },\r\n { selector: '.fdn-alert-banner', location: 'Alert Banner' },\r\n { selector: '.fdn-form__description', location: 'Form CTA' },\r\n { selector: '.fdn-resource-link', location: 'Resource Link Group' },\r\n { selector: '.cta-container ', location: 'Cta Container' },\r\n { selector: '.fdn-pricingcard-uni-wrapper-container', location: 'Hero Pricing Card' },\r\n { selector: '.fdn-zdcm-pricing-cards', location: 'Pricing Card' },\r\n { selector: '.fdn-zdcm-feature-accordion', location: 'Feature Accordian Tab' },\r\n { selector: '.fdn-resource-block', location: 'Resource Card Block' },\r\n { selector: '.zdcm-top-title-wrapper', location: 'Title Section Block' }\r\n ]\r\n\r\n for (const { selector, location } of locationMapping) {\r\n if (element.closest(selector)) {\r\n return location\r\n }\r\n }\r\n\r\n //SELECTION OF COMPONENT OUTER CONTAINER\r\n const moduleColumns = element.closest('.module-columns')\r\n if (moduleColumns) {\r\n const iconBlock = moduleColumns.querySelectorAll('.fdn-icon-block')\r\n if (iconBlock) {\r\n return 'Icon Block Section'\r\n }\r\n }\r\n\r\n return ''\r\n}\r\n","export const contentTitleMap = [\r\n {\r\n blockClass: 'zdcm-top-title-wrapper',\r\n titleSelector: '.module-columns-title'\r\n },\r\n {\r\n blockClass: 'fdn-copy-block',\r\n titleSelector: '.fdn-copy-block__title'\r\n },\r\n {\r\n blockClass: 'fdn-basic-cta',\r\n titleSelector: '.fdn-basic-cta__header'\r\n },\r\n {\r\n blockClass: 'hero__content',\r\n titleSelector: '.hero__title'\r\n }\r\n];\r\n","import { checkUiLocation } from './common-ui-location-mapping'\r\nimport { contentTitleMap } from './contentTitleMap';\r\n\r\nfunction DataLayerCta() {\r\n this.buttonCta = Array.from(document.querySelectorAll(\r\n 'a.fdn-button, .fdn-resource-link li a, .fdn-image-card, .fdn-video-card a, .fdn-box-card a, .fdn-blog-card a, .fdn-alert-banner'\r\n )).filter(el => !el.closest('header'));\r\n}\r\n\r\nDataLayerCta.prototype._init = function () {\r\n this._trackLinkClicks()\r\n}\r\n\r\nDataLayerCta.prototype._trackLinkClicks = function () {\r\n this.buttonCta.forEach((link) =>\r\n link.addEventListener('click', (e) => this._handleLinkClick(e))\r\n )\r\n}\r\n\r\nDataLayerCta.prototype._bindClickOnce = function (element) {\r\n if (element.dataset.dlBound === \"true\") return; // already bound\r\n element.addEventListener('click', (e) => this._handleLinkClick(e));\r\n element.dataset.dlBound = \"true\"; // mark as bound\r\n}\r\n\r\nDataLayerCta.prototype.rebindInsideContainer = function (containerId) {\r\n const selectors = [\r\n 'a.fdn-button',\r\n '.fdn-resource-link li a',\r\n '.fdn-image-card',\r\n '.fdn-video-card a',\r\n '.fdn-box-card a',\r\n '.fdn-blog-card a',\r\n '.fdn-alert-banner'\r\n ];\r\n\r\n const container = document.getElementById(containerId);\r\n if (!container) return;\r\n\r\n const links = Array.from(container.querySelectorAll(selectors.join(',')));\r\n\r\n links.forEach(link => this._bindClickOnce(link));\r\n}\r\n\r\nDataLayerCta.prototype._isInExcludedSection = function (element) {\r\n const excludedSelectors = [\r\n '.bandwidth-calculator',\r\n '.fdn-zdcm-pricing-cards'\r\n ]\r\n return excludedSelectors.some(selector => {\r\n const section = document.querySelector(selector)\r\n return section && section.contains(element)\r\n })\r\n}\r\n\r\nDataLayerCta.prototype._handleLinkClick = function (e) {\r\n e.stopPropagation()\r\n let linkElement = e.target.closest('a')\r\n if (!linkElement || !Array.from(this.buttonCta).includes(linkElement)) return\r\n\r\n const pricingCard = linkElement.closest('.fdn-zdcm-pricing-card')\r\n if (pricingCard) {\r\n e.preventDefault()\r\n\r\n const productElem = pricingCard.querySelector('.fdn-zdcm-plan')\r\n const product = productElem?.innerText?.replace(/\\s+/g, ' ').trim() || 'Unknown Plan'\r\n const linkText = linkElement.innerText.split('\\n')[0].trim()\r\n const linkUrl = linkElement.href\r\n const uiLocation = checkUiLocation(linkElement)\r\n const contentTitle = this._getContentTitle(linkElement)\r\n\r\n const formattedLinkText = `${product} - ${linkText}`\r\n\r\n const eventData = {\r\n event: 'linkClick',\r\n linkText: formattedLinkText,\r\n linkUrl: linkUrl,\r\n uiLocation: uiLocation,\r\n contentTitle: contentTitle\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n\r\n setTimeout(() => {\r\n window.location.href = linkUrl\r\n }, 200)\r\n\r\n return\r\n }\r\n\r\n if (this._isInExcludedSection(linkElement)) return\r\n\r\n let linkText = this._getVisibleText(linkElement)\r\n let linkUrl = linkElement.href\r\n let uiLocation = checkUiLocation(linkElement)\r\n const extensionRegex = /\\.(doc|txt|zip|exe|pdf|ppt|mp3|mp4)/i\r\n const isDownload = extensionRegex.test(linkUrl)\r\n\r\n if (isDownload) {\r\n this._handleDownloadEvent(linkElement, linkText, linkUrl, uiLocation)\r\n } else {\r\n this._handleLinkClickEvent(linkElement, linkText, linkUrl, uiLocation)\r\n }\r\n}\r\n\r\nDataLayerCta.prototype._handleDownloadEvent = function (linkElement, linkText, linkUrl, uiLocation) {\r\n const extensionRegex = /\\.(doc|txt|zip|exe|pdf|ppt|mp3|mp4)/i\r\n const match = linkUrl.match(extensionRegex)\r\n const contentTitle = this._getContentTitle(linkElement) || ''\r\n\r\n if (match) {\r\n let eventData = {\r\n event: 'fileDownload',\r\n linkUrl: linkUrl,\r\n linkText: linkText,\r\n uiLocation: uiLocation,\r\n fileExtension: match[1]?.toLowerCase(),\r\n contentTitle: contentTitle\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n }\r\n}\r\n\r\nDataLayerCta.prototype._handleLinkClickEvent = function (linkElement, linkText, linkUrl, uiLocation) {\r\n const contentTitle = this._getContentTitle(linkElement)\r\n\r\n const eventData = {\r\n event: 'linkClick',\r\n linkText: linkText,\r\n linkUrl: linkUrl,\r\n uiLocation: uiLocation,\r\n contentTitle: contentTitle\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n}\r\n\r\nDataLayerCta.prototype._getContentTitle = function (element) {\r\n const pricingCard = element.closest('.fdn-zdcm-pricing-card');\r\n if (pricingCard) {\r\n let parent = pricingCard.parentElement;\r\n while (parent) {\r\n const titleWrapper = parent.querySelector('.zdcm-top-title-wrapper .module-columns-title');\r\n if (titleWrapper && titleWrapper.innerText.trim()) {\r\n return titleWrapper.innerText.trim();\r\n }\r\n parent = parent.parentElement;\r\n }\r\n }\r\n\r\n let parent = element;\r\n while (parent) {\r\n for (const { blockClass, titleSelector } of contentTitleMap) {\r\n if (parent.classList?.contains(blockClass)) {\r\n const titleEl = parent.querySelector(titleSelector);\r\n if (titleEl && titleEl.innerText.trim()) {\r\n return titleEl.innerText.trim()\r\n }\r\n }\r\n }\r\n parent = parent.parentElement\r\n }\r\n\r\n const globalModuleTitle = document.querySelector('.zdcm-top-title-wrapper .module-columns-title');\r\n if (globalModuleTitle?.innerText.trim()) {\r\n return globalModuleTitle.innerText.trim()\r\n }\r\n\r\n const heading = element.closest('h1, h2, h3, h4');\r\n if (heading?.innerText.trim()) {\r\n return heading.innerText.trim()\r\n }\r\n\r\n parent = element.parentElement;\r\n while (parent) {\r\n const found = parent.querySelector('h1, h2, h3, h4');\r\n if (found?.innerText.trim()) {\r\n return found.innerText.trim()\r\n }\r\n parent = parent.parentElement\r\n }\r\n\r\n return ''\r\n}\r\n\r\nDataLayerCta.prototype._getVisibleText = function (element) {\r\n const buttonElement = element.querySelector('[class*=\"fdn-button\"], .fdn-resource-link__title')\r\n\r\n if (buttonElement) {\r\n return buttonElement.innerText.trim()\r\n }\r\n\r\n const textElements = element.querySelectorAll('span, h3, p')\r\n for (const el of textElements) {\r\n if (el.innerText.trim() && !el.classList.contains('visually-hidden')) {\r\n return el.innerText.trim()\r\n }\r\n }\r\n\r\n let visibleText = ''\r\n element.childNodes.forEach((node) => {\r\n if (node.nodeType === Node.TEXT_NODE) {\r\n const parent = node.parentElement\r\n if (parent && !parent.classList.contains('visually-hidden')) {\r\n visibleText += node.textContent.trim() + ' '\r\n }\r\n }\r\n })\r\n\r\n return visibleText.trim()\r\n}\r\n\r\nexport { DataLayerCta } \r\n","function DataLayerFilter() {\r\n this.filterInteractionEvent = 'filterInteraction';\r\n this.filterAppliedInteraction = 'filter applied';\r\n this.apiEndpoint = document.querySelector('#q')?.closest('.grid-landing-page')?.getAttribute('data-api-endpoint');\r\n this.uiLocation = this.apiEndpoint ? this.apiEndpoint.split('/')[2] : 'grid landing page';\r\n this.filterInputs = document.querySelectorAll('input[type=\"checkbox\"], input[type=\"radio\"], select');\r\n this._handleFilterChange = this._handleFilterChange.bind(this);\r\n}\r\n\r\nDataLayerFilter.prototype._init = function () {\r\n this._trackFilterInteractions();\r\n};\r\n\r\nDataLayerFilter.prototype._trackFilterInteractions = function () {\r\n this.filterInputs.forEach(filter => {\r\n if (!filter.hasEventListener) {\r\n filter.addEventListener('change', (event) => {\r\n if (event.target.checked || event.target.tagName === 'SELECT') {\r\n setTimeout(() => {\r\n this._handleFilterChange()\r\n }, 50)\r\n }\r\n });\r\n filter.hasEventListener = true;\r\n }\r\n });\r\n};\r\n\r\nDataLayerFilter.prototype._handleFilterChange = function () {\r\n let filtersApplied = this._getAppliedFilters();\r\n\r\n if (!filtersApplied || Object.keys(filtersApplied).length === 0) {\r\n return;\r\n }\r\n\r\n // Filter out unnecessary keys like \"sort\" and \"ot-group-id-C000X\"\r\n const validFilterKeys = Object.keys(filtersApplied).filter(\r\n key => !key.startsWith(\"ot-group-id\") && key !== \"sort\"\r\n );\r\n\r\n // Extract all selected values from relevant filters\r\n let selectedFilters = [];\r\n validFilterKeys.forEach(key => {\r\n selectedFilters = selectedFilters.concat(filtersApplied[key]);\r\n });\r\n\r\n // Remove duplicates if the same filter is clicked multiple times\r\n selectedFilters = [...new Set(selectedFilters)];\r\n\r\n if (selectedFilters.length === 0) {\r\n return;\r\n }\r\n\r\n window.dataLayer.push({\r\n event: this.filterInteractionEvent,\r\n filterInteraction: this.filterAppliedInteraction,\r\n filtersUsed: selectedFilters, \r\n uiLocation: this.uiLocation\r\n });\r\n};\r\n\r\nDataLayerFilter.prototype._getAppliedFilters = function () {\r\n const appliedFilters = {};\r\n document.querySelectorAll('input[type=\"checkbox\"]:checked, input[type=\"radio\"]:checked').forEach(input => {\r\n const filterType = input.name || 'unknown';\r\n if (!appliedFilters[filterType]) appliedFilters[filterType] = [];\r\n appliedFilters[filterType].push(input.value);\r\n });\r\n\r\n document.querySelectorAll('select').forEach(select => {\r\n if (select.value) {\r\n const filterType = select.name || 'unknown';\r\n if (!appliedFilters[filterType]) appliedFilters[filterType] = [];\r\n appliedFilters[filterType].push(select.value);\r\n }\r\n });\r\n\r\n return appliedFilters;\r\n};\r\n\r\nexport { DataLayerFilter };\r\n","function DataLayerSearch() {\n this.searchIntractionEvent = 'searchInteraction'\n this.searchValueEvent = 'search'\n this.searchBarClickIntraction = 'search bar clicked'\n this.clearSearchIntraction = 'clear search'\n this.coveoSearchLabel = 'coveo search'\n this.searchBox = document.querySelector('#q')\n this.apiEndpoint = document.querySelector('#q')?.closest('.grid-landing-page')?.getAttribute('data-api-endpoint')\n this.clearSearch = document.querySelector('.grid-landing-page__text-input__search-icon--close')\n this.resultCount = 0\n this.uiLocation = (this.apiEndpoint) ? this.apiEndpoint.split('/')[2] : 'grid landing page'\n this.coveoSearchBox = document.querySelector('.FlyoutButton')\n this.coveoSearchInput = document.querySelector('.magic-box-input input')\n this.coveoClearSearch = document.querySelector('.magic-box-icon')\n this.coveoSearchIcon = document.querySelector('.CoveoSearchButton')\n this.coveoSearchPageInput = document.querySelector('main .magic-box-input input')\n this.coveoPageClearSearch = document.querySelector('main .magic-box-icon')\n this.coveoPageSearchIcon = document.querySelector('main .CoveoSearchButton')\r\n}\r\nDataLayerSearch.prototype._init = function () {\n this._searchClick()\r\n}\n\nDataLayerSearch.prototype._updateDataLayerWithCardCount = function (resultCount) {\r if (resultCount && !isNaN(resultCount)) {\r this.resultCount = parseInt(resultCount)\r }\n if (this.searchBox.value) {\n let eventData = {\n event: this.searchValueEvent,\r\n searchTermUsed: this.searchBox.value,\r\n numResults: this.resultCount,\r\n uiLocation: this.uiLocation\r\n }\r\n window.dataLayer.push(eventData)\r\n }\r}\n\nDataLayerSearch.prototype._searchClickIntraction = function (searchBoxClick, searchBarClickIntraction, uiLocation) {\n if (searchBoxClick != null) {\n searchBoxClick.addEventListener('click', () => {\n let eventData = {\r\n event: this.searchIntractionEvent,\r\n searchInteraction: searchBarClickIntraction,\r\n uiLocation: uiLocation\r\n }\r\n window.dataLayer.push(eventData)\n })\n }\r\n}\n\nDataLayerSearch.prototype._searchValueIntraction = function (searchElementClick, searchTerm, uiLocation) {\n if (searchElementClick != null) {\n searchElementClick.addEventListener('click', () => {\n let eventData = {\r\n event: this.searchValueEvent,\r\n searchTermUsed: searchTerm?.value,\r\n uiLocation: uiLocation\r\n }\r\n window.dataLayer.push(eventData)\n })\n }\r\n}\n\nDataLayerSearch.prototype._searchValueIntractionByPressEnter = function (searchElementClick, searchTerm, uiLocation) {\n if (searchElementClick != null) {\n searchElementClick.addEventListener('keydown', (e) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n let eventData = {\r\n event: this.searchValueEvent,\r\n searchTermUsed: searchTerm?.value,\r\n uiLocation: uiLocation\r\n }\r\n window.dataLayer.push(eventData)\n }\n })\n }\r\n}\nDataLayerSearch.prototype._searchClick = function () {\r\n try {\n \n this._searchClickIntraction(this.searchBox,this.searchBarClickIntraction,this.uiLocation)\n\n this._searchClickIntraction(this.clearSearch,this.clearSearchIntraction,this.uiLocation)\n\n this._searchClickIntraction(this.coveoSearchBox,this.searchBarClickIntraction, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoSearchInput,this.searchBarClickIntraction, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoSearchPageInput, this.searchBarClickIntraction, this.coveoSearchLabel)\n\n this._searchValueIntractionByPressEnter(this.coveoSearchInput, this.coveoSearchInput, this.coveoSearchLabel)\n\n this._searchValueIntractionByPressEnter(this.coveoSearchPageInput, this.coveoSearchPageInput, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoClearSearch,this.clearSearchIntraction, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoPageClearSearch,this.clearSearchIntraction, this.coveoSearchLabel)\n\n this._searchValueIntraction(this.coveoSearchIcon,this.coveoSearchInput, this.coveoSearchLabel)\n\n this._searchValueIntraction(this.coveoPageSearchIcon, this.coveoSearchPageInput, this.coveoSearchLabel)\n\n document.addEventListener(\"click\", function (e) {\n const target = e.target.closest(\".magic-box-suggestion\");\n if (target) {\n let eventData = {\r\n event: 'search',\r\n searchTermUsed: target.getAttribute('aria-label'),\r\n uiLocation: 'coveo search'\r\n }\r\n window.dataLayer.push(eventData)\n }\n });\r\n }\r\n catch (e) { }\r\n}\r\nexport { DataLayerSearch }\r\n","function DataLayerTab() {\r\n this.horizontalTabUiLocation = 'Horizontal Tab'\r\n this.pillTabUiLocation = 'Tabbed Pill'\r\n this.tabbedCarouselUiLocation = 'Tabbed Carousel'\r\n this.horizontalTabClickButton = document.querySelectorAll('.fdn-tabs__tab')\r\n this.pillTabClickButton = document.querySelectorAll('.fdn-tabbed-pills__pill')\r\n this.carouselTabClickButton = document.querySelectorAll('.tabbed-carousel__tab')\r\n}\r\n\r\nDataLayerTab.prototype._init = function () {\r\n this._TabClick()\r\n}\r\n\r\nDataLayerTab.prototype._TabClick = function () {\r\n this._horizontalTabClick(this.horizontalTabClickButton, this.horizontalTabUiLocation)\r\n this._pillTabClick(this.pillTabClickButton, this.pillTabUiLocation)\r\n this._carouselTabClick(this.carouselTabClickButton, this.tabbedCarouselUiLocation)\r\n}\r\n\r\nDataLayerTab.prototype._horizontalTabClick = function (tabs, horizontalTabUiLocation) {\r\n if (tabs) {\r\n tabs.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n let tabContainer = e.target.closest('.fdn-tabs.fdn-tabs--product')\r\n if (tabContainer != null) {\r\n let horizontalTabTitle = tabContainer?.querySelector('.fdn-tabs__headline')?.textContent?.trim() || ''\r\n let targetButton = e.target.closest('.fdn-tabs__tab')\r\n let tabTextValue = targetButton.querySelector('.fdn-tabs__title')?.textContent.trim() || ''\r\n let linkText = horizontalTabTitle ? `${horizontalTabTitle} - ${tabTextValue}` : tabTextValue\r\n\r\n let eventData = {\r\n event: 'contentClick',\r\n linkText: linkText,\r\n uiLocation: horizontalTabUiLocation\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerTab.prototype._pillTabClick = function (tabs, pillTabUiLocation) {\r\n if (tabs) {\r\n tabs.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n let tabContainer = e.target.closest('.fdn-tabbed-pills__content')\r\n let pillTabTitle = tabContainer?.querySelector('.fdn-tabbed-pills__title')?.textContent?.trim() || ''\r\n let tabTextValue = Array.from(e.target.childNodes)\r\n .filter(node => node.nodeType === Node.TEXT_NODE || (node.nodeType === Node.ELEMENT_NODE && !node.classList.contains('visually-hidden')))\r\n .map(node => node.textContent.trim())\r\n .join(' ').trim() || ''\r\n\r\n let linkText = pillTabTitle ? `${pillTabTitle} - ${tabTextValue}` : tabTextValue\r\n\r\n let eventData = {\r\n event: 'contentClick',\r\n linkText: linkText,\r\n uiLocation: pillTabUiLocation\r\n }\r\n window.dataLayer.push(eventData)\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerTab.prototype._carouselTabClick = function (tabs, tabbedCarouselUiLocation) {\r\n if (tabs) {\r\n tabs.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n let tabContainer = e.target.closest('.wrapper')\r\n let carouselTabTitle = tabContainer?.querySelector('.module-columns-title')?.textContent?.trim() || ''\r\n let tabTextValue = Array.from(e.target.childNodes)\r\n .filter(node => node.nodeType === Node.TEXT_NODE || (node.nodeType === Node.ELEMENT_NODE && !node.classList.contains('tabbed-carousel__tab-description')))\r\n .map(node => node.textContent.trim())\r\n .join(' ').trim() || ''\r\n\r\n let linkText = carouselTabTitle ? `${carouselTabTitle} - ${tabTextValue}` : tabTextValue\r\n\r\n let eventData = {\r\n event: 'contentClick',\r\n linkText: linkText,\r\n uiLocation: tabbedCarouselUiLocation\r\n }\r\n \r\n window.dataLayer.push(eventData)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport { DataLayerTab }\r\n"],"names":["handleOnCurrencyChange","selectedCountryCode","context","_el$dataset","el","apiUrl","dataset","apiEndpoint","getAttribute","divId","id","fetch","concat","method","credentials","mode","headers","then","response","text","data","pricingCardBasic","document","querySelector","_temp$querySelector","outerHTML","callPricingAPI","temp","createElement","innerHTML","newDivId","updatedElement","initSinglePricingComponent","err","console","error","initCountryCurrencyFilter","onCountryChange","onCurrencyChange","initializePricingComponents","querySelectorAll","forEach","instance","_el$dataset2","options","arguments","length","undefined","iscurrencyfilter","isCurrencyfilter","ensureCurrencyFilterFlag","ddEl","dropDownElement","Dropdown","onChange","code","listenCurrencyChange","getSelectedCountryCode","DataLayerBlog","DataLayerSmbRoiCalculator","this","container","slider","sliderInput","appCards","viewPlansButton","contactSalesButton","Array","from","find","a","textContent","trim","toLowerCase","interactionCaptured","_onFirstInteraction","bind","DataLayerNavigation","DataLayerHelper","pushEvent","eventName","eventData","event","Object","keys","key","window","dataLayer","push","DataLayerNavigationVfive","universalNavMobileLocation","universalNavDesktopLocation","navClickEventName","searchIntractionEvent","searchBarClickIntraction","DataLayerFooter","footer","DataLayerProductNavMenu","menu","DataLayerZoomForNonProfit","DataLayerTracking","footerUiLocation","headerUiLocation","bodyUiLocation","dataLayerSearch","DataLayerSearch","dataLayerTab","DataLayerTab","dataLayerCta","DataLayerCta","dataLayerFilter","DataLayerFilter","dataLayerSmbRoi","prototype","_init","_FormEvents","_blogFormSubmitted","_blogFormError","$$epiforms","ready","on","param1","param2","eventCategory","eventAction","eventLabel","formType","isValid","_document$querySelect","_document$querySelect2","eventLabelName","parentNode","classList","contains","checked","_trackFirstInteraction","_trackCtaClicks","_this","filter","Boolean","addEventListener","once","e","uiLocation","target","closest","roiCalculatorInteraction","roiCalculatorSelection","_this2","handleClick","label","_this2$sliderInput","employeeCount","value","selectedApps","card","map","_card$querySelector","_card$querySelector2","category","name","numAppsSelected","appsSelectedArray","_logoIntraction","_logoIntractionForShortHeader","_menuWithExpand","_menuWithoutExpand","_logoTracking","_universalDesktopMenu","_universalMobileMenu","_resourceMenu","_mobileSignUp","_mobilePricingEvent","_zoomProductAndContactSaleButton","_trackClickEvents","_getUiLocation","parentCategory","innerText","_getUiLocationMobile","_categoryState","linkText","getLinkType","currentTarget","updateVal","_document$querySelect3","href","_document$querySelect4","link","_filter$map$join$trim","_toConsumableArray","childNodes","node","nodeType","Node","TEXT_NODE","join","_event$currentTarget$","isDesktop","isMobileBanner","_this3","_document$querySelect5","_linkText$trim","getClosestClass","isMobile","_document$querySelect6","_document$querySelect7","_document$querySelect8","_this4","_linkText$trim2","isOpen","linkUrl","cta","_cta$innerText","childNodesArray","_event$currentTarget","_event$target","_event$currentTarget2","_event$target2","_document$querySelect9","_this5","_filter$map$join$trim2","menuLink","_menuLink$innerText","searchInteraction","_this6","_cta$innerText2","_this7","_cta$innerText3","_this8","button","_filter$map$join$trim3","_event$currentTarget3","_trackNavigationEvents","_trackSolutionsMenuClick","_trackResourcesMenuClick","_trackNavLinksClick","solutionsAnchor","resourcesMenuLink","mobileResourcesMenuLink","_resourcesMenuLink$in","dropdown","_filter$map$join$trim4","matches","action","_mobileHamburgerClick","_searchClickIntraction","_mobileFooterMenuItems","_waffleMenu","_waffleButtons","_waffleViewAll","_zoomLogoEvent","_singleLinkNavEvent","_universalNavigationMenu","_userProfile","_userAccountDetail","_pricingEvent","_productMenuTabsClicks","_productMenuTabsLearnMoreClicks","_downloadCenterClicks","_DeveloperAppCenterClicks","_trackAllUniversalNavHubPageClicks","_trackAllUniversalNavMenuClicks","_searchClicks","_trackMeetExpandCollapse","_trackMeetDropdownLinks","_trackMobileNavLinkClicks","_trackMobileNavBackClicks","_applicationDownloadCenterClicks","_productAppMobileClicks","_moblieSignUpClicks","_productsTabItemToggle","links","_link$querySelector$i","_link$querySelector","split","_link$querySelector$t","_link$querySelector2","_link$querySelector$t2","_link$querySelector3","userInfoClick","downloadCenter","waffleMenuClick","ariaExpanded","waffleViewAllClick","mobileHamburger","observer","MutationObserver","searchBoxClick","disconnect","observe","body","childList","subtree","includes","_filter$map$join$trim5","item","clickedItem","labelText","parentLi","setTimeout","isExpanded","_link$querySelector$t3","_link$querySelector4","offsetParent","_link$querySelector$t4","_link$querySelector5","_link$querySelector$t5","_link$querySelector6","_link$querySelector$t6","_link$querySelector7","_event$target$closest","menuName","meetButtons","index","previousState","mutations","mutation","attributeName","newState","nextState","attributes","dropdownLinks","_link$innerText","accordionButtons","btn","_btn$textContent","ariaExpand","_btn$closest","sectionName","backBtn","removeEventListener","_dlHandler","handler","_trackFooterLinks","_trackSocialLinks","_trackLegalLinks","_trackCurrencyDropdown","_trackLanguageDropdown","_trackFooterDesktopDownloadCenter","_trackFooterMobileDownloadLinks","_trackMobileCurrencyLanguageDropdowns","_trackMobilePrimaryDropdownToggles","_section$querySelecto","startsWith","linkLabel","n","section","sectionHeader","mainLink","innerWidth","_mainLink$innerText","_link$title","platform","title","currencyBtn","state","hasAttribute","setAttribute","languageBtn","downloadLink","_downloadLink$querySe","downloadLinks","pushDL","languageContainer","langExpanded","currencyContainer","curExpanded","callback","interval","setInterval","elements","clearInterval","_trackTeamChatMobileMenu","_trackProductNavExpandCollapse","_link$closest","parentSection","itemText","currentState","_button$innerText","_trackDesktopTeamChatFeaturesUseCases","teamChatLink","pricingLink","zoomForNonProfit","contentTitle","getContentTitle","extraPageLoadFields","pageVersion","addCtaLinkClickListener","addShowMoreButtonClickListener","addFAQClickListener","_this$zoomForNonProfi","handleLinkClick","_link$href","showMoreHideButton","handleShowMoreButtonClick","handleFaqButtonClick","buttonElement","_buttonElement$textCo","faqInteraction","faqSelection","_phoneNumberClick","location","experimentVariant","trackingLocation","_e$target","_e$target2","checkUiLocation","element","_i","_locationMapping","selector","_locationMapping$_i","moduleColumns","contentTitleMap","blockClass","titleSelector","buttonCta","_trackLinkClicks","_handleLinkClick","_bindClickOnce","dlBound","rebindInsideContainer","containerId","getElementById","_isInExcludedSection","some","stopPropagation","linkElement","pricingCard","_productElem$innerTex","preventDefault","productElem","product","replace","_getContentTitle","_getVisibleText","test","_handleDownloadEvent","_handleLinkClickEvent","match","_match$","fileExtension","parent","parentElement","titleWrapper","_step","_iterator","_createForOfIteratorHelper","s","done","_parent$classList","_step$value","titleEl","f","globalModuleTitle","heading","found","_step2","_iterator2","visibleText","filterInteractionEvent","filterAppliedInteraction","filterInputs","_handleFilterChange","_trackFilterInteractions","hasEventListener","tagName","filtersApplied","_getAppliedFilters","validFilterKeys","selectedFilters","Set","filterInteraction","filtersUsed","appliedFilters","input","filterType","select","searchValueEvent","clearSearchIntraction","coveoSearchLabel","searchBox","clearSearch","resultCount","coveoSearchBox","coveoSearchInput","coveoClearSearch","coveoSearchIcon","coveoSearchPageInput","coveoPageClearSearch","coveoPageSearchIcon","_searchClick","_updateDataLayerWithCardCount","isNaN","parseInt","searchTermUsed","numResults","_searchValueIntraction","searchElementClick","searchTerm","_searchValueIntractionByPressEnter","keyCode","horizontalTabUiLocation","pillTabUiLocation","tabbedCarouselUiLocation","horizontalTabClickButton","pillTabClickButton","carouselTabClickButton","_TabClick","_horizontalTabClick","_pillTabClick","_carouselTabClick","tabs","tabContainer","_tabContainer$querySe","_targetButton$querySe","horizontalTabTitle","tabTextValue","_tabContainer$querySe2","pillTabTitle","ELEMENT_NODE","_tabContainer$querySe3","carouselTabTitle"],"sourceRoot":""}