{"version":3,"sources":["theme.js"],"names":["$","attachEventHandlers","on","e","stopPropagation","zip","val","zipUrl","concat","html","fetch","then","res","json","err","findRepByZip","document","anchorPlacement","AOS","init","disable","window","matchMedia","matches","offset","duration","easing","mirror","delay","jQuery","site","Utility","getFileName","link","splitLink","length","slice","forceDownload","a","createElement","download","filename","href","blob","body","appendChild","click","remove","createSnackbar","msg","getElementById","snackbar","setAttribute","className","innerHTML","replace","copyToClipboard","url","clipboard","writeText","console","log","error","navigator","downloadFile","preventDefault","target","parentElement","split","name","decodeURI","Headers","headers","origin","Origin","mode","response","blobUrl","URL","createObjectURL"],"mappings":"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","file":"theme.min.js","sourcesContent":["(function ($) {\r\n // Utility Functions\r\n\r\n function findRepByZip(zip) {\r\n const zipUrl = `https://httpbin.org/get?&zip=${zip}`;\r\n $(\".js-find-rep-info\").html(\"\");\r\n fetch(zipUrl)\r\n .then((res) => res.json())\r\n .then((data) => $(\".js-find-rep-info\").html(\"Success. Rep info to come.\"))\r\n .catch((err) => $(\".js-find-rep-info\").html(`error: ${err}`));\r\n }\r\n\r\n // Event Handlers\r\n function attachEventHandlers() {\r\n $(\".js-find-rep-zip-btn\").on(\"click\", (e) => {\r\n e.stopPropagation();\r\n findRepByZip($(\".js-find-rep-zip\").val());\r\n });\r\n\r\n $(\".js-get-location-btn\").on(\"click\", (e) => {\r\n e.stopPropagation();\r\n alert(\"todo: hook up to look up service.\");\r\n });\r\n }\r\n\r\n // AOS Initialization\r\n function initializeAOS() {\r\n AOS.init({\r\n //startEvent: \"DOMContentLoaded\", // name of the event dispatched on the document, that AOS should initialize on\r\n //initClassName: \"aos-init\", // class applied after initialization\r\n //animatedClassName: \"aos-animate\", // class applied on animation\r\n //useClassNames: false, // if true, will add content of `data-aos` as classes on scroll\r\n //disableMutationObserver: false, // disables automatic mutations' detections (advanced)\r\n //debounceDelay: 50, // the delay on debounce used while resizing window (advanced)\r\n //throttleDelay: 99, // the delay on throttle used while scrolling the page (advanced)\r\n // Settings that can be overridden on per-element basis, by `data-aos-*` attributes:\r\n disable: () =>\r\n window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches ||\r\n \"phone\",\r\n offset: 120, // offset (in px) from the original trigger point\r\n delay: 0, // values from 0 to 3000, with step 50ms\r\n duration: 600, // values from 0 to 3000, with step 50ms\r\n easing: \"ease-in-out\", // default easing for AOS animations\r\n once: true, // whether animation should happen only once - while scrolling down\r\n mirror: false, // whether elements should animate out while scrolling past them\r\n anchorPlacement: \"top-bottom\", // defines which position of the element regarding to window should trigger the animation\r\n });\r\n }\r\n\r\n // Page Initialization\r\n function initializePage() {\r\n attachEventHandlers();\r\n initializeAOS();\r\n }\r\n\r\n $(document).ready(initializePage);\r\n})(jQuery);\r\n\r\nvar site = site || {};\r\nsite.Utility = (function () {\r\n\r\n\r\n /**\r\n * Copy data to clipboard\r\n * @param {*} url \r\n */\r\n var copyToClipboard = function(url) {\r\n navigator.clipboard.writeText(url).then(\r\n () => {\r\n console.log(\"Copied to clipboard: \" + url);\r\n createSnackbar('Copied to clipboard!');\r\n },\r\n (err) => console.error(\"Could not copy text: \", err)\r\n );\r\n }\r\n\r\n\r\n\r\n /**\r\n * Force download a file - even if it's on another domain\r\n * @param {*} e \r\n */\r\n var downloadFile = function (e) {\r\n e.preventDefault();\r\n\r\n let url = e.target.href != undefined ? e.target.href : e.target.parentElement.href;\r\n let name = decodeURI(getFileName(url).split(\".\")[0]);\r\n\r\n fetch(url, {\r\n headers: new Headers({\r\n Origin: location.origin,\r\n }),\r\n mode: \"cors\",\r\n })\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n let blobUrl = window.URL.createObjectURL(blob);\r\n forceDownload(blobUrl, name);\r\n })\r\n .catch((e) => console.error(e));\r\n };\r\n\r\n var getFileName = function (link) {\r\n let splitLink = link?.split(\"/\");\r\n return splitLink[splitLink.length - 1].slice(0, link.length);\r\n };\r\n\r\n var forceDownload = function (blob, filename) {\r\n var a = document.createElement(\"a\");\r\n a.download = filename;\r\n a.href = blob;\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n }\r\n\r\n\r\n\r\n /**\r\n * Create snackbar (toast)\r\n * https://www.w3schools.com/howto/howto_js_snackbar.asp\r\n */\r\n var createSnackbar = function(msg) {\r\n var snackbar = null;\r\n // Get the snackbar DIV\r\n if(document.getElementById(\"snackbar\") == null) {\r\n snackbar = document.createElement(\"div\");\r\n snackbar.setAttribute(\"id\", \"snackbar\");\r\n document.body.appendChild(snackbar);\r\n } else {\r\n snackbar = document.getElementById(\"snackbar\");\r\n }\r\n \r\n // Add the \"show\" class to DIV\r\n snackbar.className = \"show\";\r\n snackbar.innerHTML = msg;\r\n \r\n // After 3 seconds, remove the show class from DIV\r\n setTimeout(function(){ \r\n snackbar.className = snackbar.className.replace(\"show\", \"\");\r\n snackbar.innerHTML = '';\r\n }, 3000);\r\n }\r\n\r\n\r\nreturn {\r\n copyToClipboard: copyToClipboard,\r\n createSnackbar: createSnackbar,\r\n downloadFile: downloadFile\r\n}\r\n\r\n}());\r\n"]}