{"version":3,"names":["$","window","jQuery","alertPopup","length","prepend","addClass","localStorage","getItem","removeClass","on","toggleClass","setItem","document","hero_slider","gutenslider","swiperInstance","instance","activeSlide","slides","activeIndex","find","swiper","$el","Custom_GS","_init","is_reinit","undefined","sliders","querySelectorAll","forEach","elem","index","hasClass","allowTouchMove","pagination","bullets","each","i","el","innerHTML","setTimeout","gutenSlider","swiperSettings","direction","destroy","initSwiper","Accordion","constructor","this","summary","querySelector","content","animation","isClosing","isExpanding","addEventListener","e","onClick","preventDefault","style","overflow","open","shrink","startHeight","offsetHeight","endHeight","cancel","animate","height","duration","easing","onfinish","onAnimationFinish","oncancel","requestAnimationFrame","expand","accordion_hash_handler","$accordions","$hash","location","hash","anchor","siblings","removeAttr","attr","$offset","offset","top","scrollTop","imgAltAttr","gallery_block_extensions","mfp_gallery_block","mfp_image_block","magnificPopup","delegate","type","zoom","enabled","gallery","image","titleSrc","item","next","clone","css","delegateTarget","click","pie_chart_handler","chartInstance","chartData","chartElement","chartType","_get_chart_data","labels","datasets","label","data","backgroundColor","hoverOffset","_initiate_chart","Chart","options","plugins","legend","display","tooltip","callbacks","context","parsed","y","id","getElementById","getContext","IntersectionObserver","entries","entry","threshold"],"sources":["../../source/js/misc/nu-globals.js","../../source/js/blocks/gutenslider.js","../../vendor/js/waapi-animate-details.js","../../source/js/blocks/accordion.js","../../source/js/blocks/image-and-gallery.js","../../source/js/misc/_experimental.js","../../source/js/main.js"],"sourcesContent":["(function ($, window, document) {\n\t/**\n\t * ... code out here will run immediately on load\n\t */\n\n\t/**\n\t *\n\t * ... code in here will run after jQuery says document is ready\n\t */\n\t$(function () {\n\t\t//\n\t\tlet alertPopup = $(\"#nu__alerts\");\n\t\tif (alertPopup.length) {\n\t\t\talertPopup.prepend(\n\t\t\t\t''\n\t\t\t);\n\t\t\talertPopup.addClass(\"is-open\");\n\t\t\tif (localStorage.getItem(\"alert-dismissed\")) {\n\t\t\t\talertPopup.removeClass(\"is-open\");\n\t\t\t}\n\t\t\t$(alertPopup).on(\"click\", \".toggle-alert\", function () {\n\t\t\t\talertPopup.toggleClass(\"is-open\");\n\t\t\t\tlocalStorage.setItem(\"alert-dismissed\", true);\n\t\t\t});\n\t\t}\n\t\t//\n\t\t//\n\t\t//\n\t\t//\n\t\t// $(\"#nu__cookiewarning\").on(\"click\", \"button.cookies-accept\", function (e) {\n\t\t// \tlocalStorage.setItem(\"acceptCookies\", \"true\");\n\t\t// \t$(\"#nu__cookiewarning\").remove();\n\t\t// });\n\n\t\t//\n\t\t//\n\t\t//\n\t\t//\n\t\t// $(\"#nu__cookiewarning\").on(\"click\", \"span.closeicon\", function (e) {\n\t\t// \t$(\"#nu__cookiewarning\").remove();\n\t\t// });\n\n\t\t//\n\t\t//\n\t\t// //\n\t\t// if (localStorage.getItem(\"acceptCookies\") !== \"true\") {\n\t\t// \t$(\"#nu__cookiewarning\").show().css(\"display\", \"flex\");\n\t\t// } else {\n\t\t// \t$(\"#nu__cookiewarning\").remove();\n\t\t// }\n\n\t\t//\n\t});\n})(window.jQuery, window, document);\n","(function ($, window, document) {\n\t/**\n\t * ... code out here will run immediately on load\n\t */\n\tconst debounce = function (func, delay) {\n\t\tlet timer;\n\t\treturn function () {\n\t\t\t//anonymous function\n\t\t\tconst context = this;\n\t\t\tconst args = arguments;\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tfunc.apply(context, args);\n\t\t\t}, delay);\n\t\t};\n\t};\n\tconst throttle = (func, limit) => {\n\t\tlet inThrottle;\n\t\treturn function () {\n\t\t\tconst args = arguments;\n\t\t\tconst context = this;\n\t\t\tif (!inThrottle) {\n\t\t\t\tfunc.apply(context, args);\n\t\t\t\tinThrottle = true;\n\t\t\t\tsetTimeout(() => (inThrottle = false), limit);\n\t\t\t}\n\t\t};\n\t};\n\t/**\n\t *\n\t * ... code in here will run after jQuery says document is ready\n\t */\n\t$(function () {\n\t\tlet hero_slider = $(\n\t\t\t\".is-style-as-hero.wp-block-cover.is-the-pathways-hero-slider .wp-block-eedee-block-gutenslider\"\n\t\t);\n\t\tif (\n\t\t\thero_slider.length != 0 &&\n\t\t\thero_slider[0].gutenslider.swiperInstance.length != 0\n\t\t) {\n\t\t\tlet instance = hero_slider[0].gutenslider.swiperInstance;\n\t\t\tlet activeSlide = instance.slides[instance.activeIndex];\n\n\t\t\t$(activeSlide)\n\t\t\t\t.find(\"h1 ~ .wp-block-group\")\n\t\t\t\t.addClass(\"is-transitioned-into-view\");\n\n\t\t\tinstance.on(\"slideChangeTransitionStart\", function (swiper) {\n\t\t\t\tlet activeSlide = swiper.slides[swiper.activeIndex];\n\n\t\t\t\t$(swiper.$el)\n\t\t\t\t\t.find(\".is-transitioned-into-view\")\n\t\t\t\t\t.removeClass(\"is-transitioned-into-view\");\n\t\t\t});\n\t\t\tinstance.on(\"transitionEnd\", function (swiper) {\n\t\t\t\tlet activeSlide = swiper.slides[swiper.activeIndex];\n\t\t\t\t$(activeSlide)\n\t\t\t\t\t.find(\"h1 ~ .wp-block-group\")\n\t\t\t\t\t.addClass(\"is-transitioned-into-view\");\n\t\t\t});\n\t\t}\n\n\t\tlet Custom_GS = {\n\t\t\t_init: function (is_reinit = undefined) {\n\t\t\t\tlet sliders = document.querySelectorAll(\n\t\t\t\t\t\".wp-block-eedee-block-gutenslider\"\n\t\t\t\t);\n\t\t\t\tif (!sliders.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsliders.forEach((elem, index) => {\n\t\t\t\t\t//\n\t\t\t\t\t//\n\t\t\t\t\t//\n\t\t\t\t\tif ($(elem).hasClass(\"patterns--sliders--red-buttons\")) {\n\t\t\t\t\t\tlet instance = $(elem)[0].gutenslider.swiperInstance;\n\t\t\t\t\t\t// ? disable touchmove\n\t\t\t\t\t\tinstance.allowTouchMove = false;\n\t\t\t\t\t\t// ? add the dots\n\t\t\t\t\t\tlet $bullets = instance.pagination.$el[0];\n\t\t\t\t\t\t$(instance.pagination.bullets).each(function (i, el) {\n\t\t\t\t\t\t\tel.innerHTML = i + 1;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tinstance.on(\"destroy\", function () {\n\t\t\t\t\t\t\t// ? re-init this whole function to re-normalize after a breakpoint or another reason this was destroyed\n\t\t\t\t\t\t\t// ? the timeout is kinda hacky... but idk how else to fix this right now\n\t\t\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\t\tCustom_GS._init((is_reinit = true));\n\t\t\t\t\t\t\t}, 16);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t//\n\t\t\t\t\t//\n\t\t\t\t\t//\n\t\t\t\t\tif ($(elem).hasClass(\"is-style-vertical\")) {\n\t\t\t\t\t\tlet gutenSlider = $(elem)[0].gutenslider;\n\t\t\t\t\t\tlet swiperInstance = gutenSlider.swiperInstance;\n\t\t\t\t\t\tlet swiperSettings = gutenSlider.swiperSettings;\n\t\t\t\t\t\tswiperSettings.direction = \"vertical\";\n\t\t\t\t\t\tgutenSlider.destroy();\n\t\t\t\t\t\tconst newSwiper = gutenSlider.initSwiper(swiperSettings);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t},\n\t\t};\n\t\tCustom_GS._init();\n\t});\n})(window.jQuery, window, document);\n","class Accordion {\n constructor(el) {\n // Store the
element\n this.el = el;\n // Store the element\n this.summary = el.querySelector('summary');\n // Store the
element\n this.content = el.querySelector('.content');\n\n // Store the animation object (so we can cancel it if needed)\n this.animation = null;\n // Store if the element is closing\n this.isClosing = false;\n // Store if the element is expanding\n this.isExpanding = false;\n // Detect user clicks on the summary element\n this.summary.addEventListener('click', (e) => this.onClick(e));\n }\n\n onClick(e) {\n // Stop default behaviour from the browser\n e.preventDefault();\n // Add an overflow on the
to avoid content overflowing\n this.el.style.overflow = 'hidden';\n // Check if the element is being closed or is already closed\n if (this.isClosing || !this.el.open) {\n this.open();\n // Check if the element is being openned or is already open\n } else if (this.isExpanding || this.el.open) {\n this.shrink();\n }\n }\n\n shrink() {\n // Set the element as \"being closed\"\n this.isClosing = true;\n \n // Store the current height of the element\n const startHeight = `${this.el.offsetHeight}px`;\n // Calculate the height of the summary\n const endHeight = `${this.summary.offsetHeight}px`;\n \n // If there is already an animation running\n if (this.animation) {\n // Cancel the current animation\n this.animation.cancel();\n }\n \n // Start a WAAPI animation\n this.animation = this.el.animate({\n // Set the keyframes from the startHeight to endHeight\n height: [startHeight, endHeight]\n }, {\n duration: 300,\n easing: 'ease-in-out'\n });\n \n // When the animation is complete, call onAnimationFinish()\n this.animation.onfinish = () => this.onAnimationFinish(false);\n // If the animation is cancelled, isClosing variable is set to false\n this.animation.oncancel = () => this.isClosing = false;\n }\n\n open() {\n // Apply a fixed height on the element\n this.el.style.height = `${this.el.offsetHeight}px`;\n // Force the [open] attribute on the details element\n this.el.open = true;\n // Wait for the next frame to call the expand function\n window.requestAnimationFrame(() => this.expand());\n }\n\n expand() {\n // Set the element as \"being expanding\"\n this.isExpanding = true;\n // Get the current fixed height of the element\n const startHeight = `${this.el.offsetHeight}px`;\n // Calculate the open height of the element (summary height + content height)\n const endHeight = `${this.summary.offsetHeight + this.content.offsetHeight}px`;\n \n // If there is already an animation running\n if (this.animation) {\n // Cancel the current animation\n this.animation.cancel();\n }\n \n // Start a WAAPI animation\n this.animation = this.el.animate({\n // Set the keyframes from the startHeight to endHeight\n height: [startHeight, endHeight]\n }, {\n duration: 300,\n easing: 'ease-in-out'\n });\n // When the animation is complete, call onAnimationFinish()\n this.animation.onfinish = () => this.onAnimationFinish(true);\n // If the animation is cancelled, isExpanding variable is set to false\n this.animation.oncancel = () => this.isExpanding = false;\n }\n\n onAnimationFinish(open) {\n // Set the open attribute based on the parameter\n this.el.open = open;\n // Clear the stored animation\n this.animation = null;\n // Reset isClosing & isExpanding\n this.isClosing = false;\n this.isExpanding = false;\n // Remove the overflow hidden and the fixed height\n this.el.style.height = this.el.style.overflow = '';\n }\n}\n\ndocument.querySelectorAll('.wp-block-nu-blocks-accordion-item details').forEach((el) => {\n new Accordion(el);\n});\n\n","import \"../../../vendor/js/waapi-animate-details\";\n(function ($, window, document) {\n\t/**\n\t *\n\t * ... code in here will run after jQuery says document is ready\n\t */\n\t$(function () {\n\t\t// * Function to automatically open an accordion if a hash is in the URL\n\t\tlet accordion_hash_handler = {\n\t\t\t_init: function () {\n\t\t\t\t// check for accordions\n\t\t\t\tlet $accordions = $(\".wp-block-nu-blocks-accordion\");\n\n\t\t\t\t// check for hash value\n\t\t\t\tlet $hash = window.location.hash;\n\n\t\t\t\t// bail early\n\t\t\t\tif ($accordions.length == 0 || $hash.length == 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// * Get the accordion item with the hash above\n\t\t\t\tlet anchor = $(\".wp-block-nu-blocks-accordion-item\" + $hash);\n\n\t\t\t\t// * Exit the function if there is no accordion item with this hash\n\t\t\t\tif (anchor.length == 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// * Otherwise click open the element's summary with this hash\n\t\t\t\t$(anchor).siblings().find(\"details\").removeAttr(\"open\");\n\t\t\t\t$(anchor).find(\"details\").attr(\"open\", \"open\");\n\n\t\t\t\tlet $offset =\n\t\t\t\t\t$(anchor).find(\"details\").offset().top - $(\"header\").height();\n\t\t\t\t$(window).scrollTop($offset);\n\t\t\t},\n\t\t};\n\n\t\t$(window).on(\"hashchange load\", function () {\n\t\t\taccordion_hash_handler._init();\n\t\t});\n\t});\n})(window.jQuery, window, document);\n","(function ($, window, document) {\n\t/**\n\t * ... code out here will run immediately on load\n\t */\n\n\t/**\n\t *\n\t * ... code in here will run after jQuery says document is ready\n\t */\n\t$(function () {\n\t\t//\n\n\t\tlet gallery_block_extensions = {\n\t\t\t//\n\t\t\t_init: function () {\n\t\t\t\t//\n\t\t\t\tconst $galleries = $(\".wp-block-gallery\");\n\t\t\t\t//\n\t\t\t\tconst $images = $(\".wp-block-gallery .wp-block-image\");\n\n\t\t\t\t//\n\t\t\t\t$images.each(function () {\n\t\t\t\t\t//\n\t\t\t\t\tvar imgAltAttr = $(this).find(\"img\").attr(\"alt\"); // we are using the alt-text because the title isnt working properly in our release\n\n\t\t\t\t\tif (imgAltAttr) {\n\t\t\t\t\t\t$(this)\n\t\t\t\t\t\t\t.find(\"figcaption\")\n\t\t\t\t\t\t\t.prepend(\n\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\timgAltAttr +\n\t\t\t\t\t\t\t\t\t\"
\"\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\n\t\tgallery_block_extensions._init();\n\n\t\t//\n\t\tconst mfp_gallery_block = $(\".wp-block-gallery.js__magnific\");\n\t\t//\n\t\tconst mfp_image_block = $(\n\t\t\t\".wp-block-image:not(.wp-block-gallery .wp-block-image).js__magnific:not(.video)\"\n\t\t);\n\t\tconst mfp_video_block = $(\n\t\t\t\".wp-block-image:not(.wp-block-gallery .wp-block-image).js__magnific.video\"\n\t\t);\n\n\t\tmfp_video_block.each(function () {\n\t\t\t$(this).magnificPopup({\n\t\t\t\tdelegate: \"a\",\n\t\t\t\ttype: \"iframe\",\n\t\t\t});\n\t\t});\n\n\t\t//\n\t\t//\n\t\tmfp_image_block.each(function () {\n\t\t\t$(this).magnificPopup({\n\t\t\t\tdelegate: \"a\",\n\t\t\t\ttype: \"image\",\n\t\t\t});\n\t\t});\n\n\t\tmfp_gallery_block.each(function () {\n\t\t\t// the containers for all your galleries\n\t\t\t$(this).magnificPopup({\n\t\t\t\tdelegate: \":not(.is-hidden) a\", // the selector for gallery item\n\t\t\t\ttype: \"image\",\n\t\t\t\tzoom: {\n\t\t\t\t\tenabled: true, // By default it's false, so don't forget to enable it\n\t\t\t\t\tduration: 300, // duration of the effect, in milliseconds\n\t\t\t\t\teasing: \"ease-in-out\", // CSS transition easing function\n\t\t\t\t},\n\t\t\t\tgallery: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t\timage: {\n\t\t\t\t\ttitleSrc: function (item) {\n\t\t\t\t\t\t// clone the entire .wp-element-caption element (including the container)\n\t\t\t\t\t\tlet value = item.el.next(\".wp-element-caption\").clone();\n\t\t\t\t\t\t// return the full caption, including the class, container and the styling\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\t//\n\t});\n})(window.jQuery, window, document);\n","(function ($, window, document) {\n\t/**\n\t * ... code out here will run immediately on load\n\t */\n\n\tconst debounce = function (func, delay) {\n\t\tlet timer;\n\t\treturn function () {\n\t\t\t//anonymous function\n\t\t\tconst context = this;\n\t\t\tconst args = arguments;\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tfunc.apply(context, args);\n\t\t\t}, delay);\n\t\t};\n\t};\n\tconst throttle = (func, limit) => {\n\t\tlet inThrottle;\n\t\treturn function () {\n\t\t\tconst args = arguments;\n\t\t\tconst context = this;\n\t\t\tif (!inThrottle) {\n\t\t\t\tfunc.apply(context, args);\n\t\t\t\tinThrottle = true;\n\t\t\t\tsetTimeout(() => (inThrottle = false), limit);\n\t\t\t}\n\t\t};\n\t};\n\t/**\n\t *\n\t * ... code in here will run after jQuery says document is ready\n\t */\n\t$(function () {\n\t\t//\n\t\tif ($(\".page-sidebar-container\").length != 0) {\n\t\t\tconst sidebarWidth = $(\"body\").css(\"--sidebar--width\");\n\t\t\t$(\".page-sidebar-container\").on(\n\t\t\t\t\"click\",\n\t\t\t\t\".page-sidebar-toggle\",\n\t\t\t\tfunction (e) {\n\t\t\t\t\t$(e.delegateTarget).toggleClass(\"is-tucked-away\");\n\t\t\t\t\t$(\"body\").toggleClass(\"page-sidebar-is-tucked-away\");\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif ($(\".jump-nav a\").length) {\n\t\t\t$(\".jump-nav a\").click(function () {\n\t\t\t\t$(\".jump-nav a.active\").removeClass(\"active\");\n\t\t\t\t$(this).addClass(\"active\");\n\t\t\t});\n\t\t}\n\n\t\tlet pie_chart_handler = {\n\t\t\tchartInstance: null,\n\t\t\tchartData: {},\n\t\t\tchartElement: undefined,\n\t\t\tchartType: \"doughnut\",\n\t\t\t//\n\t\t\t\n\t\t\t//\n\t\t\t//\n\t\t\t_get_chart_data: function () {\n\t\t\t\t//\n\t\t\t\tlet data = {\n\t\t\t\t\tlabels: [\n\t\t\t\t\t\t\"Black Neutral U\",\n\t\t\t\t\t\t\"White\",\n\t\t\t\t\t\t\"Warm Grey 1 U\",\n\t\t\t\t\t\t\"Warm Grey 42 U\",\n\t\t\t\t\t\t\"405 U\",\n\t\t\t\t\t\t\"NU red\",\n\t\t\t\t\t\t\"Blue 2188 U\",\n\t\t\t\t\t\t\"Blue 631 U\",\n\t\t\t\t\t\t\"Green 001\",\n\t\t\t\t\t\t\"Green 003\",\n\t\t\t\t\t\t\"Yellow 7549 U\",\n\t\t\t\t\t\t\"Yellow 2004 U\",\n\t\t\t\t\t],\n\t\t\t\t\tdatasets: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: \"NU Brand Colors\",\n\t\t\t\t\t\t\tdata: [31, 31, 9, 9, 9, 2, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5],\n\t\t\t\t\t\t\tbackgroundColor: [\n\t\t\t\t\t\t\t\t\"#000000\",\n\t\t\t\t\t\t\t\t\"#FFFFFF\",\n\t\t\t\t\t\t\t\t\"#F4F2F0\",\n\t\t\t\t\t\t\t\t\"#D2CDCA\",\n\t\t\t\t\t\t\t\t\"#696158\",\n\t\t\t\t\t\t\t\t\"#C8102E\",\n\t\t\t\t\t\t\t\t\"#0C3354\",\n\t\t\t\t\t\t\t\t\"#62B6D0\",\n\t\t\t\t\t\t\t\t\"#609F80\",\n\t\t\t\t\t\t\t\t\"#BDE9C9\",\n\t\t\t\t\t\t\t\t\"#FFB838\",\n\t\t\t\t\t\t\t\t\"#FFD580\",\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\thoverOffset: 4,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t};\n\n\t\t\t\treturn data;\n\t\t\t},\n\n\t\t\t//\n\t\t\t//\n\t\t\t//\n\t\t\t_initiate_chart: function () {\n\t\t\t\t// pull chart object from window (custom HTML block passed in link to CDN)\n\t\t\t\tconst Chart = window.Chart;\n\n\t\t\t\t// run the chart now; but only once...\n\t\t\t\tnew Chart(this.chartElement, {\n\t\t\t\t\ttype: this.chartType,\n\t\t\t\t\tdata: this.chartData,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tanimation: {\n\t\t\t\t\t\t\tduration: 3000,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tplugins: {\n\t\t\t\t\t\t\tlegend: {\n\t\t\t\t\t\t\t\tdisplay: false,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\t\tcallbacks: {\n\t\t\t\t\t\t\t\t\tlabel: function (context) {\n\t\t\t\t\t\t\t\t\t\tlet label = \"\";\n\t\t\t\t\t\t\t\t\t\tif (context.parsed.y !== null) {\n\t\t\t\t\t\t\t\t\t\t\tlabel += context.parsed + \"%\";\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn label;\n\t\t\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\t\t\t},\n\t\t\t//\n\t\t\t_init: function (id) {\n\t\t\t\t// ? bail early...\n\t\t\t\tif (!window.Chart) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ? preparing this for when we may want to feed data in from the CMS\n\t\t\t\tthis.chartData = this._get_chart_data();\n\t\t\t\tthis.chartElement = document.getElementById(id).getContext(\"2d\");\n\t\t\t\tthis.chartType = $(document.getElementById(id)).data(\"chart-type\");\n\n\t\t\t\tthis._initiate_chart();\n\t\t\t\t// ?\n\t\t\t},\n\t\t};\n\n\t\tlet chart_types_as_ids = [\"color-balance-doughnut\", \"color-balance-pie\"];\n\t\tchart_types_as_ids.forEach((id) => {\n\t\t\tpie_chart_handler._init(id);\n\t\t});\n\n\t\t// root is the browser viewport / screen\n\t\tvar observer = new IntersectionObserver(\n\t\t\tfunction (entries) {\n\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\tif (entry[\"intersectionRatio\"] === 1) {\n\t\t\t\t\t\t// console.log(\"More than 50% of target is visible in the screen\");\n\t\t\t\t\t\t// let chartInstance = pie_chart_handler._init();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ threshold: [0, 0.5, 1] }\n\t\t);\n\t\t// observer.observe(document.querySelector(\".pie-chart-container\"));\n\n\t\t//\n\t});\n})(window.jQuery, window, document);\n","// ? cookies and other mandatory global scripting\nimport \"./misc/nu-globals\";\n// ? scrolling animations with GSAP\n// import \"./scrolltrigger\";\n// ? hook into Swiper.JS instances created by Gutenslider\nimport \"./blocks/gutenslider\";\n// ? extensions for the accordion block - working on the block itself is hard!\nimport \"./blocks/accordion\";\n// ? extensions for the tabs block -- (ultimate blocks tabbed content)\n// import \"./blocks/tabs\";\n// ? extensions for the image/gallery blocks including magnific popup hooks\nimport \"./blocks/image-and-gallery\";\n// ? experimental code temporarily held here\nimport \"./misc/_experimental\";\n//\n//\n//\n(function ($, window, document) {\n\t// ? throttling vs. debouncing is that throttle guarantees the execution of the function\n\t// * limits function calls to once per time delay / duration\n\tconst debounce = function (func, delay) {\n\t\tlet timer;\n\t\treturn function () {\n\t\t\t//anonymous function\n\t\t\tconst context = this;\n\t\t\tconst args = arguments;\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tfunc.apply(context, args);\n\t\t\t}, delay);\n\t\t};\n\t};\n\t// * limits function calls to wait until limit / timer\n\tconst throttle = (func, limit) => {\n\t\tlet inThrottle;\n\t\treturn function () {\n\t\t\tconst args = arguments;\n\t\t\tconst context = this;\n\t\t\tif (!inThrottle) {\n\t\t\t\tfunc.apply(context, args);\n\t\t\t\tinThrottle = true;\n\t\t\t\tsetTimeout(() => (inThrottle = false), limit);\n\t\t\t}\n\t\t};\n\t};\n\n\t/**\n\t * mQHandler maps JS event onto our breakpoints nicely.\n\t * use this to fire scripts when we cross over a breakpoint threshold\n\t */\n\tconst mqHandler = {\n\t\t//\n\t\tbreakpoints: {\n\t\t\tphone: \"600px\",\n\t\t\tsmall: \"780px\",\n\t\t\tmedium: \"1024px\",\n\t\t\tlarge: \"1280px\",\n\t\t\txlarge: \"1620px\",\n\t\t\thuge: \"1920px\",\n\t\t},\n\t\t_instance: function () {\n\t\t\t// pass this into the window so other files can access it\n\t\t\treturn (window.mqHandler = mqHandler);\n\t\t},\n\n\t\t_init: function (overFunction = {}, underFunction = {}) {\n\t\t\tfor (const [key, value] of Object.entries(this.breakpoints)) {\n\t\t\t\tlet listener = window.matchMedia(\"(max-width: \" + value + \")\");\n\t\t\t\tlistener.addEventListener(\"change\", (event) => {\n\t\t\t\t\tif (event.matches) {\n\t\t\t\t\t\tif (underFunction._init) {\n\t\t\t\t\t\t\tunderFunction._init(event, key);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (overFunction._init) {\n\t\t\t\t\t\t\toverFunction._init(event, key);\n\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\t\t\t}\n\t\t},\n\t};\n\n\n\t// mqHandler._instance();\n\n\t$(function () {\n\t\t//\n\t\t// ... code in here will run after jQuery says document is ready\n\t\t//\n\t});\n})(window.jQuery, window, document);\n"],"mappings":"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"}