{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA,2FAA2F;AAC3F,8FAA8F;AAC9F;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,yDAAyD,eAAe;AACxE;AACA;AACA;AACA;AACA;;;;;;UC9EA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;ACNqD;AACM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,oBAAoB,KAAK;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,+BAA+B;AAC/B,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,mCAAmC;AACnC,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,iEAAe;AACtF,0EAA0E,oEAAkB;AAC5F,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,CAAC","sources":["webpack://nv-base-template/./src/js/features/iframe-resizer.js","webpack://nv-base-template/./src/js/features/video-modal.js","webpack://nv-base-template/webpack/bootstrap","webpack://nv-base-template/webpack/runtime/define property getters","webpack://nv-base-template/webpack/runtime/hasOwnProperty shorthand","webpack://nv-base-template/webpack/runtime/make namespace object","webpack://nv-base-template/./src/js/main.js"],"sourcesContent":["/**\r\n * Iframe resizer\r\n * @description : \r\n */\r\n\r\nexport default function setUpIframeResizer(rootEl) {\r\n const iframeEl = rootEl.querySelector('iframe');\r\n\r\n if (iframeEl) {\r\n let width = iframeEl.getAttribute('width') ? iframeEl.getAttribute('width') : 900; // Default width is 900\r\n let height = iframeEl.getAttribute('height') ? iframeEl.getAttribute('height') : 500; // Default height is 500\r\n \r\n let aspectRatio = ((height / width) * 100).toFixed(4);\r\n rootEl.style = \"--iframe-height: \" + aspectRatio + \"%;\";\r\n\r\n // Remove width and height attributes\r\n iframeEl.removeAttribute('width');\r\n iframeEl.removeAttribute('height');\r\n }\r\n}","/**\r\n * Video Modal\r\n * @description : Modal to play a video.\r\n */\r\n\r\nexport default function setUpVideoModal(rootEl) {\r\n console.log(rootEl);\r\n const closeButtonEl = rootEl.querySelector('.js-video-modal__close');\r\n closeButtonEl.addEventListener('click', () => {\r\n rootEl.toggleAttribute('hidden', true);\r\n setTimeout(() => {\r\n allIframeEls.forEach(iframeEl => {\r\n iframeEl.toggleAttribute('hidden', true);\r\n iframeEl.src = 'about:blank';\r\n });\r\n window.removeEventListener('keydown', handleKeyDown);\r\n }, 300);\r\n });\r\n\r\n const vimeoIframeEl = rootEl.querySelector('.js-video-modal__vimeo-iframe');\r\n const youTubeIframeEl = rootEl.querySelector('.js-video-modal__youtube-iframe');\r\n const allIframeEls = [vimeoIframeEl, youTubeIframeEl];\r\n\r\n const infoBarEl = rootEl.querySelector('.js-video-modal__info-bar');\r\n const headingBarEl = rootEl.querySelector('.js-video-modal__heading-bar');\r\n\r\n const titleEl = rootEl.querySelector('.js-video-modal__title');\r\n const titleLabelEl = rootEl.querySelector('.js-video-modal__title-label');\r\n const captionEl = rootEl.querySelector('.js-video-modal__caption');\r\n\r\n const triggerEls = Array.from(document.querySelectorAll('.js-video-modal__trigger'));\r\n triggerEls.forEach(triggerEl => {\r\n const videoId = triggerEl.getAttribute('data-video-id').trim();\r\n\r\n const videoPlatformIsVimeo = Boolean(videoId.match(/^[0-9]+$/));\r\n const videoPlatformIsYouTube = Boolean(videoId.match(/^[a-z0-9_-]+$/i));\r\n\r\n if (!videoPlatformIsVimeo && !videoPlatformIsYouTube) {\r\n console.error(`The value \"${videoId}\" is not a valid Vimeo or YouTube video ID`);\r\n }\r\n\r\n const iframeEl = videoPlatformIsVimeo ? vimeoIframeEl : youTubeIframeEl;\r\n const iframeSrcTemplate = iframeEl.getAttribute('data-src');\r\n\r\n const title = triggerEl.getAttribute('data-video-title');\r\n const titleLabel = triggerEl.getAttribute('data-video-title-label');\r\n const caption = triggerEl.getAttribute('data-video-caption');\r\n\r\n triggerEl.addEventListener('click', () => {\r\n console.log(triggerEl)\r\n iframeEl.src = iframeSrcTemplate.replace('[ID]', videoId);\r\n iframeEl.title = title;\r\n\r\n titleEl.textContent = title;\r\n titleLabelEl.textContent = titleLabel;\r\n captionEl.innerHTML = caption;\r\n\r\n titleEl.toggleAttribute('hidden', !title);\r\n titleLabelEl.toggleAttribute('hidden', !titleLabel);\r\n captionEl.toggleAttribute('hidden', !caption);\r\n\r\n infoBarEl.toggleAttribute('hidden', !title && !titleLabel && !caption);\r\n headingBarEl.toggleAttribute('hidden', !title && !titleLabel);\r\n\r\n iframeEl.toggleAttribute('hidden', false);\r\n rootEl.toggleAttribute('hidden', false);\r\n\r\n window.addEventListener('keydown', handleKeyDown);\r\n });\r\n });\r\n\r\n function handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n const clickEvent = new MouseEvent('click', { bubbles: true });\r\n closeButtonEl.dispatchEvent(clickEvent);\r\n }\r\n }\r\n\r\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","// 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))","// define __esModule on exports\n__webpack_require__.r = (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};","import setUpVideoModal from './features/video-modal';\r\nimport setUpIframeResizer from './features/iframe-resizer';\r\n\r\n(function () {\r\n\r\n // Remove the no-js class from the element\r\n document.documentElement.classList.remove('no-js');\r\n\r\n\r\n // TOAST\r\n function getCookie(name) {\r\n var v = document.cookie.match(\"(^|;) ?\" + name + \"=([^;]*)(;|$)\");\r\n return v ? v[2] : null;\r\n }\r\n\r\n function setCookie(name, value, days) {\r\n var d = new Date();\r\n d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * days);\r\n document.cookie =\r\n name + \"=\" + value + \";path=/;expires=\" + d.toGMTString();\r\n }\r\n\r\n function setAlertCookie(name, value) {\r\n document.cookie =\r\n name + \"=\" + value + \";path=/\";\r\n }\r\n\r\n var toastsDismissed = (getCookie(\"alert-toast-dismissed\") || \"\").split(\",\");\r\n var toastEls = document.querySelectorAll(\".js-alert\");\r\n Array.prototype.forEach.call(toastEls, function (toastEl, i) {\r\n var toastId = toastEl.getAttribute(\"data-alert-id\");\r\n\r\n if (toastsDismissed.indexOf(toastId) === -1) {\r\n toastEl.classList.remove(\"c-alert--dismissed\");\r\n }\r\n\r\n var toastDismissEls = toastEl.querySelectorAll(\".js-alert-dismiss\");\r\n for (var j = 0; j < toastDismissEls.length; j++) {\r\n var toastDismissEl = toastDismissEls[j];\r\n\r\n toastDismissEl.addEventListener(\"click\", function (e) {\r\n resetSticky();\r\n toastEl.classList.add(\"c-alert--dismissed\");\r\n setAlertCookie(\r\n \"alert-toast-dismissed\",\r\n \"true\"\r\n );\r\n checkAlerts();\r\n });\r\n }\r\n checkAlerts();\r\n })\r\n\r\n //If any are active add class to container\r\n function checkAlerts() {\r\n var toastEls = document.querySelectorAll(\".js-alert\");\r\n var allToastsDismissed = true;\r\n\r\n var alertCookie = getCookie(\"alert-toast-dismissed\");\r\n Array.prototype.forEach.call(toastEls, function (toastEl, i) {\r\n if (alertCookie == null || alertCookie == undefined || alertCookie == \"\") {\r\n allToastsDismissed = false;\r\n }\r\n })\r\n\r\n if (allToastsDismissed) {\r\n document.getElementById(\"alerts-panel\").classList.add(\"c-alerts--dismissed\");\r\n }\r\n }\r\n\r\n\r\n //MOBILE MENU\r\n if (!window.matchMedia(\"(min-width:1024px)\").matches) {\r\n function toggleMenu() {\r\n document.getElementById(\"header\").classList.toggle(\"c-header--menu-open\");\r\n }\r\n\r\n document.getElementById(\"menu-btn\").addEventListener(\"click\", toggleMenu)\r\n\r\n var sublinks = document.querySelector(\".js-sublinks\");\r\n var dropdowns = document.getElementsByClassName(\"js-menu-dropdown\");\r\n Array.prototype.forEach.call(dropdowns, function (dropdown, i) {\r\n dropdown.addEventListener(\"click\", function (e) {\r\n e.preventDefault();\r\n dropdown.nextElementSibling.classList.toggle(\"c-menu__sub-items--open\");\r\n dropdown.classList.toggle(\"c-menu__dropdown-link--active\");\r\n\r\n //if closing first level item\r\n if (!dropdown.nextElementSibling.classList.contains(\"c-menu__sub-items--open\") && dropdown.classList.contains(\"c-menu__dropdown-link--first-level\")) {\r\n //close children\r\n var openItems = document.getElementsByClassName(\"c-menu__sub-items--open\");\r\n Array.prototype.forEach.call(openItems, function (el, i) {\r\n el.classList.remove(\"c-menu__sub-items--open\");\r\n el.previousElementSibling.classList.remove(\"c-menu__dropdown-link--active\");\r\n });\r\n }\r\n })\r\n\r\n });\r\n\r\n var backlinks = document.querySelectorAll(\".js-back-link\");\r\n Array.prototype.forEach.call(backlinks, function (backlink, i) {\r\n backlink.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n backlink.parentNode.classList.remove(\"c-menu__sub-items--open\");\r\n })\r\n })\r\n\r\n var links = document.querySelectorAll('a[href^=\"#\"]');\r\n Array.prototype.forEach.call(links, function (anchor, i) {\r\n anchor.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n\r\n document.querySelector(this.getAttribute('href')).scrollIntoView({\r\n behavior: 'smooth',\r\n });\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Handle the scrolled header\r\n */\r\n var header = document.getElementById(\"header\");\r\n var sticky = header.offsetTop;\r\n ///var topButton = document.getElementById(\"back-to-top-wrapper\");\r\n var menuBP = window.matchMedia(\"(min-width:960px)\");\r\n updateSubLevels();\r\n\r\n\r\n function resetSticky() {\r\n setTimeout(() => {\r\n header.style.top = 0;\r\n updateSubLevels();\r\n }, 1);\r\n setTimeout(function () {\r\n sticky = header.offsetTop;\r\n }, 2)\r\n }\r\n\r\n\r\n header.isScrolled = false; // Set a flag to hook onto later\r\n header.style.willChange = \"background\"; // Let the browser know we'll change the background\r\n\r\n\r\n window.onscroll = function () {\r\n // Check if the browser supports requestAnimationFrame, if so we'll hook onto that\r\n if (window.requestAnimationFrame) {\r\n window.requestAnimationFrame(scrolledHeader);\r\n } else {\r\n scrolledHeader;\r\n }\r\n };\r\n\r\n // updated sublevel nav position\r\n function updateSubLevels() {\r\n var sublevels = document.querySelectorAll(\".c-header-wrapper--search-bar-hidden .c-menu__sublevel\");\r\n sublevels.forEach(x => {\r\n try {\r\n x.style.top = document.querySelector(\"#alerts-panel.c-alerts--dismissed\") == null ? (110 + document.querySelector(\"#alerts-panel.c-alerts\").offsetHeight) + \"px\" : \"110px\";\r\n\r\n }\r\n catch {\r\n x.style.top = document.querySelector(\".c-header\").offsetHeight + \"px\";\r\n }\r\n });\r\n }\r\n\r\n function scrolledHeader() {\r\n //console.log(\"sticky: \" + sticky);\r\n //console.log(\"offsetTop: \" + getScrollTop());\r\n //console.log(\"header Offset: \" + header.offsetTop);\r\n\r\n // is alert open?\r\n if (document.querySelector(\"#alerts-panel.c-alerts--dismissed\") === null) {\r\n header.classList.add('c-header--scrolled');\r\n const alertsEl = document.querySelector(\"#alerts-panel.c-alerts\");\r\n if (alertsEl != null) {\r\n header.style.top = alertsEl.offsetHeight + \"px\";\r\n }\r\n } else {\r\n header.classList.add('c-header--scrolled');\r\n header.style.top = 0;\r\n header.style.willChange = \"\";\r\n header.isScrolled = true;\r\n }\r\n\r\n /*if (getScrollTop() > sticky) {\r\n header.classList.add('c-header--scrolled');\r\n //topButton.classList.add('c-btn__back-to-top--scrolled');\r\n header.style.willChange = \"\";\r\n header.isScrolled = true;\r\n } else {\r\n header.classList.remove('c-header--scrolled');\r\n //topButton.classList.remove('c-btn__back-to-top--scrolled');\r\n header.style.willChange = \"background\";\r\n header.isScrolled = false;\r\n }*/\r\n }\r\n\r\n function getScrollTop() {\r\n if (typeof pageYOffset != 'undefined') {\r\n //most browsers except IE before #9\r\n return pageYOffset;\r\n } else {\r\n var B = document.body; //IE 'quirks'\r\n var D = document.documentElement; //IE with doctype\r\n D = (D.clientHeight) ? D : B;\r\n return D.scrollTop;\r\n }\r\n }\r\n\r\n /*document.getElementById(\"back-to-top\").addEventListener(\"click\", function () {\r\n window.scrollTo({top: 0, behavior: 'smooth'});\r\n })*/\r\n\r\n var lists = document.getElementsByTagName(\"UL\");\r\n Array.prototype.forEach.call(lists, function (list, i) {\r\n if (list.style.listStyleType != \"\") {\r\n list.classList.add(\"t-rich_text--remove-chevrons\");\r\n }\r\n })\r\n\r\n var numberedLists = document.getElementsByTagName(\"OL\");\r\n Array.prototype.forEach.call(numberedLists, function (list, i) {\r\n if (list.style.listStyleType != \"\") {\r\n list.classList.add(\"t-rich_text--remove-numbers\");\r\n }\r\n })\r\n\r\n var navSearchButton = document.querySelectorAll('.js-nav-search-button');\r\n if (navSearchButton) {\r\n navSearchButton.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n document.querySelector('.js-header-wrapper').classList.toggle('c-header-wrapper--search-bar-hidden');\r\n })\r\n })\r\n\r\n }\r\n\r\n window.fileInputChange = function(id, input){\r\n var $label = $(\"#label-\" + id);\r\n var $btn = $(\"#btn-\" + id);\r\n\r\n if (input.value === \"\"){\r\n $label[0].innerText = \"Drag and drop files here or\"\r\n $($btn[0]).show();\r\n } else {\r\n var theSplit = input.value.split('\\\\');\r\n $label[0].innerText = theSplit[theSplit.length - 1];\r\n $($btn[0]).hide();\r\n }\r\n }\r\n \r\n document.addEventListener('DOMContentLoaded', () => {\r\n console.log(\"Dom loaded\")\r\n document.querySelectorAll('.js-video-modal').forEach(rootEl => setUpVideoModal(rootEl));\r\n document.querySelectorAll('.js-iframe-resizer').forEach(rootEl => setUpIframeResizer(rootEl));\r\n })\r\n\r\n document.addEventListener(\"DOMContentLoaded\", function () {\r\n var feesTables = document.querySelectorAll(\".js-fees\");\r\n\r\n if (feesTables.length > 0) {\r\n feesTables.forEach(function (feesTable) {\r\n var header = document.querySelector(\"#header\");\r\n var table = feesTable.querySelector(\".js-fees-table\");\r\n var tableWrap = feesTable.querySelector(\".js-fees-table-wrap\");\r\n var tableHead = feesTable.querySelector(\".js-fees-table-head\");\r\n\r\n if (table && tableWrap) {\r\n var tableHeight = table.offsetHeight;\r\n var tableWrapWidth = tableWrap.offsetWidth;\r\n tableWrap.style.height = tableHeight + \"px\";\r\n table.style.width = tableWrapWidth + \"px\";\r\n }\r\n\r\n if (tableHead && header) {\r\n var headerHeight = header.offsetHeight;\r\n tableHead.style.top = headerHeight + \"px\";\r\n }\r\n });\r\n }\r\n });\r\n})();\r\n"],"names":[],"sourceRoot":""}