{"version":3,"file":"nlc.min.js","sources":["../../../assets/js/base/_dropdownEvent.js","../../../assets/js/base/_traverse.js","../../../assets/js/_navigation.js","../../../assets/js/base/_effects.js","../../../assets/js/_footer.js","../../../assets/js/_share.js","../../../assets/js/base/_focus-within.js","../../../assets/js/_breadcrumb.js","../../../assets/js/_touch-focus.js","../../../assets/js/_object-fit-cover.js","../../../node_modules/bows/dist/bows.min.js","../../../assets/js/base/_smoothScroll.js","../../../assets/js/_popup.js","../../../assets/js/nlc.js","../../../assets/js/base/_throttle.js","../../../assets/js/base/_fitvid.js"],"sourcesContent":["/**\n * This class fires events for dropdown menus\n *\n * - supports PointerEvents\n * - supports HoverIntent\n * - prevents following the first link on touch/keyboard click unless already opened\n * - deactivates when blurred for any event\n *\n * Use this by either passing callbacks.activate, callbacks:deactivate, * or by\n * listening for the dropdown:activate or dropdown:deactivate events on the\n * passed node\n *\n * Events Example:\n * ```\n * dropdownEvent(node);\n * node.addEventListener('dropdown:activate', () => {\n * // add dropdown classes\n * });\n * node.addEventListener('dropdown:deactivate', () => {\n * // remove dropdown classes\n * });\n * ```\n\n * Callbacks Example:\n * ```\n * dropdownEvent(node, {\n * activate: function() {\n * // add dropdown classes\n * },\n * deactivate: function() {\n * // remove dropdown classes\n * },\n * });\n * ```\n *\n * jQuery events example\n * ```\n * jQuery('selector').dropdownEvent().on('dropdown:activate', function() {\n * // add dropdown classes\n * }).on('dropdown:deactivate', function() {\n * // remove dropdown classes\n * });\n * ```\n *\n * jQuery callbacks example\n * ```\n * jQuery('selector').dropdownEvent({\n * activate: function() {\n * // add dropdown classes\n * },\n * deactivate: function() {\n * // remove dropdown classes\n * }\n * });\n * ```\n *\n * @class\n */\n\nexport class DropdownEvent {\n\t/**\n\t *\n\t * @param HTMLElement node\n\t * @param {Object} opts\n\t * @param {Integer} [opts.delay=200] - the hover intent delay on mouse events\n\t * @param {Function} opts.activate - the callback function for activate\n\t * @param {Function} opts.deactivate - the callback function for deactivate\n\t * @param {String} [opts.activateEvent=dropdown:activate] - the name of the activate event to listen to\n\t * @param {String} [opts.deactivateEvent=dropdown:deactivate] - the name of the deactivate event to listen to\n\t */\n\tconstructor(node, opts = {}) {\n\t\tthis.node = node;\n\t\tthis.opts = {\n\t\t\tdelay: 200,\n\t\t\tactivate: () => {},\n\t\t\tdeactivate: () => {},\n\t\t\tactivateEvent: 'dropdown:activate',\n\t\t\tdeactivateEvent: 'dropdown:deactivate',\n\t\t};\n\n\t\tfor (let opt in opts) {\n\t\t\tif (opts.hasOwnProperty(opt)) {\n\t\t\t\tthis.opts[opt] = opts[opt];\n\t\t\t}\n\t\t}\n\n\t\tthis.active = false;\n\t\tthis.enterTimeout = null;\n\t\tthis.leaveTimeout = null;\n\n\t\t// prevents the click event from following links (used by touch/keyboard handlers)\n\t\tconst preventClickEvent = function(e) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis.removeEventListener('click', preventClickEvent);\n\t\t}\n\n\t\t// activate if the event target is a child link\n\t\tconst maybeActivate = (e) => {\n\t\t\tif (this.active) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet target = e.target;\n\t\t\twhile(target.parentNode && target !== this.node) {\n\t\t\t\tif (target.tagName === 'A') {\n\t\t\t\t\ttarget.addEventListener('click', preventClickEvent);\n\t\t\t\t}\n\n\t\t\t\ttarget = target.parentNode;\n\t\t\t}\n\n\t\t\tthis.activate(e);\n\t\t}\n\n\t\t// activate on mouse enter and apply delay\n\t\tconst mouseenter = (e) => {\n\t\t\tif (typeof this.leaveTimeout === 'number') {\n\t\t\t\treturn window.clearTimeout(this.leaveTimeout);\n\t\t\t}\n\n\t\t\tthis.enterTimeout = setTimeout(() => {\n\t\t\t\tthis.activate(e);\n\t\t\t}, this.opts.delay);\n\t\t}\n\n\t\t// deactivate on mouse leave and apply delay\n\t\tconst mouseleave = (e) => {\n\t\t\tif (typeof this.enterTimeout === 'number') {\n\t\t\t\treturn window.clearTimeout(this.enterTimeout);\n\t\t\t}\n\n\t\t\tthis.leaveTimeout = window.setTimeout(() => {\n\t\t\t\tthis.deactivate(e);\n\t\t\t}, this.opts.delay);\n\t\t}\n\n\t\t// handle the touch start event\n\t\tconst touchstart = (e) => {\n\t\t\treturn maybeActivate(e);\n\t\t}\n\n\t\t// handle the keyup event\n\t\tconst keyup = (e) => {\n\t\t\tif ( 'enter' === e.key.toLowerCase() ) {\n\t\t\t\treturn maybeActivate(e);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\t// handle the pointer enter and route to touch/mouse event ( treats pen events as mouse )\n\t\tconst pointerenter = (e) => {\n\t\t\treturn 'touch' === e.pointerType ? touchstart(e) : mouseenter(e);\n\t\t}\n\n\t\t// handle the pointer leave and route to touch/mouse event ( treats pen events as mouse )\n\t\tconst pointerleave = (e) => {\n\t\t\treturn 'touch' === e.pointerType ? touchstart(e) : mouseleave(e);\n\t\t}\n\n\t\t// on captured blur detect if the event target is a child of this.node, if not, deactivate\n\t\tconst blur = () => {\n\t\t\tif ( ! this.active ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.setTimeout(() => {\n\t\t\t\tlet target = document.activeElement;\n\t\t\t\twhile ( target && target.parentNode ) {\n\t\t\t\t\tif ( target === this.node ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\ttarget = target.parentNode;\n\t\t\t\t}\n\n\t\t\t\tthis.deactivate();\n\t\t\t}, 0);\n\t\t}\n\n\t\tif ( window.PointerEvent ) {\n\t\t\t// add pointer events\n\t\t\tthis.node.addEventListener('pointerenter', pointerenter);\n\t\t\tthis.node.addEventListener('pointerleave', pointerleave);\n\t\t} else {\n\t\t\t// no pointer events - use mouse/touch events directly\n\t\t\tthis.node.addEventListener('touchstart', touchstart);\n\t\t\tthis.node.addEventListener('mouseenter', mouseenter);\n\t\t\tthis.node.addEventListener('mouseleave', mouseleave);\n\t\t}\n\n\t\t// add keyup/blur events\n\t\tthis.node.addEventListener('keyup', keyup);\n\t\tthis.node.addEventListener('blur', blur, true); // capture\n\t}\n\n\t/**\n\t * Activates the dropdown and fires the callback/event\n\t *\n\t * @param {Object} e - passed along to the callback/event as detail\n\t */\n\tactivate(e = {}) {\n\t\tthis.active = true;\n\n\t\tif (typeof this.enterTimeout === 'number') {\n\t\t\twindow.clearTimeout(this.enterTimeout);\n\t\t\tthis.enterTimeout = null;\n\t\t}\n\n\t\tif (typeof this.opts.activate === 'function') {\n\t\t\tthis.opts.activate.call(this.node, e);\n\t\t}\n\n\t\tif (typeof this.opts.activateEvent === 'string') {\n\t\t\tthis.dispatchEvent(this.opts.activateEvent);\n\t\t}\n\t}\n\n\t/**\n\t * Deactivates the dropdown and fires the callback/event\n\t *\n\t * @param {Object} e - passed along to the callback/event as detail\n\t */\n\tdeactivate(e = {}) {\n\t\tthis.active = false;\n\n\t\tif (typeof this.leaveTimeout === 'number') {\n\t\t\twindow.clearTimeout(this.leaveTimeout);\n\t\t\tthis.leaveTimeout = null;\n\t\t}\n\n\t\tif (typeof this.opts.deactivate === 'function') {\n\t\t\tthis.opts.deactivate.call(this.node, e);\n\t\t}\n\n\t\tif (typeof this.opts.deactivateEvent === 'string') {\n\t\t\tthis.dispatchEvent(this.opts.deactivateEvent);\n\t\t}\n\t}\n\n\tdispatchEvent(eventName, node = this.node) {\n\t\tlet event;\n\t\tif (typeof window.Event === 'function') {\n\t\t\tevent = new Event(eventName);\n\t\t} else {\n\t\t\tevent = document.createEvent('Event');\n\t\t\tevent.initEvent(eventName, true, false);\n\t\t}\n\n\t\tnode.dispatchEvent(event);\n\t}\n}\n\n/**\n * This is a factory for the DropdownEvent class that supports nodelists/arrays/selectors\n *\n * @param {HTMLElement|String|NodeList|Array} node\n * @param {opts} opts - see DropdownEvent\n * @return mixed DropdownEvent|Array|false\n *\n * @uses DropdownEvent\n * @uses Array.from\n * @uses Array.isArray\n */\nexport function dropdownEvent(node, opts = {}) {\n\tif (node instanceof HTMLElement) {\n\t\treturn new DropdownEvent(node, opts);\n\t}\n\n\tconst nodes = (typeof node === 'string') ? Array.from(document.querySelectorAll(node)) : (node.length) ? Array.from(node) : [];\n\n\tif (Array.isArray(nodes)) {\n\t\treturn nodes.map((n) => new DropdownEvent(n, opts));\n\t}\n\n\treturn false;\n}\n\n/**\n * Add a jQuery function for those who prefer that way\n */\nif (typeof window.jQuery === 'function') {\n\twindow.jQuery.fn.dropdownEvent = function(opts) {\n\t\treturn this.each(function() {\n\t\t\tconst $this = window.jQuery(this);\n\t\t\t$this.data('dropdownEvent', new DropdownEvent(this, opts));\n\t\t});\n\t};\n}\n\nexport default dropdownEvent;\n","export function children( node, selector = null ) {\n\tlet children = Array.from( node.children );\n\n\tif ( selector ) {\n\t\tchildren = children.filter( child => child.matches( selector ) );\n\t}\n\n\treturn children;\n}\n\nexport function focusable( node ) {\n\tconst focusableNode = node.querySelector( [\n\t\t'a[href]',\n\t\t'[contenteditable]',\n\t\t'input:not([disabled])',\n\t\t'select:not([disabled])',\n\t\t'button:not([disabled])',\n\t\t'textarea:not([disabled])',\n\t\t'[tabIndex]:not([tabIndex=\"-1\"])',\n\t].join(', ') );\n\n\tif ( focusableNode ) {\n\t\tfocusableNode.focus();\n\t}\n\n\treturn focusableNode;\n}\n","import dropdownEvent from './base/_dropdownEvent';\nimport { children, focusable } from './base/_traverse';\nimport { afterTransition } from './base/_effects';\n\nclass Navigation {\n\tconstructor() {\n\t\tthis.header = document.querySelector('.header');\n\n\t\tif ( ! this.header ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.opened = null;\n\t\tthis.bodyThreshold = 10;\n\t\tthis.activeItemClass = 'nav__menu-item--active';\n\n\t\tthis.headerOpenedClass = 'header--open';\n\t\tthis.searchOpenedClass = 'header--open-search';\n\t\tthis.menuOpenedClass = 'header--open-menu';\n\n\t\tthis.desktopSearchToggle = this.header.querySelector('.header__search--desktop .header__search-toggle');\n\t\tthis.searchForm = this.header.querySelector( '.header__search-form' );\n\t\tthis.headerContent = this.header.querySelector( '.header__content' );\n\n\t\t// click handler delegation\n\t\tthis.header.addEventListener( 'click', (e) => {\n\t\t\tlet { target } = e;\n\n\t\t\twhile ( target && target.parentNode ) {\n\t\t\t\t// open the menu\n\t\t\t\tif ( target.matches( '.header__menu-toggle' ) ) {\n\t\t\t\t\treturn this.toggle( 'menu' );\n\t\t\t\t}\n\n\t\t\t\t// open the search\n\t\t\t\tif ( target.matches( '.header__search-toggle' ) ) {\n\t\t\t\t\treturn this.toggle( 'search' );\n\t\t\t\t}\n\n\t\t\t\t// close the search on desktop\n\t\t\t\tif ( target.matches( '.header__search-close' ) ) {\n\t\t\t\t\treturn this.close();\n\t\t\t\t}\n\n\t\t\t\t// toggle a submenu on mobile\n\t\t\t\tif ( target.matches('.nav__menu-toggler') ) {\n\t\t\t\t\treturn target.parentNode.classList.toggle( this.activeItemClass );\n\t\t\t\t}\n\n\t\t\t\ttarget = target.parentNode;\n\t\t\t}\n\t\t} );\n\n\t\tconst dropdownActivate = (e) => {\n\t\t\tconst { target } = e;\n\n\t\t\t// dont bother with mobile or if it's already active\n\t\t\tif ( 'desktop' !== this.getMode() || target.classList.contains( this.activeItemClass ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttarget.classList.add(this.activeItemClass);\n\n\t\t\tconst subMenu = children(target, '.nav__menu').shift();\n\n\t\t\tif ( subMenu ) {\n\t\t\t\t// prevent the menu from being offscreen\n\t\t\t\tlet rect = subMenu.getBoundingClientRect();\n\n\t\t\t\tif ( rect.left < this.bodyThreshold ) {\n\t\t\t\t\t// off left\n\t\t\t\t\tsubMenu.style.marginLeft = `${rect.left + this.bodyThreshold }px`;\n\t\t\t\t} else if ( rect.right > document.body.clientWidth - this.bodyThreshold ) {\n\t\t\t\t\t// off right\n\t\t\t\t\tsubMenu.style.marginLeft = `${(rect.right - document.body.clientWidth + this.bodyThreshold ) * -1}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst dropdownDeactivate = (e) => {\n\t\t\tconst { target } = e;\n\n\t\t\t// dont bother with mobile or if it's not active\n\t\t\tif ( 'desktop' !== this.getMode() || ! target.classList.contains( this.activeItemClass ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttarget.classList.remove(this.activeItemClass);\n\t\t\tconst subMenu = children(target, '.nav__menu').shift();\n\n\t\t\tif ( subMenu ) {\n\t\t\t\tsubMenu.style.marginLeft = '';\n\t\t\t}\n\t\t}\n\n\t\tthis.dropdowns = Array.from( this.header.querySelectorAll( '.nav__menu-item--has-children' ) ).map( (node) => {\n\t\t\tnode.addEventListener('dropdown:activate', dropdownActivate);\n\t\t\tnode.addEventListener('dropdown:deactivate', dropdownDeactivate);\n\t\t\treturn dropdownEvent(node);\n\t\t} );\n\t}\n\n\tgetMode() {\n\t\treturn window.matchMedia('(min-width: 960px)').matches ? 'desktop' : 'mobile';\n\t}\n\n\topen( which ) {\n\t\tthis.opened = which;\n\t\tthis.header.classList.add( this.headerOpenedClass );\n\n\t\tif ( 'mobile' === this.getMode() ) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t}\n\n\t\tswitch( which ) {\n\t\t\tcase 'menu':\n\t\t\t\tthis.header.classList.add( this.menuOpenedClass );\n\t\t\t\tthis.header.classList.remove( this.searchOpenedClass );\n\t\t\tbreak;\n\t\t\tcase 'search':\n\t\t\t\tthis.header.classList.add( this.searchOpenedClass );\n\t\t\t\tthis.header.classList.remove( this.menuOpenedClass );\n\t\t\t\tafterTransition( this.header, () => focusable( this.searchForm ) );\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tclose() {\n\t\tthis.opened = null;\n\t\t[ this.headerOpenedClass, this.searchOpenedClass, this.menuOpenedClass ].forEach( className => this.header.classList.remove( className ) );\n\t\tdocument.body.style.overflow = '';\n\n\t\tif ( this.desktopSearchToggle && 'desktop' === this.getMode() ) {\n\t\t\tthis.desktopSearchToggle.focus();\n\t\t}\n\t}\n\n\ttoggle( which = 'menu' ) {\n\t\treturn this.opened === which ? this.close() : this.open( which );\n\t}\n}\n\nexport default Navigation;\n","/**\n * Add a slight delay to request animation frame\n *\n * @param {function} fn\n */\nexport function requestAnimationFrame( fn ) {\n\treturn window.requestAnimationFrame( () => window.requestAnimationFrame( fn ) );\n}\n\n/**\n * Execute a function after the transition has ended - once\n *\n * @param {HTMLElement} node\n * @param {function} fn\n * @param {string} the property to transition after in case transitions are different speeds\n */\nexport function afterTransition( node, fn, property = null ) {\n\tconst transitionend = (e) => {\n\t\tif ( e.target === node ) {\n\t\t\tif ( property && e.propertyName !== property ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tnode.removeEventListener( 'transitionend', transitionend );\n\t\tfn(e);\n\t}\n\n\tnode.addEventListener( 'transitionend', transitionend );\n}\n","class Footer {\n\n}\n\nexport default Footer;\n","export class Share {\n\tconstructor( node ) {\n\t\tthis.node = node;\n\n\t\tthis.openedClass = 'share--open';\n\t\tthis.opened = this.node.classList.contains(this.openedClass);\n\n\t\tthis.node.addEventListener( 'click', (e) => {\n\t\t\tlet { target } = e;\n\n\t\t\twhile( target && target !== this.node ) {\n\t\t\t\tif ( target.classList.contains( 'share__toggler' ) ) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\treturn this.toggle();\n\t\t\t\t}\n\n\t\t\t\ttarget = target.parentNode;\n\t\t\t}\n\t\t});\n\t}\n\n\topen() {\n\t\tthis.opened = true;\n\t\tthis.node.classList.add( this.openedClass );\n\t}\n\n\tclose() {\n\t\tthis.opened = false;\n\t\tthis.node.classList.remove( this.openedClass );\n\t}\n\n\ttoggle() {\n\t\treturn this.opened ? this.close() : this.open();\n\t}\n}\n\nexport function factory( selector = '.share' ) {\n\tif ( typeof selector === 'string' ) {\n\t\treturn Array.from( document.querySelectorAll( selector ) ).map( node => new Share( node ) );\n\t}\n\n\tif ( selector instanceof HTMLElement ) {\n\t\treturn new Share( selector );\n\t}\n\n\treturn [];\n}\n","class FocusWithin {\n\tconstructor(node, className) {\n\t\tthis.node = node;\n\t\tthis.className = className;\n\t\tthis.focused = false;\n\n\t\t// add events with capturing cause focus/blur don't bubble\n\t\tthis.node.addEventListener('focus', this.focus.bind(this), true);\n\t\tthis.node.addEventListener('blur', this.blur.bind(this), true);\n\t}\n\n\ttoggle() {\n\t\treturn this.focused ? this.blur() : this.focus();\n\t}\n\n\tfocus() {\n\t\tthis.focused = true;\n\t\tthis.node.classList.add(this.className);\n\n\t\tthis.node.dispatchEvent(new CustomEvent('site:focus-within:focus'));\n\t}\n\n\tblur() {\n\t\tthis.focused = false;\n\t\tthis.node.classList.remove(this.className);\n\n\t\tthis.node.dispatchEvent(new CustomEvent('site:focus-within:blur'));\n\t}\n}\n\nexport default function ( node, className = 'focus-within' ) {\n\t// pass dom element directly\n\tif ( node instanceof HTMLElement ) {\n\t\treturn new FocusWithin(node, className);\n\t}\n\n\t// pass selector\n\tif ( typeof node === 'string' ) {\n\t\tnode = document.querySelectorAll(node);\n\t}\n\n\t// convert to Array if not an array\n\tif (!Array.isArray(node)) {\n\t\tnode = Array.from(node);\n\t}\n\n\t// convert to FocusWithin objects\n\treturn node.map((n) => new FocusWithin(n, className));\n}\n","class Breadcrumb {\n\tconstructor( node, opts = {} ) {\n\t\tthis.node = node;\n\t\tthis.opts = Object.assign( {\n\t\t\ttogglerClass : 'breadcrumb__mobile-toggle',\n\t\t\topenClass : 'breadcrumb--open',\n\t\t\titemTogglerClass: 'breadcrumb__toggler',\n\t\t\titemClass : 'breadcrumb__item',\n\t\t\topenItemClass : 'breadcrumb__item--open',\n\t\t}, opts );\n\t\tthis.openItem = null;\n\n\t\tthis.onClick = this.onClick.bind( this );\n\t\tthis.onBlur = this.onBlur.bind( this );\n\n\t\tthis.node.addEventListener( 'click', this.onClick );\n\t\tdocument.body.addEventListener( 'click', this.onBlur );\n\t}\n\n\tonClick( e ) {\n\t\tlet node = e.target;\n\n\t\twhile ( node && node !== this.node ) {\n\t\t\tif ( node.classList.contains( this.opts.togglerClass ) ) {\n\t\t\t\tthis.node.classList.toggle( this.opts.openClass );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( node.classList.contains( this.opts.itemTogglerClass ) ) {\n\t\t\t\tlet item = node.closest( `.${this.opts.itemClass}` );\n\n\t\t\t\tif ( item ) {\n\t\t\t\t\tif ( item.classList.contains( this.opts.openItemClass ) ) {\n\t\t\t\t\t\titem.classList.remove( this.opts.openItemClass );\n\t\t\t\t\t\tthis.openItem = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ( this.openItem ) {\n\t\t\t\t\t\t\tthis.openItem.classList.remove( this.opts.openItemClass );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.classList.add( this.opts.openItemClass );\n\t\t\t\t\t\tthis.openItem = item;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tnode = node.parentNode;\n\t\t}\n\t}\n\n\tonBlur( e ) {\n\t\tif ( ! this.openItem ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet node = e.target;\n\n\t\twhile( node && node.parentNode ) {\n\t\t\tif ( node === this.openItem ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tnode = node.parentNode;\n\t\t}\n\n\t\tthis.openItem.classList.remove( this.opts.openItemClass );\n\t}\n}\n\nexport default Breadcrumb;\n","const allSelectors = [];\n\nexport default function( selector ) {\n\tallSelectors.push( selector );\n\tlet selectors = allSelectors.join(',');\n\n\tif ( allSelectors.length > 1 ) {\n\t\treturn;\n\t}\n\n\tconst ontouchstart = (e) => {\n\t\tlet node = e.target;\n\n\t\twhile ( node && node.parentNode ) {\n\t\t\tif ( node.matches( selectors ) ) {\n\t\t\t\tif ( node.dataset.focused ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tnode.addEventListener( 'click', onclick );\n\t\t\t}\n\n\t\t\tnode = node.parentNode;\n\t\t}\n\t}\n\n\tconst onclick = ( e ) => {\n\t\tlet node = e.target;\n\n\t\twhile ( node && node.parentNode ) {\n\t\t\tif ( node.matches( selectors ) ) {\n\t\t\t\tnode.removeEventListener( 'click', onclick );\n\n\t\t\t\tif ( node.dataset.focused ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( e.preventDefault ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tnode.dataset.focused = '1';\n\t\t\t\treturn node.focus();\n\t\t\t}\n\n\t\t\tnode = node.parentNode;\n\t\t}\n\t}\n\n\tconst onblur = ( e ) => {\n\t\tlet node = e.target;\n\n\t\twhile ( node && node.parentNode ) {\n\t\t\tif ( node.dataset.focused ) {\n\t\t\t\tdelete node.dataset.focused;\n\t\t\t}\n\n\t\t\tnode = node.parentNode;\n\t\t}\n\t}\n\n\tdocument.addEventListener( 'blur', onblur, true );\n\tdocument.addEventListener( 'touchstart', ontouchstart );\n}\n","export default function( nodes, img = 'img', position = 'center' ) {\n\tconsole.log( nodes );\n\tif ( typeof nodes === 'string' ) {\n\t\tnodes = Array.from( document.querySelectorAll( nodes ) );\n\t}\n\n\tconsole.log( nodes );\n\n\tif ( ! nodes.length ) {\n\t\treturn;\n\t}\n\n\tfor ( let i = 0, nodesLength = nodes.length; i < nodesLength; i++ ) {\n\t\tlet imgNode = nodes[i].querySelector( img );\n\n\t\tconsole.log( nodes[i], imgNode );\n\n\t\tif ( ! imgNode ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tnodes[i].style.backgroundPosition = position;\n\t\tnodes[i].style.backgroundSize = 'cover';\n\t\tnodes[i].style.backgroundImage = `url(${imgNode.currentSrc || imgNode.src})`;\n\t\timgNode.style.display = 'none';\n\t}\n}\n","!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var n;\"undefined\"!=typeof window?n=window:\"undefined\"!=typeof global?n=global:\"undefined\"!=typeof self&&(n=self),n.bows=e()}}(function(){return function e(n,o,r){function t(f,d){if(!o[f]){if(!n[f]){var u=\"function\"==typeof require&&require;if(!d&&u)return u(f,!0);if(i)return i(f,!0);var a=new Error(\"Cannot find module '\"+f+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var s=o[f]={exports:{}};n[f][0].call(s.exports,function(e){var o=n[f][1][e];return t(o||e)},s,s.exports,e,n,o,r)}return o[f].exports}for(var i=\"function\"==typeof require&&require,f=0;f=31||t}(),v=null,h=null,y=!1,m={};d&&\"!\"===d[0]&&\"/\"===d[1]&&(y=!0,d=d.slice(1)),h=d&&\"/\"===d[0]&&new RegExp(d.substring(1,d.length-1));for(var b=[\"log\",\"debug\",\"warn\",\"error\",\"info\"],x=0,E=b.length;x1){var v=Array.prototype.slice.call(arguments,1);d=d.concat(v)}return t=a.apply(u.log,d),b.forEach(function(e){t[e]=a.apply(u[e]||t,d)}),t},v.config=function(e){e.padLength&&(p=e.padLength),\"boolean\"==typeof e.padding&&(c=e.padding),e.separator?l=e.separator:!1!==e.separator&&\"\"!==e.separator||(l=\"\")},void 0!==n?n.exports=v:window.bows=v}).call()}).call(this,e(\"_process\"))},{_process:3,andlog:2}],2:[function(e,n,o){!function(){var e=\"undefined\"==typeof window,r=!e&&function(){var e;try{e=window.localStorage}catch(e){}return e}(),t={};if(e||!r)return void(n.exports=console);var i=r.andlogKey||\"debug\";if(r&&r[i]&&window.console)t=window.console;else for(var f=\"assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn\".split(\",\"),d=f.length,u=function(){};d--;)t[f[d]]=u;void 0!==o?n.exports=t:window.console=t}()},{}],3:[function(e,n,o){function r(){}var t=n.exports={};t.nextTick=function(){var e=\"undefined\"!=typeof window&&window.setImmediate,n=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(n){var o=[];return window.addEventListener(\"message\",function(e){var n=e.source;if((n===window||null===n)&&\"process-tick\"===e.data&&(e.stopPropagation(),o.length>0)){o.shift()()}},!0),function(e){o.push(e),window.postMessage(\"process-tick\",\"*\")}}return function(e){setTimeout(e,0)}}(),t.title=\"browser\",t.browser=!0,t.env={},t.argv=[],t.on=r,t.addListener=r,t.once=r,t.off=r,t.removeListener=r,t.removeAllListeners=r,t.emit=r,t.binding=function(e){throw new Error(\"process.binding is not supported\")},t.cwd=function(){return\"/\"},t.chdir=function(e){throw new Error(\"process.chdir is not supported\")}},{}]},{},[1])(1)});","import debug from \"bows/dist/bows.min.js\";\n\nconst linksToAnchors = document.querySelectorAll('a[href^=\"#\"]:not(.tabs-feature__nav-link)');\nconst log = debug(\"scroll\");\n\n// Define your top offset value (e.g., 50 pixels)\nconst topOffset = 100;\n\nexport function anchorLinkHandler(e) {\n const distanceToTop = el => Math.floor(el.getBoundingClientRect().top);\n\n e.preventDefault();\n const targetID = this.getAttribute(\"href\");\n const split = targetID.split('#');\n if (split[1] === '') return;\n const targetAnchor = document.querySelector(targetID);\n if (!targetAnchor) return;\n let originalTop = distanceToTop(targetAnchor);\n\n // Subtract the top offset\n originalTop -= topOffset;\n\n window.scrollBy({ top: originalTop, left: 0, behavior: \"smooth\" });\n\n const checkIfDone = setInterval(function () {\n const atBottom =\n window.innerHeight + window.pageYOffset >= document.body.offsetHeight - 2;\n if (distanceToTop(targetAnchor) <= topOffset || atBottom) {\n targetAnchor.tabIndex = \"-1\";\n targetAnchor.focus();\n\n window.history.pushState(\"\", \"\", targetID);\n clearInterval(checkIfDone);\n }\n targetAnchor.addEventListener(\"blur\", function () {\n targetAnchor.removeAttribute('tabIndex');\n });\n }, 100);\n}\n\nexport function init() {\n log(`scroll init`);\n if (linksToAnchors !== undefined) {\n linksToAnchors.forEach(each => (each.onclick = anchorLinkHandler));\n }\n}\n\nexport default {\n init: init,\n anchorLinkHandler: anchorLinkHandler\n};\n","export default class Popup {\n\tconstructor() {\n\t\tthis.node = document.querySelectorAll('.trigger-popup');\n\n\t\tif (!this.node) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.addEventListener('click', (e) => {\n\t\t\tif (e.target.closest('.trigger-popup')) {\n\t\t\t\tlet ee = e;\n\t\t\t\tconst trigger = document.querySelectorAll('.trigger-popup');\n\t\t\t\ttrigger.forEach((node) => {\n\t\t\t\t\tnode.closest('.popup').classList[ ee.target.closest('.trigger-popup') == node ? 'toggle' : 'remove' ]('open')\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdocument.querySelectorAll('.trigger-popup').forEach((node) => node.closest('.popup').classList.remove('open'));\n\t\t\t}\n\t\t});\n\t}\n}\n\n","import Navigation from './_navigation.js';\nimport Footer from './_footer.js';\nimport { factory as share } from './_share.js';\nimport throttle from './base/_throttle.js';\nimport focusWithin from './base/_focus-within.js';\nimport Breadcrumb from './_breadcrumb.js';\nimport touchFocus from './_touch-focus.js';\nimport objectFitCover from './_object-fit-cover.js';\nimport fitvid from './base/_fitvid.js';\nimport smoothScroll from \"./base/_smoothScroll\";\nimport Popup from './_popup.js';\n\nclass NLC {\n constructor() {\n document.addEventListener('DOMContentLoaded', this.ready.bind(this));\n window.addEventListener('resize', throttle(this.resize.bind(this), 25));\n this.resize();\n }\n\n ready() {\n this.navigation = new Navigation();\n this.footer = new Footer();\n this.shares = share();\n this.breadcrumbs = Array.from(document.querySelectorAll('.breadcrumb')).map(node => new Breadcrumb(node));\n this.notices();\n this.cookieNotice();\n\n focusWithin('label, form, fieldset');\n touchFocus('.kard');\n\n if (!('objectFit' in document.documentElement.style)) {\n objectFitCover('.page-header__image', 'img');\n objectFitCover('.kard--bg-image .kard__image', 'img');\n objectFitCover('.tabs-feature__media', 'img');\n }\n\n $('a.t_link').on('click', function() {\n $('a.t_link').children().removeClass('t_on').addClass('t_off');\n $(this).children().removeClass('t_off').addClass('t_on');\n });\n\n fitvid();\n smoothScroll.init();\n\n // Sticky header functionality\n const header = document.querySelector('.header');\n if (header) {\n window.addEventListener('scroll', () => {\n header.classList.toggle('fixed', window.scrollY > 0);\n });\n }\n\n // Cookie management functions\n function setCookie(name, value, days) {\n var expires = \"\";\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = \"; expires=\" + date.toUTCString();\n }\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\n console.log(`Set cookie: ${name}=${value}; expires=${expires}`);\n }\n\n function getCookie(name) {\n var nameEQ = name + \"=\";\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n }\n\n function deleteCookie(name) {\n document.cookie = name + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\n console.log(`Deleted cookie: ${name}`);\n }\n\n // Check for existing selections in cookies\n window.addEventListener('load', () => {\n var savedTownCityVillage = getCookie('STYXKEYtownCityVillage');\n var savedCitySize = getCookie('STYXKEYcitySize');\n var scrollToFilter = getCookie('scrollToFilter');\n\n console.log(`Retrieved cookies: STYXKEYtownCityVillage=${savedTownCityVillage}, STYXKEYcitySize=${savedCitySize}`);\n\n if (savedTownCityVillage) {\n const townCityVillage = document.getElementById('town-city-village');\n if (townCityVillage) {\n townCityVillage.value = savedTownCityVillage;\n }\n }\n if (savedCitySize) {\n const citySize = document.getElementById('city_size');\n if (citySize) {\n citySize.value = savedCitySize;\n }\n }\n\n // Trigger message block update\n this.updateMessageBlocks();\n\n // Scroll to \"messages-block-filter\" if flag is set\n if (scrollToFilter === 'true') {\n setTimeout(() => {\n var filterDiv = document.getElementById('messages-block-filter');\n if (filterDiv) {\n filterDiv.scrollIntoView();\n deleteCookie('scrollToFilter'); // Clear the flag\n }\n }, 100);\n }\n });\n\n // Update message blocks based on selections\n this.updateMessageBlocks();\n\n // Form submission event listener\n const form = document.getElementById('messageForm');\n if (form) {\n form.addEventListener('submit', (event) => {\n event.preventDefault();\n\n // Save selections to cookies\n const townCityVillage = document.getElementById('town-city-village');\n const citySize = document.getElementById('city_size');\n if (townCityVillage && citySize) {\n setCookie('STYXKEYtownCityVillage', townCityVillage.value, 30);\n setCookie('STYXKEYcitySize', citySize.value, 30);\n }\n\n // Set scroll flag\n setCookie('scrollToFilter', 'true', 1);\n\n // Delay submission\n setTimeout(() => {\n form.submit();\n }, 100);\n });\n }\n\n // Reset button event listener\n const resetButton = document.getElementById('resetButton');\n if (resetButton) {\n resetButton.addEventListener('click', (event) => {\n event.preventDefault();\n\n // Clear input fields\n const townCityVillage = document.getElementById('town-city-village');\n const citySize = document.getElementById('city_size');\n if (townCityVillage) townCityVillage.value = '';\n if (citySize) citySize.selectedIndex = 0;\n\n // Remove cookies\n deleteCookie('STYXKEYtownCityVillage');\n deleteCookie('STYXKEYcitySize');\n\n // Update message blocks\n this.updateMessageBlocks();\n });\n }\n\n // Fixed TOC on scroll\n if ($('.tbl_container--floating').length) {\n $(window).scroll(function() {\n if ($(this).scrollTop() >= $('.page-content').offset().top) {\n $('.tbl_container--floating').addClass('fixed');\n } else {\n $('.tbl_container--floating').removeClass('fixed');\n }\n });\n $('.tbl_container--floating').wrap('
');\n $('div.tbl_container_wrap').height($('.tbl_container--floating').height());\n }\n\n // Initialize Popup functionality\n new Popup(); // Create a new instance of the Popup class\n }\n\n // Function to update message blocks based on form selections\n updateMessageBlocks() {\n const citySizeElement = document.getElementById('city_size');\n if (citySizeElement) {\n var selectedCitySize = citySizeElement.value;\n var messagesBlocks = document.querySelectorAll('.messages-block');\n\n messagesBlocks.forEach((block) => {\n var blockCitySizes = block.getAttribute('data-term-city-size');\n var citySizeMatch = blockCitySizes.includes(selectedCitySize) || selectedCitySize === '';\n\n if (citySizeMatch) {\n block.classList.remove('hidden');\n } else {\n block.classList.add('hidden');\n }\n });\n\n // Update navigation visibility after updating message blocks\n this.updateNavVisibility();\n }\n }\n\n // Function to update navigation links based on message block visibility\n updateNavVisibility() {\n const navLinks = document.querySelectorAll('.sticky__nav-item');\n\n navLinks.forEach(link => {\n const targetId = link.querySelector('a').getAttribute('href').substring(1);\n const targetBlock = document.getElementById(targetId);\n\n if (targetBlock) {\n // Check if the target block's parent has the 'hidden' class\n const messagesBlock = targetBlock.closest('.messages-block');\n\n if (messagesBlock && messagesBlock.classList.contains('hidden')) {\n link.classList.add('hidden'); // Add hidden class to the li\n } else {\n link.classList.remove('hidden'); // Remove hidden class from the li\n }\n }\n });\n }\n\n resize() {\n if (window.innerWidth === document.body.clientWidth) {\n document.documentElement.classList.remove('has-scrollbar');\n } else {\n document.documentElement.classList.add('has-scrollbar');\n }\n }\n\n // Dismiss notice functionality\n notices() {\n const notices = Array.from(document.querySelectorAll('.notice'));\n\n if (!notices.length) {\n return;\n }\n\n notices.forEach(notice => {\n const button = document.createElement('button');\n button.type = 'button';\n button.className = 'notice__dismiss';\n button.insertAdjacentHTML('beforeend', '');\n button.addEventListener('click', () => {\n let url = location.origin + location.pathname;\n\n const params = new URLSearchParams(location.search);\n ['Site', 'logout'].forEach(param => params.delete(param));\n const queryString = params.toString();\n\n if (queryString.length) {\n url += `?${queryString}`;\n }\n\n window.history.replaceState({}, null, url);\n notice.parentNode.removeChild(notice);\n });\n notice.appendChild(button);\n });\n }\n\n cookieNotice() {\n const cookieNotice = document.querySelector('.cookie-notice');\n\n if (!cookieNotice) {\n return;\n }\n\n const cookieName = 'cookieNotice';\n\n if (document.cookie.match(new RegExp(`\\\\b${cookieName}=\\\\d+\\\\b`))) {\n cookieNotice.parentNode.removeChild(cookieNotice);\n return;\n }\n\n cookieNotice.removeAttribute('hidden');\n\n const cookieNoticeAccept = cookieNotice.querySelector('button');\n\n if (!cookieNoticeAccept) {\n return;\n }\n\n cookieNoticeAccept.addEventListener('click', () => {\n document.cookie = `cookieNotice=${Date.now()}; max-age=${5 * 365 * 24 * 60 * 60}; path=/`;\n cookieNotice.parentNode.removeChild(cookieNotice);\n });\n }\n}\n\nexport default new NLC();\n","// import debug from 'bows/dist/bows.min.js';\n\n// const log = debug('throttle');\n\nexport default function (fn, time = 50) {\n\tlet timer = null;\n\n\t// log(fn, time);\n\n\tfunction throttledFn(...args) {\n\t\tif (!timer) {\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tfn(...args);\n\t\t\t\ttimer = null;\n\t\t\t}, time)\n\t\t}\n\t}\n\n\tthrottledFn.cancel = () => {\n\t\tclearTimeout(timer);\n\t\ttimer = null;\n\t}\n\n\treturn throttledFn;\n}\n","/**\n * this implementation of fitvid doesn't force items to 16/9. It measures them and then keeps the ratio unique per embed\n *\n * @var selectors (string|array) additional selectors search for in the DOM\n * @return nodes - array of matched items\n */\n\n export default function(selectors) {\n\tconst config = {\n\t\tselectors: [\n\t\t\t'iframe[src*=\"player.vimeo.com\"]',\n\t\t\t'iframe[src*=\"youtube.com\"]',\n\t\t\t'iframe[src*=\"youtube-nocookie.com\"]',\n\t\t\t'object',\n\t\t\t'embed'\n\t\t]\n\t};\n\n\tif ( selectors ) {\n\t\tif ( !Array.isArray(selectors) ) {\n\t\t\tselectors = [selectors];\n\t\t}\n\t\tconfig.selectors = config.selectors.concat(opts.selectors).filter(( val, index, arr ) => arr.indexOf(val) === index );\n\t}\n\n\tconst nodes = Array.prototype.slice.call( document.querySelectorAll( config.selectors.join(',') ) );\n\n\tif ( nodes.length > 0 ) {\n\t\tnodes.forEach((node) => {\n\t\t\tif ( node.getAttribute('data-fitvid' ) || node.closest('.wp-has-aspect-ratio') ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst wrapper = document.createElement('div');\n\t\t\tconst computed = window.getComputedStyle(node);\n\t\t\tconst height = parseInt( computed.height, 10 );\n\t\t\tconst width = parseInt( computed.width, 10 );\n\t\t\tconst ratio = ( (height > 0 && width > 0) ? height / width : 9 / 16 ) * 100;\n\n\t\t\twrapper.className = 'fitvid';\n\t\t\twrapper.style.width = '100%';\n\t\t\twrapper.style.height = 0;\n\t\t\twrapper.style.position = 'relative';\n\t\t\twrapper.style.paddingTop = `${ratio}%`;\n\n\t\t\tnode.style.position = 'absolute';\n\t\t\tnode.style.top = 0;\n\t\t\tnode.style.left = 0;\n\t\t\tnode.style.width = '100%';\n\t\t\tnode.style.height = '100%';\n\t\t\tnode.setAttribute('data-fitvid', ratio);\n\t\t\tnode.parentNode.insertBefore(wrapper, node);\n\n\t\t\twrapper.appendChild(node);\n\t\t});\n\t}\n\n\treturn nodes;\n}\n"],"names":["DropdownEvent","node","opts","let","opt","this","delay","activate","deactivate","activateEvent","deactivateEvent","hasOwnProperty","active","enterTimeout","leaveTimeout","const","preventClickEvent","e","preventDefault","stopPropagation","removeEventListener","maybeActivate","target","parentNode","tagName","addEventListener","mouseenter","window","clearTimeout","setTimeout","mouseleave","touchstart","PointerEvent","pointerType","key","toLowerCase","document","activeElement","children","selector","Array","from","filter","child","matches","call","dispatchEvent","prototype","eventName","event","Event","createEvent","initEvent","jQuery","fn","dropdownEvent","each","data","Navigation","header","querySelector","opened","bodyThreshold","activeItemClass","headerOpenedClass","searchOpenedClass","menuOpenedClass","desktopSearchToggle","searchForm","headerContent","toggle","close","classList","dropdownActivate","getMode","contains","add","subMenu","shift","rect","getBoundingClientRect","left","style","marginLeft","right","body","clientWidth","dropdownDeactivate","remove","dropdowns","querySelectorAll","map","HTMLElement","nodes","isArray","n","matchMedia","open","which","overflow","property","transitionend","propertyName","afterTransition","focusableNode","join","focus","forEach","className","Footer","Share","openedClass","FocusWithin","focused","bind","blur","CustomEvent","Breadcrumb","Object","assign","togglerClass","openClass","itemTogglerClass","itemClass","openItemClass","openItem","onClick","onBlur","item","closest","allSelectors","objectFitCover","img","position","console","log","length","i","nodesLength","imgNode","backgroundPosition","backgroundSize","backgroundImage","currentSrc","src","display","module","exports","o","r","t","f","d","require","a","Error","code","s","localStorage","andlogKey","u","Function","c","l","p","w","g","debugColors","navigator","chrome","test","userAgent","versions","electron","match","Number","v","h","y","m","slice","RegExp","substring","b","x","E","push","arguments","concat","apply","config","padLength","padding","separator","bows","_process","andlog","split","nextTick","setImmediate","postMessage","source","title","browser","env","argv","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","linksToAnchors","debug","topOffset","anchorLinkHandler","distanceToTop","el","Math","floor","top","targetID","getAttribute","targetAnchor","originalTop","scrollBy","behavior","checkIfDone","setInterval","atBottom","innerHeight","pageYOffset","offsetHeight","tabIndex","history","pushState","clearInterval","removeAttribute","smoothScroll","init","undefined","onclick","Popup","ee","NLC","ready","time","timer","throttledFn","args","cancel","throttle","resize","navigation","footer","shares","breadcrumbs","notices","cookieNotice","selectors","dataset","touchFocus","documentElement","$","removeClass","addClass","val","index","arr","indexOf","wrapper","createElement","computed","getComputedStyle","height","parseInt","width","ratio","paddingTop","setAttribute","insertBefore","appendChild","fitvid","setCookie","name","value","days","expires","date","Date","setTime","getTime","toUTCString","cookie","getCookie","nameEQ","ca","charAt","deleteCookie","scrollY","savedTownCityVillage","savedCitySize","scrollToFilter","townCityVillage","getElementById","citySize","updateMessageBlocks","filterDiv","scrollIntoView","form","submit","resetButton","selectedIndex","scroll","scrollTop","offset","wrap","citySizeElement","selectedCitySize","block","includes","updateNavVisibility","link","targetId","targetBlock","messagesBlock","innerWidth","notice","button","type","insertAdjacentHTML","url","location","origin","pathname","params","URLSearchParams","search","param","delete","queryString","toString","replaceState","removeChild","cookieNoticeAccept","now"],"mappings":"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"}