{"version":3,"file":"/assets/js/app.min.js","mappings":"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","sources":["webpack://stephenwarrenmd_com/webpack/runtime/chunk loaded","webpack://stephenwarrenmd_com/./src/scripts/components/accordion.js","webpack://stephenwarrenmd_com/./src/scripts/components/awards.js","webpack://stephenwarrenmd_com/./src/scripts/components/main-navigation.js","webpack://stephenwarrenmd_com/./src/scripts/utilities/animations.js","webpack://stephenwarrenmd_com/./src/scripts/utilities/header-scroll.js","webpack://stephenwarrenmd_com/webpack/bootstrap","webpack://stephenwarrenmd_com/webpack/runtime/compat get default export","webpack://stephenwarrenmd_com/webpack/runtime/define property getters","webpack://stephenwarrenmd_com/webpack/runtime/hasOwnProperty shorthand","webpack://stephenwarrenmd_com/webpack/runtime/jsonp chunk loading","webpack://stephenwarrenmd_com/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","function makeInert(element) {\n // renders content non-interactive (meant to prevent tabbing around\n // hidden elements)\n // TODO: keep an eye on w3c validity of this attribute.\n if (element) {\n element.setAttribute('inert', '');\n }\n}\n\nfunction makeInteractive(element) {\n if (element) {\n element.removeAttribute('inert');\n }\n}\n\n// Initialize Accordions\nconst accordions = document.querySelectorAll('.accordion');\n\n// Loop through all accordions on the page\nif (accordions.length > 0) {\n accordions.forEach((accordion, accordionIndex) => {\n const accordionItems = accordion.querySelectorAll('.accordion__item');\n\n // Loop through all items inside each accordion\n if (accordionItems.length > 0) {\n accordionItems.forEach((accordionItem, accordionItemIndex) => {\n const accordionButton = accordionItem.querySelector('.accordion__header > button');\n const accordionPanel = accordionItem.querySelector('.accordion__panel');\n\n if (accordionButton && accordionPanel) {\n // Initializing item expanded state\n let accordionItemIsExpanded = false;\n\n // Setting ids that will correlate content panels and corresponding triggers\n accordionButton.id = `accordion__trigger-${accordionIndex}-${accordionItemIndex}`;\n accordionPanel.id = `accordion__panel-${accordionIndex}-${accordionItemIndex}`;\n // Setting accessibility attributes\n accordionButton.setAttribute('aria-controls', accordionPanel.id);\n accordionPanel.setAttribute('aria-labelledby', accordionButton.id);\n makeInert(accordionPanel);\n\n // Accordion item toggle interaction\n accordionButton.addEventListener('click', () => {\n const accordionContent = accordionItem.querySelector('.accordion__content');\n const accordionContentHeight = accordionContent.offsetHeight;\n // Set panel height to equal content height\n accordionPanel.style.height = `${accordionContentHeight}px`;\n\n if (!accordionItemIsExpanded) {\n // Expand item\n accordionItemIsExpanded = true;\n accordionButton.setAttribute('aria-expanded', 'true'); // html attribute value hence string type\n makeInteractive(accordionPanel);\n accordionPanel.removeAttribute('aria-hidden');\n // Change item state to 'expanding' (starting transition)\n accordionItem.classList.add('accordion__item--expanding');\n // When height transition is over\n accordionPanel.ontransitionend = (event) => {\n if (accordionItemIsExpanded && event.propertyName == 'height') {\n // Change item state from 'expanding' to 'expanded\n accordionItem.classList.remove('accordion__item--expanding');\n accordionPanel.removeAttribute('style');\n accordionItem.classList.add('accordion__item--expanded');\n }\n };\n } else {\n // Collapse item\n accordionItemIsExpanded = false;\n accordionButton.setAttribute('aria-expanded', 'false'); // html attribute value hence string type\n accordionPanel.setAttribute('inert', '');\n accordionPanel.setAttribute('aria-hidden', 'true'); // html attribute value hence string type\n // Timer is needed to re-trigger animation after panel height is set to content height and then back to 0\n setTimeout(() => {\n accordionPanel.removeAttribute('style');\n accordionItem.classList.remove('accordion__item--expanded');\n }, 50);\n }\n });\n }\n });\n }\n });\n}","var seeMore = function () {\n document.querySelectorAll('.awards__btn .c-btn').forEach(function (element) {\n element.addEventListener('click', function (ev) {\n ev.preventDefault();\n var el = ev.currentTarget,\n elParentNode = el.closest('.awards');\n elParentNode.querySelector('.awards__list ul.hide').style.display = 'flex';\n var gradientElement = elParentNode.querySelector('.awards__list.gradient');\n if (gradientElement) {\n gradientElement.classList.remove('gradient');\n }\n el.style.display = 'none';\n });\n });\n};\n\nseeMore();\n\n// Publications button\nvar button = document.querySelector('.publications--seeMore');\nvar list = document.querySelector('.publications__list .hide');\n\nif (button) {\n button.addEventListener('click', function(event) {\n event.preventDefault();\n list.style.display = 'block';\n button.style.visibility = 'hidden';\n\n // var scrollToOptions = {\n // top: window.scrollY + 350,\n // behavior: 'smooth'\n // };\n // window.scrollTo(scrollToOptions);\n });\n}\n","document.addEventListener(\"DOMContentLoaded\", () => {\n const mobileBreakpoint = 960;\n const body = document.querySelector('body');\n const nav = document.querySelector('.main-navigation');\n nav.classList.remove('hide');\n const menuToggle = document.querySelector('.menu-toggle');\n const topLevelItems = nav.querySelectorAll('.main-navigation__nav > li'); // nav items with subnav\n const ddItems = nav.querySelectorAll('.main-navigation__nav > li.has-submenu'); // nav items with subnav\n const subItems = nav.querySelectorAll('.submenu--first-level > ul > li.has-submenu');\n \n // open/close main nav\n function toggleNav() {\n menuToggle.classList.toggle('active');\n nav.classList.toggle('active');\n body.classList.toggle('scroll-lock');\n body.classList.toggle('nav-active');\n\n // reset css classes after closing the nav\n if( !nav.classList.contains('active') ) {\n resetAllClasses();\n }\n }\n\n // open/close main nav button\n menuToggle.addEventListener('click', () => {\n toggleNav();\n });\n\n // add toggle btn on mobile only\n function appendMobileToggleBtn() {\n if(ddItems) {\n ddItems.forEach( (item) => {\n let firstLevel = item.querySelector('.submenu--first-level');\n // lets add a span to the top-level items to act as a toggle button\n let navItem = item.querySelector('a:first-of-type');\n navItem.innerHTML = navItem.textContent + '';\n // toggle (open/close) first level dropdown function\n let btnToggleDropdown = navItem.querySelector('.btn-mobile-toggle');\n btnToggleDropdown.addEventListener('click', (e)=> {\n e.preventDefault();\n navItem.classList.toggle('active');\n firstLevel.classList.toggle('show');\n });\n });\n }\n }\n\n // function to clone submenu for mobile\n function cloneSubMenu() {\n // kill the function so it only runs once\n cloneSubMenu = function(){};\n \n if(subItems) {\n subItems.forEach( (item) => {\n let itemID = item.getAttribute('data-submenu');\n // get second level menu\n let parentItem = item.closest('.submenu-container');\n let secondLevel = parentItem.querySelector('.submenu--second-level[data-submenu-id=\"'+itemID+'\"]');\n // clone second level menu\n let clone = secondLevel.cloneNode(true);\n // add mobile class to distinguish from original\n clone.classList.add('mobile');\n // paste clone into the the list item for mobile markup\n item.append(clone);\n });\n }\n }\n\n // close nav using Escape key\n document.addEventListener('keydown', function(event) {\n if (event.key == 'Escape' && menuToggle.classList.contains('active')) {\n toggleNav();\n }\n });\n\n function resetAllClasses() {\n let elementClasses = nav.querySelectorAll('.show, .hide, .active');\n\n // .show\n if( elementClasses ) {\n elementClasses.forEach( (cssClass) => {\n cssClass.classList.remove('hide');\n cssClass.classList.remove('show');\n cssClass.classList.remove('active');\n });\n }\n }\n\n // handle responsive media queries to check if we are on desktop or mobile based on the mobileBreakpoint variable\n function navHandleMQ(matches) {\n if (matches) {\n // media query matches (MOBILE)\n nav.classList.remove('is-desktop');\n nav.classList.add('is-mobile');\n appendMobileToggleBtn();\n cloneSubMenu();\n resetAllClasses();\n } else {\n // media query does not match (DESKTOP)\n nav.classList.remove('is-mobile');\n nav.classList.add('is-desktop');\n resetAllClasses();\n }\n\n }\n const query = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`);\n query.addEventListener(\"change\", ({ matches }) => navHandleMQ(matches));\n navHandleMQ(query.matches);\n\n // dropdown & subnavs\n if(ddItems) {\n ddItems.forEach( (item) => {\n let firstLevel = item.querySelector('.submenu-container > div.submenu--first-level');\n let btnNext = item.querySelectorAll('.submenu--first-level ul li.has-submenu button');\n let btnBack = item.querySelectorAll('.submenu--second-level button.submenu__btn--back');\n \n // next buttons\n if( btnNext ) {\n btnNext.forEach( (btn) => {\n btn.addEventListener('click', ()=> {\n let clickedItem = btn.parentNode;\n let targetMenuID = clickedItem.getAttribute('data-submenu');\n\n // hide first level submenu on desktop only\n if( nav.classList.contains('is-desktop') ) {\n let firstLevel = item.querySelector('.submenu--first-level');\n firstLevel.classList.add('hide');\n \n // open second level submenu\n let secondLevel = item.querySelector('.submenu-container > div.submenu--second-level[data-submenu-id=\"'+targetMenuID+'\"]');\n secondLevel.classList.add('show');\n }\n\n // add active class for mobile arrow rotation animation\n if( nav.classList.contains('is-mobile') ) {\n btn.classList.toggle('active');\n \n // open second level submenu\n let secondLevel = btn.nextElementSibling;\n secondLevel.classList.toggle('show');\n }\n });\n });\n }\n\n // back buttons\n if( btnBack ) {\n btnBack.forEach( (btn) => {\n btn.addEventListener('click', ()=> {\n // close second level\n btn.closest('.submenu--second-level').classList.remove('show');\n // re-open first level\n firstLevel.classList.remove('hide');\n });\n });\n }\n\n });\n }\n});","// Animate on scroll\nconst animations = document.querySelectorAll('[data-aos]');\nconst observedClass = 'js-intersection-observed';\nconst observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n const index = Array.from(animations).indexOf(entry.target);\n if (entry.isIntersecting) {\n animations[index].classList.add(observedClass);\n }\n })\n}, {\n threshold: 0\n});\n\n// Start the observer\nanimations.forEach(animation => {\n observer.observe(animation);\n});","// Darken header on scroll\ndocument.addEventListener('scroll', () => {\n const header = document.querySelector('.header');\n\n if (window.scrollY > 0) {\n header.classList.add('is-scroll');\n }\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t775: 0,\n\t943: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkstephenwarrenmd_com\"] = self[\"webpackChunkstephenwarrenmd_com\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [943], () => (__webpack_require__(850)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [943], () => (__webpack_require__(366)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","accordions","document","querySelectorAll","length","forEach","accordion","accordionIndex","accordionItems","accordionItem","accordionItemIndex","element","accordionButton","querySelector","accordionPanel","accordionItemIsExpanded","id","setAttribute","addEventListener","accordionContentHeight","offsetHeight","style","height","setTimeout","removeAttribute","classList","remove","makeInteractive","add","ontransitionend","event","propertyName","ev","preventDefault","el","currentTarget","elParentNode","closest","display","gradientElement","button","list","visibility","body","nav","menuToggle","ddItems","subItems","toggleNav","toggle","contains","resetAllClasses","cloneSubMenu","item","itemID","getAttribute","clone","cloneNode","append","elementClasses","cssClass","navHandleMQ","matches","firstLevel","navItem","innerHTML","textContent","e","key","query","window","matchMedia","btnNext","btnBack","btn","targetMenuID","parentNode","nextElementSibling","animations","observer","IntersectionObserver","entries","entry","index","Array","from","indexOf","target","isIntersecting","threshold","animation","observe","header","scrollY","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","self","bind","push","__webpack_exports__"],"sourceRoot":""}