{"version":3,"file":"helpers-c2f6bf2e.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-scroll-reveal]').forEach(watchTarget => {\n\t\tobserver.observe(watchTarget);\n\t});\n}\n\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\t\tclickedLink.classList.add('js-loading');\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\tclickedLink.classList.remove('js-loading');\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
\n\t\t\t\t\t\t\t${imageWeWant}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\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\tclickedLink.classList.remove('js-loading');\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"],"names":["thisWebsiteAPI","FetchWrapper","windowHasScrolled","html","observer","watchList","watchedElement","watchTarget","sprigForm","dialog","popupLink","e","clickedLink","parser","response","imageWeWant","lightbox","error"],"mappings":"+CACA,MAAMA,EAAiB,IAAIC,EAAa,GAAG,OAAO,SAAS,aAAa,OAAO,SAAS,MAAM,EAoB9F,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,sBAAsB,EAAE,QAAQC,GAAe,CACxEH,EAAS,QAAQG,CAAW,CAC9B,CAAE,EAMF,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,UACjBD,EAAY,UAAU,IAAI,YAAY,EAEtCZ,EAAe,QAASY,EAAY,aAAa,MAAM,CAAG,EAAC,KAAKE,GAAY,CAE3E,IAAIC,EADgBF,EAAO,gBAAiBC,EAAU,WAAW,EAC/B,cAAc,cAAc,EAAE,UAC5DE,EAAgB,SAAS,cAAc,WAAW,GAAK,KAEvDA,GACH,SAAS,cAAc,oBAAoB,EAAE,UAAYD,EACzDC,EAAS,UAAS,EAClBJ,EAAY,UAAU,OAAO,YAAY,IAEzC,SAAS,cAAc,MAAM,EAAE,mBAAmB,aAAc;AAAA;AAAA;AAAA;AAAA,SAI3DG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOJ,EAEc,SAAS,cAAc,WAAW,EACxC,UAAS,EAClBH,EAAY,UAAU,OAAO,YAAY,EAE7C,CAAG,EAAE,MAAMK,GAAS,CACjB,QAAQ,MAAOA,EAClB,CAAG,EAED,QAAQ,IAAKL,EACf,CAAE,CACF,CAAC"}