{"version":3,"file":"./includes/js/scripts.js","mappings":"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","sources":["webpack://knowledge-wharton/./src/js/partials/__kwHelperFunctions.js","webpack://knowledge-wharton/./src/js/partials/_kwMobileMenu.js","webpack://knowledge-wharton/./src/js/partials/_kwMobileSubMenus.js","webpack://knowledge-wharton/./src/js/partials/_kwModal.js","webpack://knowledge-wharton/./src/js/partials/_kwProgressBar.js","webpack://knowledge-wharton/./src/js/partials/_kwScrollTop.js","webpack://knowledge-wharton/./src/js/partials/init.js","webpack://knowledge-wharton/./src/js/partials/vendor/_objectFitPolyfill.basic.js","webpack://knowledge-wharton/./src/js/partials/vendor/init.js","webpack://knowledge-wharton/webpack/bootstrap","webpack://knowledge-wharton/webpack/runtime/compat get default export","webpack://knowledge-wharton/webpack/runtime/define property getters","webpack://knowledge-wharton/webpack/runtime/hasOwnProperty shorthand","webpack://knowledge-wharton/webpack/runtime/make namespace object"],"sourcesContent":["// debounce function for things like limiting function calls on scroll or window resize\nexport const debounce = (delay, fn) => {\n let inDebounce = null;\n\n return (args) => {\n clearTimeout(inDebounce);\n inDebounce = setTimeout(() => fn(args), delay);\n };\n};\n","import { debounce } from './__kwHelperFunctions.js';\n\n// flag for mobile functionality initialized\nlet mobileInit = false;\n\n// function to handle mobile menu functionality\nconst mobileMenuToggle = (currentToggle) => {\n // if scroll position of the document > 0, scroll to top\n if (window.scrollY) {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n\n // toggle flag on body for mobile menu open\n document.body.classList.toggle('mobile-menu-open');\n};\n\n// function for mobile menu toggle\nconst menuToggle = (e) => {\n // prevent action on non-mobile screens\n if (window.innerWidth >= 992) {\n return;\n }\n\n mobileMenuToggle(e.target);\n\n e.preventDefault();\n};\n\n// function for mobile menu toggle listener\nconst menuToggleEvent = () => {\n // toggle mobile menu\n let menuToggles = Array.from(document.querySelectorAll('.menu-toggle'));\n\n menuToggles.forEach((element) => {\n if (!element.getAttribute('data-once')) {\n element.addEventListener('click', menuToggle);\n element.setAttribute('data-once', 'true');\n }\n });\n};\n\n// function to load mobile menu functions\nconst mobileMenu = () => {\n if (window.innerWidth < 992 && !mobileInit) {\n menuToggleEvent();\n\n mobileInit = true;\n }\n\n if (window.innerWidth >= 992) {\n // remove flag on body for mobile menu open\n document.body.classList.remove('mobile-menu-open');\n }\n};\n\n// add event listeners for mobile menu functionality\nmobileMenu();\n\n// listen for window resize events\nwindow.addEventListener('resize', debounce(250, mobileMenu));\n","import { debounce } from './__kwHelperFunctions.js';\n\nconst subMenuOpened = (e) => {\n // remove this event listener so it only gets triggered once\n e.target.removeEventListener('transitionend', subMenuOpened);\n\n // remove \"height\" from the element's inline styles, so it can return to its initial value\n e.target.style.height = null;\n};\n\n// function to manage submenu state on toggle click\n// some of this taken/modified from: https://css-tricks.com/using-css-transitions-auto-dimensions/\nconst subMenuToggle = (e) => {\n if (e) {\n e.preventDefault();\n }\n\n let currentToggle = e.target;\n let currentSubMenu = currentToggle.nextElementSibling\n ? currentToggle.nextElementSibling\n : currentToggle.parentNode.nextElementSibling;\n\n //NOT WORKING REMOVE FOR NOW - 4/1/2022\n // console.log(currentToggle.parentNode.nextElementSibling);\n // if mobile menu first-level submenu\n // if (\n // currentSubMenu.parentNode.parentNode.classList.contains('mobile-menu')\n // ) {\n // // close other open first-level submenus\n // Array.from(\n // document.querySelectorAll(\n // '.mobile-menu > .menu-item-has-children > .submenu-toggle'\n // )\n // ).forEach((element) => {\n // // skip if element is currentToggle\n // if (element !== currentToggle) {\n // element.click();\n // }\n // });\n // }\n\n if (currentSubMenu.classList.contains('submenu-wrapper')) {\n // get height for submenu\n let subMenuHeight = currentSubMenu.scrollHeight;\n\n // expand submenu\n if (!currentSubMenu.classList.contains('open')) {\n // transition the submenu to the height of its inner content\n currentSubMenu.style.height = subMenuHeight + 'px';\n\n // when the next css transition finishes (which we just triggered)\n currentSubMenu.addEventListener('transitionend', subMenuOpened);\n }\n // collapse submenu\n else {\n currentSubMenu.style.height = subMenuHeight + 'px';\n\n // on the next frame (as soon as the previous style change has taken effect), have the element transition to height: 0\n requestAnimationFrame(function () {\n currentSubMenu.style.height = 0 + 'px';\n });\n }\n\n // toggle active state for submenu links\n if (currentToggle.parentNode.classList.contains('menu-item-has-children')) {\n currentSubMenu.parentNode.classList.toggle('submenu-open');\n }\n\n // toggle active state class on toggle button and submenu element\n currentToggle.classList.toggle('toggle-active');\n currentSubMenu.classList.toggle('open');\n }\n};\n\n// add event listeners for submenu toggle buttons\nArray.from(document.getElementsByClassName('submenu-toggle')).forEach(\n (element) => {\n if (!element.getAttribute('data-once')) {\n // toggle submenu active state on hover and focus\n element.addEventListener('click', subMenuToggle);\n element.setAttribute('data-once', 'true');\n }\n }\n);\n\nconst subMenuResize = () => {\n document\n .querySelectorAll('.submenu-wrapper.open')\n .forEach((element) => {\n // transition the submenu to the height of its inner content\n element.style.height =\n element.querySelector('.sub-menu').scrollHeight + 2 + 'px';\n });\n};\n\nwindow.addEventListener('resize', debounce(100, subMenuResize));\n","import { debounce } from './__kwHelperFunctions.js';\n\nlet modal = document.getElementById('kwModal');\n\nif (modal) {\n const modalShow = () => {\n modal.classList.add('active');\n document.documentElement.classList.add('modal-active');\n callPlayer('kw-header-video', 'playVideo');\n };\n\n const modalSidebar = () => {\n if(modal.classList.contains('active') && modal.classList.contains('sidebar') ){\n //if already sidebar then we prob wanna hide\n modalHide();\n return;\n }\n\n // modal.classList.remove('active');\n document.documentElement.classList.remove('modal-active');\n //instead of removing active, lets add the scroll class\n modal.classList.add('sidebar');\n document.documentElement.classList.add('sidebar-active');\n //remove click once \n modalClose.setAttribute('data-once', 'false');\n };\n const modalHide = () => {\n modal.classList.remove('active');\n document.documentElement.classList.remove('modal-active');\n modal.classList.remove('sidebar');\n document.documentElement.classList.remove('sidebar-active');\n callPlayer('kw-header-video', 'stopVideo');\n };\n let modalToggle = document.getElementById('kwModalToggle');\n let modalClose = document.getElementById('kwModalClose');\n\n if (!modalToggle.getAttribute('data-once')) {\n modalToggle.addEventListener('click', modalShow);\n modalToggle.setAttribute('data-once', 'true');\n }\n\n if (!modalClose.getAttribute('data-once')) {\n modalClose.addEventListener('click', modalSidebar);\n modalClose.setAttribute('data-once', 'true');\n }\n\n document.addEventListener('keydown', (e) => {\n let keyCode = e.keyCode;\n\n if (keyCode === 27 && modal.classList.contains('active')) {\n modalSidebar();\n }\n });\n\n document.addEventListener('click', (e) => {\n if (e.target.matches('#kwModal') && modal.classList.contains('active') && !modal.classList.contains('sidebar') ) {\n modalSidebar();\n }\n });\n\n const modalRatio = () => {\n let mWidth = window.innerWidth;\n let mHeight = window.innerHeight;\n let mRatio = mHeight / mWidth;\n\n // aspect ratio of 11/16 = 0.6875 or an inverse of 1.454545455\n if (mRatio < 0.6875) {\n modal.classList.add('modal-landscape');\n modal.classList.remove('modal-pad');\n modal.querySelector('.kw-video-player').style.maxWidth = (mHeight * 1.454545455) + 'px';\n } else {\n modal.classList.remove('modal-landscape');\n modal.classList.add('modal-pad');\n }\n };\n\n modalRatio();\n\n window.addEventListener('resize', debounce(100, modalRatio));\n}\n","import { debounce } from './__kwHelperFunctions.js';\n\nlet progressElement = document.querySelector('.kw-progress-bar');\n\nif (progressElement) {\n let docElem = document.documentElement;\n let docBody = document.body;\n let scrollTop = docElem['scrollTop'] || docBody['scrollTop'];\n let header = document.querySelector('header');\n let headerHeight = header.clientHeight;\n let footer = document.querySelector('.site-footer');\n let footerHeight = footer.clientHeight;\n let progressCurrent = document.querySelector('.kw-progress-bar--current');\n\n // show progress bar\n progressElement.style.setProperty('opacity', '1');\n\n // set initial progress bar positioning\n if (!scrollTop) {\n progressElement.style.setProperty('top', headerHeight + 'px');\n }\n\n const processScroll = () => {\n scrollTop = docElem['scrollTop'] || docBody['scrollTop'];\n\n let scrollBottom =\n (docElem['scrollHeight'] || docBody['scrollHeight']) - window.innerHeight;\n let scrollPercent =\n ((scrollTop - headerHeight) /\n (scrollBottom - headerHeight - footerHeight)) *\n 100 +\n '%';\n\n if (scrollTop > headerHeight) {\n // if scrolled past the header, stick progress to the top of the page\n progressElement.classList.add('stuck');\n\n // update progress indicator\n progressCurrent.style.setProperty('width', scrollPercent);\n } else {\n // if header is within view, return progress to default display\n progressElement.classList.remove('stuck');\n progressElement.style.setProperty('top', headerHeight + 'px');\n\n // reset progress indicator\n progressCurrent.style.setProperty('width', '0');\n }\n };\n\n document.addEventListener('scroll', debounce(10, processScroll));\n\n // adjust variables and recalculate scroll progress on window resize\n window.addEventListener(\n 'resize',\n debounce(250, () => {\n headerHeight = header.clientHeight;\n footerHeight = footer.clientHeight;\n\n processScroll();\n })\n );\n}\n","import { debounce } from './__kwHelperFunctions.js';\n\nlet scrollButton = document.getElementById('scrollTop');\n\nif (scrollButton) {\n const scrollButtonShow = () => {\n if (\n document.body.scrollTop > 20 ||\n document.documentElement.scrollTop > 20\n ) {\n scrollButton.style.opacity = '1';\n scrollButton.style.pointerEvents = 'auto';\n } else {\n scrollButton.style.opacity = '0';\n scrollButton.style.pointerEvents = 'none';\n }\n };\n\n scrollButtonShow();\n window.addEventListener('scroll', debounce(250, scrollButtonShow));\n\n const scrollToTop = () => {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n };\n\n if (!scrollButton.getAttribute('data-once')) {\n scrollButton.addEventListener('click', scrollToTop);\n scrollButton.setAttribute('data-once', 'true');\n }\n}\n","(() => {\n \"use strict\";\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n require('./__kwHelperFunctions.js');\n require('./_kwProgressBar.js');\n require('./_kwScrollTop.js');\n require('./_kwModal.js');\n require('./_kwMobileMenu.js');\n require('./_kwMobileSubMenus.js');\n });\n\n window.addEventListener('load', () => {\n });\n})();\n","/*----------------------------------------\n * objectFitPolyfill 2.3.5\n *\n * Basic, no-frills version -\n * Defaults to object-fit: cover and object-position: 50% 50%\n *\n * Made by Constance Chen\n * Released under the ISC license\n *\n * https://github.com/constancecchen/object-fit-polyfill\n *--------------------------------------*/\n\n(function() {\n 'use strict';\n\n // if the page is being rendered on the server, don't continue\n if (typeof window === 'undefined') return;\n\n // Workaround for Edge 16-18, which only implemented object-fit for
tags\n var edgeMatch = window.navigator.userAgent.match(/Edge\\/(\\d{2})\\./);\n var edgeVersion = edgeMatch ? parseInt(edgeMatch[1], 10) : null;\n var edgePartialSupport = edgeVersion\n ? edgeVersion >= 16 && edgeVersion <= 18\n : false;\n\n // If the browser does support object-fit, we don't need to continue\n var hasSupport = 'objectFit' in document.documentElement.style !== false;\n if (hasSupport && !edgePartialSupport) {\n window.objectFitPolyfill = function() {\n return false;\n };\n return;\n }\n\n /**\n * Check the container's parent element to make sure it will\n * correctly handle and clip absolutely positioned children\n *\n * @param {node} $container - parent element\n */\n var checkParentContainer = function($container) {\n var styles = window.getComputedStyle($container, null);\n var position = styles.getPropertyValue('position');\n var overflow = styles.getPropertyValue('overflow');\n var display = styles.getPropertyValue('display');\n\n if (!position || position === 'static') {\n $container.style.position = 'relative';\n }\n if (overflow !== 'hidden') {\n $container.style.overflow = 'hidden';\n }\n // Guesstimating that people want the parent to act like full width/height wrapper here.\n // Mostly attempts to target elements, which default to inline.\n if (!display || display === 'inline') {\n $container.style.display = 'block';\n }\n if ($container.clientHeight === 0) {\n $container.style.height = '100%';\n }\n\n // Add a CSS class hook, in case people need to override styles for any reason.\n if ($container.className.indexOf('object-fit-polyfill') === -1) {\n $container.className = $container.className + ' object-fit-polyfill';\n }\n };\n\n /**\n * Check for pre-set max-width/height, min-width/height,\n * positioning, or margins, which can mess up image calculations\n *\n * @param {node} $media - img/video element\n */\n var checkMediaProperties = function($media) {\n var styles = window.getComputedStyle($media, null);\n var constraints = {\n 'max-width': 'none',\n 'max-height': 'none',\n 'min-width': '0px',\n 'min-height': '0px',\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n 'margin-top': '0px',\n 'margin-right': '0px',\n 'margin-bottom': '0px',\n 'margin-left': '0px',\n };\n\n for (var property in constraints) {\n var constraint = styles.getPropertyValue(property);\n\n if (constraint !== constraints[property]) {\n $media.style[property] = constraints[property];\n }\n }\n };\n\n /**\n * Calculate & set object-fit\n *\n * @param {node} $media - img/video/picture element\n */\n var objectFit = function($media) {\n // If necessary, make the parent container work with absolutely positioned elements\n var $container = $media.parentNode;\n checkParentContainer($container);\n\n // Check for any pre-set CSS which could mess up image calculations\n checkMediaProperties($media);\n\n // Mathematically figure out which side needs covering, and add CSS positioning & centering\n $media.style.position = 'absolute';\n $media.style.height = '100%';\n $media.style.width = 'auto';\n\n if ($media.clientWidth > $container.clientWidth) {\n $media.style.top = '0';\n $media.style.marginTop = '0';\n $media.style.left = '50%';\n $media.style.marginLeft = $media.clientWidth / -2 + 'px';\n } else {\n $media.style.width = '100%';\n $media.style.height = 'auto';\n $media.style.left = '0';\n $media.style.marginLeft = '0';\n $media.style.top = '50%';\n $media.style.marginTop = $media.clientHeight / -2 + 'px';\n }\n };\n\n /**\n * Initialize plugin\n *\n * @param {node} media - Optional specific DOM node(s) to be polyfilled\n */\n var objectFitPolyfill = function(media) {\n if (typeof media === 'undefined' || media instanceof Event) {\n // If left blank, or a default event, all media on the page will be polyfilled.\n media = document.querySelectorAll('[data-object-fit]');\n } else if (media && media.nodeName) {\n // If it's a single node, wrap it in an array so it works.\n media = [media];\n } else if (typeof media === 'object' && media.length && media[0].nodeName) {\n // If it's an array of DOM nodes (e.g. a jQuery selector), it's fine as-is.\n media = media;\n } else {\n // Otherwise, if it's invalid or an incorrect type, return false to let people know.\n return false;\n }\n\n for (var i = 0; i < media.length; i++) {\n if (!media[i].nodeName) continue;\n\n var mediaType = media[i].nodeName.toLowerCase();\n\n if (mediaType === 'img') {\n if (edgePartialSupport) continue; // Edge supports object-fit for images (but nothing else), so no need to polyfill\n\n if (media[i].complete) {\n objectFit(media[i]);\n } else {\n media[i].addEventListener('load', function() {\n objectFit(this);\n });\n }\n } else if (mediaType === 'video') {\n if (media[i].readyState > 0) {\n objectFit(media[i]);\n } else {\n media[i].addEventListener('loadedmetadata', function() {\n objectFit(this);\n });\n }\n } else {\n objectFit(media[i]);\n }\n }\n\n return true;\n };\n\n if (document.readyState === 'loading') {\n // Loading hasn't finished yet\n document.addEventListener('DOMContentLoaded', objectFitPolyfill);\n } else {\n // `DOMContentLoaded` has already fired\n objectFitPolyfill();\n }\n\n window.addEventListener('resize', objectFitPolyfill);\n\n window.objectFitPolyfill = objectFitPolyfill;\n})();\n","require('./_objectFitPolyfill.basic.js');\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["debounce","delay","fn","inDebounce","args","clearTimeout","setTimeout","mobileInit","menuToggle","e","window","innerWidth","target","scrollY","scrollTo","top","behavior","document","body","classList","toggle","preventDefault","mobileMenu","Array","from","querySelectorAll","forEach","element","getAttribute","addEventListener","setAttribute","remove","subMenuOpened","removeEventListener","style","height","subMenuToggle","currentToggle","currentSubMenu","nextElementSibling","parentNode","contains","subMenuHeight","scrollHeight","requestAnimationFrame","getElementsByClassName","querySelector","modal","getElementById","modalSidebar","modalHide","documentElement","add","modalClose","callPlayer","modalToggle","keyCode","matches","modalRatio","mWidth","mHeight","innerHeight","maxWidth","progressElement","docElem","docBody","scrollTop","header","headerHeight","clientHeight","footer","footerHeight","progressCurrent","setProperty","processScroll","scrollBottom","scrollPercent","scrollButton","scrollButtonShow","opacity","pointerEvents","require","edgeMatch","navigator","userAgent","match","edgeVersion","parseInt","edgePartialSupport","objectFit","$media","$container","styles","getComputedStyle","position","getPropertyValue","overflow","display","className","indexOf","checkParentContainer","constraints","right","bottom","left","property","checkMediaProperties","width","clientWidth","marginTop","marginLeft","objectFitPolyfill","media","Event","nodeName","length","i","mediaType","toLowerCase","complete","this","readyState","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value"],"sourceRoot":""}