{"version":3,"file":"global.js","sources":["../../../dev/components/enso/script.js","../../../dev/assets/js/utility.js","../../../dev/components/cta-newsletter/script.js","../../../dev/components/nav-sidebar/script.js","../../../dev/components/nav-mobile/script.js","../../../dev/components/page-intro/script.js","../../../dev/assets/js/global.js"],"sourcesContent":["// Function - Modernize Enso\nexport function modernizeEnso() {\n\ttry {\n\t\tlet ensoElements = [...document.querySelectorAll(\".enso-overlay-link\")];\n\t\tif (ensoElements.length > 0) {\n\t\t\tensoElements.forEach((element) => {\n\t\t\t\tlet ensoOverlayContentElement = element.closest(\".enso-overlay-content\");\n\t\t\t\tlet ensoElement = ensoOverlayContentElement.closest(\"[enso]\");\n\t\t\t\tcopyEnsoLinkToParentAttribute(element);\n\t\t\t\telement.remove();\n\t\t\t\tunWrap(ensoOverlayContentElement);\n\t\t\t\tensoOverlayContentElement.remove();\n\t\t\t\taddTabKeyDownEvent(ensoElement);\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(error);\n\t}\n}\n\n// FUNCTION - Move Enso Link to parent element with enso attribute\nfunction copyEnsoLinkToParentAttribute(element) {\n\tlet getLink = element.getAttribute(\"onclick\");\n\tgetLink = getLink.replace('self.location.href=\"', \"\").replace('\"', \"\");\n\tlet targetEnso = element.closest(\"[enso]\");\n\tif (targetEnso) {\n\t\ttargetEnso.setAttribute(\"enso\", getLink);\n\t}\n}\n\n// Function - Upwrap element\nfunction unWrap(element) {\n\tconst parent = element.parentNode;\n\twhile (element.firstChild) {\n\t\tparent.insertBefore(element.firstChild, element);\n\t}\n}\n\n// Function - Add in tab keydown event\nfunction addTabKeyDownEvent(element) {\n\tlet overlayVisible = false;\n\tdocument.addEventListener(\"keydown\", (event) => {\n\t\tif (event.key === \"Tab\" && element) {\n\t\t\tevent.preventDefault();\n\t\t\toverlayVisible = !overlayVisible;\n\t\t\tif (overlayVisible) {\n\t\t\t\telement.classList.add(\"js-enso-on\");\n\t\t\t\taddEnsoClickListener(element);\n\t\t\t} else {\n\t\t\t\telement.classList.remove(\"js-enso-on\");\n\t\t\t\tremoveEnsoClickListener(element);\n\t\t\t}\n\t\t}\n\t});\n}\n\n// Function - what to do when link is clicked\nfunction setupLink(e) {\n\te.preventDefault();\n\tlet goToUrl = this.getAttribute(\"enso\"); // this was the key\n\twindow.location.href = goToUrl;\n}\n\n// Function - Add click event listener\nfunction addEnsoClickListener(element) {\n\telement.addEventListener(\"click\", setupLink, false);\n}\n\n// Function - Remove click event listener\nfunction removeEnsoClickListener(element) {\n\telement.removeEventListener(\"click\", setupLink);\n}\n","export function setActiveForNavLinks() {\n\t// Select\n\tconst siteLinks = document.querySelectorAll(\"[js-set-active]\");\n\tconst path = window.location.pathname;\n\n\t// Check\n\tif (!siteLinks) return;\n\n\t// Handle\n\tsiteLinks.forEach((element) => {\n\t\t// Select\n\t\tconst href = element.getAttribute(\"href\");\n\n\t\t// Check\n\t\tif (!href) return;\n\n\t\t// Handle\n\t\tif (path === href) element.classList.add(\"active\");\n\t});\n}\n\nexport function cleanup_img_tags() {\n\tprocessImages(\"img\", \"/tofino\");\n}\n\nfunction processImages(selector, path) {\n\tconst images = document.querySelectorAll(selector);\n\timages.forEach((image) => {\n\t\tconst dataSrc = image.getAttribute(\"data-src\");\n\t\tif (dataSrc !== null && (dataSrc.trim() === \"\" || dataSrc.endsWith(path))) {\n\t\t\tremoveImage(image);\n\t\t} else if (dataSrc !== null) {\n\t\t\tupdateImageSrc(image, dataSrc);\n\t\t}\n\t});\n}\n\nfunction removeImage(image) {\n\timage.remove();\n}\n\nfunction updateImageSrc(image, dataSrc) {\n\timage.setAttribute(\"src\", dataSrc);\n\tconst dataSrcset = image.getAttribute(\"data-srcset\");\n\tif (dataSrcset) {\n\t\timage.setAttribute(\"srcset\", dataSrcset);\n\t}\n}\n\nexport function initializeLazyLoad() {\n\tdocument.addEventListener(\"DOMContentLoaded\", function () {\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries, observer) => {\n\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\tconst img = entry.target;\n\t\t\t\t\t\tconst src = img.getAttribute(\"src\");\n\t\t\t\t\t\timg.removeAttribute(\"loading\"); // Optional, remove if not needed\n\t\t\t\t\t\timg.src = src;\n\t\t\t\t\t\tobserver.unobserve(img);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t{\n\t\t\t\trootMargin: \"200px\", // Adjust this value based on when you want images to load\n\t\t\t\tthreshold: 0.01\n\t\t\t}\n\t\t);\n\n\t\tconst lazyImages = document.querySelectorAll('img[loading=\"lazy\"]');\n\t\tlazyImages.forEach((img) => {\n\t\t\tobserver.observe(img);\n\t\t});\n\t});\n}\n","// This function is used to initialize the newsletter buttons on the page\nexport function initActiveCampaignScript() {\n\t// The URL of the script that needs to be loaded\n\tconst newsletterOptScript = \"https://tofino.activehosted.com/f/embed.php?id=7\";\n\tconst messageFormScript = \"https://tofino.activehosted.com/f/embed.php?id=1\";\n\n\t// This function creates a new script tag, sets its source to the provided URL, and appends it to the body of the document\n\tfunction loadScript(url) {\n\t\tconst script = document.createElement(\"script\");\n\t\tscript.type = \"text/javascript\";\n\t\tscript.src = url;\n\t\tdocument.body.appendChild(script);\n\t}\n\n\t// If the current page is the contact page, load the script\n\tif (window.location.href.endsWith(\"/contact/\")) {\n\t\tloadScript(messageFormScript);\n\t}\n\n\t// Select all elements with the attr \"[newsletter_show_modal]\"\n\tconst newsletterButtons = document.querySelectorAll(\"[js-newsletter_show_modal]\");\n\t// For each selected element, add a click event listener\n\tnewsletterButtons.forEach((button) => {\n\t\tbutton.addEventListener(\"click\", function () {\n\t\t\t// When the button is clicked, load the script\n\t\t\tloadScript(newsletterOptScript);\n\t\t});\n\t});\n}\n","export function sortLinksAlphaAsc() {\n\tconst linksContainer = document.querySelector(\"[js-sort-links-asc]\");\n\tif (linksContainer) sortLinks(linksContainer);\n}\n\nfunction sortLinks(linksContainer) {\n\tlet links = Array.from(linksContainer.querySelectorAll(\"a\"));\n\tlinks.sort((a, b) => a.textContent.localeCompare(b.textContent));\n\tlinksContainer.innerHTML = \"\";\n\tlinks.forEach((link) => linksContainer.appendChild(link));\n}\n","export function mobileNav() {\n\t// ------------------------------------------------------\n\t// Mobile Nav, main container class changes\n\t// ------------------------------------------------------\n\n\t// Guard against screens larger than 768px\n\tif (window.matchMedia(\"(min-width: 768px)\").matches) return;\n\n\t// Select\n\tconst buttonClose = document.querySelector(\"[js-nav-mobile-close]\");\n\tconst nav = document.querySelector(\"[js-nav-mobile]\");\n\tconst container = document.querySelector(\"[js-container]\");\n\n\t// Check\n\tif (!container || !nav || !buttonClose) return;\n\n\t// Handle\n\tbuttonClose.addEventListener(\"click\", () => {\n\t\tnav.classList.toggle(\"show\");\n\t\tcontainer.classList.toggle(\"show\");\n\t});\n\n\t// ------------------------------------------------------\n\t// Hamburger button css class changes based on logo position\n\t// ------------------------------------------------------\n\n\t// Select\n\tconst logo = document.querySelector(\"[js-logo-watch]\");\n\tconst hamburger = buttonClose;\n\n\t// Check\n\tif (!logo) return;\n\n\tlet observer = new IntersectionObserver(\n\t\t(entries) => {\n\t\t\tentries.forEach((entry) => {\n\t\t\t\tif (!entry.isIntersecting) {\n\t\t\t\t\thamburger.classList.add(\"bg-dark\");\n\t\t\t\t} else {\n\t\t\t\t\thamburger.classList.remove(\"bg-dark\");\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\t{ rootMargin: \"250px\", threshold: 0.1 }\n\t);\n\n\tobserver.observe(logo);\n}\n","export function show_hide_page_intro_text() {\n\tvar content = document.querySelector(\"[js-show-hide-text-for-mobile]\");\n\tvar button = document.querySelector(\"[js-toggle-read-more]\");\n\n\tif (!content || !button) return;\n\n\tbutton.addEventListener(\"click\", function () {\n\t\tif (content.style.maxHeight) {\n\t\t\tcontent.style.maxHeight = null;\n\t\t\tbutton.textContent = \"Read More\";\n\t\t} else {\n\t\t\tcontent.style.maxHeight = content.scrollHeight + \"px\";\n\t\t\tbutton.textContent = \"Read Less\";\n\t\t}\n\t});\n}\n","import { modernizeEnso } from \"../../components/enso/script.js\";\nimport { cleanup_img_tags } from \"./utility.js\";\nimport { initActiveCampaignScript } from \"../../components/cta-newsletter/script.js\";\nimport { setActiveForNavLinks } from \"./utility.js\";\nimport { sortLinksAlphaAsc } from \"../../components/nav-sidebar/script.js\";\nimport { mobileNav } from \"../../components/nav-mobile/script.js\";\nimport { show_hide_page_intro_text } from \"../../components/page-intro/script.js\";\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n\ttry {\n\t\tmodernizeEnso();\n\t} catch (error) {\n\t\tconsole.error(\"Error running modernizeEnso:\", error);\n\t}\n\n\ttry {\n\t\tcleanup_img_tags();\n\t} catch (error) {\n\t\tconsole.error(\"Error running cleanup_img_tags:\", error);\n\t}\n\n\ttry {\n\t\tsetActiveForNavLinks();\n\t} catch (error) {\n\t\tconsole.error(\"Error running setActiveForNavLinks:\", error);\n\t}\n\n\ttry {\n\t\tmobileNav();\n\t} catch (error) {\n\t\tconsole.error(\"Error running mobileNav:\", error);\n\t}\n\n\ttry {\n\t\tinitActiveCampaignScript();\n\t} catch (error) {\n\t\tconsole.error(\"Error initActiveCampaignScript:\", error);\n\t}\n\n\ttry {\n\t\tsortLinksAlphaAsc();\n\t} catch (error) {\n\t\tconsole.error(\"Error sortLinksAlphaAsc:\", error);\n\t}\n\n\ttry {\n\t\tshow_hide_page_intro_text();\n\t} catch (error) {\n\t\tconsole.error(\"Error sortLinksAlphaAsc:\", error);\n\t}\n});\n"],"names":[],"mappings":"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"}