{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/helpers/index.js","webpack://@verndale/toolkit/./src/js/modules/careers-header.js","webpack://@verndale/toolkit/./src/js/modules/find-a-community-header.js","webpack://@verndale/toolkit/./src/js/modules/hamburger-menu.js","webpack://@verndale/toolkit/./src/js/modules/make-header-accessible.js","webpack://@verndale/toolkit/./node_modules/form-serialize/index.js","webpack://@verndale/toolkit/./node_modules/headroom.js/dist/headroom.js","webpack://@verndale/toolkit/./node_modules/lodash.debounce/index.js"],"names":["isDevice","userAgent","isEmpty","element","isInViewport","rect","checkTrustarc","cookie","permit","getFakeLocation","getCurrentPathnameWithoutLanguage","pathname","language","Module","Component","BREAKPOINTS","el","e","debounce","topScrollPros","headerScrollPos","Headroom","id","panel","itemRect","triggerPos","MakeHeaderAccessible","commonConfig","HamburgerMenu","FindACommunityHeader","list","items","i","$link","link","banner","item","hasClickedOutSidePanel","hasClickedPrimaryNavTrigger","hasClickedcareersTrigger","dom","openPrimaryNavChildMenu","closePrimaryNavChildMenu","displayPrimaryNavPanel","focusOutPrimaryNav","KEYS","headerPanel","data","serialize","url","focusTrap","index","x","handlePrimaryNavTriggerClick","firstLink","KEYS_DIRECTION","k_r_submitter","k_r_success_contrls","brackets","form","options","result","serializer","hash_serializer","str_serialize","elements","radio_store","key","val","selectOptions","isSelectedOptions","j","option","allowedEmpty","hasValue","parse_keys","string","keys","prefix","children","match","hash_assign","value","between","matches","existing","module","global","factory","isBrowser","passiveEventsSupported","supported","isSupported","isDocument","obj","isWindow","windowScroller","win","doc","body","html","elementScroller","createScroller","trackScroll","callback","isPassiveSupported","rafId","scrolled","scroller","lastScrollY","details","update","scrollY","height","scrollHeight","handleScroll","eventOptions","normalizeUpDown","t","elem","self","scrollingDown","scrollingUp","className","cls","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","root","objectProto","objectToString","nativeMax","nativeMin","now","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","toNumber","isObject","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","type","isObjectLike","isSymbol","other","isBinary"],"mappings":"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","file":"Areas/SunriseSeniorLiving/Scripts/8990.7ffa8d2695d27bc98a3e.bundle.js","sourcesContent":["// /**\n// * Checks browser is running on a native mobile device\n// */\nexport const isDevice = () => {\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\n\n if (\n /windows phone/i.test(userAgent) ||\n /android/i.test(userAgent) ||\n (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream)\n ) {\n return true;\n }\n\n return false;\n};\n\nexport const isEmpty = element => {\n if (element.textContent.trim() === '') {\n return true;\n }\n};\n\nexport const isInViewport = element => {\n const rect = element.getBoundingClientRect();\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n );\n};\n\nexport const checkTrustarc = (cookie, permit) => {\n if (cookie) {\n if (!(String(cookie)).includes(permit)) {\n return true;\n }\n\n return false;\n }\n};\n\n// for local development purposes\nexport const getFakeLocation = () => {\n if (window.location.hostname === 'localhost') {\n return {\n lat: 42.3612,\n lng: -71.0519,\n countryState: 'MA',\n zipCode: '02108'\n }\n }\n return {};\n};\n\nexport const getCurrentPathnameWithoutLanguage = () => {\n const pathname = window.location.pathname;\n const language = pathname.split('/')[1];\n\n if (language === 'en' || language === 'fr') {\n return pathname.replace(`/${language}`, '');\n }\n\n return pathname;\n}\n","import { Component } from '@verndale/core';\nimport Headroom from 'headroom.js';\nimport MakeHeaderAccessible from './make-header-accessible';\nimport FindACommunityHeader from './find-a-community-header';\nimport HamburgerMenu from './hamburger-menu';\nimport debounce from 'lodash.debounce';\nimport { isEmpty } from '../helpers';\nimport { BREAKPOINTS } from '../constants';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n $header: this.el,\n $hamburger: this.el._$('.header__hamburger'),\n $hamburgerMenu: this.el._$('#hmenu'),\n $hamburgerMenuBanner: this.el._$('.hamburger-menu-banner'),\n $hamburgerMenuItemTitles: this.el._$$('.hamburger-menu__title-label'),\n $topLevelNavs: this.el._$('.header__top-level-navs'),\n $childNavWrapper: this.el._$('.header__child-nav-wrapper'),\n $closeHamburger: this.el._$('.header__close'),\n $careersTrigger: this.el._$('.careers-header-trigger'),\n $campaignPhone: this.el._$('.campaign-phone'),\n $headerlogo: this.el._$('.header__logo'),\n $headerPanel: this.el._$('.header__panel'),\n $utilityLinks: this.el._$('.header-utility-links'),\n $closeChildNavTrigger: this.el._$('.header__back-to-top-level-trigger'),\n $primaryNavPanels: this.el._$$('.primary-nav__child-menu')\n };\n\n this.panelOpenedClass = 'header--panel-opened';\n this.childMenuPanelOpenedClass = 'header--child-menu-panel-opened';\n this.expandedPrimaryNavItemClass = 'primary-nav__item--expanded';\n this.openedPrimaryNavChildMenuClass = 'primary-nav__child-menu--opened';\n this.desktopMediaQuery = window.matchMedia('(min-width: 1200px)');\n this.isFullNav = this.desktopMediaQuery.matches;\n this.isDesktop = this.isFullNav;\n\n this.expanded = false;\n\n this.isCampaignHeader = this.el.classList.contains('campaign-header');\n\n this.breakpointDesktop = window.matchMedia(`(max-width: ${BREAKPOINTS.DESKTOP - 1}px)`);\n this.breakpointWide = window.matchMedia(`(max-width: ${BREAKPOINTS.WIDE - 1}px)`);\n this.breakpointExtraWide = window.matchMedia(`(min-width: ${BREAKPOINTS.EXTRA_WIDE - 80}px)`);\n\n this.setup();\n this.stick();\n this.initSubModules();\n this.renderMobileOptions();\n\n if (!this.isCampaignHeader && isEmpty(this.dom.$hamburgerMenuBanner)) {\n this.el._$$('.hamburger-menu-banner').forEach(el => {\n el.hidden = true;\n });\n }\n }\n\n addListeners() {\n this.dom.$hamburger?._on('click', this.handleHamburgerClick.bind(this));\n this.dom.$closeHamburger?._on(\n 'click',\n this.handleCloseHamburgerClick.bind(this)\n );\n this.dom.$primaryNavTriggers?._on(\n 'mouseup',\n this.handlePrimaryNavTriggerClick.bind(this)\n );\n this.dom.$closeChildNavTrigger?._on(\n 'click',\n this.handleCloseChildNavTriggerClick.bind(this)\n );\n this.desktopMediaQuery.addEventListener('change', e => {\n this.isFullNav = e.matches;\n });\n window.addEventListener(\n 'resize',\n debounce(this.renderMobileOptions.bind(this), 300)\n );\n }\n\n setup() {\n this.renderPrimaryNavTopLevelItems();\n this.renderHamburgerMenuInsideHamburgerNav();\n this.el.classList.add('header--loaded');\n }\n\n scrollToHeader() {\n const topScrollPros = document.documentElement.scrollTop;\n const headerScrollPos = this.el.getBoundingClientRect().top + topScrollPros;\n if (topScrollPros < headerScrollPos) {\n window.scrollTo({ top: headerScrollPos, behavior: 'smooth' });\n }\n }\n\n lockScroll() {\n _$('html, body').style.overflow = 'hidden';\n }\n\n unlockScroll() {\n _$('html, body').style.overflow = 'visible';\n }\n\n stick() {\n this.el.classList.add('sticky--header')\n new Headroom(this.el, {\n offset: this.el.offsetTop,\n classes: {\n initial: 'header',\n pinned: 'header--visible',\n top: '-',\n notTop: '-',\n bottom: '-',\n notBottom: '-',\n frozen: '-'\n },\n onPin: () => {\n document.body.classList.add('header--visible');\n document.body.classList.remove('header--hidden');\n },\n onUnpin: () => {\n document.body.classList.add('header--hidden');\n document.body.classList.remove('header--visible');\n }\n }).init();\n }\n\n openPrimaryNavChildMenu() {\n this.el.classList.add(this.childMenuPanelOpenedClass);\n\n if (this.isFullNav) {\n document._on(\n 'mousedown',\n this.handleListenToOutsidePrimaryNavPanel.bind(this)\n );\n }\n }\n\n closePrimaryNavChildMenu() {\n this.el.classList.remove(this.childMenuPanelOpenedClass);\n this.dom.$primaryNavItems\n .find(el => el.classList.contains(this.expandedPrimaryNavItemClass))\n ?.classList.remove(this.expandedPrimaryNavItemClass);\n this.communityOrTour.focusOut();\n document.removeEventListener(\n 'click',\n this.handleListenToOutsidePrimaryNavPanel.bind(this)\n );\n }\n\n displayPrimaryNavPanel(id) {\n const panel = this.dom.$primaryNavPanels.find(el => el.id === id);\n\n const itemRect = this.el._$(`[data-panel='${id}']`);\n let triggerPos = 0;\n\n if (itemRect && itemRect.getBoundingClientRect() && this.isDesktop) {\n triggerPos = itemRect.getBoundingClientRect().left - 10;\n }\n\n this.dom.$childNavWrapper.style.left = `${triggerPos}px`;\n\n this.dom.$primaryNavPanels.forEach(el => {\n el.classList.remove(this.openedPrimaryNavChildMenuClass);\n });\n\n panel?.classList?.add?.(this.openedPrimaryNavChildMenuClass);\n\n return panel;\n }\n\n focusOutPrimaryNav() {\n this.dom.$primaryNavItems.forEach(el =>\n el.classList.remove(this.expandedPrimaryNavItemClass)\n );\n }\n\n initSubModules() {\n new MakeHeaderAccessible({\n dom: this.dom,\n handlePrimaryNavTriggerClick:\n this.handlePrimaryNavTriggerClick.bind(this),\n closePrimaryNavChildMenu: this.closePrimaryNavChildMenu.bind(this)\n });\n\n const commonConfig = {\n dom: this.dom,\n openPrimaryNavChildMenu: this.openPrimaryNavChildMenu.bind(this),\n closePrimaryNavChildMenu: this.closePrimaryNavChildMenu.bind(this),\n displayPrimaryNavPanel: this.displayPrimaryNavPanel.bind(this),\n focusOutPrimaryNav: this.focusOutPrimaryNav.bind(this)\n };\n\n if (!this.isCampaignHeader) {\n this.hamburgerMenu = new HamburgerMenu(commonConfig);\n this.communityOrTour = new FindACommunityHeader(commonConfig);\n }\n }\n\n renderPrimaryNavTopLevelItems() {\n const list = document.createElement('ul');\n list.role = 'menubar';\n list.classList.add('primary-nav');\n\n const items = this.dom.$primaryNavPanels\n .map((panel, i) => {\n\n const $link = panel._$('.primary-nav__child-menu-title');\n const link = $link?.textContent;\n\n if (!link) return '';\n\n return `\n
  • \n ${!$link.href ? `\n ${link}\n \n \n \n ` : `\n \n ${link}\n \n `}\n
  • \n `;\n })\n .join('');\n\n list.innerHTML = items;\n this.dom.$topLevelNavs.prepend(list);\n\n this.dom.$primaryNavItems = this.el._$$('.primary-nav__item');\n this.dom.$primaryNavTriggers = this.el._$$('.primary-nav__trigger');\n }\n\n renderMobileOptions() {\n this.isDesktop = this.isFullNav;\n\n if (!this.isDesktop) {\n this.dom.$headerlogo.parentNode.insertBefore(\n this.dom.$careersTrigger,\n this.dom.$headerPanel\n );\n if (this.isCampaignHeader) {\n this.dom.$headerlogo.parentNode.insertBefore(\n this.dom.$campaignPhone,\n this.dom.$careersTrigger\n );\n this.dom.$headerlogo.parentNode.insertBefore(\n this.dom.$utilityLinks,\n this.dom.$careersTrigger\n );\n }\n } else {\n if (this.isCampaignHeader) {\n this.dom.$topLevelNavs.append(this.dom.$campaignPhone);\n this.dom.$topLevelNavs.append(this.dom.$utilityLinks);\n }\n this.dom.$topLevelNavs.append(this.dom.$careersTrigger);\n }\n }\n\n renderHamburgerMenuInsideHamburgerNav() {\n const banner = document.createElement('div');\n if (this.dom.$hamburgerMenuBanner) {\n banner.classList.add('hamburger-menu-banner');\n banner.innerHTML = this.dom.$hamburgerMenuBanner.innerHTML;\n }\n this.dom.$hamburgerMenu?.prepend(banner);\n }\n\n handleHamburgerClick() {\n this.expanded = !this.expanded;\n this.dom.$hamburger.setAttribute('aria-expanded', this.expanded);\n\n this.el.classList.add(this.panelOpenedClass);\n this.lockScroll();\n this.scrollToHeader();\n\n this.dom.$hamburgerMenu.focus();\n }\n\n handleCloseHamburgerClick() {\n this.expanded = !this.expanded;\n this.dom.$hamburger.setAttribute('aria-expanded', this.expanded);\n\n this.el.classList.remove(this.panelOpenedClass);\n this.unlockScroll();\n this.closePrimaryNavChildMenu();\n this.displayPrimaryNavPanel();\n }\n\n handlePrimaryNavTriggerClick(e) {\n const item = e.target.closest('.primary-nav__item');\n const id = e.target.dataset.panel;\n this.focusOutPrimaryNav();\n this.communityOrTour.focusOut();\n\n if (this.el.classList.contains(this.childMenuPanelOpenedClass)) {\n this.closePrimaryNavChildMenu();\n return;\n }\n\n item.classList.add(this.expandedPrimaryNavItemClass);\n\n this.openPrimaryNavChildMenu();\n return this.displayPrimaryNavPanel(id);\n }\n\n handleCloseChildNavTriggerClick() {\n this.closePrimaryNavChildMenu();\n }\n\n handleListenToOutsidePrimaryNavPanel(e) {\n const hasClickedOutSidePanel = !this.dom.$childNavWrapper.contains(\n e.target\n );\n const hasClickedPrimaryNavTrigger = this.dom.$primaryNavTriggers.find(el =>\n el.contains(e.target)\n );\n const hasClickedcareersTrigger = this.dom.$careersTrigger?.contains?.(\n e.target\n );\n\n if (\n hasClickedOutSidePanel &&\n !hasClickedPrimaryNavTrigger &&\n !hasClickedcareersTrigger\n ) {\n this.closePrimaryNavChildMenu();\n }\n }\n}\n\nexport default Module;\n","import * as focusTrap from 'focus-trap';\nimport { KEYS } from '../constants';\nimport serialize from 'form-serialize';\n\nclass FindACommunityHeader {\n constructor({\n dom,\n openPrimaryNavChildMenu,\n closePrimaryNavChildMenu,\n displayPrimaryNavPanel,\n focusOutPrimaryNav\n }) {\n this.dom = {\n ...dom,\n $trigger: dom.$header._$('.find-a-community-header-trigger'),\n $panel: dom.$header._$('.find-a-community-header'),\n $form: dom.$header._$('.find-a-community-header__form')\n };\n\n this.openPrimaryNavChildMenu = openPrimaryNavChildMenu;\n this.closePrimaryNavChildMenu = closePrimaryNavChildMenu;\n this.displayPrimaryNavPanel = displayPrimaryNavPanel;\n this.focusOutPrimaryNav = focusOutPrimaryNav;\n\n this.id = 'find-a-community-header';\n this.expandedClass = 'find-a-community-header-trigger--expanded';\n\n this.locationName = this.dom.$form?.dataset?.locationName;\n this.countryName = this.dom.$form?.dataset?.countryName;\n this.careName = this.dom.$form?.dataset?.careName;\n\n this.addListeners();\n this.initiateFocusTrap();\n }\n\n addListeners() {\n this.dom.$trigger?._on('keydown', this.handleTriggerKeyDown.bind(this));\n this.dom.$trigger?._on('click', this.handleTriggerClick.bind(this));\n this.dom.$form?._on?.('submit', this.handleSubmit.bind(this));\n document._on('click', this.outterClickHandler.bind(this));\n }\n\n handleTriggerKeyDown(e) {\n switch (e.keyCode) {\n case KEYS.ESC:\n this.handleClose();\n break;\n case KEYS.DOWN:\n case KEYS.ENTER:\n e.preventDefault();\n this.handleTriggerClick(e);\n this.panelFocusTrap.activate();\n break;\n }\n }\n\n outterClickHandler(e) {\n const headerPanel = document.querySelector('.header__panel');\n if (headerPanel && !headerPanel.contains(e.target)) {\n this.handleClose();\n }\n }\n\n handleTriggerClick() {\n if (this.dom.$trigger.classList.contains(this.expandedClass)) {\n this.handleClose();\n } else {\n this.openPrimaryNavChildMenu();\n this.dom.$trigger.classList.add(this.expandedClass);\n this.displayPrimaryNavPanel(this.id);\n this.focusOutPrimaryNav();\n }\n }\n\n handleClose() {\n this.focusOut();\n this.closePrimaryNavChildMenu();\n }\n\n handleSubmit(e) {\n e.preventDefault();\n const data = serialize(this.dom.$form, { hash: true });\n const isDataEntered = data[this.locationName] || data[this.careName];\n let url = isDataEntered\n ? this.dom.$form.dataset.mapViewUrl\n : this.dom.$form.dataset.countryViewUrl;\n url = `${url}?${serialize(this.dom.$form)}`;\n this.dom.$form.action = url;\n this.dom.$form.submit();\n }\n\n initiateFocusTrap() {\n this.panelFocusTrap = focusTrap.createFocusTrap(this.dom.$childNavWrapper, {\n allowOutsideClick: false,\n onDeactivate: this.handleClose.bind(this),\n initialFocus: () => {\n return this.dom.$panel.getElementsByTagName('INPUT')[0];\n }\n });\n }\n\n focusOut() {\n this.dom.$trigger?.classList.remove(this.expandedClass);\n }\n}\n\nexport default FindACommunityHeader;\n","class HamburgerMenu {\n constructor({\n dom,\n closePrimaryNavChildMenu\n }) {\n\n this.dom = {\n ...dom,\n $trigger: dom.$header._$$('.hamburger-menu-items__trigger'),\n $close: dom.$header._$('.hamburger-menu .header__back-to-top-level-trigger'),\n $menus: dom.$header._$$('.hamburger-menu__child-menu')\n }\n\n this.closePrimaryNavChildMenu = closePrimaryNavChildMenu;\n this.openedClass = 'header--hamburger-menu-opened';\n this.currentChildMenuClass = 'hamburger-menu__child-menu--current';\n\n this.addListeners();\n }\n\n addListeners() {\n this.dom.$trigger.forEach((el, i) => el._on('click', () => this.open(i)));\n this.dom.$close._on('click', this.close.bind(this));\n }\n\n open(index) {\n this.dom.$header.classList.add(this.openedClass);\n this.dom.$menus.forEach(x => x.classList.remove(this.currentChildMenuClass));\n this.dom.$menus[index].classList.add(this.currentChildMenuClass);\n }\n\n close() {\n this.dom.$header.classList.remove(this.openedClass);\n }\n}\n\nexport default HamburgerMenu;\n","import * as focusTrap from 'focus-trap';\nimport { KEYS, KEYS_DIRECTION } from '../constants';\n\nclass MakeHeaderAccessible {\n constructor({ dom, handlePrimaryNavTriggerClick, closePrimaryNavChildMenu }) {\n this.dom = {\n ...dom\n }\n\n this.handlePrimaryNavTriggerClick = handlePrimaryNavTriggerClick;\n this.closePrimaryNavChildMenu = closePrimaryNavChildMenu;\n this.init();\n this.addListeners();\n this.initiateFocusTrap();\n }\n\n addListeners() {\n this.dom.$primaryNavTriggers._on('keydown', this.handlePrimaryNavKeyDown.bind(this));\n this.dom.$primaryNavTriggers._on('keyup', this.handlePrimaryNavKeyUp.bind(this));\n this.dom.$closeHamburger?._on('keydown', this.handleHamburguerCloseNavKeyDown.bind(this));\n this.dom.$hamburgerMenu?._on('keydown', this.handleHamburguerMenuNavKeyDown.bind(this));\n }\n\n init() {\n this.dom.$primaryNavTriggers.forEach((el, i) => el.dataset.index = i)\n }\n\n handleHamburguerCloseNavKeyDown(e) {\n\n if (e.keyCode === KEYS.TAB) {\n this.dom.$hamburgerMenu.focus();\n }\n if (e.keyCode === KEYS.ESC) {\n\n this.dom.$closeHamburger.click()\n this.dom.$hamburger.focus();\n }\n }\n\n handleHamburguerMenuNavKeyDown(e) {\n const innerLinks = this.dom.$hamburgerMenu.getElementsByTagName('a')\n const firstLink = innerLinks[0]\n\n if (e.shiftKey && e.keyCode === KEYS.TAB && (firstLink === e.target)) {\n this.dom.$closeHamburger.focus()\n }\n\n if (e.keyCode === KEYS.ESC) {\n this.dom.$closeHamburger.click()\n this.dom.$hamburger.focus();\n }\n }\n\n\n handlePrimaryNavKeyDown(e) {\n\n switch (e.keyCode) {\n case KEYS.END:\n this.focusPrimaryNavOnKeyPress(this.dom.$primaryNavTriggers[this.dom.$primaryNavTriggers.length - 1]);\n break;\n case KEYS.HOME:\n e.preventDefault();\n this.focusPrimaryNavOnKeyPress(this.don.$primaryNavTriggers[0]);\n break;\n case KEYS.DOWN:\n case KEYS.ENTER:\n e.preventDefault();\n this.handlePrimaryNavTriggerClick(e);\n this.panelFocusTrap.activate();\n break\n }\n }\n\n handlePrimaryNavKeyUp(e) {\n if (KEYS.RIGHT || KEYS.ENTER) {\n this.focusPrimaryNavOnKeyPress(e);\n }\n }\n\n focusPrimaryNavItem(item) {\n this.blurPrimaryNavItems();\n item.removeAttribute('tabindex');\n\n item.focus();\n }\n\n blurPrimaryNavItems() {\n this.dom.$primaryNavTriggers.forEach(link => {\n link.setAttribute('tabindex', '-1');\n });\n }\n\n focusPrimaryNavOnKeyPress(e) {\n if (!KEYS_DIRECTION[e.keyCode]) return;\n if (typeof e.target.dataset.index === 'undefined') return;\n const index = parseInt(e.target.dataset.index, 10);\n\n if (this.dom.$primaryNavTriggers[index + KEYS_DIRECTION[e.keyCode]]) {\n this.focusPrimaryNavItem(this.dom.$primaryNavTriggers[index + KEYS_DIRECTION[e.keyCode]]);\n return;\n }\n\n if (e.keyCode === KEYS.left) {\n this.focusPrimaryNavItem(this.dom.$primaryNavTriggers[this.dom.$primaryNavTriggers.length - 1]);\n } else if (e.keyCode === KEYS.right) {\n this.focusPrimaryNavItem(this.dom.$primaryNavTriggers[0]);\n }\n }\n\n initiateFocusTrap() {\n this.panelFocusTrap = focusTrap.createFocusTrap(this.dom.$childNavWrapper, {\n onDeactivate: this.closePrimaryNavChildMenu,\n allowOutsideClick: false,\n initialFocus: () => {\n return this.dom.$childNavWrapper._$('.primary-nav__child-menu--opened').getElementsByTagName('A')[0]\n }\n });\n }\n}\n\nexport default MakeHeaderAccessible;\n","// get successful control from form and assemble into object\n// http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2\n\n// types which indicate a submit action and are not successful controls\n// these will be ignored\nvar k_r_submitter = /^(?:submit|button|image|reset|file)$/i;\n\n// node names which could be successful controls\nvar k_r_success_contrls = /^(?:input|select|textarea|keygen)/i;\n\n// Matches bracket notation.\nvar brackets = /(\\[[^\\[\\]]*\\])/g;\n\n// serializes form fields\n// @param form MUST be an HTMLForm element\n// @param options is an optional argument to configure the serialization. Default output\n// with no options specified is a url encoded string\n// - hash: [true | false] Configure the output type. If true, the output will\n// be a js object.\n// - serializer: [function] Optional serializer function to override the default one.\n// The function takes 3 arguments (result, key, value) and should return new result\n// hash and url encoded str serializers are provided with this module\n// - disabled: [true | false]. If true serialize disabled fields.\n// - empty: [true | false]. If true serialize empty fields\nfunction serialize(form, options) {\n if (typeof options != 'object') {\n options = { hash: !!options };\n }\n else if (options.hash === undefined) {\n options.hash = true;\n }\n\n var result = (options.hash) ? {} : '';\n var serializer = options.serializer || ((options.hash) ? hash_serializer : str_serialize);\n\n var elements = form && form.elements ? form.elements : [];\n\n //Object store each radio and set if it's empty or not\n var radio_store = Object.create(null);\n\n for (var i=0 ; i lastScrollY ? \"down\" : \"up\";\n details.distance = Math.abs(scrollY - lastScrollY);\n details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight;\n details.top = scrollY <= options.offset[details.direction];\n details.bottom = scrollY + height >= scrollHeight;\n details.toleranceExceeded =\n details.distance > options.tolerance[details.direction];\n\n callback(details);\n\n lastScrollY = scrollY;\n scrolled = false;\n }\n\n function handleScroll() {\n if (!scrolled) {\n scrolled = true;\n rafId = requestAnimationFrame(update);\n }\n }\n\n var eventOptions = isPassiveSupported\n ? { passive: true, capture: false }\n : false;\n\n element.addEventListener(\"scroll\", handleScroll, eventOptions);\n update();\n\n return {\n destroy: function() {\n cancelAnimationFrame(rafId);\n element.removeEventListener(\"scroll\", handleScroll, eventOptions);\n }\n };\n }\n\n function normalizeUpDown(t) {\n return t === Object(t) ? t : { down: t, up: t };\n }\n\n /**\n * UI enhancement for fixed headers.\n * Hides header when scrolling down\n * Shows header when scrolling up\n * @constructor\n * @param {DOMElement} elem the header element\n * @param {Object} options options for the widget\n */\n function Headroom(elem, options) {\n options = options || {};\n Object.assign(this, Headroom.options, options);\n this.classes = Object.assign({}, Headroom.options.classes, options.classes);\n\n this.elem = elem;\n this.tolerance = normalizeUpDown(this.tolerance);\n this.offset = normalizeUpDown(this.offset);\n this.initialised = false;\n this.frozen = false;\n }\n Headroom.prototype = {\n constructor: Headroom,\n\n /**\n * Start listening to scrolling\n * @public\n */\n init: function() {\n if (Headroom.cutsTheMustard && !this.initialised) {\n this.addClass(\"initial\");\n this.initialised = true;\n\n // defer event registration to handle browser\n // potentially restoring previous scroll position\n setTimeout(\n function(self) {\n self.scrollTracker = trackScroll(\n self.scroller,\n { offset: self.offset, tolerance: self.tolerance },\n self.update.bind(self)\n );\n },\n 100,\n this\n );\n }\n\n return this;\n },\n\n /**\n * Destroy the widget, clearing up after itself\n * @public\n */\n destroy: function() {\n this.initialised = false;\n Object.keys(this.classes).forEach(this.removeClass, this);\n this.scrollTracker.destroy();\n },\n\n /**\n * Unpin the element\n * @public\n */\n unpin: function() {\n if (this.hasClass(\"pinned\") || !this.hasClass(\"unpinned\")) {\n this.addClass(\"unpinned\");\n this.removeClass(\"pinned\");\n\n if (this.onUnpin) {\n this.onUnpin.call(this);\n }\n }\n },\n\n /**\n * Pin the element\n * @public\n */\n pin: function() {\n if (this.hasClass(\"unpinned\")) {\n this.addClass(\"pinned\");\n this.removeClass(\"unpinned\");\n\n if (this.onPin) {\n this.onPin.call(this);\n }\n }\n },\n\n /**\n * Freezes the current state of the widget\n * @public\n */\n freeze: function() {\n this.frozen = true;\n this.addClass(\"frozen\");\n },\n\n /**\n * Re-enables the default behaviour of the widget\n * @public\n */\n unfreeze: function() {\n this.frozen = false;\n this.removeClass(\"frozen\");\n },\n\n top: function() {\n if (!this.hasClass(\"top\")) {\n this.addClass(\"top\");\n this.removeClass(\"notTop\");\n\n if (this.onTop) {\n this.onTop.call(this);\n }\n }\n },\n\n notTop: function() {\n if (!this.hasClass(\"notTop\")) {\n this.addClass(\"notTop\");\n this.removeClass(\"top\");\n\n if (this.onNotTop) {\n this.onNotTop.call(this);\n }\n }\n },\n\n bottom: function() {\n if (!this.hasClass(\"bottom\")) {\n this.addClass(\"bottom\");\n this.removeClass(\"notBottom\");\n\n if (this.onBottom) {\n this.onBottom.call(this);\n }\n }\n },\n\n notBottom: function() {\n if (!this.hasClass(\"notBottom\")) {\n this.addClass(\"notBottom\");\n this.removeClass(\"bottom\");\n\n if (this.onNotBottom) {\n this.onNotBottom.call(this);\n }\n }\n },\n\n shouldUnpin: function(details) {\n var scrollingDown = details.direction === \"down\";\n\n return scrollingDown && !details.top && details.toleranceExceeded;\n },\n\n shouldPin: function(details) {\n var scrollingUp = details.direction === \"up\";\n\n return (scrollingUp && details.toleranceExceeded) || details.top;\n },\n\n addClass: function(className) {\n this.elem.classList.add.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n removeClass: function(className) {\n this.elem.classList.remove.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n hasClass: function(className) {\n return this.classes[className].split(\" \").every(function(cls) {\n return this.classList.contains(cls);\n }, this.elem);\n },\n\n update: function(details) {\n if (details.isOutOfBounds) {\n // Ignore bouncy scrolling in OSX\n return;\n }\n\n if (this.frozen === true) {\n return;\n }\n\n if (details.top) {\n this.top();\n } else {\n this.notTop();\n }\n\n if (details.bottom) {\n this.bottom();\n } else {\n this.notBottom();\n }\n\n if (this.shouldUnpin(details)) {\n this.unpin();\n } else if (this.shouldPin(details)) {\n this.pin();\n }\n }\n };\n\n /**\n * Default options\n * @type {Object}\n */\n Headroom.options = {\n tolerance: {\n up: 0,\n down: 0\n },\n offset: 0,\n scroller: isBrowser() ? window : null,\n classes: {\n frozen: \"headroom--frozen\",\n pinned: \"headroom--pinned\",\n unpinned: \"headroom--unpinned\",\n top: \"headroom--top\",\n notTop: \"headroom--not-top\",\n bottom: \"headroom--bottom\",\n notBottom: \"headroom--not-bottom\",\n initial: \"headroom\"\n }\n };\n\n Headroom.cutsTheMustard = isSupported();\n\n return Headroom;\n\n}));\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n"],"sourceRoot":""}