{"version":3,"file":"helpers.8652440f.js","sources":["../../../src/js/modules/helpers.js"],"sourcesContent":["import FetchWrapper from './fetch-wrapper.js';\nconst thisWebsiteAPI = new FetchWrapper(`${window.location.protocol}//${window.location.host}` );\n\nfunction interactionType() {\n\tlet interactionType = 'mouseover';\n\n\tif( window.matchMedia('(hover: hover)') ) { // desktop\n\t\tinteractionType = 'mouseover'; }\n\tif( window.matchMedia('(hover: none) and (pointer: coarse)') ) { // touchscreen\n\t\tinteractionType = 'click'; }\n\tif( window.matchMedia('(hover: none) and (pointer: fine)') ) { // stylus\n\t\tinteractionType = 'click'; }\n\tif( window.matchMedia('(hover: hover) and (pointer: coarse)') ) { // Wii/Kinect/etc\n\t\tinteractionType = 'mouseover'; }\n\tif( window.matchMedia('(hover: hover) and (pointer: fine)') ) { // mouse\n\t\tinteractionType = 'mouseover'; }\n\n\treturn interactionType;\n}\n\n// Add a class \"js-scrolled\" both on scroll and if the page is scrolled on load (e.g, on a refresh)\nfunction windowHasScrolled() {\n\tconst html = document.querySelector('html');\n\n\tif (window.pageYOffset > 0) {\n\t\thtml.classList.add('js-scrolled');\n\t} else {\n\t\thtml.classList.remove('js-scrolled');\n\t}\n}\n\nwindow.addEventListener('scroll', function() {\n\twindowHasScrolled();\n});\n\nwindowHasScrolled();\n\n// Enable animated \"intro\" on blocks\nif(!!window.IntersectionObserver){\n\tdocument.querySelector('html').classList.add('js-supportsIntersectionObserver');\n\n\tlet observer = new IntersectionObserver((watchList, observer) => {\n\t\twatchList.forEach(watchedElement => {\n\t\t\tif(watchedElement.isIntersecting){\n\t\t\t\t// console.log(watchedElement);\n\n\t\t\t\twatchedElement.target.classList.add('js-inViewport');\n\t\t\t\tobserver.unobserve(watchedElement.target);\n\t\t\t}\n\t\t});\n\t}, {rootMargin: \"0px 0px -20% 0px\"});\n\n\tdocument.querySelectorAll('[data-reveal-on-scroll]').forEach(watchTarget => {\n\t\tobserver.observe(watchTarget);\n\t});\n}\n\n// Indicate to users that Sprig forms are doing something when submitted\ndocument.querySelectorAll('form[sprig]').forEach(sprigForm => {\n\tsprigForm.insertAdjacentHTML('beforeend', `\n\t\t\n\t\t\t

Please wait

\n\t\t\t\n\t\t
\n\t`);\n\n\tlet dialog = sprigForm.querySelector('.sprigActionFeedback');\n\n\tdialog.querySelector('button').addEventListener('click', () => {\n\t\tdialog.close();\n\t});\n\n\tsprigForm.addEventListener('submit', () => {\n\t\tdialog.showModal();\n\t});\n});\n\n// popups\ndocument.querySelectorAll('a.popup').forEach( popupLink => {\n\tpopupLink.addEventListener('click', (e) => {\n\t\te.preventDefault();\n\t\tlet clickedLink = e.currentTarget;\n\t\tlet parser = new DOMParser();\n\n\t\tthisWebsiteAPI.getHtml( clickedLink.getAttribute('href') ).then(response => {\n\t\t\tlet responseAsDom = parser.parseFromString( response, \"text/html\" );\n\t\t\tlet imageWeWant = responseAsDom.querySelector('#ajaxcontent').outerHTML;\n\t\t\tlet lightbox = document.querySelector('#lightbox') ?? null;\n\n\t\t\tif( lightbox ) {\n\t\t\t\tdocument.querySelector('#lightbox .content').innerHTML = imageWeWant;\n\t\t\t\tlightbox.showModal();\n\t\t\t} else {\n\t\t\t\tdocument.querySelector('body').insertAdjacentHTML('afterbegin', `\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t${imageWeWant}\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t`);\n\n\t\t\t\tlet lightbox = document.querySelector('#lightbox');\n\t\t\t\tlightbox.showModal();\n\t\t\t}\n\t\t}).catch(error => {\n\t\t\tconsole.error( error );\n\t\t});\n\n\t\tconsole.log( clickedLink );\n\t});\n});\n\n// the client wants to have the sub-menu's open and close on hover. Despite advice against it.\nif( interactionType() == 'mouseover') {\n\t// document.querySelectorAll('#site_navigation .has-children').forEach(subMenu => {\n\t// \tsubMenu.querySelector('button').addEventListener('pointerenter', e => {\n\t// \t\te.currentTarget.click();\n\t// \t});\n\t//\n\t// \tsubMenu.addEventListener('pointerleave', e => {\n\t// \t\te.currentTarget.querySelector('button').click();\n\t// \t});\n\t// });\n}\n\n// auto dismiss the main menu if you click/tap anywhere outside of it when it's open\ndocument.querySelector('main').addEventListener(\"click\", e => {\n\tif( document.querySelector('html').classList.contains('nav-active') ) {\n\t\tdocument.querySelector('#mainNavToggle').click();\n\t}\n});\n"],"names":["thisWebsiteAPI","FetchWrapper","interactionType","windowHasScrolled","html","observer","watchList","watchedElement","watchTarget","sprigForm","dialog","popupLink","e","clickedLink","parser","response","imageWeWant","lightbox","_a","error"],"mappings":"+CACA,MAAMA,EAAiB,IAAIC,EAAa,GAAG,OAAO,SAAS,aAAa,OAAO,SAAS,MAAM,EAE9F,SAASC,GAAkB,CAC1B,IAAIA,EAAkB,YAEtB,OAAI,OAAO,WAAW,gBAAgB,IACrCA,EAAkB,aACf,OAAO,WAAW,qCAAqC,IAC1DA,EAAkB,SACf,OAAO,WAAW,mCAAmC,IACxDA,EAAkB,SACf,OAAO,WAAW,sCAAsC,IAC3DA,EAAkB,aACf,OAAO,WAAW,oCAAoC,IACzDA,EAAkB,aAEZA,CACR,CAGA,SAASC,GAAoB,CAC5B,MAAMC,EAAO,SAAS,cAAc,MAAM,EAEtC,OAAO,YAAc,EACxBA,EAAK,UAAU,IAAI,aAAa,EAEhCA,EAAK,UAAU,OAAO,aAAa,CAErC,CAEA,OAAO,iBAAiB,SAAU,UAAW,CAC5CD,GACD,CAAC,EAEDA,IAGA,GAAK,OAAO,qBAAqB,CAChC,SAAS,cAAc,MAAM,EAAE,UAAU,IAAI,iCAAiC,EAE9E,IAAIE,EAAW,IAAI,qBAAqB,CAACC,EAAWD,IAAa,CAChEC,EAAU,QAAQC,GAAkB,CAChCA,EAAe,iBAGjBA,EAAe,OAAO,UAAU,IAAI,eAAe,EACnDF,EAAS,UAAUE,EAAe,MAAM,EAE5C,CAAG,CACH,EAAI,CAAC,WAAY,kBAAkB,CAAC,EAEnC,SAAS,iBAAiB,yBAAyB,EAAE,QAAQC,GAAe,CAC3EH,EAAS,QAAQG,CAAW,CAC9B,CAAE,CACF,CAGA,SAAS,iBAAiB,aAAa,EAAE,QAAQC,GAAa,CAC7DA,EAAU,mBAAmB,YAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzC,EAED,IAAIC,EAASD,EAAU,cAAc,sBAAsB,EAE3DC,EAAO,cAAc,QAAQ,EAAE,iBAAiB,QAAS,IAAM,CAC9DA,EAAO,MAAK,CACd,CAAE,EAEDD,EAAU,iBAAiB,SAAU,IAAM,CAC1CC,EAAO,UAAS,CAClB,CAAE,CACF,CAAC,EAGD,SAAS,iBAAiB,SAAS,EAAE,QAASC,GAAa,CAC1DA,EAAU,iBAAiB,QAAUC,GAAM,CAC1CA,EAAE,eAAc,EAChB,IAAIC,EAAcD,EAAE,cAChBE,EAAS,IAAI,UAEjBd,EAAe,QAASa,EAAY,aAAa,MAAM,CAAG,EAAC,KAAKE,GAAY,OAE3E,IAAIC,EADgBF,EAAO,gBAAiBC,EAAU,WAAW,EACjC,cAAc,cAAc,EAAE,UAC1DE,GAAWC,EAAA,SAAS,cAAc,WAAW,IAAlC,KAAAA,EAAuC,KAElDD,GACH,SAAS,cAAc,oBAAoB,EAAE,UAAYD,EACzDC,EAAS,UAAS,IAElB,SAAS,cAAc,MAAM,EAAE,mBAAmB,aAAc;AAAA;AAAA;AAAA,SAG3DD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOJ,EAEc,SAAS,cAAc,WAAW,EACxC,UAAS,EAEtB,CAAG,EAAE,MAAMG,GAAS,CACjB,QAAQ,MAAOA,EAClB,CAAG,EAED,QAAQ,IAAKN,EACf,CAAE,CACF,CAAC,EAGGX,EAAe,GAAM,YAazB,SAAS,cAAc,MAAM,EAAE,iBAAiB,QAAS,GAAK,CACzD,SAAS,cAAc,MAAM,EAAE,UAAU,SAAS,YAAY,GACjE,SAAS,cAAc,gBAAgB,EAAE,MAAK,CAEhD,CAAC"}