{"version":3,"sources":["accordions.js","modal.js","responsive-videos.js","tabs.js","tables.js","tile-nav.js","subpage.js"],"names":[],"mappings":"AAAA;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;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;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;ACzFA;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;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;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;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;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;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;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;ACjNA;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjGA;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;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChJA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;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;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;AACA;AACA;AACA;AACA;AACA","file":"subpage.js","sourcesContent":["\"use strict\";\r\n\r\nfunction accordionTitles() {\r\n let titleCount = 0;\r\n document.querySelectorAll('.accordions .accordion-title').forEach((acTitle) => {\r\n titleCount++;\r\n let id = 'accordion-' + titleCount;\r\n let expanded = false;\r\n\r\n let button = document.createElement('button');\r\n button.setAttribute('onclick', 'return false;');\r\n button.setAttribute('aria-controls', id);\r\n\r\n if (acTitle.classList.contains('open')) {\r\n button.setAttribute('aria-expanded', true);\r\n acTitle.classList.add('is-active');\r\n wrapInner(acTitle, button);\r\n } else {\r\n button.setAttribute('aria-expanded', false);\r\n wrapInner(acTitle, button);\r\n }\r\n });\r\n}\r\n\r\nfunction accordionContent() {\r\n let contentCount = 0;\r\n document.querySelectorAll('.accordions .accordion-content').forEach((acContent) => {\r\n contentCount++;\r\n let id = 'accordion-' + contentCount;\r\n\r\n if (acContent.previousElementSibling.classList.contains('is-active')) {\r\n acContent.setAttribute('id', id);\r\n acContent.setAttribute('aria-hidden', 'false');\r\n } else {\r\n acContent.setAttribute('id', id);\r\n acContent.setAttribute('aria-hidden', 'true');\r\n }\r\n });\r\n return 'success';\r\n}\r\n\r\nfunction accordionButtons() {\r\n document.querySelectorAll('.accordions .accordion-title button').forEach((acButton) => {\r\n acButton.on('click', function (e) {\r\n e.preventDefault();\r\n\r\n let id = acButton.getAttribute('aria-controls');\r\n let state = acButton.getAttribute('aria-expanded');\r\n let panel = document.querySelector('.accordion-content#' + id);\r\n\r\n if (acButton.parentElement.classList.contains('is-active')) {\r\n acButton.parentElement.classList.remove('is-active');\r\n acButton.parentElement.classList.add('is-inactive');\r\n acButton.setAttribute('aria-expanded', 'false');\r\n panel.setAttribute('aria-hidden', 'true');\r\n } else {\r\n acButton.parentElement.classList.remove('is-inactive');\r\n acButton.parentElement.classList.add('is-active');\r\n acButton.setAttribute('aria-expanded', 'true');\r\n panel.setAttribute('aria-hidden', 'false');\r\n }\r\n });\r\n });\r\n return 'success';\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n \"use strict\";\r\n //Document Ready\r\n\r\n document.querySelectorAll('.accordions').forEach((accordion) => {\r\n accordion.classList.add('active');\r\n });\r\n\r\n let promiseTitles = new Promise((resolve) => {\r\n accordionTitles();\r\n resolve('success');\r\n });\r\n\r\n promiseTitles.then((value) => {\r\n let promiseContent = new Promise((resolve) => {\r\n accordionContent();\r\n resolve('success');\r\n });\r\n\r\n promiseContent.then((value) => {\r\n accordionButtons();\r\n });\r\n });\r\n});","\"use strict\";\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n //Document Ready\r\n\r\n //Get an array of all Modals on the Page && pair with their links\r\n var modals = document.querySelectorAll('.modal');\r\n\r\n if (modals.length > 0) {\r\n document.querySelector('body').insertAdjacentHTML('afterbegin', `
`);\r\n }\r\n\r\n //Modal Setup\r\n modals.forEach((modal) => {\r\n modal.setAttribute('role', 'dialog');\r\n modal.setAttribute('tabindex', '-1');\r\n let height = modal.getAttribute('data-modal-height');\r\n if (height !== undefined) {\r\n modal.style.height = `height: ${height}px;`;\r\n }\r\n });\r\n //Find modal links in content and set them up\r\n document.querySelectorAll('.open-modal').forEach((lnk) => {\r\n\r\n // console.log('Modal Link Setup');\r\n\r\n lnk.on('click', function (e) {\r\n // console.log('Link Clicked');\r\n let modal = document.getElementById(lnk.getAttribute('href').substring(1));\r\n if (modal.classList.contains('modal-inline')) {\r\n\r\n // console.log('Open Inline Modal');\r\n //Keep Modal Inline\r\n openModalInline(modal, e);\r\n setupModalEvents(modal);\r\n } else {\r\n // console.log('Open Copied Modal');\r\n //Copy Modal Out of DOM\r\n var modalCopy = modal.cloneNode(true);\r\n\r\n var mdReplaceWith = ``;\r\n\r\n modal.insertAdjacentHTML('afterend', mdReplaceWith);\r\n\r\n document.querySelector('.modal-overlay').insertAdjacentElement('afterend', modalCopy);\r\n openModalCopied(modalCopy, e);\r\n }\r\n });\r\n });\r\n});\r\n\r\n//Open a modal\r\nfunction openModalInline(modal, event) {\r\n // console.log('openModalInline');\r\n if (event !== 'default open') {\r\n event.preventDefault();\r\n }\r\n\r\n document.querySelectorAll('html, body').forEach((el) => {\r\n el.classList.toggle('modal-open');\r\n });\r\n document.querySelector('.modal-overlay').classList.toggle('show-modal');\r\n document.querySelector('.modal-overlay').classList.toggle('modal-inline');\r\n\r\n modal.removeAttribute('hidden');\r\n modal.setAttribute('aria-hidden', 'false');\r\n modal.setAttribute('tabindex', '0');\r\n modal.classList.toggle('show-modal');\r\n\r\n document.querySelector('.modal-content .close-modal').setAttribute('tabindex', '0');\r\n document.querySelector('.modal-content .close-modal').classList.add('modal-inline');\r\n modal.focus();\r\n\r\n //Keep keyboard events within modal content\r\n modalFocusTrap(modal);\r\n}\r\n\r\n//Open a copied modal\r\nfunction openModalCopied(modal, event) {\r\n // console.log('openModalInline');\r\n if (event !== 'default open') {\r\n event.preventDefault();\r\n }\r\n\r\n document.querySelectorAll('html, body').forEach((el) => {\r\n el.classList.toggle('modal-open');\r\n });\r\n document.querySelector('.modal-overlay').classList.toggle('show-modal');\r\n document.querySelector('.modal-overlay').classList.toggle('modal-inline');\r\n\r\n modal.removeAttribute('hidden');\r\n modal.setAttribute('aria-hidden', 'false');\r\n modal.setAttribute('tabindex', '0');\r\n modal.classList.toggle('show-modal');\r\n\r\n document.querySelector('.modal-content .close-modal').setAttribute('tabindex', '0');\r\n document.querySelector('.modal-content .close-modal').classList.add('modal-inline');\r\n modal.focus();\r\n\r\n //Keep keyboard events within modal content\r\n modalFocusTrap(modal);\r\n setupModalEvents(modal);\r\n}\r\n\r\nfunction setupModalEvents(modal) {\r\n\r\n //Focus Modal Content when tabbed to\r\n if (document.querySelector('.modal-overlay') !== null) {\r\n document.querySelector('.modal-overlay').on('click', function () {\r\n // console.log('Overlay Click');\r\n let currentModalID = document.querySelectorAll('.modal').forEach((modal) => {\r\n if (window.getComputedStyle(modal).display !== 'none') {\r\n closeModal(modal);\r\n }\r\n });\r\n });\r\n }\r\n\r\n //Close modal events from close modal buttons\r\n document.querySelectorAll('.close-modal').forEach((m) => {\r\n // console.log('Close Modal Setup');\r\n m.on('click', function (e) {\r\n // console.log('Close Modal Click');\r\n let modalP = m.parentNode.parentNode;\r\n closeModal(modalP);\r\n });\r\n\r\n m.on('keydown', function (e) {\r\n // console.log('Close Modal Key');\r\n e.preventDefault();\r\n if (e.which === 13) {\r\n let modalP = m.parentNode.parentNode;\r\n closeModal(modalP);\r\n }\r\n });\r\n });\r\n\r\n //Close modal on escape key\r\n document.on('keyup', function (e) {\r\n if (e.keyCode === 27) {\r\n // console.log('Esc Setup');\r\n let currentModalID = document.querySelectorAll('.modal').forEach((modal) => {\r\n // console.log('Esc');\r\n if (window.getComputedStyle(modal).display !== 'none') {\r\n closeModal(modal);\r\n }\r\n });\r\n }\r\n });\r\n}\r\n\r\n//Close a modal\r\nfunction closeModal(modal) {\r\n // console.log('closeModal');\r\n //Close the Modal\r\n document.querySelectorAll('html, body').forEach((el) => {\r\n el.classList.remove('modal-open');\r\n });\r\n\r\n document.querySelector('.modal-overlay').classList.remove('show-modal');\r\n\r\n modal.classList.remove('show-modal');\r\n modal.setAttribute('hidden', 'hidden');\r\n modal.setAttribute('aria-hidden', 'true');\r\n modal.setAttribute('tabindex', '-1');\r\n\r\n //Focus on modal link toggle when modal is closed\r\n let modalLink = document.querySelector(`[href*=\"#${modal.getAttribute('id')}\"]`);\r\n if (modalLink !== undefined && modalLink !== null) {\r\n modalLink.focus();\r\n modalLink = undefined;\r\n }\r\n}\r\n\r\n//Trap focus within an open modal\r\nfunction modalFocusTrap(modal) {\r\n // console.log('modalFocusTrap');\r\n let modalFocusEl = modal.querySelectorAll('span.close-modal, a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]');\r\n\r\n let modalFocusableFirstEl,\r\n modalFocusableLastEl;\r\n\r\n modal.querySelectorAll('*').forEach((el) => {\r\n if (([].indexOf.call(el, modalFocusEl) > -1) && modalFocusEl.length > 1) {\r\n if (modalFocusableFirstEl !== undefined) {\r\n modalFocusableFirstEl = el;\r\n } else {\r\n modalFocusableLastEl = el;\r\n }\r\n } else {\r\n modalFocusableFirstEl = el;\r\n modalFocusableLastEl = el;\r\n }\r\n });\r\n\r\n modalFocusableFirstEl.on('keydown', function (e) {\r\n if (e.which === 9 && e.shiftKey) {\r\n e.preventDefault();\r\n modalFocusableLastEl.focus();\r\n }\r\n });\r\n\r\n modalFocusableLastEl.on('keydown', function (e) {\r\n if (e.which === 9 && !e.shiftKey) {\r\n e.preventDefault();\r\n modalFocusableFirstEl.focus();\r\n }\r\n });\r\n\r\n}","\"use strict\";\r\n/*FOR DNN IMPLEMENTATIONS - REQUIRES JQUERY*/\r\n\r\n// $('iframe[src*=\"youtube.com\"], iframe[src*=\"player.vimeo.com\"]').each(function () {\r\n// if (!$('body').hasClass('dnnEditState')) {\r\n// iframe = $(this);\r\n// height = iframe.height();\r\n// width = iframe.width();\r\n// ratio = ((height / width) * 100);\r\n// padding = ratio.toFixed(2) + '%';\r\n// var hasClass = $(this).attr('class');\r\n// var hasAlign = $(this).attr('align');\r\n// if (typeof hasClass !== typeof undefined && hasClass !== false) {\r\n// if (hasClass == 'alignleft') {\r\n// iframe.wrap('